diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvSubWarehouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvSubWarehouseController.java index c93f7f0b..7550b3ec 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvSubWarehouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvSubWarehouseController.java @@ -2,14 +2,18 @@ package com.glxp.api.admin.controller.inventory; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.entity.auth.AuthAdmin; import com.glxp.api.admin.entity.inout.WarehouseBussinessTypeEntity; import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; import com.glxp.api.admin.entity.inventory.InvWarehouseEntity; +import com.glxp.api.admin.req.basic.FilterBasicThirdSysRequest; import com.glxp.api.admin.req.inout.DeleteRequest; import com.glxp.api.admin.req.inventory.FilterInvSubWarehouseRequest; import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.inventory.InvWarehouseThirdSysResponse; import com.glxp.api.admin.service.auth.CustomerService; import com.glxp.api.admin.service.inout.WarehouseBussinessTypeService; import com.glxp.api.admin.service.inventory.InvProductService; @@ -59,7 +63,6 @@ public class InvSubWarehouseController { // } - AuthAdmin authAdmin = customerService.getUserBean(); if (filterInvWarehouseRequest.getFilter() == null || filterInvWarehouseRequest.getFilter() == 1) { filterInvWarehouseRequest.setUserId(authAdmin.getId().intValue()); @@ -114,7 +117,7 @@ public class InvSubWarehouseController { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } - return ResultVOUtils.success(); + return ResultVOUtils.success("修改成功!"); } @AuthRuleAnnotation("") @@ -154,4 +157,49 @@ public class InvSubWarehouseController { return ResultVOUtils.success(); } + + @AuthRuleAnnotation("") + @GetMapping("/spms/sub/inv/warehouse/thridSys/detail") + public BaseResponse getThirdSysDetail(FilterInvSubWarehouseRequest request) { + if (null == request || null == request.getId()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + FilterBasicThirdSysRequest sysRequest = new FilterBasicThirdSysRequest(); + sysRequest.setEnabled(true); + List list = invSubWarehouseService.getThirdSysDetail(request.getId()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(list); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @AuthRuleAnnotation("") + @PostMapping("/spms/sub/inv/warehouse/bindThrWarehouse") + public BaseResponse bindThrWarehouse(String id, String thridWarehouseId, String sysId) { + if (null == id || null == thridWarehouseId || StrUtil.isBlank(sysId)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + invSubWarehouseService.bindThrWarehouse(id, thridWarehouseId, sysId); + return ResultVOUtils.success(); + } + + /** + * 解绑第三方仓库ID + * + * @param id + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/spms/sub/inv/warehouse/unbindThrWarehouse") + public BaseResponse unbindThrWarehouse(String id, String sysId) { + if (null == id || StrUtil.isBlank(sysId)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + invSubWarehouseService.unbindThrWarehouse(id, sysId); + return ResultVOUtils.success(); + } + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java index 57852cd9..18e0b704 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java @@ -2,6 +2,7 @@ package com.glxp.api.admin.controller.inventory; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -16,10 +17,12 @@ import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; import com.glxp.api.admin.entity.inventory.InvWarehouseEntity; import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; import com.glxp.api.admin.req.basic.BasicExportStatusRequest; import com.glxp.api.admin.req.basic.FilterBasicThirdSysRequest; import com.glxp.api.admin.req.inout.DeleteRequest; import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest; +import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.inventory.InvWarehouseExportResponse; import com.glxp.api.admin.res.inventory.InvWarehouseResponse; @@ -33,6 +36,7 @@ import com.glxp.api.admin.service.inventory.InvProductDetailService; import com.glxp.api.admin.service.inventory.InvSubWarehouseService; import com.glxp.api.admin.service.inventory.InvWarehouseService; import com.glxp.api.admin.service.thrsys.ThrInvWarehouseService; +import com.glxp.api.admin.service.thrsys.ThrSubInvWarehouseService; import com.glxp.api.admin.util.CustomUtil; import com.glxp.api.admin.util.DateUtil; import com.glxp.api.admin.util.FileUtils; @@ -419,7 +423,7 @@ public class InvWarehouseController { */ @AuthRuleAnnotation("") @PostMapping("/spms/inv/warehouse/bindThrWarehouse") - public BaseResponse bindThrWarehouse(Integer id, String thridWarehouseId, String sysId) { + public BaseResponse bindThrWarehouse(String id, String thridWarehouseId, String sysId) { if (null == id || null == thridWarehouseId || StrUtil.isBlank(sysId)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } @@ -435,7 +439,7 @@ public class InvWarehouseController { */ @AuthRuleAnnotation("") @PostMapping("/spms/inv/warehouse/unbindThrWarehouse") - public BaseResponse unbindThrWarehouse(Integer id, String sysId) { + public BaseResponse unbindThrWarehouse(String id, String sysId) { if (null == id || StrUtil.isBlank(sysId)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } @@ -465,5 +469,28 @@ public class InvWarehouseController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + ThrSubInvWarehouseService thrSubInvWarehouseService; + + @GetMapping("/spms/sub/inv/warehouse/filterThridInv") + public BaseResponse filterInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { + + InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(filterThrSubInvWarehouseRequest.getParentId()); + Object thirdId = ReflectUtil.getFieldValue(invWarehouseEntity, filterThrSubInvWarehouseRequest.getThirdSysFk()); + if (thirdId == null) { + return ResultVOUtils.error(500, "请先关联仓库对应的第三方仓库,再关联分库!"); + } + + filterThrSubInvWarehouseRequest.setParentId((String) thirdId); + + List thrInvWarehouseEntities = thrSubInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(thrInvWarehouseEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(thrInvWarehouseEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrInvWarehouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrInvWarehouseController.java index 3fded846..7afd19af 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrInvWarehouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrInvWarehouseController.java @@ -50,21 +50,6 @@ public class ThrInvWarehouseController { return ResultVOUtils.success(pageSimpleResponse); } - public List merge(List thrInvWarehouseEntities, Integer pid) { - List thrInvWarehouseResponses = new ArrayList<>(); - for (ThrInvWarehouseEntity thrInvWarehouseEntity : thrInvWarehouseEntities) { - ThrInvWarehouseResponse thrInvWarehouseResponse = new ThrInvWarehouseResponse(); - BeanUtils.copyProperties(thrInvWarehouseEntity, thrInvWarehouseResponse); - //查询第三方系统名称 - BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thrInvWarehouseEntity.getThirdSysFk()); - thrInvWarehouseResponse.setThirdName(basicThirdSysEntity.getThirdName()); - if (pid.equals(thrInvWarehouseEntity.getPid())) { - thrInvWarehouseResponse.setChildren(merge(thrInvWarehouseEntities, thrInvWarehouseEntity.getId())); - thrInvWarehouseResponses.add(thrInvWarehouseResponse); - } - } - return thrInvWarehouseResponses; - } @GetMapping("spms/thrsys/warehouse/filterAll") public BaseResponse filterAllInvWarehouse(FilterThrInvWarehouseRequest filterThrInvWarehouseRequest) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrScOrderController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrScOrderController.java index 6ea94b19..0cffe36f 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrScOrderController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrScOrderController.java @@ -2,6 +2,7 @@ package com.glxp.api.admin.controller.thrsys; import cn.hutool.core.collection.CollUtil; import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.constant.ConstantStatus; import com.glxp.api.admin.dao.basic.UdiRelevanceDao; import com.glxp.api.admin.dao.basic.UnitMaintainDao; import com.glxp.api.admin.dao.inventory.InvWarehouseDao; @@ -12,6 +13,7 @@ import com.glxp.api.admin.req.inout.AddOrderRequest; import com.glxp.api.admin.req.inout.PostOrderRequest; import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse; import com.glxp.api.admin.service.basic.BussinessOriginTypeService; +import com.glxp.api.admin.service.basic.BussinessTypeService; import com.glxp.api.admin.service.basic.UdiRelevanceService; import com.glxp.api.admin.service.basic.UnitMaintainService; import com.glxp.api.admin.util.FilterUdiUtils; @@ -30,6 +32,8 @@ public class ThrScOrderController { @Resource BussinessOriginTypeService bussinessOriginTypeService; @Resource + BussinessTypeService bussinessTypeService; + @Resource UnitMaintainDao unitMaintainDao; @Resource InvWarehouseDao invWarehouseDao; @@ -47,16 +51,53 @@ public class ThrScOrderController { } public String processOrder(ThrPostOrderRequest thrPostOrderRequest) { + PostOrderRequest postOrderRequest = new PostOrderRequest(); - BussinessOriginTypeResponse bussinessOriginTypeEntity = bussinessOriginTypeService.finByThirdAction(thrPostOrderRequest.getBillType()); - UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByThirdSys(thrPostOrderRequest.getThirdIdSys(), thrPostOrderRequest.getFromCorpId()); - InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectByThirdSys(thrPostOrderRequest.getThirdIdSys(), thrPostOrderRequest.getInvCode()); + + PostOrderRequest.PostOrder postOrderEntity = new PostOrderRequest.PostOrder(); List codeDetailEntityList = thrPostOrderRequest.getItems(); if (CollUtil.isEmpty(codeDetailEntityList)) { return "单据条码不能为空!"; } + BussinessOriginTypeResponse bussinessOriginTypeEntity = bussinessOriginTypeService.finByThirdAction(thrPostOrderRequest.getBillType()); + if (bussinessOriginTypeEntity == null) { + return "业务单据类型不匹配!"; + } + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(bussinessOriginTypeEntity.getAction()); + if (bussinessTypeEntity == null) { + return "扫码单据类型未关联!"; + } + + String fromCorpId = null; + String fromCorpName = null; + postOrderEntity.setBillType(bussinessTypeEntity.getAction()); + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByThirdSys(thrPostOrderRequest.getThirdIdSys(), thrPostOrderRequest.getFromCorpId()); + if (unitMaintainEntity == null) { + return "供应商信息未关联"; + } else { + fromCorpId = unitMaintainEntity.getErpId(); + fromCorpName = unitMaintainEntity.getName(); + } + } else if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) { + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectByThirdSys(thrPostOrderRequest.getThirdIdSys(), thrPostOrderRequest.getFromCorpId()); + if (invWarehouseEntity == null) { + return "仓库字典未关联"; + } else { + fromCorpId = invWarehouseEntity.getCode(); + fromCorpName = invWarehouseEntity.getName(); + } + } + + + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectByThirdSys(thrPostOrderRequest.getThirdIdSys(), thrPostOrderRequest.getInvCode()); + + +// InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectByThirdSys(thrPostOrderRequest.getThirdIdSys(), thrPostOrderRequest.getInvCode()); + + for (ThrPostOrderRequest.CodeDetailEntity codeDetailEntity : codeDetailEntityList) { UdiEntity udiEntity = FilterUdiUtils.getUdi(codeDetailEntity.getCode()); if (udiEntity == null) { @@ -67,10 +108,8 @@ public class ThrScOrderController { return "该物资编码:" + codeDetailEntity.getProductCode() + "未与UDI码:" + udiEntity.getUdi() + "做关联对照"; } - } - - PostOrderRequest postOrderRequest = new PostOrderRequest(); + } return null; diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrSubInvWarehouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrSubInvWarehouseController.java new file mode 100644 index 00000000..069cb3c8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrSubInvWarehouseController.java @@ -0,0 +1,103 @@ +package com.glxp.api.admin.controller.thrsys; + +import cn.hutool.core.util.IdUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; +import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; +import com.glxp.api.admin.req.inout.DeleteRequest; +import com.glxp.api.admin.req.inventory.FilterInvSubWarehouseRequest; +import com.glxp.api.admin.req.thrsys.FilterThrInvWarehouseRequest; +import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.service.thrsys.ThrSubInvWarehouseService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +@RestController +public class ThrSubInvWarehouseController { + + @Resource + ThrSubInvWarehouseService thrSubInvWarehouseService; + + @GetMapping("/thirdSys/sub/inv/warehouse/filter") + public BaseResponse filterInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { + List thrInvWarehouseEntities = thrSubInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(thrInvWarehouseEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(thrInvWarehouseEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("") + @GetMapping("/thirdSys/sub/inv/warehouse/filterAll") + public BaseResponse filterAllInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { + List invSubWarehouseEntities = thrSubInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); + return ResultVOUtils.success(invSubWarehouseEntities); + } + + @AuthRuleAnnotation("") + @PostMapping("/thirdSys/sub/inv/warehouse/save") + public BaseResponse save(@RequestBody @Valid ThrSubInvWarehouseEntity invSubWarehouseEntity, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + invSubWarehouseEntity.setId(IdUtil.getSnowflake(6, 1).nextId() + ""); + boolean b = thrSubInvWarehouseService.insertThrInvWarehouse(invSubWarehouseEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + return ResultVOUtils.success("添加成功!"); + } + + @AuthRuleAnnotation("") + @PostMapping("/thirdSys/sub/inv/warehouse/edit") + public BaseResponse edit(@RequestBody @Valid ThrSubInvWarehouseEntity invSubWarehouseEntity, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (invSubWarehouseEntity.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean b = thrSubInvWarehouseService.updateThrInvWarehouse(invSubWarehouseEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success("修改成功!"); + } + + + @AuthRuleAnnotation("") + @PostMapping("/thirdSys/sub/inv/warehouse/delete") + public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) { + + if (deleteRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean b = thrSubInvWarehouseService.deleteById(deleteRequest.getId()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success("刪除成功!"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvSubWarehouseDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvSubWarehouseDao.java index 8049e11a..86597db6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvSubWarehouseDao.java +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvSubWarehouseDao.java @@ -1,6 +1,7 @@ package com.glxp.api.admin.dao.inventory; import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; +import com.glxp.api.admin.req.basic.FilterBasicThirdSysRequest; import com.glxp.api.admin.req.inventory.FilterInvSubWarehouseRequest; import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest; import org.apache.ibatis.annotations.Mapper; @@ -43,4 +44,11 @@ public interface InvSubWarehouseDao { * @return */ String selectNameByCode(@Param("code") String code); + + + InvSubWarehouseEntity selectJoinThirdSys(FilterInvSubWarehouseRequest filterInvSubWarehouseRequest); + + + boolean updateThridId(@Param("id") String id, @Param("thridWarehouseId") String thridWarehouseId, @Param("sysId") String sysId); + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvWarehouseDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvWarehouseDao.java index 3bd33731..60b88fea 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvWarehouseDao.java +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvWarehouseDao.java @@ -43,7 +43,7 @@ public interface InvWarehouseDao { * @param sysId * @return */ - boolean updateThridId(@Param("id") Integer id, @Param("thridWarehouseId") String thridWarehouseId, @Param("sysId") String sysId); + boolean updateThridId(@Param("id") String id, @Param("thridWarehouseId") String thridWarehouseId, @Param("sysId") String sysId); boolean updateTime(@Param("code") String code, @Param("updateTime") Date updateTime); diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrInvWarehouseDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrInvWarehouseDao.java index e7636a75..e8b6741e 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrInvWarehouseDao.java +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrInvWarehouseDao.java @@ -2,10 +2,12 @@ package com.glxp.api.admin.dao.thrsys; import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity; import com.glxp.api.admin.req.thrsys.FilterThrInvWarehouseRequest; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +@Mapper public interface ThrInvWarehouseDao { List filterThrInvWarehouse(FilterThrInvWarehouseRequest filterThrInvWarehouseRequest); diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrSubInvWarehouseDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrSubInvWarehouseDao.java new file mode 100644 index 00000000..a599cbd2 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/thrsys/ThrSubInvWarehouseDao.java @@ -0,0 +1,25 @@ +package com.glxp.api.admin.dao.thrsys; + +import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; +import com.glxp.api.admin.req.thrsys.FilterThrInvWarehouseRequest; +import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface ThrSubInvWarehouseDao { + + + List filterThrInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest); + + boolean insertThrInvWarehouse(ThrSubInvWarehouseEntity thrInvWarehouseEntity); + + boolean insertInvWarehouses(@Param("thrInvWarehouseEntitys") List thrInvWarehouseEntitys); + + boolean updateThrInvWarehouse(ThrSubInvWarehouseEntity thrInvWarehouseEntity); + + boolean deleteById(@Param("id") String id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java index aae33544..a74c7ec2 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java @@ -12,5 +12,14 @@ public class InvSubWarehouseEntity { private String remark; private boolean defaultInv; - + private String thirdId; + private String thirdName; + private String thirdId1; + private String thirdName1; + private String thirdId2; + private String thirdName2; + private String thirdId3; + private String thirdName3; + private String thirdId4; + private String thirdName4; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrSubInvWarehouseEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrSubInvWarehouseEntity.java new file mode 100644 index 00000000..a278fa10 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrSubInvWarehouseEntity.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.entity.thrsys; + +import lombok.Data; + +@Data +public class ThrSubInvWarehouseEntity { + + + private String id; + private String code; + private String name; + private String parentId; + private String remark; + private String thirdSysFk; + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderDetail.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderDetail.java index b4170815..4d50b354 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderDetail.java +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderDetail.java @@ -3,6 +3,7 @@ package com.glxp.api.admin.httpclient.req; import lombok.Data; import java.math.BigDecimal; +import java.util.List; @Data public class UdiwmsOrderDetail { @@ -26,6 +27,14 @@ public class UdiwmsOrderDetail { private String remark1; //备注1/规格型号ID private String remark2; //备注2/型号 private String remark3; //备注3/规格 + private List codeList; + + @Data + public static class CodeDetaiEntity { + private String code; + private String nameCode; + private Integer count; + } } diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/thrsys/FilterThrSubInvWarehouseRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/thrsys/FilterThrSubInvWarehouseRequest.java new file mode 100644 index 00000000..9884893c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/thrsys/FilterThrSubInvWarehouseRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.req.thrsys; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class FilterThrSubInvWarehouseRequest extends ListPageRequest { + + private String id; + private String code; + private String name; + private String parentId; + private String thirdSysFk; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java index 52c541a4..d50dd179 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java @@ -21,6 +21,7 @@ import com.glxp.api.admin.entity.business.StockOrderEntity; import com.glxp.api.admin.entity.business.StockOrderPrintEntity; import com.glxp.api.admin.entity.business.StockOrderUploadLogEntity; import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; import com.glxp.api.admin.entity.inventory.InvWarehouseEntity; import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity; import com.glxp.api.admin.httpclient.req.UdiwmsOrderDetail; @@ -37,6 +38,7 @@ import com.glxp.api.admin.service.basic.BussinessLocalTypeService; import com.glxp.api.admin.service.basic.UdiRelevanceService; import com.glxp.api.admin.service.business.StockOrderService; import com.glxp.api.admin.service.business.StockOrderUploadLogService; +import com.glxp.api.admin.service.inout.CodesService; import com.glxp.api.admin.service.inout.OrderService; import com.glxp.api.admin.service.inventory.InvWarehouseService; import com.glxp.api.admin.service.thrsys.ThrInvWarehouseService; @@ -85,6 +87,8 @@ public class StockOrderServiceImpl implements StockOrderService { private BasicThirdSysBusApiDao basicThirdSysBusApiDao; @Resource private StockOrderUploadLogService stockOrderUploadLogService; + @Resource + private CodesService codesService; @Override public List listStockOrders(StockOrderQueryRequest stockOrderQueryRequest) { @@ -285,12 +289,23 @@ public class StockOrderServiceImpl implements StockOrderService { udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注 //组装明细数据 + List warehouseEntities = codesService.findByReceiptId(stockOrderEntity.getOrderIdFk()); List items = new ArrayList<>(stockOrderDetailEntities.size()); for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) { UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(stockOrderDetailEntity.getRelId()); UdiwmsOrderDetail item = new UdiwmsOrderDetail(); BeanUtil.copyProperties(stockOrderDetailEntity, item); + List warehouseEntityList = filterCodes(stockOrderDetailEntity, warehouseEntities); + if (CollUtil.isNotEmpty(warehouseEntityList)) { + List codeDetaiEntities = new ArrayList<>(); + warehouseEntityList.forEach(warehouseEntity -> { + UdiwmsOrderDetail.CodeDetaiEntity codeDetaiEntity = new UdiwmsOrderDetail.CodeDetaiEntity(); + BeanUtils.copyProperties(warehouseEntity, codeDetaiEntity); + codeDetaiEntities.add(codeDetaiEntity); + }); + item.setCodeList(codeDetaiEntities); + } try { String thirdProductId = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdId); item.setProductId(thirdProductId); @@ -360,6 +375,22 @@ public class StockOrderServiceImpl implements StockOrderService { } + + public List filterCodes(StockOrderDetailEntity stockOrderDetailEntity, List warehouseEntities) { + + List results = new ArrayList<>(); + if (CollUtil.isNotEmpty(warehouseEntities)) { + for (WarehouseEntity warehouseEntity : warehouseEntities) { + if (StrUtil.trimToEmpty(warehouseEntity.getRelId()) == StrUtil.trimToEmpty(stockOrderDetailEntity.getRelId()) + && StrUtil.trimToEmpty(warehouseEntity.getBatchNo()) == StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo()) + ) { + results.add(warehouseEntity); + } + } + } + return results; + } + @Override public List filter(StockOrderUploadRequest request) { if (null == request) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvSubWarehouseService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvSubWarehouseService.java index 679657c2..473bb359 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvSubWarehouseService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvSubWarehouseService.java @@ -2,8 +2,10 @@ package com.glxp.api.admin.service.inventory; import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; +import com.glxp.api.admin.req.basic.FilterBasicThirdSysRequest; import com.glxp.api.admin.req.inventory.FilterInvSubWarehouseRequest; import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest; +import com.glxp.api.admin.res.inventory.InvWarehouseThirdSysResponse; import java.util.List; @@ -38,4 +40,12 @@ public interface InvSubWarehouseService { * @return */ String getSubInvName(String subInvCode); + + List getThirdSysDetail(String id); + + boolean bindThrWarehouse(String id, String thridWarehouseId, String sysId); + + boolean unbindThrWarehouse(String id, String sysId); + + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvWarehouseService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvWarehouseService.java index a055a966..c6d9c2eb 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvWarehouseService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvWarehouseService.java @@ -44,7 +44,7 @@ public interface InvWarehouseService { * @param id * @param thridWarehouseId */ - boolean bindThrWarehouse(Integer id, String thridWarehouseId, String sysId); + boolean bindThrWarehouse(String id, String thridWarehouseId, String sysId); /** * 解绑第三方仓库 @@ -52,7 +52,7 @@ public interface InvWarehouseService { * @param id * @param thridWarehouseId */ - boolean unbindThrWarehouse(Integer id, String sysId); + boolean unbindThrWarehouse(String id, String sysId); /** * 查询第三方系统和仓库信息关联数据 diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvSubWarehouseServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvSubWarehouseServiceImpl.java index 12ff6060..9352df49 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvSubWarehouseServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvSubWarehouseServiceImpl.java @@ -1,16 +1,22 @@ package com.glxp.api.admin.service.inventory.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.basic.BasicThirdSysDao; import com.glxp.api.admin.dao.inventory.InvSubWarehouseDao; +import com.glxp.api.admin.entity.basic.BasicThirdSysEntity; import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; +import com.glxp.api.admin.req.basic.FilterBasicThirdSysRequest; import com.glxp.api.admin.req.inventory.FilterInvSubWarehouseRequest; import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest; +import com.glxp.api.admin.res.inventory.InvWarehouseThirdSysResponse; import com.glxp.api.admin.service.inventory.InvSubWarehouseService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -20,6 +26,8 @@ public class InvSubWarehouseServiceImpl implements InvSubWarehouseService { @Resource InvSubWarehouseDao invSubWarehouseDao; + @Resource + private BasicThirdSysDao basicThirdSysDao; @Override public InvSubWarehouseEntity findById(String id) { @@ -118,4 +126,55 @@ public class InvSubWarehouseServiceImpl implements InvSubWarehouseService { } return invSubWarehouseDao.selectNameByCode(subInvCode); } + + @Override + public List getThirdSysDetail(String id) { + FilterBasicThirdSysRequest sysRequest = new FilterBasicThirdSysRequest(); + sysRequest.setEnabled(true); + List data = basicThirdSysDao.filterBasicThiSys(sysRequest); + if (CollUtil.isEmpty(data)) + return null; + FilterInvSubWarehouseRequest tempReqeust = new FilterInvSubWarehouseRequest(); + tempReqeust.setCode(id); + InvSubWarehouseEntity invSubWarehouseEntity = invSubWarehouseDao.selectJoinThirdSys(tempReqeust); + List invWarehouseThirdSysResponses = new ArrayList<>(); + for (BasicThirdSysEntity sys : data) { + InvWarehouseThirdSysResponse invWarehouseThirdSysResponse = new InvWarehouseThirdSysResponse(); + invWarehouseThirdSysResponse.setSysId(sys.getThirdId()); + invWarehouseThirdSysResponse.setSysName(sys.getThirdName()); + invWarehouseThirdSysResponse.setCode(invSubWarehouseEntity.getCode()); + invWarehouseThirdSysResponse.setName(invSubWarehouseEntity.getName()); + if (sys.getThirdId().equals("thirdId")) { + invWarehouseThirdSysResponse.setThirdId(invSubWarehouseEntity.getThirdId()); + invWarehouseThirdSysResponse.setThirdName(invSubWarehouseEntity.getThirdName()); + } else if (sys.getThirdId().equals("thirdId1")) { + invWarehouseThirdSysResponse.setThirdId(invSubWarehouseEntity.getThirdId1()); + invWarehouseThirdSysResponse.setThirdName(invSubWarehouseEntity.getThirdName1()); + } else if (sys.getThirdId().equals("thirdId2")) { + invWarehouseThirdSysResponse.setThirdId(invSubWarehouseEntity.getThirdId2()); + invWarehouseThirdSysResponse.setThirdName(invSubWarehouseEntity.getThirdName2()); + } else if (sys.getThirdId().equals("thirdId3")) { + invWarehouseThirdSysResponse.setThirdId(invSubWarehouseEntity.getThirdId3()); + invWarehouseThirdSysResponse.setThirdName(invSubWarehouseEntity.getThirdName3()); + } else if (sys.getThirdId().equals("thirdId4")) { + invWarehouseThirdSysResponse.setThirdId(invSubWarehouseEntity.getThirdId4()); + invWarehouseThirdSysResponse.setThirdName(invSubWarehouseEntity.getThirdName4()); + } + invWarehouseThirdSysResponses.add(invWarehouseThirdSysResponse); + } + + return invWarehouseThirdSysResponses; + } + + @Override + public boolean bindThrWarehouse(String id, String thridWarehouseId, String sysId) { + return invSubWarehouseDao.updateThridId(id, thridWarehouseId, sysId); + } + + @Override + public boolean unbindThrWarehouse(String id, String sysId) { + + return invSubWarehouseDao.updateThridId(id, null, sysId); + + } } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvWarehouseServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvWarehouseServiceImpl.java index 5cd05bcc..0fdba7ff 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvWarehouseServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvWarehouseServiceImpl.java @@ -126,12 +126,12 @@ public class InvWarehouseServiceImpl implements InvWarehouseService { } @Override - public boolean bindThrWarehouse(Integer id, String thridWarehouseId, String sysId) { + public boolean bindThrWarehouse(String id, String thridWarehouseId, String sysId) { return invWarehouseDao.updateThridId(id, thridWarehouseId, sysId); } @Override - public boolean unbindThrWarehouse(Integer id, String sysId) { + public boolean unbindThrWarehouse(String id, String sysId) { return invWarehouseDao.updateThridId(id, null, sysId); // InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectById(id + ""); diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java new file mode 100644 index 00000000..fba03aa4 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.service.thrsys; + + +import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; +import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; + +import java.util.List; + +public interface ThrSubInvWarehouseService { + + List filterThrInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest); + + boolean insertThrInvWarehouse(ThrSubInvWarehouseEntity thrSubInvWarehouseEntity); + + boolean insertInvWarehouses(List thrSubInvWarehouseEntities); + + boolean updateThrInvWarehouse(ThrSubInvWarehouseEntity thrSubInvWarehouseEntity); + + boolean deleteById(String id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java new file mode 100644 index 00000000..006fce7f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java @@ -0,0 +1,53 @@ +package com.glxp.api.admin.service.thrsys.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.thrsys.ThrSubInvWarehouseDao; +import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; +import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; +import com.glxp.api.admin.service.thrsys.ThrSubInvWarehouseService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class ThrSubInvWarehouseServiceImpl implements ThrSubInvWarehouseService { + + @Resource + ThrSubInvWarehouseDao thrSubInvWarehouseDao; + + + @Override + public List filterThrInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { + if (filterThrSubInvWarehouseRequest == null) { + return Collections.emptyList(); + } + if (filterThrSubInvWarehouseRequest.getPage() != null) { + int offset = (filterThrSubInvWarehouseRequest.getPage() - 1) * filterThrSubInvWarehouseRequest.getLimit(); + PageHelper.offsetPage(offset, filterThrSubInvWarehouseRequest.getLimit()); + } + return thrSubInvWarehouseDao.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); + } + + @Override + public boolean insertThrInvWarehouse(ThrSubInvWarehouseEntity thrInvWarehouseEntity) { + return thrSubInvWarehouseDao.insertThrInvWarehouse(thrInvWarehouseEntity); + } + + @Override + public boolean insertInvWarehouses(List thrInvWarehouseEntitys) { + return thrSubInvWarehouseDao.insertInvWarehouses(thrInvWarehouseEntitys); + } + + @Override + public boolean updateThrInvWarehouse(ThrSubInvWarehouseEntity thrInvWarehouseEntity) { + return thrSubInvWarehouseDao.updateThrInvWarehouse(thrInvWarehouseEntity); + } + + @Override + public boolean deleteById(String id) { + return thrSubInvWarehouseDao.deleteById(id); + } + +} diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvSubWarehouseDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvSubWarehouseDao.xml index 9dc511c0..cb8e36b6 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvSubWarehouseDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvSubWarehouseDao.xml @@ -28,6 +28,29 @@ + + - select count(*) from inv_warehouse_sub where parentId = #{parentId} and name = #{name} + select count(*) + from inv_warehouse_sub + where parentId = #{parentId} + and name = #{name} + + + + + update inv_warehouse_sub + set ${sysId} = #{thridWarehouseId,jdbcType=VARCHAR} + where id = #{id} + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrSubInvWarehouseDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrSubInvWarehouseDao.xml new file mode 100644 index 00000000..26b0b7d0 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrSubInvWarehouseDao.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + replace + INTO thr_inv_warehouse_sub + (id, code, `name`, parentId, remark, thirdSysFk) + values ( + #{id}, + #{code}, + #{name}, + #{parentId}, + #{remark}, + #{thirdSysFk} + ) + + + + replace INTO thr_inv_warehouse_sub + (id, code, `name`, parentId, remark, thirdSysFk) + VALUES + + ( + #{id}, #{item.code}, + #{item.name}, #{parentId} + #{item.remark}, #{item.thirdSysFk}) + + + + + DELETE + FROM thr_inv_warehouse_sub + WHERE id = #{id} + + + + UPDATE thr_inv_warehouse_sub + + `name`=#{name}, + code=#{code}, + parentId=#{parentId}, + remark=#{remark}, + thirdSysFk=#{thirdSysFk}, + + WHERE id = #{id} + + + + \ No newline at end of file