From 1655d57057506b6f4c3e937d9eb3cfc018b1a770 Mon Sep 17 00:00:00 2001
From: hjx <577364224@qq.com>
Date: Mon, 19 Jan 2026 18:55:23 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E9=9B=86=E6=88=90wms=E6=9C=8D=E5=8A=A1?=
=?UTF-8?q?=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mhd_wms/pom.xml | 170 +++
.../java/com/mhd/wms/MhdWmsApplication.java | 21 +
.../CommonSettingsApplicationService.java | 87 ++
...ontainerUsageRecordApplicationService.java | 74 ++
.../DeliveTaskApplicationService.java | 112 ++
.../DifferentManageApplicationService.java | 87 ++
.../HandoverTaskOrderApplicationService.java | 151 +++
.../InMaterialDetailApplicationService.java | 73 ++
...lDetailSerialNumberApplicationService.java | 74 ++
.../InOrderAbnormalApplicationService.java | 78 ++
...oryAdjustmentRecordApplicationService.java | 102 ++
...ntoryAllocationRuleApplicationService.java | 244 ++++
...llocationRuleDetailApplicationService.java | 74 ++
...ntoryStandingDetailApplicationService.java | 62 +
...ntoryStandingReportApplicationService.java | 83 ++
...ventoryTurnoverRuleApplicationService.java | 119 ++
...yTurnoverRuleDetailApplicationService.java | 74 ++
...ntoryWarningAnalyzeApplicationService.java | 199 ++++
...InvestigationManageApplicationService.java | 237 ++++
...igetionManageDetailApplicationService.java | 74 ++
.../MaterialBarCodeApplicationService.java | 74 ++
.../MaterialBaseInfoApplicationService.java | 135 +++
.../MaterialCommonApplicationService.java | 74 ++
.../MaterialGoodsRuleApplicationService.java | 81 ++
.../MaterialInventoryApplicationService.java | 126 ++
...ialInventoryWarningApplicationService.java | 74 ++
.../MaterialMoreDetailApplicationService.java | 73 ++
...ialWarehouseControlApplicationService.java | 74 ++
.../MobilizeManageApplicationService.java | 85 ++
...obilizeManageDetailApplicationService.java | 74 ++
...oticeMaterialDetailApplicationService.java | 74 ++
.../NoticeOrderApplicationService.java | 222 ++++
...lDetailSerialNumberApplicationService.java | 74 ++
.../OutOrderAbnormalApplicationService.java | 74 ++
.../OverStockApplicationService.java | 170 +++
.../PickingOrderApplicationService.java | 250 ++++
.../PutawayRuleApplicationService.java | 260 +++++
.../PutawayRuleDetailApplicationService.java | 74 ++
.../qcRule/QcRuleApplicationService.java | 141 +++
.../QcRuleDetailApplicationService.java | 74 ++
.../QualityInspectionApplicationService.java | 78 ++
...ceiptMaterialDetailApplicationService.java | 73 ++
...ReplenishmentNoticeApplicationService.java | 78 ++
.../SerialNumberApplicationService.java | 93 ++
...ShelfMaterialDetailApplicationService.java | 74 ++
.../ShiftManageApplicationService.java | 436 +++++++
...ShiftMaterialDetailApplicationService.java | 95 ++
...DistributionDetailsApplicationService.java | 165 +++
.../SowingWallApplicationService.java | 86 ++
.../StatementStatisticsService.java | 101 ++
.../StockInOrderApplicationService.java | 228 ++++
.../StockInTaskOrderApplicationService.java | 78 ++
.../StockOutOrderApplicationService.java | 524 +++++++++
.../StockOutTaskOrderApplicationService.java | 183 +++
.../StockReceiptOrderApplicationService.java | 743 ++++++++++++
.../StockShelfOrderApplicationService.java | 381 ++++++
...ceiptMaterialDetailApplicationService.java | 74 ++
...ShelfMaterialDetailApplicationService.java | 74 ++
.../UserCommonSettingsApplicationService.java | 129 +++
.../WaveMaterialDetailApplicationService.java | 74 ++
.../WaveOrderApplicationService.java | 121 ++
.../waveRule/WaveRuleApplicationService.java | 80 ++
.../commonSettings/entity/CommonSettings.java | 59 +
.../facade/ICommonSettingsService.java | 43 +
.../mapper/CommonSettingsMapper.java | 23 +
.../persistence/CommonSettingsImpl.java | 81 ++
.../repository/po/CommonSettingsPO.java | 62 +
.../repository/todo/CommonSettingsDO.java | 62 +
.../service/CommonSettingsDomainService.java | 65 ++
.../entity/ContainerUsageRecord.java | 89 ++
.../facade/IContainerUsageRecordService.java | 43 +
.../mapper/ContainerUsageRecordMapper.java | 23 +
.../persistence/ContainerUsageRecordImpl.java | 81 ++
.../repository/po/ContainerUsageRecordPO.java | 89 ++
.../todo/ContainerUsageRecordDO.java | 91 ++
.../ContainerUsageRecordDomainService.java | 65 ++
.../domain/deliveTask/entity/DeliveTask.java | 112 ++
.../factorys/DeliveTaskServiceFactory.java | 57 +
.../repository/facade/IDeliveTaskService.java | 59 +
.../facade/IDeliveTaskTypeService.java | 21 +
.../repository/mapper/DeliveTaskMapper.java | 49 +
.../persistence/DeliveTaskImpl.java | 174 +++
.../repository/po/DeliveTaskPO.java | 118 ++
.../repository/po/DeliveTaskSumPO.java | 37 +
.../repository/todo/DeliveTaskDO.java | 118 ++
.../service/DeliveTaskDomainService.java | 117 ++
.../entity/DifferentManage.java | 117 ++
.../facade/IDifferentManageService.java | 55 +
.../mapper/DifferentManageMapper.java | 23 +
.../persistence/DifferentManageImpl.java | 210 ++++
.../repository/po/DifferentManagePO.java | 117 ++
.../repository/todo/DifferentManageDO.java | 120 ++
.../service/DifferentManageDomainService.java | 74 ++
.../entity/HandoverTaskOrder.java | 129 +++
.../facade/IHandoverTaskOrderService.java | 43 +
.../mapper/HandoverTaskOrderMapper.java | 23 +
.../persistence/HandoverTaskOrderImpl.java | 81 ++
.../repository/po/HandoverTaskOrderPO.java | 129 +++
.../repository/todo/HandoverTaskOrderDO.java | 134 +++
.../HandoverTaskOrderDomainService.java | 130 +++
.../entity/InMaterialDetail.java | 254 ++++
.../facade/IInMaterialDetailService.java | 65 ++
.../mapper/InMaterialDetailMapper.java | 29 +
.../persistence/InMaterialDetailImpl.java | 242 ++++
.../repository/po/InMaterialDetailPO.java | 266 +++++
.../todo/InMaterialDetailBaseDO.java | 42 +
.../repository/todo/InMaterialDetailDO.java | 261 +++++
.../InMaterialDetailDomainService.java | 65 ++
.../entity/InMaterialDetailSerialNumber.java | 55 +
.../IInMaterialDetailSerialNumberService.java | 43 +
.../InMaterialDetailSerialNumberMapper.java | 23 +
.../InMaterialDetailSerialNumberImpl.java | 81 ++
.../po/InMaterialDetailSerialNumberPO.java | 55 +
.../todo/InMaterialDetailSerialNumberDO.java | 62 +
...terialDetailSerialNumberDomainService.java | 64 +
.../entity/InOrderAbnormal.java | 89 ++
.../facade/IInOrderAbnormalService.java | 54 +
.../mapper/InOrderAbnormalMapper.java | 23 +
.../persistence/InOrderAbnormalImpl.java | 264 +++++
.../repository/po/InOrderAbnormalPO.java | 96 ++
.../todo/InOrderAbnormalBaseDO.java | 46 +
.../repository/todo/InOrderAbnormalDO.java | 91 ++
.../service/InOrderAbnormalDomainService.java | 103 ++
.../entity/InventoryAdjustmentRecord.java | 152 +++
.../IInventoryAdjustmentRecordService.java | 43 +
.../InventoryAdjustmentRecordMapper.java | 23 +
.../InventoryAdjustmentRecordImpl.java | 81 ++
.../po/InventoryAdjustmentRecordPO.java | 152 +++
.../todo/InventoryAdjustmentRecordDO.java | 166 +++
...nventoryAdjustmentRecordDomainService.java | 348 ++++++
.../entity/InventoryAllocationRule.java | 55 +
.../IInventoryAllocationRuleService.java | 45 +
.../mapper/InventoryAllocationRuleMapper.java | 23 +
.../InventoryAllocationRuleImpl.java | 90 ++
.../po/InventoryAllocationRulePO.java | 61 +
.../todo/InventoryAllocationRuleDO.java | 62 +
.../InventoryAllocationRuleDomainService.java | 68 ++
.../entity/InventoryAllocationRuleDetail.java | 79 ++
...IInventoryAllocationRuleDetailService.java | 51 +
.../InventoryAllocationRuleDetailMapper.java | 30 +
.../InventoryAllocationRuleDetailImpl.java | 107 ++
.../po/InventoryAllocationRuleDetailPO.java | 79 ++
.../todo/InventoryAllocationRuleDetailDO.java | 82 ++
...toryAllocationRuleDetailDomainService.java | 81 ++
.../entity/InventoryStandingDetail.java | 89 ++
.../IInventoryStandingDetailService.java | 54 +
.../mapper/InventoryStandingDetailMapper.java | 38 +
.../InventoryStandingDetailImpl.java | 109 ++
.../po/InventoryStandingDetailPO.java | 89 ++
.../todo/InventoryStandingDetailDO.java | 91 ++
.../InventoryStandingDetailDomainService.java | 68 ++
.../entity/InventoryStandingReport.java | 85 ++
.../IInventoryStandingReportService.java | 45 +
.../mapper/InventoryStandingReportMapper.java | 29 +
.../InventoryStandingReportImpl.java | 147 +++
.../po/InventoryStandingDetailReportPO.java | 37 +
.../po/InventoryStandingReportPO.java | 80 ++
.../todo/InventoryStandingReportDO.java | 87 ++
.../InventoryStandingReportDomainService.java | 69 ++
.../entity/InventoryTurnoverRule.java | 55 +
.../facade/IInventoryTurnoverRuleService.java | 45 +
.../mapper/InventoryTurnoverRuleMapper.java | 23 +
.../InventoryTurnoverRuleImpl.java | 89 ++
.../po/InventoryTurnoverRulePO.java | 61 +
.../todo/InventoryTurnoverRuleDO.java | 62 +
.../InventoryTurnoverRuleDomainService.java | 68 ++
.../entity/InventoryTurnoverRuleDetail.java | 59 +
.../IInventoryTurnoverRuleDetailService.java | 51 +
.../InventoryTurnoverRuleDetailMapper.java | 28 +
.../InventoryTurnoverRuleDetailImpl.java | 109 ++
.../po/InventoryTurnoverRuleDetailPO.java | 59 +
.../todo/InventoryTurnoverRuleDetailDO.java | 62 +
...entoryTurnoverRuleDetailDomainService.java | 81 ++
.../entity/InventoryWarningAnalyze.java | 160 +++
.../IInventoryWarningAnalyzeService.java | 42 +
.../mapper/InventoryWarningAnalyzeMapper.java | 22 +
.../InventoryWarningAnalyzeImpl.java | 80 ++
.../po/InventoryWarningAnalyzePO.java | 162 +++
.../todo/InventoryWarningAnalyzeDO.java | 162 +++
.../InventoryWarningAnalyzeDomainService.java | 78 ++
.../entity/InvestigationManage.java | 145 +++
.../facade/IInvestigationManageService.java | 69 ++
.../mapper/InvestigationManageMapper.java | 23 +
.../persistence/InvestigationManageImpl.java | 452 ++++++++
.../repository/po/InvestigationManagePO.java | 158 +++
.../po/InvestigetionMaterialPO.java | 71 ++
.../repository/po/InvestigetionStoragePO.java | 83 ++
.../todo/InvestigationManageDO.java | 176 +++
.../todo/InvestigetionMaterialDO.java | 67 ++
.../todo/InvestigetionStorageDO.java | 79 ++
.../InvestigationManageDomainService.java | 341 ++++++
.../entity/InvestigetionManageDetail.java | 210 ++++
.../IInvestigetionManageDetailService.java | 43 +
.../InvestigetionManageDetailMapper.java | 32 +
.../InvestigetionManageDetailImpl.java | 81 ++
.../po/InvestigetionManageDetailPO.java | 208 ++++
.../todo/InvestigetionManageDetailDO.java | 215 ++++
...nvestigetionManageDetailDomainService.java | 65 ++
.../entity/MaterialBarCode.java | 75 ++
.../facade/IMaterialBarCodeService.java | 58 +
.../mapper/MaterialBarCodeMapper.java | 23 +
.../persistence/MaterialBarCodeImpl.java | 163 +++
.../repository/po/MaterialBarCodePO.java | 75 ++
.../repository/todo/MaterialBarCodeDO.java | 78 ++
.../service/MaterialBarCodeDomainService.java | 75 ++
.../entity/MaterialBaseInfo.java | 172 +++
.../facade/IMaterialBaseInfoService.java | 45 +
.../mapper/MaterialBaseInfoMapper.java | 24 +
.../persistence/MaterialBaseInfoImpl.java | 94 ++
.../repository/po/MaterialBaseInfoPO.java | 192 +++
.../repository/po/MaterialBasePO.java | 65 ++
.../repository/todo/MaterialBaseDO.java | 73 ++
.../repository/todo/MaterialBaseInfoDO.java | 190 +++
.../MaterialBaseInfoDomainService.java | 177 +++
.../materialCommon/entity/MaterialCommon.java | 101 ++
.../facade/IMaterialCommonService.java | 53 +
.../mapper/MaterialCommonMapper.java | 23 +
.../persistence/MaterialCommonImpl.java | 140 +++
.../repository/po/MaterialCommonPO.java | 101 ++
.../repository/todo/MaterialCommonDO.java | 103 ++
.../service/MaterialCommonDomainService.java | 120 ++
.../entity/MaterialGoodsRule.java | 131 +++
.../facade/IMaterialGoodsRuleService.java | 53 +
.../mapper/MaterialGoodsRuleMapper.java | 23 +
.../persistence/MaterialGoodsRuleImpl.java | 132 +++
.../repository/po/MaterialGoodsRulePO.java | 131 +++
.../repository/todo/MaterialGoodsRuleDO.java | 134 +++
.../MaterialGoodsRuleDomainService.java | 163 +++
.../entity/MaterialInventory.java | 133 +++
.../facade/IMaterialInventoryService.java | 101 ++
.../mapper/MaterialInventoryMapper.java | 89 ++
.../persistence/MaterialInventoryImpl.java | 267 +++++
.../repository/po/MaterialInventoryPO.java | 130 +++
.../po/MaterialInventoryQueryListPO.java | 150 +++
.../repository/todo/MaterialInventoryDO.java | 147 +++
.../todo/MaterialInventoryParentDO.java | 23 +
.../todo/MaterialInventoryQueryListDO.java | 171 +++
.../MaterialInventoryDomainService.java | 109 ++
.../entity/MaterialInventoryWarning.java | 117 ++
.../IMaterialInventoryWarningService.java | 60 +
.../MaterialInventoryWarningMapper.java | 24 +
.../MaterialInventoryWarningImpl.java | 164 +++
.../po/MaterialInventoryWarningPO.java | 120 ++
.../todo/MaterialInventoryWarningDO.java | 119 ++
...MaterialInventoryWarningDomainService.java | 180 +++
.../entity/MaterialMoreDetail.java | 79 ++
.../facade/IMaterialMoreDetailService.java | 43 +
.../mapper/MaterialMoreDetailMapper.java | 23 +
.../persistence/IMaterialMoreDetailImpl.java | 81 ++
.../repository/po/MaterialMoreDetailPO.java | 79 ++
.../repository/todo/MaterialMoreDetailDO.java | 86 ++
.../MaterialMoreDetailDomainService.java | 65 ++
.../entity/MaterialWarehouseControl.java | 97 ++
.../IMaterialWarehouseControlService.java | 53 +
.../MaterialWarehouseControlMapper.java | 23 +
.../MaterialWarehouseControlImpl.java | 140 +++
.../po/MaterialWarehouseControlPO.java | 97 ++
.../todo/MaterialWarehouseControlDO.java | 99 ++
...MaterialWarehouseControlDomainService.java | 81 ++
.../mobilizeManage/entity/MobilizeManage.java | 142 +++
.../facade/IMobilizeManageService.java | 43 +
.../mapper/MobilizeManageMapper.java | 28 +
.../persistence/MobilizeManageImpl.java | 82 ++
.../repository/po/MobilizeManagePO.java | 148 +++
.../repository/todo/MobilizeManageDO.java | 155 +++
.../service/MobilizeManageDomainService.java | 367 ++++++
.../entity/MobilizeManageDetail.java | 169 +++
.../facade/IMobilizeManageDetailService.java | 43 +
.../mapper/MobilizeManageDetailMapper.java | 28 +
.../persistence/MobilizeManageDetailImpl.java | 130 +++
.../repository/po/MobilizeManageDetailPO.java | 177 +++
.../todo/MobilizeManageDetailDO.java | 178 +++
.../MobilizeManageDetailDomainService.java | 65 ++
.../entity/NoticeMaterialDetail.java | 144 +++
.../facade/INoticeMaterialDetailService.java | 48 +
.../mapper/NoticeMaterialDetailMapper.java | 23 +
.../persistence/NoticeMaterialDetailImpl.java | 189 +++
.../repository/po/NoticeMaterialDetailPO.java | 144 +++
.../todo/NoticeMaterialDetailDO.java | 147 +++
.../NoticeMaterialDetailDomainService.java | 65 ++
.../noticeOrder/entity/NoticeOrder.java | 137 +++
.../facade/INoticeOrderService.java | 43 +
.../repository/mapper/NoticeOrderMapper.java | 23 +
.../persistence/NoticeImplOrder.java | 81 ++
.../repository/po/NoticeOrderPO.java | 137 +++
.../repository/todo/NoticeOrderDO.java | 143 +++
.../service/NoticeOrderDomainService.java | 231 ++++
.../entity/OutMaterialDetail.java | 225 ++++
.../facade/IOutMaterialDetailService.java | 115 ++
.../mapper/OutMaterialDetailMapper.java | 56 +
.../persistence/OutMaterialDetailImpl.java | 520 +++++++++
.../repository/po/OutMaterialCheckPO.java | 42 +
.../repository/po/OutMaterialDetailPO.java | 233 ++++
.../todo/OutMaterialDetailBaseDO.java | 34 +
.../repository/todo/OutMaterialDetailDO.java | 241 ++++
.../OutMaterialDetailDomainService.java | 64 +
.../entity/OutMaterialDetailSerialNumber.java | 59 +
...IOutMaterialDetailSerialNumberService.java | 52 +
.../OutMaterialDetailSerialNumberMapper.java | 23 +
.../OutMaterialDetailSerialNumberImpl.java | 99 ++
.../po/OutMaterialDetailSerialNumberPO.java | 59 +
.../todo/OutMaterialDetailSerialNumberDO.java | 62 +
...terialDetailSerialNumberDomainService.java | 65 ++
.../entity/OutOrderAbnormal.java | 85 ++
.../facade/IOutOrderAbnormalService.java | 54 +
.../mapper/OutOrderAbnormalMapper.java | 23 +
.../persistence/OutOrderAbnormalImpl.java | 211 ++++
.../repository/po/OutOrderAbnormalPO.java | 117 ++
.../todo/OutOrderAbnormalBaseDO.java | 42 +
.../repository/todo/OutOrderAbnormalDO.java | 119 ++
.../OutOrderAbnormalDomainService.java | 65 ++
.../domain/overStock/entity/OverStock.java | 89 ++
.../repository/facade/IOverStockService.java | 73 ++
.../repository/mapper/OverStockMapper.java | 23 +
.../repository/persistence/OverStockImpl.java | 453 ++++++++
.../po/OverStockInOrderOutOrderDetailPO.java | 102 ++
.../po/OverStockInOrderOutOrderListPO.java | 23 +
.../overStock/repository/po/OverStockPO.java | 89 ++
.../po/QueryOrderOverStockDetailPO.java | 30 +
.../repository/po/QueryOrderOverStockPO.java | 96 ++
.../repository/po/ReceiptOverStockPO.java | 103 ++
.../repository/todo/ExecuteOverStockDO.java | 24 +
.../repository/todo/OverStockDO.java | 91 ++
.../todo/QueryOrderOverStockDO.java | 140 +++
.../repository/todo/ReceiptOverStockDO.java | 108 ++
.../service/OverStockDomainService.java | 857 ++++++++++++++
.../entity/PickingMaterialDetail.java | 191 +++
.../facade/IPickingMaterialDetailService.java | 75 ++
.../mapper/PickingMaterialDetailMapper.java | 33 +
.../PickingMaterialDetailImpl.java | 371 ++++++
.../po/PickingMaterialDetailPO.java | 198 ++++
.../todo/PickingMaterialDetailDO.java | 208 ++++
.../todo/PickingMaterialDetailDOByUpdate.java | 37 +
.../PickingMaterialDetailDomainService.java | 65 ++
.../pickingOrder/entity/PickingOrder.java | 122 ++
.../facade/IPickingOrderService.java | 80 ++
.../repository/mapper/PickingOrderMapper.java | 57 +
.../persistence/PickingOrderImpl.java | 179 +++
.../repository/po/AllocationSowingWallPO.java | 31 +
.../repository/po/PickingOrderPO.java | 127 ++
.../repository/todo/PickingOrderDO.java | 171 +++
.../service/PickingOrderDomainService.java | 752 ++++++++++++
.../pushSyncBms/PushSyncBmsDomainService.java | 156 +++
.../putawayRule/entity/PutawayRule.java | 55 +
.../facade/IPutawayRuleService.java | 45 +
.../repository/mapper/PutawayRuleMapper.java | 23 +
.../persistence/PutawayRuleImpl.java | 110 ++
.../repository/po/PutawayRulePO.java | 62 +
.../repository/todo/PutawayRuleDO.java | 55 +
.../service/PutawayRuleDomainService.java | 69 ++
.../entity/PutawayRuleDetail.java | 91 ++
.../facade/IPutawayRuleDetailService.java | 49 +
.../mapper/PutawayRuleDetailMapper.java | 24 +
.../persistence/PutawayRuleDetailImpl.java | 113 ++
.../repository/po/PutawayRuleDetailPO.java | 91 ++
.../repository/todo/PutawayRuleDetailDO.java | 94 ++
.../PutawayRuleDetailDomainService.java | 81 ++
.../mhd/wms/domain/qcRule/entity/QcRule.java | 55 +
.../repository/facade/IQcRuleService.java | 45 +
.../repository/mapper/QcRuleMapper.java | 23 +
.../repository/persistence/QcRuleImpl.java | 89 ++
.../domain/qcRule/repository/po/QcRulePO.java | 58 +
.../qcRule/repository/todo/QcRuleDO.java | 62 +
.../qcRule/service/QcRuleDomainService.java | 68 ++
.../qcRuleDetail/entity/QcRuleDetail.java | 65 ++
.../facade/IQcRuleDetailService.java | 51 +
.../repository/mapper/QcRuleDetailMapper.java | 30 +
.../persistence/QcRuleDetailImpl.java | 107 ++
.../repository/po/QcRuleDetailPO.java | 65 ++
.../repository/todo/QcRuleDetailDO.java | 67 ++
.../service/QcRuleDetailDomainService.java | 80 ++
.../entity/QualityInspection.java | 137 +++
.../facade/IQualityInspectionService.java | 48 +
.../mapper/QualityInspectionMapper.java | 23 +
.../persistence/QualityInspectionImpl.java | 123 ++
.../repository/po/QualityInspectionPO.java | 201 ++++
.../repository/todo/QualityInspectionDO.java | 204 ++++
.../QualityInspectionDomainService.java | 65 ++
.../entity/ReceiptMaterialDetail.java | 218 ++++
.../facade/IReceiptMaterialDetailService.java | 76 ++
.../mapper/ReceiptMaterialDetailMapper.java | 23 +
.../ReceiptMaterialDetailImpl.java | 429 +++++++
.../po/ReceiptMaterialDetailPO.java | 229 ++++
.../todo/ReceiptMaterialDetailDO.java | 237 ++++
.../ReceiptMaterialDetailDomainService.java | 72 ++
.../entity/ReplenishmentNotice.java | 85 ++
.../facade/IReplenishmentNoticeService.java | 43 +
.../mapper/ReplenishmentNoticeMapper.java | 23 +
.../persistence/ReplenishmentNoticeImpl.java | 81 ++
.../repository/po/ReplenishmentNoticePO.java | 85 ++
.../todo/ReplenishmentNoticeDO.java | 87 ++
.../ReplenishmentNoticeDomainService.java | 81 ++
.../serialNumber/entity/SerialNumber.java | 133 +++
.../facade/ISerialNumberService.java | 43 +
.../repository/mapper/SerialNumberMapper.java | 23 +
.../persistence/SerialNumberImpl.java | 81 ++
.../repository/po/SerialNumberPO.java | 132 +++
.../repository/todo/SerialNumberDO.java | 137 +++
.../service/SerialNumberDomainService.java | 65 ++
.../entity/ShelfMaterialDetail.java | 253 ++++
.../facade/IShelfMaterialDetailService.java | 58 +
.../mapper/ShelfMaterialDetailMapper.java | 23 +
.../persistence/ShelfMaterialDetailImpl.java | 221 ++++
.../repository/po/ShelfMaterialDetailPO.java | 260 +++++
.../todo/ShelfMaterialDetailDO.java | 266 +++++
.../ShelfMaterialDetailDomainService.java | 72 ++
.../shiftManage/entity/ShiftManage.java | 153 +++
.../facade/IShiftManageService.java | 61 +
.../repository/mapper/ShiftManageMapper.java | 33 +
.../persistence/ShiftManageImpl.java | 362 ++++++
.../repository/po/ShiftManagePO.java | 145 +++
.../repository/todo/ContainerShiftDO.java | 96 ++
.../repository/todo/ShiftManageDO.java | 159 +++
.../service/ShiftManageDomainService.java | 543 +++++++++
.../entity/ShiftMaterialDetail.java | 255 ++++
.../facade/IShiftMaterialDetailService.java | 86 ++
.../mapper/ShiftMaterialDetailMapper.java | 60 +
.../persistence/ShiftMaterialDetailImpl.java | 409 +++++++
.../repository/po/ShiftMaterialDetailPO.java | 254 ++++
.../po/ShiftMoveMaterialQuantityPO.java | 79 ++
.../todo/ShiftMaterialDetailDO.java | 256 ++++
.../ShiftMaterialDetailDomainService.java | 90 ++
.../entity/SowingDistributionDetails.java | 163 +++
.../ISowingDistributionDetailsService.java | 83 ++
.../SowingDistributionDetailsMapper.java | 23 +
.../SowingDistributionDetailsImpl.java | 359 ++++++
.../po/SowingDistributionDetailsPO.java | 167 +++
.../todo/SowingDistributionDetailsDO.java | 161 +++
...owingDistributionDetailsDomainService.java | 110 ++
.../domain/sowingWall/entity/SowingWall.java | 67 ++
.../repository/facade/ISowingWallService.java | 43 +
.../repository/mapper/SowingWallMapper.java | 23 +
.../persistence/SowingWallImpl.java | 104 ++
.../repository/po/SowingWallPO.java | 67 ++
.../repository/todo/SowingWallDO.java | 70 ++
.../service/SowingWallDomainService.java | 88 ++
.../po/ImmediateInventoryPO.java | 59 +
.../po/WarehousingReportPO.java | 60 +
.../todo/ImmediateInventoryDO.java | 147 +++
.../todo/WarehousingReportDO.java | 101 ++
.../stockInOrder/entity/StockInOrder.java | 228 ++++
.../facade/IStockInOrderService.java | 43 +
.../repository/mapper/StockInOrderMapper.java | 23 +
.../persistence/StockInOrderImpl.java | 84 ++
.../repository/po/StockInOrderBasePO.java | 116 ++
.../repository/po/StockInOrderPO.java | 229 ++++
.../repository/todo/StockInOrderBaseDO.java | 111 ++
.../repository/todo/StockInOrderDO.java | 244 ++++
.../service/StockInOrderDomainService.java | 391 +++++++
.../entity/StockInTaskOrder.java | 108 ++
.../facade/IStockInTaskOrderService.java | 60 +
.../mapper/StockInTaskOrderMapper.java | 23 +
.../persistence/StockInTaskOrderImpl.java | 303 +++++
.../repository/po/StockInTaskOrderPO.java | 116 ++
.../repository/todo/StockInTaskOrderDO.java | 119 ++
.../StockInTaskOrderDomainService.java | 113 ++
.../stockOutOrder/entity/StockOutOrder.java | 265 +++++
.../facade/IStockOutOrderService.java | 43 +
.../mapper/StockOutOrderMapper.java | 23 +
.../persistence/StockOutOrderImpl.java | 107 ++
.../repository/po/StockOutOrderBasePO.java | 103 ++
.../repository/po/StockOutOrderPO.java | 274 +++++
.../repository/todo/AllocationByOrderDO.java | 73 ++
.../repository/todo/StockOutOrderBaseDO.java | 108 ++
.../repository/todo/StockOutOrderDO.java | 293 +++++
.../service/StockOutOrderDomainService.java | 1001 ++++++++++++++++
.../entity/StockOutTaskOrder.java | 148 +++
.../facade/IStockOutTaskOrderService.java | 52 +
.../mapper/StockOutTaskOrderMapper.java | 23 +
.../persistence/StockOutTaskOrderImpl.java | 167 +++
.../repository/po/StockOutTaskOrderPO.java | 159 +++
.../repository/po/TaskMaterialPO.java | 71 ++
.../repository/po/TaskStoragePO.java | 79 ++
.../repository/todo/StockOutTaskOrderDO.java | 168 +++
.../StockOutTaskOrderDomainService.java | 570 +++++++++
.../entity/StockReceiptOrder.java | 136 +++
.../facade/IStockReceiptOrderService.java | 43 +
.../mapper/StockReceiptOrderMapper.java | 23 +
.../persistence/StockReceiptOrderImpl.java | 120 ++
.../repository/po/StockReceiptOrderPO.java | 143 +++
.../repository/todo/NoReceiptOrderDO.java | 27 +
.../repository/todo/StockReceiptOrderDO.java | 161 +++
.../StockReceiptOrderDomainService.java | 1028 +++++++++++++++++
.../entity/StockShelfOrder.java | 105 ++
.../facade/IStockShelfOrderService.java | 48 +
.../mapper/StockShelfOrderMapper.java | 23 +
.../persistence/StockShelfOrderImpl.java | 131 +++
.../repository/po/StockShelfOrderPO.java | 108 ++
.../repository/todo/StockShelfOrderDO.java | 128 ++
.../service/StockShelfOrderDomainService.java | 656 +++++++++++
.../entity/TaskHandoverMaterialDetail.java | 128 ++
.../ITaskHandoverMaterialDetailService.java | 43 +
.../TaskHandoverMaterialDetailMapper.java | 23 +
.../TaskHandoverMaterialDetailImpl.java | 81 ++
.../po/TaskHandoverMaterialDetailPO.java | 128 ++
.../todo/TaskHandoverMaterialDetailDO.java | 130 +++
...skHandoverMaterialDetailDomainService.java | 65 ++
.../entity/TaskPickingMaterialDetail.java | 202 ++++
.../ITaskPickingMaterialDetailService.java | 55 +
.../TaskPickingMaterialDetailMapper.java | 23 +
.../TaskPickingMaterialDetailImpl.java | 238 ++++
.../po/TaskPickingMaterialDetailPO.java | 207 ++++
.../todo/TaskPickingMaterialDetailDO.java | 210 ++++
...askPickingMaterialDetailDomainService.java | 65 ++
.../entity/TaskReceiptMaterialDetail.java | 202 ++++
.../ITaskReceiptMaterialDetailService.java | 55 +
.../TaskReceiptMaterialDetailMapper.java | 23 +
.../TaskReceiptMaterialDetailImpl.java | 140 +++
.../po/TaskReceiptMaterialDetailPO.java | 204 ++++
.../todo/TaskReceiptMaterialDetailDO.java | 215 ++++
...askReceiptMaterialDetailDomainService.java | 65 ++
.../entity/TaskShelfMaterialDetail.java | 185 +++
.../ITaskShelfMaterialDetailService.java | 45 +
.../mapper/TaskShelfMaterialDetailMapper.java | 23 +
.../TaskShelfMaterialDetailImpl.java | 102 ++
.../po/TaskShelfMaterialDetailPO.java | 187 +++
.../todo/TaskShelfMaterialDetailDO.java | 198 ++++
.../TaskShelfMaterialDetailDomainService.java | 65 ++
.../entity/UserCommonSettings.java | 57 +
.../facade/IUserCommonSettingsService.java | 47 +
.../mapper/UserCommonSettingsMapper.java | 24 +
.../persistence/UserCommonSettingsImpl.java | 98 ++
.../repository/po/UserCommonSettingsPO.java | 57 +
.../repository/todo/UserCommonSettingsDO.java | 67 ++
.../UserCommonSettingsDomainService.java | 71 ++
.../entity/WaveMaterialDetail.java | 185 +++
.../facade/IWaveMaterialDetailService.java | 64 +
.../mapper/WaveMaterialDetailMapper.java | 23 +
.../persistence/WaveMaterialDetailImpl.java | 332 ++++++
.../repository/po/WaveMaterialDetailPO.java | 190 +++
.../repository/todo/WaveMaterialDetailDO.java | 197 ++++
.../WaveMaterialDetailDomainService.java | 65 ++
.../abstracts/AbstractWaveOrderService.java | 56 +
.../domain/waveOrder/entity/WaveOrder.java | 167 +++
.../factorys/WaveOrderServiceFactory.java | 32 +
.../repository/facade/IWaveOrderService.java | 43 +
.../facade/IWaveOrderTypeService.java | 21 +
.../repository/mapper/WaveOrderMapper.java | 23 +
.../repository/persistence/WaveOrderImpl.java | 81 ++
.../waveOrder/repository/po/WaveOrderPO.java | 170 +++
.../todo/AllocationSowingWallDO.java | 35 +
.../repository/todo/WaveOrderDO.java | 176 +++
.../service/DirectGenerationService.java | 164 +++
.../service/WaveOrderDomainService.java | 323 ++++++
.../waveOutOrder/entity/WaveOutOrder.java | 51 +
.../facade/IWaveOutOrderService.java | 43 +
.../repository/mapper/WaveOutOrderMapper.java | 23 +
.../persistence/WaveOutOrderImpl.java | 81 ++
.../repository/po/WaveOutOrderPO.java | 51 +
.../repository/todo/WaveOutOrderDO.java | 54 +
.../service/WaveOutOrderDomainService.java | 65 ++
.../wms/domain/waveRule/entity/WaveRule.java | 91 ++
.../repository/facade/IWaveRuleService.java | 43 +
.../repository/mapper/WaveRuleMapper.java | 23 +
.../repository/persistence/WaveRuleImpl.java | 81 ++
.../waveRule/repository/po/WaveRulePO.java | 91 ++
.../waveRule/repository/todo/WaveRuleDO.java | 94 ++
.../service/WaveRuleDomainService.java | 65 ++
.../wms/enums/StatusInvestigationEnum.java | 53 +
.../CommonSettingsAssembler.java | 28 +
.../ContainerUsageRecordAssembler.java | 65 ++
.../deliveTask/DeliveTaskAssembler.java | 65 ++
.../DifferentManageAssembler.java | 65 ++
.../HandoverTaskOrderAssembler.java | 65 ++
.../InMaterialDetailAssembler.java | 65 ++
...InMaterialDetailSerialNumberAssembler.java | 65 ++
.../InOrderAbnormalAssembler.java | 65 ++
.../InventoryAdjustmentRecordAssembler.java | 28 +
.../InventoryAllocationRuleAssembler.java | 90 ++
...nventoryAllocationRuleDetailAssembler.java | 65 ++
.../InventoryStandingDetailAssembler.java | 28 +
.../InventoryStandingReportAssembler.java | 65 ++
.../InventoryTurnoverRuleAssembler.java | 91 ++
.../InventoryTurnoverRuleDetailAssembler.java | 65 ++
.../InventoryWarningAnalyzeAssembler.java | 65 ++
.../InvestigationManageAssembler.java | 124 ++
.../InvestigetionManageDetailAssembler.java | 65 ++
.../MaterialBarCodeAssembler.java | 65 ++
.../MaterialBaseInfoAssembler.java | 24 +
.../MaterialCommonAssembler.java | 65 ++
.../MaterialGoodsRuleAssembler.java | 65 ++
.../MaterialInventoryAssembler.java | 73 ++
.../MaterialInventoryWarningAssembler.java | 28 +
.../MaterialMoreDetailAssembler.java | 65 ++
.../MaterialWarehouseControlAssembler.java | 65 ++
.../MobilizeManageAssembler.java | 65 ++
.../MobilizeManageDetailAssembler.java | 65 ++
.../NoticeMaterialDetailAssembler.java | 65 ++
.../noticeOrder/NoticeOrderAssembler.java | 78 ++
...utMaterialDetailSerialNumberAssembler.java | 65 ++
.../OutOrderAbnormalAssembler.java | 65 ++
.../overStock/OverStockAssembler.java | 46 +
.../pickingOrder/PickingOrderAssembler.java | 65 ++
.../putawayRule/PutawayRuleAssembler.java | 89 ++
.../PutawayRuleDetailAssembler.java | 65 ++
.../assember/qcRule/QcRuleAssembler.java | 90 ++
.../qcRuleDetail/QcRuleDetailAssembler.java | 65 ++
.../QualityInspectionAssembler.java | 65 ++
.../ReceiptMaterialDetailAssembler.java | 28 +
.../ReplenishmentNoticeAssembler.java | 65 ++
.../serialNumber/SerialNumberAssembler.java | 28 +
.../ShelfMaterialDetailAssembler.java | 65 ++
.../shiftManage/ShiftManageAssembler.java | 24 +
.../ShiftMaterialDetailAssembler.java | 65 ++
.../SowingDistributionDetailsAssembler.java | 65 ++
.../sowingWall/SowingWallAssembler.java | 66 ++
.../ImmediateInventoryAssembler.java | 51 +
.../WarehousingReportAssembler.java | 49 +
.../stockInOrder/StockInOrderAssembler.java | 64 +
.../StockInTaskOrderAssembler.java | 65 ++
.../stockOutOrder/StockOutOrderAssembler.java | 68 ++
.../StockOutTaskOrderAssembler.java | 106 ++
.../StockReceiptOrderAssembler.java | 37 +
.../StockShelfOrderAssembler.java | 36 +
.../TaskReceiptMaterialDetailAssembler.java | 65 ++
.../TaskShelfMaterialDetailAssembler.java | 65 ++
.../UserCommonSettingsAssembler.java | 75 ++
.../WaveMaterialDetailAssembler.java | 65 ++
.../waveOrder/WaveOrderAssembler.java | 65 ++
.../assember/waveRule/WaveRuleAssembler.java | 65 ++
.../dto/commonSettings/CommonSettingsDTO.java | 62 +
.../ContainerUsageRecordDTO.java | 91 ++
.../dto/deliveTask/DeliveTaskDTO.java | 118 ++
.../differentManage/DifferentManageDTO.java | 120 ++
.../HandoverTaskOrderDTO.java | 134 +++
.../inMaterialDetail/InMaterialDetailDTO.java | 266 +++++
.../InMaterialDetailSerialNumberDTO.java | 61 +
.../inOrderAbnormal/InOrderAbnormalDTO.java | 91 ++
.../InventoryAdjustmentRecordDTO.java | 166 +++
.../InventoryAllocationRuleDTO.java | 64 +
.../InventoryAllocationRuleDetailDTO.java | 82 ++
.../InventoryStandingDetailDTO.java | 91 ++
.../InventoryStandingReportDTO.java | 87 ++
.../InventoryTurnoverRuleDTO.java | 62 +
.../InventoryTurnoverRuleDetailDTO.java | 62 +
.../InventoryWarningAnalyzeDTO.java | 162 +++
.../InvestigationManageDTO.java | 176 +++
.../InvestigetionMaterialDTO.java | 67 ++
.../InvestigetionStorageDTO.java | 79 ++
.../InvestigetionManageDetailDTO.java | 215 ++++
.../materialBarCode/MaterialBarCodeDTO.java | 78 ++
.../dto/materialBaseInfo/MaterialBaseDTO.java | 61 +
.../materialBaseInfo/MaterialBaseInfoDTO.java | 193 ++++
.../dto/materialCommon/MaterialCommonDTO.java | 103 ++
.../MaterialGoodsRuleDTO.java | 134 +++
.../MaterialInventoryDTO.java | 147 +++
.../MaterialInventoryQueryListDTO.java | 171 +++
.../MaterialInventoryWarningDTO.java | 119 ++
.../MaterialMoreDetailDTO.java | 82 ++
.../MaterialWarehouseControlDTO.java | 99 ++
.../dto/mobilizeManage/MobilizeManageDTO.java | 153 +++
.../MobilizeManageDetailDTO.java | 178 +++
.../NoticeMaterialDetailDTO.java | 146 +++
.../dto/noticeOrder/NoticeOrderDTO.java | 143 +++
.../OutMaterialDetailDTO.java | 239 ++++
.../OutMaterialDetailSerialNumberDTO.java | 62 +
.../outOrderAbnormal/OutOrderAbnormalDTO.java | 87 ++
.../dto/overStock/ExecuteOverStockDTO.java | 24 +
.../dto/overStock/OverStockDTO.java | 91 ++
.../dto/overStock/QueryOrderOverStockDTO.java | 119 ++
.../dto/overStock/ReceiptOverStockDTO.java | 107 ++
.../PickingMaterialDetailDTO.java | 207 ++++
.../dto/pickingOrder/PickingCheckDTO.java | 24 +
.../dto/pickingOrder/PickingOrderDTO.java | 163 +++
.../dto/putawayRule/PutawayRuleDTO.java | 57 +
.../PutawayRuleDetailDTO.java | 94 ++
.../wms/interfaces/dto/qcRule/QcRuleDTO.java | 63 +
.../dto/qcRuleDetail/QcRuleDetailDTO.java | 67 ++
.../QualityInspectionDTO.java | 203 ++++
.../ReceiptMaterialDetailDTO.java | 230 ++++
.../ReplenishmentNoticeDTO.java | 87 ++
.../dto/serialNumber/SerialNumberDTO.java | 137 +++
.../ShelfMaterialDetailDTO.java | 263 +++++
.../dto/shiftManage/ShiftManageDTO.java | 162 +++
.../ShiftMaterialDetailDTO.java | 261 +++++
.../SowingDistributionDetailsDTO.java | 161 +++
.../dto/sowingWall/SowingWallDTO.java | 70 ++
.../ImmediateInventoryDTO.java | 147 +++
.../WarehousingReportDTO.java | 97 ++
.../dto/stockInOrder/StockInOrderBaseDTO.java | 103 ++
.../dto/stockInOrder/StockInOrderDTO.java | 240 ++++
.../stockInTaskOrder/StockInTaskOrderDTO.java | 110 ++
.../stockOutOrder/StockOutOrderBaseDTO.java | 103 ++
.../dto/stockOutOrder/StockOutOrderDTO.java | 280 +++++
.../StockOutTaskOrderDTO.java | 162 +++
.../stockOutTaskOrder/TaskMaterialDTO.java | 79 ++
.../dto/stockOutTaskOrder/TaskStorageDTO.java | 79 ++
.../StockReceiptOrderDTO.java | 149 +++
.../stockShelfOrder/StockShelfOrderDTO.java | 120 ++
.../TaskHandoverMaterialDetailDTO.java | 130 +++
.../TaskPickingMaterialDetailDTO.java | 216 ++++
.../TaskReceiptMaterialDetailDTO.java | 204 ++++
.../TaskShelfMaterialDetailDTO.java | 187 +++
.../UserCommonSettingsAddDTO.java | 17 +
.../UserCommonSettingsDTO.java | 34 +
.../WaveMaterialDetailDTO.java | 187 +++
.../dto/waveOrder/WaveOrderDTO.java | 176 +++
.../interfaces/dto/waveRule/WaveRuleDTO.java | 94 ++
.../ContainerUsageRecordApi.java | 93 ++
.../facadeApi/deliveTask/DeliveTaskApi.java | 91 ++
.../differentManage/DifferentManageApi.java | 107 ++
.../HandoverTaskOrderApi.java | 110 ++
.../inMaterialDetail/InMaterialDetailApi.java | 83 ++
.../InMaterialDetailSerialNumberApi.java | 102 ++
.../inOrderAbnormal/InOrderAbnormalApi.java | 93 ++
.../InventoryAdjustmentRecordApi.java | 120 ++
.../InventoryAllocationRuleApi.java | 93 ++
.../InventoryAllocationRuleDetailApi.java | 93 ++
.../InventoryStandingDetailApi.java | 77 ++
.../InventoryStandingReportApi.java | 103 ++
.../InventoryTurnoverRuleApi.java | 93 ++
.../InventoryTurnoverRuleDetailApi.java | 93 ++
.../InventoryWarningAnalyzeApi.java | 102 ++
.../InvestigationManageApi.java | 118 ++
.../InvestigetionManageDetailApi.java | 93 ++
.../materialBarCode/MaterialBarCodeApi.java | 93 ++
.../materialBaseInfo/MaterialBaseInfoApi.java | 103 ++
.../materialCommon/MaterialCommonApi.java | 93 ++
.../MaterialGoodsRuleApi.java | 101 ++
.../MaterialInventoryApi.java | 123 ++
.../MaterialInventoryWarningApi.java | 89 ++
.../MaterialMoreDetailApi.java | 104 ++
.../MaterialWarehouseControlApi.java | 93 ++
.../mobilizeManage/MobilizeManageApi.java | 100 ++
.../MobilizeManageDetailApi.java | 103 ++
.../NoticeMaterialDetailApi.java | 93 ++
.../facadeApi/noticeOrder/NoticeOrderApi.java | 115 ++
.../OutMaterialDetailSerialNumberApi.java | 93 ++
.../outOrderAbnormal/OutOrderAbnormalApi.java | 93 ++
.../facadeApi/overStock/OverStockApi.java | 212 ++++
.../pickingOrder/PickingOrderApi.java | 119 ++
.../facadeApi/putawayRule/PutawayRuleApi.java | 93 ++
.../PutawayRuleDetailApi.java | 93 ++
.../facadeApi/qcRule/QcRuleApi.java | 93 ++
.../qcRuleDetail/QcRuleDetailApi.java | 93 ++
.../QualityInspectionApi.java | 93 ++
.../ReceiptMaterialDetailApi.java | 93 ++
.../ReplenishmentNoticeApi.java | 93 ++
.../serialNumber/SerialNumberApi.java | 99 ++
.../ShelfMaterialDetailApi.java | 93 ++
.../facadeApi/shiftManage/ShiftManageApi.java | 123 ++
.../ShiftMaterialDetailApi.java | 99 ++
.../SowingDistributionDetailsApi.java | 126 ++
.../facadeApi/sowingWall/SowingWallApi.java | 101 ++
.../StatementStatisticsApi.java | 117 ++
.../stockInOrder/StockInOrderApi.java | 116 ++
.../stockInTaskOrder/StockInTaskOrderApi.java | 93 ++
.../stockOutOrder/StockOutOrderApi.java | 233 ++++
.../StockOutTaskOrderApi.java | 93 ++
.../StockReceiptOrderApi.java | 107 ++
.../stockShelfOrder/StockShelfOrderApi.java | 94 ++
.../TaskReceiptMaterialDetailApi.java | 93 ++
.../TaskShelfMaterialDetailApi.java | 93 ++
.../WaveMaterialDetailApi.java | 93 ++
.../facadeApi/waveOrder/WaveOrderApi.java | 130 +++
.../facadeApi/waveRule/WaveRuleApi.java | 93 ++
.../commonSettings/CommonSettingsApi.java | 108 ++
.../deliveTask/DeliveTaskAppApi.java | 102 ++
.../InvestigationManageAppApi.java | 103 ++
.../MaterialInventoryAppApi.java | 49 +
.../shiftManage/ShiftManageAppApi.java | 89 ++
.../stockOutOrder/StockOutOrderAppApi.java | 80 ++
.../stockOutTaskOrderAppApi.java | 113 ++
.../StockReceiptOrderAppApi.java | 93 ++
.../StockShelfOrderAppApi.java | 79 ++
.../UserCommonSettingsApi.java | 84 ++
.../java/com/mhd/wms/util/FillableEntity.java | 16 +
.../mhd/wms/util/UtilloginUserAssemble.java | 30 +
mhd_wms/src/main/resources/banner.txt | 8 +
mhd_wms/src/main/resources/bootstrap.yml | 45 +
mhd_wms/src/main/resources/logback.xml | 74 ++
.../OutMaterialDetailMapper.xml | 325 ++++++
.../commonSettings/CommonSettingsMapper.xml | 66 ++
.../ContainerUsageRecordMapper.xml | 95 ++
.../mapper/deliveTask/DeliveTaskMapper.xml | 276 +++++
.../differentManage/DifferentManageMapper.xml | 120 ++
.../HandoverTaskOrderMapper.xml | 144 +++
.../InMaterialDetailMapper.xml | 289 +++++
.../InMaterialDetailSerialNumberMapper.xml | 75 ++
.../inOrderAbnormal/InOrderAbnormalMapper.xml | 98 ++
.../InventoryAdjustmentRecordMapper.xml | 161 +++
.../InventoryAllocationRuleMapper.xml | 54 +
.../InventoryAllocationRuleDetailMapper.xml | 102 ++
.../InventoryStandingDetailMapper.xml | 387 +++++++
.../InventoryStandingReportMapper.xml | 285 +++++
.../InventoryTurnoverRuleMapper.xml | 54 +
.../InventoryTurnoverRuleDetailMapper.xml | 90 ++
.../InventoryWarningAnalyzeMapper.xml | 162 +++
.../InvestigationManageMapper.xml | 155 +++
.../InvestigetionManageDetailMapper.xml | 229 ++++
.../materialBarCode/MaterialBarCodeMapper.xml | 75 ++
.../MaterialBaseInfoMapper.xml | 226 ++++
.../materialCommon/MaterialCommonMapper.xml | 107 ++
.../MaterialGoodsRuleMapper.xml | 142 +++
.../MaterialInventoryMapper.xml | 601 ++++++++++
.../MaterialInventoryWarningMapper.xml | 134 +++
.../MaterialMoreDetailMapper.xml | 100 ++
.../MaterialWarehouseControlMapper.xml | 103 ++
.../mobilizeManage/MobilizeManageMapper.xml | 141 +++
.../MobilizeManageDetailMapper.xml | 190 +++
.../NoticeMaterialDetailMapper.xml | 147 +++
.../OutMaterialDetailSerialNumberMapper.xml | 68 ++
.../OutOrderAbnormalMapper.xml | 116 ++
.../mapper/overStock/OverStockMapper.xml | 97 ++
.../PickingMaterialDetailMapper.xml | 191 +++
.../pickingOrder/PickingOrderMapper.xml | 163 +++
.../mapper/putawayRule/PutawayRuleMapper.xml | 54 +
.../PutawayRuleDetailMapper.xml | 109 ++
.../resources/mapper/qcRule/QcRuleMapper.xml | 54 +
.../qcRuleDetail/QcRuleDetailMapper.xml | 86 ++
.../QualityInspectionMapper.xml | 224 ++++
.../ReceiptMaterialDetailMapper.xml | 225 ++++
.../ReplenishmentNoticeMapper.xml | 96 ++
.../serialNumber/SerialNumberMapper.xml | 143 +++
.../ShelfMaterialDetailMapper.xml | 231 ++++
.../mapper/shiftManage/ShiftManageMapper.xml | 160 +++
.../ShiftMaterialDetailMapper.xml | 285 +++++
.../SowingDistributionDetailsMapper.xml | 159 +++
.../mapper/sowingWall/SowingWallMapper.xml | 76 ++
.../stockInOrder/StockInOrderMapper.xml | 284 +++++
.../StockInTaskOrderMapper.xml | 98 ++
.../stockOutOrder/StockOutOrderMapper.xml | 252 ++++
.../StockOutTaskOrderMapper.xml | 127 ++
.../stockReceiptNotice/NoticeOrderMapper.xml | 128 ++
.../StockReceiptOrderMapper.xml | 135 +++
.../stockShelfOrder/StockShelfOrderMapper.xml | 120 ++
.../TaskHandoverMaterialDetailMapper.xml | 131 +++
.../TaskPickingMaterialDetailMapper.xml | 169 +++
.../TaskReceiptMaterialDetailMapper.xml | 210 ++++
.../TaskShelfMaterialDetailMapper.xml | 179 +++
.../UserCommonSettingsMapper.xml | 71 ++
.../WaveMaterialDetailMapper.xml | 187 +++
.../mapper/waveOrder/WaveOrderMapper.xml | 168 +++
.../mapper/waveRule/WaveRuleMapper.xml | 93 ++
pom.xml | 2 +
835 files changed, 96160 insertions(+)
create mode 100644 mhd_wms/pom.xml
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/MhdWmsApplication.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/commonSettings/CommonSettingsApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/containerUsageRecord/ContainerUsageRecordApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetail/InMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRule/InventoryAllocationRuleApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingDetail/InventoryStandingDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingReport/InventoryStandingReportApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRule/InventoryTurnoverRuleApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryWarningAnalyze/InventoryWarningAnalyzeApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/investigetionManageDetail/InvestigetionManageDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialBarCode/MaterialBarCodeApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialCommon/MaterialCommonApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialGoodsRule/MaterialGoodsRuleApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventoryWarning/MaterialInventoryWarningApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialMoreDetail/MaterialMoreDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/materialWarehouseControl/MaterialWarehouseControlApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManage/MobilizeManageApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManageDetail/MobilizeManageDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/noticeMaterialDetail/NoticeMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/noticeOrder/NoticeOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/overStock/OverStockApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRule/PutawayRuleApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRuleDetail/PutawayRuleDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/qcRule/QcRuleApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/qcRuleDetail/QcRuleDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/qualityInspection/QualityInspectionApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/receiptMaterialDetail/ReceiptMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/replenishmentNotice/ReplenishmentNoticeApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/serialNumber/SerialNumberApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/shelfMaterialDetail/ShelfMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/shiftMaterialDetail/ShiftMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/sowingDistributionDetails/SowingDistributionDetailsApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/sowingWall/SowingWallApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/stockInTaskOrder/StockInTaskOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/taskReceiptMaterialDetail/TaskReceiptMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/taskShelfMaterialDetail/TaskShelfMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/userCommonSettings/UserCommonSettingsApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/waveMaterialDetail/WaveMaterialDetailApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/waveOrder/WaveOrderApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/application/service/waveRule/WaveRuleApplicationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/entity/CommonSettings.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/facade/ICommonSettingsService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/mapper/CommonSettingsMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/persistence/CommonSettingsImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/po/CommonSettingsPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/todo/CommonSettingsDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/service/CommonSettingsDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/entity/ContainerUsageRecord.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/facade/IContainerUsageRecordService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/mapper/ContainerUsageRecordMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/persistence/ContainerUsageRecordImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/po/ContainerUsageRecordPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/todo/ContainerUsageRecordDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/service/ContainerUsageRecordDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/entity/DeliveTask.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/factorys/DeliveTaskServiceFactory.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskTypeService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/mapper/DeliveTaskMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskSumPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/service/DeliveTaskDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/entity/DifferentManage.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/facade/IDifferentManageService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/mapper/DifferentManageMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/persistence/DifferentManageImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/po/DifferentManagePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/todo/DifferentManageDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/service/DifferentManageDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/entity/InMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/facade/IInMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/mapper/InMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/persistence/InMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/po/InMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/todo/InMaterialDetailBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/todo/InMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/service/InMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/entity/InMaterialDetailSerialNumber.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/repository/facade/IInMaterialDetailSerialNumberService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/repository/mapper/InMaterialDetailSerialNumberMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/repository/persistence/InMaterialDetailSerialNumberImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/repository/po/InMaterialDetailSerialNumberPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/repository/todo/InMaterialDetailSerialNumberDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetailSerialNumber/service/InMaterialDetailSerialNumberDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/entity/InOrderAbnormal.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/facade/IInOrderAbnormalService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/mapper/InOrderAbnormalMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/po/InOrderAbnormalPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/todo/InOrderAbnormalBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/todo/InOrderAbnormalDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/service/InOrderAbnormalDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/entity/InventoryAdjustmentRecord.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/repository/facade/IInventoryAdjustmentRecordService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/repository/mapper/InventoryAdjustmentRecordMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/repository/persistence/InventoryAdjustmentRecordImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/repository/po/InventoryAdjustmentRecordPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/repository/todo/InventoryAdjustmentRecordDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/entity/InventoryAllocationRule.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/repository/facade/IInventoryAllocationRuleService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/repository/mapper/InventoryAllocationRuleMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/repository/persistence/InventoryAllocationRuleImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/repository/po/InventoryAllocationRulePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/repository/todo/InventoryAllocationRuleDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRule/service/InventoryAllocationRuleDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/entity/InventoryAllocationRuleDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/repository/facade/IInventoryAllocationRuleDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/repository/mapper/InventoryAllocationRuleDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/repository/persistence/InventoryAllocationRuleDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/repository/po/InventoryAllocationRuleDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/repository/todo/InventoryAllocationRuleDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAllocationRuleDetail/service/InventoryAllocationRuleDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/entity/InventoryStandingDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/repository/facade/IInventoryStandingDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/repository/mapper/InventoryStandingDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/repository/persistence/InventoryStandingDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/repository/po/InventoryStandingDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/repository/todo/InventoryStandingDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingDetail/service/InventoryStandingDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/entity/InventoryStandingReport.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/repository/facade/IInventoryStandingReportService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/repository/mapper/InventoryStandingReportMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/repository/persistence/InventoryStandingReportImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/repository/po/InventoryStandingDetailReportPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/repository/po/InventoryStandingReportPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/repository/todo/InventoryStandingReportDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryStandingReport/service/InventoryStandingReportDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/entity/InventoryTurnoverRule.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/repository/facade/IInventoryTurnoverRuleService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/repository/mapper/InventoryTurnoverRuleMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/repository/persistence/InventoryTurnoverRuleImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/repository/po/InventoryTurnoverRulePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/repository/todo/InventoryTurnoverRuleDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRule/service/InventoryTurnoverRuleDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/entity/InventoryTurnoverRuleDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/repository/facade/IInventoryTurnoverRuleDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/repository/mapper/InventoryTurnoverRuleDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/repository/persistence/InventoryTurnoverRuleDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/repository/po/InventoryTurnoverRuleDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/repository/todo/InventoryTurnoverRuleDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryTurnoverRuleDetail/service/InventoryTurnoverRuleDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/entity/InventoryWarningAnalyze.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/repository/facade/IInventoryWarningAnalyzeService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/repository/mapper/InventoryWarningAnalyzeMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/repository/persistence/InventoryWarningAnalyzeImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/repository/po/InventoryWarningAnalyzePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/repository/todo/InventoryWarningAnalyzeDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/inventoryWarningAnalyze/service/InventoryWarningAnalyzeDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/entity/InvestigationManage.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/facade/IInvestigationManageService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/mapper/InvestigationManageMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/persistence/InvestigationManageImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/po/InvestigationManagePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/po/InvestigetionMaterialPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/po/InvestigetionStoragePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/todo/InvestigationManageDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/todo/InvestigetionMaterialDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/repository/todo/InvestigetionStorageDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigationManage/service/InvestigationManageDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/entity/InvestigetionManageDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/repository/facade/IInvestigetionManageDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/repository/mapper/InvestigetionManageDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/repository/persistence/InvestigetionManageDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/repository/po/InvestigetionManageDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/repository/todo/InvestigetionManageDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/investigetionManageDetail/service/InvestigetionManageDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/entity/MaterialBarCode.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/repository/facade/IMaterialBarCodeService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/repository/mapper/MaterialBarCodeMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/repository/persistence/MaterialBarCodeImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/repository/po/MaterialBarCodePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/repository/todo/MaterialBarCodeDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBarCode/service/MaterialBarCodeDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/facade/IMaterialBaseInfoService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/mapper/MaterialBaseInfoMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/persistence/MaterialBaseInfoImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBasePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/service/MaterialBaseInfoDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/entity/MaterialCommon.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/repository/facade/IMaterialCommonService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/repository/mapper/MaterialCommonMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/repository/persistence/MaterialCommonImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/repository/po/MaterialCommonPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/repository/todo/MaterialCommonDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialCommon/service/MaterialCommonDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/entity/MaterialGoodsRule.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/repository/facade/IMaterialGoodsRuleService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/repository/mapper/MaterialGoodsRuleMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/repository/persistence/MaterialGoodsRuleImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/repository/po/MaterialGoodsRulePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/repository/todo/MaterialGoodsRuleDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/service/MaterialGoodsRuleDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/facade/IMaterialInventoryService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryParentDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryQueryListDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/service/MaterialInventoryDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/entity/MaterialInventoryWarning.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/repository/facade/IMaterialInventoryWarningService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/repository/mapper/MaterialInventoryWarningMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/repository/persistence/MaterialInventoryWarningImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/repository/po/MaterialInventoryWarningPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/repository/todo/MaterialInventoryWarningDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialInventoryWarning/service/MaterialInventoryWarningDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/entity/MaterialMoreDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/repository/facade/IMaterialMoreDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/repository/mapper/MaterialMoreDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/repository/persistence/IMaterialMoreDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/repository/po/MaterialMoreDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/repository/todo/MaterialMoreDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialMoreDetail/service/MaterialMoreDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/entity/MaterialWarehouseControl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/repository/facade/IMaterialWarehouseControlService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/repository/mapper/MaterialWarehouseControlMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/repository/persistence/MaterialWarehouseControlImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/repository/po/MaterialWarehouseControlPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/repository/todo/MaterialWarehouseControlDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/materialWarehouseControl/service/MaterialWarehouseControlDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/entity/MobilizeManage.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/repository/facade/IMobilizeManageService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/repository/mapper/MobilizeManageMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/repository/persistence/MobilizeManageImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/repository/po/MobilizeManagePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/repository/todo/MobilizeManageDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManage/service/MobilizeManageDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/entity/MobilizeManageDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/repository/facade/IMobilizeManageDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/repository/mapper/MobilizeManageDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/repository/persistence/MobilizeManageDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/repository/po/MobilizeManageDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/repository/todo/MobilizeManageDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/mobilizeManageDetail/service/MobilizeManageDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/entity/NoticeMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/repository/facade/INoticeMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/repository/mapper/NoticeMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/repository/persistence/NoticeMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/repository/po/NoticeMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/repository/todo/NoticeMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeMaterialDetail/service/NoticeMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/entity/NoticeOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/repository/facade/INoticeOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/repository/mapper/NoticeOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/repository/persistence/NoticeImplOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/repository/po/NoticeOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/repository/todo/NoticeOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/noticeOrder/service/NoticeOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/facade/IOutMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/mapper/OutMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialCheckPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/service/OutMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/entity/OutMaterialDetailSerialNumber.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/repository/facade/IOutMaterialDetailSerialNumberService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/repository/mapper/OutMaterialDetailSerialNumberMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/repository/persistence/OutMaterialDetailSerialNumberImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/repository/po/OutMaterialDetailSerialNumberPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/repository/todo/OutMaterialDetailSerialNumberDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetailSerialNumber/service/OutMaterialDetailSerialNumberDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/entity/OutOrderAbnormal.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/repository/facade/IOutOrderAbnormalService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/repository/mapper/OutOrderAbnormalMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/repository/persistence/OutOrderAbnormalImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/repository/po/OutOrderAbnormalPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/repository/todo/OutOrderAbnormalBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/repository/todo/OutOrderAbnormalDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/outOrderAbnormal/service/OutOrderAbnormalDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/entity/OverStock.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/facade/IOverStockService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/mapper/OverStockMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/persistence/OverStockImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/po/OverStockInOrderOutOrderDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/po/OverStockInOrderOutOrderListPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/po/OverStockPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/po/QueryOrderOverStockDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/po/QueryOrderOverStockPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/po/ReceiptOverStockPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/todo/ExecuteOverStockDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/todo/OverStockDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/todo/QueryOrderOverStockDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/repository/todo/ReceiptOverStockDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/overStock/service/OverStockDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/entity/PickingMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/facade/IPickingMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/mapper/PickingMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/po/PickingMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/todo/PickingMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/todo/PickingMaterialDetailDOByUpdate.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/service/PickingMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/entity/PickingOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/facade/IPickingOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/mapper/PickingOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/persistence/PickingOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/AllocationSowingWallPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/todo/PickingOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/pushSyncBms/PushSyncBmsDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/entity/PutawayRule.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/repository/facade/IPutawayRuleService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/repository/mapper/PutawayRuleMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/repository/persistence/PutawayRuleImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/repository/po/PutawayRulePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/repository/todo/PutawayRuleDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRule/service/PutawayRuleDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/entity/PutawayRuleDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/repository/facade/IPutawayRuleDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/repository/mapper/PutawayRuleDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/repository/persistence/PutawayRuleDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/repository/po/PutawayRuleDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/repository/todo/PutawayRuleDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/putawayRuleDetail/service/PutawayRuleDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/entity/QcRule.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/repository/facade/IQcRuleService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/repository/mapper/QcRuleMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/repository/persistence/QcRuleImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/repository/po/QcRulePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/repository/todo/QcRuleDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRule/service/QcRuleDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/entity/QcRuleDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/repository/facade/IQcRuleDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/repository/mapper/QcRuleDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/repository/persistence/QcRuleDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/repository/po/QcRuleDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/repository/todo/QcRuleDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qcRuleDetail/service/QcRuleDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/entity/QualityInspection.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/repository/facade/IQualityInspectionService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/repository/mapper/QualityInspectionMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/repository/persistence/QualityInspectionImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/repository/po/QualityInspectionPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/repository/todo/QualityInspectionDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/qualityInspection/service/QualityInspectionDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/entity/ReceiptMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/facade/IReceiptMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/mapper/ReceiptMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/po/ReceiptMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/todo/ReceiptMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/service/ReceiptMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/entity/ReplenishmentNotice.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/repository/facade/IReplenishmentNoticeService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/repository/mapper/ReplenishmentNoticeMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/repository/persistence/ReplenishmentNoticeImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/repository/po/ReplenishmentNoticePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/repository/todo/ReplenishmentNoticeDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/replenishmentNotice/service/ReplenishmentNoticeDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/entity/SerialNumber.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/repository/facade/ISerialNumberService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/repository/mapper/SerialNumberMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/repository/persistence/SerialNumberImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/repository/po/SerialNumberPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/repository/todo/SerialNumberDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/serialNumber/service/SerialNumberDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/entity/ShelfMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/facade/IShelfMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/mapper/ShelfMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/persistence/ShelfMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/po/ShelfMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/todo/ShelfMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/service/ShelfMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/entity/ShiftManage.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/facade/IShiftManageService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/mapper/ShiftManageMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/persistence/ShiftManageImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/po/ShiftManagePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/todo/ContainerShiftDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/todo/ShiftManageDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/entity/ShiftMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/facade/IShiftMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/mapper/ShiftMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/persistence/ShiftMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/po/ShiftMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/po/ShiftMoveMaterialQuantityPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/todo/ShiftMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/service/ShiftMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/entity/SowingDistributionDetails.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/repository/facade/ISowingDistributionDetailsService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/repository/mapper/SowingDistributionDetailsMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/repository/persistence/SowingDistributionDetailsImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/repository/po/SowingDistributionDetailsPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/repository/todo/SowingDistributionDetailsDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingDistributionDetails/service/SowingDistributionDetailsDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/entity/SowingWall.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/repository/facade/ISowingWallService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/repository/mapper/SowingWallMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/repository/persistence/SowingWallImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/repository/po/SowingWallPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/repository/todo/SowingWallDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/sowingWall/service/SowingWallDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/WarehousingReportPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/todo/ImmediateInventoryDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/todo/WarehousingReportDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/facade/IStockInOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/persistence/StockInOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderBasePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/entity/StockInTaskOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/repository/facade/IStockInTaskOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/repository/mapper/StockInTaskOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/repository/persistence/StockInTaskOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/repository/po/StockInTaskOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/repository/todo/StockInTaskOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockInTaskOrder/service/StockInTaskOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/facade/IStockOutOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/mapper/StockOutOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/persistence/StockOutOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderBasePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/AllocationByOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderBaseDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/entity/StockOutTaskOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/facade/IStockOutTaskOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/mapper/StockOutTaskOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/persistence/StockOutTaskOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/StockOutTaskOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/TaskMaterialPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/po/TaskStoragePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/repository/todo/StockOutTaskOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/entity/StockReceiptOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/facade/IStockReceiptOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/mapper/StockReceiptOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/persistence/StockReceiptOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/po/StockReceiptOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/todo/NoReceiptOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/todo/StockReceiptOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/entity/StockShelfOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/facade/IStockShelfOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/mapper/StockShelfOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/persistence/StockShelfOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/po/StockShelfOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/todo/StockShelfOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/entity/TaskHandoverMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/repository/facade/ITaskHandoverMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/repository/mapper/TaskHandoverMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/repository/persistence/TaskHandoverMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/repository/po/TaskHandoverMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/repository/todo/TaskHandoverMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskHandoverMaterialDetail/service/TaskHandoverMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/entity/TaskPickingMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/facade/ITaskPickingMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/mapper/TaskPickingMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/persistence/TaskPickingMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/todo/TaskPickingMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/service/TaskPickingMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/entity/TaskReceiptMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/repository/facade/ITaskReceiptMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/repository/mapper/TaskReceiptMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/repository/persistence/TaskReceiptMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/repository/po/TaskReceiptMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/repository/todo/TaskReceiptMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskReceiptMaterialDetail/service/TaskReceiptMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/entity/TaskShelfMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/repository/facade/ITaskShelfMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/repository/mapper/TaskShelfMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/repository/persistence/TaskShelfMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/repository/po/TaskShelfMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/repository/todo/TaskShelfMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/taskShelfMaterialDetail/service/TaskShelfMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/entity/UserCommonSettings.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/repository/facade/IUserCommonSettingsService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/repository/mapper/UserCommonSettingsMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/repository/persistence/UserCommonSettingsImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/repository/po/UserCommonSettingsPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/repository/todo/UserCommonSettingsDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/userCommonSettings/service/UserCommonSettingsDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/entity/WaveMaterialDetail.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/repository/facade/IWaveMaterialDetailService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/repository/mapper/WaveMaterialDetailMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/repository/persistence/WaveMaterialDetailImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/repository/po/WaveMaterialDetailPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/repository/todo/WaveMaterialDetailDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveMaterialDetail/service/WaveMaterialDetailDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/abstracts/AbstractWaveOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/entity/WaveOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/factorys/WaveOrderServiceFactory.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/facade/IWaveOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/facade/IWaveOrderTypeService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/mapper/WaveOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/persistence/WaveOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/po/WaveOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/todo/AllocationSowingWallDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/repository/todo/WaveOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/service/DirectGenerationService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOrder/service/WaveOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/entity/WaveOutOrder.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/repository/facade/IWaveOutOrderService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/repository/mapper/WaveOutOrderMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/repository/persistence/WaveOutOrderImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/repository/po/WaveOutOrderPO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/repository/todo/WaveOutOrderDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveOutOrder/service/WaveOutOrderDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/entity/WaveRule.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/repository/facade/IWaveRuleService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/repository/mapper/WaveRuleMapper.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/repository/persistence/WaveRuleImpl.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/repository/po/WaveRulePO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/repository/todo/WaveRuleDO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/waveRule/service/WaveRuleDomainService.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/enums/StatusInvestigationEnum.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/commonSettings/CommonSettingsAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/containerUsageRecord/ContainerUsageRecordAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/deliveTask/DeliveTaskAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/differentManage/DifferentManageAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/handoverTaskOrder/HandoverTaskOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inMaterialDetail/InMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inOrderAbnormal/InOrderAbnormalAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryAdjustmentRecord/InventoryAdjustmentRecordAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryAllocationRule/InventoryAllocationRuleAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryStandingDetail/InventoryStandingDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryStandingReport/InventoryStandingReportAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryTurnoverRule/InventoryTurnoverRuleAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/inventoryWarningAnalyze/InventoryWarningAnalyzeAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/investigationManage/InvestigationManageAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/investigetionManageDetail/InvestigetionManageDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialBarCode/MaterialBarCodeAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialBaseInfo/MaterialBaseInfoAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialCommon/MaterialCommonAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialGoodsRule/MaterialGoodsRuleAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialInventory/MaterialInventoryAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialInventoryWarning/MaterialInventoryWarningAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialMoreDetail/MaterialMoreDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/materialWarehouseControl/MaterialWarehouseControlAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/mobilizeManage/MobilizeManageAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/mobilizeManageDetail/MobilizeManageDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/noticeMaterialDetail/NoticeMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/noticeOrder/NoticeOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/outOrderAbnormal/OutOrderAbnormalAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/overStock/OverStockAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/pickingOrder/PickingOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/putawayRule/PutawayRuleAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/putawayRuleDetail/PutawayRuleDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/qcRule/QcRuleAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/qcRuleDetail/QcRuleDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/qualityInspection/QualityInspectionAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/receiptMaterialDetail/ReceiptMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/replenishmentNotice/ReplenishmentNoticeAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/serialNumber/SerialNumberAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/shelfMaterialDetail/ShelfMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/shiftManage/ShiftManageAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/shiftMaterialDetail/ShiftMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/sowingDistributionDetails/SowingDistributionDetailsAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/sowingWall/SowingWallAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/statementStatistics/ImmediateInventoryAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/statementStatistics/WarehousingReportAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockInOrder/StockInOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockInTaskOrder/StockInTaskOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutTaskOrder/StockOutTaskOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockReceiptOrder/StockReceiptOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockShelfOrder/StockShelfOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/taskReceiptMaterialDetail/TaskReceiptMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/taskShelfMaterialDetail/TaskShelfMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/userCommonSettings/UserCommonSettingsAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/waveMaterialDetail/WaveMaterialDetailAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/waveOrder/WaveOrderAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/waveRule/WaveRuleAssembler.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/commonSettings/CommonSettingsDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/containerUsageRecord/ContainerUsageRecordDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/deliveTask/DeliveTaskDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/differentManage/DifferentManageDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inMaterialDetail/InMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inOrderAbnormal/InOrderAbnormalDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryAdjustmentRecord/InventoryAdjustmentRecordDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryAllocationRule/InventoryAllocationRuleDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryStandingDetail/InventoryStandingDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryStandingReport/InventoryStandingReportDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryTurnoverRule/InventoryTurnoverRuleDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inventoryWarningAnalyze/InventoryWarningAnalyzeDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/investigationManage/InvestigationManageDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/investigationManage/InvestigetionMaterialDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/investigationManage/InvestigetionStorageDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/investigetionManageDetail/InvestigetionManageDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBarCode/MaterialBarCodeDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialCommon/MaterialCommonDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialGoodsRule/MaterialGoodsRuleDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryQueryListDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventoryWarning/MaterialInventoryWarningDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialMoreDetail/MaterialMoreDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialWarehouseControl/MaterialWarehouseControlDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/mobilizeManage/MobilizeManageDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/mobilizeManageDetail/MobilizeManageDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/noticeMaterialDetail/NoticeMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/noticeOrder/NoticeOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outOrderAbnormal/OutOrderAbnormalDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/overStock/ExecuteOverStockDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/overStock/OverStockDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/overStock/QueryOrderOverStockDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/overStock/ReceiptOverStockDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingMaterialDetail/PickingMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingOrder/PickingCheckDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingOrder/PickingOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/putawayRule/PutawayRuleDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/putawayRuleDetail/PutawayRuleDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/qcRule/QcRuleDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/qcRuleDetail/QcRuleDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/qualityInspection/QualityInspectionDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/receiptMaterialDetail/ReceiptMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/replenishmentNotice/ReplenishmentNoticeDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/serialNumber/SerialNumberDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shelfMaterialDetail/ShelfMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftManage/ShiftManageDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftMaterialDetail/ShiftMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/sowingDistributionDetails/SowingDistributionDetailsDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/sowingWall/SowingWallDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/statementStatistics/ImmediateInventoryDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/statementStatistics/WarehousingReportDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderBaseDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInTaskOrder/StockInTaskOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderBaseDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutTaskOrder/StockOutTaskOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutTaskOrder/TaskMaterialDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutTaskOrder/TaskStorageDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockReceiptOrder/StockReceiptOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockShelfOrder/StockShelfOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/taskHandoverMaterialDetail/TaskHandoverMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/taskPickingMaterialDetail/TaskPickingMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/taskReceiptMaterialDetail/TaskReceiptMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/taskShelfMaterialDetail/TaskShelfMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/userCommonSettings/UserCommonSettingsAddDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/userCommonSettings/UserCommonSettingsDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/waveMaterialDetail/WaveMaterialDetailDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/waveOrder/WaveOrderDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/waveRule/WaveRuleDTO.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/containerUsageRecord/ContainerUsageRecordApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/deliveTask/DeliveTaskApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/differentManage/DifferentManageApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inMaterialDetail/InMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inOrderAbnormal/InOrderAbnormalApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryAdjustmentRecord/InventoryAdjustmentRecordApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryAllocationRule/InventoryAllocationRuleApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryStandingDetail/InventoryStandingDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryStandingReport/InventoryStandingReportApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryTurnoverRule/InventoryTurnoverRuleApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inventoryWarningAnalyze/InventoryWarningAnalyzeApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/investigationManage/InvestigationManageApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/investigetionManageDetail/InvestigetionManageDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialBarCode/MaterialBarCodeApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialCommon/MaterialCommonApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialGoodsRule/MaterialGoodsRuleApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventoryWarning/MaterialInventoryWarningApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialMoreDetail/MaterialMoreDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialWarehouseControl/MaterialWarehouseControlApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/mobilizeManage/MobilizeManageApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/mobilizeManageDetail/MobilizeManageDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/noticeMaterialDetail/NoticeMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/noticeOrder/NoticeOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/outOrderAbnormal/OutOrderAbnormalApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/overStock/OverStockApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/putawayRule/PutawayRuleApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/putawayRuleDetail/PutawayRuleDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/qcRule/QcRuleApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/qcRuleDetail/QcRuleDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/qualityInspection/QualityInspectionApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/receiptMaterialDetail/ReceiptMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/replenishmentNotice/ReplenishmentNoticeApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/serialNumber/SerialNumberApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/shelfMaterialDetail/ShelfMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/shiftManage/ShiftManageApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/shiftMaterialDetail/ShiftMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/sowingDistributionDetails/SowingDistributionDetailsApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/sowingWall/SowingWallApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInTaskOrder/StockInTaskOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutTaskOrder/StockOutTaskOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockReceiptOrder/StockReceiptOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockShelfOrder/StockShelfOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/taskReceiptMaterialDetail/TaskReceiptMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/taskShelfMaterialDetail/TaskShelfMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/waveMaterialDetail/WaveMaterialDetailApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/waveOrder/WaveOrderApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/waveRule/WaveRuleApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/commonSettings/CommonSettingsApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/deliveTask/DeliveTaskAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/investigationManage/InvestigationManageAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/materialInventory/MaterialInventoryAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/shiftManage/ShiftManageAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutTaskOrder/stockOutTaskOrderAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockReceiptOrder/StockReceiptOrderAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockShelfOrder/StockShelfOrderAppApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/userCommonSettings/UserCommonSettingsApi.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/util/FillableEntity.java
create mode 100644 mhd_wms/src/main/java/com/mhd/wms/util/UtilloginUserAssemble.java
create mode 100644 mhd_wms/src/main/resources/banner.txt
create mode 100644 mhd_wms/src/main/resources/bootstrap.yml
create mode 100644 mhd_wms/src/main/resources/logback.xml
create mode 100644 mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/commonSettings/CommonSettingsMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/containerUsageRecord/ContainerUsageRecordMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/differentManage/DifferentManageMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inOrderAbnormal/InOrderAbnormalMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryAllocationRule/InventoryAllocationRuleMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryStandingDetail/InventoryStandingDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryStandingReport/InventoryStandingReportMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryTurnoverRule/InventoryTurnoverRuleMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/inventoryWarningAnalyze/InventoryWarningAnalyzeMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/investigationManage/InvestigationManageMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/investigetionManageDetail/InvestigetionManageDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialBarCode/MaterialBarCodeMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialCommon/MaterialCommonMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialGoodsRule/MaterialGoodsRuleMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialInventoryWarning/MaterialInventoryWarningMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialMoreDetail/MaterialMoreDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/materialWarehouseControl/MaterialWarehouseControlMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/mobilizeManage/MobilizeManageMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/mobilizeManageDetail/MobilizeManageDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/noticeMaterialDetail/NoticeMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/outOrderAbnormal/OutOrderAbnormalMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/overStock/OverStockMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/pickingMaterialDetail/PickingMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/putawayRule/PutawayRuleMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/putawayRuleDetail/PutawayRuleDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/qcRule/QcRuleMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/qcRuleDetail/QcRuleDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/qualityInspection/QualityInspectionMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/replenishmentNotice/ReplenishmentNoticeMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/serialNumber/SerialNumberMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/shelfMaterialDetail/ShelfMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/shiftManage/ShiftManageMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/shiftMaterialDetail/ShiftMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/sowingDistributionDetails/SowingDistributionDetailsMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/sowingWall/SowingWallMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockInTaskOrder/StockInTaskOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockOutTaskOrder/StockOutTaskOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockReceiptNotice/NoticeOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/taskHandoverMaterialDetail/TaskHandoverMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/taskPickingMaterialDetail/TaskPickingMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/taskReceiptMaterialDetail/TaskReceiptMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/taskShelfMaterialDetail/TaskShelfMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/userCommonSettings/UserCommonSettingsMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/waveMaterialDetail/WaveMaterialDetailMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/waveOrder/WaveOrderMapper.xml
create mode 100644 mhd_wms/src/main/resources/mapper/waveRule/WaveRuleMapper.xml
diff --git a/mhd_wms/pom.xml b/mhd_wms/pom.xml
new file mode 100644
index 000000000..ce92b5309
--- /dev/null
+++ b/mhd_wms/pom.xml
@@ -0,0 +1,170 @@
+
+
+ 4.0.0
+
+ mhd
+ com.mhd
+ 3.6.0
+
+ com.mhd
+ mhd_wms
+
+ mhd_wms
+ mhd_wms 仓储
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+ bcpkix-jdk15on
+ org.bouncycastle
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+ io.github.openfeign
+ feign-httpclient
+
+
+ org.springframework.cloud
+ spring-cloud-loadbalancer
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+ com.alibaba.csp
+ sentinel-datasource-nacos
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+
+
+ com.alibaba.fastjson2
+ fastjson2
+
+
+
+ com.mhd
+ mhd-common-core
+
+
+
+ com.mhd
+ mhd-common-log
+
+
+
+ com.mhd
+ mhd-common-redis
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.3.2
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.11
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-sleuth
+
+
+
+
+ com.mhd
+ mhd-common-security
+
+
+
+ org.apache.poi
+ poi
+ 4.1.2
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 4.1.2
+
+
+
+
+ com.mhd
+ mhd-api-system
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.1.1.RELEASE
+
+
+
+ repackage
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/mhd_wms/src/main/java/com/mhd/wms/MhdWmsApplication.java b/mhd_wms/src/main/java/com/mhd/wms/MhdWmsApplication.java
new file mode 100644
index 000000000..8d1ba04b1
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/MhdWmsApplication.java
@@ -0,0 +1,21 @@
+package com.mhd.wms;
+
+import com.alicp.jetcache.anno.config.EnableMethodCache;
+import com.mhd.common.security.annotation.EnableRyFeignClients;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+@SpringBootApplication
+@EnableRyFeignClients
+@EnableDiscoveryClient
+@MapperScan("com.mhd.wms.domain.**.mapper")
+@EnableMethodCache(basePackages = "com.mhd.platform.domain.**.cache")
+public class MhdWmsApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(MhdWmsApplication.class, args);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/commonSettings/CommonSettingsApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/commonSettings/CommonSettingsApplicationService.java
new file mode 100644
index 000000000..4878cd60d
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/commonSettings/CommonSettingsApplicationService.java
@@ -0,0 +1,87 @@
+package com.mhd.wms.application.service.commonSettings;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
+import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
+import com.mhd.wms.domain.commonSettings.service.CommonSettingsDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 常用设置ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+@Service
+@Slf4j
+public class CommonSettingsApplicationService {
+ @Autowired
+ private CommonSettingsDomainService commonSettingsDomainService;
+
+
+ /**
+ * 分页查询常用设置列表
+ */
+
+ public List queryList(CommonSettingsDO commonSettingsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ commonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return commonSettingsDomainService.queryList(commonSettingsDO);
+ }
+
+
+ /**
+ * 新增常用设置
+ */
+ public Boolean insert(CommonSettingsDO commonSettingsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ commonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return commonSettingsDomainService.insert(commonSettingsDO);
+ }
+
+ /**
+ * 修改常用设置
+ */
+ public Boolean update(CommonSettingsDO commonSettingsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ commonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return commonSettingsDomainService.update(commonSettingsDO);
+ }
+
+ /**
+ * 批量删除常用设置
+ */
+ public boolean delete(Long[] commonSettingsIds) {
+ return commonSettingsDomainService.delete(commonSettingsIds);
+ }
+
+ /**
+ * 获取常用设置详细信息
+ */
+ public CommonSettingsPO getInfo(Long commonSettingsId)
+ {
+ return commonSettingsDomainService.getInfo(commonSettingsId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/containerUsageRecord/ContainerUsageRecordApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/containerUsageRecord/ContainerUsageRecordApplicationService.java
new file mode 100644
index 000000000..d7e19657e
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/containerUsageRecord/ContainerUsageRecordApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.containerUsageRecord;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
+import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
+import com.mhd.wms.domain.containerUsageRecord.service.ContainerUsageRecordDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 容器使用记录ApplicationService
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+@Service
+@Slf4j
+public class ContainerUsageRecordApplicationService {
+ @Autowired
+ private ContainerUsageRecordDomainService containerUsageRecordDomainService;
+
+
+ /**
+ * 分页查询容器使用记录列表
+ */
+
+ public List queryList(ContainerUsageRecordDO containerUsageRecordDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ containerUsageRecordDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return containerUsageRecordDomainService.queryList(containerUsageRecordDO);
+ }
+
+
+ /**
+ * 新增容器使用记录
+ */
+ public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO) {
+
+ return containerUsageRecordDomainService.insert(containerUsageRecordDO);
+ }
+
+ /**
+ * 修改容器使用记录
+ */
+ public Boolean update(ContainerUsageRecordDO containerUsageRecordDO) {
+ return containerUsageRecordDomainService.update(containerUsageRecordDO);
+ }
+
+ /**
+ * 批量删除容器使用记录
+ */
+ public boolean delete(String[] ids) {
+ return containerUsageRecordDomainService.delete(ids);
+ }
+
+ /**
+ * 获取容器使用记录详细信息
+ */
+ public ContainerUsageRecordPO getInfo(String id)
+ {
+ return containerUsageRecordDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java
new file mode 100644
index 000000000..e0a904dfb
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java
@@ -0,0 +1,112 @@
+package com.mhd.wms.application.service.deliveTask;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
+import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
+import com.mhd.wms.domain.deliveTask.service.DeliveTaskDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 下发任务ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+@Service
+@Slf4j
+public class DeliveTaskApplicationService {
+ @Autowired
+ private DeliveTaskDomainService deliveTaskDomainService;
+
+
+ /**
+ * 分页查询下发任务列表
+ */
+
+ public List queryList(DeliveTaskDO deliveTaskDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return deliveTaskDomainService.queryList(deliveTaskDO);
+ }
+
+ public List queryListApp(DeliveTaskDO deliveTaskDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ deliveTaskDO.setOperatorsBy(loginUser.getUserid());
+ }
+ }
+ return deliveTaskDomainService.queryListApp(deliveTaskDO);
+ }
+
+ /**
+ * 批量 新增下发任务
+ */
+ public Boolean batchInsert(List deliveTaskDOList) {
+
+ return deliveTaskDomainService.batchInsert(deliveTaskDOList);
+ }
+
+ /**
+ * 批量删除下发任务
+ */
+ public boolean delete(Long[] deliverTaskIds) {
+ return deliveTaskDomainService.delete(deliverTaskIds);
+ }
+
+ /**
+ * 获取下发任务详细信息
+ */
+ public DeliveTaskPO getInfo(Long deliverTaskId)
+ {
+ return deliveTaskDomainService.getInfo(deliverTaskId);
+ }
+ /**
+ * 任务下发接收操作
+ */
+ public int receive(Long deliverTaskId)
+ {
+ return deliveTaskDomainService.receive(deliverTaskId);
+ }
+ /**
+ * 任务下发接收操作
+ */
+ public int refuse(Long deliverTaskId)
+ {
+ return deliveTaskDomainService.refuse(deliverTaskId);
+ }
+
+ /**
+ * 工作台查询
+ */
+ public DeliveTaskSumPO workbenchQuery()
+ {
+ return deliveTaskDomainService.workbenchQuery();
+ }
+
+ public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ deliveTaskDO.setOperatorsBy(loginUser.getUserid());
+ }
+ }
+ return deliveTaskDomainService.querySum(deliveTaskDO);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java
new file mode 100644
index 000000000..34cf8d9ab
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java
@@ -0,0 +1,87 @@
+package com.mhd.wms.application.service.differentManage;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
+import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
+import com.mhd.wms.domain.differentManage.service.DifferentManageDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 差异单ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+@Service
+@Slf4j
+public class DifferentManageApplicationService {
+ @Autowired
+ private DifferentManageDomainService differentManageDomainService;
+
+
+ /**
+ * 分页查询差异单列表
+ */
+
+ public List queryList(DifferentManageDO differentManageDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null) {
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1) {
+ differentManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ differentManageDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return differentManageDomainService.queryList(differentManageDO);
+ }
+
+
+ /**
+ * 新增差异单
+ */
+ public Boolean insert(DifferentManageDO differentManageDO) {
+
+ return differentManageDomainService.insert(differentManageDO);
+ }
+
+ /**
+ * 修改差异单
+ */
+ public Boolean update(DifferentManageDO differentManageDO) {
+ return differentManageDomainService.update(differentManageDO);
+ }
+
+ /**
+ * 批量删除差异单
+ */
+ public boolean delete(Long[] differentManageIds) {
+ return differentManageDomainService.delete(differentManageIds);
+ }
+
+ /**
+ * 获取差异单详细信息
+ */
+ public DifferentManagePO getInfo(Long differentManageId) {
+ return differentManageDomainService.getInfo(differentManageId);
+ }
+
+ public Boolean resetDifferent(DifferentManageDO differentManageDO){
+ return differentManageDomainService.resetDifferent(differentManageDO);
+ }
+ public Boolean differentRollback(DifferentManageDO differentManageDO){
+ return differentManageDomainService.differentRollback(differentManageDO);
+ }
+
+ public DifferentManagePO getDifferentManageDO(Long differentManageId){
+ return differentManageDomainService.getDifferentManageDO(differentManageId);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java
new file mode 100644
index 000000000..e8e544bc7
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java
@@ -0,0 +1,151 @@
+package com.mhd.wms.application.service.handoverTaskOrder;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.DateUtils;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.domain.PlatformFeignPO;
+import com.mhd.system.api.domain.PlatformUseTimeFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
+import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
+import com.mhd.wms.domain.handoverTaskOrder.service.HandoverTaskOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 交接作业单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+@Slf4j
+public class HandoverTaskOrderApplicationService {
+ @Autowired
+ private HandoverTaskOrderDomainService handoverTaskOrderDomainService;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询交接作业单列表
+ */
+
+ public List queryList(HandoverTaskOrderDO handoverTaskOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ handoverTaskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ handoverTaskOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return handoverTaskOrderDomainService.queryList(handoverTaskOrderDO);
+ }
+
+
+ /**
+ * 新增交接作业单
+ */
+ public Boolean insert(HandoverTaskOrderDO handoverTaskOrderDO) {
+
+ return handoverTaskOrderDomainService.insert(handoverTaskOrderDO);
+ }
+
+ /**
+ * 修改交接作业单
+ */
+ public Boolean update(HandoverTaskOrderDO handoverTaskOrderDO) {
+ return handoverTaskOrderDomainService.update(handoverTaskOrderDO);
+ }
+
+ /**
+ * 批量删除交接作业单
+ */
+ public boolean delete(Long[] outTaskOrderIds) {
+ return handoverTaskOrderDomainService.delete(outTaskOrderIds);
+ }
+
+ /**
+ * 获取交接作业单详细信息
+ */
+ public HandoverTaskOrderPO getInfo(Long outTaskOrderId)
+ {
+ return handoverTaskOrderDomainService.getInfo(outTaskOrderId);
+ }
+
+ /**
+ * 分配月台
+ */
+ public Boolean allocationPlatform(HandoverTaskOrderDO handoverTaskOrderDO) {
+ //封装月台信息
+ platformParam(handoverTaskOrderDO);
+ return handoverTaskOrderDomainService.allocationPlatform(handoverTaskOrderDO);
+ }
+
+ /**
+ * @description 释放月台
+ * @author ZhouGY
+ * @date 2024/5/22 15:19
+ * @param handoverTaskOrderDO
+ * @return Boolean
+ */
+ public Boolean releasePlatform(HandoverTaskOrderDO handoverTaskOrderDO){
+ return handoverTaskOrderDomainService.releasePlatform(handoverTaskOrderDO);
+ }
+
+ /**
+ * @description 完成交接
+ * @author ZhouGY
+ * @date 2024/5/31 14:23
+ * @param handoverTaskOrderDO
+ * @return Boolean
+ */
+ public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO){
+ return handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO);
+ }
+
+
+
+ /**
+ * @description 封装月台信息
+ * @author ZhouGY
+ * @date 2024/5/13 10:45
+ * @param handoverTaskOrderDO
+ */
+ private void platformParam(HandoverTaskOrderDO handoverTaskOrderDO){
+ //封装月台信息
+ AjaxResult ajaxResult = systemServiceFeign.getPlatformInfoByPlatformId(handoverTaskOrderDO.getPlatformId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取月台信息失败");
+ }
+ PlatformFeignPO platformFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), PlatformFeignPO.class);
+ handoverTaskOrderDO.setPlatformCode(platformFeignPO.getPlatformCode());
+ handoverTaskOrderDO.setPlatformName(platformFeignPO.getPlatformName());
+
+ //封装月台使用时间信息
+ AjaxResult ajaxResult2 = systemServiceFeign.getPlatformUseTimeInfoByPlatformUseTimeId(handoverTaskOrderDO.getPlatformId());
+ if(!"200".equals(String.valueOf(ajaxResult2.get("code")))){
+ throw new ServiceException("获取月台使用时间信息失败");
+ }
+ PlatformUseTimeFeignPO platformUseTimeFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult2.get("data")), PlatformUseTimeFeignPO.class);
+ try {
+ handoverTaskOrderDO.setPlatformUseStartTime(DateUtils.parseDate(platformUseTimeFeignPO.getStartTime(), "HH:mm"));
+ handoverTaskOrderDO.setPlatformUseEndTime(DateUtils.parseDate(platformUseTimeFeignPO.getEndTime(), "HH:mm"));
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetail/InMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetail/InMaterialDetailApplicationService.java
new file mode 100644
index 000000000..4d399367f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetail/InMaterialDetailApplicationService.java
@@ -0,0 +1,73 @@
+package com.mhd.wms.application.service.inMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
+import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
+import com.mhd.wms.domain.inMaterialDetail.service.InMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class InMaterialDetailApplicationService {
+ @Autowired
+ private InMaterialDetailDomainService inMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询物料明细列表
+ */
+
+ public List queryList(InMaterialDetailDO inMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return inMaterialDetailDomainService.queryList(inMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增物料明细
+ */
+ public Boolean insert(InMaterialDetailDO inMaterialDetailDO) {
+
+ return inMaterialDetailDomainService.insert(inMaterialDetailDO);
+ }
+
+ /**
+ * 修改物料明细
+ */
+ public Boolean update(InMaterialDetailDO inMaterialDetailDO) {
+ return inMaterialDetailDomainService.update(inMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除物料明细
+ */
+ public boolean delete(Long[] materialDetailIds) {
+ return inMaterialDetailDomainService.delete(materialDetailIds);
+ }
+
+ /**
+ * 获取物料明细详细信息
+ */
+ public InMaterialDetailPO getInfo(Long materialDetailId)
+ {
+ return inMaterialDetailDomainService.getInfo(materialDetailId);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberApplicationService.java
new file mode 100644
index 000000000..1714ae290
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inMaterialDetailSerialNumber/InMaterialDetailSerialNumberApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.inMaterialDetailSerialNumber;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.po.InMaterialDetailSerialNumberPO;
+import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.todo.InMaterialDetailSerialNumberDO;
+import com.mhd.wms.domain.inMaterialDetailSerialNumber.service.InMaterialDetailSerialNumberDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料明细序列号ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class InMaterialDetailSerialNumberApplicationService {
+ @Autowired
+ private InMaterialDetailSerialNumberDomainService inMaterialDetailSerialNumberDomainService;
+
+
+ /**
+ * 分页查询物料明细序列号列表
+ */
+
+ public List queryList(InMaterialDetailSerialNumberDO InMaterialDetailSerialNumberDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ InMaterialDetailSerialNumberDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return inMaterialDetailSerialNumberDomainService.queryList(InMaterialDetailSerialNumberDO);
+ }
+
+
+ /**
+ * 新增物料明细序列号
+ */
+ public Boolean insert(InMaterialDetailSerialNumberDO InMaterialDetailSerialNumberDO) {
+
+ return inMaterialDetailSerialNumberDomainService.insert(InMaterialDetailSerialNumberDO);
+ }
+
+ /**
+ * 修改物料明细序列号
+ */
+ public Boolean update(InMaterialDetailSerialNumberDO InMaterialDetailSerialNumberDO) {
+ return inMaterialDetailSerialNumberDomainService.update(InMaterialDetailSerialNumberDO);
+ }
+
+ /**
+ * 批量删除物料明细序列号
+ */
+ public boolean delete(Long[] materialDetailSerialNumberIds) {
+ return inMaterialDetailSerialNumberDomainService.delete(materialDetailSerialNumberIds);
+ }
+
+ /**
+ * 获取物料明细序列号详细信息
+ */
+ public InMaterialDetailSerialNumberPO getInfo(Long materialDetailSerialNumberId)
+ {
+ return inMaterialDetailSerialNumberDomainService.getInfo(materialDetailSerialNumberId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java
new file mode 100644
index 000000000..a9547a025
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java
@@ -0,0 +1,78 @@
+package com.mhd.wms.application.service.inOrderAbnormal;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inOrderAbnormal.repository.po.InOrderAbnormalPO;
+import com.mhd.wms.domain.inOrderAbnormal.repository.todo.InOrderAbnormalDO;
+import com.mhd.wms.domain.inOrderAbnormal.service.InOrderAbnormalDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 入库异常单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class InOrderAbnormalApplicationService {
+ @Autowired
+ private InOrderAbnormalDomainService inOrderAbnormalDomainService;
+
+
+ /**
+ * 分页查询入库异常单列表
+ */
+
+ public List queryList(InOrderAbnormalDO inOrderAbnormalDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inOrderAbnormalDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ inOrderAbnormalDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inOrderAbnormalDomainService.queryList(inOrderAbnormalDO);
+ }
+
+
+ /**
+ * 新增入库异常单
+ */
+ public Boolean insert(InOrderAbnormalDO inOrderAbnormalDO) {
+
+ return inOrderAbnormalDomainService.insert(inOrderAbnormalDO);
+ }
+
+ /**
+ * 修改入库异常单
+ */
+ public Boolean update(InOrderAbnormalDO inOrderAbnormalDO) {
+ return inOrderAbnormalDomainService.update(inOrderAbnormalDO);
+ }
+
+ /**
+ * 批量删除入库异常单
+ */
+ public boolean delete(Long[] inOrderAbnormalIds) {
+ return inOrderAbnormalDomainService.delete(inOrderAbnormalIds);
+ }
+
+ /**
+ * 获取入库异常单详细信息
+ */
+ public InOrderAbnormalPO getInfo(Long inOrderAbnormalId)
+ {
+ return inOrderAbnormalDomainService.getInfo(inOrderAbnormalId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java
new file mode 100644
index 000000000..e376cc272
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java
@@ -0,0 +1,102 @@
+package com.mhd.wms.application.service.inventoryAdjustmentRecord;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.po.InventoryAdjustmentRecordPO;
+import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.todo.InventoryAdjustmentRecordDO;
+import com.mhd.wms.domain.inventoryAdjustmentRecord.service.InventoryAdjustmentRecordDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库存调整记录ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-17
+ */
+@Service
+@Slf4j
+public class InventoryAdjustmentRecordApplicationService {
+ @Autowired
+ private InventoryAdjustmentRecordDomainService inventoryAdjustmentRecordDomainService;
+
+
+ /**
+ * 分页查询库存调整记录列表
+ */
+
+ public List queryList(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryAdjustmentRecordDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ inventoryAdjustmentRecordDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inventoryAdjustmentRecordDomainService.queryList(inventoryAdjustmentRecordDO);
+ }
+
+
+ /**
+ * 新增库存调整记录
+ */
+ public Boolean insert(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
+
+ return inventoryAdjustmentRecordDomainService.insert(inventoryAdjustmentRecordDO);
+ }
+
+ /**
+ * 修改库存调整记录
+ */
+ public Boolean update(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
+ return inventoryAdjustmentRecordDomainService.update(inventoryAdjustmentRecordDO);
+ }
+
+ /**
+ * 批量删除库存调整记录
+ */
+ public boolean delete(Long[] inventoryAdjustmentIds) {
+ return inventoryAdjustmentRecordDomainService.delete(inventoryAdjustmentIds);
+ }
+
+ /**
+ * 获取库存调整记录详细信息
+ */
+ public InventoryAdjustmentRecordPO getInfo(Long inventoryAdjustmentId)
+ {
+ return inventoryAdjustmentRecordDomainService.getInfo(inventoryAdjustmentId);
+ }
+
+ /**
+ * @description:库存调整
+ * @param inventoryAdjustmentRecordDO
+ * @return: java.lang.Boolean
+ * @author: lianzj
+ * @time: 2024-07-18 9:29:40
+ */
+ public Boolean inventoryAdjust(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
+ return inventoryAdjustmentRecordDomainService.inventoryAdjust(inventoryAdjustmentRecordDO);
+ }
+
+ /**
+ * @description:库存冻结
+ * @param inventoryAdjustmentRecordDO
+ * @return: java.lang.Boolean
+ * @author: lianzj
+ * @time: 2024-07-18 14:58:15
+ */
+ public Boolean inventoryFrozen(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
+ return inventoryAdjustmentRecordDomainService.inventoryFrozen(inventoryAdjustmentRecordDO);
+ }
+
+ public Boolean inventoryFrozenForAll(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
+ return inventoryAdjustmentRecordDomainService.inventoryFrozenForAll(inventoryAdjustmentRecordDO);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRule/InventoryAllocationRuleApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRule/InventoryAllocationRuleApplicationService.java
new file mode 100644
index 000000000..45042d97b
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRule/InventoryAllocationRuleApplicationService.java
@@ -0,0 +1,244 @@
+package com.mhd.wms.application.service.inventoryAllocationRule;
+
+import cn.hutool.json.JSONUtil;
+import com.github.pagehelper.util.StringUtil;
+import com.mhd.common.core.domain.po.SysDictDataVo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryAllocationRule.repository.po.InventoryAllocationRulePO;
+import com.mhd.wms.domain.inventoryAllocationRule.repository.todo.InventoryAllocationRuleDO;
+import com.mhd.wms.domain.inventoryAllocationRule.service.InventoryAllocationRuleDomainService;
+import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.po.InventoryAllocationRuleDetailPO;
+import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.todo.InventoryAllocationRuleDetailDO;
+import com.mhd.wms.domain.inventoryAllocationRuleDetail.service.InventoryAllocationRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 库存分配规则ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-22
+ */
+@Service
+@Slf4j
+public class InventoryAllocationRuleApplicationService {
+ @Autowired
+ private InventoryAllocationRuleDomainService inventoryAllocationRuleDomainService;
+
+ @Resource
+ private InventoryAllocationRuleDetailDomainService inventoryAllocationRuleDetailDomainService;
+
+ @Resource
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询库存分配规则列表
+ */
+
+ public List queryList(InventoryAllocationRuleDO inventoryAllocationRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryAllocationRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return inventoryAllocationRuleDomainService.queryList(inventoryAllocationRuleDO);
+ }
+
+
+ /**
+ * 新增库存分配规则
+ */
+
+ @Transactional
+ public Boolean insert(InventoryAllocationRuleDO inventoryAllocationRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryAllocationRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ Long id = inventoryAllocationRuleDomainService.insertToId(inventoryAllocationRuleDO);
+ //根据ID查询所有的库存分配规则明细
+ Long[] ids = inventoryAllocationRuleDetailDomainService.selectIdsByInventoryAllocationRuleId(id);
+ //删除当前的库存分配规则明细信息
+ inventoryAllocationRuleDetailDomainService.delete(ids);
+ //批量新增所有的库存分配规则明细
+ List inventoryAllocationRuleDetailDOS = inventoryAllocationRuleDO.getInventoryAllocationRuleDetailDOS();
+ inventoryAllocationRuleDetailDOS.stream().forEach(inventoryAllocationRuleDetailDO -> {
+ //库位种类 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationKindId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位种类)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationKindId())) {
+ throw new ServiceException("库位种类未找到");
+ }
+ inventoryAllocationRuleDetailDO.setLocationKind(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationKindId()));
+ }
+ //库位种类 end
+ //库位分类 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationTypeId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ inventoryAllocationRuleDetailDO.setLocationType(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationTypeId()));
+ }
+ //库位分类 end
+ //混放策略 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMixingSlgId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.CONFUSION_STRATEGY.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMixingSlgId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ inventoryAllocationRuleDetailDO.setMixingSlg(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMixingSlgId()));
+ }
+ //混放策略 end
+ //物料状态 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMaterialStatusId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMaterialStatusId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ inventoryAllocationRuleDetailDO.setMaterialStatus(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMaterialStatusId()));
+ }
+ //物料状态 end
+ inventoryAllocationRuleDetailDO.setInventoryAllocationRuleId(id);
+
+ });
+ return inventoryAllocationRuleDetailDomainService.batchInsert(inventoryAllocationRuleDetailDOS);
+ }
+
+ /**
+ * 修改库存分配规则
+ */
+ public Boolean update(InventoryAllocationRuleDO inventoryAllocationRuleDO) {
+ inventoryAllocationRuleDomainService.update(inventoryAllocationRuleDO);
+ //根据ID查询所有的库存分配规则明细
+ Long[] ids = inventoryAllocationRuleDetailDomainService.selectIdsByInventoryAllocationRuleId(inventoryAllocationRuleDO.getId());
+ //删除当前的库存分配规则明细信息
+ inventoryAllocationRuleDetailDomainService.delete(ids);
+ //批量新增所有的库存分配规则明细
+ List inventoryAllocationRuleDetailDOS = inventoryAllocationRuleDO.getInventoryAllocationRuleDetailDOS();
+ inventoryAllocationRuleDetailDOS.stream().forEach(inventoryAllocationRuleDetailDO -> {
+ //库位种类 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationKindId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位种类)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationKindId())) {
+ throw new ServiceException("库位种类未找到");
+ }
+ inventoryAllocationRuleDetailDO.setLocationKind(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationKindId()));
+ }
+ //库位种类 end
+ //库位分类 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationTypeId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ inventoryAllocationRuleDetailDO.setLocationType(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationTypeId()));
+ }
+ //库位分类 end
+ //混放策略 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMixingSlgId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.CONFUSION_STRATEGY.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMixingSlgId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ inventoryAllocationRuleDetailDO.setMixingSlg(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMixingSlgId()));
+ }
+ //混放策略 end
+ //物料状态 start
+ if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMaterialStatusId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMaterialStatusId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ inventoryAllocationRuleDetailDO.setMaterialStatus(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMaterialStatusId()));
+ }
+ inventoryAllocationRuleDetailDO.setInventoryAllocationRuleId(inventoryAllocationRuleDO.getId());
+ });
+ return inventoryAllocationRuleDetailDomainService.batchInsert(inventoryAllocationRuleDetailDOS);
+ }
+
+ /**
+ * 批量删除库存分配规则
+ */
+ @Transactional
+ public boolean delete(Long[] ids) {
+ inventoryAllocationRuleDomainService.delete(ids);
+ //根据库存分配规则ID查询所有的库存分配规则明细信息
+ Long[] inventoryAllocationRuleDetailIds = inventoryAllocationRuleDetailDomainService.selectIdsByInventoryAllocationRuleIds(ids);
+ return inventoryAllocationRuleDetailDomainService.delete(inventoryAllocationRuleDetailIds);
+ }
+
+ /**
+ * 获取库存分配规则详细信息
+ */
+ public InventoryAllocationRulePO getInfo(Long id)
+ {
+ InventoryAllocationRulePO inventoryAllocationRulePO = inventoryAllocationRuleDomainService.getInfo(id);
+ //根据库存分配ID查询库存分配明细信息
+ List inventoryAllocationRuleDetailPOS =
+ inventoryAllocationRuleDetailDomainService.selectListByInventoryAllocationRuleId(id);
+
+ inventoryAllocationRulePO.setInventoryAllocationRuleDetailList(inventoryAllocationRuleDetailPOS);
+ return inventoryAllocationRulePO;
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailApplicationService.java
new file mode 100644
index 000000000..742f8509c
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAllocationRuleDetail/InventoryAllocationRuleDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.inventoryAllocationRuleDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.po.InventoryAllocationRuleDetailPO;
+import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.todo.InventoryAllocationRuleDetailDO;
+import com.mhd.wms.domain.inventoryAllocationRuleDetail.service.InventoryAllocationRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库存规则分配明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-22
+ */
+@Service
+@Slf4j
+public class InventoryAllocationRuleDetailApplicationService {
+ @Autowired
+ private InventoryAllocationRuleDetailDomainService inventoryAllocationRuleDetailDomainService;
+
+
+ /**
+ * 分页查询库存规则分配明细列表
+ */
+
+ public List queryList(InventoryAllocationRuleDetailDO inventoryAllocationRuleDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryAllocationRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return inventoryAllocationRuleDetailDomainService.queryList(inventoryAllocationRuleDetailDO);
+ }
+
+
+ /**
+ * 新增库存规则分配明细
+ */
+ public Boolean insert(InventoryAllocationRuleDetailDO inventoryAllocationRuleDetailDO) {
+
+ return inventoryAllocationRuleDetailDomainService.insert(inventoryAllocationRuleDetailDO);
+ }
+
+ /**
+ * 修改库存规则分配明细
+ */
+ public Boolean update(InventoryAllocationRuleDetailDO inventoryAllocationRuleDetailDO) {
+ return inventoryAllocationRuleDetailDomainService.update(inventoryAllocationRuleDetailDO);
+ }
+
+ /**
+ * 批量删除库存规则分配明细
+ */
+ public boolean delete(Long[] ids) {
+ return inventoryAllocationRuleDetailDomainService.delete(ids);
+ }
+
+ /**
+ * 获取库存规则分配明细详细信息
+ */
+ public InventoryAllocationRuleDetailPO getInfo(Long id)
+ {
+ return inventoryAllocationRuleDetailDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingDetail/InventoryStandingDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingDetail/InventoryStandingDetailApplicationService.java
new file mode 100644
index 000000000..1d66b320e
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingDetail/InventoryStandingDetailApplicationService.java
@@ -0,0 +1,62 @@
+package com.mhd.wms.application.service.inventoryStandingDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryStandingDetail.repository.po.InventoryStandingDetailPO;
+import com.mhd.wms.domain.inventoryStandingDetail.repository.todo.InventoryStandingDetailDO;
+import com.mhd.wms.domain.inventoryStandingDetail.service.InventoryStandingDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库存台账追溯详情ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-13
+ */
+@Service
+@Slf4j
+public class InventoryStandingDetailApplicationService {
+ @Autowired
+ private InventoryStandingDetailDomainService inventoryStandingDetailDomainService;
+
+
+ /**
+ * 分页查询库存台账追溯详情列表
+ */
+
+ public List queryList(InventoryStandingDetailDO inventoryStandingDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryStandingDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ inventoryStandingDetailDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inventoryStandingDetailDomainService.queryList(inventoryStandingDetailDO);
+ }
+
+ /**
+ * 批量删除库存台账追溯详情
+ */
+ public boolean delete(Long[] inventoryStandingDetailIds) {
+ return inventoryStandingDetailDomainService.delete(inventoryStandingDetailIds);
+ }
+
+ /**
+ * 获取库存台账追溯详情详细信息
+ */
+ public InventoryStandingDetailPO getInfo(Long inventoryStandingDetailId)
+ {
+ return inventoryStandingDetailDomainService.getInfo(inventoryStandingDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingReport/InventoryStandingReportApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingReport/InventoryStandingReportApplicationService.java
new file mode 100644
index 000000000..c3b6c1d51
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryStandingReport/InventoryStandingReportApplicationService.java
@@ -0,0 +1,83 @@
+package com.mhd.wms.application.service.inventoryStandingReport;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryStandingReport.repository.po.InventoryStandingReportPO;
+import com.mhd.wms.domain.inventoryStandingReport.repository.todo.InventoryStandingReportDO;
+import com.mhd.wms.domain.inventoryStandingReport.service.InventoryStandingReportDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库存台账报ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-12
+ */
+@Service
+@Slf4j
+public class InventoryStandingReportApplicationService {
+ @Autowired
+ private InventoryStandingReportDomainService inventoryStandingReportDomainService;
+
+
+ /**
+ * 分页查询库存台账报列表
+ */
+
+ public List queryList(InventoryStandingReportDO inventoryStandingReportDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryStandingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ inventoryStandingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inventoryStandingReportDomainService.queryList(inventoryStandingReportDO);
+ }
+
+
+ /**
+ * 新增库存台账报
+ */
+ public Boolean insert(InventoryStandingReportDO inventoryStandingReportDO) {
+
+ return inventoryStandingReportDomainService.insert(inventoryStandingReportDO);
+ }
+
+ /**
+ * 修改库存台账报
+ */
+ public Boolean update(InventoryStandingReportDO inventoryStandingReportDO) {
+ return inventoryStandingReportDomainService.update(inventoryStandingReportDO);
+ }
+
+ /**
+ * 批量删除库存台账报
+ */
+ public boolean delete(Long[] inventoryStandingIds) {
+ return inventoryStandingReportDomainService.delete(inventoryStandingIds);
+ }
+
+ /**
+ * 获取库存台账报详细信息
+ */
+ public InventoryStandingReportPO getInfo(Long inventoryStandingId)
+ {
+ return inventoryStandingReportDomainService.getInfo(inventoryStandingId);
+ }
+
+
+ public InventoryStandingReportPO getInventoryStandingInfo(InventoryStandingReportDO inventoryStandingReportDO)
+ {
+ return inventoryStandingReportDomainService.getInventoryStandingInfo(inventoryStandingReportDO);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRule/InventoryTurnoverRuleApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRule/InventoryTurnoverRuleApplicationService.java
new file mode 100644
index 000000000..25ff80ce0
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRule/InventoryTurnoverRuleApplicationService.java
@@ -0,0 +1,119 @@
+package com.mhd.wms.application.service.inventoryTurnoverRule;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryTurnoverRule.repository.po.InventoryTurnoverRulePO;
+import com.mhd.wms.domain.inventoryTurnoverRule.repository.todo.InventoryTurnoverRuleDO;
+import com.mhd.wms.domain.inventoryTurnoverRule.service.InventoryTurnoverRuleDomainService;
+import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.po.InventoryTurnoverRuleDetailPO;
+import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.todo.InventoryTurnoverRuleDetailDO;
+import com.mhd.wms.domain.inventoryTurnoverRuleDetail.service.InventoryTurnoverRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 库存周转规则ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-22
+ */
+@Service
+@Slf4j
+public class InventoryTurnoverRuleApplicationService {
+ @Autowired
+ private InventoryTurnoverRuleDomainService inventoryTurnoverRuleDomainService;
+
+
+ @Resource
+ private InventoryTurnoverRuleDetailDomainService inventoryTurnoverRuleDetailDomainService;
+
+
+ /**
+ * 分页查询库存周转规则列表
+ */
+
+ public List queryList(InventoryTurnoverRuleDO inventoryTurnoverRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryTurnoverRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return inventoryTurnoverRuleDomainService.queryList(inventoryTurnoverRuleDO);
+ }
+
+
+ /**
+ * 新增库存周转规则
+ */
+ @Transactional
+ public Boolean insert(InventoryTurnoverRuleDO inventoryTurnoverRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryTurnoverRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ Long inventoryTurnoverRuleId = inventoryTurnoverRuleDomainService.insertData(inventoryTurnoverRuleDO);
+ //根据周转规则明细ID查询出原有的数据
+ Long[] ids = inventoryTurnoverRuleDetailDomainService.selectIdsByInventoryTurnoverRuleId(inventoryTurnoverRuleId);
+ inventoryTurnoverRuleDetailDomainService.delete(ids);//根据周转规则明细ID删除旧数据
+ List inventoryTurnoverRuleDetailDOS = inventoryTurnoverRuleDO.getInventoryTurnoverRuleDetailDOS();
+ inventoryTurnoverRuleDetailDOS.stream().forEach(inventoryTurnoverRuleDetailDO -> {
+ inventoryTurnoverRuleDetailDO.setInventoryTurnoverRuleId(inventoryTurnoverRuleId);
+ });
+ return inventoryTurnoverRuleDetailDomainService.batchInsert(inventoryTurnoverRuleDetailDOS);
+ }
+
+ /**
+ * 修改库存周转规则
+ */
+ @Transactional
+ public Boolean update(InventoryTurnoverRuleDO inventoryTurnoverRuleDO) {
+ inventoryTurnoverRuleDomainService.update(inventoryTurnoverRuleDO);
+ //根据周转规则明细ID查询出原有的数据
+ Long[] ids = inventoryTurnoverRuleDetailDomainService.selectIdsByInventoryTurnoverRuleId(inventoryTurnoverRuleDO.getId());
+ inventoryTurnoverRuleDetailDomainService.delete(ids);//根据周转规则明细ID删除旧数据
+ List inventoryTurnoverRuleDetailDOS = inventoryTurnoverRuleDO.getInventoryTurnoverRuleDetailDOS();
+ inventoryTurnoverRuleDetailDOS.stream().forEach(inventoryTurnoverRuleDetailDO -> {
+ inventoryTurnoverRuleDetailDO.setInventoryTurnoverRuleId(inventoryTurnoverRuleDO.getId());
+ });
+ return inventoryTurnoverRuleDetailDomainService.batchInsert(inventoryTurnoverRuleDetailDOS);
+ }
+
+ /**
+ * 批量删除库存周转规则
+ */
+ @Transactional
+ public boolean delete(Long[] ids) {
+ inventoryTurnoverRuleDomainService.delete(ids);
+ //根据周转规则明细ID查询出原有的数据
+ Long[] inventoryTurnoverRuleIds = inventoryTurnoverRuleDetailDomainService.selectIdsByInventoryTurnoverRuleIds(ids);
+ return inventoryTurnoverRuleDetailDomainService.delete(inventoryTurnoverRuleIds);//根据周转规则明细ID删除旧数据;
+ }
+
+ /**
+ * 获取库存周转规则详细信息
+ */
+ public InventoryTurnoverRulePO getInfo(Long id)
+ {
+
+ InventoryTurnoverRulePO inventoryTurnoverRulePO = inventoryTurnoverRuleDomainService.getInfo(id);
+ //根据周转规则ID获取明细信息
+ List inventoryTurnoverRuleDetailPOList =
+ inventoryTurnoverRuleDetailDomainService.selectListByInventoryTurnoverRuleId(id);
+
+ inventoryTurnoverRulePO.setInventoryTurnoverRuleDetailList(inventoryTurnoverRuleDetailPOList);
+
+ return inventoryTurnoverRulePO;
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailApplicationService.java
new file mode 100644
index 000000000..f100ad06e
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryTurnoverRuleDetail/InventoryTurnoverRuleDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.inventoryTurnoverRuleDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.po.InventoryTurnoverRuleDetailPO;
+import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.todo.InventoryTurnoverRuleDetailDO;
+import com.mhd.wms.domain.inventoryTurnoverRuleDetail.service.InventoryTurnoverRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库存周转规则明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-22
+ */
+@Service
+@Slf4j
+public class InventoryTurnoverRuleDetailApplicationService {
+ @Autowired
+ private InventoryTurnoverRuleDetailDomainService inventoryTurnoverRuleDetailDomainService;
+
+
+ /**
+ * 分页查询库存周转规则明细列表
+ */
+
+ public List queryList(InventoryTurnoverRuleDetailDO inventoryTurnoverRuleDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryTurnoverRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return inventoryTurnoverRuleDetailDomainService.queryList(inventoryTurnoverRuleDetailDO);
+ }
+
+
+ /**
+ * 新增库存周转规则明细
+ */
+ public Boolean insert(InventoryTurnoverRuleDetailDO inventoryTurnoverRuleDetailDO) {
+
+ return inventoryTurnoverRuleDetailDomainService.insert(inventoryTurnoverRuleDetailDO);
+ }
+
+ /**
+ * 修改库存周转规则明细
+ */
+ public Boolean update(InventoryTurnoverRuleDetailDO inventoryTurnoverRuleDetailDO) {
+ return inventoryTurnoverRuleDetailDomainService.update(inventoryTurnoverRuleDetailDO);
+ }
+
+ /**
+ * 批量删除库存周转规则明细
+ */
+ public boolean delete(Long[] ids) {
+ return inventoryTurnoverRuleDetailDomainService.delete(ids);
+ }
+
+ /**
+ * 获取库存周转规则明细详细信息
+ */
+ public InventoryTurnoverRuleDetailPO getInfo(Long id)
+ {
+ return inventoryTurnoverRuleDetailDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryWarningAnalyze/InventoryWarningAnalyzeApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryWarningAnalyze/InventoryWarningAnalyzeApplicationService.java
new file mode 100644
index 000000000..750620c28
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryWarningAnalyze/InventoryWarningAnalyzeApplicationService.java
@@ -0,0 +1,199 @@
+package com.mhd.wms.application.service.inventoryWarningAnalyze;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mhd.common.core.utils.OrderSequence;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryWarningAnalyze.entity.InventoryWarningAnalyze;
+import com.mhd.wms.domain.inventoryWarningAnalyze.repository.po.InventoryWarningAnalyzePO;
+import com.mhd.wms.domain.inventoryWarningAnalyze.repository.todo.InventoryWarningAnalyzeDO;
+import com.mhd.wms.domain.inventoryWarningAnalyze.service.InventoryWarningAnalyzeDomainService;
+import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
+import com.mhd.wms.domain.materialBaseInfo.service.MaterialBaseInfoDomainService;
+import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
+import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO;
+import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
+import com.mhd.wms.domain.materialInventoryWarning.repository.po.MaterialInventoryWarningPO;
+import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 库存预警分析ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-24
+ */
+@Service
+@Slf4j
+public class InventoryWarningAnalyzeApplicationService {
+ @Autowired
+ private InventoryWarningAnalyzeDomainService inventoryWarningAnalyzeDomainService;
+
+ @Resource
+ private MaterialInventoryDomainService materialInventoryDomainService;
+
+ @Resource
+ private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
+
+ @Resource
+ private MaterialBaseInfoDomainService materialBaseInfoDomainService;
+
+ /**
+ * 分页查询库存预警分析列表
+ */
+
+ public List queryList(InventoryWarningAnalyzeDO inventoryWarningAnalyzeDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ inventoryWarningAnalyzeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ inventoryWarningAnalyzeDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ List inventoryWarningAnalyzePOS = inventoryWarningAnalyzeDomainService.queryList(inventoryWarningAnalyzeDO);
+ for (InventoryWarningAnalyzePO inventoryWarningAnalyzePO : inventoryWarningAnalyzePOS) {
+ StringBuilder sb = new StringBuilder();
+ if (ObjectUtil.isNotEmpty(inventoryWarningAnalyzePO.getWarehouseName())) {
+ sb.append(inventoryWarningAnalyzePO.getWarehouseName());
+ }
+ if (ObjectUtil.isNotEmpty(inventoryWarningAnalyzePO.getStorageName())) {
+ sb.append("-").append(inventoryWarningAnalyzePO.getStorageName());
+ }
+ if (ObjectUtil.isNotEmpty(inventoryWarningAnalyzePO.getStorageLocationName())) {
+ sb.append("-").append(inventoryWarningAnalyzePO.getStorageLocationName());
+ }
+ inventoryWarningAnalyzePO.setEarlyWarningPosition(sb.toString());
+ }
+ return inventoryWarningAnalyzePOS;
+ }
+
+
+ /**
+ * 新增库存预警分析
+ */
+ public Boolean insert(InventoryWarningAnalyzeDO inventoryWarningAnalyzeDO) {
+
+ return inventoryWarningAnalyzeDomainService.insert(inventoryWarningAnalyzeDO);
+ }
+
+ /**
+ * 修改库存预警分析
+ */
+ public Boolean update(InventoryWarningAnalyzeDO inventoryWarningAnalyzeDO) {
+ return inventoryWarningAnalyzeDomainService.update(inventoryWarningAnalyzeDO);
+ }
+
+ /**
+ * 批量删除库存预警分析
+ */
+ public boolean delete(Long[] inventoryWarningAnalyzeIds) {
+ return inventoryWarningAnalyzeDomainService.delete(inventoryWarningAnalyzeIds);
+ }
+
+ /**
+ * 获取库存预警分析详细信息
+ */
+ public InventoryWarningAnalyzePO getInfo(Long inventoryWarningAnalyzeId)
+ {
+ return inventoryWarningAnalyzeDomainService.getInfo(inventoryWarningAnalyzeId);
+ }
+
+
+
+ public void inventoryWarningTask() {
+ //查询所有的物料库存预警信息 未删除的
+ List materialInventoryWarningPOList = materialInventoryWarningDomainService.queryAllList();
+ List analyzeList = new ArrayList<>();
+ for (MaterialInventoryWarningPO materialInventoryWarningPO : materialInventoryWarningPOList) {
+ //根据 物料基础信息id、仓库id、库区id、库位id、一级组织表ID、货主ID 去物料库存表中查询物料信息
+ MaterialInventoryDO materialInventoryDO = new MaterialInventoryDO();
+ materialInventoryDO.setMaterialBaseInfoId(materialInventoryWarningPO.getMaterialBaseInfoId());
+ materialInventoryDO.setWarehouseId(materialInventoryWarningPO.getWarehouseId());
+ materialInventoryDO.setStorageSectionId(materialInventoryWarningPO.getStorageSectionId());
+ materialInventoryDO.setStorageLocationId(materialInventoryWarningPO.getStorageLocationId());
+ materialInventoryDO.setTopOrganizationId(materialInventoryWarningPO.getTopOrganizationId());
+ materialInventoryDO.setShipperId(materialInventoryWarningPO.getShipperId());
+ MaterialInventoryPO materialInventoryPO = materialInventoryDomainService.selectOneByWhere(materialInventoryDO);
+
+ if (ObjectUtil.isNull(materialInventoryPO)) {
+ //如果物料库存为null,则结束本次循环继续下次循环
+ continue;
+ }
+ //获取库位上限和下限
+ BigDecimal minTemperature = materialInventoryWarningPO.getMinTemperature();
+ BigDecimal maxTemperature = materialInventoryWarningPO.getMaxTemperature();
+ //物料信息的当前库存
+ BigDecimal inventoryQuantity = materialInventoryPO.getInventoryQuantity();
+ Integer warningAnalyzeType = 0;//预警类型
+ BigDecimal warningStandardQuantity = BigDecimal.ZERO;
+ if (inventoryQuantity.compareTo(minTemperature) < 0) {//库存不足
+ warningAnalyzeType = 1;
+ warningStandardQuantity = minTemperature;
+ }
+
+ if (inventoryQuantity.compareTo(maxTemperature) > 0) {//库存超限
+ warningAnalyzeType = 2;
+ warningStandardQuantity = maxTemperature;
+ }
+ //如果预警类型不等于0增加库存预警分析表记录
+ if (warningAnalyzeType != 0) {
+ InventoryWarningAnalyze warningAnalyze = new InventoryWarningAnalyze();
+ warningAnalyze.setOrganizationId(materialInventoryPO.getOrganizationId());
+ warningAnalyze.setOrganizationName(materialInventoryPO.getOrganizationName());
+ warningAnalyze.setTopOrganizationId(materialInventoryPO.getTopOrganizationId());
+ warningAnalyze.setMaterialBaseInfoId(materialInventoryPO.getMaterialBaseInfoId());
+ //查询物料信息
+ MaterialBaseInfoPO materialBaseInfoPo = materialBaseInfoDomainService.selectOneByID(materialInventoryPO.getMaterialBaseInfoId());
+ if (ObjectUtil.isNotNull(materialBaseInfoPo)) {
+ warningAnalyze.setMaterialName(materialBaseInfoPo.getMaterialName());
+ warningAnalyze.setMaterialCode(materialBaseInfoPo.getMaterialCode());
+ warningAnalyze.setPackId(materialBaseInfoPo.getPackId());
+ warningAnalyze.setPackCode(materialBaseInfoPo.getPackCode());
+ warningAnalyze.setPackName(materialBaseInfoPo.getPackName());
+ warningAnalyze.setShipperId(materialBaseInfoPo.getShipperId());
+ warningAnalyze.setShipperName(materialBaseInfoPo.getShipperName());
+ warningAnalyze.setShipperCode(materialBaseInfoPo.getShipperCode());
+ warningAnalyze.setBarCode(materialBaseInfoPo.getBarCode());
+ warningAnalyze.setUnitQuantity(materialBaseInfoPo.getUnitNumber());//单位数量
+ }
+ warningAnalyze.setWarehouseId(materialInventoryPO.getWarehouseId());
+ warningAnalyze.setWarehouseCode(materialInventoryPO.getWarehouseCode());
+ warningAnalyze.setWarehouseName(materialInventoryPO.getWarehouseName());
+ warningAnalyze.setStorageSectionId(materialInventoryPO.getStorageSectionId());
+ warningAnalyze.setStorageCode(materialInventoryPO.getStorageCode());
+ warningAnalyze.setStorageName(materialInventoryPO.getStorageName());
+ warningAnalyze.setStorageLocationId(materialInventoryPO.getStorageLocationId());
+ warningAnalyze.setStorageLocationCode(materialInventoryPO.getStorageLocationCode());
+ warningAnalyze.setStorageLocationName(materialInventoryPO.getStorageLocationName());
+ warningAnalyze.setPackDetailId(materialInventoryWarningPO.getPackDetailId());
+ warningAnalyze.setUnitCode(materialInventoryWarningPO.getUnitCode());
+ warningAnalyze.setUnitName(materialInventoryWarningPO.getName());
+ warningAnalyze.setInventoryQuantity(materialInventoryPO.getInventoryQuantity());
+ warningAnalyze.setWarningAnalyzeNumber(OrderSequence.getOrderCode("YJ"));//预警单号
+ warningAnalyze.setWarningAnalyzeType(warningAnalyzeType);
+ warningAnalyze.setWarningStandardQuantity(warningStandardQuantity);//库存标准预警数
+ warningAnalyze.setWarningTime(new Date());
+ warningAnalyze.setRemark("");
+ warningAnalyze.setCreateTime(new Date());
+ warningAnalyze.setUpdateTime(new Date());
+ warningAnalyze.setDelFlag(1);
+
+ analyzeList.add(warningAnalyze);
+ }
+ }
+
+ inventoryWarningAnalyzeDomainService.batchInsert(analyzeList);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java
new file mode 100644
index 000000000..16c4b9847
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java
@@ -0,0 +1,237 @@
+package com.mhd.wms.application.service.investigationManage;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.WarehouseFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.investigationManage.repository.po.InvestigationManagePO;
+import com.mhd.wms.domain.investigationManage.repository.todo.InvestigationManageDO;
+import com.mhd.wms.domain.investigationManage.service.InvestigationManageDomainService;
+import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
+import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
+import com.mhd.wms.domain.investigetionManageDetail.service.InvestigetionManageDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 盘点管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-10
+ */
+@Service
+@Slf4j
+public class InvestigationManageApplicationService {
+ @Autowired
+ private InvestigationManageDomainService investigationManageDomainService;
+ @Autowired
+ private InvestigetionManageDetailDomainService investigetionManageDetailDomainService;
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询盘点管理列表
+ */
+
+ public List queryList(InvestigationManageDO investigationManageDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null) {
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1) {
+ investigationManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ investigationManageDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return investigationManageDomainService.queryList(investigationManageDO);
+ }
+
+
+ /**
+ * 新增盘点管理
+ */
+ public Boolean insert(InvestigationManageDO investigationManageDO) {
+ //封装仓库信息
+ warehouseParam(investigationManageDO);
+ return investigationManageDomainService.insert(investigationManageDO);
+ }
+
+ /**
+ * 修改盘点管理
+ */
+ public Boolean update(InvestigationManageDO investigationManageDO) {
+ //封装仓库信息
+ warehouseParam(investigationManageDO);
+ return investigationManageDomainService.update(investigationManageDO);
+ }
+
+ /**
+ * 批量删除盘点管理
+ */
+ public boolean delete(Long[] investigationManageIds) {
+ return investigationManageDomainService.delete(investigationManageIds);
+ }
+
+ /**
+ * 获取盘点管理详细信息
+ */
+ public InvestigationManagePO getInfo(Long investigationManageId) {
+ return investigationManageDomainService.getInfo(investigationManageId);
+ }
+
+ /**
+ * 审核
+ */
+ public Boolean auditState(InvestigationManageDO investigationManageDO){
+ return investigationManageDomainService.auditState(investigationManageDO);
+ }
+
+ public Boolean taskDistribution(InvestigationManageDO investigationManageDO){
+ //设置作业人员信息
+ operatorsParam(investigationManageDO);
+ return investigationManageDomainService.taskDistribution(investigationManageDO);
+ }
+
+ public Boolean investigationCount(InvestigationManageDO investigationManageDO){
+ return investigationManageDomainService.investigationCount(investigationManageDO);
+ }
+
+ /**
+ * 完成盘点
+ */
+ public Boolean finishInvestigation(Long investigationManageId){
+ return investigationManageDomainService.finishInvestigation(investigationManageId);
+ }
+
+
+ /**
+ * 按库位拣货 获取拣货作业单详细信息
+ */
+ public InvestigationManagePO getInfoByStorageLocation(Long investigationManageId)
+ {
+ return investigationManageDomainService.getInfoByStorageLocation(investigationManageId);
+ }
+
+ /**
+ *按物料拣货 获取拣货作业单详细信息
+ */
+ public InvestigationManagePO getInfoByMaterial(Long investigationManageId)
+ {
+ return investigationManageDomainService.getInfoByMaterial(investigationManageId);
+ }
+
+ /**
+ * @description 按物料分组 盘点
+ * @author ZhouGY
+ * @date 2024/7/20 15:07
+ * @param investigationManageDO
+ * @return InvestigationManagePO
+ */
+ public Boolean investigationPickingByMaterial(InvestigationManageDO investigationManageDO){
+ InvestigationManageDO assembleInvestigationManageDO = assembleParamByInvestigationManage(investigationManageDO);
+ return investigationManageDomainService.investigationPickingByMaterial(assembleInvestigationManageDO);
+ }
+
+ /**
+ * @description 盘点 装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param investigationManageDO
+ * @return Boolean
+ */
+ private InvestigationManageDO assembleParamByInvestigationManage(InvestigationManageDO investigationManageDO) {
+ InvestigationManagePO investigationManagePO = investigationManageDomainService.getInfo(investigationManageDO.getInvestigationManageId());
+ if (investigationManagePO == null){
+ throw new ServiceException("盘点单不存在");
+ }
+ if (investigationManagePO.getInvestigationStatus() > 3) {
+ throw new ServiceException("盘点单已盘点完成");
+ }
+ InvestigationManageDO returnInvestigationManageDO = new InvestigationManageDO();
+ returnInvestigationManageDO.setUpdateTime(investigationManageDO.getUpdateTime());
+ returnInvestigationManageDO.setInvestigationManageId(investigationManagePO.getInvestigationManageId());
+ returnInvestigationManageDO.setOrganizationId(investigationManagePO.getOrganizationId());
+ returnInvestigationManageDO.setOrganizationName(investigationManagePO.getOrganizationName());
+ returnInvestigationManageDO.setTopOrganizationId(investigationManagePO.getTopOrganizationId());
+ returnInvestigationManageDO.setInvestigationNumber(investigationManagePO.getInvestigationNumber());
+ InvestigetionManageDetailDO investigetionManageDetailDOByQuery = new InvestigetionManageDetailDO();
+ investigetionManageDetailDOByQuery.setInvestigationNumber(investigationManagePO.getInvestigationNumber());
+ List investigetionManageDetailPODbList = investigetionManageDetailDomainService.queryList(investigetionManageDetailDOByQuery);
+ Map taskPickingMaterialDetailDbMap = investigetionManageDetailPODbList.stream().collect(Collectors.toMap(InvestigetionManageDetailPO::getInvestigationManageDetailId, Function.identity()));
+ List returnInvestigetionManageDetailDOList = new ArrayList<>();
+ for (InvestigetionManageDetailDO investigetionManageDetailDO : investigationManageDO.getInvestigetionManageDetailList()){
+ //设置物料更多属性信息
+ InvestigetionManageDetailPO investigetionManageDetailPO = taskPickingMaterialDetailDbMap.get(investigetionManageDetailDO.getInvestigationManageDetailId());
+ if (investigetionManageDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (ObjectUtil.isNull(investigetionManageDetailDO.getInvestigationQuantity()) || investigetionManageDetailDO.getInvestigationQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进盘点直接跳过
+ continue;
+ }
+ InvestigetionManageDetailDO returnInvestigetionManageDetailDO = new InvestigetionManageDetailDO();
+ BeanUtils.copyProperties(investigetionManageDetailPO, returnInvestigetionManageDetailDO);
+ returnInvestigetionManageDetailDO.setInvestigationQuantity(investigetionManageDetailDO.getInvestigationQuantity());
+ returnInvestigetionManageDetailDOList.add(returnInvestigetionManageDetailDO);
+ }
+ returnInvestigationManageDO.setInvestigetionManageDetailList(returnInvestigetionManageDetailDOList);
+ return returnInvestigationManageDO;
+ }
+
+
+
+ /**
+ * @description 封装作业人员信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param investigationManageDO
+ */
+ private void operatorsParam(InvestigationManageDO investigationManageDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(investigationManageDO.getOperatorsBy());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取作业人员信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ investigationManageDO.setOperatorsName(userPo.getUserName());
+ }
+
+ /**
+ * @description 封装仓库信息
+ * @author ZhouGY
+ * @date 2024/5/10 20:28
+ * @param investigationManageDO
+ */
+ private void warehouseParam(InvestigationManageDO investigationManageDO){
+ if (ObjectUtil.isNull(investigationManageDO.getWarehouseId())){
+ throw new ServiceException("仓库信息不能为空");
+ }
+ AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(investigationManageDO.getWarehouseId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取仓库信息失败");
+ }
+ WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
+ investigationManageDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
+ investigationManageDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/investigetionManageDetail/InvestigetionManageDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/investigetionManageDetail/InvestigetionManageDetailApplicationService.java
new file mode 100644
index 000000000..b614dc095
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/investigetionManageDetail/InvestigetionManageDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.investigetionManageDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
+import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
+import com.mhd.wms.domain.investigetionManageDetail.service.InvestigetionManageDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 盘点详情管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-10
+ */
+@Service
+@Slf4j
+public class InvestigetionManageDetailApplicationService {
+ @Autowired
+ private InvestigetionManageDetailDomainService investigetionManageDetailDomainService;
+
+
+ /**
+ * 分页查询盘点详情管理列表
+ */
+
+ public List queryList(InvestigetionManageDetailDO investigetionManageDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ investigetionManageDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return investigetionManageDetailDomainService.queryList(investigetionManageDetailDO);
+ }
+
+
+ /**
+ * 新增盘点详情管理
+ */
+ public Boolean insert(InvestigetionManageDetailDO investigetionManageDetailDO) {
+
+ return investigetionManageDetailDomainService.insert(investigetionManageDetailDO);
+ }
+
+ /**
+ * 修改盘点详情管理
+ */
+ public Boolean update(InvestigetionManageDetailDO investigetionManageDetailDO) {
+ return investigetionManageDetailDomainService.update(investigetionManageDetailDO);
+ }
+
+ /**
+ * 批量删除盘点详情管理
+ */
+ public boolean delete(Long[] investigationManageDetailIds) {
+ return investigetionManageDetailDomainService.delete(investigationManageDetailIds);
+ }
+
+ /**
+ * 获取盘点详情管理详细信息
+ */
+ public InvestigetionManageDetailPO getInfo(Long investigationManageDetailId)
+ {
+ return investigetionManageDetailDomainService.getInfo(investigationManageDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBarCode/MaterialBarCodeApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBarCode/MaterialBarCodeApplicationService.java
new file mode 100644
index 000000000..93879fc4d
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBarCode/MaterialBarCodeApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.materialBarCode;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialBarCode.repository.po.MaterialBarCodePO;
+import com.mhd.wms.domain.materialBarCode.repository.todo.MaterialBarCodeDO;
+import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料条码信息ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class MaterialBarCodeApplicationService {
+ @Autowired
+ private MaterialBarCodeDomainService materialBarCodeDomainService;
+
+
+ /**
+ * 分页查询物料条码信息列表
+ */
+
+ public List queryList(MaterialBarCodeDO materialBarCodeDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialBarCodeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialBarCodeDomainService.queryList(materialBarCodeDO);
+ }
+
+
+ /**
+ * 新增物料条码信息
+ */
+ public Boolean insert(MaterialBarCodeDO materialBarCodeDO) {
+
+ return materialBarCodeDomainService.insert(materialBarCodeDO);
+ }
+
+ /**
+ * 修改物料条码信息
+ */
+ public Boolean update(MaterialBarCodeDO materialBarCodeDO) {
+ return materialBarCodeDomainService.update(materialBarCodeDO);
+ }
+
+ /**
+ * 批量删除物料条码信息
+ */
+ public boolean delete(Long[] materialBarCodeIds) {
+ return materialBarCodeDomainService.delete(materialBarCodeIds);
+ }
+
+ /**
+ * 获取物料条码信息详细信息
+ */
+ public MaterialBarCodePO getInfo(Long materialBarCodeId)
+ {
+ return materialBarCodeDomainService.getInfo(materialBarCodeId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java
new file mode 100644
index 000000000..37aac16d1
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java
@@ -0,0 +1,135 @@
+package com.mhd.wms.application.service.materialBaseInfo;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService;
+import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
+import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO;
+import com.mhd.wms.domain.materialBaseInfo.service.MaterialBaseInfoDomainService;
+import com.mhd.wms.domain.materialCommon.repository.todo.MaterialCommonDO;
+import com.mhd.wms.domain.materialCommon.service.MaterialCommonDomainService;
+import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO;
+import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
+import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
+import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO;
+import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 物料基础信息ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class MaterialBaseInfoApplicationService {
+ @Autowired
+ private MaterialBaseInfoDomainService materialBaseInfoDomainService;
+ @Autowired
+ private MaterialGoodsRuleDomainService materialGoodsRuleDomainService;
+ @Autowired
+ private MaterialCommonDomainService materialCommonDomainService;
+ @Autowired
+ private MaterialWarehouseControlDomainService materialWarehouseControlDomainService;
+ @Autowired
+ private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
+ @Autowired
+ private MaterialBarCodeDomainService materialBarCodeDomainService;
+
+
+ /**
+ * 分页查询物料基础信息列表
+ */
+
+ public List queryList(MaterialBaseInfoDO materialBaseInfoDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialBaseInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialBaseInfoDomainService.queryList(materialBaseInfoDO);
+ }
+
+
+ /**
+ * 新增物料基础信息
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insert(MaterialBaseInfoDO materialBaseInfoDO) {
+ Long materialBaseInfoId = materialBaseInfoDomainService.insert(materialBaseInfoDO);
+ materialBaseInfoDO.setMaterialBaseInfoId(materialBaseInfoId);
+ //商品规则
+ MaterialGoodsRuleDO materialGoodsRuleDO = materialBaseInfoDO.getMaterialGoodsRule();
+ materialGoodsRuleDO.setMaterialBaseInfoId(materialBaseInfoId);
+ materialGoodsRuleDomainService.insert(materialGoodsRuleDO);
+ //公共信息
+ MaterialCommonDO materialCommonDO = materialBaseInfoDO.getMaterialCommon();
+ materialCommonDO.setMaterialBaseInfoId(materialBaseInfoId);
+ materialCommonDomainService.insert(materialCommonDO);
+ //仓库控制信息
+ MaterialWarehouseControlDO materialWarehouseControlDO = materialBaseInfoDO.getMaterialWarehouseControl();
+ materialWarehouseControlDO.setMaterialBaseInfoId(materialBaseInfoId);
+ materialWarehouseControlDomainService.insert(materialWarehouseControlDO);
+ //库存预警
+ materialInventoryWarningDomainService.batchInsertOrUpdate(materialBaseInfoDO);
+ //条码信息
+ materialBarCodeDomainService.batchInsertOrUpdate(materialBaseInfoDO);
+ return true;
+ }
+
+ /**
+ * 修改物料基础信息
+ */
+ public Boolean update(MaterialBaseInfoDO materialBaseInfoDO) {
+ materialBaseInfoDomainService.update(materialBaseInfoDO);
+ //商品规则
+ MaterialGoodsRuleDO materialGoodsRuleDO = materialBaseInfoDO.getMaterialGoodsRule();
+ materialGoodsRuleDomainService.update(materialGoodsRuleDO);
+ //公共信息
+ MaterialCommonDO materialCommonDO = materialBaseInfoDO.getMaterialCommon();
+ materialCommonDomainService.update(materialCommonDO);
+ //仓库控制信息
+ MaterialWarehouseControlDO materialWarehouseControlDO = materialBaseInfoDO.getMaterialWarehouseControl();
+ materialWarehouseControlDomainService.update(materialWarehouseControlDO);
+ //库存预警
+ materialInventoryWarningDomainService.batchInsertOrUpdate(materialBaseInfoDO);
+ //条码信息
+ materialBarCodeDomainService.batchInsertOrUpdate(materialBaseInfoDO);
+ return true;
+ }
+
+ /**
+ * 批量删除物料基础信息
+ */
+ public boolean delete(Long[] materialBaseInfoIds) {
+ return materialBaseInfoDomainService.delete(materialBaseInfoIds);
+ }
+
+ /**
+ * 获取物料基础信息详细信息
+ */
+ public MaterialBaseInfoPO getInfo(Long materialBaseInfoId)
+ {
+ return materialBaseInfoDomainService.getInfo(materialBaseInfoId);
+ }
+
+ /**
+ * @description 无单收货单 根据物料信息获取明细
+ * @author ZhouGY
+ * @date 2024/7/16 22:18
+ * @param materialBaseInfoDO
+ * @return MaterialBaseInfoPO
+ */
+ public MaterialBaseInfoPO getInfoByNoOrderReceipt(MaterialBaseInfoDO materialBaseInfoDO){
+ return materialBaseInfoDomainService.getInfoByNoOrderReceipt(materialBaseInfoDO);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialCommon/MaterialCommonApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialCommon/MaterialCommonApplicationService.java
new file mode 100644
index 000000000..db45d91da
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialCommon/MaterialCommonApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.materialCommon;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialCommon.repository.po.MaterialCommonPO;
+import com.mhd.wms.domain.materialCommon.repository.todo.MaterialCommonDO;
+import com.mhd.wms.domain.materialCommon.service.MaterialCommonDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料公共信息ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class MaterialCommonApplicationService {
+ @Autowired
+ private MaterialCommonDomainService materialCommonDomainService;
+
+
+ /**
+ * 分页查询物料公共信息列表
+ */
+
+ public List queryList(MaterialCommonDO materialCommonDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialCommonDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialCommonDomainService.queryList(materialCommonDO);
+ }
+
+
+ /**
+ * 新增物料公共信息
+ */
+ public Boolean insert(MaterialCommonDO materialCommonDO) {
+
+ return materialCommonDomainService.insert(materialCommonDO);
+ }
+
+ /**
+ * 修改物料公共信息
+ */
+ public Boolean update(MaterialCommonDO materialCommonDO) {
+ return materialCommonDomainService.update(materialCommonDO);
+ }
+
+ /**
+ * 批量删除物料公共信息
+ */
+ public boolean delete(Long[] materialCommonIds) {
+ return materialCommonDomainService.delete(materialCommonIds);
+ }
+
+ /**
+ * 获取物料公共信息详细信息
+ */
+ public MaterialCommonPO getInfo(Long materialCommonId)
+ {
+ return materialCommonDomainService.getInfo(materialCommonId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialGoodsRule/MaterialGoodsRuleApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialGoodsRule/MaterialGoodsRuleApplicationService.java
new file mode 100644
index 000000000..9cad4cdc7
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialGoodsRule/MaterialGoodsRuleApplicationService.java
@@ -0,0 +1,81 @@
+package com.mhd.wms.application.service.materialGoodsRule;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
+import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO;
+import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料商品规则ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class MaterialGoodsRuleApplicationService {
+ @Autowired
+ private MaterialGoodsRuleDomainService materialGoodsRuleDomainService;
+
+
+ /**
+ * 分页查询物料商品规则列表
+ */
+
+ public List queryList(MaterialGoodsRuleDO materialGoodsRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialGoodsRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialGoodsRuleDomainService.queryList(materialGoodsRuleDO);
+ }
+
+
+ /**
+ * 新增物料商品规则
+ */
+ public Boolean insert(MaterialGoodsRuleDO materialGoodsRuleDO) {
+
+ return materialGoodsRuleDomainService.insert(materialGoodsRuleDO);
+ }
+
+ /**
+ * 修改物料商品规则
+ */
+ public Boolean update(MaterialGoodsRuleDO materialGoodsRuleDO) {
+ return materialGoodsRuleDomainService.update(materialGoodsRuleDO);
+ }
+
+ /**
+ * 批量删除物料商品规则
+ */
+ public boolean delete(Long[] materialGoodsRuleIds) {
+ return materialGoodsRuleDomainService.delete(materialGoodsRuleIds);
+ }
+
+ /**
+ * 获取物料商品规则详细信息
+ */
+ public MaterialGoodsRulePO getInfo(Long materialGoodsRuleId)
+ {
+ return materialGoodsRuleDomainService.getInfo(materialGoodsRuleId);
+ }
+
+ /**
+ * 根据 物料基础信息id 获取物料商品规则详细信息
+ */
+ public MaterialGoodsRulePO getInfoByMaterialBaseInfoIds(Long materialBaseInfoId)
+ {
+ return materialGoodsRuleDomainService.getInfoByMaterialBaseInfoIds(materialBaseInfoId);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java
new file mode 100644
index 000000000..44d7ca251
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java
@@ -0,0 +1,126 @@
+package com.mhd.wms.application.service.materialInventory;
+
+import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
+import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryQueryListPO;
+import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO;
+import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryQueryListDO;
+import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 物料库存ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-29
+ */
+@Service
+@Slf4j
+public class MaterialInventoryApplicationService {
+ @Autowired
+ private MaterialInventoryDomainService materialInventoryDomainService;
+
+
+ /**
+ * 分页查询物料库存列表
+ */
+
+ public List queryList(MaterialInventoryDO materialInventoryDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialInventoryDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ materialInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return materialInventoryDomainService.queryList(materialInventoryDO);
+ }
+
+ public BigDecimal sumInventoryQuantity(MaterialInventoryDO materialInventoryDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialInventoryDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ materialInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ List materialInventoryPOS = materialInventoryDomainService.queryList(materialInventoryDO);
+ if (CollectionUtils.isNotEmpty(materialInventoryPOS)){
+ return materialInventoryPOS.stream().map(MaterialInventoryPO::getAllocationQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+ return BigDecimal.ZERO;
+ }
+
+ /**
+ * 新增物料库存
+ */
+ public Boolean insert(MaterialInventoryDO materialInventoryDO) {
+
+ return materialInventoryDomainService.insert(materialInventoryDO);
+ }
+
+ /**
+ * 修改物料库存
+ */
+ public Boolean update(MaterialInventoryDO materialInventoryDO) {
+ return materialInventoryDomainService.update(materialInventoryDO);
+ }
+
+ /**
+ * 批量删除物料库存
+ */
+ public boolean delete(Long[] materialInventoryIds) {
+ return materialInventoryDomainService.delete(materialInventoryIds);
+ }
+
+ /**
+ * 获取物料库存详细信息
+ */
+ public MaterialInventoryPO getInfo(Long materialInventoryId)
+ {
+ return materialInventoryDomainService.getInfo(materialInventoryId);
+ }
+
+ /**
+ * @description 根据库位Id和物料基础信息Id 获取物料库存详细信息
+ * @author ZhouGY
+ * @date 2024/5/29 17:15
+ * @param storageLocationId
+ * @param materialBaseInfoId
+ * @return BigDecimal
+ */
+ public BigDecimal getInventoryByStorageLocationIdAndMaterialBaseInfoId(Long storageLocationId, Long materialBaseInfoId) {
+ return materialInventoryDomainService.getInventoryByStorageLocationIdAndMaterialBaseInfoId(storageLocationId, materialBaseInfoId);
+ }
+
+ /**
+ * @description:库存查询列表
+ * @param materialInventoryQueryListDO
+ * @return: java.util.List
+ * @author: lianzj
+ * @time: 2024-07-16 14:43:38
+ */
+ public List materialQueryList(MaterialInventoryQueryListDO materialInventoryQueryListDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialInventoryQueryListDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialInventoryDomainService.materialQueryList(materialInventoryQueryListDO);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventoryWarning/MaterialInventoryWarningApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventoryWarning/MaterialInventoryWarningApplicationService.java
new file mode 100644
index 000000000..4a91423fa
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventoryWarning/MaterialInventoryWarningApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.materialInventoryWarning;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialInventoryWarning.repository.po.MaterialInventoryWarningPO;
+import com.mhd.wms.domain.materialInventoryWarning.repository.todo.MaterialInventoryWarningDO;
+import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料库存预警ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class MaterialInventoryWarningApplicationService {
+ @Autowired
+ private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
+
+
+ /**
+ * 分页查询物料库存预警列表
+ */
+
+ public List queryList(MaterialInventoryWarningDO materialInventoryWarningDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialInventoryWarningDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialInventoryWarningDomainService.queryList(materialInventoryWarningDO);
+ }
+
+
+ /**
+ * 新增物料库存预警
+ */
+ public Boolean insert(MaterialInventoryWarningDO materialInventoryWarningDO) {
+
+ return materialInventoryWarningDomainService.insert(materialInventoryWarningDO);
+ }
+
+ /**
+ * 修改物料库存预警
+ */
+ public Boolean update(MaterialInventoryWarningDO materialInventoryWarningDO) {
+ return materialInventoryWarningDomainService.update(materialInventoryWarningDO);
+ }
+
+ /**
+ * 批量删除物料库存预警
+ */
+ public boolean delete(Long[] materialInventoryWarningIds) {
+ return materialInventoryWarningDomainService.delete(materialInventoryWarningIds);
+ }
+
+ /**
+ * 获取物料库存预警详细信息
+ */
+ public MaterialInventoryWarningPO getInfo(Long materialInventoryWarningId)
+ {
+ return materialInventoryWarningDomainService.getInfo(materialInventoryWarningId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialMoreDetail/MaterialMoreDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialMoreDetail/MaterialMoreDetailApplicationService.java
new file mode 100644
index 000000000..ece095aac
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialMoreDetail/MaterialMoreDetailApplicationService.java
@@ -0,0 +1,73 @@
+package com.mhd.wms.application.service.materialMoreDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO;
+import com.mhd.wms.domain.materialMoreDetail.repository.todo.MaterialMoreDetailDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料更多属性明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class MaterialMoreDetailApplicationService {
+ @Autowired
+ private com.mhd.wms.domain.materialMoreDetail.service.MaterialMoreDetailDomainService MaterialMoreDetailDomainService;
+
+
+ /**
+ * 分页查询物料更多属性明细列表
+ */
+
+ public List queryList(MaterialMoreDetailDO materialMoreDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialMoreDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return MaterialMoreDetailDomainService.queryList(materialMoreDetailDO);
+ }
+
+
+ /**
+ * 新增物料更多属性明细
+ */
+ public Boolean insert(MaterialMoreDetailDO materialMoreDetailDO) {
+
+ return MaterialMoreDetailDomainService.insert(materialMoreDetailDO);
+ }
+
+ /**
+ * 修改物料更多属性明细
+ */
+ public Boolean update(MaterialMoreDetailDO materialMoreDetailDO) {
+ return MaterialMoreDetailDomainService.update(materialMoreDetailDO);
+ }
+
+ /**
+ * 批量删除物料更多属性明细
+ */
+ public boolean delete(Long[] materialMoreDetailIds) {
+ return MaterialMoreDetailDomainService.delete(materialMoreDetailIds);
+ }
+
+ /**
+ * 获取物料更多属性明细详细信息
+ */
+ public MaterialMoreDetailPO getInfo(Long materialMoreDetailId)
+ {
+ return MaterialMoreDetailDomainService.getInfo(materialMoreDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialWarehouseControl/MaterialWarehouseControlApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialWarehouseControl/MaterialWarehouseControlApplicationService.java
new file mode 100644
index 000000000..3956fbf93
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialWarehouseControl/MaterialWarehouseControlApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.materialWarehouseControl;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialWarehouseControl.repository.po.MaterialWarehouseControlPO;
+import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO;
+import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 仓库控制信息ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class MaterialWarehouseControlApplicationService {
+ @Autowired
+ private MaterialWarehouseControlDomainService materialWarehouseControlDomainService;
+
+
+ /**
+ * 分页查询仓库控制信息列表
+ */
+
+ public List queryList(MaterialWarehouseControlDO materialWarehouseControlDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ materialWarehouseControlDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return materialWarehouseControlDomainService.queryList(materialWarehouseControlDO);
+ }
+
+
+ /**
+ * 新增仓库控制信息
+ */
+ public Boolean insert(MaterialWarehouseControlDO materialWarehouseControlDO) {
+
+ return materialWarehouseControlDomainService.insert(materialWarehouseControlDO);
+ }
+
+ /**
+ * 修改仓库控制信息
+ */
+ public Boolean update(MaterialWarehouseControlDO materialWarehouseControlDO) {
+ return materialWarehouseControlDomainService.update(materialWarehouseControlDO);
+ }
+
+ /**
+ * 批量删除仓库控制信息
+ */
+ public boolean delete(Long[] materialWarehouseControlIds) {
+ return materialWarehouseControlDomainService.delete(materialWarehouseControlIds);
+ }
+
+ /**
+ * 获取仓库控制信息详细信息
+ */
+ public MaterialWarehouseControlPO getInfo(Long materialWarehouseControlId)
+ {
+ return materialWarehouseControlDomainService.getInfo(materialWarehouseControlId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManage/MobilizeManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManage/MobilizeManageApplicationService.java
new file mode 100644
index 000000000..2b20afe8a
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManage/MobilizeManageApplicationService.java
@@ -0,0 +1,85 @@
+package com.mhd.wms.application.service.mobilizeManage;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.mobilizeManage.repository.po.MobilizeManagePO;
+import com.mhd.wms.domain.mobilizeManage.repository.todo.MobilizeManageDO;
+import com.mhd.wms.domain.mobilizeManage.service.MobilizeManageDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 调拨管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-08
+ */
+@Service
+@Slf4j
+public class MobilizeManageApplicationService {
+ @Autowired
+ private MobilizeManageDomainService mobilizeManageDomainService;
+
+
+ /**
+ * 分页查询调拨管理列表
+ */
+
+ public List queryList(MobilizeManageDO mobilizeManageDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ mobilizeManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ mobilizeManageDO.setOutWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return mobilizeManageDomainService.queryList(mobilizeManageDO);
+ }
+
+
+ /**
+ * 新增调拨管理
+ */
+ public Boolean insert(MobilizeManageDO mobilizeManageDO) {
+
+ return mobilizeManageDomainService.insert(mobilizeManageDO);
+ }
+
+ /**
+ * 修改调拨管理
+ */
+ public Boolean update(MobilizeManageDO mobilizeManageDO) throws Exception{
+ return mobilizeManageDomainService.update(mobilizeManageDO);
+ }
+
+ /**
+ * 批量删除调拨管理
+ */
+ public boolean delete(Long[] mobilizeManageIds) {
+ return mobilizeManageDomainService.delete(mobilizeManageIds);
+ }
+
+ /**
+ * 获取调拨管理详细信息
+ */
+ public MobilizeManagePO getInfo(Long mobilizeManageId)
+ {
+ return mobilizeManageDomainService.getInfo(mobilizeManageId);
+ }
+
+ /**
+ * 审核调拨单
+ */
+ public Boolean auditMobilizeManage(MobilizeManageDO mobilizeManageDO)
+ {
+ return mobilizeManageDomainService.auditMobilizeManage(mobilizeManageDO);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManageDetail/MobilizeManageDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManageDetail/MobilizeManageDetailApplicationService.java
new file mode 100644
index 000000000..bb81cf97b
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/mobilizeManageDetail/MobilizeManageDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.mobilizeManageDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.mobilizeManageDetail.repository.po.MobilizeManageDetailPO;
+import com.mhd.wms.domain.mobilizeManageDetail.repository.todo.MobilizeManageDetailDO;
+import com.mhd.wms.domain.mobilizeManageDetail.service.MobilizeManageDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 调拨管理详情ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-08
+ */
+@Service
+@Slf4j
+public class MobilizeManageDetailApplicationService {
+ @Autowired
+ private MobilizeManageDetailDomainService mobilizeManageDetailDomainService;
+
+
+ /**
+ * 分页查询调拨管理详情列表
+ */
+
+ public List queryList(MobilizeManageDetailDO mobilizeManageDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ mobilizeManageDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return mobilizeManageDetailDomainService.queryList(mobilizeManageDetailDO);
+ }
+
+
+ /**
+ * 新增调拨管理详情
+ */
+ public Boolean insert(MobilizeManageDetailDO mobilizeManageDetailDO) {
+
+ return mobilizeManageDetailDomainService.insert(mobilizeManageDetailDO);
+ }
+
+ /**
+ * 修改调拨管理详情
+ */
+ public Boolean update(MobilizeManageDetailDO mobilizeManageDetailDO) {
+ return mobilizeManageDetailDomainService.update(mobilizeManageDetailDO);
+ }
+
+ /**
+ * 批量删除调拨管理详情
+ */
+ public boolean delete(Long[] mobilizeMaterialDetails) {
+ return mobilizeManageDetailDomainService.delete(mobilizeMaterialDetails);
+ }
+
+ /**
+ * 获取调拨管理详情详细信息
+ */
+ public MobilizeManageDetailPO getInfo(Long mobilizeMaterialDetail)
+ {
+ return mobilizeManageDetailDomainService.getInfo(mobilizeMaterialDetail);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/noticeMaterialDetail/NoticeMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/noticeMaterialDetail/NoticeMaterialDetailApplicationService.java
new file mode 100644
index 000000000..6a9dadc3f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/noticeMaterialDetail/NoticeMaterialDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.noticeMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.noticeMaterialDetail.repository.po.NoticeMaterialDetailPO;
+import com.mhd.wms.domain.noticeMaterialDetail.repository.todo.NoticeMaterialDetailDO;
+import com.mhd.wms.domain.noticeMaterialDetail.service.NoticeMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-17
+ */
+@Service
+@Slf4j
+public class NoticeMaterialDetailApplicationService {
+ @Autowired
+ private NoticeMaterialDetailDomainService noticeMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询物料明细列表
+ */
+
+ public List queryList(NoticeMaterialDetailDO noticeMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ noticeMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return noticeMaterialDetailDomainService.queryList(noticeMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增物料明细
+ */
+ public Boolean insert(NoticeMaterialDetailDO noticeMaterialDetailDO) {
+
+ return noticeMaterialDetailDomainService.insert(noticeMaterialDetailDO);
+ }
+
+ /**
+ * 修改物料明细
+ */
+ public Boolean update(NoticeMaterialDetailDO noticeMaterialDetailDO) {
+ return noticeMaterialDetailDomainService.update(noticeMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除物料明细
+ */
+ public boolean delete(Long[] noticeMaterialDetailIds) {
+ return noticeMaterialDetailDomainService.delete(noticeMaterialDetailIds);
+ }
+
+ /**
+ * 获取物料明细详细信息
+ */
+ public NoticeMaterialDetailPO getInfo(Long noticeMaterialDetailId)
+ {
+ return noticeMaterialDetailDomainService.getInfo(noticeMaterialDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/noticeOrder/NoticeOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/noticeOrder/NoticeOrderApplicationService.java
new file mode 100644
index 000000000..2096ab5da
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/noticeOrder/NoticeOrderApplicationService.java
@@ -0,0 +1,222 @@
+package com.mhd.wms.application.service.noticeOrder;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.SysDictData;
+import com.mhd.system.api.domain.WarehouseFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.noticeOrder.repository.po.NoticeOrderPO;
+import com.mhd.wms.domain.noticeOrder.repository.todo.NoticeOrderDO;
+import com.mhd.wms.domain.noticeOrder.service.NoticeOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 入库通知单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class NoticeOrderApplicationService {
+ @Autowired
+ private NoticeOrderDomainService noticeOrderDomainService;
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询入库通知单列表
+ */
+
+ public List queryList(NoticeOrderDO noticeOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ noticeOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ noticeOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return noticeOrderDomainService.queryList(noticeOrderDO);
+ }
+
+
+ /**
+ * 新增入库通知单
+ */
+ public Boolean insert(NoticeOrderDO noticeOrderDO) {
+ //设置仓库
+ setWarehouseInfo(noticeOrderDO);
+ //设置货主信息
+ shipperParam(noticeOrderDO);
+ //设置供应商信息
+ supplierParam(noticeOrderDO);
+ //设置数据字典键值
+ setDataDict(noticeOrderDO);
+ return noticeOrderDomainService.insert(noticeOrderDO);
+ }
+
+ /**
+ * 修改入库通知单
+ */
+ public Boolean update(NoticeOrderDO noticeOrderDO) {
+ return noticeOrderDomainService.update(noticeOrderDO);
+ }
+
+ /**
+ * 批量删除入库通知单
+ */
+ public boolean delete(Long[] noticeIds) {
+ return noticeOrderDomainService.delete(noticeIds);
+ }
+
+ /**
+ * 获取入库通知单详细信息
+ */
+ public NoticeOrderPO getInfo(Long noticeId)
+ {
+ return noticeOrderDomainService.getInfo(noticeId);
+ }
+
+ /**
+ * @description 作废入库通知单
+ * @author ZhouGY
+ * @date 2024/5/22 10:14
+ * @param noticeIds
+ * @return List
+ */
+ public Boolean nullifyByIds(Long[] noticeIds) {
+ return noticeOrderDomainService.nullifyByIds(noticeIds);
+ }
+
+
+ /**
+ * @description 生成入库单
+ * @author ZhouGY
+ * @date 2024/5/22 10:14
+ * @param noticeIds
+ * @return List
+ */
+ public Boolean generateStockInOrder(Long[] noticeIds) {
+ return noticeOrderDomainService.generateStockInOrder(noticeIds);
+ }
+
+ /**
+ * @description 生成出库单
+ * @author ZhouGY
+ * @date 2024/5/28 11:14
+ * @param noticeIds
+ * @return Boolean
+ */
+ public Boolean generateStockOutOrder(Long[] noticeIds) {
+ return noticeOrderDomainService.generateStockOutOrder(noticeIds);
+ }
+
+
+ /**
+ * @description 设置仓库信息
+ * @author ZhouGY
+ * @date 2024/4/7 10:01
+ * @param noticeOrderDO
+ */
+ private void setWarehouseInfo(NoticeOrderDO noticeOrderDO) {
+ AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(noticeOrderDO.getWarehouseId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取仓库信息失败");
+ }
+ WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
+ noticeOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
+ noticeOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
+ }
+
+ /**
+ * @description 封装货主信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param noticeOrderDO
+ */
+ private void shipperParam(NoticeOrderDO noticeOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(noticeOrderDO.getShipperId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取货主信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ noticeOrderDO.setShipperCode(userPo.getUserMemberCode());
+ noticeOrderDO.setShipperName(userPo.getUserName());
+ }
+
+ /**
+ * @description 封装供应商信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param noticeOrderDO
+ */
+ private void supplierParam(NoticeOrderDO noticeOrderDO){
+ if (ObjectUtil.isNotNull(noticeOrderDO.getSupplierId())){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(noticeOrderDO.getSupplierId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取供应商信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ noticeOrderDO.setSupplierName(userPo.getUserName());
+ }
+ }
+
+ /**
+ * @description 设置数据字典键值
+ * @author ZhouGY
+ * @date 2024/4/7 14:33
+ * @param noticeOrderDO
+ */
+ private void setDataDict(NoticeOrderDO noticeOrderDO){
+ if (noticeOrderDO.getType() == 1){
+ //翻译单据类型
+ AjaxResult documentTypeResult = systemServiceFeign.selectListByDictType(DictCode.DOCUMENT_TYPE.getCode());
+ if (!"200".equals(String.valueOf(documentTypeResult.get("code")))) {
+ throw new ServiceException("单据类型数据字典不存在");
+ }
+ List documentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(documentTypeResult.get("data")), SysDictData.class);
+
+ SysDictData documentTypeData = documentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), noticeOrderDO.getOrderTypeCode())).findAny().orElse(null);
+ if (null == documentTypeData) {
+ throw new ServiceException("单据类型【" + noticeOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
+ }
+ noticeOrderDO.setOrderTypeName(documentTypeData.getDictLabel());
+ }else {
+ //翻译单据类型
+ AjaxResult outDocumentTypeResult = systemServiceFeign.selectListByDictType(DictCode.OUT_DOCUMENT_TYPE.getCode());
+ if (!"200".equals(String.valueOf(outDocumentTypeResult.get("code")))) {
+ throw new ServiceException("单据类型数据字典不存在");
+ }
+ List outDocumentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(outDocumentTypeResult.get("data")), SysDictData.class);
+
+ SysDictData outDocumentTypeData = outDocumentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), noticeOrderDO.getOrderTypeCode())).findAny().orElse(null);
+ if (null == outDocumentTypeData) {
+ throw new ServiceException("单据类型【" + noticeOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
+ }
+ noticeOrderDO.setOrderTypeName(outDocumentTypeData.getDictLabel());
+ }
+
+
+
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberApplicationService.java
new file mode 100644
index 000000000..37bca6d6d
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/outMaterialDetailSerialNumber/OutMaterialDetailSerialNumberApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.outMaterialDetailSerialNumber;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.po.OutMaterialDetailSerialNumberPO;
+import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.todo.OutMaterialDetailSerialNumberDO;
+import com.mhd.wms.domain.outMaterialDetailSerialNumber.service.OutMaterialDetailSerialNumberDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 出库单物料明细序列号ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-03
+ */
+@Service
+@Slf4j
+public class OutMaterialDetailSerialNumberApplicationService {
+ @Autowired
+ private OutMaterialDetailSerialNumberDomainService outMaterialDetailSerialNumberDomainService;
+
+
+ /**
+ * 分页查询出库单物料明细序列号列表
+ */
+
+ public List queryList(OutMaterialDetailSerialNumberDO outMaterialDetailSerialNumberDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ outMaterialDetailSerialNumberDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return outMaterialDetailSerialNumberDomainService.queryList(outMaterialDetailSerialNumberDO);
+ }
+
+
+ /**
+ * 新增出库单物料明细序列号
+ */
+ public Boolean insert(OutMaterialDetailSerialNumberDO outMaterialDetailSerialNumberDO) {
+
+ return outMaterialDetailSerialNumberDomainService.insert(outMaterialDetailSerialNumberDO);
+ }
+
+ /**
+ * 修改出库单物料明细序列号
+ */
+ public Boolean update(OutMaterialDetailSerialNumberDO outMaterialDetailSerialNumberDO) {
+ return outMaterialDetailSerialNumberDomainService.update(outMaterialDetailSerialNumberDO);
+ }
+
+ /**
+ * 批量删除出库单物料明细序列号
+ */
+ public boolean delete(Long[] outMaterialDetailSerialNumberIds) {
+ return outMaterialDetailSerialNumberDomainService.delete(outMaterialDetailSerialNumberIds);
+ }
+
+ /**
+ * 获取出库单物料明细序列号详细信息
+ */
+ public OutMaterialDetailSerialNumberPO getInfo(Long outMaterialDetailSerialNumberId)
+ {
+ return outMaterialDetailSerialNumberDomainService.getInfo(outMaterialDetailSerialNumberId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java
new file mode 100644
index 000000000..fa7ea2f63
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.outOrderAbnormal;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.outOrderAbnormal.repository.po.OutOrderAbnormalPO;
+import com.mhd.wms.domain.outOrderAbnormal.repository.todo.OutOrderAbnormalDO;
+import com.mhd.wms.domain.outOrderAbnormal.service.OutOrderAbnormalDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 出库异常单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+@Slf4j
+public class OutOrderAbnormalApplicationService {
+ @Autowired
+ private OutOrderAbnormalDomainService outOrderAbnormalDomainService;
+
+
+ /**
+ * 分页查询出库异常单列表
+ */
+
+ public List queryList(OutOrderAbnormalDO outOrderAbnormalDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ outOrderAbnormalDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return outOrderAbnormalDomainService.queryList(outOrderAbnormalDO);
+ }
+
+
+ /**
+ * 新增出库异常单
+ */
+ public Boolean insert(OutOrderAbnormalDO outOrderAbnormalDO) {
+
+ return outOrderAbnormalDomainService.insert(outOrderAbnormalDO);
+ }
+
+ /**
+ * 修改出库异常单
+ */
+ public Boolean update(OutOrderAbnormalDO outOrderAbnormalDO) {
+ return outOrderAbnormalDomainService.update(outOrderAbnormalDO);
+ }
+
+ /**
+ * 批量删除出库异常单
+ */
+ public boolean delete(Long[] outOrderAbnormalIds) {
+ return outOrderAbnormalDomainService.delete(outOrderAbnormalIds);
+ }
+
+ /**
+ * 获取出库异常单详细信息
+ */
+ public OutOrderAbnormalPO getInfo(Long outOrderAbnormalId)
+ {
+ return outOrderAbnormalDomainService.getInfo(outOrderAbnormalId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/overStock/OverStockApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/overStock/OverStockApplicationService.java
new file mode 100644
index 000000000..377caec36
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/overStock/OverStockApplicationService.java
@@ -0,0 +1,170 @@
+package com.mhd.wms.application.service.overStock;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.overStock.repository.po.OverStockInOrderOutOrderListPO;
+import com.mhd.wms.domain.overStock.repository.po.OverStockPO;
+import com.mhd.wms.domain.overStock.repository.po.QueryOrderOverStockDetailPO;
+import com.mhd.wms.domain.overStock.repository.po.QueryOrderOverStockPO;
+import com.mhd.wms.domain.overStock.repository.todo.ExecuteOverStockDO;
+import com.mhd.wms.domain.overStock.repository.todo.OverStockDO;
+import com.mhd.wms.domain.overStock.repository.todo.QueryOrderOverStockDO;
+import com.mhd.wms.domain.overStock.service.OverStockDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 越库管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-23
+ */
+@Service
+@Slf4j
+public class OverStockApplicationService {
+ @Autowired
+ private OverStockDomainService overStockDomainService;
+
+
+ /**
+ * 分页查询越库管理列表
+ */
+
+ public List queryList(OverStockDO overStockDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ overStockDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return overStockDomainService.queryList(overStockDO);
+ }
+
+
+ /**
+ * 新增越库管理
+ */
+ public Boolean insert(OverStockDO overStockDO) {
+
+ return overStockDomainService.insert(overStockDO);
+ }
+
+ /**
+ * 修改越库管理
+ */
+ public Boolean update(OverStockDO overStockDO) {
+ return overStockDomainService.update(overStockDO);
+ }
+
+ /**
+ * 批量删除越库管理
+ */
+ public boolean delete(Long[] overStockIds) {
+ return overStockDomainService.delete(overStockIds);
+ }
+
+ /**
+ * 获取越库管理详细信息
+ */
+ public OverStockPO getInfo(Long overStockId)
+ {
+ return overStockDomainService.getInfo(overStockId);
+ }
+
+
+ /**
+ * @description:查询单据越库列表
+ * @param queryOrderOverStockDO
+ * @return: java.util.List
+ * @author: lianzj
+ * @time: 2024-07-23 17:25:53
+ */
+ public List getByInAndOutOrder(QueryOrderOverStockDO queryOrderOverStockDO) {
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(SecurityUtils.getLoginUser().getUserid());
+ queryOrderOverStockDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ return overStockDomainService.getByInAndOutOrder(queryOrderOverStockDO);
+ }
+
+ /**
+ * @description 获取越库单据详情
+ * @author ZhouGY
+ * @date 2024/7/25 18:03
+ * @param queryOrderOverStockDO
+ * @return QueryOrderOverStockDetailPO
+ */
+ public QueryOrderOverStockDetailPO getByOrderDetail(QueryOrderOverStockDO queryOrderOverStockDO){
+ return overStockDomainService.getByOrderDetail(queryOrderOverStockDO);
+ }
+
+ /**
+ * @description:查询越库管理入库出库详情列表
+ * @param overStockDO
+ * @return: com.mhd.wms.domain.overStock.repository.po.OverStockInOrderOutOrderListPO
+ * @author: lianzj
+ * @time: 2024-07-26 10:03:03
+ */
+ public OverStockInOrderOutOrderListPO overStockInOrderOutOrderDetailList(OverStockDO overStockDO) {
+ return overStockDomainService.overStockInOrderOutOrderDetailList(overStockDO);
+ }
+
+ /**
+ * @description:执行越库
+ * @param executeOverStockDO
+ * @return: java.lang.String
+ * @author: lianzj
+ * @time: 2024-07-26 15:09:14
+ */
+ public boolean executeOverStock(ExecuteOverStockDO executeOverStockDO) {
+ return overStockDomainService.executeOverStock(executeOverStockDO);
+ }
+
+ /**
+ * @description:取消越库标记(分拨)
+ * @param executeOverStockDO
+ * @return: java.lang.String
+ * @author: lianzj
+ * @time: 2024-07-26 15:55:59
+ */
+ public boolean cancelOverStock(ExecuteOverStockDO executeOverStockDO) {
+ return overStockDomainService.cancelOverStock(executeOverStockDO);
+ }
+
+ /**
+ * @description:取消越库任务(直接)
+ * @param overStockIds
+ * @return: boolean
+ * @author: lianzj
+ * @time: 2024-07-27 11:25:15
+ */
+ public boolean cancelOverStockDirectByIds(Long[] overStockIds) {
+ return overStockDomainService.cancelOverStockDirectByIds(overStockIds);
+ }
+
+ /**
+ * @description:取消越库标记(分拨)
+ * @param overStockIds
+ * @return: boolean
+ * @author: lianzj
+ * @time: 2024-07-27 15:33:40
+ */
+ public boolean cancelOverStockSignByIds(Long[] overStockIds) {
+ return overStockDomainService.cancelOverStockSignByIds(overStockIds);
+ }
+
+ /**
+ * @description:执行越库
+ * @param overStockIds
+ * @return: boolean
+ * @author: lianzj
+ * @time: 2024-07-27 15:37:03
+ */
+ public boolean executeOverStockByIds(Long[] overStockIds) {
+ return overStockDomainService.executeOverStockByIds(overStockIds);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java
new file mode 100644
index 000000000..46b85242b
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java
@@ -0,0 +1,250 @@
+package com.mhd.wms.application.service.pickingOrder;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.StorageLocationFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO;
+import com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDO;
+import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDomainService;
+import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO;
+import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO;
+import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 拣货单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+@Slf4j
+public class PickingOrderApplicationService {
+ @Autowired
+ private PickingOrderDomainService pickingOrderDomainService;
+ @Autowired
+ private PickingMaterialDetailDomainService pickingMaterialDetailDomainService;
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询拣货单列表
+ */
+
+ public List queryList(PickingOrderDO pickingOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ pickingOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ pickingOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return pickingOrderDomainService.queryList(pickingOrderDO);
+ }
+
+
+ /**
+ * 新增拣货单
+ */
+ public Boolean insert(PickingOrderDO pickingOrderDO) {
+
+ return pickingOrderDomainService.insert(pickingOrderDO);
+ }
+
+ /**
+ * 修改拣货单
+ */
+ public Boolean update(PickingOrderDO pickingOrderDO) {
+ return pickingOrderDomainService.update(pickingOrderDO);
+ }
+
+ /**
+ * 批量删除拣货单
+ */
+ public boolean delete(Long[] pickingOrderIds) {
+ return pickingOrderDomainService.delete(pickingOrderIds);
+ }
+
+ /**
+ * 获取拣货单详细信息
+ */
+ public PickingOrderPO getInfoByIdAndType(Long pickingOrderId, Integer type) {
+ return pickingOrderDomainService.getInfoByIdAndType(pickingOrderId, type);
+ }
+
+ /**
+ * @description 整单下发
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param pickingOrderDO
+ * @return Boolean
+ */
+ public Boolean allDistribution(PickingOrderDO pickingOrderDO){
+ //设置作业人员信息
+ operatorsParam(pickingOrderDO);
+ //设置集货库位
+ setStorageLocation(pickingOrderDO);
+ return pickingOrderDomainService.allDistribution(pickingOrderDO);
+ }
+
+
+ /**
+ * @description 明细下发
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param pickingOrderDO
+ * @return Boolean
+ */
+ public Boolean detailDistribution(PickingOrderDO pickingOrderDO){
+ //设置作业人员信息
+ operatorsParam(pickingOrderDO);
+ //设置集货库位
+ setStorageLocation(pickingOrderDO);
+ return pickingOrderDomainService.detailDistribution(pickingOrderDO);
+ }
+ /**
+ * @description 拣货
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param pickingOrderDO
+ * @return Boolean
+ */
+ public Boolean picking(PickingOrderDO pickingOrderDO){
+ PickingOrderDO assemblePickingOrderDO = assembleParamByPickingOrder(pickingOrderDO);
+ return pickingOrderDomainService.picking(assemblePickingOrderDO);
+ }
+
+ /**
+ * @description 完成拣货
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param pickingOrderDO
+ * @return Boolean
+ */
+ public Boolean completePicking(PickingOrderDO pickingOrderDO){
+ return pickingOrderDomainService.completePicking(pickingOrderDO);
+ }
+
+ /**
+ * @description 封装作业人员信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param pickingOrderDO
+ */
+ private void operatorsParam(PickingOrderDO pickingOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(pickingOrderDO.getOperatorsBy());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取作业人员信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ pickingOrderDO.setOperatorsName(userPo.getUserName());
+ }
+
+ /**
+ * @description 设置集货库位信息
+ * @author ZhouGY
+ * @date 2024/4/7 10:01
+ * @param pickingOrderDO
+ */
+ private void setStorageLocation(PickingOrderDO pickingOrderDO) {
+ AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(pickingOrderDO.getStorageLocationId());
+ if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
+ throw new ServiceException("获取拣货库位信息失败");
+ }
+ StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
+ pickingOrderDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
+ pickingOrderDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
+ pickingOrderDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
+ pickingOrderDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
+ pickingOrderDO.setStorageCode(storageLocationFeignPO.getStorageCode());
+ pickingOrderDO.setStorageName(storageLocationFeignPO.getStorageName());
+ pickingOrderDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
+ pickingOrderDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
+ pickingOrderDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
+ }
+
+
+ /**
+ * @description 拣货 装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param pickingOrderDO
+ * @return Boolean
+ */
+ private PickingOrderDO assembleParamByPickingOrder(PickingOrderDO pickingOrderDO) {
+ PickingOrderPO pickingOrderPO = pickingOrderDomainService.getInfoByIdAndType(pickingOrderDO.getPickingOrderId(), pickingOrderDO.getType());
+ if (pickingOrderPO == null){
+ throw new ServiceException("拣货单不存在");
+ }
+ if (pickingOrderPO.getStatus() > 2) {
+ throw new ServiceException("拣货单已完成拣货");
+ }
+ if (CollectionUtil.isEmpty(pickingOrderDO.getMaterialDetailList())) {
+ throw new ServiceException("拣货单物料明细不能为空");
+ }
+ PickingOrderDO returnPickingOrderDO = new PickingOrderDO();
+ returnPickingOrderDO.setUpdateTime(pickingOrderDO.getUpdateTime());
+ returnPickingOrderDO.setPickingOrderId(pickingOrderPO.getPickingOrderId());
+ returnPickingOrderDO.setType(pickingOrderPO.getType());
+ returnPickingOrderDO.setOrganizationId(pickingOrderPO.getOrganizationId());
+ returnPickingOrderDO.setOrganizationName(pickingOrderPO.getOrganizationName());
+ returnPickingOrderDO.setTopOrganizationId(pickingOrderPO.getTopOrganizationId());
+ returnPickingOrderDO.setPickingOrderNumber(pickingOrderPO.getPickingOrderNumber());
+ PickingMaterialDetailDO pickingMaterialDetailDOByQuery = new PickingMaterialDetailDO();
+ pickingMaterialDetailDOByQuery.setPickingOrderNumber(pickingOrderPO.getPickingOrderNumber());
+ List pickingMaterialDetailPODbList = pickingMaterialDetailDomainService.queryList(pickingMaterialDetailDOByQuery);
+ Map pickingMaterialDetailDbMap = pickingMaterialDetailPODbList.stream().collect(Collectors.toMap(PickingMaterialDetailPO::getMaterialDetailId, Function.identity()));
+ List returnPickingMaterialDetailDOList = new ArrayList<>();
+ for (PickingMaterialDetailDO pickingMaterialDetailDO : pickingOrderDO.getMaterialDetailList()){
+ //设置物料更多属性信息
+ PickingMaterialDetailPO pickingMaterialDetailPO = pickingMaterialDetailDbMap.get(pickingMaterialDetailDO.getMaterialDetailId());
+ if (pickingMaterialDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (ObjectUtil.isNull(pickingMaterialDetailDO.getActualQuantity()) || pickingMaterialDetailDO.getActualQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进行拣货直接跳过
+ continue;
+ }
+ PickingMaterialDetailDO returnPickingMaterialDetailDO = new PickingMaterialDetailDO();
+ BeanUtils.copyProperties(pickingMaterialDetailPO, returnPickingMaterialDetailDO);
+ returnPickingMaterialDetailDO.setActualQuantity(pickingMaterialDetailDO.getActualQuantity());
+ //是否开启了序列号管理
+ if (pickingMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(pickingMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + pickingMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnPickingMaterialDetailDO.setMaterialDetailSerialNumberList(pickingMaterialDetailDO.getMaterialDetailSerialNumberList());
+ returnPickingMaterialDetailDOList.add(returnPickingMaterialDetailDO);
+ }
+ returnPickingOrderDO.setMaterialDetailList(returnPickingMaterialDetailDOList);
+ return returnPickingOrderDO;
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRule/PutawayRuleApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRule/PutawayRuleApplicationService.java
new file mode 100644
index 000000000..1c34ae1f8
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRule/PutawayRuleApplicationService.java
@@ -0,0 +1,260 @@
+package com.mhd.wms.application.service.putawayRule;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.json.JSONUtil;
+import com.github.pagehelper.util.StringUtil;
+import com.mhd.common.core.domain.po.SysDictDataVo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.enums.MasterRuleEnum;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.putawayRule.entity.PutawayRule;
+import com.mhd.wms.domain.putawayRule.repository.po.PutawayRulePO;
+import com.mhd.wms.domain.putawayRule.repository.todo.PutawayRuleDO;
+import com.mhd.wms.domain.putawayRule.service.PutawayRuleDomainService;
+import com.mhd.wms.domain.putawayRuleDetail.entity.PutawayRuleDetail;
+import com.mhd.wms.domain.putawayRuleDetail.repository.todo.PutawayRuleDetailDO;
+import com.mhd.wms.domain.putawayRuleDetail.service.PutawayRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 上架规则ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-19
+ */
+@Service
+@Slf4j
+public class PutawayRuleApplicationService {
+ @Autowired
+ private PutawayRuleDomainService putawayRuleDomainService;
+
+ @Resource
+ private PutawayRuleDetailDomainService putawayRuleDetailDomainService;
+
+ @Resource
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询上架规则列表
+ */
+
+ public List queryList(PutawayRuleDO putawayRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ putawayRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return putawayRuleDomainService.queryList(putawayRuleDO);
+ }
+
+
+ /**
+ * 新增上架规则
+ */
+ @Transactional
+ public Boolean insert(PutawayRuleDO putawayRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ putawayRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ PutawayRule putawayRule= putawayRuleDomainService.save(putawayRuleDO);
+ //删除当前上架规则明细
+ putawayRuleDetailDomainService.deleteByPutawayRuleId(putawayRule.getId());
+
+ List putawayRuleDetailDOS = putawayRuleDO.getPutawayRuleDetailDOS();
+
+ List putawayRuleDetails = putawayRuleDetailDOS.stream().map(putawayRuleDetailDO -> {
+ PutawayRuleDetail putawayRuleDetail = new PutawayRuleDetail();
+ putawayRuleDetailDO.setMainRule(MasterRuleEnum.ENUM_VALUE1.getDesById(putawayRuleDetailDO.getMainRuleId()));
+ //库位空间数据字典 start
+ if(StringUtil.isNotEmpty(putawayRuleDetailDO.getStorageSpaceLimitTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.LOCATION_SPACE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位空间)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ List strings1 = Convert.toList(String.class, putawayRuleDetailDO.getStorageSpaceLimitTypeId());
+ String storageSpaceLimitType = strings1.stream().map(s -> {
+ if (!transportTypeDictMap.containsKey(s)) {
+ throw new ServiceException("库位空间未找到");
+ }
+ return transportTypeDictMap.get(s);
+ }).collect(Collectors.joining(","));
+
+ putawayRuleDetailDO.setStorageSpaceLimitType(storageSpaceLimitType);
+ }
+ //库位空间数据字典 end
+
+
+ //库位分类数据字典 start
+ if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位分类)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ List strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationTypeId());
+ String locationType = strings1.stream().map(s -> {
+ if (!transportTypeDictMap.containsKey(s)) {
+ throw new ServiceException("库位分类未找到");
+ }
+ return transportTypeDictMap.get(s);
+ }).collect(Collectors.joining(","));
+
+ putawayRuleDetailDO.setLocationType(locationType);
+ }
+ //库位分类数据字典 end
+ //库位种类数据字典 start
+ if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationKindId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位种类)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ List strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationKindId());
+ String locationKind = strings1.stream().map(s -> {
+ if (!transportTypeDictMap.containsKey(s)) {
+ throw new ServiceException("库位种类未找到");
+ }
+ return transportTypeDictMap.get(s);
+ }).collect(Collectors.joining(","));
+
+ putawayRuleDetailDO.setLocationKind(locationKind);
+ }
+ //库位种类数据字典 end
+ BeanUtils.copyProperties(putawayRuleDetailDO, putawayRuleDetail);
+ putawayRuleDetail.setPutawayRuleId(putawayRule.getId());
+ return putawayRuleDetail;
+
+ }).collect(Collectors.toList());
+
+ return putawayRuleDetailDomainService.saveBatch(putawayRuleDetails);
+ }
+
+ /**
+ * 修改上架规则
+ */
+ public Boolean update(PutawayRuleDO putawayRuleDO) {
+ putawayRuleDomainService.update(putawayRuleDO);
+ //删除当前上架规则明细
+ putawayRuleDetailDomainService.deleteByPutawayRuleId(putawayRuleDO.getId());
+
+ List putawayRuleDetailDOS = putawayRuleDO.getPutawayRuleDetailDOS();
+
+ List putawayRuleDetails = putawayRuleDetailDOS.stream().map(putawayRuleDetailDO -> {
+ PutawayRuleDetail putawayRuleDetail = new PutawayRuleDetail();
+
+ putawayRuleDetailDO.setMainRule(MasterRuleEnum.ENUM_VALUE1.getDesById(putawayRuleDetailDO.getMainRuleId()));
+ //库位空间数据字典 start
+ if(StringUtil.isNotEmpty(putawayRuleDetailDO.getStorageSpaceLimitTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.LOCATION_SPACE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位空间)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ List strings1 = Convert.toList(String.class, putawayRuleDetailDO.getStorageSpaceLimitTypeId());
+ String storageSpaceLimitType = strings1.stream().map(s -> {
+ if (!transportTypeDictMap.containsKey(s)) {
+ throw new ServiceException("库位空间未找到");
+ }
+ return transportTypeDictMap.get(s);
+ }).collect(Collectors.joining(","));
+
+ putawayRuleDetailDO.setStorageSpaceLimitType(storageSpaceLimitType);
+ }
+ //库位空间数据字典 end
+
+
+ //库位分类数据字典 start
+ if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位分类)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ List strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationTypeId());
+ String locationType = strings1.stream().map(s -> {
+ if (!transportTypeDictMap.containsKey(s)) {
+ throw new ServiceException("库位分类未找到");
+ }
+ return transportTypeDictMap.get(s);
+ }).collect(Collectors.joining(","));
+
+ putawayRuleDetailDO.setLocationType(locationType);
+ }
+ //库位分类数据字典 end
+ //库位种类数据字典 start
+ if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationKindId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(库位种类)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ List strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationKindId());
+ String locationKind = strings1.stream().map(s -> {
+ if (!transportTypeDictMap.containsKey(s)) {
+ throw new ServiceException("库位种类未找到");
+ }
+ return transportTypeDictMap.get(s);
+ }).collect(Collectors.joining(","));
+
+ putawayRuleDetailDO.setLocationKind(locationKind);
+ }
+ //库位种类数据字典 end
+ BeanUtils.copyProperties(putawayRuleDetailDO, putawayRuleDetail);
+ putawayRuleDetail.setPutawayRuleId(putawayRuleDO.getId());
+ return putawayRuleDetail;
+
+ }).collect(Collectors.toList());
+
+ return putawayRuleDetailDomainService.saveBatch(putawayRuleDetails);
+ }
+
+ /**
+ * 批量删除上架规则
+ */
+ @Transactional
+ public boolean delete(Long[] ids) {
+ putawayRuleDomainService.delete(ids);
+ //
+ List putawayRleDetailIds = putawayRuleDetailDomainService.selectListByPutawayRuleId(ids);
+
+
+ return putawayRuleDetailDomainService.delete(putawayRleDetailIds.toArray(new Long[putawayRleDetailIds.size()]));
+ }
+
+ /**
+ * 获取上架规则详细信息
+ */
+ public PutawayRulePO getInfo(Long id)
+ {
+ return putawayRuleDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRuleDetail/PutawayRuleDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRuleDetail/PutawayRuleDetailApplicationService.java
new file mode 100644
index 000000000..3409c1a5c
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/putawayRuleDetail/PutawayRuleDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.putawayRuleDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.putawayRuleDetail.repository.po.PutawayRuleDetailPO;
+import com.mhd.wms.domain.putawayRuleDetail.repository.todo.PutawayRuleDetailDO;
+import com.mhd.wms.domain.putawayRuleDetail.service.PutawayRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 上架规则明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+@Service
+@Slf4j
+public class PutawayRuleDetailApplicationService {
+ @Autowired
+ private PutawayRuleDetailDomainService putawayRuleDetailDomainService;
+
+
+ /**
+ * 分页查询上架规则明细列表
+ */
+
+ public List queryList(PutawayRuleDetailDO putawayRuleDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ putawayRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return putawayRuleDetailDomainService.queryList(putawayRuleDetailDO);
+ }
+
+
+ /**
+ * 新增上架规则明细
+ */
+ public Boolean insert(PutawayRuleDetailDO putawayRuleDetailDO) {
+
+ return putawayRuleDetailDomainService.insert(putawayRuleDetailDO);
+ }
+
+ /**
+ * 修改上架规则明细
+ */
+ public Boolean update(PutawayRuleDetailDO putawayRuleDetailDO) {
+ return putawayRuleDetailDomainService.update(putawayRuleDetailDO);
+ }
+
+ /**
+ * 批量删除上架规则明细
+ */
+ public boolean delete(Long[] ids) {
+ return putawayRuleDetailDomainService.delete(ids);
+ }
+
+ /**
+ * 获取上架规则明细详细信息
+ */
+ public PutawayRuleDetailPO getInfo(Long id)
+ {
+ return putawayRuleDetailDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/qcRule/QcRuleApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/qcRule/QcRuleApplicationService.java
new file mode 100644
index 000000000..2a2653226
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/qcRule/QcRuleApplicationService.java
@@ -0,0 +1,141 @@
+package com.mhd.wms.application.service.qcRule;
+
+import cn.hutool.json.JSONUtil;
+import com.github.pagehelper.util.StringUtil;
+import com.mhd.common.core.domain.po.SysDictDataVo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.qcRule.repository.po.QcRulePO;
+import com.mhd.wms.domain.qcRule.repository.todo.QcRuleDO;
+import com.mhd.wms.domain.qcRule.service.QcRuleDomainService;
+import com.mhd.wms.domain.qcRuleDetail.repository.po.QcRuleDetailPO;
+import com.mhd.wms.domain.qcRuleDetail.repository.todo.QcRuleDetailDO;
+import com.mhd.wms.domain.qcRuleDetail.service.QcRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 质检规则ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-22
+ */
+@Service
+@Slf4j
+public class QcRuleApplicationService {
+ @Autowired
+ private QcRuleDomainService qcRuleDomainService;
+
+ @Resource
+ private QcRuleDetailDomainService qcRuleDetailDomainService;
+
+ @Resource
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询质检规则列表
+ */
+
+ public List queryList(QcRuleDO qcRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ qcRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return qcRuleDomainService.queryList(qcRuleDO);
+ }
+
+
+ /**
+ * 新增质检规则
+ */
+ @Transactional
+ public Boolean insert(QcRuleDO qcRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ qcRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+
+ Long id = qcRuleDomainService.insertToId(qcRuleDO);
+ //根据ID查询质检规则明细
+ Long[] ids = qcRuleDetailDomainService.selectIdsByQcRuleId(id);
+ //删除质检规则明细ID
+ qcRuleDetailDomainService.delete(ids);
+ List qcRuleDetailDOS = qcRuleDO.getQcRuleDetailDOS();
+ qcRuleDetailDOS.stream().forEach(qcRuleDetailDO -> {
+ if(StringUtil.isNotEmpty(qcRuleDetailDO.getNumTypeId())){
+ AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.NUM_TYPE.getCode());
+ if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
+ throw new ServiceException("字典信息(数量类型)获取失败");
+ }
+ List transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
+ Map transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
+ if (!transportTypeDictMap.containsKey(qcRuleDetailDO.getNumTypeId())) {
+ throw new ServiceException("数量类型未找到");
+ }
+ qcRuleDetailDO.setNumType(transportTypeDictMap.get(qcRuleDetailDO.getNumTypeId()));
+ }
+ qcRuleDetailDO.setQcRuleId(id);
+ });
+ return qcRuleDetailDomainService.batchInsert(qcRuleDetailDOS);
+ }
+
+ /**
+ * 修改质检规则
+ */
+ @Transactional
+ public Boolean update(QcRuleDO qcRuleDO) {
+ qcRuleDomainService.update(qcRuleDO);
+ //根据ID查询质检规则明细
+ Long[] ids = qcRuleDetailDomainService.selectIdsByQcRuleId(qcRuleDO.getId());
+ //删除质检规则明细ID
+ qcRuleDetailDomainService.delete(ids);
+ List qcRuleDetailDOS = qcRuleDO.getQcRuleDetailDOS();
+ qcRuleDetailDOS.stream().forEach(qcRuleDetailDO -> {
+ qcRuleDetailDO.setQcRuleId(qcRuleDO.getId());
+ });
+ return qcRuleDetailDomainService.batchInsert(qcRuleDetailDOS);
+
+ }
+
+ /**
+ * 批量删除质检规则
+ */
+ @Transactional
+ public boolean delete(Long[] ids) {
+ qcRuleDomainService.delete(ids);
+ //根据质检规则ID集合查询所有的质检规则明细
+ Long[] qcRuleDetailIds = qcRuleDetailDomainService.selectListByQcRuleIds(ids);
+ return qcRuleDetailDomainService.delete(qcRuleDetailIds);
+ }
+
+ /**
+ * 获取质检规则详细信息
+ */
+ public QcRulePO getInfo(Long id)
+ {
+ QcRulePO qcRulePO = qcRuleDomainService.getInfo(id);
+ List qcRuleDetailPOS = qcRuleDetailDomainService.selectListByQcRuleId(id);
+ qcRulePO.setQcRuleDetailList(qcRuleDetailPOS);
+ return qcRulePO;
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/qcRuleDetail/QcRuleDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/qcRuleDetail/QcRuleDetailApplicationService.java
new file mode 100644
index 000000000..324feafc3
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/qcRuleDetail/QcRuleDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.qcRuleDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.qcRuleDetail.repository.po.QcRuleDetailPO;
+import com.mhd.wms.domain.qcRuleDetail.repository.todo.QcRuleDetailDO;
+import com.mhd.wms.domain.qcRuleDetail.service.QcRuleDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 质检规则明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-22
+ */
+@Service
+@Slf4j
+public class QcRuleDetailApplicationService {
+ @Autowired
+ private QcRuleDetailDomainService qcRuleDetailDomainService;
+
+
+ /**
+ * 分页查询质检规则明细列表
+ */
+
+ public List queryList(QcRuleDetailDO qcRuleDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ qcRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return qcRuleDetailDomainService.queryList(qcRuleDetailDO);
+ }
+
+
+ /**
+ * 新增质检规则明细
+ */
+ public Boolean insert(QcRuleDetailDO qcRuleDetailDO) {
+
+ return qcRuleDetailDomainService.insert(qcRuleDetailDO);
+ }
+
+ /**
+ * 修改质检规则明细
+ */
+ public Boolean update(QcRuleDetailDO qcRuleDetailDO) {
+ return qcRuleDetailDomainService.update(qcRuleDetailDO);
+ }
+
+ /**
+ * 批量删除质检规则明细
+ */
+ public boolean delete(Long[] ids) {
+ return qcRuleDetailDomainService.delete(ids);
+ }
+
+ /**
+ * 获取质检规则明细详细信息
+ */
+ public QcRuleDetailPO getInfo(Long id)
+ {
+ return qcRuleDetailDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/qualityInspection/QualityInspectionApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/qualityInspection/QualityInspectionApplicationService.java
new file mode 100644
index 000000000..e9ea15b6f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/qualityInspection/QualityInspectionApplicationService.java
@@ -0,0 +1,78 @@
+package com.mhd.wms.application.service.qualityInspection;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.qualityInspection.repository.po.QualityInspectionPO;
+import com.mhd.wms.domain.qualityInspection.repository.todo.QualityInspectionDO;
+import com.mhd.wms.domain.qualityInspection.service.QualityInspectionDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 质检管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-25
+ */
+@Service
+@Slf4j
+public class QualityInspectionApplicationService {
+ @Autowired
+ private QualityInspectionDomainService qualityInspectionDomainService;
+
+
+ /**
+ * 分页查询质检管理列表
+ */
+
+ public List queryList(QualityInspectionDO qualityInspectionDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ qualityInspectionDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ qualityInspectionDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return qualityInspectionDomainService.queryList(qualityInspectionDO);
+ }
+
+
+ /**
+ * 新增质检管理
+ */
+ public Boolean insert(QualityInspectionDO qualityInspectionDO) {
+
+ return qualityInspectionDomainService.insert(qualityInspectionDO);
+ }
+
+ /**
+ * 修改质检管理
+ */
+ public Boolean update(QualityInspectionDO qualityInspectionDO) {
+ return qualityInspectionDomainService.update(qualityInspectionDO);
+ }
+
+ /**
+ * 批量删除质检管理
+ */
+ public boolean delete(Long[] qualityInspectionIds) {
+ return qualityInspectionDomainService.delete(qualityInspectionIds);
+ }
+
+ /**
+ * 获取质检管理详细信息
+ */
+ public QualityInspectionPO getInfo(Long qualityInspectionId)
+ {
+ return qualityInspectionDomainService.getInfo(qualityInspectionId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/receiptMaterialDetail/ReceiptMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/receiptMaterialDetail/ReceiptMaterialDetailApplicationService.java
new file mode 100644
index 000000000..c157e39d5
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/receiptMaterialDetail/ReceiptMaterialDetailApplicationService.java
@@ -0,0 +1,73 @@
+package com.mhd.wms.application.service.receiptMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO;
+import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
+import com.mhd.wms.domain.receiptMaterialDetail.service.ReceiptMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-17
+ */
+@Service
+@Slf4j
+public class ReceiptMaterialDetailApplicationService {
+ @Autowired
+ private ReceiptMaterialDetailDomainService receiptMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询物料明细列表
+ */
+
+ public List queryList(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ receiptMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return receiptMaterialDetailDomainService.queryList(receiptMaterialDetailDO);
+ }
+
+ /**
+ * 新增物料明细
+ */
+ public Boolean insert(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
+
+ return receiptMaterialDetailDomainService.insert(receiptMaterialDetailDO);
+ }
+
+ /**
+ * 修改物料明细
+ */
+ public Boolean update(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
+ return receiptMaterialDetailDomainService.update(receiptMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除物料明细
+ */
+ public boolean delete(Long[] materialDetailIds) {
+ return receiptMaterialDetailDomainService.delete(materialDetailIds);
+ }
+
+ /**
+ * 获取物料明细详细信息
+ */
+ public ReceiptMaterialDetailPO getInfo(Long materialDetailId)
+ {
+ return receiptMaterialDetailDomainService.getInfo(materialDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/replenishmentNotice/ReplenishmentNoticeApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/replenishmentNotice/ReplenishmentNoticeApplicationService.java
new file mode 100644
index 000000000..fb974610c
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/replenishmentNotice/ReplenishmentNoticeApplicationService.java
@@ -0,0 +1,78 @@
+package com.mhd.wms.application.service.replenishmentNotice;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.replenishmentNotice.repository.po.ReplenishmentNoticePO;
+import com.mhd.wms.domain.replenishmentNotice.repository.todo.ReplenishmentNoticeDO;
+import com.mhd.wms.domain.replenishmentNotice.service.ReplenishmentNoticeDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 补货通知单ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-11
+ */
+@Service
+@Slf4j
+public class ReplenishmentNoticeApplicationService {
+ @Autowired
+ private ReplenishmentNoticeDomainService replenishmentNoticeDomainService;
+
+
+ /**
+ * 分页查询补货通知单列表
+ */
+
+ public List queryList(ReplenishmentNoticeDO replenishmentNoticeDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ replenishmentNoticeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ replenishmentNoticeDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return replenishmentNoticeDomainService.queryList(replenishmentNoticeDO);
+ }
+
+
+ /**
+ * 新增补货通知单
+ */
+ public Boolean insert(ReplenishmentNoticeDO replenishmentNoticeDO) {
+
+ return replenishmentNoticeDomainService.insert(replenishmentNoticeDO);
+ }
+
+ /**
+ * 修改补货通知单
+ */
+ public Boolean update(ReplenishmentNoticeDO replenishmentNoticeDO) {
+ return replenishmentNoticeDomainService.update(replenishmentNoticeDO);
+ }
+
+ /**
+ * 批量删除补货通知单
+ */
+ public boolean delete(Long[] replenishmentNoticeIds) {
+ return replenishmentNoticeDomainService.delete(replenishmentNoticeIds);
+ }
+
+ /**
+ * 获取补货通知单详细信息
+ */
+ public ReplenishmentNoticePO getInfo(Long replenishmentNoticeId)
+ {
+ return replenishmentNoticeDomainService.getInfo(replenishmentNoticeId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/serialNumber/SerialNumberApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/serialNumber/SerialNumberApplicationService.java
new file mode 100644
index 000000000..8d86fdb69
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/serialNumber/SerialNumberApplicationService.java
@@ -0,0 +1,93 @@
+package com.mhd.wms.application.service.serialNumber;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.serialNumber.repository.po.SerialNumberPO;
+import com.mhd.wms.domain.serialNumber.repository.todo.SerialNumberDO;
+import com.mhd.wms.domain.serialNumber.service.SerialNumberDomainService;
+import com.mhd.wms.interfaces.dto.serialNumber.SerialNumberDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 序列号ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-19
+ */
+@Service
+@Slf4j
+public class SerialNumberApplicationService {
+ @Autowired
+ private SerialNumberDomainService serialNumberDomainService;
+
+
+ /**
+ * 分页查询序列号列表
+ */
+
+ public List queryList(SerialNumberDO serialNumberDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ serialNumberDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ serialNumberDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return serialNumberDomainService.queryList(serialNumberDO);
+ }
+
+
+ /**
+ * 新增序列号
+ */
+ public Boolean insert(SerialNumberDO serialNumberDO) {
+
+ return serialNumberDomainService.insert(serialNumberDO);
+ }
+
+ /**
+ * 修改序列号
+ */
+ public Boolean update(SerialNumberDO serialNumberDO) {
+ return serialNumberDomainService.update(serialNumberDO);
+ }
+
+ /**
+ * 批量删除序列号
+ */
+ public boolean delete(Long[] serialNumberIds) {
+ return serialNumberDomainService.delete(serialNumberIds);
+ }
+
+ /**
+ * 获取序列号详细信息
+ */
+ public SerialNumberPO getInfo(Long serialNumberId)
+ {
+ return serialNumberDomainService.getInfo(serialNumberId);
+ }
+
+ public Boolean validationForPicking(SerialNumberDTO serialNumberDTO) {
+ SerialNumberDO serialNumberDO = new SerialNumberDO();
+ serialNumberDO.setSerialNumber(serialNumberDTO.getSerialNumber());
+ serialNumberDO.setMaterialBaseInfoId(serialNumberDTO.getMaterialBaseInfoId());
+ serialNumberDO.setStatus(1);
+ List serialNumberPos = serialNumberDomainService.queryList(serialNumberDO);
+ if (CollectionUtil.isEmpty(serialNumberPos)){
+ throw new RuntimeException("序列号不存在");
+ }else if (serialNumberPos.size() >1) {
+ throw new RuntimeException("数据错误:系统内存在多个相同序列号");
+ }
+ return true;
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/shelfMaterialDetail/ShelfMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/shelfMaterialDetail/ShelfMaterialDetailApplicationService.java
new file mode 100644
index 000000000..1167944eb
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/shelfMaterialDetail/ShelfMaterialDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.shelfMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO;
+import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
+import com.mhd.wms.domain.shelfMaterialDetail.service.ShelfMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 物料明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-17
+ */
+@Service
+@Slf4j
+public class ShelfMaterialDetailApplicationService {
+ @Autowired
+ private ShelfMaterialDetailDomainService shelfMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询物料明细列表
+ */
+
+ public List queryList(ShelfMaterialDetailDO shelfMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ shelfMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return shelfMaterialDetailDomainService.queryList(shelfMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增物料明细
+ */
+ public Boolean insert(ShelfMaterialDetailDO shelfMaterialDetailDO) {
+
+ return shelfMaterialDetailDomainService.insert(shelfMaterialDetailDO);
+ }
+
+ /**
+ * 修改物料明细
+ */
+ public Boolean update(ShelfMaterialDetailDO shelfMaterialDetailDO) {
+ return shelfMaterialDetailDomainService.update(shelfMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除物料明细
+ */
+ public boolean delete(Long[] shelfMaterialDetailIds) {
+ return shelfMaterialDetailDomainService.delete(shelfMaterialDetailIds);
+ }
+
+ /**
+ * 获取物料明细详细信息
+ */
+ public ShelfMaterialDetailPO getInfo(Long shelfMaterialDetailId)
+ {
+ return shelfMaterialDetailDomainService.getInfo(shelfMaterialDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java
new file mode 100644
index 000000000..6c573a755
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java
@@ -0,0 +1,436 @@
+package com.mhd.wms.application.service.shiftManage;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.constant.SnowFlakeConstants;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.IgnoreNullUtil;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.utils.uuid.IdGenerator;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.ContainerFeignPO;
+import com.mhd.system.api.domain.StorageLocationFeignPO;
+import com.mhd.system.api.domain.WarehouseFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.shiftManage.repository.po.ShiftManagePO;
+import com.mhd.wms.domain.shiftManage.repository.todo.ContainerShiftDO;
+import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
+import com.mhd.wms.domain.shiftManage.service.ShiftManageDomainService;
+import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMaterialDetailPO;
+import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMoveMaterialQuantityPO;
+import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetailDO;
+import com.mhd.wms.domain.shiftMaterialDetail.service.ShiftMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 移位管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-02
+ */
+@Service
+@Slf4j
+public class ShiftManageApplicationService {
+ @Autowired
+ private ShiftManageDomainService shiftManageDomainService;
+ @Autowired
+ private ShiftMaterialDetailDomainService shiftMaterialDetailDomainService;
+ @Autowired
+ private IdGenerator idGenerator;
+
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+ /**
+ * 分页查询移位管理列表
+ */
+
+ public List queryList(ShiftManageDO shiftManageDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ shiftManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ shiftManageDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return shiftManageDomainService.queryList(shiftManageDO);
+ }
+
+ /**
+ * @description app 获取移位详情
+ * @author ZhouGY
+ * @date 2024/7/30 14:20
+ * @param ShiftManageId
+ * @return ShiftManagePO
+ */
+ public ShiftManagePO getInfoByApp(Long ShiftManageId) {
+ return shiftManageDomainService.getInfoByApp(ShiftManageId);
+ }
+
+
+ /**
+ * 新增移位管理
+ */
+ public Boolean insert(ShiftManageDO shiftManageDO) {
+ //设置仓库
+ setWarehouseInfo(shiftManageDO);
+ return shiftManageDomainService.insert(shiftManageDO);
+ }
+
+ /**
+ * 修改移位管理
+ */
+ public Boolean update(ShiftManageDO shiftManageDO) {
+ return shiftManageDomainService.update(shiftManageDO);
+ }
+
+ /**
+ * 批量删除移位管理
+ */
+ public boolean delete(Long[] shiftManageIds) {
+ return shiftManageDomainService.delete(shiftManageIds);
+ }
+
+ /**
+ * 获取移位管理详细信息
+ */
+ public ShiftManagePO getInfo(Long shiftManageId)
+ {
+ return shiftManageDomainService.getInfo(shiftManageId);
+ }
+
+ /**
+ * @description 审核
+ * @author ZhouGY
+ * @date 2024/7/30 14:47
+ * @param shiftManageDO
+ * @return Boolean
+ */
+ public Boolean auditState(ShiftManageDO shiftManageDO){
+ return shiftManageDomainService.auditState(shiftManageDO);
+ }
+
+ /**
+ * @description 任务下发
+ * @author ZhouGY
+ * @date 2024/7/30 14:47
+ * @param shiftManageDO
+ * @return Boolean
+ */
+ public Boolean taskDistribution(ShiftManageDO shiftManageDO){
+ // 设置作业员信息
+ operatorsParam(shiftManageDO);
+ return shiftManageDomainService.taskDistribution(shiftManageDO);
+ }
+
+ /**
+ * 物料移位
+ */
+ public Boolean appMoveFromShiftManage(ShiftManageDO shiftManageDO){
+ List shiftMaterialDetailDOList = shiftManageDO.getShiftMaterialDetailList();
+ shiftMaterialDetailDOList.forEach(shiftMaterialDetailDO -> {
+ List shiftMaterialDetailDOChildrenList1 = shiftMaterialDetailDO.getChildren();
+ ShiftMaterialDetailDO shiftMaterialDetailDOChildren = shiftMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
+ shiftMaterialDetailDO.setShiftIoDetailId(shiftMaterialDetailDOChildren.getShiftIoDetailId());
+ shiftMaterialDetailDO.setShiftQuantity(shiftMaterialDetailDOChildren.getShiftQuantity());
+ shiftMaterialDetailDO.setNewWarehouseId(shiftMaterialDetailDOChildren.getNewWarehouseId());
+ shiftMaterialDetailDO.setNewStorageSectionId(shiftMaterialDetailDOChildren.getNewStorageSectionId());
+ shiftMaterialDetailDO.setNewStorageLocationId(shiftMaterialDetailDOChildren.getNewStorageLocationId());
+ shiftMaterialDetailDO.setContainerId(shiftMaterialDetailDOChildren.getContainerId());
+ shiftMaterialDetailDO.setLevel(shiftMaterialDetailDOChildren.getLevel());
+ shiftMaterialDetailDO.setMaterialDetailSerialNumberList(shiftMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
+ //只留二级
+ List shiftMaterialDetailDOChildrenList2 = shiftMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
+ shiftMaterialDetailDO.setChildren(shiftMaterialDetailDOChildrenList2);
+ });
+ //移位装配参数
+ ShiftManageDO assembleShiftManageDO = assembleParamByShift(shiftManageDO);
+ return shiftManageDomainService.appMoveFromShiftManage(assembleShiftManageDO);
+ }
+
+ /**
+ * @description PC 完成移位
+ * @author ZhouGY
+ * @date 2024/7/30 14:51
+ * @param shiftManageDO
+ * @return Map
+ */
+ public Boolean finishShiftByPC(ShiftManageDO shiftManageDO){
+ //移位装配参数
+ ShiftManageDO assembleShiftManageDO = assembleParamByShift(shiftManageDO);
+ return shiftManageDomainService.finishShiftByPC(assembleShiftManageDO);
+ }
+
+ /**
+ * @description PDA 完成移位
+ * @author ZhouGY
+ * @date 2024/7/30 14:51
+ * @param shiftManageDO
+ * @return Map
+ */
+ public Boolean finishShift(ShiftManageDO shiftManageDO){
+ return shiftManageDomainService.finishShift(shiftManageDO);
+ }
+
+ /**
+ * @description app 容器移位
+ * @author ZhouGY
+ * @date 2024/7/30 14:24
+ * @param containerShiftDOList
+ * @return Boolean
+ */
+ public Boolean appMoveContainShift(List containerShiftDOList){
+ //设置上架库位、容器信息
+ setStorageLocationInfoByContainer(containerShiftDOList);
+ return shiftManageDomainService.appMoveContainShift(containerShiftDOList);
+ }
+
+ /**
+ * @description 移位装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param shiftManageDO
+ * @return Boolean
+ */
+ private ShiftManageDO assembleParamByShift(ShiftManageDO shiftManageDO) {
+ ShiftManagePO shiftManagePO = shiftManageDomainService.getInfo(shiftManageDO.getShiftManageId());
+ if (shiftManagePO == null){
+ throw new ServiceException("移位单不存在");
+ }
+ if (shiftManagePO.getShiftStatus() > 3) {
+ throw new ServiceException("移位单已完成移位");
+ }
+ ShiftManageDO returnShiftManageDO = new ShiftManageDO();
+ returnShiftManageDO.setUpdateTime(shiftManagePO.getUpdateTime());
+ returnShiftManageDO.setShiftManageId(shiftManagePO.getShiftManageId());
+ returnShiftManageDO.setOrganizationId(shiftManagePO.getOrganizationId());
+ returnShiftManageDO.setOrganizationName(shiftManagePO.getOrganizationName());
+ returnShiftManageDO.setTopOrganizationId(shiftManagePO.getTopOrganizationId());
+ returnShiftManageDO.setShiftNumber(shiftManagePO.getShiftNumber());
+ ShiftMaterialDetailDO shiftMaterialDetailDOByQuery = new ShiftMaterialDetailDO();
+ shiftMaterialDetailDOByQuery.setShiftNumber(shiftManagePO.getShiftNumber());
+ List shiftMaterialDetailPODbList = shiftMaterialDetailDomainService.queryList(shiftMaterialDetailDOByQuery);
+ Map shiftMaterialDetailPODbMap = shiftMaterialDetailPODbList.stream().collect(Collectors.toMap(ShiftMaterialDetailPO::getShiftIoDetailId, Function.identity()));
+ BigDecimal totalShiftQuantity = BigDecimal.ZERO;//移位单当前作业收货数
+ int totalActualReceiptMaterialQuantity = 0;//移位单收货物料种数
+ List returnShiftMaterialDetailDOList = new ArrayList<>();
+ for (ShiftMaterialDetailDO shiftMaterialDetailDO : shiftManageDO.getShiftMaterialDetailList()){
+ //设置物料更多属性信息
+ ShiftMaterialDetailPO shiftMaterialDetailPO = shiftMaterialDetailPODbMap.get(shiftMaterialDetailDO.getShiftIoDetailId());
+ if (shiftMaterialDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (shiftMaterialDetailDO.getShiftQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进行移位直接跳过
+ continue;
+ }
+ if (shiftMaterialDetailPO.getShiftStatus() == 4){
+ //已完成移位的物料不再支持修改
+ continue;
+ }
+ //设置上架库位、容器信息
+ setStorageLocationInfo(shiftMaterialDetailDO);
+ BigDecimal shiftQuantity = shiftMaterialDetailDO.getShiftQuantity();;//当前作业移位数
+ //判断是否存在子项
+ List returnShiftMaterialDetailDOChildList = new ArrayList<>();
+ List shiftMaterialDetailDOChildList = shiftMaterialDetailDO.getChildren();
+ if (!CollectionUtils.isEmpty(shiftMaterialDetailDOChildList)){
+ for (ShiftMaterialDetailDO shiftMaterialDetailDOChild : shiftMaterialDetailDOChildList){
+ ShiftMaterialDetailDO returnShiftMaterialDetailDOChild = new ShiftMaterialDetailDO();
+ ShiftMaterialDetailPO shiftMaterialDetailPOChildDb = shiftMaterialDetailPODbMap.get(shiftMaterialDetailDOChild.getShiftIoDetailId());
+ if (shiftMaterialDetailPOChildDb == null){
+ BeanUtils.copyProperties(shiftMaterialDetailPO, returnShiftMaterialDetailDOChild, "shiftIoDetailId","createBy","createByName","createTime",
+ "updateBy","updateByName","updateTime");
+ }else {
+ BeanUtils.copyProperties(shiftMaterialDetailPOChildDb, returnShiftMaterialDetailDOChild, "shiftIoDetailId","createBy","createByName","createTime",
+ "updateBy","updateByName","updateTime");
+ }
+ BeanUtils.copyProperties(shiftMaterialDetailDOChild, returnShiftMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(shiftMaterialDetailDOChild));
+ //设置上架库位、容器信息
+ setStorageLocationInfo(returnShiftMaterialDetailDOChild);
+ if (ObjectUtil.isNotNull(returnShiftMaterialDetailDOChild.getShiftIoDetailId()) && returnShiftMaterialDetailDOChild.getShiftIoDetailId() == 0){
+ returnShiftMaterialDetailDOChild.setShiftIoDetailId(null);
+ }
+ returnShiftMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ returnShiftMaterialDetailDOChild.setLevel(2);
+ returnShiftMaterialDetailDOChild.setParentUniqueId(shiftMaterialDetailPO.getUniqueId());
+ //是否开启了序列号管理
+ if (shiftMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(shiftMaterialDetailDOChild.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + shiftMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnShiftMaterialDetailDOChild.setMaterialDetailSerialNumberList(returnShiftMaterialDetailDOChild.getMaterialDetailSerialNumberList());
+ returnShiftMaterialDetailDOChildList.add(returnShiftMaterialDetailDOChild);
+ shiftQuantity = shiftQuantity.add(returnShiftMaterialDetailDOChild.getShiftQuantity());
+ }
+ }
+ //记录移位单移位总数
+ totalShiftQuantity = totalShiftQuantity.add(shiftQuantity);
+ //物料总移位数量
+ shiftMaterialDetailDO.setAlreadyShiftQuantity(shiftQuantity);
+ //判断移位数量是否大于计划数量
+ Integer shiftStatus = judgeShiftQuantity(shiftQuantity, shiftMaterialDetailPO.getQuantity());
+ shiftMaterialDetailDO.setShiftStatus(shiftStatus);
+ if (shiftStatus > 3){
+ totalActualReceiptMaterialQuantity += 1;
+ }
+ ShiftMaterialDetailDO returnShiftMaterialDetailDO = new ShiftMaterialDetailDO();
+ BeanUtils.copyProperties(shiftMaterialDetailPO, returnShiftMaterialDetailDO);
+ BeanUtils.copyProperties(shiftMaterialDetailDO, returnShiftMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(shiftMaterialDetailDO));
+ //一级列表 首次收货
+ //是否开启了序列号管理
+ if (shiftMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(shiftMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + shiftMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnShiftMaterialDetailDO.setMaterialDetailSerialNumberList(shiftMaterialDetailDO.getMaterialDetailSerialNumberList());
+ returnShiftMaterialDetailDO.setChildren(returnShiftMaterialDetailDOChildList);
+ returnShiftMaterialDetailDOList.add(returnShiftMaterialDetailDO);
+ }
+ returnShiftManageDO.setShiftQuantity(totalShiftQuantity);
+ returnShiftManageDO.setShiftMaterialDetailList(returnShiftMaterialDetailDOList);
+ returnShiftManageDO.setShiftMaterialQuantity(totalActualReceiptMaterialQuantity);
+ return returnShiftManageDO;
+ }
+
+ /**
+ * @description 封装作业人员信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param shiftManageDO
+ */
+ private void operatorsParam(ShiftManageDO shiftManageDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(shiftManageDO.getOperatorsBy());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取作业人员信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ shiftManageDO.setOperatorsName(userPo.getUserName());
+ }
+
+ /**
+ * @description 设置仓库信息
+ * @author ZhouGY
+ * @date 2024/4/7 10:01
+ * @param shiftManageDO
+ */
+ private void setWarehouseInfo(ShiftManageDO shiftManageDO) {
+ AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(shiftManageDO.getWarehouseId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取仓库信息失败");
+ }
+ WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
+ shiftManageDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
+ shiftManageDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
+ }
+
+ /**
+ * @description 设置上架库位、容器信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param shiftMaterialDetailDO
+ */
+ private void setStorageLocationInfo(ShiftMaterialDetailDO shiftMaterialDetailDO){
+ AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shiftMaterialDetailDO.getNewStorageLocationId());
+ if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
+ throw new ServiceException("获取上架库位信息失败");
+ }
+ StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
+ shiftMaterialDetailDO.setNewStorageSectionId(storageLocationFeignPO.getStorageSectionId());
+ shiftMaterialDetailDO.setNewStorageCode(storageLocationFeignPO.getStorageCode());
+ shiftMaterialDetailDO.setNewStorageName(storageLocationFeignPO.getStorageName());
+ shiftMaterialDetailDO.setNewStorageLocationId(storageLocationFeignPO.getStorageLocationId());
+ shiftMaterialDetailDO.setNewStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
+ shiftMaterialDetailDO.setNewStorageLocationName(storageLocationFeignPO.getStorageLocationName());
+
+ //获取容器详情
+ AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shiftMaterialDetailDO.getContainerId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取容器信息失败");
+ }
+ ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
+ shiftMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
+ shiftMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
+ shiftMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
+ }
+
+ /**
+ * @description 设置上架库位、容器信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param containerShiftDOList
+ */
+ private void setStorageLocationInfoByContainer(List containerShiftDOList){
+ for (ContainerShiftDO containerShiftDO : containerShiftDOList){
+ List shiftMoveMaterialQuantityList = containerShiftDO.getChildren();
+ if (CollectionUtils.isEmpty(shiftMoveMaterialQuantityList)){
+ continue;
+ }
+ shiftMoveMaterialQuantityList.forEach(shiftMoveMaterialQuantityPO -> {
+ AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shiftMoveMaterialQuantityPO.getNewStorageLocationId());
+ if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
+ throw new ServiceException("获取上架库位信息失败");
+ }
+ StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
+ shiftMoveMaterialQuantityPO.setNewStorageSectionId(storageLocationFeignPO.getStorageSectionId());
+ shiftMoveMaterialQuantityPO.setNewStorageCode(storageLocationFeignPO.getStorageCode());
+ shiftMoveMaterialQuantityPO.setNewStorageName(storageLocationFeignPO.getStorageName());
+ shiftMoveMaterialQuantityPO.setNewStorageLocationId(storageLocationFeignPO.getStorageLocationId());
+ shiftMoveMaterialQuantityPO.setNewStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
+ shiftMoveMaterialQuantityPO.setNewStorageLocationName(storageLocationFeignPO.getStorageLocationName());
+
+ //获取容器详情
+ AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shiftMoveMaterialQuantityPO.getContainerId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取容器信息失败");
+ }
+ ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
+ shiftMoveMaterialQuantityPO.setContainerCode(containerFeignPO.getContainerCode());
+ shiftMoveMaterialQuantityPO.setContainerType(containerFeignPO.getContainerType());
+ shiftMoveMaterialQuantityPO.setContainerTypeName(containerFeignPO.getContainerTypeName());
+ });
+ }
+ }
+
+ /**
+ * @description 判断移位数量是否与计划数量相等
+ * @author ZhouGY
+ * @date 2024/6/14 17:50
+ * @param quantity
+ * @param shiftQuantity
+ * @return Integer
+ */
+ private Integer judgeShiftQuantity(BigDecimal shiftQuantity, BigDecimal quantity){
+ if (shiftQuantity.compareTo(quantity) > 0){
+ throw new ServiceException("移位数量不能大于计划数量");
+ } else if (shiftQuantity.compareTo(quantity) == 0) {
+ return 4;
+ } else {
+ return 3;
+ }
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftMaterialDetail/ShiftMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftMaterialDetail/ShiftMaterialDetailApplicationService.java
new file mode 100644
index 000000000..b5184043f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftMaterialDetail/ShiftMaterialDetailApplicationService.java
@@ -0,0 +1,95 @@
+package com.mhd.wms.application.service.shiftMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMaterialDetailPO;
+import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetailDO;
+import com.mhd.wms.domain.shiftMaterialDetail.service.ShiftMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 移位物料明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-02
+ */
+@Service
+@Slf4j
+public class ShiftMaterialDetailApplicationService {
+ @Autowired
+ private ShiftMaterialDetailDomainService shiftMaterialDetailDomainService;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+ /**
+ * 分页查询移位物料明细列表
+ */
+ public List queryList(ShiftMaterialDetailDO shiftMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null) {
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1) {
+ shiftMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return shiftMaterialDetailDomainService.queryList(shiftMaterialDetailDO);
+ }
+
+ /**
+ * 分页查询分组移位物料明细列表
+ */
+ public List queryGroupList(ShiftMaterialDetailDO shiftMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null) {
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1) {
+ shiftMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return shiftMaterialDetailDomainService.queryGroupList(shiftMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增移位物料明细
+ */
+ public Boolean insert(ShiftMaterialDetailDO shiftMaterialDetailDO) {
+ return shiftMaterialDetailDomainService.insert(shiftMaterialDetailDO);
+ }
+
+ /**
+ * 修改移位物料明细
+ */
+ public Boolean update(ShiftMaterialDetailDO shiftMaterialDetailDO) {
+ return shiftMaterialDetailDomainService.update(shiftMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除移位物料明细
+ */
+ public boolean delete(Long[] shiftIoDetailIds) {
+ return shiftMaterialDetailDomainService.delete(shiftIoDetailIds);
+ }
+
+ /**
+ * 获取移位物料明细详细信息
+ */
+ public ShiftMaterialDetailPO getInfo(Long shiftIoDetailId) {
+ return shiftMaterialDetailDomainService.getInfo(shiftIoDetailId);
+ }
+
+
+ /**
+ * 物料移位
+ */
+
+ public ShiftMaterialDetailPO getShiftMaterialDetail(ShiftMaterialDetailDO shiftMaterialDetailDO) {
+ return shiftMaterialDetailDomainService.getShiftMaterialDetail(shiftMaterialDetailDO);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/sowingDistributionDetails/SowingDistributionDetailsApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/sowingDistributionDetails/SowingDistributionDetailsApplicationService.java
new file mode 100644
index 000000000..221e24a65
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/sowingDistributionDetails/SowingDistributionDetailsApplicationService.java
@@ -0,0 +1,165 @@
+package com.mhd.wms.application.service.sowingDistributionDetails;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.domain.StorageLocationFeignPO;
+import com.mhd.system.api.domain.StorageSectionFeignPO;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.sowingDistributionDetails.repository.po.SowingDistributionDetailsPO;
+import com.mhd.wms.domain.sowingDistributionDetails.repository.todo.SowingDistributionDetailsDO;
+import com.mhd.wms.domain.sowingDistributionDetails.service.SowingDistributionDetailsDomainService;
+import com.mhd.wms.domain.stockOutOrder.repository.todo.AllocationByOrderDO;
+import com.mhd.wms.domain.waveOrder.repository.todo.AllocationSowingWallDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 播种分货明细表ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-05
+ */
+@Service
+@Slf4j
+public class SowingDistributionDetailsApplicationService {
+ @Autowired
+ private SowingDistributionDetailsDomainService sowingDistributionDetailsDomainService;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询播种分货明细表列表
+ */
+
+ public List queryList(SowingDistributionDetailsDO sowingDistributionDetailsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ sowingDistributionDetailsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return sowingDistributionDetailsDomainService.queryList(sowingDistributionDetailsDO);
+ }
+
+
+ /**
+ * 新增播种分货明细表
+ */
+ public Boolean insert(SowingDistributionDetailsDO sowingDistributionDetailsDO) {
+
+ return sowingDistributionDetailsDomainService.insert(sowingDistributionDetailsDO);
+ }
+
+ /**
+ * 修改播种分货明细表
+ */
+ public Boolean update(SowingDistributionDetailsDO sowingDistributionDetailsDO) {
+ return sowingDistributionDetailsDomainService.update(sowingDistributionDetailsDO);
+ }
+
+ /**
+ * 批量删除播种分货明细表
+ */
+ public boolean delete(Long[] waveOutOrderRelevanceIds) {
+ return sowingDistributionDetailsDomainService.delete(waveOutOrderRelevanceIds);
+ }
+
+ /**
+ * 获取播种分货明细表详细信息
+ */
+ public SowingDistributionDetailsPO getInfo(Long waveOutOrderRelevanceId)
+ {
+ return sowingDistributionDetailsDomainService.getInfo(waveOutOrderRelevanceId);
+ }
+
+
+ /**
+ * @description 播种分单
+ * @author ZhouGY
+ * @date 2024/6/6 14:43
+ * @param allocationSowingWallDO
+ * @return List
+ */
+ public List allocationSowingWall(AllocationSowingWallDO allocationSowingWallDO){
+ return sowingDistributionDetailsDomainService.allocationSowingWall(allocationSowingWallDO);
+ }
+
+ /**
+ * @description 物料扫码 将物料分配至对应的播种墙
+ * @author ZhouGY
+ * @date 2024/6/6 16:16
+ * @param allocationSowingWallDO
+ * @return WaveOutOrderRelevancePO
+ */
+ public SowingDistributionDetailsPO materialScanCodeAllocationSowing(AllocationSowingWallDO allocationSowingWallDO){
+ return sowingDistributionDetailsDomainService.materialScanCodeAllocationSowing(allocationSowingWallDO);
+ }
+
+ /**
+ * @description 按单分货
+ * @author ZhouGY
+ * @date 2024/6/6 14:43
+ * @param allocationByOrderDO
+ * @return List
+ */
+ public List allocationByOrder(AllocationByOrderDO allocationByOrderDO){
+ return sowingDistributionDetailsDomainService.allocationByOrder(allocationByOrderDO);
+ }
+
+ /**
+ * @description 物料扫码 将物料分配至对应的出库单物料明细
+ * @author ZhouGY
+ * @date 2024/6/6 16:16
+ * @param allocationByOrderDO
+ * @return WaveOutOrderRelevancePO
+ */
+ public SowingDistributionDetailsPO materialScanCodeAllocationByOrder(AllocationByOrderDO allocationByOrderDO){
+ //封装集货库区信息
+ storageSectionParam(allocationByOrderDO);
+ //封装上架库区信息
+ storageLocationParam(allocationByOrderDO);
+ return sowingDistributionDetailsDomainService.materialScanCodeAllocationByOrder(allocationByOrderDO);
+ }
+
+ /**
+ * @description 封装集货库区信息
+ * @author ZhouGY
+ * @date 2024/5/10 20:28
+ * @param allocationByOrderDO
+ */
+ private void storageSectionParam(AllocationByOrderDO allocationByOrderDO){
+ AjaxResult ajaxResult = systemServiceFeign.getStorageSectionInfoByStorageSectionId(allocationByOrderDO.getStorageSectionId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取集货库区信息失败");
+ }
+ StorageSectionFeignPO storageSectionFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), StorageSectionFeignPO.class);
+ allocationByOrderDO.setStorageCode(storageSectionFeignPO.getStorageCode());
+ allocationByOrderDO.setStorageName(storageSectionFeignPO.getStorageName());
+ }
+
+ /**
+ * @description 封装集货库位信息
+ * @author ZhouGY
+ * @date 2024/5/10 20:28
+ * @param allocationByOrderDO
+ */
+ private void storageLocationParam(AllocationByOrderDO allocationByOrderDO){
+ AjaxResult ajaxResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(allocationByOrderDO.getStorageLocationId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取集货库位信息失败");
+ }
+ StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), StorageLocationFeignPO.class);
+ allocationByOrderDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
+ allocationByOrderDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/sowingWall/SowingWallApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/sowingWall/SowingWallApplicationService.java
new file mode 100644
index 000000000..c49c15cca
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/sowingWall/SowingWallApplicationService.java
@@ -0,0 +1,86 @@
+package com.mhd.wms.application.service.sowingWall;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.sowingWall.repository.po.SowingWallPO;
+import com.mhd.wms.domain.sowingWall.repository.todo.SowingWallDO;
+import com.mhd.wms.domain.sowingWall.service.SowingWallDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 播种墙管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class SowingWallApplicationService {
+ @Autowired
+ private SowingWallDomainService sowingWallDomainService;
+
+
+ /**
+ * 分页查询播种墙管理列表
+ */
+
+ public List queryList(SowingWallDO sowingWallDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ sowingWallDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return sowingWallDomainService.queryList(sowingWallDO);
+ }
+
+
+ /**
+ * 新增播种墙管理
+ */
+ public Boolean insert(SowingWallDO sowingWallDO) {
+
+ return sowingWallDomainService.insert(sowingWallDO);
+ }
+
+ /**
+ * 修改播种墙管理
+ */
+ public Boolean update(SowingWallDO sowingWallDO) {
+ return sowingWallDomainService.update(sowingWallDO);
+ }
+
+ /**
+ * 批量删除播种墙管理
+ */
+ public boolean delete(Long[] sowingWallIds) {
+ return sowingWallDomainService.delete(sowingWallIds);
+ }
+
+ /**
+ * 获取播种墙管理详细信息
+ */
+ public SowingWallPO getInfo(Long sowingWallId)
+ {
+ return sowingWallDomainService.getInfo(sowingWallId);
+ }
+
+
+ /**
+ * @description 根据id作废播种墙
+ * @author ZhouGY
+ * @date 2024/5/13 15:48
+ * @param sowingWallIds
+ * @return Boolean
+ */
+ public Boolean nullifyByIds(Long[] sowingWallIds){
+ return sowingWallDomainService.nullifyByIds(sowingWallIds);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java
new file mode 100644
index 000000000..022d8a2d7
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java
@@ -0,0 +1,101 @@
+package com.mhd.wms.application.service.statementStatistics;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inventoryStandingDetail.service.InventoryStandingDetailDomainService;
+import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
+import com.mhd.wms.domain.statementStatistics.po.ImmediateInventoryPO;
+import com.mhd.wms.domain.statementStatistics.po.WarehousingReportPO;
+import com.mhd.wms.domain.statementStatistics.todo.ImmediateInventoryDO;
+import com.mhd.wms.domain.statementStatistics.todo.WarehousingReportDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 报表管理ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-07
+ */
+@Service
+@Slf4j
+public class StatementStatisticsService {
+ @Autowired
+ private MaterialInventoryDomainService materialInventoryDomainService;
+ @Autowired
+ private InventoryStandingDetailDomainService inventoryStandingDetailDomainService;
+
+ /**
+ * 分页查询即时库存列表
+ */
+
+ public List queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ immediateInventoryDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ immediateInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return materialInventoryDomainService.queryImmediateInventoryList(immediateInventoryDO);
+ }
+
+ /**
+ * 分页查询入库日报表列表
+ */
+
+ public List queryWarehousingReportList(WarehousingReportDO warehousingReportDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ warehousingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ warehousingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inventoryStandingDetailDomainService.queryWarehousingReportList(warehousingReportDO);
+ }
+ /**
+ * 分页查询出库日报表列表
+ */
+
+ public List queryOutboundReportList(WarehousingReportDO warehousingReportDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ warehousingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ warehousingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inventoryStandingDetailDomainService.queryOutboundReportList(warehousingReportDO);
+ }
+
+ /**
+ * 分页查询出进出存合并报表列表
+ */
+
+ public List queryWarehousingAndOutboundReportList(WarehousingReportDO warehousingReportDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ warehousingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ warehousingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return inventoryStandingDetailDomainService.queryWarehousingAndOutboundReportList(warehousingReportDO);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
new file mode 100644
index 000000000..4db45edd8
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
@@ -0,0 +1,228 @@
+package com.mhd.wms.application.service.stockInOrder;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.StringUtils;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.SysDictData;
+import com.mhd.system.api.domain.WarehouseFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
+import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
+import com.mhd.wms.domain.stockInOrder.service.StockInOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 入库单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class StockInOrderApplicationService {
+ @Autowired
+ private StockInOrderDomainService stockInOrderDomainService;
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+
+ /**
+ * 分页查询入库单列表
+ */
+
+ public List queryList(StockInOrderDO stockInOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return stockInOrderDomainService.queryList(stockInOrderDO);
+ }
+
+
+ /**
+ * 新增入库单
+ */
+ public Boolean insert(StockInOrderDO stockInOrderDO) {
+ //设置仓库
+ setWarehouseInfo(stockInOrderDO);
+ //设置货主信息
+ shipperParam(stockInOrderDO);
+ //设置供应商信息
+ supplierParam(stockInOrderDO);
+ //设置数据字典键值
+ setDataDict(stockInOrderDO);
+ return stockInOrderDomainService.insert(stockInOrderDO);
+ }
+
+ /**
+ * 修改入库单
+ */
+ public Boolean update(StockInOrderDO stockInOrderDO) {
+ //设置仓库
+ setWarehouseInfo(stockInOrderDO);
+ //设置货主信息
+ shipperParam(stockInOrderDO);
+ //设置供应商信息
+ supplierParam(stockInOrderDO);
+ //设置数据字典键值
+ setDataDict(stockInOrderDO);
+ return stockInOrderDomainService.update(stockInOrderDO);
+ }
+
+ /**
+ * 批量删除入库单
+ */
+ public boolean delete(Long[] inOrderIds) {
+ return stockInOrderDomainService.delete(inOrderIds);
+ }
+
+ /**
+ * 获取入库单详细信息
+ */
+ public StockInOrderPO getInfo(Long inOrderId)
+ {
+ return stockInOrderDomainService.getInfo(inOrderId);
+ }
+
+
+ /**
+ * @description 审核入库单
+ * @author ZhouGY
+ * @date 2024/5/21 13:53
+ * @param stockInOrderDO
+ * @return Boolean
+ */
+ public Boolean auditState(StockInOrderDO stockInOrderDO){
+ return stockInOrderDomainService.auditState(stockInOrderDO);
+ }
+
+ /**
+ * @description 取消入库单
+ * @author ZhouGY
+ * @date 2024/5/21 13:53
+ * @param stockInOrderDO
+ * @return Boolean
+ */
+ public Boolean cancelOrder(StockInOrderDO stockInOrderDO){
+ return stockInOrderDomainService.cancelOrder(stockInOrderDO);
+ }
+
+
+ /**
+ * @description 关闭入库单
+ * @author ZhouGY
+ * @date 2024/5/21 13:53
+ * @param stockInOrderDO
+ * @return Boolean
+ */
+ public Boolean closeOrder(StockInOrderDO stockInOrderDO){
+ return stockInOrderDomainService.closeOrder(stockInOrderDO);
+ }
+
+ /**
+ * @description 设置仓库信息
+ * @author ZhouGY
+ * @date 2024/4/7 10:01
+ * @param stockInOrderDO
+ */
+ private void setWarehouseInfo(StockInOrderDO stockInOrderDO) {
+ AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockInOrderDO.getWarehouseId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取仓库信息失败");
+ }
+ WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
+ stockInOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
+ stockInOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
+ }
+
+ /**
+ * @description 封装货主信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockInOrderDO
+ */
+ private void shipperParam(StockInOrderDO stockInOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockInOrderDO.getShipperId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取货主信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockInOrderDO.setShipperCode(userPo.getUserMemberCode());
+ stockInOrderDO.setShipperName(userPo.getUserName());
+ }
+
+ /**
+ * @description 封装供应商信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockInOrderDO
+ */
+ private void supplierParam(StockInOrderDO stockInOrderDO){
+ if (ObjectUtil.isNotNull(stockInOrderDO.getSupplierId())){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockInOrderDO.getSupplierId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取供应商信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockInOrderDO.setSupplierName(userPo.getUserName());
+ }
+ }
+
+ /**
+ * @description 设置数据字典键值
+ * @author ZhouGY
+ * @date 2024/4/7 14:33
+ * @param stockInOrderDO
+ */
+ private void setDataDict(StockInOrderDO stockInOrderDO){
+ //翻译单据类型
+ AjaxResult documentTypeResult = systemServiceFeign.selectListByDictType(DictCode.DOCUMENT_TYPE.getCode());
+ if (!"200".equals(String.valueOf(documentTypeResult.get("code")))) {
+ throw new ServiceException("单据类型数据字典不存在");
+ }
+ List documentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(documentTypeResult.get("data")), SysDictData.class);
+
+ SysDictData documentTypeData = documentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockInOrderDO.getOrderTypeCode())).findAny().orElse(null);
+ if (null == documentTypeData) {
+ throw new ServiceException("单据类型【" + stockInOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
+ }
+ stockInOrderDO.setOrderTypeName(documentTypeData.getDictLabel());
+
+ //翻译优先级别类型
+ if (StringUtils.isNotBlank(stockInOrderDO.getPriorityLevelCode())){
+ AjaxResult priorityLevelResult = systemServiceFeign.selectListByDictType(DictCode.PRIORITY_LEVEL.getCode());
+ if (!"200".equals(String.valueOf(priorityLevelResult.get("code")))) {
+ throw new ServiceException("优先级别类型数据字典不存在");
+ }
+ List priorityLevelDataList = JSON.parseArray(JSONUtil.toJsonStr(priorityLevelResult.get("data")), SysDictData.class);
+
+ SysDictData priorityLevelData = priorityLevelDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockInOrderDO.getPriorityLevelCode())).findAny().orElse(null);
+ if (null == priorityLevelData) {
+ throw new ServiceException("优先级别类型【" + stockInOrderDO.getPriorityLevelCode() + "】数据字典不存在 请联系管理员");
+ }
+ stockInOrderDO.setPriorityLevelName(priorityLevelData.getDictLabel());
+ }
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInTaskOrder/StockInTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInTaskOrder/StockInTaskOrderApplicationService.java
new file mode 100644
index 000000000..1424b7e18
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInTaskOrder/StockInTaskOrderApplicationService.java
@@ -0,0 +1,78 @@
+package com.mhd.wms.application.service.stockInTaskOrder;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.stockInTaskOrder.repository.po.StockInTaskOrderPO;
+import com.mhd.wms.domain.stockInTaskOrder.repository.todo.StockInTaskOrderDO;
+import com.mhd.wms.domain.stockInTaskOrder.service.StockInTaskOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 入库作业单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class StockInTaskOrderApplicationService {
+ @Autowired
+ private StockInTaskOrderDomainService stockInTaskOrderDomainService;
+
+
+ /**
+ * 分页查询入库作业单列表
+ */
+
+ public List queryList(StockInTaskOrderDO stockInTaskOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ stockInTaskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ stockInTaskOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return stockInTaskOrderDomainService.queryList(stockInTaskOrderDO);
+ }
+
+
+ /**
+ * 新增入库作业单
+ */
+ public Boolean insert(StockInTaskOrderDO stockInTaskOrderDO) {
+
+ return stockInTaskOrderDomainService.insert(stockInTaskOrderDO);
+ }
+
+ /**
+ * 修改入库作业单
+ */
+ public Boolean update(StockInTaskOrderDO stockInTaskOrderDO) {
+ return stockInTaskOrderDomainService.update(stockInTaskOrderDO);
+ }
+
+ /**
+ * 批量删除入库作业单
+ */
+ public boolean delete(Long[] inTaskOrderIds) {
+ return stockInTaskOrderDomainService.delete(inTaskOrderIds);
+ }
+
+ /**
+ * 获取入库作业单详细信息
+ */
+ public StockInTaskOrderPO getInfo(Long inTaskOrderId)
+ {
+ return stockInTaskOrderDomainService.getInfo(inTaskOrderId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
new file mode 100644
index 000000000..28e3f82d8
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
@@ -0,0 +1,524 @@
+package com.mhd.wms.application.service.stockOutOrder;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.constant.SnowFlakeConstants;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.IgnoreNullUtil;
+import com.mhd.common.core.utils.StringUtils;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.utils.uuid.IdGenerator;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.StorageLocationFeignPO;
+import com.mhd.system.api.domain.SysDictData;
+import com.mhd.system.api.domain.WarehouseFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
+import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
+import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialCheckPO;
+import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO;
+import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
+import com.mhd.wms.domain.outMaterialDetail.service.OutMaterialDetailDomainService;
+import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO;
+import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
+import com.mhd.wms.domain.stockOutOrder.service.StockOutOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 出库单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+@Slf4j
+public class StockOutOrderApplicationService {
+ @Autowired
+ private StockOutOrderDomainService stockOutOrderDomainService;
+ @Autowired
+ private OutMaterialDetailDomainService outMaterialDetailDomainService;
+ @Autowired
+ private MaterialInventoryDomainService materialInventoryDomainService;
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+ @Autowired
+ private IdGenerator idGenerator;
+
+
+ /**
+ * 分页查询出库单列表
+ */
+
+ public List queryList(StockOutOrderDO stockOutOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ stockOutOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ stockOutOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return stockOutOrderDomainService.queryList(stockOutOrderDO);
+ }
+
+
+ /**
+ * 新增出库单
+ */
+ public Boolean insert(StockOutOrderDO stockOutOrderDO) {
+ //设置仓库
+ setWarehouseInfo(stockOutOrderDO);
+ //设置货主信息
+ shipperParam(stockOutOrderDO);
+ //设置客户信息
+ customerParam(stockOutOrderDO);
+ //设置数据字典键值
+ setDataDict(stockOutOrderDO);
+ return stockOutOrderDomainService.insert(stockOutOrderDO);
+ }
+
+ /**
+ * 修改出库单
+ */
+ public Boolean update(StockOutOrderDO stockOutOrderDO) {
+ return stockOutOrderDomainService.update(stockOutOrderDO);
+ }
+
+ /**
+ * 修改出库单
+ */
+ public Boolean close(StockOutOrderDO stockOutOrderDO) {
+ return stockOutOrderDomainService.close(stockOutOrderDO);
+ }
+
+ /**
+ * 批量删除出库单
+ */
+ public boolean delete(Long[] outOrderIds) {
+ return stockOutOrderDomainService.delete(outOrderIds);
+ }
+
+ /**
+ * 获取出库单详细信息
+ */
+ public StockOutOrderPO getInfoChildren(Long outOrderId)
+ {
+ return stockOutOrderDomainService.getInfoChildren(outOrderId);
+ }
+
+ /**
+ * 获取出库单详细信息
+ */
+ public StockOutOrderPO getInfoByApp(Long outOrderId)
+ {
+ return stockOutOrderDomainService.getInfoByApp(outOrderId);
+ }
+
+ /**
+ * @description 审核出库单
+ * @author ZhouGY
+ * @date 2024/5/21 13:53
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean auditState(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.auditState(stockOutOrderDO);
+ }
+
+ /**
+ * @description 手动分配
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean manualAssign(StockOutOrderDO stockOutOrderDO){
+ StockOutOrderDO assembleStockOutOrderDO = assembleParamByOutOrder(stockOutOrderDO);
+ return stockOutOrderDomainService.manualAssign(assembleStockOutOrderDO);
+ }
+
+ public Boolean autoAssign(StockOutOrderDO stockOutOrderDO){
+ StockOutOrderDO assembleStockOutOrderDO = assembleParamByOutOrder(stockOutOrderDO);
+ return stockOutOrderDomainService.autoAssign(assembleStockOutOrderDO);
+ }
+
+ /**
+ * @description 取消分配
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean cancelAssign(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.cancelAssign(stockOutOrderDO);
+ }
+
+
+ /**
+ * @description 复核下发
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean checkTaskDistribution(StockOutOrderDO stockOutOrderDO){
+ //设置作业人员信息
+ checkOperatorsParam(stockOutOrderDO);
+ return stockOutOrderDomainService.checkTaskDistribution(stockOutOrderDO);
+ }
+
+ /**
+ * @description 生成拣货单
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean genPickingOrder(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.genPickingOrder(stockOutOrderDO);
+ }
+
+ /**
+ * 获取出库单复核详细信息
+ */
+ public StockOutOrderPO getCheckInfo(StockOutOrderDO stockOutOrderDO) {
+ return stockOutOrderDomainService.getCheckInfo(stockOutOrderDO);
+ }
+
+ /**
+ * @description 单件复核
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public OutMaterialCheckPO singleCheck(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.singleCheck(stockOutOrderDO);
+ }
+
+ /**
+ * @description 批量复核
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean batchCheck(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.batchCheck(stockOutOrderDO);
+ }
+
+ /**
+ * @description 批量取消复核
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean batchCancelCheck(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.batchCancelCheck(stockOutOrderDO);
+ }
+
+ /**
+ * @description PDA复核
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean checkByApp(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.checkByApp(stockOutOrderDO);
+ }
+
+ /**
+ * @description 复核确认
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean checkConfirm(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.checkConfirm(stockOutOrderDO);
+ }
+
+
+ /**
+ * @description 根据指定规则生成波次单
+ * @author ZhouGY
+ * @date 2024/6/7 15:06
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ public Boolean genWaveOrder(StockOutOrderDO stockOutOrderDO){
+ return stockOutOrderDomainService.genWaveOrder(stockOutOrderDO);
+ }
+
+ /**
+ * @description 生成补货单
+ * @author ZhouGY
+ * @date 2024/6/15 17:41
+ * @param outOrderId
+ * @return Boolean
+ */
+ public Boolean genReplenishmentNotice(Long outOrderId){
+ return stockOutOrderDomainService.genReplenishmentNotice(outOrderId);
+ }
+
+
+ /**
+ * @description 出库分配 装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param stockOutOrderDO
+ * @return Boolean
+ */
+ private StockOutOrderDO assembleParamByOutOrder(StockOutOrderDO stockOutOrderDO) {
+ StockOutOrderPO stockOutOrderPO = stockOutOrderDomainService.getInfo(stockOutOrderDO.getOutOrderId());
+ if (stockOutOrderPO == null){
+ throw new ServiceException("出库单不存在");
+ }
+ if (stockOutOrderPO.getStatus() > 4) {
+ throw new ServiceException("出库单已完成分配");
+ }
+ StockOutOrderDO returnStockOutOrderDO = new StockOutOrderDO();
+ returnStockOutOrderDO.setUpdateTime(stockOutOrderDO.getUpdateTime());
+ returnStockOutOrderDO.setOutOrderId(stockOutOrderPO.getOutOrderId());
+ returnStockOutOrderDO.setOrganizationId(stockOutOrderPO.getOrganizationId());
+ returnStockOutOrderDO.setOrganizationName(stockOutOrderPO.getOrganizationName());
+ returnStockOutOrderDO.setTopOrganizationId(stockOutOrderPO.getTopOrganizationId());
+ returnStockOutOrderDO.setOutOrderNumber(stockOutOrderPO.getOutOrderNumber());
+ OutMaterialDetailDO outMaterialDetailDOByQuery = new OutMaterialDetailDO();
+ outMaterialDetailDOByQuery.setOutOrderNumber(stockOutOrderPO.getOutOrderNumber());
+ List outMaterialDetailPODbList = outMaterialDetailDomainService.queryList(outMaterialDetailDOByQuery);
+ Map outMaterialDetailDbMap = outMaterialDetailPODbList.stream().collect(Collectors.toMap(OutMaterialDetailPO::getMaterialDetailId, Function.identity()));
+ List returnOutMaterialDetailDOList = new ArrayList<>();
+ for (OutMaterialDetailDO outMaterialDetailDO : stockOutOrderDO.getMaterialDetailList()){
+ //设置物料更多属性信息
+ OutMaterialDetailPO outMaterialDetailPO = outMaterialDetailDbMap.get(outMaterialDetailDO.getMaterialDetailId());
+ if (outMaterialDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (outMaterialDetailDO.getAllocationQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进行分配直接跳过
+ continue;
+ }
+ BigDecimal totalAllocationQuantity = BigDecimal.ZERO;//当前作业分配数量
+ //判断收否分配 第一次分配 修改分配数量
+// if (outMaterialDetailPO.getAllocationQuantity().compareTo(BigDecimal.ZERO) == 0){
+ if (2 != outMaterialDetailDO.getAllowModify()){
+ //设置上架库位
+ setStorageLocationInfo(outMaterialDetailDO);
+ //设置库存信息
+ setMaterialInventory(outMaterialDetailDO);
+ //分配后 设置该记录不允许被修改
+ outMaterialDetailDO.setAllowModify(2);
+ //未分配过货 统计到当前分配单作业分配数
+ totalAllocationQuantity = outMaterialDetailDO.getAllocationQuantity();
+ }
+ //判断是否存在子项
+ List returnOutMaterialDetailDOChildList = new ArrayList<>();
+ List outMaterialDetailDOChildList = outMaterialDetailDO.getChildren();
+ if (!CollectionUtils.isEmpty(outMaterialDetailDOChildList)){
+ for (OutMaterialDetailDO outMaterialDetailDOChild : outMaterialDetailDOChildList){
+ OutMaterialDetailPO outMaterialDetailPOChildDb = outMaterialDetailDbMap.get(outMaterialDetailDOChild.getMaterialDetailId());
+ if (outMaterialDetailPOChildDb != null){
+ continue;
+ }
+ OutMaterialDetailDO returnOutMaterialDetailDOChild = new OutMaterialDetailDO();
+ BeanUtils.copyProperties(outMaterialDetailPO, returnOutMaterialDetailDOChild, "materialDetailId","createBy","createByName","createTime",
+ "updateBy","updateByName","updateTime");
+ BeanUtils.copyProperties(outMaterialDetailDOChild, returnOutMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(outMaterialDetailDOChild));
+ if (ObjectUtil.isNotNull(returnOutMaterialDetailDOChild.getMaterialDetailId()) && returnOutMaterialDetailDOChild.getMaterialDetailId() == 0){
+ returnOutMaterialDetailDOChild.setMaterialDetailId(null);
+ }
+ //设置上架库位
+ setStorageLocationInfo(outMaterialDetailDO);
+ //设置库存信息
+ setMaterialInventory(outMaterialDetailDO);
+ //分配后 设置该记录不允许被修改
+ returnOutMaterialDetailDOChild.setAllowModify(2);
+ returnOutMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ returnOutMaterialDetailDOChild.setLevel(2);
+ returnOutMaterialDetailDOChild.setParentUniqueId(outMaterialDetailPO.getUniqueId());
+ returnOutMaterialDetailDOChildList.add(returnOutMaterialDetailDOChild);
+ totalAllocationQuantity = totalAllocationQuantity.add(returnOutMaterialDetailDOChild.getAllocationQuantity());
+ }
+ }
+ //主单当分配作业数量和
+ outMaterialDetailDO.setAlreadyAllocationQuantity(totalAllocationQuantity);
+ OutMaterialDetailDO returnOutMaterialDetailDO = new OutMaterialDetailDO();
+ BeanUtils.copyProperties(outMaterialDetailPO, returnOutMaterialDetailDO);
+ BeanUtils.copyProperties(outMaterialDetailDO, returnOutMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(outMaterialDetailDO));
+ returnOutMaterialDetailDO.setChildren(returnOutMaterialDetailDOChildList);
+ returnOutMaterialDetailDOList.add(returnOutMaterialDetailDO);
+ }
+ returnStockOutOrderDO.setMaterialDetailList(returnOutMaterialDetailDOList);
+ return returnStockOutOrderDO;
+ }
+
+ /**
+ * @description 设置仓库信息
+ * @author ZhouGY
+ * @date 2024/4/7 10:01
+ * @param stockOutOrderDO
+ */
+ private void setWarehouseInfo(StockOutOrderDO stockOutOrderDO) {
+ AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockOutOrderDO.getWarehouseId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取仓库信息失败");
+ }
+ WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
+ stockOutOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
+ stockOutOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
+ }
+
+ /**
+ * @description 封装货主信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockOutOrderDO
+ */
+ private void shipperParam(StockOutOrderDO stockOutOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockOutOrderDO.getShipperId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取货主信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockOutOrderDO.setShipperCode(userPo.getUserMemberCode());
+ stockOutOrderDO.setShipperName(userPo.getUserName());
+ }
+
+ /**
+ * @description 封装客户信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockOutOrderDO
+ */
+ private void customerParam(StockOutOrderDO stockOutOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockOutOrderDO.getCustomerId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取客户信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockOutOrderDO.setCustomerCode(userPo.getUserMemberCode());
+ stockOutOrderDO.setCustomerName(userPo.getUserName());
+ }
+
+ /**
+ * @description 设置数据字典键值
+ * @author ZhouGY
+ * @date 2024/4/7 14:33
+ * @param stockOutOrderDO
+ */
+ private void setDataDict(StockOutOrderDO stockOutOrderDO){
+ //翻译单据类型
+ AjaxResult documentTypeResult = systemServiceFeign.selectListByDictType(DictCode.OUT_DOCUMENT_TYPE.getCode());
+ if (!"200".equals(String.valueOf(documentTypeResult.get("code")))) {
+ throw new ServiceException("单据类型数据字典不存在");
+ }
+ List documentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(documentTypeResult.get("data")), SysDictData.class);
+
+ SysDictData documentTypeData = documentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockOutOrderDO.getOrderTypeCode())).findAny().orElse(null);
+ if (null == documentTypeData) {
+ throw new ServiceException("单据类型【" + stockOutOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
+ }
+ stockOutOrderDO.setOrderTypeName(documentTypeData.getDictLabel());
+
+ if (StringUtils.isNotBlank(stockOutOrderDO.getPriorityLevelCode())){
+ //翻译优先级别类型
+ AjaxResult priorityLevelResult = systemServiceFeign.selectListByDictType(DictCode.PRIORITY_LEVEL.getCode());
+ if (!"200".equals(String.valueOf(priorityLevelResult.get("code")))) {
+ throw new ServiceException("优先级别类型数据字典不存在");
+ }
+ List priorityLevelDataList = JSON.parseArray(JSONUtil.toJsonStr(priorityLevelResult.get("data")), SysDictData.class);
+
+ SysDictData priorityLevelData = priorityLevelDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockOutOrderDO.getPriorityLevelCode())).findAny().orElse(null);
+ if (null == priorityLevelData) {
+ throw new ServiceException("优先级别类型【" + stockOutOrderDO.getPriorityLevelCode() + "】数据字典不存在 请联系管理员");
+ }
+ stockOutOrderDO.setPriorityLevelName(priorityLevelData.getDictLabel());
+ }
+ }
+
+ /**
+ * @description 设置上架库位信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param outMaterialDetailDO
+ */
+ private void setStorageLocationInfo(OutMaterialDetailDO outMaterialDetailDO){
+ AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(outMaterialDetailDO.getStorageLocationId());
+ if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
+ throw new ServiceException("获取上架库位信息失败");
+ }
+ StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
+ outMaterialDetailDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
+ outMaterialDetailDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
+ outMaterialDetailDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
+ outMaterialDetailDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
+ outMaterialDetailDO.setStorageCode(storageLocationFeignPO.getStorageCode());
+ outMaterialDetailDO.setStorageName(storageLocationFeignPO.getStorageName());
+ outMaterialDetailDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
+ outMaterialDetailDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
+ outMaterialDetailDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
+ }
+
+ /**
+ * @description 封装作业人员信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockOutOrderDO
+ */
+ private void checkOperatorsParam(StockOutOrderDO stockOutOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockOutOrderDO.getCheckOperatorsBy());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取作业人员信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockOutOrderDO.setCheckOperatorsName(userPo.getUserName());
+ }
+
+ /**
+ * @description 设置库存信息
+ * @author ZhouGY
+ * @date 2024/7/19 20:17
+ * @param outMaterialDetailDO
+ */
+ private void setMaterialInventory(OutMaterialDetailDO outMaterialDetailDO){
+ if (ObjectUtil.isNull(outMaterialDetailDO.getMaterialInventoryId()) || outMaterialDetailDO.getMaterialInventoryId() == 0){
+ return;
+ }
+ MaterialInventoryPO materialInventoryPO = materialInventoryDomainService.getInfo(outMaterialDetailDO.getMaterialInventoryId());
+ if (materialInventoryPO == null){
+ throw new ServiceException("物料库存信息不存在");
+ }
+ outMaterialDetailDO.setBatchNumber(materialInventoryPO.getBatchNumber());
+ outMaterialDetailDO.setMaterialStatusCode(materialInventoryPO.getMaterialStatusCode());
+ outMaterialDetailDO.setMaterialStatusName(materialInventoryPO.getMaterialStatusName());
+ outMaterialDetailDO.setContainerId(materialInventoryPO.getContainerId());
+ outMaterialDetailDO.setContainerCode(materialInventoryPO.getContainerCode());
+ outMaterialDetailDO.setContainerType(materialInventoryPO.getContainerType());
+ outMaterialDetailDO.setContainerTypeName(materialInventoryPO.getContainerTypeName());
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java
new file mode 100644
index 000000000..3d4a4bdfa
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java
@@ -0,0 +1,183 @@
+package com.mhd.wms.application.service.stockOutTaskOrder;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.stockOutTaskOrder.repository.po.StockOutTaskOrderPO;
+import com.mhd.wms.domain.stockOutTaskOrder.repository.todo.StockOutTaskOrderDO;
+import com.mhd.wms.domain.stockOutTaskOrder.service.StockOutTaskOrderDomainService;
+import com.mhd.wms.domain.taskPickingMaterialDetail.repository.po.TaskPickingMaterialDetailPO;
+import com.mhd.wms.domain.taskPickingMaterialDetail.repository.todo.TaskPickingMaterialDetailDO;
+import com.mhd.wms.domain.taskPickingMaterialDetail.service.TaskPickingMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 拣货作业单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+@Slf4j
+public class StockOutTaskOrderApplicationService {
+ @Autowired
+ private StockOutTaskOrderDomainService stockOutTaskOrderDomainService;
+ @Autowired
+ private TaskPickingMaterialDetailDomainService taskPickingMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询拣货作业单列表
+ */
+
+ public List queryList(StockOutTaskOrderDO stockOutTaskOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ stockOutTaskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ stockOutTaskOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return stockOutTaskOrderDomainService.queryList(stockOutTaskOrderDO);
+ }
+
+
+ /**
+ * 新增拣货作业单
+ */
+ public Boolean insert(StockOutTaskOrderDO stockOutTaskOrderDO) {
+
+ return stockOutTaskOrderDomainService.insert(stockOutTaskOrderDO);
+ }
+
+ /**
+ * 修改拣货作业单
+ */
+ public Boolean update(StockOutTaskOrderDO stockOutTaskOrderDO) {
+ return stockOutTaskOrderDomainService.update(stockOutTaskOrderDO);
+ }
+
+ /**
+ * 批量删除拣货作业单
+ */
+ public boolean delete(Long[] outTaskOrderIds) {
+ return stockOutTaskOrderDomainService.delete(outTaskOrderIds);
+ }
+
+ /**
+ * 获取拣货作业单详细信息
+ */
+ public StockOutTaskOrderPO getInfo(Long outTaskOrderId)
+ {
+ return stockOutTaskOrderDomainService.getInfo(outTaskOrderId);
+ }
+
+ /**
+ * 按库位拣货 获取拣货作业单详细信息
+ */
+ public StockOutTaskOrderPO getInfoByStorageLocation(Long outTaskOrderId)
+ {
+ return stockOutTaskOrderDomainService.getInfoByStorageLocation(outTaskOrderId);
+ }
+
+ /**
+ *按物料拣货 获取拣货作业单详细信息
+ */
+ public StockOutTaskOrderPO getInfoByMaterial(Long outTaskOrderId)
+ {
+ return stockOutTaskOrderDomainService.getInfoByMaterial(outTaskOrderId);
+ }
+
+ /**
+ * @description 按物料拣货
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param stockOutTaskOrderDO
+ * @return Boolean
+ */
+ public Boolean pickingByMaterial(StockOutTaskOrderDO stockOutTaskOrderDO){
+ StockOutTaskOrderDO assembleStockOutTaskOrderDO = assembleParamByTaskOrder(stockOutTaskOrderDO);
+ return stockOutTaskOrderDomainService.pickingByMaterial(assembleStockOutTaskOrderDO);
+ }
+
+ /**
+ * @description 完成拣货
+ * @author ZhouGY
+ * @date 2024/5/30 10:30
+ * @param outTaskOrderId
+ * @return Boolean
+ */
+ public Boolean completePicking(Long outTaskOrderId){
+ return stockOutTaskOrderDomainService.completePicking(outTaskOrderId);
+ }
+
+ /**
+ * @description 拣货 装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param stockOutTaskOrderDO
+ * @return Boolean
+ */
+ private StockOutTaskOrderDO assembleParamByTaskOrder(StockOutTaskOrderDO stockOutTaskOrderDO) {
+ StockOutTaskOrderPO stockOutTaskOrderPO = stockOutTaskOrderDomainService.getInfo(stockOutTaskOrderDO.getOutTaskOrderId());
+ if (stockOutTaskOrderPO == null){
+ throw new ServiceException("拣货作业单不存在");
+ }
+ if (stockOutTaskOrderPO.getStatus() > 2) {
+ throw new ServiceException("拣货作业单已完成拣货");
+ }
+ StockOutTaskOrderDO returnStockOutTaskOrderDO = new StockOutTaskOrderDO();
+ returnStockOutTaskOrderDO.setUpdateTime(stockOutTaskOrderDO.getUpdateTime());
+ returnStockOutTaskOrderDO.setOutTaskOrderId(stockOutTaskOrderPO.getOutTaskOrderId());
+ returnStockOutTaskOrderDO.setOrganizationId(stockOutTaskOrderPO.getOrganizationId());
+ returnStockOutTaskOrderDO.setOrganizationName(stockOutTaskOrderPO.getOrganizationName());
+ returnStockOutTaskOrderDO.setTopOrganizationId(stockOutTaskOrderPO.getTopOrganizationId());
+ returnStockOutTaskOrderDO.setTaskNumber(stockOutTaskOrderPO.getTaskNumber());
+ TaskPickingMaterialDetailDO taskPickingMaterialDetailDOByQuery = new TaskPickingMaterialDetailDO();
+ taskPickingMaterialDetailDOByQuery.setTaskNumber(stockOutTaskOrderPO.getTaskNumber());
+ List taskPickingMaterialDetailPODbList = taskPickingMaterialDetailDomainService.queryList(taskPickingMaterialDetailDOByQuery);
+ Map taskPickingMaterialDetailDbMap = taskPickingMaterialDetailPODbList.stream().collect(Collectors.toMap(TaskPickingMaterialDetailPO::getMaterialDetailId, Function.identity()));
+ List returnTaskPickingMaterialDetailDOList = new ArrayList<>();
+ for (TaskPickingMaterialDetailDO taskPickingMaterialDetailDO : stockOutTaskOrderDO.getTaskPickingMaterialDetailList()){
+ //设置物料更多属性信息
+ TaskPickingMaterialDetailPO taskPickingMaterialDetailPO = taskPickingMaterialDetailDbMap.get(taskPickingMaterialDetailDO.getMaterialDetailId());
+ if (taskPickingMaterialDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (ObjectUtil.isNull(taskPickingMaterialDetailDO.getActualQuantity()) || taskPickingMaterialDetailDO.getActualQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进行拣货直接跳过
+ continue;
+ }
+ TaskPickingMaterialDetailDO returnTaskPickingMaterialDetailDO = new TaskPickingMaterialDetailDO();
+ BeanUtils.copyProperties(taskPickingMaterialDetailPO, returnTaskPickingMaterialDetailDO);
+ returnTaskPickingMaterialDetailDO.setActualQuantity(taskPickingMaterialDetailDO.getActualQuantity());
+ //是否开启了序列号管理
+ if (taskPickingMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(taskPickingMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + taskPickingMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnTaskPickingMaterialDetailDO.setMaterialDetailSerialNumberList(taskPickingMaterialDetailDO.getMaterialDetailSerialNumberList());
+ returnTaskPickingMaterialDetailDOList.add(returnTaskPickingMaterialDetailDO);
+ }
+ returnStockOutTaskOrderDO.setTaskPickingMaterialDetailList(returnTaskPickingMaterialDetailDOList);
+ return returnStockOutTaskOrderDO;
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java
new file mode 100644
index 000000000..392287747
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java
@@ -0,0 +1,743 @@
+package com.mhd.wms.application.service.stockReceiptOrder;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.constant.SnowFlakeConstants;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.enums.DictCode;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.DateUtils;
+import com.mhd.common.core.utils.IgnoreNullUtil;
+import com.mhd.common.core.utils.OrderSequence;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.utils.uuid.IdGenerator;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.*;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
+import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService;
+import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
+import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
+import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
+import com.mhd.wms.domain.materialWarehouseControl.repository.facade.IMaterialWarehouseControlService;
+import com.mhd.wms.domain.materialWarehouseControl.repository.po.MaterialWarehouseControlPO;
+import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO;
+import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
+import com.mhd.wms.domain.receiptMaterialDetail.service.ReceiptMaterialDetailDomainService;
+import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
+import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO;
+import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO;
+import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
+import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 收货单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class StockReceiptOrderApplicationService {
+ @Autowired
+ private StockReceiptOrderDomainService stockReceiptOrderDomainService;
+ @Autowired
+ private ReceiptMaterialDetailDomainService receiptMaterialDetailDomainService;
+ @Autowired
+ private IMaterialWarehouseControlService materialWarehouseControlService;
+ @Autowired
+ private IMaterialBaseInfoService materialBaseInfoService;
+ @Autowired
+ private IMaterialGoodsRuleService materialGoodsRuleService;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private IdGenerator idGenerator;
+
+
+ /**
+ * 分页查询收货单列表
+ */
+
+ public List queryList(StockReceiptOrderDO stockReceiptOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ stockReceiptOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return stockReceiptOrderDomainService.queryList(stockReceiptOrderDO);
+ }
+
+ /**
+ * 修改收货单
+ */
+ public Boolean update(StockReceiptOrderDO stockReceiptOrderDO) {
+ return stockReceiptOrderDomainService.update(stockReceiptOrderDO);
+ }
+
+ /**
+ * 批量删除收货单
+ */
+ public boolean delete(Long[] receiptOrderIds) {
+ return stockReceiptOrderDomainService.delete(receiptOrderIds);
+ }
+
+ /**
+ * 获取收货单详细信息
+ */
+ public StockReceiptOrderPO getInfo(Long receiptOrderId)
+ {
+ StockReceiptOrderPO stockReceiptOrderPO = stockReceiptOrderDomainService.getInfo(receiptOrderId);
+ ReceiptMaterialDetailDO receiptMaterialDetailDO = new ReceiptMaterialDetailDO();
+ receiptMaterialDetailDO.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
+ List receiptMaterialDetailPOList = receiptMaterialDetailDomainService.queryListChildren(receiptMaterialDetailDO);
+ stockReceiptOrderPO.setMaterialDetailList(receiptMaterialDetailPOList);
+ return stockReceiptOrderPO;
+ }
+
+ /**
+ * 获取收货单详细信息
+ */
+ public StockReceiptOrderPO getInfoByApp(Long receiptOrderId)
+ {
+ return stockReceiptOrderDomainService.getInfoByApp(receiptOrderId);
+ }
+
+
+ /**
+ * @description 分配月台
+ * @author ZhouGY
+ * @date 2024/5/22 15:19
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean allocationPlatform(StockReceiptOrderDO stockReceiptOrderDO){
+ //封装月台信息
+ platformParam(stockReceiptOrderDO);
+ return stockReceiptOrderDomainService.allocationPlatform(stockReceiptOrderDO);
+ }
+
+ /**
+ * @description 释放月台
+ * @author ZhouGY
+ * @date 2024/5/22 15:19
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean releasePlatform(StockReceiptOrderDO stockReceiptOrderDO){
+ return stockReceiptOrderDomainService.releasePlatform(stockReceiptOrderDO);
+ }
+
+
+ /**
+ * @description 任务下发
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean taskDistribution(StockReceiptOrderDO stockReceiptOrderDO){
+ //设置作业人员信息
+ operatorsParam(stockReceiptOrderDO);
+ return stockReceiptOrderDomainService.taskDistribution(stockReceiptOrderDO);
+ }
+
+ /**
+ * @description 收货
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean receivingGoods(StockReceiptOrderDO stockReceiptOrderDO){
+ //收货装配参数
+ StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
+ return stockReceiptOrderDomainService.receivingGoods(assembleStockReceiptOrderDO);
+ }
+
+ /**
+ * @description 收货
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean receivingGoodsByApp(StockReceiptOrderDO stockReceiptOrderDO){
+ List receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
+ receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> {
+ List receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren();
+ ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
+ receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
+ receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
+ receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
+ receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
+ receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
+ receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
+ receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
+ receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
+ //只留二级
+ List receiptMaterialDetailDOChildrenList2 = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
+ receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
+ });
+ //收货装配参数
+ StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
+ return stockReceiptOrderDomainService.receivingGoods(assembleStockReceiptOrderDO);
+ }
+
+ /**
+ * @description 完成收货
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param receiptOrderId
+ * @return Boolean
+ */
+ public Boolean completeReceipt(Long receiptOrderId){
+ return stockReceiptOrderDomainService.completeReceipt(receiptOrderId);
+ }
+
+ public Boolean genStockShelfOrder(Long receiptOrderId){
+ return stockReceiptOrderDomainService.genStockShelfOrder(receiptOrderId);
+ }
+
+ /**
+ * @description 整单收货
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param receiptOrderIds
+ * @return Boolean
+ */
+ public Boolean entireReceipt(Long[] receiptOrderIds){
+ return stockReceiptOrderDomainService.entireReceipt(receiptOrderIds);
+ }
+
+ /**
+ * @description 无单收货
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean noOrderReceipt(StockReceiptOrderDO stockReceiptOrderDO){
+ //设置仓库
+ setWarehouseInfo(stockReceiptOrderDO);
+ //设置货主信息
+ shipperParam(stockReceiptOrderDO);
+ //设置供应商信息
+ supplierParam(stockReceiptOrderDO);
+ //收货装配参数
+ List receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
+ receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> {
+ List receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren();
+ ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.get(0);
+ receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
+ receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
+ receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
+ receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
+ receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
+ receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
+ receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
+ receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
+ //只留二级
+ List receiptMaterialDetailDOChildrenList2 = new ArrayList<>();
+ for (int i = 0; i < receiptMaterialDetailDOChildrenList1.size(); i++){
+ if (i == 0){
+ continue;
+ }
+ receiptMaterialDetailDOChildrenList2.add(receiptMaterialDetailDOChildrenList1.get(i));
+ }
+ receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
+ });
+ NoReceiptOrderDO noReceiptOrderDO = assembleParamByNoOrderReceipt(stockReceiptOrderDO);
+ return stockReceiptOrderDomainService.noOrderReceipt(noReceiptOrderDO);
+ }
+
+ /**
+ * @description 封装月台信息
+ * @author ZhouGY
+ * @date 2024/5/13 10:45
+ * @param stockReceiptOrderDO
+ */
+ private void platformParam(StockReceiptOrderDO stockReceiptOrderDO){
+ //封装月台信息
+ AjaxResult ajaxResult = systemServiceFeign.getPlatformInfoByPlatformId(stockReceiptOrderDO.getPlatformId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取月台信息失败");
+ }
+ PlatformFeignPO platformFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), PlatformFeignPO.class);
+ stockReceiptOrderDO.setPlatformCode(platformFeignPO.getPlatformCode());
+ stockReceiptOrderDO.setPlatformName(platformFeignPO.getPlatformName());
+
+ //封装月台使用时间信息
+ AjaxResult ajaxResult2 = systemServiceFeign.getPlatformUseTimeInfoByPlatformUseTimeId(stockReceiptOrderDO.getPlatformId());
+ if(!"200".equals(String.valueOf(ajaxResult2.get("code")))){
+ throw new ServiceException("获取月台使用时间信息失败");
+ }
+ PlatformUseTimeFeignPO platformUseTimeFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult2.get("data")), PlatformUseTimeFeignPO.class);
+ try {
+ stockReceiptOrderDO.setPlatformUseStartTime(DateUtils.parseDate(platformUseTimeFeignPO.getStartTime(), "HH:mm"));
+ stockReceiptOrderDO.setPlatformUseEndTime(DateUtils.parseDate(platformUseTimeFeignPO.getEndTime(), "HH:mm"));
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * @description 封装作业人员信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockReceiptOrderDO
+ */
+ private void operatorsParam(StockReceiptOrderDO stockReceiptOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getOperatorsBy());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取作业人员信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockReceiptOrderDO.setOperatorsName(userPo.getUserName());
+ }
+
+ /**
+ * @description 收货装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ private StockReceiptOrderDO assembleParamByReceipt(StockReceiptOrderDO stockReceiptOrderDO) {
+ StockReceiptOrderPO stockReceiptOrderPO = stockReceiptOrderDomainService.getInfo(stockReceiptOrderDO.getReceiptOrderId());
+ if (stockReceiptOrderPO == null){
+ throw new ServiceException("收货单不存在");
+ }
+ if (stockReceiptOrderPO.getStatus() > 2) {
+ throw new ServiceException("收货单已完成收货");
+ }
+ StockReceiptOrderDO returnStockReceiptOrderDO = new StockReceiptOrderDO();
+ returnStockReceiptOrderDO.setUpdateTime(stockReceiptOrderDO.getUpdateTime());
+ returnStockReceiptOrderDO.setReceiptOrderId(stockReceiptOrderPO.getReceiptOrderId());
+ returnStockReceiptOrderDO.setOrganizationId(stockReceiptOrderPO.getOrganizationId());
+ returnStockReceiptOrderDO.setOrganizationName(stockReceiptOrderPO.getOrganizationName());
+ returnStockReceiptOrderDO.setTopOrganizationId(stockReceiptOrderPO.getTopOrganizationId());
+ returnStockReceiptOrderDO.setWarehouseId(stockReceiptOrderPO.getWarehouseId());
+ returnStockReceiptOrderDO.setWarehouseCode(stockReceiptOrderPO.getWarehouseCode());
+ returnStockReceiptOrderDO.setWarehouseName(stockReceiptOrderPO.getWarehouseName());
+ returnStockReceiptOrderDO.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
+ returnStockReceiptOrderDO.setInOrderNumber(stockReceiptOrderPO.getInOrderNumber());
+ ReceiptMaterialDetailDO receiptMaterialDetailDOByQuery = new ReceiptMaterialDetailDO();
+ receiptMaterialDetailDOByQuery.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
+ List receiptMaterialDetailPODbList = receiptMaterialDetailDomainService.queryList(receiptMaterialDetailDOByQuery);
+ Map receiptMaterialDetailDbMap = receiptMaterialDetailPODbList.stream().collect(Collectors.toMap(ReceiptMaterialDetailPO::getMaterialDetailId, Function.identity()));
+ BigDecimal totalActualQuantity = BigDecimal.ZERO;//收货单当前作业收货数
+ int totalActualReceiptMaterialQuantity = 0;//收货单收货物料种数
+ List returnReceiptMaterialDetailDOList = new ArrayList<>();
+ for (ReceiptMaterialDetailDO receiptMaterialDetailDO : stockReceiptOrderDO.getMaterialDetailList()){
+ //设置物料更多属性信息
+ ReceiptMaterialDetailPO receiptMaterialDetailPO = receiptMaterialDetailDbMap.get(receiptMaterialDetailDO.getMaterialDetailId());
+ if (receiptMaterialDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进行收货直接跳过
+ continue;
+ }
+ BigDecimal actualQuantity = BigDecimal.ZERO;//当前作业收货数
+ //判断收否收货 第一次收货创建 更多属性 序列号
+ if (receiptMaterialDetailPO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //收货后 设置该记录不允许被修改
+ receiptMaterialDetailDO.setAllowModify(2);
+ //未收过货 统计到当前收货单作业收货数
+ actualQuantity = receiptMaterialDetailDO.getReceiptQuantity();
+ //设置物料状态及容器信息
+ setMaterialMoreDetailInfo(receiptMaterialDetailDO);
+ }
+ //判断是否存在子项
+ List returnReceiptMaterialDetailDOChildList = new ArrayList<>();
+ List receiptMaterialDetailDOChildList = receiptMaterialDetailDO.getChildren();
+ if (!CollectionUtils.isEmpty(receiptMaterialDetailDOChildList)){
+ for (ReceiptMaterialDetailDO receiptMaterialDetailDOChild : receiptMaterialDetailDOChildList){
+ ReceiptMaterialDetailPO receiptMaterialDetailPOChildDb = receiptMaterialDetailDbMap.get(receiptMaterialDetailDOChild.getMaterialDetailId());
+ if (receiptMaterialDetailPOChildDb != null){
+ continue;
+ }
+ ReceiptMaterialDetailDO returnReceiptMaterialDetailDOChild = new ReceiptMaterialDetailDO();
+ BeanUtils.copyProperties(receiptMaterialDetailPO, returnReceiptMaterialDetailDOChild, "materialDetailId","createBy","createByName","createTime",
+ "updateBy","updateByName","updateTime");
+ BeanUtils.copyProperties(receiptMaterialDetailDOChild, returnReceiptMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDOChild));
+ if (ObjectUtil.isNotNull(returnReceiptMaterialDetailDOChild.getMaterialDetailId()) && returnReceiptMaterialDetailDOChild.getMaterialDetailId() == 0){
+ returnReceiptMaterialDetailDOChild.setMaterialDetailId(null);
+ }
+ //收货后 设置该记录不允许被修改
+ returnReceiptMaterialDetailDOChild.setAllowModify(2);
+ returnReceiptMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ returnReceiptMaterialDetailDOChild.setLevel(2);
+ returnReceiptMaterialDetailDOChild.setParentUniqueId(receiptMaterialDetailPO.getUniqueId());
+ //设置物料状态及容器信息
+ setMaterialMoreDetailInfo(returnReceiptMaterialDetailDOChild);
+ //是否开启了序列号管理
+ if (receiptMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(receiptMaterialDetailDOChild.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + receiptMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnReceiptMaterialDetailDOChild.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChild.getMaterialDetailSerialNumberList());
+ returnReceiptMaterialDetailDOChild.setMaterialMoreDetailList(receiptMaterialDetailDOChild.getMaterialMoreDetailList());
+ returnReceiptMaterialDetailDOChildList.add(returnReceiptMaterialDetailDOChild);
+ actualQuantity = actualQuantity.add(returnReceiptMaterialDetailDOChild.getReceiptQuantity());
+ }
+ }
+ //已收货数量 = 已收货数量 + 当前作业数量
+ receiptMaterialDetailDO.setAlreadyReceiptQuantity(receiptMaterialDetailPO.getAlreadyReceiptQuantity().add(actualQuantity));
+ //记录本次收货单收货总数
+ totalActualQuantity = totalActualQuantity.add(actualQuantity);
+ //判断收货数量是否大于计划数量
+ Integer receiptStatus = judgeReceiptQuantity(receiptMaterialDetailDO.getAlreadyReceiptQuantity(), receiptMaterialDetailPO.getQuantity());
+ receiptMaterialDetailDO.setReceiptStatus(receiptStatus);
+ if (receiptStatus > 2){
+ totalActualReceiptMaterialQuantity += 1;
+ }
+ ReceiptMaterialDetailDO returnReceiptMaterialDetailDO = new ReceiptMaterialDetailDO();
+ BeanUtils.copyProperties(receiptMaterialDetailPO, returnReceiptMaterialDetailDO);
+ BeanUtils.copyProperties(receiptMaterialDetailDO, returnReceiptMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDO));
+ if (receiptMaterialDetailPO.getReceiptStatus() == 1){
+ //一级列表 首次收货
+ //是否开启了序列号管理
+ if (receiptMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + receiptMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnReceiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDO.getMaterialDetailSerialNumberList());
+ returnReceiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDO.getMaterialMoreDetailList());
+ }else {
+ returnReceiptMaterialDetailDO.setMaterialDetailSerialNumberList(new ArrayList<>());
+ returnReceiptMaterialDetailDO.setMaterialMoreDetailList(new ArrayList<>());
+ }
+ returnReceiptMaterialDetailDO.setChildren(returnReceiptMaterialDetailDOChildList);
+ returnReceiptMaterialDetailDOList.add(returnReceiptMaterialDetailDO);
+ }
+ returnStockReceiptOrderDO.setMaterialDetailList(returnReceiptMaterialDetailDOList);
+ returnStockReceiptOrderDO.setActualQuantity(totalActualQuantity);
+ returnStockReceiptOrderDO.setActualReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
+ return returnStockReceiptOrderDO;
+ }
+
+
+ /**
+ * @description 收货装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ private NoReceiptOrderDO assembleParamByNoOrderReceipt(StockReceiptOrderDO stockReceiptOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ NoReceiptOrderDO noReceiptOrderDO = new NoReceiptOrderDO();
+ stockReceiptOrderDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
+ stockReceiptOrderDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
+ stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ stockReceiptOrderDO.setCreateBy(loginUser.getUserid());
+ stockReceiptOrderDO.setCreateByName(loginUser.getUsername());
+ stockReceiptOrderDO.setCreateTime(new Date());
+ stockReceiptOrderDO.setStatus(3);//已收货
+
+ //无单收货默认下发给自己
+ stockReceiptOrderDO.setOperatorsBy(SecurityUtils.getLoginUser().getUserid());
+ //设置作业人员信息
+ operatorsParam(stockReceiptOrderDO);
+ stockReceiptOrderDO.setTaskDistribution(2);
+ stockReceiptOrderDO.setTaskDistributionTime(new Date());
+ BigDecimal totalActualQuantity = BigDecimal.ZERO;//收货单当前作业收货数
+ int totalActualReceiptMaterialQuantity = 0;//收货单收货物料种数
+ //出库单信息
+ StockInOrderDO stockInOrderDO = new StockInOrderDO();
+ BeanUtils.copyProperties(stockReceiptOrderDO, stockInOrderDO);
+ stockInOrderDO.setInOrderNumber(OrderSequence.getOrderCode("RK"));
+ stockInOrderDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
+ stockInOrderDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
+ stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ stockInOrderDO.setCreateBy(loginUser.getUserid());
+ stockInOrderDO.setCreateByName(loginUser.getUsername());
+ stockInOrderDO.setCreateTime(new Date());
+ stockInOrderDO.setOrderTypeCode("pu_tong_ru_ku_dan");
+ stockInOrderDO.setOrderTypeName("普通入库单");
+ stockInOrderDO.setPriorityLevelCode("zui_gao");
+ stockInOrderDO.setPriorityLevelName("最高");
+ stockInOrderDO.setDirectWarehouse(2);
+ stockInOrderDO.setStatus(4);//上架中
+ stockInOrderDO.setAuditStatus(3);
+ stockInOrderDO.setAuditBy(loginUser.getUserPo().getUserId());
+ stockInOrderDO.setAuditByName(loginUser.getUserPo().getUserName());
+ stockInOrderDO.setAuditTime(new Date());
+ stockInOrderDO.setOrderSource(3);
+ List inMaterialDetailDOList = new ArrayList<>();
+ for (ReceiptMaterialDetailDO receiptMaterialDetailDO : stockReceiptOrderDO.getMaterialDetailList()){
+ //设置物料基本信息
+ setMaterialDetailInfo(receiptMaterialDetailDO);
+ //设置物料更多属性信息
+ setMaterialMoreDetailInfo(receiptMaterialDetailDO);
+ //设置物料状态及容器信息
+ setMaterialMoreDetailInfo(receiptMaterialDetailDO);
+ InMaterialDetailDO inMaterialDetailDO = new InMaterialDetailDO();
+ BeanUtils.copyProperties(receiptMaterialDetailDO, inMaterialDetailDO);
+ inMaterialDetailDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
+ inMaterialDetailDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
+ inMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ inMaterialDetailDO.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ inMaterialDetailDO.setInOrderNumber(stockInOrderDO.getInOrderNumber());
+ inMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getReceiptQuantity());
+ inMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDO.getReceiptQuantity());
+ inMaterialDetailDO.setLevel(1);
+ inMaterialDetailDO.setCreateBy(loginUser.getUserid());
+ inMaterialDetailDO.setCreateByName(loginUser.getUsername());
+ inMaterialDetailDO.setCreateTime(new Date());
+
+ receiptMaterialDetailDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
+ receiptMaterialDetailDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
+ receiptMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ receiptMaterialDetailDO.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ receiptMaterialDetailDO.setReceiptOrderNumber(OrderSequence.getOrderCode("SH"));
+ receiptMaterialDetailDO.setLevel(1);
+ receiptMaterialDetailDO.setInUniqueId(inMaterialDetailDO.getUniqueId());
+ receiptMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getReceiptQuantity());
+ receiptMaterialDetailDO.setAlreadyReceiptQuantity(receiptMaterialDetailDO.getAlreadyReceiptQuantity());
+ //设置物料更多属性信息
+ BigDecimal actualQuantity = receiptMaterialDetailDO.getReceiptQuantity();;//当前作业收货数
+ //判断是否存在子项
+ List receiptMaterialDetailDOChildList = receiptMaterialDetailDO.getChildren();
+ if (!CollectionUtils.isEmpty(receiptMaterialDetailDOChildList)){
+ for (ReceiptMaterialDetailDO receiptMaterialDetailDOChild : receiptMaterialDetailDOChildList){
+ ReceiptMaterialDetailDO receiptMaterialDetailDOChildByCopy = new ReceiptMaterialDetailDO();
+ BeanUtils.copyProperties(receiptMaterialDetailDO, receiptMaterialDetailDOChildByCopy);
+ BeanUtils.copyProperties(receiptMaterialDetailDOChild, receiptMaterialDetailDOChildByCopy);
+ receiptMaterialDetailDOChildByCopy.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ receiptMaterialDetailDOChildByCopy.setOrganizationId(loginUser.getUserPo().getOrganizationId());
+ receiptMaterialDetailDOChildByCopy.setOrganizationName(loginUser.getUserPo().getOrganizationName());
+ receiptMaterialDetailDOChildByCopy.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ receiptMaterialDetailDOChildByCopy.setReceiptOrderNumber(OrderSequence.getOrderCode("SH"));
+ receiptMaterialDetailDOChildByCopy.setLevel(2);
+ receiptMaterialDetailDOChildByCopy.setParentUniqueId(receiptMaterialDetailDO.getUniqueId());
+ receiptMaterialDetailDOChildByCopy.setInUniqueId(inMaterialDetailDO.getUniqueId());
+ receiptMaterialDetailDOChildByCopy.setQuantity(receiptMaterialDetailDOChild.getReceiptQuantity());
+ receiptMaterialDetailDOChildByCopy.setAlreadyReceiptQuantity(receiptMaterialDetailDOChild.getReceiptQuantity());
+ BeanUtils.copyProperties(receiptMaterialDetailDOChildByCopy, receiptMaterialDetailDOChild);
+ //是否开启了序列号管理
+ if (receiptMaterialDetailDO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + receiptMaterialDetailDO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ actualQuantity = actualQuantity.add(receiptMaterialDetailDOChild.getReceiptQuantity());
+ }
+ }
+ //已收货数量 = 当前作业数量
+ receiptMaterialDetailDO.setAlreadyReceiptQuantity(actualQuantity);
+ //记录本次收货单收货总数
+ totalActualQuantity = totalActualQuantity.add(actualQuantity);
+ receiptMaterialDetailDO.setReceiptStatus(3);
+ totalActualReceiptMaterialQuantity += 1;
+ //一级列表 首次收货
+ //是否开启了序列号管理
+ if (receiptMaterialDetailDO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + receiptMaterialDetailDO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ inMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getAlreadyReceiptQuantity());
+ inMaterialDetailDOList.add(inMaterialDetailDO);
+ }
+ stockReceiptOrderDO.setReceiptQuantity(totalActualQuantity);
+ stockReceiptOrderDO.setMaterialQuantity(totalActualReceiptMaterialQuantity);
+ stockReceiptOrderDO.setReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
+ stockReceiptOrderDO.setActualQuantity(totalActualQuantity);
+ stockReceiptOrderDO.setActualReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
+ stockReceiptOrderDO.setInOrderNumber(stockInOrderDO.getInOrderNumber());
+ stockInOrderDO.setQuantity(totalActualQuantity);
+ stockInOrderDO.setMaterialQuantity(totalActualReceiptMaterialQuantity);
+ stockInOrderDO.setMaterialDetailList(inMaterialDetailDOList);
+ noReceiptOrderDO.setStockInOrderDO(stockInOrderDO);
+ noReceiptOrderDO.setStockReceiptOrderDO(stockReceiptOrderDO);
+ return noReceiptOrderDO;
+ }
+
+ /**
+ * @description 设置物料状态及容器信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param receiptMaterialDetailDO
+ */
+ private void setMaterialMoreDetailInfo(ReceiptMaterialDetailDO receiptMaterialDetailDO){
+
+ if(ObjectUtil.isNotNull(receiptMaterialDetailDO.getMaterialStatusCode())){
+//翻译物料状态
+ AjaxResult materialsStatusResult = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
+ if (!"200".equals(String.valueOf(materialsStatusResult.get("code")))) {
+ throw new ServiceException("物料状态数据字典不存在");
+ }
+ List materialsStatusDataList = JSON.parseArray(JSONUtil.toJsonStr(materialsStatusResult.get("data")), SysDictData.class);
+
+ SysDictData materialsStatusData = materialsStatusDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), receiptMaterialDetailDO.getMaterialStatusCode())).findAny().orElse(null);
+ if (null == materialsStatusData) {
+ throw new ServiceException("物料状态【" + receiptMaterialDetailDO.getMaterialStatusCode() + "】数据字典不存在 请联系管理员");
+ }
+ receiptMaterialDetailDO.setMaterialStatusName(materialsStatusData.getDictLabel());
+ }
+
+ if (ObjectUtil.isNotNull(receiptMaterialDetailDO.getContainerId()) && 0 !=receiptMaterialDetailDO.getContainerId()){
+ //获取容器详情
+ AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(receiptMaterialDetailDO.getContainerId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取容器信息失败");
+ }
+ ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
+ receiptMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
+ receiptMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
+ receiptMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
+ }
+
+ }
+
+ /**
+ * @description 判断收货数量是否存在超收
+ * @author ZhouGY
+ * @date 2024/6/14 17:50
+ * @param quantity
+ * @param receiptQuantity
+ * @return Integer
+ */
+ private Integer judgeReceiptQuantity(BigDecimal receiptQuantity, BigDecimal quantity){
+ if (receiptQuantity.compareTo(quantity) > 0){
+ return 5;
+ } else if (receiptQuantity.compareTo(quantity) == 0) {
+ return 3;
+ } else {
+ return 2;
+ }
+ }
+
+ /**
+ * @description 设置仓库信息
+ * @author ZhouGY
+ * @date 2024/4/7 10:01
+ * @param stockReceiptOrderDO
+ */
+ private void setWarehouseInfo(StockReceiptOrderDO stockReceiptOrderDO) {
+ AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockReceiptOrderDO.getWarehouseId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取仓库信息失败");
+ }
+ WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
+ stockReceiptOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
+ stockReceiptOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
+ }
+
+ /**
+ * @description 封装货主信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockReceiptOrderDO
+ */
+ private void shipperParam(StockReceiptOrderDO stockReceiptOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getShipperId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取货主信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockReceiptOrderDO.setShipperCode(userPo.getUserMemberCode());
+ stockReceiptOrderDO.setShipperName(userPo.getUserName());
+ }
+
+ /**
+ * @description 封装供应商信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockReceiptOrderDO
+ */
+ private void supplierParam(StockReceiptOrderDO stockReceiptOrderDO){
+ if(ObjectUtil.isNull(stockReceiptOrderDO.getSupplierId())){
+ return;
+ }
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getSupplierId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取供应商信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockReceiptOrderDO.setSupplierName(userPo.getUserName());
+ }
+
+ /**
+ * @description 设置物料信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param receiptMaterialDetailDO
+ */
+ private void setMaterialDetailInfo(ReceiptMaterialDetailDO receiptMaterialDetailDO){
+ MaterialBaseInfoPO materialBaseInfoPO = materialBaseInfoService.getInfo(receiptMaterialDetailDO.getMaterialBaseInfoId());
+ if (materialBaseInfoPO == null){
+ throw new ServiceException("物料基础信息不存在");
+ }
+ receiptMaterialDetailDO.setMaterialCode(materialBaseInfoPO.getMaterialCode());
+ receiptMaterialDetailDO.setMaterialName(materialBaseInfoPO.getMaterialName());
+ receiptMaterialDetailDO.setBarCode(materialBaseInfoPO.getBarCode());
+ receiptMaterialDetailDO.setPackId(materialBaseInfoPO.getPackId());
+ receiptMaterialDetailDO.setPackCode(materialBaseInfoPO.getPackCode());
+ receiptMaterialDetailDO.setPackName(materialBaseInfoPO.getPackName());
+
+ //获取包装详情
+ AjaxResult packDetailResult = systemServiceFeign.getInfoByPackIdAndUnitCode(materialBaseInfoPO.getPackId(), "EA");
+ if(!"200".equals(String.valueOf(packDetailResult.get("code")))){
+ throw new ServiceException("获取物料单位EA信息失败");
+ }
+ PackDetailFeignPO packDetailFeignPO = JSON.parseObject(JSONObject.toJSONString(packDetailResult.get("data")), PackDetailFeignPO.class);
+ receiptMaterialDetailDO.setPackDetailId(packDetailFeignPO.getPackDetailId());
+ receiptMaterialDetailDO.setUnitCode(packDetailFeignPO.getUnitCode());
+ receiptMaterialDetailDO.setUnitName(packDetailFeignPO.getName());
+ receiptMaterialDetailDO.setUnitNumber(packDetailFeignPO.getNumber());
+
+ //获取仓库控制信息
+ MaterialWarehouseControlPO materialWarehouseControlPO = materialWarehouseControlService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
+ if (materialWarehouseControlPO == null){
+ throw new ServiceException("物料仓库控制信息不存在");
+ }
+ receiptMaterialDetailDO.setMaterialWarehouseControlId(materialWarehouseControlPO.getMaterialWarehouseControlId());
+ receiptMaterialDetailDO.setSerialNumberManage(materialWarehouseControlPO.getSerialNumberManage());
+ receiptMaterialDetailDO.setQualityInspectionManage(materialWarehouseControlPO.getQualityInspectionManage());
+ receiptMaterialDetailDO.setQualityInspectionStage(materialWarehouseControlPO.getQualityInspectionStage());
+ receiptMaterialDetailDO.setQualityInspectionRule(materialWarehouseControlPO.getQualityInspectionRule());
+ receiptMaterialDetailDO.setQualityInspectionTerm(materialWarehouseControlPO.getQualityInspectionTerm());
+ receiptMaterialDetailDO.setAllowOvercharge(materialWarehouseControlPO.getAllowOvercharge());
+ receiptMaterialDetailDO.setOverchargeRatio(materialWarehouseControlPO.getOverchargeRatio());
+
+ //获取商品规则信息
+ MaterialGoodsRulePO materialGoodsRulePO = materialGoodsRuleService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
+ if (materialGoodsRulePO == null){
+ throw new ServiceException("物料商品规则信息不存在");
+ }
+ receiptMaterialDetailDO.setDistributeRuleId(materialGoodsRulePO.getMaterialGoodsRuleId());
+ receiptMaterialDetailDO.setDistributeRuleCode(materialGoodsRulePO.getRuleCode());
+ receiptMaterialDetailDO.setDistributeRuleName(materialGoodsRulePO.getRuleName());
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java
new file mode 100644
index 000000000..e9e059efe
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java
@@ -0,0 +1,381 @@
+package com.mhd.wms.application.service.stockShelfOrder;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.mhd.common.core.constant.SnowFlakeConstants;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.utils.IgnoreNullUtil;
+import com.mhd.common.core.utils.bean.BeanUtils;
+import com.mhd.common.core.utils.uuid.IdGenerator;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.UserServiceFeign;
+import com.mhd.system.api.domain.ContainerFeignPO;
+import com.mhd.system.api.domain.StorageLocationFeignPO;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO;
+import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
+import com.mhd.wms.domain.shelfMaterialDetail.service.ShelfMaterialDetailDomainService;
+import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO;
+import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO;
+import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 上架单ApplicationService
+ *
+ * @author gen
+ * @date 2024-05-21
+ */
+@Service
+@Slf4j
+public class StockShelfOrderApplicationService {
+ @Autowired
+ private StockShelfOrderDomainService stockShelfOrderDomainService;
+ @Autowired
+ private ShelfMaterialDetailDomainService shelfMaterialDetailDomainService;
+ @Autowired
+ private UserServiceFeign userServiceFeign;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+ @Autowired
+ private IdGenerator idGenerator;
+
+
+ /**
+ * 分页查询上架单列表
+ */
+
+ public List queryList(StockShelfOrderDO stockShelfOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ stockShelfOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ stockShelfOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return stockShelfOrderDomainService.queryList(stockShelfOrderDO);
+ }
+
+
+ /**
+ * 新增上架单
+ */
+ public Boolean insert(StockShelfOrderDO stockShelfOrderDO) {
+
+ return stockShelfOrderDomainService.insert(stockShelfOrderDO);
+ }
+
+ /**
+ * 修改上架单
+ */
+ public Boolean update(StockShelfOrderDO stockShelfOrderDO) {
+ return stockShelfOrderDomainService.update(stockShelfOrderDO);
+ }
+
+ /**
+ * 批量删除上架单
+ */
+ public boolean delete(Long[] shelfOrderIds) {
+ return stockShelfOrderDomainService.delete(shelfOrderIds);
+ }
+
+ /**
+ * 获取上架单详细信息
+ */
+ public StockShelfOrderPO getInfo(Long shelfOrderId)
+ {
+ return stockShelfOrderDomainService.getInfo(shelfOrderId);
+ }
+
+ /**
+ * 获取上架单详细信息
+ */
+ public StockShelfOrderPO getInfoByApp(Long shelfOrderId) {
+ return stockShelfOrderDomainService.getInfoByApp(shelfOrderId);
+ }
+
+ /**
+ * @description 任务下发
+ * @author ZhouGY
+ * @date 2024/5/22 17:13
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean taskDistribution(StockShelfOrderDO stockReceiptOrderDO){
+ //设置作业人员信息
+ operatorsParam(stockReceiptOrderDO);
+ return stockShelfOrderDomainService.taskDistribution(stockReceiptOrderDO);
+ }
+
+
+ /**
+ * @description 上架
+ * @author ZhouGY
+ * @date 2024/5/22 17:13
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean upShelf(StockShelfOrderDO stockReceiptOrderDO){
+ //上架装配参数
+ StockShelfOrderDO assembleStockShelfOrderDO = assembleParamByShelf(stockReceiptOrderDO);
+ return stockShelfOrderDomainService.upShelf(assembleStockShelfOrderDO);
+ }
+
+ /**
+ * @description 收货
+ * @author ZhouGY
+ * @date 2024/5/22 16:20
+ * @param stockReceiptOrderDO
+ * @return Boolean
+ */
+ public Boolean upShelfByApp(StockShelfOrderDO stockReceiptOrderDO){
+ List shelfMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
+ shelfMaterialDetailDOList.forEach(shelfMaterialDetailDO -> {
+ List shelfMaterialDetailDOChildrenList1 = shelfMaterialDetailDO.getChildren();
+ ShelfMaterialDetailDO shelfMaterialDetailDOChildren = shelfMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
+ shelfMaterialDetailDO.setMaterialDetailId(shelfMaterialDetailDOChildren.getMaterialDetailId());
+ shelfMaterialDetailDO.setShelvesQuantity(shelfMaterialDetailDOChildren.getShelvesQuantity());
+ shelfMaterialDetailDO.setWarehouseId(shelfMaterialDetailDOChildren.getWarehouseId());
+ shelfMaterialDetailDO.setStorageSectionId(shelfMaterialDetailDOChildren.getStorageSectionId());
+ shelfMaterialDetailDO.setStorageLocationId(shelfMaterialDetailDOChildren.getStorageLocationId());
+ shelfMaterialDetailDO.setContainerId(shelfMaterialDetailDOChildren.getContainerId());
+ shelfMaterialDetailDO.setLevel(shelfMaterialDetailDOChildren.getLevel());
+ shelfMaterialDetailDO.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
+ //只留二级
+ List shelfMaterialDetailDOChildrenList2 = shelfMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
+ shelfMaterialDetailDO.setChildren(shelfMaterialDetailDOChildrenList2);
+ });
+ //上架装配参数
+ StockShelfOrderDO assembleStockShelfOrderDO = assembleParamByShelf(stockReceiptOrderDO);
+ return stockShelfOrderDomainService.upShelf(assembleStockShelfOrderDO);
+ }
+
+
+ /**
+ * @description 完成上架
+ * @author ZhouGY
+ * @date 2024/5/22 17:13
+ * @param shelfOrderId
+ * @return Boolean
+ */
+ public Boolean completeUpShelf(Long shelfOrderId){
+ return stockShelfOrderDomainService.completeUpShelf(shelfOrderId);
+ }
+
+ /**
+ * @description 封装作业人员信息
+ * @author ZhouGY
+ * @date 2024/5/9 20:43
+ * @param stockShelfOrderDO
+ */
+ private void operatorsParam(StockShelfOrderDO stockShelfOrderDO){
+ AjaxResult ajaxResult = userServiceFeign.getInfo(stockShelfOrderDO.getOperatorsBy());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取作业人员信息失败");
+ }
+ UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
+ stockShelfOrderDO.setOperatorsName(userPo.getUserName());
+ }
+
+ /**
+ * @description 收货装配参数
+ * @author ZhouGY
+ * @date 2024/5/22 9:27
+ * @param stockShelfOrderDO
+ * @return Boolean
+ */
+ private StockShelfOrderDO assembleParamByShelf(StockShelfOrderDO stockShelfOrderDO) {
+ StockShelfOrderPO stockShelfOrderPO = stockShelfOrderDomainService.getInfo(stockShelfOrderDO.getShelfOrderId());
+ if (stockShelfOrderPO == null){
+ throw new ServiceException("上架单不存在");
+ }
+ if (stockShelfOrderPO.getStatus() > 2) {
+ throw new ServiceException("上架单已完成上架");
+ }
+ StockShelfOrderDO returnStockShelfOrderDO = new StockShelfOrderDO();
+ BeanUtils.copyProperties(stockShelfOrderDO, returnStockShelfOrderDO);
+ returnStockShelfOrderDO.setShelfOrderId(stockShelfOrderPO.getShelfOrderId());
+ returnStockShelfOrderDO.setUpdateTime(stockShelfOrderDO.getUpdateTime());
+ returnStockShelfOrderDO.setOrganizationId(stockShelfOrderPO.getOrganizationId());
+ returnStockShelfOrderDO.setOrganizationName(stockShelfOrderPO.getOrganizationName());
+ returnStockShelfOrderDO.setTopOrganizationId(stockShelfOrderPO.getTopOrganizationId());
+ returnStockShelfOrderDO.setWarehouseId(stockShelfOrderPO.getWarehouseId());
+ returnStockShelfOrderDO.setWarehouseCode(stockShelfOrderPO.getWarehouseCode());
+ returnStockShelfOrderDO.setWarehouseName(stockShelfOrderPO.getWarehouseName());
+ returnStockShelfOrderDO.setInOrderNumber(stockShelfOrderPO.getInOrderNumber());
+ returnStockShelfOrderDO.setReceiptOrderNumber(stockShelfOrderPO.getReceiptOrderNumber());
+ returnStockShelfOrderDO.setShelfOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
+ ShelfMaterialDetailDO shelfMaterialDetailDOByQuery = new ShelfMaterialDetailDO();
+ shelfMaterialDetailDOByQuery.setShelfOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
+ List shelfMaterialDetailPODbList = shelfMaterialDetailDomainService.queryList(shelfMaterialDetailDOByQuery);
+ Map receiptMaterialDetailDbMap = shelfMaterialDetailPODbList.stream().collect(Collectors.toMap(ShelfMaterialDetailPO::getMaterialDetailId, Function.identity()));
+ BigDecimal totalActualQuantity = BigDecimal.ZERO;//上架单当前作业收货数
+ int totalActualShelfMaterialQuantity = 0;//上架单收货物料种数
+ List returnShelfMaterialDetailDOList = new ArrayList<>();
+ for (ShelfMaterialDetailDO shelfMaterialDetailDO : stockShelfOrderDO.getMaterialDetailList()){
+ //设置物料更多属性信息
+ ShelfMaterialDetailPO shelfMaterialDetailPO = receiptMaterialDetailDbMap.get(shelfMaterialDetailDO.getMaterialDetailId());
+ if (shelfMaterialDetailPO == null){
+ throw new ServiceException("物料明细不存在");
+ }
+ if (shelfMaterialDetailDO.getShelvesQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //未进行上架直接跳过
+ continue;
+ }
+ BigDecimal actualQuantity = BigDecimal.ZERO;//当前作业上架数
+ //判断收否上架 第一次收货创建 更多属性 序列号
+ if (shelfMaterialDetailPO.getShelvesQuantity().compareTo(BigDecimal.ZERO) == 0){
+ //设置上架信息
+ setStorageLocationInfo(shelfMaterialDetailDO);
+ //设置容器信息
+ setContainerInfo(shelfMaterialDetailDO);
+ //上架后 设置该记录不允许被修改
+ shelfMaterialDetailDO.setAllowModify(2);
+ //未上过架 统计到当前收货单作业收货数
+ actualQuantity = shelfMaterialDetailDO.getShelvesQuantity();
+ }
+ //判断是否存在子项
+ List returnShelfMaterialDetailDOChildList = new ArrayList<>();
+ List shelfMaterialDetailDOChildList = shelfMaterialDetailDO.getChildren();
+ if (!CollectionUtils.isEmpty(shelfMaterialDetailDOChildList)){
+ for (ShelfMaterialDetailDO shelfMaterialDetailDOChild : shelfMaterialDetailDOChildList){
+ ShelfMaterialDetailPO shelfMaterialDetailPOChildDb = receiptMaterialDetailDbMap.get(shelfMaterialDetailDOChild.getMaterialDetailId());
+ if (shelfMaterialDetailPOChildDb != null){
+ continue;
+ }
+ ShelfMaterialDetailDO returnShelfMaterialDetailDOChild = new ShelfMaterialDetailDO();
+ BeanUtils.copyProperties(shelfMaterialDetailPO, returnShelfMaterialDetailDOChild, "materialDetailId","createBy","createByName","createTime",
+ "updateBy","updateByName","updateTime");
+ BeanUtils.copyProperties(shelfMaterialDetailDOChild, returnShelfMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(shelfMaterialDetailDOChild));
+ //设置上架信息
+ setStorageLocationInfo(shelfMaterialDetailDOChild);
+ //设置容器信息
+ setContainerInfo(returnShelfMaterialDetailDOChild);
+ //上架后 设置该记录不允许被修改
+ shelfMaterialDetailDO.setAllowModify(2);
+ returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList());
+ returnShelfMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
+ returnShelfMaterialDetailDOChild.setLevel(2);
+ returnShelfMaterialDetailDOChild.setParentUniqueId(shelfMaterialDetailPO.getUniqueId());
+ //是否开启了序列号管理
+ if (shelfMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(shelfMaterialDetailPO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + shelfMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
+ returnShelfMaterialDetailDOChildList.add(returnShelfMaterialDetailDOChild);
+ actualQuantity = actualQuantity.add(returnShelfMaterialDetailDOChild.getShelvesQuantity());
+ }
+ }
+ //现在已上架数量=之前已上架数量+现在作业数量
+ shelfMaterialDetailDO.setAlreadyShelvesQuantity(shelfMaterialDetailPO.getAlreadyShelvesQuantity().add(actualQuantity));
+ //记录本次上架单上架总数
+ totalActualQuantity = totalActualQuantity.add(actualQuantity);
+ //判断上架数量是否大于计划数量
+ Integer shelvesStatus = judgeShelfQuantity(shelfMaterialDetailDO.getAlreadyShelvesQuantity(), shelfMaterialDetailPO.getQuantity());
+ shelfMaterialDetailDO.setShelvesStatus(shelvesStatus);
+ if (shelvesStatus > 2){
+ totalActualShelfMaterialQuantity += 1;
+ }
+ ShelfMaterialDetailDO returnShelfMaterialDetailDO = new ShelfMaterialDetailDO();
+ BeanUtils.copyProperties(shelfMaterialDetailPO, returnShelfMaterialDetailDO);
+ BeanUtils.copyProperties(shelfMaterialDetailDO, returnShelfMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(shelfMaterialDetailDO));
+ if (shelfMaterialDetailPO.getShelvesStatus() == 1){
+ //首次上架
+ //是否开启了序列号管理
+ if (shelfMaterialDetailPO.getSerialNumberManage() == 1){
+ if (CollectionUtils.isEmpty(shelfMaterialDetailDO.getMaterialDetailSerialNumberList())){
+ throw new ServiceException("物料【" + shelfMaterialDetailDO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
+ }
+ }
+ returnShelfMaterialDetailDO.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
+ }else {
+ returnShelfMaterialDetailDO.setMaterialDetailSerialNumberList(new ArrayList<>());
+ }
+ returnShelfMaterialDetailDO.setChildren(returnShelfMaterialDetailDOChildList);
+ returnShelfMaterialDetailDOList.add(returnShelfMaterialDetailDO);
+ }
+ returnStockShelfOrderDO.setMaterialDetailList(returnShelfMaterialDetailDOList);
+ returnStockShelfOrderDO.setActualQuantity(totalActualQuantity);
+ returnStockShelfOrderDO.setActualReceiptMaterialQuantity(totalActualShelfMaterialQuantity);
+ return returnStockShelfOrderDO;
+ }
+
+ /**
+ * @description 设置上架库位信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param shelfMaterialDetailDO
+ */
+ private void setStorageLocationInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
+ AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shelfMaterialDetailDO.getStorageLocationId());
+ if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
+ throw new ServiceException("获取上架库位信息失败");
+ }
+ StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
+ shelfMaterialDetailDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
+ shelfMaterialDetailDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
+ shelfMaterialDetailDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
+ shelfMaterialDetailDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
+ shelfMaterialDetailDO.setStorageCode(storageLocationFeignPO.getStorageCode());
+ shelfMaterialDetailDO.setStorageName(storageLocationFeignPO.getStorageName());
+ shelfMaterialDetailDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
+ shelfMaterialDetailDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
+ shelfMaterialDetailDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
+ }
+
+ /**
+ * @description 设置物料状态及容器信息
+ * @author ZhouGY
+ * @date 2024/5/23 14:03
+ * @param shelfMaterialDetailDO
+ */
+ private void setContainerInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
+
+ //获取容器详情
+ AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shelfMaterialDetailDO.getContainerId());
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("获取容器信息失败");
+ }
+ ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
+ shelfMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
+ shelfMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
+ shelfMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
+ }
+
+ /**
+ * @description 判断上架数量是否存在超收
+ * @author ZhouGY
+ * @date 2024/6/14 17:50
+ * @param quantity
+ * @param shelfQuantity
+ * @return Integer
+ */
+ private Integer judgeShelfQuantity(BigDecimal shelfQuantity, BigDecimal quantity){
+ if (shelfQuantity.compareTo(quantity) > 0){
+ return 5;
+ } else if (shelfQuantity.compareTo(quantity) == 0) {
+ return 3;
+ } else {
+ return 2;
+ }
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/taskReceiptMaterialDetail/TaskReceiptMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/taskReceiptMaterialDetail/TaskReceiptMaterialDetailApplicationService.java
new file mode 100644
index 000000000..ab26bdc7f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/taskReceiptMaterialDetail/TaskReceiptMaterialDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.taskReceiptMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.po.TaskReceiptMaterialDetailPO;
+import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.todo.TaskReceiptMaterialDetailDO;
+import com.mhd.wms.domain.taskReceiptMaterialDetail.service.TaskReceiptMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 收货作业单物料详情ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-19
+ */
+@Service
+@Slf4j
+public class TaskReceiptMaterialDetailApplicationService {
+ @Autowired
+ private TaskReceiptMaterialDetailDomainService taskReceiptMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询收货作业单物料详情列表
+ */
+
+ public List queryList(TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ taskReceiptMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return taskReceiptMaterialDetailDomainService.queryList(taskReceiptMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增收货作业单物料详情
+ */
+ public Boolean insert(TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO) {
+
+ return taskReceiptMaterialDetailDomainService.insert(taskReceiptMaterialDetailDO);
+ }
+
+ /**
+ * 修改收货作业单物料详情
+ */
+ public Boolean update(TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO) {
+ return taskReceiptMaterialDetailDomainService.update(taskReceiptMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除收货作业单物料详情
+ */
+ public boolean delete(Long[] materialDetailIds) {
+ return taskReceiptMaterialDetailDomainService.delete(materialDetailIds);
+ }
+
+ /**
+ * 获取收货作业单物料详情详细信息
+ */
+ public TaskReceiptMaterialDetailPO getInfo(Long materialDetailId)
+ {
+ return taskReceiptMaterialDetailDomainService.getInfo(materialDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/taskShelfMaterialDetail/TaskShelfMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/taskShelfMaterialDetail/TaskShelfMaterialDetailApplicationService.java
new file mode 100644
index 000000000..0a361b276
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/taskShelfMaterialDetail/TaskShelfMaterialDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.taskShelfMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.taskShelfMaterialDetail.repository.po.TaskShelfMaterialDetailPO;
+import com.mhd.wms.domain.taskShelfMaterialDetail.repository.todo.TaskShelfMaterialDetailDO;
+import com.mhd.wms.domain.taskShelfMaterialDetail.service.TaskShelfMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 上架作业物料详情ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-19
+ */
+@Service
+@Slf4j
+public class TaskShelfMaterialDetailApplicationService {
+ @Autowired
+ private TaskShelfMaterialDetailDomainService taskShelfMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询上架作业物料详情列表
+ */
+
+ public List queryList(TaskShelfMaterialDetailDO taskShelfMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ taskShelfMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return taskShelfMaterialDetailDomainService.queryList(taskShelfMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增上架作业物料详情
+ */
+ public Boolean insert(TaskShelfMaterialDetailDO taskShelfMaterialDetailDO) {
+
+ return taskShelfMaterialDetailDomainService.insert(taskShelfMaterialDetailDO);
+ }
+
+ /**
+ * 修改上架作业物料详情
+ */
+ public Boolean update(TaskShelfMaterialDetailDO taskShelfMaterialDetailDO) {
+ return taskShelfMaterialDetailDomainService.update(taskShelfMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除上架作业物料详情
+ */
+ public boolean delete(Long[] materialDetailIds) {
+ return taskShelfMaterialDetailDomainService.delete(materialDetailIds);
+ }
+
+ /**
+ * 获取上架作业物料详情详细信息
+ */
+ public TaskShelfMaterialDetailPO getInfo(Long materialDetailId)
+ {
+ return taskShelfMaterialDetailDomainService.getInfo(materialDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/userCommonSettings/UserCommonSettingsApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/userCommonSettings/UserCommonSettingsApplicationService.java
new file mode 100644
index 000000000..755b041a7
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/userCommonSettings/UserCommonSettingsApplicationService.java
@@ -0,0 +1,129 @@
+package com.mhd.wms.application.service.userCommonSettings;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
+import com.mhd.wms.domain.commonSettings.service.CommonSettingsDomainService;
+import com.mhd.wms.domain.userCommonSettings.repository.po.UserCommonSettingsPO;
+import com.mhd.wms.domain.userCommonSettings.repository.todo.UserCommonSettingsDO;
+import com.mhd.wms.domain.userCommonSettings.service.UserCommonSettingsDomainService;
+import com.mhd.wms.interfaces.dto.userCommonSettings.UserCommonSettingsAddDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户常用设置关联ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+@Service
+@Slf4j
+public class UserCommonSettingsApplicationService {
+ @Autowired
+ private UserCommonSettingsDomainService userCommonSettingsDomainService;
+ @Autowired
+ private CommonSettingsDomainService commonSettingsDomainService;
+
+ /**
+ * 分页查询用户常用设置关联列表
+ */
+
+ public List queryList(UserCommonSettingsDO userCommonSettingsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ userCommonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ userCommonSettingsDO.setUserId(loginUser.getUserid());
+ }
+ }
+ return userCommonSettingsDomainService.queryList(userCommonSettingsDO);
+ }
+
+
+ /**
+ * 新增用户常用设置关联
+ */
+ public Boolean insert(UserCommonSettingsDO userCommonSettingsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ userCommonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ deleteByUserId(loginUser.getUserid());
+ List commonSettingsIddList=userCommonSettingsDO.getUserCommonSettingsAddDTOList();
+ Boolean isTrue=true;
+ for (UserCommonSettingsAddDTO userCommonSettingsAddDTO:commonSettingsIddList){
+
+ CommonSettingsPO commonSettings=commonSettingsDomainService.getInfo(userCommonSettingsAddDTO.getCommonSettingsId());
+ if(ObjectUtil.isNotNull(commonSettings)){
+ UserCommonSettingsDO userCommonSettingsDO1=new UserCommonSettingsDO();
+ userCommonSettingsDO1.setUserId(loginUser.getUserid());
+ userCommonSettingsDO1.setCommonSettingsId(userCommonSettingsAddDTO.getCommonSettingsId());
+ userCommonSettingsDO1.setName(commonSettings.getName());
+ userCommonSettingsDO1.setRoute(commonSettings.getRoute());
+ userCommonSettingsDO1.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ userCommonSettingsDO1.setCreateBy(loginUser.getUserid());
+ userCommonSettingsDO1.setCreateByName(loginUser.getUsername());
+ userCommonSettingsDO1.setCreateTime(new Date());
+ userCommonSettingsDO1.setUpdateBy(loginUser.getUserid());
+ userCommonSettingsDO1.setUpdateByName(loginUser.getUsername());
+ userCommonSettingsDO1.setUpdateTime(new Date());
+ userCommonSettingsDO1.setDelFlag(1);
+ userCommonSettingsDO1.setIsSettings(userCommonSettingsAddDTO.getIsSettings());
+ boolean isFalse=userCommonSettingsDomainService.insert(userCommonSettingsDO1);
+ if(isFalse=false){
+ isTrue=false;
+ }
+ }
+ }
+
+ return isTrue;
+ }
+
+ /**
+ * 修改用户常用设置关联
+ */
+ public Boolean update(UserCommonSettingsDO userCommonSettingsDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ userCommonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ //deleteByUserId(loginUser.getUserid());
+ return userCommonSettingsDomainService.update(userCommonSettingsDO);
+ }
+
+ /**
+ * 批量删除用户常用设置关联
+ */
+ public boolean delete(Long[] userCommonSettingsIds) {
+ return userCommonSettingsDomainService.delete(userCommonSettingsIds);
+ }
+
+ /**
+ * 获取用户常用设置关联详细信息
+ */
+ public UserCommonSettingsPO getInfo(Long userCommonSettingsId)
+ {
+ return userCommonSettingsDomainService.getInfo(userCommonSettingsId);
+ }
+
+ /**
+ * 根据用户id批量删除用户常用设置关联
+ */
+ public boolean deleteByUserId(Long userId) {
+ return userCommonSettingsDomainService.deleteByUserId(userId);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/waveMaterialDetail/WaveMaterialDetailApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/waveMaterialDetail/WaveMaterialDetailApplicationService.java
new file mode 100644
index 000000000..aaedccfc4
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/waveMaterialDetail/WaveMaterialDetailApplicationService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.application.service.waveMaterialDetail;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.waveMaterialDetail.repository.po.WaveMaterialDetailPO;
+import com.mhd.wms.domain.waveMaterialDetail.repository.todo.WaveMaterialDetailDO;
+import com.mhd.wms.domain.waveMaterialDetail.service.WaveMaterialDetailDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 出库单物料明细ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-27
+ */
+@Service
+@Slf4j
+public class WaveMaterialDetailApplicationService {
+ @Autowired
+ private WaveMaterialDetailDomainService waveMaterialDetailDomainService;
+
+
+ /**
+ * 分页查询出库单物料明细列表
+ */
+
+ public List queryList(WaveMaterialDetailDO waveMaterialDetailDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ waveMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return waveMaterialDetailDomainService.queryList(waveMaterialDetailDO);
+ }
+
+
+ /**
+ * 新增出库单物料明细
+ */
+ public Boolean insert(WaveMaterialDetailDO waveMaterialDetailDO) {
+
+ return waveMaterialDetailDomainService.insert(waveMaterialDetailDO);
+ }
+
+ /**
+ * 修改出库单物料明细
+ */
+ public Boolean update(WaveMaterialDetailDO waveMaterialDetailDO) {
+ return waveMaterialDetailDomainService.update(waveMaterialDetailDO);
+ }
+
+ /**
+ * 批量删除出库单物料明细
+ */
+ public boolean delete(Long[] materialDetailIds) {
+ return waveMaterialDetailDomainService.delete(materialDetailIds);
+ }
+
+ /**
+ * 获取出库单物料明细详细信息
+ */
+ public WaveMaterialDetailPO getInfo(Long materialDetailId)
+ {
+ return waveMaterialDetailDomainService.getInfo(materialDetailId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/waveOrder/WaveOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/waveOrder/WaveOrderApplicationService.java
new file mode 100644
index 000000000..6dcaa7ef5
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/waveOrder/WaveOrderApplicationService.java
@@ -0,0 +1,121 @@
+package com.mhd.wms.application.service.waveOrder;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
+import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.waveOrder.repository.po.WaveOrderPO;
+import com.mhd.wms.domain.waveOrder.repository.todo.WaveOrderDO;
+import com.mhd.wms.domain.waveOrder.service.WaveOrderDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 波次单ApplicationService
+ *
+ * @author gen
+ * @date 2024-06-04
+ */
+@Service
+@Slf4j
+public class WaveOrderApplicationService {
+ @Autowired
+ private WaveOrderDomainService waveOrderDomainService;
+
+
+ /**
+ * 分页查询波次单列表
+ */
+
+ public List queryList(WaveOrderDO waveOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ waveOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ waveOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ return waveOrderDomainService.queryList(waveOrderDO);
+ }
+
+
+ /**
+ * 新增波次单
+ */
+ public Boolean insert(WaveOrderDO waveOrderDO) {
+
+ return waveOrderDomainService.insert(waveOrderDO);
+ }
+
+ /**
+ * 修改波次单
+ */
+ public Boolean update(WaveOrderDO waveOrderDO) {
+ return waveOrderDomainService.update(waveOrderDO);
+ }
+
+ /**
+ * 批量删除波次单
+ */
+ public boolean delete(Long[] waveOrderIds) {
+ return waveOrderDomainService.delete(waveOrderIds);
+ }
+
+ /**
+ * 获取波次单详细信息
+ */
+ public WaveOrderPO getInfo(Long waveOrderId)
+ {
+ return waveOrderDomainService.getInfo(waveOrderId);
+ }
+
+ /**
+ * @description 手动分配
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param waveOrderDO
+ * @return Boolean
+ */
+ public Boolean manualAssign(WaveOrderDO waveOrderDO){
+ return waveOrderDomainService.manualAssign(waveOrderDO);
+ }
+
+ /**
+ * @description 取消分配
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param waveOrderDO
+ * @return Boolean
+ */
+ public Boolean cancelAssign(WaveOrderDO waveOrderDO){
+ return waveOrderDomainService.cancelAssign(waveOrderDO);
+ }
+
+ /**
+ * @description 取消波次
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param waveOrderDO
+ * @return Boolean
+ */
+ public Boolean cancelWave(WaveOrderDO waveOrderDO){
+ return waveOrderDomainService.cancelWave(waveOrderDO);
+ }
+
+ /**
+ * @description 生成拣货单
+ * @author ZhouGY
+ * @date 2024/5/28 13:47
+ * @param waveOrderDO
+ * @return Boolean
+ */
+ public Boolean genPickingOrder(WaveOrderDO waveOrderDO){
+ return waveOrderDomainService.genPickingOrder(waveOrderDO);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/waveRule/WaveRuleApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/waveRule/WaveRuleApplicationService.java
new file mode 100644
index 000000000..9a312cd92
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/waveRule/WaveRuleApplicationService.java
@@ -0,0 +1,80 @@
+package com.mhd.wms.application.service.waveRule;
+
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.waveRule.repository.po.WaveRulePO;
+import com.mhd.wms.domain.waveRule.repository.todo.WaveRuleDO;
+import com.mhd.wms.domain.waveRule.service.WaveRuleDomainService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 波次规则ApplicationService
+ *
+ * @author gen
+ * @date 2024-07-23
+ */
+@Service
+@Slf4j
+public class WaveRuleApplicationService {
+ @Autowired
+ private WaveRuleDomainService waveRuleDomainService;
+
+
+ /**
+ * 分页查询波次规则列表
+ */
+
+ public List queryList(WaveRuleDO waveRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ waveRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return waveRuleDomainService.queryList(waveRuleDO);
+ }
+
+
+ /**
+ * 新增波次规则
+ */
+ public Boolean insert(WaveRuleDO waveRuleDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null){
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1){
+ waveRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
+ }
+ }
+ return waveRuleDomainService.insert(waveRuleDO);
+ }
+
+ /**
+ * 修改波次规则
+ */
+ public Boolean update(WaveRuleDO waveRuleDO) {
+ return waveRuleDomainService.update(waveRuleDO);
+ }
+
+ /**
+ * 批量删除波次规则
+ */
+ public boolean delete(Long[] ids) {
+ return waveRuleDomainService.delete(ids);
+ }
+
+ /**
+ * 获取波次规则详细信息
+ */
+ public WaveRulePO getInfo(Long id)
+ {
+ return waveRuleDomainService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/entity/CommonSettings.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/entity/CommonSettings.java
new file mode 100644
index 000000000..c3a610420
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/entity/CommonSettings.java
@@ -0,0 +1,59 @@
+package com.mhd.wms.domain.commonSettings.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 常用设置对象 common_settings
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+
+@Data
+public class CommonSettings extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("常用设置id")
+ @TableId(type = IdType.AUTO)
+ private Long commonSettingsId;
+
+ @ApiModelProperty("所属上级id")
+ @Excel(name = "所属上级id")
+ private Long parentId;
+
+ @ApiModelProperty("名称")
+ @Excel(name = "名称")
+ private String name;
+
+ @ApiModelProperty("route")
+ @Excel(name = "route")
+ private String route;
+
+ @ApiModelProperty("级别 1-一级 2-二级")
+ @Excel(name = "级别 1-一级 2-二级")
+ private Long level;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("组织id")
+ @Excel(name = "组织id")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/facade/ICommonSettingsService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/facade/ICommonSettingsService.java
new file mode 100644
index 000000000..775d1c235
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/facade/ICommonSettingsService.java
@@ -0,0 +1,43 @@
+package com.mhd.wms.domain.commonSettings.repository.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mhd.wms.domain.commonSettings.entity.CommonSettings;
+import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
+import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
+
+import java.util.List;
+
+/**
+ * 常用设置Service接口
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+public interface ICommonSettingsService extends IService
+{
+ /**
+ * 分页查询常用设置列表
+ */
+ public List queryList(CommonSettingsDO commonSettingsDO);
+
+ /**
+ * 新增常用设置
+ */
+ public Boolean insert(CommonSettingsDO commonSettingsDO);
+
+ /**
+ * 修改常用设置
+ */
+ public Boolean update(CommonSettingsDO commonSettingsDO);
+
+ /**
+ * 批量删除常用设置
+ */
+ public Boolean delete(Long[] commonSettingsIds);
+
+
+ /**
+ * 查询常用设置
+ */
+ public CommonSettingsPO getInfo(Long commonSettingsId);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/mapper/CommonSettingsMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/mapper/CommonSettingsMapper.java
new file mode 100644
index 000000000..811de81a9
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/mapper/CommonSettingsMapper.java
@@ -0,0 +1,23 @@
+package com.mhd.wms.domain.commonSettings.repository.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mhd.wms.domain.commonSettings.entity.CommonSettings;
+import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
+import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
+
+import java.util.List;
+
+/**
+ * 常用设置Mapper接口
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+public interface CommonSettingsMapper extends BaseMapper
+{
+ /**
+ * 查询常用设置列表
+ */
+ public List queryList(CommonSettingsDO commonSettingsDO);
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/persistence/CommonSettingsImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/persistence/CommonSettingsImpl.java
new file mode 100644
index 000000000..06e51ea11
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/persistence/CommonSettingsImpl.java
@@ -0,0 +1,81 @@
+package com.mhd.wms.domain.commonSettings.repository.persistence;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mhd.wms.domain.commonSettings.entity.CommonSettings;
+import com.mhd.wms.domain.commonSettings.repository.facade.ICommonSettingsService;
+import com.mhd.wms.domain.commonSettings.repository.mapper.CommonSettingsMapper;
+import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
+import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 常用设置Service业务层处理
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+@Service
+public class CommonSettingsImpl extends ServiceImpl implements ICommonSettingsService{
+ @Autowired
+ private CommonSettingsMapper commonSettingsMapper;
+
+ /**
+ * 查询常用设置列表
+ */
+ @Override
+ public List queryList(CommonSettingsDO commonSettingsDO)
+ {
+ return commonSettingsMapper.queryList(commonSettingsDO);
+ }
+
+ /**
+ * 新增常用设置
+ */
+ @Override
+ public Boolean insert(CommonSettingsDO commonSettingsDO) {
+ CommonSettings commonSettings = new CommonSettings();
+ BeanUtils.copyProperties(commonSettingsDO,commonSettings);
+ return this.save(commonSettings);
+ }
+
+ /**
+ * 修改常用设置
+ */
+ @Override
+ public Boolean update(CommonSettingsDO commonSettingsDO) {
+ CommonSettings commonSettings = new CommonSettings();
+ BeanUtils.copyProperties(commonSettingsDO,commonSettings);
+ return this.updateById(commonSettings);
+ }
+
+ /**
+ * 批量删除常用设置
+ */
+ @Override
+ public Boolean delete(Long[] commonSettingsIds ) {
+ List list = new ArrayList<>();
+ for (Long id : commonSettingsIds) {
+ CommonSettings commonSettings = new CommonSettings();
+ commonSettings.setCommonSettingsId(id);
+ commonSettings.setDelFlag(2);
+ list.add(commonSettings);
+ }
+ return this.updateBatchById(list);
+ }
+
+ /**
+ * 修改常用设置
+ */
+ @Override
+ public CommonSettingsPO getInfo(Long commonSettingsId) {
+ CommonSettings commonSettings = this.getById(commonSettingsId);
+ CommonSettingsPO commonSettingsPO = new CommonSettingsPO();
+ BeanUtils.copyProperties(commonSettings,commonSettingsPO);
+ return commonSettingsPO;
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/po/CommonSettingsPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/po/CommonSettingsPO.java
new file mode 100644
index 000000000..d4ae4baac
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/po/CommonSettingsPO.java
@@ -0,0 +1,62 @@
+package com.mhd.wms.domain.commonSettings.repository.po;
+
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 常用设置对象 common_settings
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+
+@Data
+@ApiModel(value = "常用设置对象", description = "常用设置响应对象")
+public class CommonSettingsPO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("常用设置id")
+ private Long commonSettingsId;
+
+ @ApiModelProperty("所属上级id")
+ @Excel(name = "所属上级id")
+ private Long parentId;
+
+ @ApiModelProperty("名称")
+ @Excel(name = "名称")
+ private String name;
+
+ @ApiModelProperty("route")
+ @Excel(name = "route")
+ private String route;
+
+ @ApiModelProperty("级别 1-一级 2-二级")
+ @Excel(name = "级别 1-一级 2-二级")
+ private Long level;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("组织id")
+ @Excel(name = "组织id")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("是否设置为常用 0-否 1-是")
+ @Excel(name = "是否设置为常用 0-否 1-是")
+ private Integer isSettings;
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/todo/CommonSettingsDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/todo/CommonSettingsDO.java
new file mode 100644
index 000000000..6d506395e
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/repository/todo/CommonSettingsDO.java
@@ -0,0 +1,62 @@
+package com.mhd.wms.domain.commonSettings.repository.todo;
+
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 常用设置对象 common_settings
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+
+@Data
+public class CommonSettingsDO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("常用设置id")
+ private Long commonSettingsId;
+
+ @ApiModelProperty("所属上级id")
+ @Excel(name = "所属上级id")
+ private Long parentId;
+
+ @ApiModelProperty("名称")
+ @Excel(name = "名称")
+ private String name;
+
+ @ApiModelProperty("route")
+ @Excel(name = "route")
+ private String route;
+
+ @ApiModelProperty("级别 1-一级 2-二级")
+ @Excel(name = "级别 1-一级 2-二级")
+ private Long level;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("组织id")
+ @Excel(name = "组织id")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty(name = "组织ID集合")
+ private List organizationIdList;
+
+ @ApiModelProperty(name = "权限菜单ID")
+ private Long permissionMenuId;
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/service/CommonSettingsDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/service/CommonSettingsDomainService.java
new file mode 100644
index 000000000..cc5dcf1f0
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/commonSettings/service/CommonSettingsDomainService.java
@@ -0,0 +1,65 @@
+package com.mhd.wms.domain.commonSettings.service;
+
+import com.mhd.wms.domain.commonSettings.repository.facade.ICommonSettingsService;
+import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
+import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 常用设置
+ *
+ * @author gen
+ * @date 2024-07-29
+ */
+@Service
+@Slf4j
+public class CommonSettingsDomainService {
+
+ @Autowired
+ private ICommonSettingsService commonSettingsService;
+
+
+ /**
+ * 分页查询常用设置列表
+ */
+ public List queryList(CommonSettingsDO commonSettingsDO) {
+ return commonSettingsService.queryList(commonSettingsDO);
+ }
+
+
+ /**
+ * 新增常用设置
+ */
+ public Boolean insert(CommonSettingsDO commonSettingsDO) {
+
+ return commonSettingsService.insert(commonSettingsDO);
+ }
+
+ /**
+ * 修改常用设置
+ */
+ public Boolean update(CommonSettingsDO commonSettingsDO) {
+ return commonSettingsService.update(commonSettingsDO);
+ }
+
+ /**
+ * 批量删除常用设置
+ */
+ public Boolean delete(Long[] commonSettingsIds) {
+ return commonSettingsService.delete(commonSettingsIds);
+ }
+
+ /**
+ * 获取常用设置详细信息
+ */
+ public CommonSettingsPO getInfo(Long commonSettingsId)
+ {
+ return commonSettingsService.getInfo(commonSettingsId);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/entity/ContainerUsageRecord.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/entity/ContainerUsageRecord.java
new file mode 100644
index 000000000..d068729af
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/entity/ContainerUsageRecord.java
@@ -0,0 +1,89 @@
+package com.mhd.wms.domain.containerUsageRecord.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 容器使用记录对象 container_usage_record
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+
+@Data
+public class ContainerUsageRecord extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("ID")
+ @TableId(type = IdType.AUTO)
+ private String id;
+
+ @ApiModelProperty("容器id")
+ @Excel(name = "容器id")
+ private Long containerId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("容器编码")
+ @Excel(name = "容器编码")
+ private String containerCode;
+
+ @ApiModelProperty("容器类型 数据字典")
+ @Excel(name = "容器类型 数据字典")
+ private String containerType;
+
+ @ApiModelProperty("容器类型名称 数据字典")
+ @Excel(name = "容器类型名称 数据字典")
+ private String containerTypeName;
+
+ @ApiModelProperty("容器容积 单位:立方米")
+ @Excel(name = "容器容积 单位:立方米")
+ private BigDecimal containerVolume;
+
+ @ApiModelProperty("记录类型: 1-占用 2-释放")
+ @Excel(name = "记录类型: 1-占用 2-释放")
+ private Integer useType;
+
+ @ApiModelProperty("使用节点: 1-收货 2-上架 3-拣货 4-出库")
+ @Excel(name = "使用节点: 1-收货 2-上架 3-拣货 4-出库")
+ private Integer node;
+
+ @ApiModelProperty("物料基础信息id")
+ @Excel(name = "物料基础信息id")
+ private Long materialBaseInfoId;
+
+ @ApiModelProperty("物料编码")
+ @Excel(name = "物料编码")
+ private String materialCode;
+
+ @ApiModelProperty("物料名称")
+ @Excel(name = "物料名称")
+ private String materialName;
+
+ @ApiModelProperty("物料条形码")
+ @Excel(name = "物料条形码")
+ private String barCode;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/facade/IContainerUsageRecordService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/facade/IContainerUsageRecordService.java
new file mode 100644
index 000000000..7fbc799af
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/facade/IContainerUsageRecordService.java
@@ -0,0 +1,43 @@
+package com.mhd.wms.domain.containerUsageRecord.repository.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mhd.wms.domain.containerUsageRecord.entity.ContainerUsageRecord;
+import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
+import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
+
+import java.util.List;
+
+/**
+ * 容器使用记录Service接口
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+public interface IContainerUsageRecordService extends IService
+{
+ /**
+ * 分页查询容器使用记录列表
+ */
+ public List queryList(ContainerUsageRecordDO containerUsageRecordDO);
+
+ /**
+ * 新增容器使用记录
+ */
+ public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO);
+
+ /**
+ * 修改容器使用记录
+ */
+ public Boolean update(ContainerUsageRecordDO containerUsageRecordDO);
+
+ /**
+ * 批量删除容器使用记录
+ */
+ public Boolean delete(String[] ids);
+
+
+ /**
+ * 查询容器使用记录
+ */
+ public ContainerUsageRecordPO getInfo(String id);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/mapper/ContainerUsageRecordMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/mapper/ContainerUsageRecordMapper.java
new file mode 100644
index 000000000..40d73acae
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/mapper/ContainerUsageRecordMapper.java
@@ -0,0 +1,23 @@
+package com.mhd.wms.domain.containerUsageRecord.repository.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mhd.wms.domain.containerUsageRecord.entity.ContainerUsageRecord;
+import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
+import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
+
+import java.util.List;
+
+/**
+ * 容器使用记录Mapper接口
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+public interface ContainerUsageRecordMapper extends BaseMapper
+{
+ /**
+ * 查询容器使用记录列表
+ */
+ public List queryList(ContainerUsageRecordDO containerUsageRecordDO);
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/persistence/ContainerUsageRecordImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/persistence/ContainerUsageRecordImpl.java
new file mode 100644
index 000000000..3baaf7240
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/persistence/ContainerUsageRecordImpl.java
@@ -0,0 +1,81 @@
+package com.mhd.wms.domain.containerUsageRecord.repository.persistence;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mhd.wms.domain.containerUsageRecord.entity.ContainerUsageRecord;
+import com.mhd.wms.domain.containerUsageRecord.repository.facade.IContainerUsageRecordService;
+import com.mhd.wms.domain.containerUsageRecord.repository.mapper.ContainerUsageRecordMapper;
+import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
+import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 容器使用记录Service业务层处理
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+@Service
+public class ContainerUsageRecordImpl extends ServiceImpl implements IContainerUsageRecordService {
+ @Autowired
+ private ContainerUsageRecordMapper containerUsageRecordMapper;
+
+ /**
+ * 查询容器使用记录列表
+ */
+ @Override
+ public List queryList(ContainerUsageRecordDO containerUsageRecordDO)
+ {
+ return containerUsageRecordMapper.queryList(containerUsageRecordDO);
+ }
+
+ /**
+ * 新增容器使用记录
+ */
+ @Override
+ public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO) {
+ ContainerUsageRecord containerUsageRecord = new ContainerUsageRecord();
+ BeanUtils.copyProperties(containerUsageRecordDO,containerUsageRecord);
+ return this.save(containerUsageRecord);
+ }
+
+ /**
+ * 修改容器使用记录
+ */
+ @Override
+ public Boolean update(ContainerUsageRecordDO containerUsageRecordDO) {
+ ContainerUsageRecord containerUsageRecord = new ContainerUsageRecord();
+ BeanUtils.copyProperties(containerUsageRecordDO,containerUsageRecord);
+ return this.updateById(containerUsageRecord);
+ }
+
+ /**
+ * 批量删除容器使用记录
+ */
+ @Override
+ public Boolean delete(String[] ids ) {
+ List list = new ArrayList<>();
+ for (String id : ids) {
+ ContainerUsageRecord containerUsageRecord = new ContainerUsageRecord();
+ containerUsageRecord.setId(id);
+ containerUsageRecord.setDelFlag(2);
+ list.add(containerUsageRecord);
+ }
+ return this.updateBatchById(list);
+ }
+
+ /**
+ * 修改容器使用记录
+ */
+ @Override
+ public ContainerUsageRecordPO getInfo(String id) {
+ ContainerUsageRecord containerUsageRecord = this.getById(id);
+ ContainerUsageRecordPO containerUsageRecordPO = new ContainerUsageRecordPO();
+ BeanUtils.copyProperties(containerUsageRecord,containerUsageRecordPO);
+ return containerUsageRecordPO;
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/po/ContainerUsageRecordPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/po/ContainerUsageRecordPO.java
new file mode 100644
index 000000000..2436126e0
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/po/ContainerUsageRecordPO.java
@@ -0,0 +1,89 @@
+package com.mhd.wms.domain.containerUsageRecord.repository.po;
+
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 容器使用记录对象 container_usage_record
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+
+@Data
+@ApiModel(value = "容器使用记录对象", description = "容器使用记录响应对象")
+public class ContainerUsageRecordPO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("ID")
+ private String id;
+
+ @ApiModelProperty("容器id")
+ @Excel(name = "容器id")
+ private Long containerId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("容器编码")
+ @Excel(name = "容器编码")
+ private String containerCode;
+
+ @ApiModelProperty("容器类型 数据字典")
+ @Excel(name = "容器类型 数据字典")
+ private String containerType;
+
+ @ApiModelProperty("容器类型名称 数据字典")
+ @Excel(name = "容器类型名称 数据字典")
+ private String containerTypeName;
+
+ @ApiModelProperty("容器容积 单位:立方米")
+ @Excel(name = "容器容积 单位:立方米")
+ private BigDecimal containerVolume;
+
+ @ApiModelProperty("记录类型: 1-占用 2-释放")
+ @Excel(name = "记录类型: 1-占用 2-释放")
+ private Integer useType;
+
+ @ApiModelProperty("使用节点: 1-收货 2-上架 3-拣货 4-出库")
+ @Excel(name = "使用节点: 1-收货 2-上架 3-拣货 4-出库")
+ private Integer node;
+
+ @ApiModelProperty("物料基础信息id")
+ @Excel(name = "物料基础信息id")
+ private Long materialBaseInfoId;
+
+ @ApiModelProperty("物料编码")
+ @Excel(name = "物料编码")
+ private String materialCode;
+
+ @ApiModelProperty("物料名称")
+ @Excel(name = "物料名称")
+ private String materialName;
+
+ @ApiModelProperty("物料条形码")
+ @Excel(name = "物料条形码")
+ private String barCode;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/todo/ContainerUsageRecordDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/todo/ContainerUsageRecordDO.java
new file mode 100644
index 000000000..49c225e13
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/repository/todo/ContainerUsageRecordDO.java
@@ -0,0 +1,91 @@
+package com.mhd.wms.domain.containerUsageRecord.repository.todo;
+
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+ * 容器使用记录对象 container_usage_record
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+
+@Data
+public class ContainerUsageRecordDO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("ID")
+ private String id;
+
+ @ApiModelProperty("容器id")
+ @Excel(name = "容器id")
+ private Long containerId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("容器编码")
+ @Excel(name = "容器编码")
+ private String containerCode;
+
+ @ApiModelProperty("容器类型 数据字典")
+ @Excel(name = "容器类型 数据字典")
+ private String containerType;
+
+ @ApiModelProperty("容器类型名称 数据字典")
+ @Excel(name = "容器类型名称 数据字典")
+ private String containerTypeName;
+
+ @ApiModelProperty("容器容积 单位:立方米")
+ @Excel(name = "容器容积 单位:立方米")
+ private BigDecimal containerVolume;
+
+ @ApiModelProperty("记录类型: 1-占用 2-释放")
+ @Excel(name = "记录类型: 1-占用 2-释放")
+ private Integer useType;
+
+ @ApiModelProperty("使用节点: 1-收货 2-上架 3-拣货 4-出库")
+ @Excel(name = "使用节点: 1-收货 2-上架 3-拣货 4-出库")
+ private Integer node;
+
+ @ApiModelProperty("物料基础信息id")
+ @Excel(name = "物料基础信息id")
+ private Long materialBaseInfoId;
+
+ @ApiModelProperty("物料编码")
+ @Excel(name = "物料编码")
+ private String materialCode;
+
+ @ApiModelProperty("物料名称")
+ @Excel(name = "物料名称")
+ private String materialName;
+
+ @ApiModelProperty("物料条形码")
+ @Excel(name = "物料条形码")
+ private String barCode;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty(name = "组织ID集合")
+ private List organizationIdList;
+
+ @ApiModelProperty(name = "权限菜单ID")
+ private Long permissionMenuId;
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/service/ContainerUsageRecordDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/service/ContainerUsageRecordDomainService.java
new file mode 100644
index 000000000..864fdc46d
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/containerUsageRecord/service/ContainerUsageRecordDomainService.java
@@ -0,0 +1,65 @@
+package com.mhd.wms.domain.containerUsageRecord.service;
+
+import com.mhd.wms.domain.containerUsageRecord.repository.facade.IContainerUsageRecordService;
+import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
+import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 容器使用记录
+ *
+ * @author gen
+ * @date 2024-08-22
+ */
+@Service
+@Slf4j
+public class ContainerUsageRecordDomainService {
+
+ @Autowired
+ private IContainerUsageRecordService containerUsageRecordService;
+
+
+ /**
+ * 分页查询容器使用记录列表
+ */
+ public List queryList(ContainerUsageRecordDO containerUsageRecordDO) {
+ return containerUsageRecordService.queryList(containerUsageRecordDO);
+ }
+
+
+ /**
+ * 新增容器使用记录
+ */
+ public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO) {
+
+ return containerUsageRecordService.insert(containerUsageRecordDO);
+ }
+
+ /**
+ * 修改容器使用记录
+ */
+ public Boolean update(ContainerUsageRecordDO containerUsageRecordDO) {
+ return containerUsageRecordService.update(containerUsageRecordDO);
+ }
+
+ /**
+ * 批量删除容器使用记录
+ */
+ public Boolean delete(String[] ids) {
+ return containerUsageRecordService.delete(ids);
+ }
+
+ /**
+ * 获取容器使用记录详细信息
+ */
+ public ContainerUsageRecordPO getInfo(String id)
+ {
+ return containerUsageRecordService.getInfo(id);
+ }
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/entity/DeliveTask.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/entity/DeliveTask.java
new file mode 100644
index 000000000..3d5303c7a
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/entity/DeliveTask.java
@@ -0,0 +1,112 @@
+package com.mhd.wms.domain.deliveTask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 下发任务对象 delive_task
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+
+@Data
+public class DeliveTask extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("任务id")
+ @TableId(type = IdType.AUTO)
+ private Long deliverTaskId;
+
+ @ApiModelProperty("任务单号")
+ @Excel(name = "任务单号")
+ private String taskNumber;
+
+ @ApiModelProperty("来源单号")
+ @Excel(name = "来源单号")
+ private String trackingNumber;
+
+ @ApiModelProperty("组织id")
+ @Excel(name = "组织id")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
+ @Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
+ private Integer taskType;
+
+ @ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
+ @Excel(name = "任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
+ private Integer taskStatus;
+
+ @ApiModelProperty("是否下发 0-否 1-是")
+ @Excel(name = "是否下发 0-否 1-是")
+ private Integer taskDistribution;
+
+ @ApiModelProperty("下发时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date taskDistributionTime;
+
+ @ApiModelProperty("下发人id")
+ @Excel(name = "下发人id")
+ private Long taskDistributionId;
+
+ @ApiModelProperty("下发人名称")
+ @Excel(name = "下发人名称")
+ private String taskDistributionName;
+
+ @ApiModelProperty("作业人用户ID")
+ @Excel(name = "作业人用户ID")
+ private Long operatorsBy;
+
+ @ApiModelProperty("作业人姓名")
+ @Excel(name = "作业人姓名")
+ private String operatorsName;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("重新指派时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @Excel(name = "重新指派时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date reassignTime;
+
+ @ApiModelProperty("重新指派人id")
+ @Excel(name = "重新指派人id")
+ private Long reassignById;
+
+ @ApiModelProperty("重新指派人")
+ @Excel(name = "重新指派人")
+ private String reassignByName;
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/factorys/DeliveTaskServiceFactory.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/factorys/DeliveTaskServiceFactory.java
new file mode 100644
index 000000000..f80415ea9
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/factorys/DeliveTaskServiceFactory.java
@@ -0,0 +1,57 @@
+package com.mhd.wms.domain.deliveTask.factorys;
+
+import com.aliyun.oss.ServiceException;
+import com.aliyun.oss.common.utils.CaseInsensitiveMap;
+import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @author ZhouGY
+ * @title WaveOrderFactory
+ * @description: 生成波次单规则类型工厂
+ * @date 2024/6/4 11:12
+ **/
+@Service
+public class DeliveTaskServiceFactory {
+
+ @Autowired
+ private Map deliveTaskTypeServiceMap = new CaseInsensitiveMap<>();
+
+ /**
+ * @description 获取对应的服务
+ * @author ZhouGY
+ * @date 2024/6/4 11:14
+ * @param taskType
+ * @return IWaveOrderTypeService
+ */
+ public IDeliveTaskTypeService getDeliveTaskTypeService(Integer taskType) {
+ String deliveTaskType = "";
+ //任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点
+ switch (taskType){
+ case 1:
+ deliveTaskType = "stockReceiptOrderImpl";
+ break;
+ case 2:
+ deliveTaskType = "stockShelfOrderImpl";
+ break;
+ case 3:
+ deliveTaskType = "stockOutTaskOrderImpl";
+ break;
+ case 4:
+ deliveTaskType = "stockOutOrderImpl";
+ break;
+ case 5:
+ deliveTaskType = "shiftManageImpl";
+ break;
+ case 6:
+ deliveTaskType = "investigationManageImpl";
+ break;
+ default:
+ throw new ServiceException("任务类型不存在");
+ }
+ return deliveTaskTypeServiceMap.get(deliveTaskType);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskService.java
new file mode 100644
index 000000000..7714f15c9
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskService.java
@@ -0,0 +1,59 @@
+package com.mhd.wms.domain.deliveTask.repository.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
+import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
+
+import java.util.List;
+
+/**
+ * 下发任务Service接口
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+public interface IDeliveTaskService extends IService
+{
+ /**
+ * 分页查询下发任务列表
+ */
+ public List queryList(DeliveTaskDO deliveTaskDO);
+ /**
+ * 分页查询下发任务列表
+ */
+ public List queryListApp(DeliveTaskDO deliveTaskDO);
+
+
+ /**
+ * 批量 新增下发任务
+ */
+ public Boolean batchInsert(List deliveTaskDOList);
+
+
+ /**
+ * 批量删除下发任务
+ */
+ public Boolean delete(Long[] deliverTaskIds);
+
+
+ /**
+ * 查询下发任务
+ */
+ public DeliveTaskPO getInfo(Long deliverTaskId);
+
+ /**
+ * 工作台查询
+ */
+ public DeliveTaskSumPO workbenchQuery();
+
+ public int receive(Long deliverTaskId);
+
+ public int refuse(Long deliverTaskId);
+
+ /**
+ * 查询列表表头数量
+ */
+ public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskTypeService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskTypeService.java
new file mode 100644
index 000000000..73148fcbf
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/facade/IDeliveTaskTypeService.java
@@ -0,0 +1,21 @@
+package com.mhd.wms.domain.deliveTask.repository.facade;
+
+import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
+
+/**
+ * @author ZhouGY
+ * @title IWaveOrderType
+ * @description: 任务下发
+ * @date 2024/6/4 10:42
+ **/
+public interface IDeliveTaskTypeService {
+
+ /**
+ * @description 更新订单任务下发状态
+ * @author ZhouGY
+ * @date 2024/6/4 10:43
+ * @param deliveTaskDO
+ * @return Boolean
+ */
+ public Boolean handleDeliveTask(DeliveTaskDO deliveTaskDO);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/mapper/DeliveTaskMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/mapper/DeliveTaskMapper.java
new file mode 100644
index 000000000..6c5843a79
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/mapper/DeliveTaskMapper.java
@@ -0,0 +1,49 @@
+package com.mhd.wms.domain.deliveTask.repository.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
+import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 下发任务Mapper接口
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+public interface DeliveTaskMapper extends BaseMapper
+{
+ /**
+ * 查询下发任务列表
+ */
+ public List queryList(DeliveTaskDO deliveTaskDO);
+
+ public DeliveTaskSumPO workbenchQuery(@Param("operatorsBy") Long userid);
+
+ /**
+ * 查询下发任务列表
+ */
+ public List queryListApp(DeliveTaskDO deliveTaskDO);
+ /**
+ * 修改任务状态
+ */
+ @Update("update delive_task set task_status=#{taskStatus} where deliver_task_id=#{deliverTaskId}")
+ public int receive(@Param("deliverTaskId") Long deliverTaskId, @Param("taskStatus") Integer taskStatus);
+
+
+ /**
+ * 修改作业人员
+ */
+ @Update("update delive_task set operators_by=#{operatorsBy},operators_name=#{operatorsName} where deliver_task_id=#{deliverTaskId}")
+ public int updateOperatorsBy(@Param("deliverTaskId") Long deliverTaskId, @Param("operatorsBy") Long operatorsBy, @Param("operatorsName") String operatorsName);
+
+ /**
+ * 查询下发任务列表
+ */
+ public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java
new file mode 100644
index 000000000..992200e6f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java
@@ -0,0 +1,174 @@
+package com.mhd.wms.domain.deliveTask.repository.persistence;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mhd.common.core.domain.dto.NoticeMessageLoggingDto;
+import com.mhd.common.core.enums.MessageTypeEnum;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.core.web.domain.AjaxResult;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.SystemServiceFeign;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
+import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService;
+import com.mhd.wms.domain.deliveTask.repository.mapper.DeliveTaskMapper;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
+import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 下发任务Service业务层处理
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+@Service
+public class DeliveTaskImpl extends ServiceImpl implements IDeliveTaskService{
+ @Autowired
+ private DeliveTaskMapper deliveTaskMapper;
+ @Autowired
+ private SystemServiceFeign systemServiceFeign;
+ /**
+ * 查询下发任务列表
+ */
+ @Override
+ public List queryList(DeliveTaskDO deliveTaskDO)
+ {
+ return deliveTaskMapper.queryList(deliveTaskDO);
+ }
+ /**
+ * 查询下发任务列表
+ */
+ @Override
+ public List queryListApp(DeliveTaskDO deliveTaskDO)
+ {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if(null!=deliveTaskDO.getTabType()&&deliveTaskDO.getTabType()==1){
+ deliveTaskDO.setOperatorsBy(loginUser.getUserid());
+ }else{
+
+ }
+ return deliveTaskMapper.queryListApp(deliveTaskDO);
+ }
+ /**
+ * 新增下发任务
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean batchInsert(List deliveTaskDOList) {
+ List deliveTaskList = new ArrayList<>();
+ List noticeMessageLoggingDtoList = new ArrayList<>();
+ for (DeliveTaskDO deliveTaskDO : deliveTaskDOList){
+ DeliveTask deliveTask = new DeliveTask();
+ BeanUtils.copyProperties(deliveTaskDO,deliveTask);
+ deliveTaskList.add(deliveTask);
+ NoticeMessageLoggingDto noticeMessageLoggingDto = new NoticeMessageLoggingDto();
+ noticeMessageLoggingDto.setUserId(deliveTaskDO.getOperatorsBy());
+ noticeMessageLoggingDto.setUserName(deliveTaskDO.getOperatorsName());
+ noticeMessageLoggingDto.setNoticeMessageType(MessageTypeEnum.system_notifications.getCode());
+ noticeMessageLoggingDto.setNoticeMessageName(MessageTypeEnum.system_notifications.getInfo());
+ noticeMessageLoggingDto.setNoticeMessageTitle("任务下发通知");
+ noticeMessageLoggingDto.setMessageReadStatus(2);
+ String text="";
+ if(deliveTaskDO.getTaskType()==1){
+ text="有一个指派给您的收货任务,请尽快处理";
+ }else if(deliveTaskDO.getTaskType()==2){
+ text="有一个指派给您的上架任务,请尽快处理";
+ }else if(deliveTaskDO.getTaskType()==3){
+ text="有一个指派给您的拣货任务,请尽快处理";
+ }else if(deliveTaskDO.getTaskType()==4){
+ text="有一个指派给您的复盘任务,请尽快处理";
+ }else if(deliveTaskDO.getTaskType()==5){
+ text="有一个指派给您的移位任务,请尽快处理";
+ }else if(deliveTaskDO.getTaskType()==6){
+ text="有一个指派给您的盘点任务,请尽快处理";
+ }
+ noticeMessageLoggingDto.setMessagePushTime(new Date());
+ noticeMessageLoggingDto.setMessageSource(2);
+ noticeMessageLoggingDto.setTopOrganizationId(deliveTaskDO.getTopOrganizationId());
+ noticeMessageLoggingDto.setWaybillNumber(deliveTaskDO.getTrackingNumber());
+ noticeMessageLoggingDto.setDataSourceSystem(3);
+ noticeMessageLoggingDto.setDelFlag(1);
+ noticeMessageLoggingDto.setJumpPage(0);
+ noticeMessageLoggingDto.setNoticeMessageContent(text);
+ noticeMessageLoggingDto.setCreateBy(deliveTaskDO.getCreateBy());
+ noticeMessageLoggingDto.setCreateByName(deliveTaskDO.getCreateByName());
+ noticeMessageLoggingDto.setCreateTime(new Date());
+ noticeMessageLoggingDto.setMessagePushTime(new Date());
+ noticeMessageLoggingDtoList.add(noticeMessageLoggingDto);
+ }
+ saveBatch(deliveTaskList);
+ NoticeMessageLoggingDto noticeMessageLogging = new NoticeMessageLoggingDto();
+ noticeMessageLogging.setNoticeList(noticeMessageLoggingDtoList);
+ AjaxResult ajaxResult= systemServiceFeign.addMessageLoggingList(noticeMessageLogging);
+ if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
+ throw new ServiceException("保存消息信息失败");
+ }
+ return true;
+ }
+
+ /**
+ * 批量删除下发任务
+ */
+ @Override
+ public Boolean delete(Long[] deliverTaskIds ) {
+ List list = new ArrayList<>();
+ for (Long id : deliverTaskIds) {
+ DeliveTask deliveTask = new DeliveTask();
+ deliveTask.setDeliverTaskId(id);
+ deliveTask.setDelFlag(2);
+ list.add(deliveTask);
+ }
+ return this.updateBatchById(list);
+ }
+
+ /**
+ * 修改下发任务
+ */
+ @Override
+ public DeliveTaskPO getInfo(Long deliverTaskId) {
+ DeliveTask deliveTask = this.getById(deliverTaskId);
+ DeliveTaskPO deliveTaskPO = new DeliveTaskPO();
+ BeanUtils.copyProperties(deliveTask,deliveTaskPO);
+ return deliveTaskPO;
+ }
+ /**
+ * 工作台查询
+ */
+ @Override
+ public DeliveTaskSumPO workbenchQuery() {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+
+ return deliveTaskMapper.workbenchQuery(loginUser.getUserid());
+ }
+ /**
+ * 接收操作
+ */
+ @Override
+ public int receive(Long deliverTaskId) {
+ return deliveTaskMapper.receive(deliverTaskId,1);
+ }
+ /**
+ * 拒绝操作
+ */
+ @Override
+ public int refuse(Long deliverTaskId) {
+ int update=deliveTaskMapper.receive(deliverTaskId,2);
+ if(update==1){
+ deliveTaskMapper.updateOperatorsBy(deliverTaskId, Long.valueOf("0"),"");
+ }
+ return update;
+ }
+
+ @Override
+ public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO) {
+ return deliveTaskMapper.querySum(deliveTaskDO);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java
new file mode 100644
index 000000000..2e233188b
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java
@@ -0,0 +1,118 @@
+package com.mhd.wms.domain.deliveTask.repository.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 下发任务对象 delive_task
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+
+@Data
+@ApiModel(value = "下发任务对象", description = "下发任务响应对象")
+public class DeliveTaskPO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("任务id")
+ private Long deliverTaskId;
+
+ @ApiModelProperty("任务单号")
+ @Excel(name = "任务单号")
+ private String taskNumber;
+
+ @ApiModelProperty("来源单号")
+ @Excel(name = "来源单号")
+ private String trackingNumber;
+
+ @ApiModelProperty("组织id")
+ @Excel(name = "组织id")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
+ @Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
+ private Integer taskType;
+
+ @ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
+ @Excel(name = "任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
+ private Integer taskStatus;
+
+ @ApiModelProperty("是否下发 0-否 1-是")
+ @Excel(name = "是否下发 0-否 1-是")
+ private Integer taskDistribution;
+
+ @ApiModelProperty("下发时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date taskDistributionTime;
+
+ @ApiModelProperty("下发人id")
+ @Excel(name = "下发人id")
+ private Long taskDistributionId;
+
+ @ApiModelProperty("下发人名称")
+ @Excel(name = "下发人名称")
+ private String taskDistributionName;
+
+ @ApiModelProperty("作业人用户ID")
+ @Excel(name = "作业人用户ID")
+ private Long operatorsBy;
+
+ @ApiModelProperty("作业人姓名")
+ @Excel(name = "作业人姓名")
+ private String operatorsName;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("重新指派时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @Excel(name = "重新指派时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date reassignTime;
+
+ @ApiModelProperty("重新指派人id")
+ @Excel(name = "重新指派人id")
+ private Long reassignById;
+
+ @ApiModelProperty("重新指派人")
+ @Excel(name = "重新指派人")
+ private String reassignByName;
+
+ @ApiModelProperty("是否下发 0-否 1-是")
+ @Excel(name = "是否下发 0-否 1-是")
+ private Integer designateSum;
+
+ @ApiModelProperty("是否下发 0-否 1-是")
+ @Excel(name = "是否下发 0-否 1-是")
+ private Integer taskSum;
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskSumPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskSumPO.java
new file mode 100644
index 000000000..14bc511eb
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskSumPO.java
@@ -0,0 +1,37 @@
+package com.mhd.wms.domain.deliveTask.repository.po;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 下发任务对象 delive_task
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+
+@Data
+@ApiModel(value = "下发任务对象", description = "下发任务响应对象")
+public class DeliveTaskSumPO {
+
+ @ApiModelProperty("待收货数量")
+ private Integer receivedQuantity;
+
+ @ApiModelProperty("待上架数量")
+ private Integer listingQuantity;
+
+ @ApiModelProperty("待拣货数量")
+ private Integer pickQuantity;
+
+ @ApiModelProperty("待复核数量")
+ private Integer recheckQuantity;
+
+ @ApiModelProperty("待移位数量")
+ private Integer displacementQuantity;
+
+ @ApiModelProperty("待盘点数量")
+ private Integer stockQuantity;
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java
new file mode 100644
index 000000000..c880530f8
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java
@@ -0,0 +1,118 @@
+package com.mhd.wms.domain.deliveTask.repository.todo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 下发任务对象 delive_task
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+
+@Data
+public class DeliveTaskDO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("任务id")
+ private Long deliverTaskId;
+
+ @ApiModelProperty("任务单号")
+ @Excel(name = "任务单号")
+ private String taskNumber;
+
+ @ApiModelProperty("来源单号")
+ @Excel(name = "来源单号")
+ private String trackingNumber;
+
+ @ApiModelProperty("组织id")
+ @Excel(name = "组织id")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
+ @Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
+ private Integer taskType;
+
+ @ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
+ @Excel(name = "任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
+ private Integer taskStatus;
+
+ @ApiModelProperty("是否下发 0-否 1-是")
+ @Excel(name = "是否下发 0-否 1-是")
+ private Integer taskDistribution;
+
+ @ApiModelProperty("下发时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date taskDistributionTime;
+
+ @ApiModelProperty("下发人id")
+ @Excel(name = "下发人id")
+ private Long taskDistributionId;
+
+ @ApiModelProperty("下发人名称")
+ @Excel(name = "下发人名称")
+ private String taskDistributionName;
+
+ @ApiModelProperty("作业人用户ID")
+ @Excel(name = "作业人用户ID")
+ private Long operatorsBy;
+
+ @ApiModelProperty("作业人姓名")
+ @Excel(name = "作业人姓名")
+ private String operatorsName;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("重新指派时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @Excel(name = "重新指派时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date reassignTime;
+
+ @ApiModelProperty("重新指派人id")
+ @Excel(name = "重新指派人id")
+ private Long reassignById;
+
+ @ApiModelProperty("重新指派人")
+ @Excel(name = "重新指派人")
+ private String reassignByName;
+
+ @ApiModelProperty(name = "组织ID集合")
+ private List organizationIdList;
+
+ @ApiModelProperty(name = "权限菜单ID")
+ private Long permissionMenuId;
+
+ @ApiModelProperty("查询类型 1-指派给我的 2-任务")
+ @Excel(name = "查询类型 1-指派给我的 2-任务")
+ private Long tabType;
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/service/DeliveTaskDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/service/DeliveTaskDomainService.java
new file mode 100644
index 000000000..d4e99c3fe
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/service/DeliveTaskDomainService.java
@@ -0,0 +1,117 @@
+package com.mhd.wms.domain.deliveTask.service;
+
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
+import com.mhd.wms.domain.deliveTask.factorys.DeliveTaskServiceFactory;
+import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
+import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
+import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 下发任务
+ *
+ * @author gen
+ * @date 2024-07-26
+ */
+@Service
+@Slf4j
+public class DeliveTaskDomainService {
+
+ @Autowired
+ private IDeliveTaskService deliveTaskService;
+ @Autowired
+ private DeliveTaskServiceFactory deliveTaskServiceFactory;
+
+ /**
+ * 分页查询下发任务列表
+ */
+ public List queryList(DeliveTaskDO deliveTaskDO) {
+ return deliveTaskService.queryList(deliveTaskDO);
+ }
+ /**
+ * 分页查询下发任务列表
+ */
+ public List queryListApp(DeliveTaskDO deliveTaskDO) {
+ return deliveTaskService.queryListApp(deliveTaskDO);
+ }
+
+ /**
+ * 批量 新增下发任务
+ */
+ public Boolean batchInsert(List deliveTaskDOList) {
+ return deliveTaskService.batchInsert(deliveTaskDOList);
+ }
+
+
+ /**
+ * 批量删除下发任务
+ */
+ public Boolean delete(Long[] deliverTaskIds) {
+ return deliveTaskService.delete(deliverTaskIds);
+ }
+
+ /**
+ * 获取下发任务详细信息
+ */
+ public DeliveTaskPO getInfo(Long deliverTaskId)
+ {
+ return deliveTaskService.getInfo(deliverTaskId);
+ }
+
+ /**
+ * 工作台查询
+ */
+ public DeliveTaskSumPO workbenchQuery()
+ {
+ return deliveTaskService.workbenchQuery();
+ }
+ /**
+ * 接收操作
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public int receive(Long deliverTaskId) {
+ DeliveTask deliveTask = deliveTaskService.getById(deliverTaskId);
+ if (deliveTask == null){
+ throw new ServiceException("任务不存在");
+ }
+ if (deliveTask.getTaskStatus() > 0){
+ throw new ServiceException("任务已处理,请勿重复处理");
+ }
+ int count = deliveTaskService.receive(deliverTaskId);
+ if (count == 0) {
+ throw new ServiceException("接受任务失败");
+ }
+ DeliveTaskDO deliveTaskDO = new DeliveTaskDO();
+ deliveTaskDO.setTrackingNumber(deliveTask.getTrackingNumber());
+ deliveTaskDO.setOperatorsBy(deliveTask.getOperatorsBy());
+ deliveTaskDO.setOperatorsName(deliveTask.getOperatorsName());
+ deliveTaskServiceFactory.getDeliveTaskTypeService(deliveTask.getTaskType()).handleDeliveTask(deliveTaskDO);
+ return count;
+ }
+ /**
+ * 拒绝操作
+ */
+ public int refuse(Long deliverTaskId) {
+ DeliveTask deliveTask = deliveTaskService.getById(deliverTaskId);
+ if (deliveTask == null){
+ throw new ServiceException("任务不存在");
+ }
+ if (deliveTask.getTaskStatus() > 0){
+ throw new ServiceException("任务已处理,请勿重复处理");
+ }
+ return deliveTaskService.refuse(deliverTaskId);
+ }
+ /**
+ * 查询列表表头数量
+ */
+ public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO) {
+ return deliveTaskService.querySum(deliveTaskDO);
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/entity/DifferentManage.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/entity/DifferentManage.java
new file mode 100644
index 000000000..87031715b
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/entity/DifferentManage.java
@@ -0,0 +1,117 @@
+package com.mhd.wms.domain.differentManage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import com.mhd.wms.domain.investigetionManageDetail.entity.InvestigetionManageDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 差异单对象 different_manage
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+
+@Data
+public class DifferentManage extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("差异管理id")
+ @TableId(type = IdType.AUTO)
+ private Long differentManageId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("差异单号")
+ @Excel(name = "差异单号")
+ private String differentNumber;
+
+ @ApiModelProperty("盘点单号")
+ @Excel(name = "盘点单号")
+ private String investigationNumber;
+
+ @ApiModelProperty("盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
+ @Excel(name = "盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
+ private Integer investigationStatus;
+
+ @ApiModelProperty("盘点范围")
+ @Excel(name = "盘点范围")
+ private String investigationRange;
+
+ @ApiModelProperty("盘点方式:1.明盘 2.盲盘")
+ @Excel(name = "盘点方式:1.明盘 2.盲盘")
+ private Integer investigationType;
+
+ @ApiModelProperty("盘点方法:1.静态盘点 2.动态盘点")
+ @Excel(name = "盘点方法:1.静态盘点 2.动态盘点")
+ private Integer investigationMethod;
+
+ @ApiModelProperty("盘点轮次:1.初盘 2.复盘")
+ @Excel(name = "盘点轮次:1.初盘 2.复盘")
+ private Integer investigationFrequency;
+
+ @ApiModelProperty("监盘人ID")
+ @Excel(name = "监盘人ID")
+ private Long investigationManBy;
+
+ @ApiModelProperty("监盘人姓名")
+ @Excel(name = "监盘人姓名")
+ private String investigationManName;
+
+ @ApiModelProperty("作业人用户ID")
+ @Excel(name = "作业人用户ID")
+ private Long operatorsBy;
+
+ @ApiModelProperty("作业人姓名")
+ @Excel(name = "作业人姓名")
+ private String operatorsName;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("是否作废: 1-是 2-否")
+ @Excel(name = "是否作废: 1-是 2-否")
+ private Integer nullify;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("是否过账: 1-是 2-否")
+ @Excel(name = "是否过账: 1-是 2-否")
+ private Integer postedFlag;
+
+ @ApiModelProperty("是否重盘: 1-是 2-否")
+ @Excel(name = "是否重盘: 1-是 2-否")
+ private Integer reCountedFlag;
+
+ @ApiModelProperty("盘点详情")
+ @TableField(exist = false)
+ private List investigetionManageDetailList;
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/facade/IDifferentManageService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/facade/IDifferentManageService.java
new file mode 100644
index 000000000..43ea7b9d8
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/facade/IDifferentManageService.java
@@ -0,0 +1,55 @@
+package com.mhd.wms.domain.differentManage.repository.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mhd.wms.domain.differentManage.entity.DifferentManage;
+import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
+import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
+
+import java.util.List;
+
+/**
+ * 差异单Service接口
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+public interface IDifferentManageService extends IService
+{
+ /**
+ * 分页查询差异单列表
+ */
+ public List queryList(DifferentManageDO differentManageDO);
+
+ /**
+ * 新增差异单
+ */
+ public Boolean insert(DifferentManageDO differentManageDO);
+
+ /**
+ * 修改差异单
+ */
+ public Boolean update(DifferentManageDO differentManageDO);
+
+ /**
+ * 批量删除差异单
+ */
+ public Boolean delete(Long[] differentManageIds);
+
+
+ /**
+ * 查询差异单
+ */
+ public DifferentManagePO getInfo(Long differentManageId);
+
+ /**
+ * 重盘生成新的差异单
+ */
+ public Boolean resetDifferent(DifferentManageDO differentManageDO);
+
+ /**
+ * 差异过账
+ */
+ public Boolean differentRollback(DifferentManageDO differentManageDO);
+
+ public DifferentManagePO getDifferentManageDO(Long differentManageId);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/mapper/DifferentManageMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/mapper/DifferentManageMapper.java
new file mode 100644
index 000000000..7c4b9f87d
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/mapper/DifferentManageMapper.java
@@ -0,0 +1,23 @@
+package com.mhd.wms.domain.differentManage.repository.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mhd.wms.domain.differentManage.entity.DifferentManage;
+import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
+import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
+
+import java.util.List;
+
+/**
+ * 差异单Mapper接口
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+public interface DifferentManageMapper extends BaseMapper
+{
+ /**
+ * 查询差异单列表
+ */
+ public List queryList(DifferentManageDO differentManageDO);
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/persistence/DifferentManageImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/persistence/DifferentManageImpl.java
new file mode 100644
index 000000000..ae699716b
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/persistence/DifferentManageImpl.java
@@ -0,0 +1,210 @@
+package com.mhd.wms.domain.differentManage.repository.persistence;
+
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mhd.common.core.domain.po.UserPo;
+import com.mhd.common.core.exception.ServiceException;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.differentManage.entity.DifferentManage;
+import com.mhd.wms.domain.differentManage.repository.facade.IDifferentManageService;
+import com.mhd.wms.domain.differentManage.repository.mapper.DifferentManageMapper;
+import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
+import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
+import com.mhd.wms.domain.investigationManage.entity.InvestigationManage;
+import com.mhd.wms.domain.investigetionManageDetail.entity.InvestigetionManageDetail;
+import com.mhd.wms.domain.investigetionManageDetail.repository.mapper.InvestigetionManageDetailMapper;
+import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
+import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
+import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper;
+import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO;
+import com.mhd.wms.enums.StatusInvestigationEnum;
+import com.mhd.wms.util.UtilloginUserAssemble;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 差异单Service业务层处理
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+@Service
+public class DifferentManageImpl extends ServiceImpl implements IDifferentManageService {
+ @Autowired
+ private DifferentManageMapper differentManageMapper;
+
+ @Autowired
+ private com.mhd.wms.domain.investigationManage.repository.mapper.InvestigationManageMapper investigationManageMapper;
+
+ @Autowired
+ private InvestigetionManageDetailMapper investigetionManageDetailMapper;
+
+ @Autowired
+ private com.mhd.wms.domain.investigationManage.repository.mapper.InvestigationManageMapper InvestigationManageMapper;
+
+ @Autowired
+ private MaterialInventoryMapper materialInventoryMapper;
+
+ /**
+ * 查询差异单列表
+ */
+ @Override
+ public List queryList(DifferentManageDO differentManageDO) {
+ return differentManageMapper.queryList(differentManageDO);
+ }
+
+ /**
+ * 新增差异单
+ */
+ @Override
+ public Boolean insert(DifferentManageDO differentManageDO) {
+ DifferentManage differentManage = new DifferentManage();
+ BeanUtils.copyProperties(differentManageDO, differentManage);
+ return this.save(differentManage);
+ }
+
+ /**
+ * 修改差异单
+ */
+ @Override
+ public Boolean update(DifferentManageDO differentManageDO) {
+ DifferentManage differentManage = new DifferentManage();
+ BeanUtils.copyProperties(differentManageDO, differentManage);
+ return this.updateById(differentManage);
+ }
+
+ /**
+ * 批量删除差异单
+ */
+ @Override
+ public Boolean delete(Long[] differentManageIds) {
+ List list = new ArrayList<>();
+ for (Long id : differentManageIds) {
+ DifferentManage differentManage = new DifferentManage();
+ differentManage.setDifferentManageId(id);
+ differentManage.setDelFlag(2);
+ list.add(differentManage);
+ }
+ return this.updateBatchById(list);
+ }
+
+ /**
+ * 修改差异单
+ */
+ @Override
+ public DifferentManagePO getInfo(Long differentManageId) {
+ DifferentManage differentManage = this.getById(differentManageId);
+ DifferentManagePO differentManagePO = new DifferentManagePO();
+ BeanUtils.copyProperties(differentManage, differentManagePO);
+ return differentManagePO;
+ }
+
+ @Override
+ public Boolean resetDifferent(DifferentManageDO differentManageDO) {
+ // 生成新的盘点单
+ // 查询差异单
+ DifferentManage differentManage = differentManageMapper.selectById(differentManageDO.getDifferentManageId());
+ if(null == differentManage){
+ throw new ServiceException("抱歉,没有找到此差异单信息!");
+ }
+ //盘点单号
+ String investigationNumber = differentManage.getInvestigationNumber();
+ //查询原盘点单信息
+ InvestigationManage investigationManage = investigationManageMapper.selectOne(new QueryWrapper().lambda().eq(InvestigationManage::getInvestigationNumber, investigationNumber));
+ if(null == investigationManage){
+ throw new ServiceException("抱歉,没有找到此差异单关联的盘点单信息!");
+ }
+ //新的盘点单号
+ investigationManage.setInvestigationNumber(panDian());
+ investigationManage.setOldInvestigationNumber(differentManage.getInvestigationNumber());
+ investigationManage.setDifferentNumber(null);
+ investigationManage.setInvestigationFrequency(2);
+ // 基本信息
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ UserPo userPo = loginUser.getUserPo();
+ investigationManage.setOrganizationId(userPo.getOrganizationId());
+ investigationManage.setTopOrganizationId(userPo.getTopOrganizationId());
+ investigationManage.setOrganizationName(userPo.getOrganizationName());
+ investigationManage.setCreateBy(loginUser.getUserid());
+ investigationManage.setCreateByName(loginUser.getUsername());
+ investigationManage.setCreateTime(new Date());
+ investigationManage.setUpdateBy(loginUser.getUserid());
+ investigationManage.setUpdateByName(loginUser.getUsername());
+ investigationManage.setUpdateTime(new Date());
+
+ //设置新盘点单状态--待盘点(禅道7820)
+ investigationManage.setInvestigationStatus(StatusInvestigationEnum.pending.getCode());
+ //根据差异单生成新盘点单明细
+ List investigetionManageDetailList = investigetionManageDetailMapper.selectList(new QueryWrapper().lambda().eq(InvestigetionManageDetail::getInvestigationNumber, investigationNumber));
+ for(InvestigetionManageDetail investigetionManageDetail : investigetionManageDetailList){
+ investigetionManageDetail.setDifferentNumber(null);
+ investigetionManageDetail.setInvestigationNumber(investigationManage.getInvestigationNumber());
+ investigetionManageDetail.setInvestigationStatus(StatusInvestigationEnum.pending.getCode());
+ investigetionManageDetail.setInvestigationFrequency(2);
+ //获取最新的库存数量
+ MaterialInventory materialInventory = materialInventoryMapper.selectOne(new QueryWrapper().lambda().eq(MaterialInventory::getMaterialInventoryId, investigetionManageDetail.getMaterialInventoryId()));
+ investigetionManageDetail.setInventoryQuantity(materialInventory.getInventoryQuantity());
+ //盘点数量设置为0
+ investigetionManageDetail.setInvestigationQuantity(BigDecimal.ZERO);
+ //差异数量设置为0
+ investigetionManageDetail.setDifferentQuantity(BigDecimal.ZERO);
+ UtilloginUserAssemble assembler = new UtilloginUserAssemble();
+ assembler.fillCommonProperties(investigetionManageDetail, loginUser);
+ investigetionManageDetail.setInvestigationManageDetailId(null);
+ //保存明细
+ investigetionManageDetailMapper.insert(investigetionManageDetail);
+ }
+
+ return InvestigationManageMapper.insert(investigationManage) > 0;
+ }
+
+ @Override
+ public Boolean differentRollback(DifferentManageDO differentManageDO1) {
+ DifferentManagePO differentManagePO = getDifferentManageDO(differentManageDO1.getDifferentManageId());
+ DifferentManageDO differentManageDO = JSONUtil.toBean(JSONUtil.toJsonStr(differentManagePO), DifferentManageDO.class);
+ // 库存差异更新
+ List investigetionManageDetailList = differentManageDO.getInvestigetionManageDetailList();
+ investigetionManageDetailList.forEach(e->{
+ MaterialInventory materialInventory = new MaterialInventory();
+ if (e.getInvestigationStatus() != 3){ // 库存更新
+ materialInventory = materialInventoryMapper.selectById(e.getMaterialInventoryId());
+ materialInventory.setInventoryQuantity(e.getInvestigationQuantity());
+
+ }
+ materialInventoryMapper.updateMaterial(JSONUtil.toBean(JSONUtil.toJsonStr(materialInventory), MaterialInventoryDO.class));
+ });
+ return true;
+ }
+
+ @Override
+ public DifferentManagePO getDifferentManageDO(Long differentManageId) {
+ DifferentManage differentManage = differentManageMapper.selectById(differentManageId);
+ String investigationNumber = differentManage.getInvestigationNumber();
+ List investigetionManageDetails = investigetionManageDetailMapper.selectList(new QueryWrapper().lambda().eq(InvestigetionManageDetail::getInvestigationNumber, investigationNumber));
+ List investigetionManageDetailList = new ArrayList<>();
+ for (InvestigetionManageDetail e : investigetionManageDetails) {
+ if (e.getInvestigationResult() != 3) {
+ investigetionManageDetailList.add(e);
+ }
+ }
+ differentManage.setInvestigetionManageDetailList(investigetionManageDetailList);
+ return JSONUtil.toBean(JSONUtil.toJsonStr(differentManage),DifferentManagePO.class);
+ }
+
+ public String panDian() {
+ String panDian = "PD";
+ LocalDateTime loc = LocalDateTime.now();
+ panDian += loc.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+ return panDian;
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/po/DifferentManagePO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/po/DifferentManagePO.java
new file mode 100644
index 000000000..5463e476f
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/po/DifferentManagePO.java
@@ -0,0 +1,117 @@
+package com.mhd.wms.domain.differentManage.repository.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 差异单对象 different_manage
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+
+@Data
+@ApiModel(value = "差异单对象", description = "差异单响应对象")
+public class DifferentManagePO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("差异管理id")
+ private Long differentManageId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("差异单号")
+ @Excel(name = "差异单号")
+ private String differentNumber;
+
+ @ApiModelProperty("盘点单号")
+ @Excel(name = "盘点单号")
+ private String investigationNumber;
+
+@ApiModelProperty("盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
+ @Excel(name = "盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
+ private Integer investigationStatus;
+
+ @ApiModelProperty("盘点范围")
+ @Excel(name = "盘点范围")
+ private String investigationRange;
+
+ @ApiModelProperty("盘点方式:1.明盘 2.盲盘")
+ @Excel(name = "盘点方式:1.明盘 2.盲盘")
+ private Integer investigationType;
+
+ @ApiModelProperty("盘点方法:1.静态盘点 2.动态盘点")
+ @Excel(name = "盘点方法:1.静态盘点 2.动态盘点")
+ private Integer investigationMethod;
+
+ @ApiModelProperty("盘点轮次:1.初盘 2.复盘")
+ @Excel(name = "盘点轮次:1.初盘 2.复盘")
+ private Integer investigationFrequency;
+
+ @ApiModelProperty("监盘人ID")
+ @Excel(name = "监盘人ID")
+ private Long investigationManBy;
+
+ @ApiModelProperty("监盘人姓名")
+ @Excel(name = "监盘人姓名")
+ private String investigationManName;
+
+ @ApiModelProperty("作业人用户ID")
+ @Excel(name = "作业人用户ID")
+ private Long operatorsBy;
+
+ @ApiModelProperty("作业人姓名")
+ @Excel(name = "作业人姓名")
+ private String operatorsName;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("是否作废: 1-是 2-否")
+ @Excel(name = "是否作废: 1-是 2-否")
+ private Integer nullify;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty("是否过账: 1-是 2-否")
+ @Excel(name = "是否过账: 1-是 2-否")
+ private Integer postedFlag;
+
+ @ApiModelProperty("是否重盘: 1-是 2-否")
+ @Excel(name = "是否重盘: 1-是 2-否")
+ private Integer reCountedFlag;
+
+ @ApiModelProperty("盘点详情")
+ @TableField(exist = false)
+ private List investigetionManageDetailList;
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/todo/DifferentManageDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/todo/DifferentManageDO.java
new file mode 100644
index 000000000..4aa8a986e
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/repository/todo/DifferentManageDO.java
@@ -0,0 +1,120 @@
+package com.mhd.wms.domain.differentManage.repository.todo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 差异单对象 different_manage
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+
+@Data
+public class DifferentManageDO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("差异管理id")
+ private Long differentManageId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("差异单号")
+ @Excel(name = "差异单号")
+ private String differentNumber;
+
+ @ApiModelProperty("盘点单号")
+ @Excel(name = "盘点单号")
+ private String investigationNumber;
+
+@ApiModelProperty("盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
+ @Excel(name = "盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
+ private Integer investigationStatus;
+
+ @ApiModelProperty("盘点范围")
+ @Excel(name = "盘点范围")
+ private String investigationRange;
+
+ @ApiModelProperty("盘点方式:1.明盘 2.盲盘")
+ @Excel(name = "盘点方式:1.明盘 2.盲盘")
+ private Integer investigationType;
+
+ @ApiModelProperty("盘点方法:1.静态盘点 2.动态盘点")
+ @Excel(name = "盘点方法:1.静态盘点 2.动态盘点")
+ private Integer investigationMethod;
+
+ @ApiModelProperty("盘点轮次:1.初盘 2.复盘")
+ @Excel(name = "盘点轮次:1.初盘 2.复盘")
+ private Integer investigationFrequency;
+
+ @ApiModelProperty("监盘人ID")
+ @Excel(name = "监盘人ID")
+ private Long investigationManBy;
+
+ @ApiModelProperty("监盘人姓名")
+ @Excel(name = "监盘人姓名")
+ private String investigationManName;
+
+ @ApiModelProperty("作业人用户ID")
+ @Excel(name = "作业人用户ID")
+ private Long operatorsBy;
+
+ @ApiModelProperty("作业人姓名")
+ @Excel(name = "作业人姓名")
+ private String operatorsName;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("是否作废: 1-是 2-否")
+ @Excel(name = "是否作废: 1-是 2-否")
+ private Integer nullify;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty(name = "组织ID集合")
+ private List organizationIdList;
+
+ @ApiModelProperty(name = "权限菜单ID")
+ private Long permissionMenuId;
+
+ @ApiModelProperty("是否过账: 1-是 2-否")
+ @Excel(name = "是否过账: 1-是 2-否")
+ private Integer postedFlag;
+
+ @ApiModelProperty("是否重盘: 1-是 2-否")
+ @Excel(name = "是否重盘: 1-是 2-否")
+ private Integer reCountedFlag;
+
+ @ApiModelProperty("盘点详情")
+ @TableField(exist = false)
+ private List investigetionManageDetailList;
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/service/DifferentManageDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/service/DifferentManageDomainService.java
new file mode 100644
index 000000000..017214cd4
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/differentManage/service/DifferentManageDomainService.java
@@ -0,0 +1,74 @@
+package com.mhd.wms.domain.differentManage.service;
+
+import com.mhd.wms.domain.differentManage.repository.facade.IDifferentManageService;
+import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
+import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 差异单
+ *
+ * @author gen
+ * @date 2024-07-20
+ */
+@Service
+@Slf4j
+public class DifferentManageDomainService {
+
+ @Autowired
+ private IDifferentManageService differentManageService;
+
+
+ /**
+ * 分页查询差异单列表
+ */
+ public List queryList(DifferentManageDO differentManageDO) {
+ return differentManageService.queryList(differentManageDO);
+ }
+
+
+ /**
+ * 新增差异单
+ */
+ public Boolean insert(DifferentManageDO differentManageDO) {
+
+ return differentManageService.insert(differentManageDO);
+ }
+
+ /**
+ * 修改差异单
+ */
+ public Boolean update(DifferentManageDO differentManageDO) {
+ return differentManageService.update(differentManageDO);
+ }
+
+ /**
+ * 批量删除差异单
+ */
+ public Boolean delete(Long[] differentManageIds) {
+ return differentManageService.delete(differentManageIds);
+ }
+
+ /**
+ * 获取差异单详细信息
+ */
+ public DifferentManagePO getInfo(Long differentManageId) {
+ return differentManageService.getInfo(differentManageId);
+ }
+
+ public Boolean resetDifferent(DifferentManageDO differentManageDO){
+ return differentManageService.resetDifferent(differentManageDO);
+ }
+ public Boolean differentRollback(DifferentManageDO differentManageDO){
+ return differentManageService.differentRollback(differentManageDO);
+ }
+
+ public DifferentManagePO getDifferentManageDO(Long differentManageId){
+ return differentManageService.getDifferentManageDO(differentManageId);
+ }
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java
new file mode 100644
index 000000000..a16cbc689
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java
@@ -0,0 +1,129 @@
+package com.mhd.wms.domain.handoverTaskOrder.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 交接作业单对象 handover_task_order
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+
+@Data
+public class HandoverTaskOrder extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("交接作业单id")
+ @TableId(type = IdType.AUTO)
+ private Long handoverTaskOrderId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("作业流水号")
+ @Excel(name = "作业流水号")
+ private String serialNumber;
+
+ @ApiModelProperty("作业单号")
+ @Excel(name = "作业单号")
+ private String taskNumber;
+
+ @ApiModelProperty("交接状态: 1-未交接 2-已交接")
+ @Excel(name = "交接状态: 1-未交接 2-已交接")
+ private Integer status;
+
+ @ApiModelProperty("月台id")
+ @Excel(name = "月台id")
+ private Long platformId;
+
+ @ApiModelProperty("月台编码")
+ @Excel(name = "月台编码")
+ private String platformCode;
+
+ @ApiModelProperty("月台名称 ")
+ @Excel(name = "月台名称 ")
+ private String platformName;
+
+ @ApiModelProperty("月台使用时间管理id")
+ @Excel(name = "月台使用时间管理id")
+ private Long platformUseTimeId;
+
+ @ApiModelProperty("月台使用开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "月台使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date platformUseStartTime;
+
+ @ApiModelProperty("月台使用结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "月台使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date platformUseEndTime;
+
+ @ApiModelProperty("月台使用状态:1-未使用 2-使用中 3-已释放")
+ @Excel(name = "月台使用状态:1-未使用 2-使用中 3-已释放")
+ private Integer platformUseStatus;
+
+ @ApiModelProperty("出库单类型编码")
+ @Excel(name = "出库单类型编码")
+ private String orderTypeCode;
+
+ @ApiModelProperty("出库单类型名称")
+ @Excel(name = "出库单类型名称")
+ private String orderTypeName;
+
+ @ApiModelProperty("预计出货时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date expectTime;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("货主id")
+ @Excel(name = "货主id")
+ private Long shipperId;
+
+ @ApiModelProperty("货主名称")
+ @Excel(name = "货主名称")
+ private String shipperName;
+
+ @ApiModelProperty("来源单号")
+ @Excel(name = "来源单号")
+ private String orderNumber;
+
+ @ApiModelProperty("拣货单号")
+ @Excel(name = "拣货单号")
+ private String pickingOrderNumber;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java
new file mode 100644
index 000000000..4c6826611
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java
@@ -0,0 +1,43 @@
+package com.mhd.wms.domain.handoverTaskOrder.repository.facade;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
+import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
+import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
+
+import java.util.List;
+
+/**
+ * 交接作业单Service接口
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+public interface IHandoverTaskOrderService extends IService
+{
+ /**
+ * 分页查询交接作业单列表
+ */
+ public List queryList(HandoverTaskOrderDO handoverTaskOrderDO);
+
+ /**
+ * 新增交接作业单
+ */
+ public Boolean insert(HandoverTaskOrderDO handoverTaskOrderDO);
+
+ /**
+ * 修改交接作业单
+ */
+ public Boolean update(HandoverTaskOrderDO handoverTaskOrderDO);
+
+ /**
+ * 批量删除交接作业单
+ */
+ public Boolean delete(Long[] outTaskOrderIds);
+
+
+ /**
+ * 查询交接作业单
+ */
+ public HandoverTaskOrderPO getInfo(Long outTaskOrderId);
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java
new file mode 100644
index 000000000..61b4af1bf
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java
@@ -0,0 +1,23 @@
+package com.mhd.wms.domain.handoverTaskOrder.repository.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
+import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
+import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
+
+import java.util.List;
+
+/**
+ * 交接作业单Mapper接口
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+public interface HandoverTaskOrderMapper extends BaseMapper
+{
+ /**
+ * 查询交接作业单列表
+ */
+ public List queryList(HandoverTaskOrderDO handoverTaskOrderDO);
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java
new file mode 100644
index 000000000..de919fd5e
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java
@@ -0,0 +1,81 @@
+package com.mhd.wms.domain.handoverTaskOrder.repository.persistence;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
+import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
+import com.mhd.wms.domain.handoverTaskOrder.repository.mapper.HandoverTaskOrderMapper;
+import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
+import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 交接作业单Service业务层处理
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+public class HandoverTaskOrderImpl extends ServiceImpl implements IHandoverTaskOrderService {
+ @Autowired
+ private HandoverTaskOrderMapper handoverTaskOrderMapper;
+
+ /**
+ * 查询交接作业单列表
+ */
+ @Override
+ public List queryList(HandoverTaskOrderDO handoverTaskOrderDO)
+ {
+ return handoverTaskOrderMapper.queryList(handoverTaskOrderDO);
+ }
+
+ /**
+ * 新增交接作业单
+ */
+ @Override
+ public Boolean insert(HandoverTaskOrderDO handoverTaskOrderDO) {
+ HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
+ BeanUtils.copyProperties(handoverTaskOrderDO,handoverTaskOrder);
+ return this.save(handoverTaskOrder);
+ }
+
+ /**
+ * 修改交接作业单
+ */
+ @Override
+ public Boolean update(HandoverTaskOrderDO handoverTaskOrderDO) {
+ HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
+ BeanUtils.copyProperties(handoverTaskOrderDO,handoverTaskOrder);
+ return this.updateById(handoverTaskOrder);
+ }
+
+ /**
+ * 批量删除交接作业单
+ */
+ @Override
+ public Boolean delete(Long[] outTaskOrderIds ) {
+ List list = new ArrayList<>();
+ for (Long id : outTaskOrderIds) {
+ HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
+ handoverTaskOrder.setHandoverTaskOrderId(id);
+ handoverTaskOrder.setDelFlag(2);
+ list.add(handoverTaskOrder);
+ }
+ return this.updateBatchById(list);
+ }
+
+ /**
+ * 修改交接作业单
+ */
+ @Override
+ public HandoverTaskOrderPO getInfo(Long outTaskOrderId) {
+ HandoverTaskOrder handoverTaskOrder = this.getById(outTaskOrderId);
+ HandoverTaskOrderPO handoverTaskOrderPO = new HandoverTaskOrderPO();
+ BeanUtils.copyProperties(handoverTaskOrder,handoverTaskOrderPO);
+ return handoverTaskOrderPO;
+ }
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java
new file mode 100644
index 000000000..e8e86272c
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java
@@ -0,0 +1,129 @@
+package com.mhd.wms.domain.handoverTaskOrder.repository.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 交接作业单对象 handover_task_order
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+
+@Data
+@ApiModel(value = "交接作业单对象", description = "交接作业单响应对象")
+public class HandoverTaskOrderPO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("交接作业单id")
+ private Long handoverTaskOrderId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("作业流水号")
+ @Excel(name = "作业流水号")
+ private String serialNumber;
+
+ @ApiModelProperty("作业单号")
+ @Excel(name = "作业单号")
+ private String taskNumber;
+
+ @ApiModelProperty("交接状态: 1-未交接 2-已交接")
+ @Excel(name = "交接状态: 1-未交接 2-已交接")
+ private Integer status;
+
+ @ApiModelProperty("月台id")
+ @Excel(name = "月台id")
+ private Long platformId;
+
+ @ApiModelProperty("月台编码")
+ @Excel(name = "月台编码")
+ private String platformCode;
+
+ @ApiModelProperty("月台名称 ")
+ @Excel(name = "月台名称 ")
+ private String platformName;
+
+ @ApiModelProperty("月台使用时间管理id")
+ @Excel(name = "月台使用时间管理id")
+ private Long platformUseTimeId;
+
+ @ApiModelProperty("月台使用开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "月台使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date platformUseStartTime;
+
+ @ApiModelProperty("月台使用结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "月台使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date platformUseEndTime;
+
+ @ApiModelProperty("月台使用状态:1-未使用 2-使用中 3-已释放")
+ @Excel(name = "月台使用状态:1-未使用 2-使用中 3-已释放")
+ private Integer platformUseStatus;
+
+ @ApiModelProperty("出库单类型编码")
+ @Excel(name = "出库单类型编码")
+ private String orderTypeCode;
+
+ @ApiModelProperty("出库单类型名称")
+ @Excel(name = "出库单类型名称")
+ private String orderTypeName;
+
+ @ApiModelProperty("预计出货时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date expectTime;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("货主id")
+ @Excel(name = "货主id")
+ private Long shipperId;
+
+ @ApiModelProperty("货主名称")
+ @Excel(name = "货主名称")
+ private String shipperName;
+
+ @ApiModelProperty("来源单号")
+ @Excel(name = "来源单号")
+ private String orderNumber;
+
+ @ApiModelProperty("拣货单号")
+ @Excel(name = "拣货单号")
+ private String pickingOrderNumber;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+
+
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java
new file mode 100644
index 000000000..3d89bd667
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java
@@ -0,0 +1,134 @@
+package com.mhd.wms.domain.handoverTaskOrder.repository.todo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mhd.common.core.annotation.Excel;
+import com.mhd.common.core.web.domain.BaseVOEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 交接作业单对象 handover_task_order
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+
+@Data
+public class HandoverTaskOrderDO extends BaseVOEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("交接作业单id")
+ private Long handoverTaskOrderId;
+
+ @ApiModelProperty("组织表ID")
+ @Excel(name = "组织表ID")
+ private Long organizationId;
+
+ @ApiModelProperty("组织名称")
+ @Excel(name = "组织名称")
+ private String organizationName;
+
+ @ApiModelProperty("一级组织表ID")
+ @Excel(name = "一级组织表ID")
+ private Long topOrganizationId;
+
+ @ApiModelProperty("作业流水号")
+ @Excel(name = "作业流水号")
+ private String serialNumber;
+
+ @ApiModelProperty("作业单号")
+ @Excel(name = "作业单号")
+ private String taskNumber;
+
+ @ApiModelProperty("交接状态: 1-未交接 2-已交接")
+ @Excel(name = "交接状态: 1-未交接 2-已交接")
+ private Integer status;
+
+ @ApiModelProperty("月台id")
+ @Excel(name = "月台id")
+ private Long platformId;
+
+ @ApiModelProperty("月台编码")
+ @Excel(name = "月台编码")
+ private String platformCode;
+
+ @ApiModelProperty("月台名称 ")
+ @Excel(name = "月台名称 ")
+ private String platformName;
+
+ @ApiModelProperty("月台使用时间管理id")
+ @Excel(name = "月台使用时间管理id")
+ private Long platformUseTimeId;
+
+ @ApiModelProperty("月台使用开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "月台使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date platformUseStartTime;
+
+ @ApiModelProperty("月台使用结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "月台使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date platformUseEndTime;
+
+ @ApiModelProperty("月台使用状态:1-未使用 2-使用中 3-已释放")
+ @Excel(name = "月台使用状态:1-未使用 2-使用中 3-已释放")
+ private Integer platformUseStatus;
+
+ @ApiModelProperty("出库单类型编码")
+ @Excel(name = "出库单类型编码")
+ private String orderTypeCode;
+
+ @ApiModelProperty("出库单类型名称")
+ @Excel(name = "出库单类型名称")
+ private String orderTypeName;
+
+ @ApiModelProperty("预计出货时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date expectTime;
+
+ @ApiModelProperty("仓库id")
+ @Excel(name = "仓库id")
+ private Long warehouseId;
+
+ @ApiModelProperty("仓库编码")
+ @Excel(name = "仓库编码")
+ private String warehouseCode;
+
+ @ApiModelProperty("仓库名称")
+ @Excel(name = "仓库名称")
+ private String warehouseName;
+
+ @ApiModelProperty("货主id")
+ @Excel(name = "货主id")
+ private Long shipperId;
+
+ @ApiModelProperty("货主名称")
+ @Excel(name = "货主名称")
+ private String shipperName;
+
+ @ApiModelProperty("来源单号")
+ @Excel(name = "来源单号")
+ private String orderNumber;
+
+ @ApiModelProperty("拣货单号")
+ @Excel(name = "拣货单号")
+ private String pickingOrderNumber;
+
+ @ApiModelProperty("备注")
+ @Excel(name = "备注")
+ private String remark;
+
+ @ApiModelProperty(name = "组织ID集合")
+ private List organizationIdList;
+
+ @ApiModelProperty(name = "权限菜单ID")
+ private Long permissionMenuId;
+
+ @ApiModelProperty("交接作业单id")
+ private List handoverTaskOrderIds;
+}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java
new file mode 100644
index 000000000..9513e558c
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java
@@ -0,0 +1,130 @@
+package com.mhd.wms.domain.handoverTaskOrder.service;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.mhd.common.security.utils.SecurityUtils;
+import com.mhd.system.api.model.LoginUser;
+import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
+import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
+import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
+import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 交接作业单
+ *
+ * @author gen
+ * @date 2024-05-28
+ */
+@Service
+@Slf4j
+public class HandoverTaskOrderDomainService {
+
+ @Autowired
+ private IHandoverTaskOrderService handoverTaskOrderService;
+
+
+ /**
+ * 分页查询交接作业单列表
+ */
+ public List