From 57cbee7c3f7d0d5096a37d74774c047793e606ed Mon Sep 17 00:00:00 2001 From: x_z Date: Thu, 2 Jun 2022 17:43:50 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=8D=95=E6=8D=AE=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91=202.=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E9=AA=8C=E6=94=B6=E6=9B=B4=E6=96=B0=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/OrderController.java | 4 +- .../controller/inout/WareHouseController.java | 17 +- .../admin/req/inout/CodesReplaceRequest.java | 5 + .../admin/service/inout/OrderService.java | 8 + .../service/inout/impl/CodesServiceImpl.java | 150 ++++++++++-------- .../service/inout/impl/OrderServiceImpl.java | 36 +++-- 6 files changed, 133 insertions(+), 87 deletions(-) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java index 1621cb6..6c6c515 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/OrderController.java @@ -308,6 +308,7 @@ public class OrderController { orderEntity.setReviewUser(authAdmin.getId().intValue()); } orderEntity.setUpdateTime(new Date()); + orderEntity.setAuditTime(new Date()); orderService.updateOrder(orderEntity); List erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk()); if (erpIds != null && erpIds.size() > 0) { @@ -319,6 +320,7 @@ public class OrderController { if (customerId == 110) { stockOrderEntity.setReviewUser(authAdmin.getId().intValue()); } + stockOrderEntity.setAuditTime(new Date()); stockOrderService.updateById(stockOrderEntity); } } else { @@ -331,7 +333,7 @@ public class OrderController { if (customerId == 110) { stockOrderEntity.setReviewUser(authAdmin.getId().intValue()); } - + stockOrderEntity.setAuditTime(new Date()); stockOrderService.updateById(stockOrderEntity); } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java index 91b3ed9..a6a0917 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java @@ -13,17 +13,16 @@ import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity; import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import com.glxp.sale.admin.entity.info.CompanyEntity; -import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity; -import com.glxp.sale.admin.entity.inout.*; +import com.glxp.sale.admin.entity.inout.OrderEntity; +import com.glxp.sale.admin.entity.inout.StockOrderEntity; +import com.glxp.sale.admin.entity.inout.WarehouseEntity; +import com.glxp.sale.admin.entity.inout.WarehouseUserEntity; import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity; import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; import com.glxp.sale.admin.entity.udid.UdiEntity; import com.glxp.sale.admin.exception.JsonException; import com.glxp.sale.admin.req.basic.CompanyProductRelevanceRequest; -import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest; -import com.glxp.sale.admin.req.info.FilterCompanyProductRelevanceRequest; import com.glxp.sale.admin.req.inout.*; -import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.basic.BussinessTypResponse; import com.glxp.sale.admin.res.basic.CompanyProductRelevanceResponse; @@ -58,8 +57,10 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import java.util.*; -import java.util.function.Consumer; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @RestController @@ -1121,7 +1122,7 @@ public class WareHouseController { @AuthRuleAnnotation("") @PostMapping("/warehouse/inout/replaceCodes") public BaseResponse replaceCodes(@RequestBody CodesReplaceRequest codesReplaceRequest) { - if (StrUtil.isBlank(codesReplaceRequest.getCode())) { + if (StrUtil.isBlank(codesReplaceRequest.getCode()) || StrUtil.isBlank(codesReplaceRequest.getOrderId())) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } UdiEntity udi = FilterUdiUtils.getUdi(codesReplaceRequest.getCode()); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/CodesReplaceRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/CodesReplaceRequest.java index 616b6f1..22e6616 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/CodesReplaceRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/CodesReplaceRequest.java @@ -29,6 +29,11 @@ public class CodesReplaceRequest { */ private Integer newCount; + /** + * 当前单据号 + */ + private String orderId; + private UdiInfoEntity udiEntity; } 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 eced6db..29271c0 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 @@ -96,4 +96,12 @@ public interface OrderService { * @return */ boolean updateOrderInfo(String actDate, String auditTime, List orderIds); + + /** + * 查询指定单据关联的所有单据 + * + * @param orderEntity + * @param orders + */ + public void getAllOrder(OrderEntity orderEntity, List orders); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java index 98a0fb5..6b3642d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/CodesServiceImpl.java @@ -3,11 +3,13 @@ package com.glxp.sale.admin.service.inout.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; +import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.constant.ConstantType; import com.glxp.sale.admin.dao.inout.*; import com.glxp.sale.admin.dao.inventory.InvProductDao; import com.glxp.sale.admin.dao.inventory.InvProductDetailDao; import com.glxp.sale.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.sale.admin.entity.inout.OrderEntity; import com.glxp.sale.admin.entity.inout.WarehouseEntity; import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity; import com.glxp.sale.admin.entity.inventory.InvProductEntity; @@ -17,10 +19,12 @@ import com.glxp.sale.admin.req.inout.WarehouseQueryRequest; import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.sale.admin.req.inventory.FilterInvProductRequest; import com.glxp.sale.admin.service.inout.CodesService; +import com.glxp.sale.admin.service.inout.OrderService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -41,6 +45,8 @@ public class CodesServiceImpl implements CodesService { private OrderDao orderDao; @Resource private StockOrderDao stockOrderDao; + @Resource + private OrderService orderService; @Override public List listWarehouse(WarehouseQueryRequest warehouseQueryRequest) { @@ -158,75 +164,89 @@ public class CodesServiceImpl implements CodesService { @Transactional(rollbackFor = Exception.class) @Override public void replaceCodes(CodesReplaceRequest codesReplaceRequest) { - List codeList = codesDao.findByCode(codesReplaceRequest.getCode()); - - //删除码表,添加新的条码,并更新库存 - for (WarehouseEntity warehouseEntity : codeList) { - //删除码详情 - codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode()); - - //查询库存详情 - FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); - filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode()); - filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId()); - filterInvProductDetailRequest.setOrderIdFk(warehouseEntity.getOrderId()); - if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) { - filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo()); - } else { - filterInvProductDetailRequest.setBatchNo("empty"); - } - List invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); - if (CollUtil.isNotEmpty(invProductDetailEntities)) { - //库存详情不为空,单据已验收,更新库存 - InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); //库存 - - //删除库存详情 - invProductDetailDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), codesReplaceRequest.getCode()); - //查询原库存详情和新的库存详情 - FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest(); - filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk()); - if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) { - filterInvProductRequest.setBatchNo("empty"); - } else { - filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo()); + OrderEntity orderEntity = orderDao.selectByBillNo(codesReplaceRequest.getOrderId()); + //查询所有单据 + List orderList = new ArrayList<>(); + orderList.add(orderEntity); + orderService.getAllOrder(orderEntity, orderList); + + for (OrderEntity order : orderList) { + //查询条码 + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setOrderId(order.getId()); + warehouseQueryRequest.setCode(codesReplaceRequest.getCode()); + List warehouseEntities = codesDao.findByOrderId(warehouseQueryRequest); + if (CollUtil.isNotEmpty(warehouseEntities)) { + for (WarehouseEntity warehouseEntity : warehouseEntities) { + //删除码详情 + codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode()); + + if (order.getStatus().equals(ConstantStatus.ORDER_STATUS_PROCESS)) { + //查询库存详情 + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode()); + filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId()); + filterInvProductDetailRequest.setOrderIdFk(order.getId()); + if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) { + filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo()); + } else { + filterInvProductDetailRequest.setBatchNo("empty"); + } + List invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + if (CollUtil.isNotEmpty(invProductDetailEntities)) { + //库存详情不为空,单据已验收,更新库存 + InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); //库存 + + //删除库存详情 + invProductDetailDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), codesReplaceRequest.getCode()); + //查询原库存详情和新的库存详情 + FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest(); + filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk()); + if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) { + filterInvProductRequest.setBatchNo("empty"); + } else { + filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo()); + } + InvProductEntity invProductEntity = invProductDao.filterInvProduct(filterInvProductRequest).get(0); + + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + //出库 + int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount(); + invProductEntity.setOutCount(count); + } else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { + //入库 + int count = invProductEntity.getInCount() - invProductDetailEntity.getCount(); + invProductEntity.setInCount(count); + } + + //更新库存 + invProductDao.updateInvProduct(invProductEntity); + } + } + + //删除单据详情 + FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest(); + deleteOrderDetailParam.setOrderIdFk(order.getId()); + deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId()); + deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo()); + orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情 + + StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest(); + deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId()); + deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo()); + deleteStockOrderDetailParam.setOrderIdFk(order.getId()); + stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情 } - InvProductEntity invProductEntity = invProductDao.filterInvProduct(filterInvProductRequest).get(0); - - if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { - //出库 - int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount(); - invProductEntity.setOutCount(count); - } else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { - //入库 - int count = invProductEntity.getInCount() - invProductDetailEntity.getCount(); - invProductEntity.setInCount(count); - } - - //更新库存 - invProductDao.updateInvProduct(invProductEntity); - } - //删除单据详情 - FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest(); - deleteOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId()); - deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId()); - deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo()); - orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情 - - StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest(); - deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId()); - deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo()); - deleteStockOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId()); - stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情 - - int orderDetailCount = orderDetailDao.countByOrderId(warehouseEntity.getOrderId()); - if (orderDetailCount == 0) { - //当单据详情数量为0时,删除扫码单据和业务单据 - orderDao.deleteById(warehouseEntity.getOrderId()); - stockOrderDao.deleteByOrderIdFk(warehouseEntity.getOrderId()); + int orderDetailCount = orderDetailDao.countByOrderId(order.getId()); + if (orderDetailCount == 0) { + //当单据详情数量为0时,删除扫码单据和业务单据 + orderDao.deleteById(order.getId()); + stockOrderDao.deleteByOrderIdFk(order.getId()); + } } - } + } } 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 2ab2af0..4eb2842 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 @@ -334,12 +334,15 @@ public class OrderServiceImpl implements OrderService { * @param orderEntity * @param orders */ - private void getAllOrder(OrderEntity orderEntity, List orders) { + @Override + public void getAllOrder(OrderEntity orderEntity, List orders) { + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); //补单单号 if (StrUtil.isNotBlank(orderEntity.getSupplementNo())) { //补单单号不为空,查询补单数据 - OrderEntity order = orderDao.selectByBillNo(orderEntity.getSupplementNo()); - if (!orders.contains(order)) { + orderFilterRequest.setId(orderEntity.getSupplementNo()); + OrderEntity order = orderDao.findOne(orderFilterRequest); + if (null != order && !orders.contains(order)) { orders.add(order); getAllOrder(order, orders); } @@ -347,9 +350,10 @@ public class OrderServiceImpl implements OrderService { //缺量补单上级单号 if (StrUtil.isNotBlank(orderEntity.getOriginUllageSupNo())) { - //补单单号不为空,查询补单数据 - OrderEntity order = orderDao.selectByBillNo(orderEntity.getOriginUllageSupNo()); - if (!orders.contains(order)) { + //缺量补单上级单号不为空,查询单据数据 + orderFilterRequest.setId(orderEntity.getOriginUllageSupNo()); + OrderEntity order = orderDao.findOne(orderFilterRequest); + if (null != order && !orders.contains(order)) { orders.add(order); getAllOrder(order, orders); } @@ -357,9 +361,10 @@ public class OrderServiceImpl implements OrderService { //缺量补单 if (StrUtil.isNotBlank(orderEntity.getUllageSupNo())) { - //补单单号不为空,查询补单数据 - OrderEntity order = orderDao.selectByBillNo(orderEntity.getUllageSupNo()); - if (!orders.contains(order)) { + //缺量补单单号不为空,查询单据数据 + orderFilterRequest.setId(orderEntity.getUllageSupNo()); + OrderEntity order = orderDao.findOne(orderFilterRequest); + if (null != order && !orders.contains(order)) { orders.add(order); getAllOrder(order, orders); } @@ -375,7 +380,7 @@ public class OrderServiceImpl implements OrderService { OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); orderFilterRequest.setId(id); OrderEntity orderEntity = orderDao.findOne(orderFilterRequest); - if (orderEntity.getStatus() == 4) { + if (orderEntity.getStatus().equals(ConstantStatus.ORDER_STATUS_PROCESS)) { //查询库存详情 FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); filterInvProductDetailRequest.setOrderIdFk(id); @@ -436,9 +441,14 @@ public class OrderServiceImpl implements OrderService { throw new RuntimeException("删除单据失败"); } } else { - //未验收单据 - orderDao.deleteById(id); - orderDetailDao.deleteByOrderId(id); + //未验收单据,删除单据,单据详情,码详情 + try { + orderDao.deleteById(id); + orderDetailDao.deleteByOrderId(id); + codesDao.deleteByOrderId(id); + } catch (Exception e) { + throw new RuntimeException("删除单据失败"); + } } } }