From bdb60333255515f4e9628c801cb0eafbd62be8ce Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Sun, 20 Mar 2022 21:17:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E8=A6=81=E4=BF=AE=E5=A4=8D=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E6=A0=A1=E9=AA=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/StockOrderController.java | 2 + .../controller/inout/OrderController.java | 21 ++ .../inout/OrderDetailController.java | 138 +++++++------ .../controller/inout/WareHouseController.java | 8 +- .../inout/utils/ContrastErpUtil.java | 1 + .../dao/basic/BussinessLocalTypeDao.java | 4 + .../req/basic/BusOriginJoinFilterRequest.java | 11 + .../basic/BussinessOriginTypeResponse.java | 6 + .../basic/BussinessLocalTypeService.java | 5 + .../impl/BussinessLocalTypeServiceImpl.java | 34 +++ .../basic/impl/BussinessTypeServiceImpl.java | 35 ++-- .../api/admin/thread/IoTransInoutService.java | 195 +++++++++++------- .../mapper/basic/BussinessLocalTypeDao.xml | 28 ++- .../mybatis/mapper/basic/BussinessTypeDao.xml | 2 +- 14 files changed, 329 insertions(+), 161 deletions(-) create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/BusOriginJoinFilterRequest.java diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/business/StockOrderController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/business/StockOrderController.java index 20f7f36b..8a0c5e10 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/business/StockOrderController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/business/StockOrderController.java @@ -315,6 +315,7 @@ public class StockOrderController { for (StockOrderDetailEntity thrOrderDetailEntity : stockOrderDetailEntityList) { ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder(); BeanUtils.copyProperties(thrOrderDetailEntity, subErpOrder); + subErpOrder.setRelId(thrOrderDetailEntity.getProductId()); subErpOrders.add(subErpOrder); } } @@ -501,6 +502,7 @@ public class StockOrderController { return ResultVOUtils.success(billNo); } + /** * 导出已验收单据数据接口 * diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java index 86b0e4fd..277eac3b 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java @@ -307,6 +307,27 @@ public class OrderController { return ResultVOUtils.success("合并成功,后台正在数据转换,请稍后刷新重试!"); } + //异常单据撤回 + @AuthRuleAnnotation("") + @GetMapping("/spms/inout/order/revoke") + public BaseResponse revokeOrder(OrderFilterRequest orderFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + OrderEntity orderEntity = orderService.findById(orderFilterRequest.getId()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN); + List warehouseEntityList = codesService.findByReceiptId(orderEntity.getId()); + codesTempService.insertCodesTemp(warehouseEntityList); + codesService.deleteByOrderId(orderEntity.getId()); + orderService.updateOrder(orderEntity); + + return ResultVOUtils.success("单据撤回成功!"); + + } public List getDocids(List mergeList) { List docids = new ArrayList<>(); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java index c0e9dd49..fb28a3be 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java @@ -23,10 +23,7 @@ import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse; import com.glxp.api.admin.res.inout.ErpOrderResponse; import com.glxp.api.admin.req.inout.*; import com.glxp.api.admin.res.PageSimpleResponse; -import com.glxp.api.admin.service.basic.BussinessOriginTypeService; -import com.glxp.api.admin.service.basic.BussinessTypeService; -import com.glxp.api.admin.service.basic.UdiInfoService; -import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.basic.*; import com.glxp.api.admin.service.business.StockOrderDetailService; import com.glxp.api.admin.service.business.StockOrderService; import com.glxp.api.admin.service.info.SystemParamConfigService; @@ -75,6 +72,8 @@ public class OrderDetailController { @Resource private BussinessTypeService bussinessTypeService; @Resource + private BussinessLocalTypeService bussinessLocalTypeService; + @Resource private ThrOrderService thrOrderService; @Resource private ThrOrderDetailService thrOrderDetailService; @@ -145,85 +144,94 @@ public class OrderDetailController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessTypeService.findByActionKey(filterErpOrderRequest.getBillAction(), "orderQueryUrl"); - if (basicThirdSysDetailEntity == null || !basicThirdSysDetailEntity.getEnabled()) { - return ResultVOUtils.error(500, "第三方业务单据服务未启用"); - } - if (basicThirdSysDetailEntity.getThirdSysFk() == null) { - return ResultVOUtils.error(500, "第三方业务单据服务未关联"); - } + BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessLocalTypeService.findOriginJoinByAction(filterErpOrderRequest.getBillAction()); + if (bussinessOriginTypeResponse.getThirdSys() != null) { + BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessLocalTypeService.findByActionKey(filterErpOrderRequest.getBillAction(), "orderQueryUrl"); + if (basicThirdSysDetailEntity == null || !basicThirdSysDetailEntity.getEnabled()) { + return ResultVOUtils.error(500, "第三方业务单据服务未启用"); + } - if (filterErpOrderRequest.getIsDownThrSys() != null && filterErpOrderRequest.getIsDownThrSys()) { - return new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest); - } + if (basicThirdSysDetailEntity.getThirdSysFk() == null) { + return ResultVOUtils.error(500, "第三方业务单据服务未关联"); + } + + if (filterErpOrderRequest.getIsDownThrSys() != null && filterErpOrderRequest.getIsDownThrSys()) { + return new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest); + } // if (filterErpOrderRequest.getIsLocal() != null && filterErpOrderRequest.getIsLocal()) { // return getLoaclData(filterErpOrderRequest); // } - if (basicThirdSysDetailEntity.getLocalAction() != null && basicThirdSysDetailEntity.getThirdSysFk() == null) { - filterErpOrderRequest.setLocalAction(basicThirdSysDetailEntity.getLocalAction()); - return getLoaclData(filterErpOrderRequest); - } - - if (basicThirdSysDetailEntity.getFromType() != null && basicThirdSysDetailEntity.getFromType() == 0) { - if (basicThirdSysDetailEntity.getValue() == null) { - return ResultVOUtils.error(500, "业务单据查询接口未定义"); + if (bussinessOriginTypeResponse.getLocalAction() != null && basicThirdSysDetailEntity.getThirdSysFk() == null) { + filterErpOrderRequest.setLocalAction(bussinessOriginTypeResponse.getLocalAction()); + return getLoaclData(filterErpOrderRequest); } - filterErpOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction()); - BaseResponse> baseResponse = new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest); + + if (basicThirdSysDetailEntity.getFromType() != null && basicThirdSysDetailEntity.getFromType() == 0) { + if (basicThirdSysDetailEntity.getValue() == null) { + return ResultVOUtils.error(500, "业务单据查询接口未定义"); + } + filterErpOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction()); + BaseResponse> baseResponse = new ErpOrderClient(basicThirdSysDetailEntity.getValue()).getErpOrderResponse(filterErpOrderRequest); // - if (basicThirdSysDetailEntity.getLocalAction() != null) { - if (baseResponse.getData().getList() != null) { - BaseResponse> loca = getLoaclData(filterErpOrderRequest); - baseResponse.getData().getList().addAll(loca.getData().getList()); + if (bussinessOriginTypeResponse.getLocalAction() != null) { + if (baseResponse.getData().getList() != null) { + BaseResponse> loca = getLoaclData(filterErpOrderRequest); + baseResponse.getData().getList().addAll(loca.getData().getList()); + } } - } - return baseResponse; + return baseResponse; - } else { - FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); - BeanUtils.copyProperties(filterErpOrderRequest, filterThrOrderRequest); - filterThrOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction()); - filterThrOrderRequest.setPage(filterErpOrderRequest.getPage()); - filterThrOrderRequest.setLimit(filterErpOrderRequest.getLimit()); - List erpOrderResponses = new ArrayList<>(); - List data = thrOrderService.filterThrOrder(filterThrOrderRequest); - if (data != null && data.size() > 0) { - for (ThrOrderEntity thrOrderEntity : data) { - FilterThrOrderDetailRequest filterThrOrderDetailRequest = new FilterThrOrderDetailRequest(); - filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + ""); - List thrOrderDetailEntities = thrOrderDetailService.filterThrOrderDetailDetail(filterThrOrderDetailRequest); - ErpOrderResponse erpOrderResponse = new ErpOrderResponse(); - BeanUtils.copyProperties(thrOrderEntity, erpOrderResponse); - List subErpOrders = new ArrayList<>(); - if (thrOrderDetailEntities != null && thrOrderDetailEntities.size() > 0) { - for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) { - ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder(); - BeanUtils.copyProperties(thrOrderDetailEntity, subErpOrder); - subErpOrders.add(subErpOrder); + } else { + FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); + BeanUtils.copyProperties(filterErpOrderRequest, filterThrOrderRequest); + filterThrOrderRequest.setBillAction(basicThirdSysDetailEntity.getThirdAction()); + filterThrOrderRequest.setPage(filterErpOrderRequest.getPage()); + filterThrOrderRequest.setLimit(filterErpOrderRequest.getLimit()); + List erpOrderResponses = new ArrayList<>(); + List data = thrOrderService.filterThrOrder(filterThrOrderRequest); + if (data != null && data.size() > 0) { + for (ThrOrderEntity thrOrderEntity : data) { + FilterThrOrderDetailRequest filterThrOrderDetailRequest = new FilterThrOrderDetailRequest(); + filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + ""); + List thrOrderDetailEntities = thrOrderDetailService.filterThrOrderDetailDetail(filterThrOrderDetailRequest); + ErpOrderResponse erpOrderResponse = new ErpOrderResponse(); + BeanUtils.copyProperties(thrOrderEntity, erpOrderResponse); + List subErpOrders = new ArrayList<>(); + if (thrOrderDetailEntities != null && thrOrderDetailEntities.size() > 0) { + for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) { + ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder(); + BeanUtils.copyProperties(thrOrderDetailEntity, subErpOrder); + subErpOrders.add(subErpOrder); + } } + erpOrderResponse.setSubErpOrders(subErpOrders); + erpOrderResponses.add(erpOrderResponse); } - erpOrderResponse.setSubErpOrders(subErpOrders); - erpOrderResponses.add(erpOrderResponse); } - } - if (basicThirdSysDetailEntity.getLocalAction() != null) { - BaseResponse> loca = getLoaclData(filterErpOrderRequest); - erpOrderResponses.addAll(loca.getData().getList()); - } - PageInfo pageInfo; - pageInfo = new PageInfo<>(data); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(erpOrderResponses); - return ResultVOUtils.success(pageSimpleResponse); + if (bussinessOriginTypeResponse.getLocalAction() != null) { + BaseResponse> loca = getLoaclData(filterErpOrderRequest); + erpOrderResponses.addAll(loca.getData().getList()); + } + PageInfo pageInfo; + pageInfo = new PageInfo<>(data); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(erpOrderResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + } else { + BaseResponse> loca = getLoaclData(filterErpOrderRequest); + return loca; } + + } @GetMapping("/udiwms/erpOrder/addStockOrder") @@ -521,6 +529,8 @@ public class OrderDetailController { erpOrderEntity.setGoodsid(subPurchase.getProductId()); erpOrderEntity.setGoodsname(subPurchase.getProductName()); erpOrderEntity.setRelIdFk(subPurchase.getRelId()); + erpOrderEntity.setProductDate(subPurchase.getProductDate()); + erpOrderEntity.setExpireDate(subPurchase.getExpireDate()); erpOrderEntity.setBatchNo(subPurchase.getBatchNo()); if (subPurchase.getCount() != null) erpOrderEntity.setErpCount(Math.abs(Integer.parseInt(subPurchase.getCount()))); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java index e86a0eff..8450f6c9 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java @@ -23,6 +23,7 @@ import com.glxp.api.admin.service.basic.BussinessTypeService; import com.glxp.api.admin.service.info.CompanyService; import com.glxp.api.admin.service.inout.*; import com.glxp.api.admin.thread.IoTransInoutService; +import com.glxp.api.admin.util.CustomUtil; import com.glxp.api.admin.util.DateUtil; import com.glxp.api.admin.util.FileUtils; import com.glxp.api.admin.util.FilterUdiUtils; @@ -268,6 +269,8 @@ public class WareHouseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } try { + Integer userId = customerService.getUserId(); + postOrderRequest.setUserId(userId); transInoutService.creatOrderAsycn(postOrderRequest, null); } catch (Exception e) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); @@ -327,7 +330,7 @@ public class WareHouseController { return ResultVOUtils.error(500, "UDI码格式错误!"); String orderId = addOrderRequest.getOrderId(); if (StringUtils.isBlank(orderId)) { - orderId = System.currentTimeMillis() + new Random().nextInt(10) + ""; + orderId = "SM" + CustomUtil.getId(); OrderEntity orderSaveRequest = new OrderEntity(); orderSaveRequest.setId(orderId); if (addOrderRequest.getActDate() != null) { @@ -335,7 +338,8 @@ public class WareHouseController { } BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(addOrderRequest.getAction()); orderSaveRequest.setMainAction(bussinessTypeEntity.getMainAction()); - + Integer userId = customerService.getUserId(); + orderSaveRequest.setCreateUser(userId); orderSaveRequest.setLocStorageCode(addOrderRequest.getLocStorageCode()); orderSaveRequest.setAction(addOrderRequest.getAction()); orderSaveRequest.setActor(addOrderRequest.getActor()); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java index 86e39a59..50533881 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java @@ -284,6 +284,7 @@ public class ContrastErpUtil { if (erpOrderEntity.getRelIdFk() != null) { udiRelevanceResponse = udiRelevanceService.selectGroupById(erpOrderEntity.getRelIdFk()); } else { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(erpOrderEntity.getGoodsid(), bussinessTypeEntity.getThirdSys()); if (udiRelevanceEntity != null) { udiRelevanceResponse = udiRelevanceService.selectGroupById(udiRelevanceEntity.getId()); diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessLocalTypeDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessLocalTypeDao.java index 61f9d593..004dd913 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessLocalTypeDao.java +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessLocalTypeDao.java @@ -1,8 +1,10 @@ package com.glxp.api.admin.dao.basic; import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity; +import com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest; import com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest; import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; +import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,6 +20,8 @@ public interface BussinessLocalTypeDao { List filterJoin(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest); + List filterJoinOrigin(BusOriginJoinFilterRequest busOriginJoinFilterRequest); + List filterJoinByUser(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest); List filterLeftJoin(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest); diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/BusOriginJoinFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/BusOriginJoinFilterRequest.java new file mode 100644 index 00000000..3a6a8957 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/BusOriginJoinFilterRequest.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.req.basic; + +import lombok.Data; + +@Data +public class BusOriginJoinFilterRequest { + + private String action; + private String localAction; + private String thirdAction; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/BussinessOriginTypeResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/BussinessOriginTypeResponse.java index 6710ac07..314583fd 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/res/basic/BussinessOriginTypeResponse.java +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/BussinessOriginTypeResponse.java @@ -6,6 +6,12 @@ import lombok.Data; public class BussinessOriginTypeResponse { private String name; private String action; + private String localName; + private String originAction; + private String originName; private String localAction; private String thirdAction; + private String thirdSys; + private String thirdSysName; + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessLocalTypeService.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessLocalTypeService.java index 5dc5f939..f2b0df87 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessLocalTypeService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessLocalTypeService.java @@ -1,7 +1,9 @@ package com.glxp.api.admin.service.basic; +import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity; import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity; import com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest; +import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse; import java.util.List; @@ -19,6 +21,9 @@ public interface BussinessLocalTypeService { List filterLeftJoin(BussinessLocalTypeFilterRequest bussinessTypeFilterRequest); + BasicThirdSysDetailEntity findByActionKey(String action, String key); + + BussinessOriginTypeResponse findOriginJoinByAction(String action); BussinessLocalTypeEntity findBTByAction(String action); diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java index 3346f3dd..8bb40dbc 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessLocalTypeServiceImpl.java @@ -2,10 +2,14 @@ package com.glxp.api.admin.service.basic.impl; import com.github.pagehelper.PageHelper; import com.glxp.api.admin.dao.basic.BussinessLocalTypeDao; +import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity; import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity; import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest; import com.glxp.api.admin.req.basic.BussinessLocalTypeFilterRequest; import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; +import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse; +import com.glxp.api.admin.service.basic.BasicThirdSysDetailService; import com.glxp.api.admin.service.basic.BussinessLocalTypeService; import org.springframework.stereotype.Service; @@ -18,6 +22,8 @@ public class BussinessLocalTypeServiceImpl implements BussinessLocalTypeService @Resource BussinessLocalTypeDao bussinessLocalTypeDao; + @Resource + BasicThirdSysDetailService basicThirdSysDetailService; @Override public BussinessLocalTypeEntity selectById(String id) { @@ -81,6 +87,34 @@ public class BussinessLocalTypeServiceImpl implements BussinessLocalTypeService return data; } + @Override + public BasicThirdSysDetailEntity findByActionKey(String action, String key) { + BusOriginJoinFilterRequest busOriginJoinFilterRequest = new BusOriginJoinFilterRequest(); + busOriginJoinFilterRequest.setLocalAction(action); + List bussinessOriginTypeResponses = bussinessLocalTypeDao.filterJoinOrigin(busOriginJoinFilterRequest); + if (!bussinessOriginTypeResponses.isEmpty()) { + BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeResponses.get(0); + if (bussinessOriginTypeResponse.getThirdSys() != null) { + BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey(key, bussinessOriginTypeResponse.getThirdSys()); + return basicThirdSysDetailEntity; + } + + } + return null; + } + + @Override + public BussinessOriginTypeResponse findOriginJoinByAction(String action) { + BusOriginJoinFilterRequest busOriginJoinFilterRequest = new BusOriginJoinFilterRequest(); + busOriginJoinFilterRequest.setLocalAction(action); + List bussinessOriginTypeResponses = bussinessLocalTypeDao.filterJoinOrigin(busOriginJoinFilterRequest); + if (!bussinessOriginTypeResponses.isEmpty()) { + BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeResponses.get(0); + return bussinessOriginTypeResponse; + } + return null; + } + @Override public BussinessLocalTypeEntity findBTByAction(String action) { BussinessLocalTypeFilterRequest bussinessTypeFilterRequest = new BussinessLocalTypeFilterRequest(); diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java index a3156112..a25cb8f9 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java @@ -3,11 +3,14 @@ package com.glxp.api.admin.service.basic.impl; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.admin.constant.ConstantType; +import com.glxp.api.admin.dao.basic.BussinessLocalTypeDao; import com.glxp.api.admin.dao.basic.BussinessTypeDao; import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity; import com.glxp.api.admin.entity.basic.BussinessOriginTypeEntity; import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.req.basic.BusOriginJoinFilterRequest; import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; +import com.glxp.api.admin.res.basic.BussinessOriginTypeResponse; import com.glxp.api.admin.res.basic.BussinessTypResponse; import com.glxp.api.admin.service.basic.BasicThirdSysDetailService; import com.glxp.api.admin.service.basic.BussinessOriginTypeService; @@ -27,6 +30,8 @@ public class BussinessTypeServiceImpl implements BussinessTypeService { BasicThirdSysDetailService basicThirdSysDetailService; @Resource BussinessOriginTypeService bussinessOriginTypeService; + @Resource + BussinessLocalTypeDao bussinessLocalTypeDao; @Override public BussinessTypeEntity selectById(String id) { @@ -95,29 +100,13 @@ public class BussinessTypeServiceImpl implements BussinessTypeService { @Override public BasicThirdSysDetailEntity findByActionKey(String action, String key) { - BussinessTypResponse bussinessTypResponse = findJoinBTByAction(action); - - if (bussinessTypResponse != null) { - BussinessOriginTypeEntity bussinessOriginTypeEntity = bussinessOriginTypeService.findByAction(bussinessTypResponse.getThirdAction()); - BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey(key, bussinessOriginTypeEntity.getThirdSys()); - if (basicThirdSysDetailEntity == null) { - basicThirdSysDetailEntity = new BasicThirdSysDetailEntity(); - basicThirdSysDetailEntity.setLocalAction(bussinessTypResponse.getLocalAction()); - basicThirdSysDetailEntity.setEnabled(true); - return basicThirdSysDetailEntity; - } else { - basicThirdSysDetailEntity.setLocalAction(bussinessTypResponse.getLocalAction()); - return basicThirdSysDetailEntity; - } - } else { - BussinessTypeEntity bussinessTypResponse2 = findBTByAction(action); - if (bussinessTypResponse2 != null) { - BasicThirdSysDetailEntity basicThirdSysDetailEntity = new BasicThirdSysDetailEntity(); - basicThirdSysDetailEntity.setLocalAction(bussinessTypResponse2.getLocalAction()); - basicThirdSysDetailEntity.setEnabled(true); - return basicThirdSysDetailEntity; - } - + BusOriginJoinFilterRequest busOriginJoinFilterRequest = new BusOriginJoinFilterRequest(); + busOriginJoinFilterRequest.setAction(action); + List bussinessOriginTypeResponses = bussinessLocalTypeDao.filterJoinOrigin(busOriginJoinFilterRequest); + if (!bussinessOriginTypeResponses.isEmpty()) { + BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeResponses.get(0); + BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey(key, bussinessOriginTypeResponse.getThirdSys()); + return basicThirdSysDetailEntity; } return null; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java index 28b2cdb9..58c54f89 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java @@ -18,6 +18,7 @@ import com.glxp.api.admin.entity.inout.OrderEntity; import com.glxp.api.admin.entity.inout.WarehouseEntity; import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; import com.glxp.api.admin.httpclient.ErpOrderClient; +import com.glxp.api.admin.req.basic.FilterCompanyProductRelevanceRequest; import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; import com.glxp.api.admin.req.business.StockOrderFilterRequest; import com.glxp.api.admin.req.inout.CommitRequest; @@ -32,6 +33,7 @@ import com.glxp.api.admin.service.basic.UdiInfoService; import com.glxp.api.admin.service.basic.UdiRelevanceService; import com.glxp.api.admin.service.business.StockOrderDetailService; import com.glxp.api.admin.service.business.StockOrderService; +import com.glxp.api.admin.service.info.CompanyProductRelevanceService; import com.glxp.api.admin.service.info.SystemParamConfigService; import com.glxp.api.admin.service.inout.CodesService; import com.glxp.api.admin.service.inout.CodesTempService; @@ -72,7 +74,8 @@ public class IoTransInoutService { private UdiInfoService udiInfoService; @Value("${UDI_SERVER_URL}") private String udiUrl; - + @Resource + CompanyProductRelevanceService companyProductRelevanceService; @Resource private CodesTempService codesTempService; @Autowired @@ -122,9 +125,9 @@ public class IoTransInoutService { WarehouseEntity warehouseEntity = warehouseEntityList.get(0); String orderId = "SM" + CustomUtil.getId() + i + ""; - if (warehouseEntity.getOrderId() != null) { - orderId = warehouseEntity.getOrderId(); - } +// if (warehouseEntity.getOrderId() != null) { +// orderId = warehouseEntity.getOrderId(); +// } OrderEntity orderSaveRequest = new OrderEntity(); orderSaveRequest.setId(orderId); @@ -206,6 +209,9 @@ public class IoTransInoutService { orderSaveRequest.setMainAction(warehouseEntity.getMainAction()); orderSaveRequest.setFromCorp(warehouseEntity.getFromCorp()); orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW); + orderSaveRequest.setReceiveStatus(0); + orderSaveRequest.setCreateUser(postOrderRequest.getUserId()); + orderSaveRequest.setLocStorageCode(warehouseEntity.getLocStorageCode()); orderSaveRequest.setStatus(postOrderRequest.getSubmitType() == 0 ? ConstantStatus.ORDER_STATUS_PROCESS : ConstantStatus.ORDER_STATUS_TEMP_SAVE); orderSaveRequest.setExportStatus(ConstantStatus.ORDER_EXPORT_UN); @@ -248,6 +254,7 @@ public class IoTransInoutService { } } + public void transInout(OrderEntity orderEntity) { if (orderEntity.getFromCorp() == null) { @@ -324,6 +331,7 @@ public class IoTransInoutService { } } + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(warehouseEntity.getNameCode()); if (udiRelevanceResponse == null) { orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL); @@ -334,46 +342,18 @@ public class IoTransInoutService { orderService.updateRemark(orderEntity.getId(), "udi码:" + warehouseEntity.getCode() + "该产品不允许以使用单元入库!"); return; } + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { + CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceService.findByUdiRlIdUnitFk(udiRelevanceResponse.getId() + "", warehouseEntity.getFromCorpId()); + if (companyProductRelevanceEntity == null) { + orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL); + orderService.updateRemark(orderEntity.getId(), udiRelevanceResponse.getCpmctymc() + "该产品非此供应商配送"); + return; + } + } } if (insertList.size() > 0) { warehouseService.insertWarehouses(insertList); - //未所有条码关联基础信息关联表ID - List warehouseEntityList = warehouseService.findByReceiptId(orderEntity.getId()); - for (WarehouseEntity warehouseEntity : warehouseEntityList) { - FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); - filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode()); - List udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); - if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1) { - warehouseEntity.setRelId(null); - warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI); - } else if (udiRelevanceEntities == null || udiRelevanceEntities.size() == 0) { - warehouseEntity.setRelId(null); - warehouseEntity.setStatus(2); - } else { - warehouseEntity.setStatus(0); - warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + ""); - } - warehouseService.updateCode(warehouseEntity); - } - - - if (orderEntity.getErpFk() != null && !"".equals(orderEntity.getErpFk())) {//已经绑定校验单据号,等待校验 - orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK); - } else { - //生成单据详情 - inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList); - if (bussinessTypeEntity.getThirdSysFk() == null && bussinessTypeEntity.getLocalAction() == null) {//不需要校验 - checkMutiDi(orderEntity.getId()); //校验一个DI是否绑定多个产品ID - orderEntity = orderService.findById(orderEntity.getId()); - if (orderEntity.getContrastStatus() != ConstantStatus.ORDER_CHECK_FAIL) { - orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_SUCCESS); - invProductsTrService.genInvProducts(orderEntity.getId()); - } - } else {//需要校验,等待校验 - orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK); - } - } //删除临时表 WarehouseQueryRequest tempQuery = new WarehouseQueryRequest(); @@ -389,10 +369,52 @@ public class IoTransInoutService { } } + /** + * //未所有条码关联基础信息关联表ID + * List warehouseEntityList = warehouseService.findByReceiptId(orderEntity.getId()); + * for (WarehouseEntity warehouseEntity : warehouseEntityList) { + * FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + * filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode()); + * List udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + * if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1) { + * warehouseEntity.setRelId(null); + * warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI); + * } else if (udiRelevanceEntities == null || udiRelevanceEntities.size() == 0) { + * warehouseEntity.setRelId(null); + * warehouseEntity.setStatus(2); + * } else { + * warehouseEntity.setStatus(0); + * warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + ""); + * } + * warehouseService.updateCode(warehouseEntity); + * } + *

+ *

+ * if (orderEntity.getErpFk() != null && !"".equals(orderEntity.getErpFk())) {//已经绑定校验单据号,等待校验 + * orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK); + * } else { + * //生成单据详情 + * inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList); + * if (bussinessTypeEntity.getThirdSysFk() == null && bussinessTypeEntity.getLocalAction() == null) {//不需要校验 + * checkMutiDi(orderEntity.getId()); //校验一个DI是否绑定多个产品ID + * orderEntity = orderService.findById(orderEntity.getId()); + * if (orderEntity.getContrastStatus() != ConstantStatus.ORDER_CHECK_FAIL) { + * orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_SUCCESS); + * invProductsTrService.genInvProducts(orderEntity.getId()); + * } + * } else {//需要校验,等待校验 + * orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK); + * } + * } + * + * @param orderId + */ //转入正式表后,更换单据状态,等待校验或已完成 public void transStatus(String orderId) { //todo 改成等待校验,选择校验 OrderEntity orderEntity = orderService.findById(orderId); + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction()); + List warehouseEntityList = warehouseService.findByReceiptId(orderId); myErpOrderService.deleteByOrderId(orderEntity.getId()); //为所有条码关联基础信息关联表ID @@ -400,6 +422,14 @@ public class IoTransInoutService { FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode()); List udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + + //默认或已选中供应商 + String originSupId = checkOriginExitSup(warehouseEntity); + if (originSupId != null) { + warehouseEntity.setSupId(originSupId); + } + + if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1) { warehouseEntity.setRelId(null); warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI); @@ -408,19 +438,32 @@ public class IoTransInoutService { warehouseEntity.setStatus(2); } else { warehouseEntity.setStatus(0); - warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + ""); - String supId = checkOriginExitSup(warehouseEntity); - if (supId != null) { - warehouseEntity.setSupId(supId); - } else { - supId = checkInvExitSup(warehouseEntity); - warehouseEntity.setSupId(supId); + if (warehouseEntity.getRelId() == null) + warehouseEntity.setRelId(udiRelevanceEntities.get(0).getId() + ""); + if (originSupId == null) { + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + String supId = null; + if (originSupId == null) { + supId = checkExitSup(warehouseEntity.getRelId()); + if (supId == null) { + supId = checkInvExitSup(warehouseEntity); + } + } else + supId = originSupId; + if (supId != null) {//&& !supId.equals("MUTI") + warehouseEntity.setSupId(supId); + } + } else { + String supId = checkExitSup(warehouseEntity.getRelId()); + if (supId == null) { + supId = checkInvExitSup(warehouseEntity); + } + warehouseEntity.setSupId(supId); + } } } warehouseService.updateCode(warehouseEntity); } - String action = orderEntity.getAction(); - BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(action); if (!bussinessTypeEntity.isCheckEnable()) { orderEntity = orderService.findById(orderEntity.getId()); unCheckFinish(orderEntity, warehouseEntityList); @@ -494,12 +537,10 @@ public class IoTransInoutService { //校验是否自带供应商 public String checkOriginExitSup(WarehouseEntity warehouseEntity) { - if (ConstantType.TYPE_PUT.equals(warehouseEntity.getMainAction())) { + if (warehouseEntity.getSupId() != null && !"".equals(warehouseEntity.getSupId())) { + return warehouseEntity.getSupId(); + } else if (ConstantType.TYPE_PUT.equals(warehouseEntity.getMainAction())) { return warehouseEntity.getFromCorpId(); - } else if (ConstantType.TYPE_OUT.equals(warehouseEntity.getMainAction())) { - if (warehouseEntity.getSupId() != null && !"".equals(warehouseEntity.getSupId())) { - return warehouseEntity.getSupId(); - } } return null; } @@ -531,21 +572,32 @@ public class IoTransInoutService { return null; } -// //校验是否存在供应商 -// public String checkExitSup(String relId) { -// //校验条码关联供应商 -// FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); -// filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId); -// List companyProductRelevanceEntities = companyProductRelevanceService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); -// if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() == 1) { -// CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceEntities.get(0); -// CompanyEntity companyEntity = companyService.findCompany(companyProductRelevanceEntity.getCustomerId()); -// return companyEntity.getUnitIdFk(); -// } else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) { -// return "MUTI"; //绑定多个供应商 -// } -// return null; -// } + //校验是否存在供应商 + public String checkExitSup(String relId) { + //校验条码关联供应商 + FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); + filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId); + List companyProductRelevanceEntities = companyProductRelevanceService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); + if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() == 1) { + CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceEntities.get(0); +// BasicUnitMaintainEntity companyEntity = basicUnitMaintainService.selectByErpId(companyProductRelevanceEntity.getUnitFk()); + return companyProductRelevanceEntity.getUnitFk(); + } else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) { + String unitFk = companyProductRelevanceEntities.get(0).getUnitFk(); + boolean isMuti = false; + for (CompanyProductRelevanceEntity companyProductRelevanceEntity : companyProductRelevanceEntities) { + if (!unitFk.equals(companyProductRelevanceEntity.getUnitFk())) { + isMuti = true; + break; + } + } + if (isMuti) + return "MUTI"; //绑定多个供应商 + else + return unitFk; + } + return null; + } public void genOrderDetail(List warehouseEntityList) { inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList); @@ -840,11 +892,14 @@ public class IoTransInoutService { public StockOrderEntity genStockOrder(OrderEntity orderEntity, BussinessTypeEntity bussinessTypeEntity) { //生成业务单据记录 StockOrderEntity stockOrderEntity = new StockOrderEntity(); - stockOrderEntity.setBillNo(orderEntity.getId()); + stockOrderEntity.setBillNo("ST" + CustomUtil.getId()); stockOrderEntity.setBillType(bussinessTypeEntity.getLocalAction());//todo stockOrderEntity.setBilldate(orderEntity.getActDate()); stockOrderEntity.setUnitIdFk(orderEntity.getFromCorpId()); stockOrderEntity.setSourceType(ConstantStatus.ST_SCAN_ADD); + stockOrderEntity.setCreateUser(orderEntity.getCreateUser()); + stockOrderEntity.setReviewUser(orderEntity.getReviewUser()); + stockOrderEntity.setLocStorageCode(orderEntity.getLocStorageCode()); stockOrderEntity.setCorpId(orderEntity.getFromCorpId()); if (bussinessTypeEntity.isSecCheckEnable()) { stockOrderEntity.setStatus(ConstantStatus.SORDER_DELIVER); diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml index 232116ea..3e10b69d 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml @@ -41,7 +41,8 @@ + + + diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml index 7eb4585f..37f25b8e 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml @@ -55,7 +55,7 @@ AND name LIKE concat(#{name},'%') - AND `action` LIKE concat(#{action},'%') + AND basic_bussiness_type.`action` LIKE concat(#{action},'%') AND mainAction LIKE concat(#{mainAction},'%')