From 73b9a98a47b18239c47b358f122fc98ab852a84f Mon Sep 17 00:00:00 2001 From: x_z Date: Thu, 9 Jun 2022 18:17:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=A4=8D=E5=88=B6=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E5=8A=9F=E8=83=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/StockOrderController.java | 49 +++++++++++++------ .../glxp/sale/admin/dao/inout/OrderDao.java | 9 ++++ .../sale/admin/entity/inout/OrderEntity.java | 3 ++ .../req/inout/AddStockOrderChangeRequest.java | 5 ++ .../admin/service/inout/OrderService.java | 9 ++++ .../service/inout/impl/OrderServiceImpl.java | 16 ++++++ .../mybatis/mapper/inout/OrderDao.xml | 17 +++++-- 7 files changed, 90 insertions(+), 18 deletions(-) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java index 441f9aa..00a54f3 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java @@ -22,7 +22,10 @@ import com.glxp.sale.admin.res.inout.ErpOrderResponse; import com.glxp.sale.admin.res.inout.StockOrderResponse; import com.glxp.sale.admin.service.auth.AuthAdminService; import com.glxp.sale.admin.service.auth.CustomerService; -import com.glxp.sale.admin.service.basic.*; +import com.glxp.sale.admin.service.basic.BasicUnitMaintainService; +import com.glxp.sale.admin.service.basic.BussinessLocalTypeService; +import com.glxp.sale.admin.service.basic.BussinessTypeService; +import com.glxp.sale.admin.service.basic.UdiRelevanceService; import com.glxp.sale.admin.service.info.CompanyService; import com.glxp.sale.admin.service.inout.*; import com.glxp.sale.admin.service.inventory.InvStockPrintService; @@ -388,6 +391,8 @@ public class StockOrderController { StockOrderEntity stockOrderEntity = stockOrderService.findById(addStockOrderChangeRequest.getStockOrderId()); OrderEntity originOrder = orderService.findById(stockOrderEntity.getOrderIdFk()); + String oldOrderId = originOrder.getId(); + String replicateNo = originOrder.getReplicateNo(); //复制单号 List originCodes = codesService.findByReceiptId(originOrder.getId()); originOrder.setActDate(DateUtil.formatDate(new Date())); originOrder.setFromCorp(addStockOrderChangeRequest.getFromCorp()); @@ -399,33 +404,49 @@ public class StockOrderController { originOrder.setContrastStatus(0);//设置erp校验状态为未校验 originOrder.setReceiveStatus(0); //设置验收状态为未验收 originOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + originOrder.setErpFk(null);//关联业务单据置空 originOrder.setLocStorageCode(addStockOrderChangeRequest.getLocStorageCode()); BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(originOrder.getAction()); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); String supplementOrderNo = orderNo; + if (StrUtil.isBlank(replicateNo)) { + replicateNo = supplementOrderNo; //此单据第一条复制单号 + } else { + replicateNo = replicateNo + "," + supplementOrderNo; //复制单号拼接上新的单号 + } originOrder.setId(supplementOrderNo); + originOrder.setReplicateNo(null); //新单据的复制单号置空 List supplementCodes = new ArrayList<>(); + + List products = addStockOrderChangeRequest.getProducts(); originCodes.forEach( code -> { - WarehouseEntity supplementCode = new WarehouseEntity(); - BeanUtil.copyProperties(code, supplementCode); - supplementCode.setFromCorpId(originOrder.getFromCorpId()); - supplementCode.setFromCorp(originOrder.getFromCorp()); - supplementCode.setLocStorageCode(originOrder.getLocStorageCode()); - supplementCode.setOrderId(supplementOrderNo); - //查询补单设置 - supplementCode.setAction(originOrder.getAction()); - supplementCode.setMainAction(originOrder.getMainAction()); - supplementCode.setId(null); - supplementCodes.add(supplementCode); - + //复制选中的产品 + for (WarehouseEntity product : products) { + if (product.getRelId().equals(code.getRelId())) { + if ((StrUtil.isNotBlank(product.getBatchNo()) && StrUtil.isNotBlank(code.getBatchNo()) && product.getBatchNo().equals(code.getBatchNo())) + || (StrUtil.isBlank(product.getBatchNo()) && StrUtil.isBlank(code.getBatchNo()))) { + WarehouseEntity supplementCode = new WarehouseEntity(); + BeanUtil.copyProperties(code, supplementCode); + supplementCode.setFromCorpId(originOrder.getFromCorpId()); + supplementCode.setFromCorp(originOrder.getFromCorp()); + supplementCode.setLocStorageCode(originOrder.getLocStorageCode()); + supplementCode.setOrderId(supplementOrderNo); + //查询补单设置 + supplementCode.setAction(originOrder.getAction()); + supplementCode.setMainAction(originOrder.getMainAction()); + supplementCode.setId(null); + supplementCodes.add(supplementCode); + } + } + } } ); originOrder.setUpdateTime(new Date()); orderService.insertOrder(originOrder); codesTempService.insertCodesTemp(supplementCodes); - + orderService.updateReplicateNo(oldOrderId, replicateNo); return ResultVOUtils.success(); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/OrderDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/OrderDao.java index ca1a7fd..aa423cb 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/OrderDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/OrderDao.java @@ -71,4 +71,13 @@ public interface OrderDao { * @return */ boolean updateOrderTime(@Param("actDate") String actDate, @Param("auditTime") String auditTime, @Param("updateTime") String updateTime, @Param("orderIds") List orderIds); + + /** + * 更新复制单号 + * + * @param orderId + * @param replicateNo + * @return + */ + boolean updateReplicateNo(@Param("orderId") String orderId, @Param("replicateNo") String replicateNo); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java index 97bba5f..594b4de 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java @@ -51,4 +51,7 @@ public class OrderEntity { //审核时间 private Date auditTime; + //复制单号,多个单号之间使用英文逗号,分隔 + private String replicateNo; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddStockOrderChangeRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddStockOrderChangeRequest.java index 092feba..adef0f7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddStockOrderChangeRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddStockOrderChangeRequest.java @@ -1,7 +1,10 @@ package com.glxp.sale.admin.req.inout; +import com.glxp.sale.admin.entity.inout.WarehouseEntity; import lombok.Data; +import java.util.List; + @Data public class AddStockOrderChangeRequest { @@ -20,5 +23,7 @@ public class AddStockOrderChangeRequest { private String customerId; private String stockOrderId; + private List products; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java index 29271c0..192c9a9 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/OrderService.java @@ -104,4 +104,13 @@ public interface OrderService { * @param orders */ public void getAllOrder(OrderEntity orderEntity, List orders); + + /** + * 更新复制单号 + * + * @param orderId + * @param replicateNo + * @return + */ + boolean updateReplicateNo(String orderId, String replicateNo); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java index 0b92cda..d9fa468 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java @@ -369,6 +369,22 @@ public class OrderServiceImpl implements OrderService { getAllOrder(order, orders); } } + + //复制单号 + if (StrUtil.isNotBlank(orderEntity.getReplicateNo())) { + //被复制单号不为空,查询复制单据 + String[] replicateNos = orderEntity.getReplicateNo().split(","); + for (String replicateNo : replicateNos) { + orderFilterRequest.setId(replicateNo); + OrderEntity order = orderDao.findOne(orderFilterRequest); + orders.add(order); + } + } + } + + @Override + public boolean updateReplicateNo(String orderId, String replicateNo) { + return orderDao.updateReplicateNo(orderId, replicateNo); } @Transactional(rollbackFor = Exception.class) diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml index b82236b..6fe710d 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml @@ -33,7 +33,7 @@ fromCorp, status, remark, exportStatus, fromType, contrastStatus, signStatus, receiveStatus, erpFk, stockCheckFk, customerId, supId, exportFilePath, locStorageCode, supplementNo, ullageSupNo, createUser, reviewUser, - outChangeEnable, originUllageSupNo, preCheck,updateTime) + outChangeEnable, originUllageSupNo, preCheck,updateTime,replicateNo) values (#{id}, #{action}, #{corpOrderId}, @@ -52,7 +52,7 @@ #{erpFk}, #{stockCheckFk}, #{customerId}, #{supId}, #{exportFilePath}, #{locStorageCode}, #{supplementNo}, - #{ullageSupNo}, #{createUser}, #{reviewUser}, #{outChangeEnable}, #{originUllageSupNo}, #{preCheck},#{updateTime}) + #{ullageSupNo}, #{createUser}, #{reviewUser}, #{outChangeEnable}, #{originUllageSupNo}, #{preCheck},#{updateTime}, #{replicateNo}) @@ -63,7 +63,7 @@ fromCorp, status, remark, exportStatus, fromType, contrastStatus, signStatus, receiveStatus, erpFk, stockCheckFk, customerId, supId, exportFilePath, locStorageCode, supplementNo, ullageSupNo, createUser, reviewUser, - outChangeEnable, originUllageSupNo, preCheck,updateTime) + outChangeEnable, originUllageSupNo, preCheck,updateTime,replicateNo) values (#{id}, #{action}, #{corpOrderId}, @@ -91,7 +91,9 @@ #{reviewUser}, #{outChangeEnable}, #{originUllageSupNo}, - #{preCheck},#{updateTime}) + #{preCheck}, + #{updateTime}, + #{replicateNo}) @@ -128,6 +130,7 @@ originUllageSupNo=#{originUllageSupNo}, preCheck=#{preCheck}, auditTime=#{auditTime}, + replicateNo=#{replicateNo} WHERE id = #{id} @@ -559,4 +562,10 @@ + + update io_order + set replicateNo = #{replicateNo} + where id = #{orderId} + + \ No newline at end of file