Merge remote-tracking branch 'origin/wms_dev' into wms_dev

This commit is contained in:
zhou-hongcheng
2026-02-06 16:31:09 +08:00
28 changed files with 379 additions and 42 deletions
@@ -3,6 +3,7 @@ package com.mhd.wms.domain.receiptMaterialDetail.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
@@ -11,6 +12,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -247,6 +249,41 @@ public class ReceiptMaterialDetail extends BaseVOEntity {
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("生产日期")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date productionDate;
@ApiModelProperty("过期日期")
@Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expiryDate;
@ApiModelProperty("存货日期")
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date inventoryDate;
@ApiModelProperty("扩展属性1")
@Excel(name = "扩展属性1")
@TableField("ext_attr_1")
private String extAttr1;
@ApiModelProperty("扩展属性2")
@Excel(name = "扩展属性2")
@TableField("ext_attr_2")
private String extAttr2;
@ApiModelProperty("扩展属性3")
@Excel(name = "扩展属性3")
@TableField("ext_attr_3")
private String extAttr3;
@ApiModelProperty("扩展属性4")
@Excel(name = "扩展属性4")
@TableField("ext_attr_4")
private String extAttr4;
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
@TableField(exist = false)
@@ -293,4 +330,4 @@ public class ReceiptMaterialDetail extends BaseVOEntity {
private BigDecimal pieceCount;
}
}
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.common.core.constant.SnowFlakeConstants;
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.uuid.IdGenerator;
@@ -243,6 +244,70 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
List<MaterialMoreDetail> materialMoreDetailList = new ArrayList<>();
List<InMaterialDetailSerialNumber> materialDetailSerialNumberList = new ArrayList<>();
for (ReceiptMaterialDetailDO receiptMaterialDetailDO : receiptMaterialDetailDOList){
List<MaterialMoreDetailDO> materialMoreDetailList1 = receiptMaterialDetailDO.getMaterialMoreDetailList();
for (MaterialMoreDetailDO materialMoreDetailDO : materialMoreDetailList1) {
String batchLabels = materialMoreDetailDO.getBatchLabels();
String attributeValue = materialMoreDetailDO.getAttributeValue();
if (attributeValue != null && !attributeValue.isEmpty() && attributeValue != "" && attributeValue.length() > 0 ) {
attributeValue = attributeValue.trim();
switch (batchLabels) {
case "扩展字段4":
receiptMaterialDetailDO.setExtAttr4(attributeValue);
break;
case "扩展字段3":
receiptMaterialDetailDO.setExtAttr3(attributeValue);
break;
case "扩展字段2":
receiptMaterialDetailDO.setExtAttr2(attributeValue);
break;
case "扩展字段1":
receiptMaterialDetailDO.setExtAttr1(attributeValue);
break;
case "箱号/卡板号":
receiptMaterialDetailDO.setBoxPalletNo(attributeValue);
break;
case "Sheet Ref NO's":
receiptMaterialDetailDO.setSheetRefNo(attributeValue);
break;
case "Batch Ref NO's":
receiptMaterialDetailDO.setBatchRefNo(attributeValue);
break;
case "存货日期":
// 判断是否是日期格式再赋值避免报错
try {
if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) {
receiptMaterialDetailDO.setInventoryDate(DateUtils.parseDate(attributeValue));
}
} catch (Exception e) {
log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue);
}
//receiptMaterialDetailDO.setInventoryDate(DateUtils.parseDate(attributeValue));
break;
case "过期日期":
// 判断是否是日期格式再赋值避免报错
try {
if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) {
receiptMaterialDetailDO.setExpiryDate(DateUtils.parseDate(attributeValue));
}
} catch (Exception e) {
log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue);
}
//receiptMaterialDetailDO.setExpiryDate(DateUtils.parseDate(attributeValue));
break;
case "生产日期":
// 判断是否是日期格式再赋值避免报错
try {
if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) {
receiptMaterialDetailDO.setProductionDate(DateUtils.parseDate(attributeValue));
}
} catch (Exception e) {
log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue);
}
//receiptMaterialDetailDO.setProductionDate(DateUtils.parseDate(attributeValue));
break;
}
}
}
// 自动生成批次号并校验唯一性(包括子项)
generateAndValidateBatchNumber(receiptMaterialDetailDO, shipperId);
//更多属性
@@ -802,4 +867,4 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
}
}
}
}
@@ -192,7 +192,7 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
}
materialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(shelfMaterialDetailDO));
}
BigDecimal totalActualQuantity = shelfMaterialDetailDO.getActualQuantity();
BigDecimal totalActualQuantity = shelfMaterialDetailDO.getActualQuantity() != null ? shelfMaterialDetailDO.getActualQuantity() : BigDecimal.ZERO;
//判断是否存在子项
List<ShelfMaterialDetailDO> inMaterialDetailDOChildList = shelfMaterialDetailDO.getChildren();
List<ShelfMaterialDetail> shelfMaterialDetailChildList = new ArrayList<>();
@@ -212,7 +212,8 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
}
materialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(shelfMaterialDetailDOChild));
}
totalActualQuantity = totalActualQuantity.add(shelfMaterialDetailDOChild.getActualQuantity());
BigDecimal childActualQuantity = shelfMaterialDetailDOChild.getActualQuantity() != null ? shelfMaterialDetailDOChild.getActualQuantity() : BigDecimal.ZERO;
totalActualQuantity = totalActualQuantity.add(childActualQuantity);
}
}
ShelfMaterialDetail shelfMaterialDetail = new ShelfMaterialDetail();
@@ -340,4 +340,10 @@ public class StockInOrderDO extends BaseVOEntity {
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}
@@ -393,4 +393,15 @@ public class StockOutOrderDO extends BaseVOEntity {
@Excel(name = "是否需要运输")
private String needTransportFlag;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "审核时间查询条件开始日期")
private String auditTimeStart;
@ApiModelProperty(name = "审核时间查询条件结束日期")
private String auditTimeEnd;
}
@@ -165,4 +165,19 @@ public class StockOutTaskOrderDO extends BaseVOEntity {
@ApiModelProperty("大于指定状态值:1-待收货 2-部分收货 3-已收货 4-已关闭")
private Integer gtStatus;
@ApiModelProperty("集货库位ID集合")
private List<Long> storageLocationList;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "作业完成时间查询条件开始日期")
private String operatorsEndTimeStart;
@ApiModelProperty(name = "作业完成时间查询条件结束日期")
private String operatorsEndTimeEnd;
}
@@ -161,4 +161,9 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO {
@ApiModelProperty("仓库绑定的用户ID列表(用于任务下发时筛选操作人员)")
private List<Long> warehouseUserIds;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}
@@ -125,4 +125,10 @@ public class StockShelfOrderDO extends StockInOrderBaseDO {
@ApiModelProperty("物料明细")
private List<ShelfMaterialDetailDO> materialDetailList;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}