采收 作物 同步到ERP
This commit is contained in:
@@ -227,3 +227,14 @@ justauth:
|
||||
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
|
||||
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
|
||||
|
||||
|
||||
dubbo:
|
||||
registry:
|
||||
id: zsw-farm
|
||||
address: 192.168.10.250:8848
|
||||
protocol: nacos
|
||||
username: nacos
|
||||
password: nacos
|
||||
register: false
|
||||
application:
|
||||
name: zsw-farm
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<dubbo.version>3.0.5</dubbo.version>
|
||||
<dubbo.version>3.0.9</dubbo.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package dubbo.config;
|
||||
|
||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import org.apache.dubbo.common.constants.CommonConstants;
|
||||
import org.apache.dubbo.common.extension.Activate;
|
||||
import org.apache.dubbo.rpc.*;
|
||||
@@ -9,8 +9,10 @@ import org.apache.dubbo.rpc.*;
|
||||
public class OutFilter implements Filter {
|
||||
@Override
|
||||
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
|
||||
Long tenantId = TenantContextHolder.getTenantId();
|
||||
invocation.setAttachment("tenantId",tenantId.toString());
|
||||
Long tenantId = 11L;
|
||||
if(ObjectUtil.isNotEmpty(tenantId)){
|
||||
invocation.setAttachment("tenantId",tenantId.toString());
|
||||
}
|
||||
return invoker.invoke(invocation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package dubbo.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class IntoStockMaterialDTO implements Serializable {
|
||||
|
||||
// 仓库ID
|
||||
private String wareHouseId;
|
||||
|
||||
// 物料id
|
||||
private String materialId;
|
||||
|
||||
// 入库数量
|
||||
private BigDecimal num;
|
||||
|
||||
// 价格传0
|
||||
private BigDecimal price;
|
||||
}
|
||||
@@ -1,13 +1,24 @@
|
||||
package dubbo.service;
|
||||
|
||||
import dubbo.dto.BasMaterial;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import dubbo.dto.IntoStockMaterialDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface OpenErpService {
|
||||
|
||||
// 把实现方法写在这里
|
||||
String hello();
|
||||
//租户列表
|
||||
List<JSONObject> getTenantList();
|
||||
|
||||
List<BasMaterial> list();
|
||||
//材料列表
|
||||
List<JSONObject> getMaterialList();
|
||||
|
||||
//仓库列表
|
||||
List<JSONObject> getWareHouse();
|
||||
|
||||
//入库
|
||||
Boolean intoStock(List<IntoStockMaterialDTO> stkInventoryList);
|
||||
|
||||
//出库
|
||||
Boolean outStock(List<JSONObject> stkInventoryList);
|
||||
}
|
||||
|
||||
+23
-1
@@ -5,23 +5,32 @@ import cn.iocoder.yudao.module.system.controller.admin.CpUser.dto.CpMessageDto;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||
import cn.iocoder.yudao.module.system.enums.wxcp.WxCpMsgTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.service.CpUser.CpUserService;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import com.google.common.collect.Maps;
|
||||
import dubbo.dto.IntoStockMaterialDTO;
|
||||
import dubbo.service.OpenErpService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@Slf4j
|
||||
public class TestController {
|
||||
|
||||
@Autowired
|
||||
private CpUserService cpUserService;
|
||||
|
||||
@DubboReference
|
||||
private OpenErpService openErpService;
|
||||
|
||||
|
||||
@GetMapping("/zyh")
|
||||
public CommonResult<String> test() throws WxErrorException {
|
||||
@@ -41,4 +50,17 @@ public class TestController {
|
||||
cpUserService.sendMessage(dto);
|
||||
return CommonResult.success("okk");
|
||||
}
|
||||
|
||||
@GetMapping("/toErpMaterial")
|
||||
public void toErpMaterial(){
|
||||
IntoStockMaterialDTO intoStock = IntoStockMaterialDTO.builder()
|
||||
.wareHouseId("1546738475384201217")
|
||||
.materialId("1544629335014780930")
|
||||
.num(new BigDecimal(100))
|
||||
.price(BigDecimal.ZERO)
|
||||
.build();
|
||||
log.info("同步到ERP,,,{}", intoStock );
|
||||
log.info("{}", Arrays.asList(intoStock));
|
||||
openErpService.intoStock(Arrays.asList(intoStock) );
|
||||
}
|
||||
}
|
||||
|
||||
+25
-19
@@ -1,30 +1,30 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.crop;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.annotations.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.dto.ErpMaterialDTO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.*;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||
import cn.iocoder.yudao.module.farm.convert.crop.CropConvert;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||
import cn.iocoder.yudao.module.farm.service.crop.CropService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
@Api(tags = "管理后台 - ")
|
||||
@RestController
|
||||
@@ -97,4 +97,10 @@ public class CropController {
|
||||
ExcelUtils.write(response, ".xls", "数据", CropExcelVO.class, datas);
|
||||
}
|
||||
|
||||
@GetMapping("/getMaterialList")
|
||||
@ApiOperation("获取ERP Material列表")
|
||||
public List<ErpMaterialDTO> getMaterialList(){
|
||||
return cropService.getMaterialList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.crop.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/*
|
||||
* Erp的MaterialDTO
|
||||
*/
|
||||
@Data
|
||||
public class ErpMaterialDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String name ;
|
||||
}
|
||||
+7
-4
@@ -1,10 +1,10 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.crop.vo;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.annotations.*;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* Base VO,提供给添加、修改、详细的子 VO 使用
|
||||
@@ -26,4 +26,7 @@ public class CropBaseVO {
|
||||
|
||||
private Boolean pretendDelete;
|
||||
|
||||
@ApiModelProperty("ERP Material Id")
|
||||
private Long materialId;
|
||||
|
||||
}
|
||||
|
||||
+7
-5
@@ -1,11 +1,10 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.crop.vo;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.annotations.*;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Excel VO
|
||||
@@ -32,4 +31,7 @@ public class CropExcelVO {
|
||||
|
||||
private Boolean pretendDelete;
|
||||
|
||||
@ExcelProperty("ERP Material Id")
|
||||
private Long materialId;
|
||||
|
||||
}
|
||||
|
||||
+8
-4
@@ -1,12 +1,13 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.crop.vo;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.annotations.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@ApiModel(value = "管理后台 - Excel 导出 Request VO", description = "参数和 CropPageReqVO 是一致的")
|
||||
@@ -32,4 +33,7 @@ public class CropExportReqVO {
|
||||
|
||||
private Boolean pretendDelete;
|
||||
|
||||
@ApiModelProperty("ERP Material Id")
|
||||
private Long materialId;
|
||||
|
||||
}
|
||||
|
||||
+3
@@ -34,4 +34,7 @@ public class CropPageReqVO extends PageParam {
|
||||
|
||||
private Boolean pretendDelete = false;
|
||||
|
||||
@ApiModelProperty("ERP Material Id")
|
||||
private Long materialId;
|
||||
|
||||
}
|
||||
|
||||
+7
-3
@@ -1,12 +1,13 @@
|
||||
package cn.iocoder.yudao.module.farm.dal.dataobject.crop;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* DO
|
||||
@@ -44,4 +45,7 @@ public class CropDO extends BaseDO {
|
||||
@ApiModelProperty("假装删除")
|
||||
private Boolean pretendDelete;
|
||||
|
||||
@ApiModelProperty("ERP Material Id")
|
||||
private Long materialId;
|
||||
|
||||
}
|
||||
|
||||
+8
@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.farm.service.crop;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.dto.ErpMaterialDTO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.*;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
@@ -67,4 +69,10 @@ public interface CropService {
|
||||
*/
|
||||
List<CropDO> getCropList(CropExportReqVO exportReqVO);
|
||||
|
||||
|
||||
/**
|
||||
* 获取ERP Material列表
|
||||
*/
|
||||
List<ErpMaterialDTO> getMaterialList();
|
||||
|
||||
}
|
||||
|
||||
+28
-9
@@ -1,19 +1,27 @@
|
||||
package cn.iocoder.yudao.module.farm.service.crop;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.dto.ErpMaterialDTO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.CropCreateReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.CropExportReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.CropPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.CropUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.farm.convert.crop.CropConvert;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.crop.CropMapper;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import dubbo.service.OpenErpService;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.crop.vo.*;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
import cn.iocoder.yudao.module.farm.convert.crop.CropConvert;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.crop.CropMapper;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*;
|
||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.CROP_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* Service 实现类
|
||||
@@ -27,6 +35,10 @@ public class CropServiceImpl implements CropService {
|
||||
@Resource
|
||||
private CropMapper cropMapper;
|
||||
|
||||
|
||||
@DubboReference
|
||||
OpenErpService openErpService;
|
||||
|
||||
@Override
|
||||
public Long createCrop(CropCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
@@ -82,4 +94,11 @@ public class CropServiceImpl implements CropService {
|
||||
return cropMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
public List<ErpMaterialDTO> getMaterialList(){
|
||||
List<JSONObject> list = openErpService.getMaterialList();
|
||||
List<ErpMaterialDTO> materialList = BeanUtil.copyToList( list, ErpMaterialDTO.class);
|
||||
|
||||
return materialList;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+17
-2
@@ -18,12 +18,14 @@ import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkUserMsgDTO
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO;
|
||||
import cn.iocoder.yudao.module.farm.convert.discuss.DiscussConvert;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.cropRecord.CropRecordDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.taskCate.TaskCateDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.crop.CropMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.cropRecord.CropRecordMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.discuss.DiscussMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
||||
@@ -38,6 +40,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
||||
import cn.iocoder.yudao.module.system.service.CpUser.CpUserService;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.zsw.base.R;
|
||||
import dubbo.dto.IntoStockMaterialDTO;
|
||||
import dubbo.service.OpenErpService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
@@ -45,6 +48,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -81,6 +85,8 @@ public class DiscussServiceImpl implements DiscussService {
|
||||
private CropRecordMapper cropRecordMapper;
|
||||
@Resource
|
||||
private TaskCateMapper taskCateMapper;
|
||||
@Resource
|
||||
private CropMapper cropMapper;
|
||||
|
||||
@DubboReference
|
||||
private OpenErpService openErpService;
|
||||
@@ -286,8 +292,17 @@ public class DiscussServiceImpl implements DiscussService {
|
||||
cropRecordMapper.insert(cropRecordDO);
|
||||
|
||||
//todo 调用ERP出入库接口
|
||||
String hello = openErpService.hello();
|
||||
log.error("hello:{}",hello);
|
||||
CropDO cropDO = cropMapper.selectById(taskDO.getCropId());
|
||||
IntoStockMaterialDTO intoStock = IntoStockMaterialDTO.builder()
|
||||
.wareHouseId("1546738475384201217")
|
||||
.price(BigDecimal.ZERO)
|
||||
.materialId(cropDO.getMaterialId().toString())
|
||||
.num(new BigDecimal(reqVO.getCropNum()))
|
||||
.build();
|
||||
log.info("同步到ERP,,{}", intoStock);
|
||||
openErpService.intoStock(Arrays.asList(intoStock) );
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user