修改移位后生成的库存批次属性维护的值没保存上
This commit is contained in:
+1
@@ -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;
|
||||
|
||||
+60
-4
@@ -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<ShiftMaterialDetailDO> shiftMaterialDetailList){
|
||||
List<MaterialInventoryDO> materialInventoryOldList = new ArrayList<>();
|
||||
List<MaterialInventoryDO> materialInventoryNowList = new ArrayList<>();
|
||||
ShiftMaterialDetailDO shiftMaterialDetailDO = new ShiftMaterialDetailDO();
|
||||
shiftMaterialDetailDO.setShiftNumber(shiftNumber);
|
||||
List<ShiftMaterialDetailPO> shiftMaterialDetailPOList = shiftMaterialDetailService.queryListChildren(shiftMaterialDetailDO);
|
||||
Map<String, List<MaterialMoreDetailPO>> 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<MaterialMoreDetailPO> 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<MaterialMoreDetailPO> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -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<OutMaterialDetailSerialNumberDO> materialDetailSerialNumberList;
|
||||
|
||||
@ApiModelProperty("批次属性")
|
||||
private List<MaterialMoreDetailPO> materialMoreDetailList;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
+4
@@ -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<OutMaterialDetailSerialNumberDTO> materialDetailSerialNumberList;
|
||||
|
||||
@ApiModelProperty("批次属性")
|
||||
private List<MaterialMoreDetailPO> materialMoreDetailList;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user