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
@@ -398,7 +398,7 @@ public class StockShelfOrderApplicationService {
//设置容器信息
// setContainerInfo(returnShelfMaterialDetailDOChild);
//上架后 设置该记录不允许被修改
shelfMaterialDetailDO.setAllowModify(2);
returnShelfMaterialDetailDOChild.setAllowModify(2);
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList());
returnShelfMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
returnShelfMaterialDetailDOChild.setLevel(2);
@@ -410,6 +410,8 @@ public class StockShelfOrderApplicationService {
}
}
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
//设置子项的实际数量(等于上架数量)
returnShelfMaterialDetailDOChild.setActualQuantity(returnShelfMaterialDetailDOChild.getShelvesQuantity());
returnShelfMaterialDetailDOChildList.add(returnShelfMaterialDetailDOChild);
actualQuantity = actualQuantity.add(returnShelfMaterialDetailDOChild.getShelvesQuantity());
}
@@ -455,8 +457,8 @@ public class StockShelfOrderApplicationService {
* @param shelfMaterialDetailDO
*/
private void setStorageLocationInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
if (shelfMaterialDetailDO.getStorageLocationId() == null) {
throw new ServiceException("库位ID不能为空");
if (shelfMaterialDetailDO.getStorageLocationId() == null || shelfMaterialDetailDO.getStorageLocationId() == 0) {
throw new ServiceException("库位ID不能为空或0");
}
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shelfMaterialDetailDO.getStorageLocationId());
if (storageLocationResult == null) {
@@ -471,19 +473,31 @@ public class StockShelfOrderApplicationService {
if (dataObj == null) {
throw new ServiceException("获取上架库位信息失败:返回数据为空,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
}
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(dataObj), StorageLocationFeignPO.class);
if (storageLocationFeignPO == null) {
throw new ServiceException("获取上架库位信息失败:数据解析失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
try {
String jsonString = JSONObject.toJSONString(dataObj);
if (jsonString == null || jsonString.trim().isEmpty() || "null".equals(jsonString)) {
throw new ServiceException("获取上架库位信息失败:数据序列化失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
}
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(jsonString, StorageLocationFeignPO.class);
if (storageLocationFeignPO == null) {
throw new ServiceException("获取上架库位信息失败:数据解析失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
}
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());
} catch (Exception e) {
log.error("解析库位信息失败,库位ID:{},错误:{}", shelfMaterialDetailDO.getStorageLocationId(), e.getMessage(), e);
if (e instanceof ServiceException) {
throw e;
}
throw new ServiceException("获取上架库位信息失败:数据解析异常,库位ID:" + shelfMaterialDetailDO.getStorageLocationId() + ",错误信息:" + e.getMessage());
}
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());
}
/**
@@ -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;
}
@@ -31,6 +31,10 @@ public class ImmediateInventoryAssembler {
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
immediateInventoryDO.setAllocationQuantityStart(immediateInventoryDTO.getAllocationQuantityBegin());
immediateInventoryDO.setFreezeQuantityStart(immediateInventoryDTO.getFreezeQuantityBegin());
immediateInventoryDO.setPickQuantityStart(immediateInventoryDTO.getPickQuantityBegin());
immediateInventoryDO.setReceivedQuantityStart(immediateInventoryDTO.getReceivedQuantityBegin());
return immediateInventoryDO;
}
@@ -48,4 +52,4 @@ public class ImmediateInventoryAssembler {
return immediateInventoryDO;
}
}
}
@@ -30,6 +30,9 @@ public class StockInOrderAssembler {
StockInOrderDO stockInOrderDO = new StockInOrderDO();
// 拷贝
BeanUtils.copyProperties(stockInOrderDTO, stockInOrderDO, IgnoreNullUtil.getNullPropertyNames(stockInOrderDTO));
// 确保查询条件字段被正确传递查询条件字段需要明确传递避免被IgnoreNullUtil忽略
stockInOrderDO.setCreateTimeStart(stockInOrderDTO.getCreateTimeStart());
stockInOrderDO.setCreateTimeEnd(stockInOrderDTO.getCreateTimeEnd());
return stockInOrderDO;
}
@@ -30,6 +30,11 @@ public class StockOutOrderAssembler {
StockOutOrderDO stockOutOrderDO = new StockOutOrderDO();
// 拷贝
BeanUtils.copyProperties(stockOutOrderDTO, stockOutOrderDO, IgnoreNullUtil.getNullPropertyNames(stockOutOrderDTO));
// 确保查询条件字段被正确传递查询条件字段需要明确传递避免被IgnoreNullUtil忽略
stockOutOrderDO.setCreateTimeStart(stockOutOrderDTO.getCreateTimeStart());
stockOutOrderDO.setCreateTimeEnd(stockOutOrderDTO.getCreateTimeEnd());
stockOutOrderDO.setAuditTimeStart(stockOutOrderDTO.getAuditTimeStart());
stockOutOrderDO.setAuditTimeEnd(stockOutOrderDTO.getAuditTimeEnd());
return stockOutOrderDO;
}
@@ -32,6 +32,12 @@ public class StockOutTaskOrderAssembler {
StockOutTaskOrderDO stockOutTaskOrderDO = new StockOutTaskOrderDO();
// 拷贝
BeanUtils.copyProperties(stockOutTaskOrderDTO, stockOutTaskOrderDO, IgnoreNullUtil.getNullPropertyNames(stockOutTaskOrderDTO));
// 确保查询条件字段被正确传递查询条件字段需要明确传递避免被IgnoreNullUtil忽略
stockOutTaskOrderDO.setStorageLocationList(stockOutTaskOrderDTO.getStorageLocationList());
stockOutTaskOrderDO.setCreateTimeStart(stockOutTaskOrderDTO.getCreateTimeStart());
stockOutTaskOrderDO.setCreateTimeEnd(stockOutTaskOrderDTO.getCreateTimeEnd());
stockOutTaskOrderDO.setOperatorsEndTimeStart(stockOutTaskOrderDTO.getOperatorsEndTimeStart());
stockOutTaskOrderDO.setOperatorsEndTimeEnd(stockOutTaskOrderDTO.getOperatorsEndTimeEnd());
return stockOutTaskOrderDO;
}
@@ -23,6 +23,9 @@ public class StockReceiptOrderAssembler {
StockReceiptOrderDO stockReceiptOrderDO = new StockReceiptOrderDO();
// 拷贝
BeanUtils.copyProperties(stockReceiptOrderDTO, stockReceiptOrderDO, IgnoreNullUtil.getNullPropertyNames(stockReceiptOrderDTO));
// 确保查询条件字段被正确传递查询条件字段需要明确传递避免被IgnoreNullUtil忽略
stockReceiptOrderDO.setCreateTimeStart(stockReceiptOrderDTO.getCreateTimeStart());
stockReceiptOrderDO.setCreateTimeEnd(stockReceiptOrderDTO.getCreateTimeEnd());
return stockReceiptOrderDO;
}
@@ -23,6 +23,9 @@ public class StockShelfOrderAssembler {
StockShelfOrderDO stockShelfOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockShelfOrderDTO), StockShelfOrderDO.class);
// 拷贝
BeanUtils.copyProperties(stockShelfOrderDTO, stockShelfOrderDO, IgnoreNullUtil.getNullPropertyNames(stockShelfOrderDTO));
// 确保查询条件字段被正确传递查询条件字段需要明确传递避免被IgnoreNullUtil忽略
stockShelfOrderDO.setCreateTimeStart(stockShelfOrderDTO.getCreateTimeStart());
stockShelfOrderDO.setCreateTimeEnd(stockShelfOrderDTO.getCreateTimeEnd());
return stockShelfOrderDO;
}
@@ -144,4 +144,10 @@ public class ImmediateInventoryDTO {
@ApiModelProperty("拣货数量结束")
@Excel(name = "拣货数量结束")
private BigDecimal pickQuantityEnd;
}
private BigDecimal pickQuantityBegin;
private BigDecimal receivedQuantityBegin;
private BigDecimal freezeQuantityBegin;
private BigDecimal allocationQuantityBegin;
private BigDecimal checkQuantity;
}
@@ -337,4 +337,10 @@ public class StockInOrderDTO extends StockInOrderBaseDTO {
@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;
}
@@ -380,4 +380,16 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO {
@ApiModelProperty("是否需要运输")
@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;
}
@@ -159,4 +159,19 @@ public class StockOutTaskOrderDTO 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;
}
@@ -146,4 +146,10 @@ public class StockReceiptOrderDTO extends StockInOrderBaseDTO {
@ApiModelProperty("物料明细")
private List<ReceiptMaterialDetailDTO> materialDetailList;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}
@@ -117,4 +117,10 @@ public class StockShelfOrderDTO extends StockInOrderBaseDTO {
@ApiModelProperty("物料明细")
private List<ShelfMaterialDetailDTO> materialDetailList;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}
@@ -397,10 +397,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND d.del_flag = 1
LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number
WHERE
c.del_flag = 1 and d.STATUS = 1
c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 3
AND e.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null))
and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null))
and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null))
and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null))
and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null))
and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null))
and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null))
and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null))
and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null))
and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null))
),
0
) received_quantity,
@@ -430,10 +440,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER
left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER
WHERE
c.del_flag = 1 and d.STATUS = 1 and e.STATUS = 7
c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7
AND d.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID
),
0
) pick_quantity,
@@ -444,13 +455,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM
OUT_MATERIAL_DETAIL c
LEFT JOIN STOCK_OUT_ORDER d ON c.OUT_ORDER_NUMBER = d.OUT_ORDER_NUMBER
LEFT JOIN HANDOVER_TASK_ORDER e ON d.OUT_ORDER_NUMBER = e.ORDER_NUMBER
WHERE
d.CHECK_STATUS = 2
d.CHECK_STATUS = 2 and e.STATUS = 1
AND d.DEL_FLAG = 1
AND c.DEL_FLAG = 1
and e.del_flag = 1
AND d.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID
),
0
) CHECK_QUANTITY,
@@ -519,10 +533,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND d.del_flag = 1
LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number
WHERE
c.del_flag = 1
c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 3
AND e.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null))
and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null))
and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null))
and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null))
and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null))
and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null))
and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null))
and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null))
and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null))
and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null))
),
0
)> #{receivedQuantityStart}
@@ -539,10 +563,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND d.del_flag = 1
LEFT JOIN stock_in_order e ON d.in_order_number = e.in_order_number
WHERE
c.del_flag = 1
c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 3
AND e.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR e.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
and (c.BATCH_REF_NO = a.batch_ref_no or (c.BATCH_REF_NO is null and a.BATCH_REF_NO is null))
and (c.SHEET_REF_NO = a.sheet_ref_no or (c.SHEET_REF_NO is null and a.SHEET_REF_NO is null))
and (c.BOX_PALLET_NO = a.BOX_PALLET_NO or (c.BOX_PALLET_NO is null and a.BOX_PALLET_NO is null))
and (c.EXT_ATTR_1 = a.EXT_ATTR_1 or (c.EXT_ATTR_1 is null and a.EXT_ATTR_1 is null))
and (c.EXT_ATTR_2 = a.EXT_ATTR_2 or (c.EXT_ATTR_2 is null and a.EXT_ATTR_2 is null))
and (c.EXT_ATTR_3 = a.EXT_ATTR_3 or (c.EXT_ATTR_3 is null and a.EXT_ATTR_3 is null))
and (c.EXT_ATTR_4 = a.EXT_ATTR_4 or (c.EXT_ATTR_4 is null and a.EXT_ATTR_4 is null))
and (c.PRODUCTION_DATE = a.PRODUCTION_DATE or (c.PRODUCTION_DATE is null and a.PRODUCTION_DATE is null))
and (c.EXPIRY_DATE = a.EXPIRY_DATE or (c.EXPIRY_DATE is null and a.EXPIRY_DATE is null))
and (c.INVENTORY_DATE = a.INVENTORY_DATE or (c.INVENTORY_DATE is null and a.INVENTORY_DATE is null))
),
0
) &lt; #{receivedQuantityEnd}
@@ -595,12 +629,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sum( c.picking_quantity )
FROM
picking_material_detail c
LEFT JOIN picking_order d ON c.picking_order_number = d.order_number
LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER
left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER
WHERE
c.del_flag = 1
c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7
AND d.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID
),
0
) > #{pickQuantityStart}
@@ -613,12 +649,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sum( c.picking_quantity )
FROM
picking_material_detail c
LEFT JOIN picking_order d ON c.picking_order_number = d.order_number
LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER
left join STOCK_OUT_ORDER e ON d.ORDER_NUMBER = e.OUT_ORDER_NUMBER
WHERE
c.del_flag = 1
c.del_flag = 1 and d.STATUS = 3 and e.STATUS = 7
AND d.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID
),
0
) &lt; #{pickQuantityEnd}
@@ -639,13 +677,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM
OUT_MATERIAL_DETAIL c
LEFT JOIN STOCK_OUT_ORDER d ON c.OUT_ORDER_NUMBER = d.OUT_ORDER_NUMBER
LEFT JOIN HANDOVER_TASK_ORDER e ON d.OUT_ORDER_NUMBER = e.ORDER_NUMBER
WHERE
d.CHECK_STATUS = 2
d.CHECK_STATUS = 2 and e.STATUS = 1
AND d.DEL_FLAG = 1
AND c.DEL_FLAG = 1
and e.del_flag = 1
AND d.warehouse_id = a.warehouse_id
AND (a.shipper_id IS NULL OR d.shipper_id = a.shipper_id)
AND c.material_base_info_id = a.material_base_info_id
AND c.MATERIAL_INVENTORY_ID = a.MATERIAL_INVENTORY_ID
),
0
) = #{checkQuantity}
@@ -59,10 +59,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.warehouse_name like concat('%', #{warehouseName}, '%')
</if>
<if test="orderNumber != null and orderNumber != '' ">
and a.order_number = #{orderNumber}
and a.order_number like concat('%', #{orderNumber}, '%')
</if>
<if test="pickingOrderNumber != null and pickingOrderNumber != ''">
and a.picking_order_number = #{pickingOrderNumber}
and a.picking_order_number like concat('%', #{pickingOrderNumber}, '%')
</if>
<if test="status != null ">
and a.status = #{status}
@@ -105,7 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and b.notice_number = #{noticeNumber}
</if>
<if test="inOrderNumber != null and inOrderNumber != ''">
and b.in_order_number = #{inOrderNumber}
and b.in_order_number like concat('%', #{inOrderNumber}, '%')
</if>
<if test="warehouseId != null ">
and b.warehouse_id = #{warehouseId}
@@ -363,6 +363,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="orderDate != null">
and a.ORDER_DATE = #{orderDate}
</if>
<if test="createTimeStart != null and createTimeStart != ''">
and date_format(a.create_time,'%Y-%m-%d') &gt;= #{createTimeStart}
</if>
<if test="createTimeEnd != null and createTimeEnd != ''">
and date_format(a.create_time,'%Y-%m-%d') &lt;= #{createTimeEnd}
</if>
<choose>
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
<otherwise> and a.del_flag = 1 </otherwise>
@@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.notice_number = #{noticeNumber}
</if>
<if test="outOrderNumber != null and outOrderNumber != ''">
and a.out_order_number = #{outOrderNumber}
and a.out_order_number like concat('%', #{outOrderNumber}, '%')
</if>
<!-- 出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-拣货中 6-波次中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 -->
<if test="status != null ">
@@ -151,6 +151,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="auditRemark != null and auditRemark != ''">
and a.audit_remark = #{auditRemark}
</if>
<if test="checkTaskDistribution != null ">
and a.check_task_distribution = #{checkTaskDistribution}
</if>
<if test="auditBy != null ">
and a.audit_by = #{auditBy}
</if>
@@ -265,6 +268,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item}
</foreach>
</if>
<if test="createTimeStart != null and createTimeStart != ''">
and date_format(a.create_time,'%Y-%m-%d') &gt;= #{createTimeStart}
</if>
<if test="createTimeEnd != null and createTimeEnd != ''">
and date_format(a.create_time,'%Y-%m-%d') &lt;= #{createTimeEnd}
</if>
<if test="auditTimeStart != null and auditTimeStart != ''">
and date_format(a.audit_time,'%Y-%m-%d') &gt;= #{auditTimeStart}
</if>
<if test="auditTimeEnd != null and auditTimeEnd != ''">
and date_format(a.audit_time,'%Y-%m-%d') &lt;= #{auditTimeEnd}
</if>
<choose>
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
<otherwise> and a.del_flag = 1 </otherwise>
@@ -56,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.serial_number = #{serialNumber}
</if>
<if test="taskNumber != null and taskNumber != ''">
and a.task_number = #{taskNumber}
and a.task_number like concat('%', #{taskNumber}, '%')
</if>
<if test="status != null ">
and a.status = #{status}
@@ -86,10 +86,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.shipper_name like concat('%', #{shipperName}, '%')
</if>
<if test="orderNumber != null and orderNumber != ''">
and a.order_number = #{orderNumber}
and a.order_number like concat('%', #{orderNumber}, '%')
</if>
<if test="pickingOrderNumber != null and pickingOrderNumber != ''">
and a.picking_order_number = #{pickingOrderNumber}
and a.picking_order_number like concat('%', #{pickingOrderNumber}, '%')
</if>
<if test="abnormal != null ">
and a.abnormal = #{abnormal}
@@ -100,6 +100,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="operatorsName != null and operatorsName != ''">
and a.operators_name like concat('%', #{operatorsName}, '%')
</if>
<if test="pickingQuantity != null ">
and a.picking_quantity = #{pickingQuantity}
</if>
<if test="operatorsEndTime != null ">
and a.operators_end_time = #{operatorsEndTime}
</if>
@@ -109,6 +112,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateByName != null and updateByName != ''">
and a.update_by_name like concat('%', #{updateByName}, '%')
</if>
<if test="storageLocationId != null ">
and a.storage_location_id = #{storageLocationId}
</if>
<if test="storageLocationList != null and storageLocationList.size > 0 ">
and a.storage_location_id in
<foreach collection="storageLocationList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="createTimeStart != null and createTimeStart != ''">
and date_format(a.create_time,'%Y-%m-%d') &gt;= #{createTimeStart}
</if>
<if test="createTimeEnd != null and createTimeEnd != ''">
and date_format(a.create_time,'%Y-%m-%d') &lt;= #{createTimeEnd}
</if>
<if test="operatorsEndTimeStart != null and operatorsEndTimeStart != ''">
and date_format(a.operators_end_time,'%Y-%m-%d') &gt;= #{operatorsEndTimeStart}
</if>
<if test="operatorsEndTimeEnd != null and operatorsEndTimeEnd != ''">
and date_format(a.operators_end_time,'%Y-%m-%d') &lt;= #{operatorsEndTimeEnd}
</if>
<choose>
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
<otherwise> and a.del_flag = 1 </otherwise>
@@ -60,11 +60,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.top_organization_id = #{topOrganizationId}
</if>
<if test="inOrderNumber != null and inOrderNumber != '' ">
and a.in_order_number = #{inOrderNumber}
and a.in_order_number like concat('%', #{inOrderNumber}, '%')
</if>
<if test="receiptOrderNumber != null and receiptOrderNumber != ''">
and a.receipt_order_number like concat('%', #{receiptOrderNumber}, '%')
</if>
-- taskDistributionMerge
<if test="taskDistributionMerge != null ">
and a.task_distribution_merge = #{taskDistributionMerge}
</if>
<if test="status != null ">
and a.status = #{status}
</if>
@@ -119,6 +123,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item}
</foreach>
</if>
<if test="createTimeStart != null and createTimeStart != ''">
and date_format(a.create_time,'%Y-%m-%d') &gt;= #{createTimeStart}
</if>
<if test="createTimeEnd != null and createTimeEnd != ''">
and date_format(a.create_time,'%Y-%m-%d') &lt;= #{createTimeEnd}
</if>
<choose>
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
<otherwise> and a.del_flag = 1 </otherwise>
@@ -52,13 +52,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.in_order_number = #{inOrderNumber}
</if>
<if test="receiptOrderNumber != null and receiptOrderNumber != ''">
and a.receipt_order_number = #{receiptOrderNumber}
and a.receipt_order_number like concat('%', #{receiptOrderNumber}, '%')
</if>
<if test="receiptTaskNumber != null and receiptTaskNumber != ''">
and a.receipt_task_number = #{receiptTaskNumber}
</if>
<if test="shelfOrderNumber != null and shelfOrderNumber != ''">
and a.shelf_order_number = #{shelfOrderNumber}
and a.shelf_order_number like concat('%', #{shelfOrderNumber}, '%')
</if>
<if test="status != null ">
and a.status = #{status}
@@ -93,6 +93,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item}
</foreach>
</if>
<if test="createTimeStart != null and createTimeStart != ''">
and date_format(a.create_time,'%Y-%m-%d') &gt;= #{createTimeStart}
</if>
<if test="createTimeEnd != null and createTimeEnd != ''">
and date_format(a.create_time,'%Y-%m-%d') &lt;= #{createTimeEnd}
</if>
<choose>
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
<otherwise> and a.del_flag = 1 </otherwise>
@@ -101,7 +107,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="joinStockReceiptOrderWhere">
<if test="receiptOrderNumber != null and receiptOrderNumber != ''">
and c.receipt_order_number = #{receiptOrderNumber}
and c.receipt_order_number like concat('%', #{receiptOrderNumber}, '%')
</if>
</sql>