From 4bd8005e1e6337c5f611b18d334b0043855adfd4 Mon Sep 17 00:00:00 2001 From: zhou-hongcheng <1064771933@qq.com> Date: Fri, 13 Mar 2026 10:29:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A7=BB=E4=BD=8D=E5=90=8E?= =?UTF-8?q?=E7=94=9F=E6=88=90=E7=9A=84=E5=BA=93=E5=AD=98=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=BB=B4=E6=8A=A4=E7=9A=84=E5=80=BC=E6=B2=A1?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/todo/ShiftManageDO.java | 1 + .../service/ShiftManageDomainService.java | 64 +++++++++++++++++-- .../todo/ShiftMaterialDetailDO.java | 4 ++ .../dto/shiftManage/ShiftManageDTO.java | 1 + .../ShiftMaterialDetailDTO.java | 4 ++ 5 files changed, 70 insertions(+), 4 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/todo/ShiftManageDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/todo/ShiftManageDO.java index 45289557b..7657492b1 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/todo/ShiftManageDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/repository/todo/ShiftManageDO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; +import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetailDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java index 232dbcceb..5f728a7b2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java @@ -19,6 +19,7 @@ import com.mhd.wms.domain.inventoryStandingDetail.repository.todo.InventoryStand import com.mhd.wms.domain.materialInventory.entity.MaterialInventory; import com.mhd.wms.domain.materialInventory.repository.facade.IMaterialInventoryService; import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO; +import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.facade.IOutMaterialDetailSerialNumberService; import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.po.OutMaterialDetailSerialNumberPO; import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.todo.OutMaterialDetailSerialNumberDO; @@ -37,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -274,7 +277,7 @@ public class ShiftManageDomainService { .set(ShiftManage::getUpdateTime, new Date()) .eq(ShiftManage::getShiftManageId, shiftManageDO.getShiftManageId())); //修改库存 - updateMaterialInventory(shiftManagePO.getShiftNumber()); + updateMaterialInventory(shiftManagePO.getShiftNumber(),shiftManageDO.getShiftMaterialDetailList()); //生成移位追溯记录 genInventoryStandingDetail(shiftManagePO); return true; @@ -305,7 +308,7 @@ public class ShiftManageDomainService { .set(ShiftManage::getUpdateTime, new Date()) .eq(ShiftManage::getShiftManageId, shiftManageDO.getShiftManageId())); //修改库存 - updateMaterialInventory(shiftManagePO.getShiftNumber()); + updateMaterialInventory(shiftManagePO.getShiftNumber(),shiftManageDO.getShiftMaterialDetailList()); //生成移位追溯记录 genInventoryStandingDetail(shiftManagePO); return true; @@ -412,7 +415,7 @@ public class ShiftManageDomainService { //移位完成 if (shiftStatus == 4){ //修改库存 - updateMaterialInventory(shiftManagePO.getShiftNumber()); + updateMaterialInventory(shiftManagePO.getShiftNumber(),shiftManageDO.getShiftMaterialDetailList()); //生成移位追溯记录 genInventoryStandingDetail(shiftManagePO); } @@ -426,16 +429,21 @@ public class ShiftManageDomainService { * @return Boolean */ @Transactional(rollbackFor = Exception.class) - public void updateMaterialInventory(String shiftNumber){ + public void updateMaterialInventory(String shiftNumber,List shiftMaterialDetailList){ List materialInventoryOldList = new ArrayList<>(); List materialInventoryNowList = new ArrayList<>(); ShiftMaterialDetailDO shiftMaterialDetailDO = new ShiftMaterialDetailDO(); shiftMaterialDetailDO.setShiftNumber(shiftNumber); List shiftMaterialDetailPOList = shiftMaterialDetailService.queryListChildren(shiftMaterialDetailDO); + Map> MaterialMoreDetailMap = shiftMaterialDetailList.stream().collect(Collectors.toMap( + ShiftMaterialDetailDO::getShiftNumber, + ShiftMaterialDetailDO::getMaterialMoreDetailList + )); for (ShiftMaterialDetailPO shiftMaterialDetailPO : shiftMaterialDetailPOList){ MaterialInventory materialInventoryOldDb = materialInventoryService.getById(shiftMaterialDetailPO.getMaterialInventoryId()); BigDecimal shiftQuantity = shiftMaterialDetailPO.getShiftQuantity(); //构建新物料库存信息 + shiftMaterialDetailPO.setMaterialMoreDetailList(MaterialMoreDetailMap.get(shiftMaterialDetailPO.getShiftNumber())); // shiftMaterialDetailPO.setNetWeight(materialInventoryOldDb.getNetWeight()); // shiftMaterialDetailPO.setGrossWeight(materialInventoryOldDb.getGrossWeight()); // shiftMaterialDetailPO.setVolume(materialInventoryOldDb.getVolume()); @@ -530,8 +538,10 @@ public class ShiftManageDomainService { queryWrapper.eq(MaterialInventory::getContainerId,shiftMaterialDetailPO.getContainerId()); } MaterialInventory materialInventoryDb = materialInventoryService.getOne(queryWrapper); + List materialMoreDetailList = shiftMaterialDetailPO.getMaterialMoreDetailList(); if (ObjectUtil.isNull(materialInventoryDb)){ MaterialInventoryDO materialInventoryDONow = new MaterialInventoryDO(); + BatchAttributeAssignment(materialMoreDetailList, materialInventoryDONow);//批次属性赋值 materialInventoryDONow.setMaterialBaseInfoId(shiftMaterialDetailPO.getMaterialBaseInfoId()); materialInventoryDONow.setWarehouseId(shiftMaterialDetailPO.getNewWarehouseId()); materialInventoryDONow.setWarehouseCode(shiftMaterialDetailPO.getNewWarehouseCode()); @@ -568,4 +578,50 @@ public class ShiftManageDomainService { return materialInventoryDONow; } } + + private void BatchAttributeAssignment(List materialMoreDetailList, MaterialInventoryDO materialInventoryDONow) { + for (MaterialMoreDetailPO materialMoreDetailPO : materialMoreDetailList) { + if (materialMoreDetailPO == null || materialMoreDetailPO.getBatchLabels() == null) { + continue; + } + String attributeValue = materialMoreDetailPO.getAttributeValue(); + switch (materialMoreDetailPO.getBatchLabels()) { + case "生产日期": + if (attributeValue != null && !attributeValue.isEmpty()) { + materialInventoryDONow.setProductionDate(stringToDate(attributeValue)); + } + break; + case "过期日期": + if (attributeValue != null && !attributeValue.isEmpty()) { + materialInventoryDONow.setExpiryDate(stringToDate(attributeValue)); + } + break; + case "存货日期": + if (attributeValue != null && !attributeValue.isEmpty()) { + materialInventoryDONow.setInventoryDate(stringToDate(attributeValue)); + } + break; + case "Batch Ref NO's": + materialInventoryDONow.setBatchRefNo(attributeValue); + break; + case "Sheet Ref NO's": + materialInventoryDONow.setSheetRefNo(attributeValue); + break; + case "箱号/卡板号": + materialInventoryDONow.setBoxPalletNo(attributeValue); + break; + default: + break; + } + } + } + + public Date stringToDate(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + return sdf.parse(dateStr); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/todo/ShiftMaterialDetailDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/todo/ShiftMaterialDetailDO.java index 1f82db3ca..fd1aea031 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/todo/ShiftMaterialDetailDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftMaterialDetail/repository/todo/ShiftMaterialDetailDO.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; +import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.todo.OutMaterialDetailSerialNumberDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -269,4 +270,7 @@ public class ShiftMaterialDetailDO extends BaseVOEntity { @ApiModelProperty("序列号") private List materialDetailSerialNumberList; + + @ApiModelProperty("批次属性") + private List materialMoreDetailList; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftManage/ShiftManageDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftManage/ShiftManageDTO.java index 1a47573c8..a595766d7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftManage/ShiftManageDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftManage/ShiftManageDTO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; +import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMoveMaterialQuantityPO; import com.mhd.wms.interfaces.dto.shiftMaterialDetail.ShiftMaterialDetailDTO; import io.swagger.annotations.ApiModelProperty; diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftMaterialDetail/ShiftMaterialDetailDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftMaterialDetail/ShiftMaterialDetailDTO.java index b2a943850..4e646ad12 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftMaterialDetail/ShiftMaterialDetailDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/shiftMaterialDetail/ShiftMaterialDetailDTO.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; +import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import com.mhd.wms.interfaces.dto.outMaterialDetailSerialNumber.OutMaterialDetailSerialNumberDTO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -274,4 +275,7 @@ public class ShiftMaterialDetailDTO extends BaseVOEntity { @ApiModelProperty("序列号") private List materialDetailSerialNumberList; + @ApiModelProperty("批次属性") + private List materialMoreDetailList; + }