Browse Source

采收 作物 同步到ERP

zyh
zhanyunjiu 3 years ago
parent
commit
333c63bb62
  1. 11
      yudao-server/src/main/resources/application-local.yaml
  2. 2
      zsw-erp/pom.xml
  3. 8
      zsw-farm/zsw-farm-api/src/main/java/dubbo/config/OutFilter.java
  4. 24
      zsw-farm/zsw-farm-api/src/main/java/dubbo/dto/IntoStockMaterialDTO.java
  5. 19
      zsw-farm/zsw-farm-api/src/main/java/dubbo/service/OpenErpService.java
  6. 24
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/TestController.java
  7. 44
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/CropController.java
  8. 14
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/dto/ErpMaterialDTO.java
  9. 11
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropBaseVO.java
  10. 10
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropExcelVO.java
  11. 12
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropExportReqVO.java
  12. 3
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropPageReqVO.java
  13. 10
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/crop/CropDO.java
  14. 8
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/crop/CropService.java
  15. 37
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/crop/CropServiceImpl.java
  16. 19
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/discuss/DiscussServiceImpl.java

11
yudao-server/src/main/resources/application-local.yaml

@ -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

2
zsw-erp/pom.xml

@ -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>

8
zsw-farm/zsw-farm-api/src/main/java/dubbo/config/OutFilter.java

@ -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);
}
}

24
zsw-farm/zsw-farm-api/src/main/java/dubbo/dto/IntoStockMaterialDTO.java

@ -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;
}

19
zsw-farm/zsw-farm-api/src/main/java/dubbo/service/OpenErpService.java

@ -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);
}

24
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/TestController.java

@ -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) );
}
}

44
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/CropController.java

@ -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
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/dto/ErpMaterialDTO.java

@ -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 ;
}

11
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropBaseVO.java

@ -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;
}

10
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropExcelVO.java

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.farm.controller.admin.crop.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.fastjson.JSONArray;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import lombok.Data;
import com.alibaba.excel.annotation.ExcelProperty;
import java.util.Date;
/**
* Excel VO
@ -32,4 +31,7 @@ public class CropExcelVO {
private Boolean pretendDelete;
@ExcelProperty("ERP Material Id")
private Long materialId;
}

12
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropExportReqVO.java

@ -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
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/crop/vo/CropPageReqVO.java

@ -34,4 +34,7 @@ public class CropPageReqVO extends PageParam {
private Boolean pretendDelete = false;
@ApiModelProperty("ERP Material Id")
private Long materialId;
}

10
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/crop/CropDO.java

@ -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
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/crop/CropService.java

@ -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();
}

37
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/crop/CropServiceImpl.java

@ -1,19 +1,27 @@
package cn.iocoder.yudao.module.farm.service.crop;
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.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 org.springframework.validation.annotation.Validated;
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;
}
}

19
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/discuss/DiscussServiceImpl.java

@ -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) );
}
}

Loading…
Cancel
Save