From 8893eda62d78495f500ced592f05f31e64a1fa96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 26 Jun 2026 18:27:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=8F=8A=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=89=A7=E8=A1=8C;nc=E6=8E=A8=E9=80=81=E5=AE=A2=E6=88=B7nc?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarehouseApplicationService.java | 10 +- .../repository/todo/WarehouseDO.java | 4 +- .../dto/warehouse/WarehouseDTO.java | 4 +- .../basic/warehouse/WarehouseMapper.xml | 4 +- .../repository/mapper/BillManageMapper.java | 2 + .../persistence/BillManageImpl.java | 53 ++++++ .../resources/mapper/BillManageMapper.xml | 4 + .../mapper/ReconciliationMapper.java | 2 + .../persistence/ReconciliationImpl.java | 99 ++++++++++ .../reconciliation/ReconciliationMapper.xml | 4 + .../entity/ExecutionStockInOrder.java | 4 + .../mapper/ExecutionStockInOrderMapper.java | 6 + .../ExecutionStockInOrderDomainService.java | 7 +- .../entity/ExecutionStockOutOrder.java | 4 + .../ExecutionStockOutOrderDomainService.java | 2 +- ...rvationStockInOrderApplicationService.java | 4 + .../ReservationStockInOrderDomainService.java | 135 ++++++++++++-- ...vationStockOutOrderApplicationService.java | 4 + ...ReservationStockOutOrderDomainService.java | 173 +++++++++++++++--- .../ReservationStockOutOrderApi.java | 7 + .../ReservationStockInOrderApi.java | 10 + .../ExecutionStockInOrderMapper.xml | 12 ++ .../InMaterialDetailMapper.xml | 2 +- .../inOrderAbnormal/InOrderAbnormalMapper.xml | 2 +- .../InventoryStandingReportMapper.xml | 8 +- .../MaterialInventoryMapper.xml | 12 +- .../StockReceiptOrderMapper.xml | 2 +- .../stockShelfOrder/StockShelfOrderMapper.xml | 2 +- 28 files changed, 521 insertions(+), 61 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java index 922bfd098..9c481ad5e 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java @@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import com.mhd.common.core.utils.StringUtils; +import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.List; @@ -98,6 +99,13 @@ public class WarehouseApplicationService { } } } + String orgIds = warehouseDO.getOrgIds(); + if (StringUtils.isNotEmpty(orgIds)) { + String[] orgIdArray = orgIds.split(","); + List orgIdList = Arrays.stream(orgIdArray).map(Long::valueOf).collect(Collectors.toList()); + warehouseDO.setOrgIdList(orgIdList); + warehouseDO.setOrganizationId(null); + } return warehouseDomainService.queryList(warehouseDO); } @@ -314,4 +322,4 @@ public class WarehouseApplicationService { return warehouseDomainService.getWarehouseChildren(warehouseId, storageLocationType); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java index 3fad8be59..f5bd4ec85 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java @@ -128,5 +128,7 @@ public class WarehouseDO extends BaseVOEntity{ @ApiModelProperty("仓库id 集合") private List warehouseIds; @ApiModelProperty("组织id 集合") - private List orgIds; + private String orgIds; + @ApiModelProperty("组织id 集合") + private List orgIdList; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java index 768b2509e..62bd089cf 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java @@ -133,5 +133,7 @@ public class WarehouseDTO extends BaseVOEntity{ @Excel(name = "是否启用: 1-否 2-是") private Integer isEnable; @ApiModelProperty("组织id 集合") - private List orgIds; + private String orgIds; + @ApiModelProperty("组织id 集合") + private List orgIdList; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml index 9d2bf66c3..04fcb50ca 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml @@ -130,9 +130,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item} - + and organization_id in - + #{item} diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java index f0f3c4f7a..1a075701b 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java @@ -25,6 +25,8 @@ public interface BillManageMapper extends BaseMapper String getCustomerCodeNc(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId); + String getCustomerCodeNcJson(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId); + String getDocumentPreparerNcCode(@Param("salesmanId") String salesmanId); String getsalespersonNcCode(@Param("salesmanId") String salesmanId); diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java index 486aab1ae..ce43265c0 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java @@ -1,9 +1,13 @@ package com.mhd.bms.domain.billManage.repository.persistence; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.mhd.bms.domain.billManage.entity.BillManage; import com.mhd.bms.domain.billManage.repository.facade.IBillManageService; @@ -66,6 +70,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * 账单管理Service业务层处理 @@ -211,6 +216,26 @@ public class BillManageImpl extends ServiceImpl im String appointShipper=make.getActualInvoiceCustomerName(); String actualInvoiceCustomerId = make.getActualInvoiceCustomerId(); String customerCodeNc = billManageMapper.getCustomerCodeNc(actualInvoiceCustomerId); + String customerCodeNcJson = billManageMapper.getCustomerCodeNcJson(actualInvoiceCustomerId); + if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) { + ObjectMapper objectMapper = new ObjectMapper(); + List> listNc = objectMapper.readValue( + customerCodeNcJson, + new TypeReference>>() {} + ); + if (listNc != null && listNc.size() > 0) { + Map targetMap = listNc.stream() + .filter(map -> { + Object codeObj = map.get("code"); + return codeObj != null && codeObj.toString().equals(reconciliation.getOrganizationId().toString()); + }) + .findFirst() + .orElse(null); + if (targetMap != null) { + customerCodeNc = (String) targetMap.get("ncCustomer"); + } + } + } String settlementCurrency=reconciliation.getSettlementCurrency(); String orgCodeNc = billManageMapper.getOrgCodeNc(organizationId); String documentPreparerNcCode = billManageMapper.getDocumentPreparerNcCode(salesmanId); @@ -436,6 +461,10 @@ public class BillManageImpl extends ServiceImpl im reconciliation.setSynchronousStatus(2); billManageMapper.updateById(reconciliation); e.printStackTrace(); + } catch (JsonMappingException e) { + throw new RuntimeException(e); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); } return true; } @@ -528,6 +557,26 @@ public class BillManageImpl extends ServiceImpl im String appointShipper=make.getActualInvoiceCustomerName(); String actualInvoiceCustomerId = make.getActualInvoiceCustomerId(); String customerCodeNc = billManageMapper.getCustomerCodeNc(actualInvoiceCustomerId); + String customerCodeNcJson = billManageMapper.getCustomerCodeNcJson(actualInvoiceCustomerId); + if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) { + ObjectMapper objectMapper = new ObjectMapper(); + List> listNc = objectMapper.readValue( + customerCodeNcJson, + new TypeReference>>() {} + ); + if (listNc != null && listNc.size() > 0) { + Map targetMap = listNc.stream() + .filter(map -> { + Object codeObj = map.get("code"); + return codeObj != null && codeObj.toString().equals(reconciliation.getOrganizationId().toString()); + }) + .findFirst() + .orElse(null); + if (targetMap != null) { + customerCodeNc = (String) targetMap.get("ncCustomer"); + } + } + } String documentPreparerNcCode = billManageMapper.getDocumentPreparerNcCode(salesmanId); String settlementCurrency=reconciliation.getSettlementCurrency(); String settlementCurrencyNcCode = settlementCurrency; @@ -722,6 +771,10 @@ public class BillManageImpl extends ServiceImpl im reconciliation.setSynchronousStatus(2); billManageMapper.updateById(reconciliation); e.printStackTrace(); + } catch (JsonMappingException e) { + throw new RuntimeException(e); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); } return true; } diff --git a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml index 951903728..6be84c7ad 100644 --- a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml @@ -118,6 +118,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT CUSTOMER_NC_CODE FROM NGWL_TEST_USER."USER_SHIPPER" where del_flag = 1 and SHIPPER_ID = #{actualInvoiceCustomerId} limit 1 + + diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java index eb50d1751..e68dd0b01 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java @@ -39,6 +39,8 @@ public interface ReconciliationMapper extends BaseMapper String getCustomerCodeNc(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId); + String getCustomerCodeNcJson(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId); + String getDocumentPreparerNcCode(@Param("salesmanId") String salesmanId); String getSettlementCurrencyNcCode(@Param("settlementCurrency") String settlementCurrency); diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java index 19c67e240..c2f386f31 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java @@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.linke.finance.domain.approvalDocument.entity.ApprovalDocument; import com.linke.finance.domain.approvalDocument.repository.mapper.ApprovalDocumentMapper; @@ -725,6 +727,26 @@ public class ReconciliationImpl extends ServiceImpl> list = objectMapper.readValue( + customerCodeNcJson, + new TypeReference>>() {} + ); + if (list != null && list.size() > 0) { + Map targetMap = list.stream() + .filter(map -> { + Object codeObj = map.get("code"); + return codeObj != null && codeObj.toString().equals(reconciliation.getOrganizationId().toString()); + }) + .findFirst() + .orElse(null); + if (targetMap != null) { + customerCodeNc = (String) targetMap.get("ncCustomer"); + } + } + } String settlementCurrency=order.getSettlementCurrency(); String salesmanId = order.getSalesmanId(); String customerUserDept = reconciliationMapper.getCustomerUserDept(salesmanId); @@ -952,6 +974,10 @@ public class ReconciliationImpl extends ServiceImpl> list = objectMapper.readValue( + customerCodeNcJson, + new TypeReference>>() {} + ); + if (list != null && list.size() > 0) { + Map targetMap = list.stream() + .filter(map -> { + Object codeObj = map.get("code"); + return codeObj != null && codeObj.toString().equals(reconciliation.getOrganizationId().toString()); + }) + .findFirst() + .orElse(null); + if (targetMap != null) { + customerCodeNc = (String) targetMap.get("ncCustomer"); + } + } + } + String settlementCurrency=order.getSettlementCurrency(); String salesmanId = order.getSalesmanId(); String customerUserDept = reconciliationMapper.getCustomerUserDept(salesmanId); @@ -1235,6 +1282,10 @@ public class ReconciliationImpl extends ServiceImpl> listNc = objectMapper.readValue( + customerCodeNcJson, + new TypeReference>>() {} + ); + if (listNc != null && listNc.size() > 0) { + Map targetMap = listNc.stream() + .filter(map -> { + Object codeObj = map.get("code"); + return codeObj != null && codeObj.toString().equals(reconciliation.getOrganizationId().toString()); + }) + .findFirst() + .orElse(null); + if (targetMap != null) { + customerCodeNc = (String) targetMap.get("ncCustomer"); + } + } + } String documentPreparerNcCode = reconciliationMapper.getDocumentPreparerNcCode(salesmanId); String settlementCurrency=order.getSettlementCurrency(); String settlementCurrencyNcCode = settlementCurrency; @@ -1759,6 +1830,10 @@ public class ReconciliationImpl extends ServiceImpl> listNc = objectMapper.readValue( + customerCodeNcJson, + new TypeReference>>() {} + ); + if (listNc != null && listNc.size() > 0) { + Map targetMap = listNc.stream() + .filter(map -> { + Object codeObj = map.get("code"); + return codeObj != null && codeObj.toString().equals(reconciliation.getOrganizationId().toString()); + }) + .findFirst() + .orElse(null); + if (targetMap != null) { + customerCodeNc = (String) targetMap.get("ncCustomer"); + } + } + } String documentPreparerNcCode = reconciliationMapper.getDocumentPreparerNcCode(salesmanId); String settlementCurrency=order.getSettlementCurrency(); String settlementCurrencyNcCode = settlementCurrency; @@ -2046,6 +2141,10 @@ public class ReconciliationImpl extends ServiceImpl + + diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/entity/ExecutionStockInOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/entity/ExecutionStockInOrder.java index 9a4aae0e0..bd785b871 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/entity/ExecutionStockInOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/entity/ExecutionStockInOrder.java @@ -61,6 +61,10 @@ public class ExecutionStockInOrder extends BaseVOEntity { @Excel(name = "入库单号") private String inOrderNumber; + @ApiModelProperty("入库业务单号") + @Excel(name = "入库业务单号") + private String businessInOrderNumber; + @ApiModelProperty("入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭") @Excel(name = "入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭") private Integer status; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java index 572ff4904..a83ad2a97 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java @@ -45,6 +45,12 @@ public interface ExecutionStockInOrderMapper extends BaseMapper queryNoticePrint(ExecutionStockInOrderDO stockInOrderDO); List queryNoticePrintDetail(ExecutionStockInOrderDO stockInOrderDO); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java index 5415bfce5..044e7cc9c 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java @@ -440,13 +440,16 @@ public class ExecutionStockInOrderDomainService { //逻辑删除w入库单信息 List inOrderIds = stockInOrderDO.getInOrderIds(); - if (inOrderIds == null || inOrderIds.isEmpty()) { + if (inOrderIds != null && !inOrderIds.isEmpty()) { for (Long inOrderId : inOrderIds) { ExecutionStockInOrder executionStockInOrder = reservationStockInOrderMapper.selectById(inOrderId); if (executionStockInOrder != null) { String inOrderNumber = executionStockInOrder.getInOrderNumber(); reservationStockInOrderMapper.delWOrder(inOrderNumber); reservationStockInOrderMapper.delWOrderDetail(inOrderNumber); + String wShOrder = reservationStockInOrderMapper.getWShOrder(inOrderNumber); + reservationStockInOrderMapper.delWShOrder(inOrderNumber); + reservationStockInOrderMapper.delWShOrderDetail(wShOrder); } } } @@ -458,7 +461,7 @@ public class ExecutionStockInOrderDomainService { .set(ExecutionStockInOrder::getUpdateBy, loginUser.getUserid()) .set(ExecutionStockInOrder::getUpdateByName, userRealName) .set(ExecutionStockInOrder::getUpdateTime, new Date()) - .set(ExecutionStockInOrder::getIssueStatus, issueStatus) + .set(ExecutionStockInOrder::getIssueStatus, 0) .in(ExecutionStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds())); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java index f51b8df4a..a664ff674 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java @@ -50,6 +50,10 @@ public class ExecutionStockOutOrder extends BaseVOEntity { @Excel(name = "出库单号") private String outOrderNumber; + @ApiModelProperty("出库单号") + @Excel(name = "出库单号") + private String businessOutOrderNumber; + @ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核") @Excel(name = "出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核") private Integer status; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java index fcd39242e..421d3075e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java @@ -327,7 +327,7 @@ public class ExecutionStockOutOrderDomainService { .set(ExecutionStockOutOrder::getUpdateBy, loginUser.getUserid()) .set(ExecutionStockOutOrder::getUpdateByName, userRealName) .set(ExecutionStockOutOrder::getUpdateTime, new Date()) - .set(ExecutionStockOutOrder::getIssueStatus, issueStatus) + .set(ExecutionStockOutOrder::getIssueStatus, 0) .in(ExecutionStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds())); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java index 8fd6cd193..dceb92718 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java @@ -333,6 +333,10 @@ public class ReservationStockInOrderApplicationService { return stockInOrderDomainService.issueOrder(stockInOrderDO); } + public Boolean executeAndIssue(ReservationStockInOrderDO stockInOrderDO){ + return stockInOrderDomainService.executeAndIssue(stockInOrderDO); + } + /** * @description 取消入库单 * @author ZhouGY diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java index 01b9b4552..9c51d7a54 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java @@ -17,6 +17,8 @@ import com.mhd.oms.domain.executionInMaterialDetail.entity.ExecutionInMaterialDe import com.mhd.oms.domain.executionInMaterialDetail.repository.facade.IExecutionInMaterialDetailService; import com.mhd.oms.domain.executionStockInOrder.entity.ExecutionStockInOrder; import com.mhd.oms.domain.executionStockInOrder.repository.facade.IExecutionStockInOrderService; +import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; +import com.mhd.oms.domain.executionStockInOrder.service.ExecutionStockInOrderApplicationService; import com.mhd.oms.domain.reservationInMaterialDetail.entity.ReservationInMaterialDetail; import com.mhd.oms.domain.reservationInMaterialDetail.repository.facade.IReservationInMaterialDetailService; import com.mhd.oms.domain.reservationInMaterialDetail.repository.po.ReservationInMaterialDetailPO; @@ -73,29 +75,16 @@ public class ReservationStockInOrderDomainService { private IExecutionInMaterialDetailService executionInMaterialDetailService; @Autowired private IReservationStockOutOrderService stockOutOrderService; -// @Autowired -// private ReservationStockReceiptOrderDomainService stockReceiptOrderDomainService; -// @Autowired -// private ReservationStockShelfOrderDomainService stockShelfOrderDomainService; -// @Autowired -// private IMaterialBaseInfoService materialBaseInfoService; -// @Autowired -// private IMaterialGoodsRuleService materialGoodsRuleService; -// @Autowired -// private IMaterialWarehouseControlService materialWarehouseControlService; @Autowired private SystemServiceFeign systemServiceFeign; @Autowired private WmsServiceFeign wmsServiceFeign; @Autowired private ReservationStockInOrderMapper reservationStockInOrderMapper; - + @Autowired + private ExecutionStockInOrderApplicationService stockInOrderApplicationService; @Autowired private BusinessDocumentOrderMapper businessDocumentOrderMapper; -// @Autowired -// private IReceiptMaterialDetailService receiptMaterialDetailService; -// @Autowired -// private IShelfMaterialDetailService shelfMaterialDetailService; /** * 分页查询入库单列表 @@ -514,6 +503,12 @@ public class ReservationStockInOrderDomainService { reservationStockInOrder.setTopOrganizationId(topOrgId); reservationStockInOrder.setWarehouseCode(warehouseCode); reservationStockInOrder.setWarehouseName(warehouseName); + reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber); + if (materialDetailGroupByWarehouse!=null&&materialDetailGroupByWarehouse.size()>1) { + reservationStockInOrder.setInOrderNumber(OrderSequence.getOrderCode("RK")); + } else { + reservationStockInOrder.setInOrderNumber(inOrderNumber); + } List inMaterialDetailList = new ArrayList<>(); int index = 1; @@ -526,6 +521,7 @@ public class ReservationStockInOrderDomainService { reservationInMaterialDetail.setTopOrganizationId(topOrgId); reservationInMaterialDetail.setWarehouseCode(warehouseCode); reservationInMaterialDetail.setWarehouseName(warehouseName); + reservationInMaterialDetail.setInOrderNumber(reservationStockInOrder.getInOrderNumber()); // String lot = generateDateSerialNumber(); // lot = lot+"-"+index; // index++; @@ -543,6 +539,115 @@ public class ReservationStockInOrderDomainService { return update; } + @Transactional(rollbackFor = Exception.class) + public Boolean executeAndIssue(ReservationStockInOrderDO stockInOrderDO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); + boolean update = stockInOrderService.update(null, new UpdateWrapper().lambda() + .set(ReservationStockInOrder::getIssueId, loginUser.getUserid()) + .set(ReservationStockInOrder::getIssueName, userRealName) + .set(ReservationStockInOrder::getIssueTime, new Date()) + //.set(ReservationStockInOrder::getIssueStatus, 1) + .set(ReservationStockInOrder::getUpdateBy, loginUser.getUserid()) + .set(ReservationStockInOrder::getUpdateByName, userRealName) + .set(ReservationStockInOrder::getUpdateTime, new Date()) + .in(ReservationStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds())); + + //todo下发推送到wms +// List inOrderIds = stockInOrderDO.getInOrderIds(); +// for (Long inOrderId : inOrderIds) { +// ReservationStockInOrder byId = stockInOrderService.getById(inOrderId); +// StockInOrder stockInOrder = new StockInOrder(); +// BeanUtils.copyProperties(byId, stockInOrder,"inOrderId"); +// stockInOrder.setOmsStockInOrderId(String.valueOf(byId.getInOrderId())); +// wmsServiceFeign.omsInOrderAdd(stockInOrder); +// String inOrderNumber = stockInOrder.getInOrderNumber(); +// List materialDetailList = materialDetailService.list(new QueryWrapper().lambda().eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)); +// List inMaterialDetailList = new ArrayList<>(); +// for (ReservationInMaterialDetail reservationInMaterialDetail : materialDetailList) { +// InMaterialDetail inMaterialDetail = new InMaterialDetail(); +// BeanUtils.copyProperties(reservationInMaterialDetail, inMaterialDetail,"materialDetailId"); +// inMaterialDetail.setOmsInMaterialDetail(String.valueOf(reservationInMaterialDetail.getMaterialDetailId())); +// inMaterialDetailList.add(inMaterialDetail); +// } +// wmsServiceFeign.omsInOrderAddDetail(inMaterialDetailList); +// } + //todo下发推送到入库业务单 + List inOrderIds = stockInOrderDO.getInOrderIds(); + for (Long inOrderId : inOrderIds) { +// Long inOrderId = stockInOrderDO.getInOrderId(); + ReservationStockInOrder byId = stockInOrderService.getById(inOrderId); + String inOrderNumber = byId.getInOrderNumber(); + List materialDetailList = materialDetailService.list(new QueryWrapper().lambda().eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)); + + // 按照 warehouseId 分组 + Map> materialDetailGroupByWarehouse = materialDetailList.stream() + .collect(Collectors.groupingBy(ReservationInMaterialDetail::getWarehouseId)); + materialDetailGroupByWarehouse.forEach((warehouseId, details) -> { + Long topOrgId = reservationStockInOrderMapper.getTopOrgId(warehouseId); + Long orgId = reservationStockInOrderMapper.getOrgId(warehouseId); + String orgName = reservationStockInOrderMapper.getOrgName(warehouseId); + String warehouseCode = reservationStockInOrderMapper.getWarehouseCode(warehouseId); + String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId); + + ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder(); + BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime"); + reservationStockInOrder.setIssueStatus(0); + reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku"); + reservationStockInOrder.setOrderTypeName("普通入库"); + reservationStockInOrder.setReservationOrderSource("客户预约"); + reservationStockInOrder.setWarehouseId(warehouseId); + reservationStockInOrder.setOrganizationId(orgId); + reservationStockInOrder.setOrganizationName(orgName); + reservationStockInOrder.setTopOrganizationId(topOrgId); + reservationStockInOrder.setWarehouseCode(warehouseCode); + reservationStockInOrder.setWarehouseName(warehouseName); + reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber); + if (materialDetailGroupByWarehouse!=null&&materialDetailGroupByWarehouse.size()>1) { + reservationStockInOrder.setInOrderNumber(OrderSequence.getOrderCode("RK")); + } else { + reservationStockInOrder.setInOrderNumber(inOrderNumber); + } + + List inMaterialDetailList = new ArrayList<>(); + int index = 1; + for (ReservationInMaterialDetail reserveInMaterialDetail : details) { + ExecutionInMaterialDetail reservationInMaterialDetail = new ExecutionInMaterialDetail(); + BeanUtils.copyProperties(reserveInMaterialDetail, reservationInMaterialDetail,"materialDetailId"); + reservationInMaterialDetail.setQuantity(reserveInMaterialDetail.getQuantity()); + reservationInMaterialDetail.setOrganizationId(orgId); + reservationInMaterialDetail.setOrganizationName(orgName); + reservationInMaterialDetail.setTopOrganizationId(topOrgId); + reservationInMaterialDetail.setWarehouseCode(warehouseCode); + reservationInMaterialDetail.setWarehouseName(warehouseName); + reservationInMaterialDetail.setInOrderNumber(reservationStockInOrder.getInOrderNumber()); +// String lot = generateDateSerialNumber(); +// lot = lot+"-"+index; +// index++; +// reservationInMaterialDetail.setLotNo(lot); + inMaterialDetailList.add(reservationInMaterialDetail); + } + BigDecimal quantity = details.stream().map(ReservationInMaterialDetail::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + reservationStockInOrder.setQuantity(quantity); + executionStockInOrderService.save(reservationStockInOrder); + ExecutionStockInOrderDO param = new ExecutionStockInOrderDO(); + Long inOrderId1 = reservationStockInOrder.getInOrderId(); + List inOrderIdList1 = new ArrayList<>(); + inOrderIdList1.add(inOrderId1); + param.setInOrderIds(inOrderIdList1); + stockInOrderApplicationService.issueOrder(param); + executionInMaterialDetailService.saveBatch(inMaterialDetailList); + }); + } + + + return update; + } + public String generateDateSerialNumber() { // 1. 获取当前时间,格式化为:yyMMdd (2位年+2位月+2位日) SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java index d3f318eb7..1d1456448 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java @@ -854,6 +854,10 @@ public class ReservationStockOutOrderApplicationService { return stockOutOrderDomainService.issueOrder(stockOutOrderDO); } + public Boolean executeAndIssue(ReservationStockOutOrderDO stockOutOrderDO){ + return stockOutOrderDomainService.executeAndIssue(stockOutOrderDO); + } + diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java index c3dbb8e2f..e2e5b4b81 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java @@ -20,6 +20,15 @@ import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder; import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper; import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder; import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper; +import com.mhd.oms.domain.executionInMaterialDetail.entity.ExecutionInMaterialDetail; +import com.mhd.oms.domain.executionInMaterialDetail.repository.facade.IExecutionInMaterialDetailService; +import com.mhd.oms.domain.executionOutMaterialDetail.entity.ExecutionOutMaterialDetail; +import com.mhd.oms.domain.executionOutMaterialDetail.repository.facade.IExecutionOutMaterialDetailService; +import com.mhd.oms.domain.executionStockInOrder.entity.ExecutionStockInOrder; +import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder; +import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService; +import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO; +import com.mhd.oms.domain.executionStockOutOrder.service.ExecutionStockOutOrderApplicationService; import com.mhd.oms.domain.reservationDeliveryDetailsLink.entity.ReservationDeliveryDetailsLink; import com.mhd.oms.domain.reservationDeliveryDetailsLink.repository.facade.IReservationDeliveryDetailsLinkService; import com.mhd.oms.domain.reservationInMaterialDetail.entity.ReservationInMaterialDetail; @@ -71,6 +80,10 @@ public class ReservationStockOutOrderDomainService { @Autowired private IReservationOutMaterialDetailService outMaterialDetailService; @Autowired + private IExecutionStockOutOrderService executionStockOutOrderService; + @Autowired + private IExecutionOutMaterialDetailService executionOutMaterialDetailService; + @Autowired private IReservationDeliveryDetailsLinkService deliveryDetailsLinkService; @Autowired private IReservationStockInOrderService reservationStockInOrderService; @@ -80,7 +93,8 @@ public class ReservationStockOutOrderDomainService { private BusinessDocumentOrderMapper businessDocumentOrderMapper; @Autowired private ExecuteOrderMapper executeOrderMapper; - + @Autowired + private ExecutionStockOutOrderApplicationService stockOutOrderApplicationService; @Resource private SystemServiceFeign systemServiceFeign; @Resource @@ -331,32 +345,143 @@ public class ReservationStockOutOrderDomainService { //todo下发推送到wms List inOrderIds = stockOutOrderDO.getOutOrderIds(); + for (Long inOrderId : inOrderIds) { ReservationStockOutOrder byId = stockOutOrderService.getById(inOrderId); - StockOutOrder stockOutOrder = new StockOutOrder(); - BeanUtils.copyProperties(byId, stockOutOrder,"outOrderId"); - wmsServiceFeign.omsOutOrderAdd(stockOutOrder); - - List list = deliveryDetailsLinkService.list(new QueryWrapper().lambda().eq(ReservationDeliveryDetailsLink::getOrderNumber, byId.getOutOrderNumber())); - List deliveryDetailsLinkList = new ArrayList<>(); - for (ReservationDeliveryDetailsLink reservationDeliveryDetailsLink : list) { - DeliveryDetailsLink deliveryDetailsLink = new DeliveryDetailsLink(); - BeanUtils.copyProperties(reservationDeliveryDetailsLink, deliveryDetailsLink,"id"); - deliveryDetailsLink.setOmsId(reservationDeliveryDetailsLink.getId()); - deliveryDetailsLinkList.add(deliveryDetailsLink); - } - wmsServiceFeign.omsOutOrderAddDeliveryDetailsLink(deliveryDetailsLinkList); - - - String inOrderNumber = stockOutOrder.getOutOrderNumber(); + String inOrderNumber = byId.getOutOrderNumber(); List materialDetailList = outMaterialDetailService.list(new QueryWrapper().lambda().eq(ReservationOutMaterialDetail::getOutOrderNumber, inOrderNumber)); - List outMaterialDetailList = new ArrayList<>(); - for (ReservationOutMaterialDetail reservationOutMaterialDetail : materialDetailList) { - OutMaterialDetail outMaterialDetail = new OutMaterialDetail(); - BeanUtils.copyProperties(reservationOutMaterialDetail, outMaterialDetail,"materialDetailId"); - outMaterialDetailList.add(outMaterialDetail); - } - wmsServiceFeign.omsOutOrderAddDetail(outMaterialDetailList); + + // 按照 warehouseId 分组 + Map> materialDetailGroupByWarehouse = materialDetailList.stream() + .collect(Collectors.groupingBy(ReservationOutMaterialDetail::getWarehouseId)); + materialDetailGroupByWarehouse.forEach((warehouseId, details) -> { + Long topOrgId = reservationStockInOrderMapper.getTopOrgId(warehouseId); + Long orgId = reservationStockInOrderMapper.getOrgId(warehouseId); + String orgName = reservationStockInOrderMapper.getOrgName(warehouseId); + String warehouseCode = reservationStockInOrderMapper.getWarehouseCode(warehouseId); + String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId); + + ExecutionStockOutOrder reservationStockInOrder = new ExecutionStockOutOrder(); + BeanUtils.copyProperties(byId, reservationStockInOrder,"outOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime"); + reservationStockInOrder.setIssueStatus(0); + reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku"); + reservationStockInOrder.setOrderTypeName("普通出库"); + reservationStockInOrder.setReservationOrderSource("客户预约"); + reservationStockInOrder.setWarehouseId(warehouseId); + reservationStockInOrder.setOrganizationId(orgId); + reservationStockInOrder.setOrganizationName(orgName); + reservationStockInOrder.setTopOrganizationId(topOrgId); + reservationStockInOrder.setWarehouseCode(warehouseCode); + reservationStockInOrder.setWarehouseName(warehouseName); + reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber); + if (materialDetailGroupByWarehouse!=null&&materialDetailGroupByWarehouse.size()>1) { + reservationStockInOrder.setOutOrderNumber(OrderSequence.getOrderCode("CK")); + } else { + reservationStockInOrder.setOutOrderNumber(inOrderNumber); + } + + List inMaterialDetailList = new ArrayList<>(); + for (ReservationOutMaterialDetail reservationOutMaterialDetail : details) { + ExecutionOutMaterialDetail reservationInMaterialDetail = new ExecutionOutMaterialDetail(); + BeanUtils.copyProperties(reservationOutMaterialDetail, reservationInMaterialDetail,"materialDetailId"); + reservationInMaterialDetail.setQuantity(reservationOutMaterialDetail.getQuantity()); + reservationInMaterialDetail.setOrganizationId(orgId); + reservationInMaterialDetail.setOrganizationName(orgName); + reservationInMaterialDetail.setTopOrganizationId(topOrgId); + reservationInMaterialDetail.setWarehouseCode(warehouseCode); + reservationInMaterialDetail.setWarehouseName(warehouseName); + reservationInMaterialDetail.setOutOrderNumber(reservationStockInOrder.getOutOrderNumber()); + inMaterialDetailList.add(reservationInMaterialDetail); + } + BigDecimal quantity = details.stream().map(ReservationOutMaterialDetail::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + reservationStockInOrder.setQuantity(quantity); + executionStockOutOrderService.save(reservationStockInOrder); + executionOutMaterialDetailService.saveBatch(inMaterialDetailList); + }); + } + return update; + } + + @Transactional(rollbackFor = Exception.class) + public Boolean executeAndIssue(ReservationStockOutOrderDO stockOutOrderDO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底) + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); + boolean update = stockOutOrderService.update(null, new UpdateWrapper().lambda() + .set(ReservationStockOutOrder::getIssueId, loginUser.getUserid()) + .set(ReservationStockOutOrder::getIssueName, userRealName) + .set(ReservationStockOutOrder::getIssueTime, new Date()) + //.set(ReservationStockOutOrder::getIssueStatus, 1) + .set(ReservationStockOutOrder::getUpdateBy, loginUser.getUserid()) + .set(ReservationStockOutOrder::getUpdateByName, userRealName) + .set(ReservationStockOutOrder::getUpdateTime, new Date()) + .in(ReservationStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds())); + + //todo下发推送到wms + List inOrderIds = stockOutOrderDO.getOutOrderIds(); + + for (Long inOrderId : inOrderIds) { + ReservationStockOutOrder byId = stockOutOrderService.getById(inOrderId); + String inOrderNumber = byId.getOutOrderNumber(); + List materialDetailList = outMaterialDetailService.list(new QueryWrapper().lambda().eq(ReservationOutMaterialDetail::getOutOrderNumber, inOrderNumber)); + + // 按照 warehouseId 分组 + Map> materialDetailGroupByWarehouse = materialDetailList.stream() + .collect(Collectors.groupingBy(ReservationOutMaterialDetail::getWarehouseId)); + materialDetailGroupByWarehouse.forEach((warehouseId, details) -> { + Long topOrgId = reservationStockInOrderMapper.getTopOrgId(warehouseId); + Long orgId = reservationStockInOrderMapper.getOrgId(warehouseId); + String orgName = reservationStockInOrderMapper.getOrgName(warehouseId); + String warehouseCode = reservationStockInOrderMapper.getWarehouseCode(warehouseId); + String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId); + + ExecutionStockOutOrder reservationStockInOrder = new ExecutionStockOutOrder(); + BeanUtils.copyProperties(byId, reservationStockInOrder,"outOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime"); + reservationStockInOrder.setIssueStatus(0); + reservationStockInOrder.setOrderTypeCode("pu_tong_chu_ku"); + reservationStockInOrder.setOrderTypeName("普通出库"); + reservationStockInOrder.setReservationOrderSource("客户预约"); + reservationStockInOrder.setWarehouseId(warehouseId); + reservationStockInOrder.setOrganizationId(orgId); + reservationStockInOrder.setOrganizationName(orgName); + reservationStockInOrder.setTopOrganizationId(topOrgId); + reservationStockInOrder.setWarehouseCode(warehouseCode); + reservationStockInOrder.setWarehouseName(warehouseName); + reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber); + if (materialDetailGroupByWarehouse!=null&&materialDetailGroupByWarehouse.size()>1) { + reservationStockInOrder.setOutOrderNumber(OrderSequence.getOrderCode("CK")); + } else { + reservationStockInOrder.setOutOrderNumber(inOrderNumber); + } + + List inMaterialDetailList = new ArrayList<>(); + for (ReservationOutMaterialDetail reservationOutMaterialDetail : details) { + ExecutionOutMaterialDetail reservationInMaterialDetail = new ExecutionOutMaterialDetail(); + BeanUtils.copyProperties(reservationOutMaterialDetail, reservationInMaterialDetail,"materialDetailId"); + reservationInMaterialDetail.setQuantity(reservationOutMaterialDetail.getQuantity()); + reservationInMaterialDetail.setOrganizationId(orgId); + reservationInMaterialDetail.setOrganizationName(orgName); + reservationInMaterialDetail.setTopOrganizationId(topOrgId); + reservationInMaterialDetail.setWarehouseCode(warehouseCode); + reservationInMaterialDetail.setWarehouseName(warehouseName); + reservationInMaterialDetail.setOutOrderNumber(reservationStockInOrder.getOutOrderNumber()); + inMaterialDetailList.add(reservationInMaterialDetail); + } + BigDecimal quantity = details.stream().map(ReservationOutMaterialDetail::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + reservationStockInOrder.setQuantity(quantity); + executionStockOutOrderService.save(reservationStockInOrder); + executionOutMaterialDetailService.saveBatch(inMaterialDetailList); + + //下发 + Long outOrderId = reservationStockInOrder.getOutOrderId(); + ExecutionStockOutOrderDO param = new ExecutionStockOutOrderDO(); + List ids = new ArrayList<>(); + ids.add(outOrderId); + param.setOutOrderIds(ids); + stockOutOrderApplicationService.issueOrder(param); + }); } return update; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java index abe0a56b7..2549b15aa 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReservationStockOutOrder/ReservationStockOutOrderApi.java @@ -150,6 +150,13 @@ public class ReservationStockOutOrderApi extends BaseController { return AjaxResult.success(stockOutOrderApplicationService.issueOrder(stockOutOrderDO)); } + @ApiOperation("下发出库单") + @PostMapping(value = "/executeAndIssue") + public AjaxResult executeAndIssue(@RequestBody ReservationStockOutOrderDTO stockOutOrderDTO) { + ReservationStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO); + return AjaxResult.success(stockOutOrderApplicationService.executeAndIssue(stockOutOrderDO)); + } + @ApiOperation("关闭出库单") @PostMapping("/close") public AjaxResult close(@RequestBody ReservationStockOutOrderDTO stockOutOrderDTO) diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java index 3d0d1fd56..630db6782 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java @@ -129,6 +129,16 @@ public class ReservationStockInOrderApi extends BaseController { return AjaxResult.success(stockInOrderApplicationService.issueOrder(stockInOrderDO)); } + /** + * 下发入库单 + */ + @ApiOperation("下发入库单") + @PostMapping(value = "/executeAndIssue") + public AjaxResult executeAndIssue(@RequestBody ReservationStockInOrderDTO stockInOrderDTO) { + ReservationStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); + return AjaxResult.success(stockInOrderApplicationService.executeAndIssue(stockInOrderDO)); + } + /** * wms回传出入库结果 diff --git a/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml b/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml index efb63a5bc..e7482a7c2 100644 --- a/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml @@ -637,4 +637,16 @@ update "NGWL_TEST_WMS".IN_MATERIAL_DETAIL set DEL_FLAG = 2 where DEL_FLAG = 1 and in_order_number = #{inOrderNumber} + + + update "NGWL_TEST_WMS".STOCK_RECEIPT_ORDER set DEL_FLAG = 2 where DEL_FLAG = 1 and in_order_number = #{inOrderNumber} + + + + + + update "NGWL_TEST_WMS".RECEIPT_MATERIAL_DETAIL set DEL_FLAG = 2 where DEL_FLAG = 1 and RECEIPT_ORDER_NUMBER = #{receiptOrderNumber} + \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml index 6cefc6155..cece22329 100644 --- a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml @@ -348,7 +348,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from in_material_detail a - LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number + LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number and a.DEL_FLAG = 1 and b.DEL_FLAG = 1 diff --git a/mhd_wms/src/main/resources/mapper/inOrderAbnormal/InOrderAbnormalMapper.xml b/mhd_wms/src/main/resources/mapper/inOrderAbnormal/InOrderAbnormalMapper.xml index 228139f0d..13db39d74 100644 --- a/mhd_wms/src/main/resources/mapper/inOrderAbnormal/InOrderAbnormalMapper.xml +++ b/mhd_wms/src/main/resources/mapper/inOrderAbnormal/InOrderAbnormalMapper.xml @@ -91,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from in_order_abnormal a - LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number + LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number and a.DEL_FLAG = 1 and b.DEL_FLAG = 1 diff --git a/mhd_wms/src/main/resources/mapper/inventoryStandingReport/InventoryStandingReportMapper.xml b/mhd_wms/src/main/resources/mapper/inventoryStandingReport/InventoryStandingReportMapper.xml index b5a015aa2..f4b8c1ecc 100644 --- a/mhd_wms/src/main/resources/mapper/inventoryStandingReport/InventoryStandingReportMapper.xml +++ b/mhd_wms/src/main/resources/mapper/inventoryStandingReport/InventoryStandingReportMapper.xml @@ -67,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM receipt_material_detail rmd LEFT JOIN stock_receipt_order sro1 ON sro1.receipt_order_number = rmd.receipt_order_number - LEFT JOIN stock_in_order sio1 ON sro1.in_order_number = sio1.in_order_number + LEFT JOIN stock_in_order sio1 ON sro1.in_order_number = sio1.in_order_number and sio1.DEL_FLAG = 1 and sro1.DEL_FLAG = 1 WHERE rmd.receipt_status IN ( 1, 2 ) AND rmd.receipt_quantity > 0 @@ -95,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM shelf_material_detail smd LEFT JOIN stock_shelf_order sso ON sso.shelf_order_number = smd.shelf_order_number - LEFT JOIN stock_in_order sio2 ON sso.in_order_number = sio2.in_order_number + LEFT JOIN stock_in_order sio2 ON sso.in_order_number = sio2.in_order_number and sio1.DEL_FLAG = 1 and sso1.DEL_FLAG = 1 WHERE smd.shelves_status IN ( 1, 2 ) GROUP BY @@ -220,7 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM receipt_material_detail rmd LEFT JOIN stock_receipt_order sro ON sro.receipt_order_number = rmd.receipt_order_number - LEFT JOIN stock_in_order sio ON sro.in_order_number = sio.in_order_number + LEFT JOIN stock_in_order sio ON sro.in_order_number = sio.in_order_number and sio1.DEL_FLAG = 1 and sro1.DEL_FLAG = 1 WHERE sro.status IN ( 1, 2 ) @@ -248,7 +248,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM shelf_material_detail rmd LEFT JOIN stock_shelf_order sso ON sso.shelf_order_number = rmd.shelf_order_number - LEFT JOIN stock_in_order sio ON sso.in_order_number = sio.in_order_number + LEFT JOIN stock_in_order sio ON sso.in_order_number = sio.in_order_number and sio1.DEL_FLAG = 1 and sso1.DEL_FLAG = 1 WHERE sso.STATUS IN ( 1, diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 9fcd08bcf..eb7756062 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -775,7 +775,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" receipt_material_detail c LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 WHERE c.del_flag = 1 and d.STATUS = 3 AND e.warehouse_id = a.warehouse_id @@ -802,7 +802,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" shelf_material_detail c LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 WHERE c.del_flag = 1 and d.STATUS = 1 AND e.warehouse_id = a.warehouse_id @@ -983,7 +983,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" receipt_material_detail c LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 WHERE c.del_flag = 1 and d.STATUS = 3 AND e.warehouse_id = a.warehouse_id @@ -1013,7 +1013,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" receipt_material_detail c LEFT JOIN stock_receipt_order d ON c.receipt_order_number = d.receipt_order_number AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 WHERE c.del_flag = 1 and d.STATUS = 3 AND e.warehouse_id = a.warehouse_id @@ -1043,7 +1043,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" shelf_material_detail c LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 WHERE c.del_flag = 1 AND e.warehouse_id = a.warehouse_id @@ -1063,7 +1063,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" shelf_material_detail c LEFT JOIN stock_shelf_order d ON c.shelf_order_number = d.shelf_order_number AND d.del_flag = 1 - LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number + LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number and e.DEL_FLAG = 1 and d.DEL_FLAG = 1 WHERE c.del_flag = 1 AND e.warehouse_id = a.warehouse_id diff --git a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml index fa4dbc5b6..9509d5da5 100644 --- a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml @@ -152,7 +152,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from stock_receipt_order a - LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number + LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number and a.DEL_FLAG = 1 and b.DEL_FLAG = 1 diff --git a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml index 83f0b1861..38469fe99 100644 --- a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml @@ -143,7 +143,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from stock_shelf_order a - LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number + LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number and a.DEL_FLAG = 1 and b.DEL_FLAG = 1