入库异常,入库作业单,出库异常详情查询
This commit is contained in:
+54
-3
@@ -8,7 +8,9 @@ import com.mhd.common.core.utils.OrderSequence;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.entity.OutOrderAbnormal;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.facade.IOutOrderAbnormalService;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.mapper.OutOrderAbnormalMapper;
|
||||
@@ -16,12 +18,15 @@ import com.mhd.wms.domain.outOrderAbnormal.repository.po.OutOrderAbnormalPO;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.todo.OutOrderAbnormalBaseDO;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.todo.OutOrderAbnormalDO;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.entity.PickingMaterialDetail;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.repository.mapper.PickingMaterialDetailMapper;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
@@ -42,6 +47,10 @@ public class OutOrderAbnormalImpl extends ServiceImpl<OutOrderAbnormalMapper, Ou
|
||||
private OutMaterialDetailMapper outMaterialDetailMapper;
|
||||
@Autowired
|
||||
private PickingMaterialDetailMapper pickingMaterialDetailMapper;
|
||||
@Autowired
|
||||
private IOutMaterialDetailService outMaterialDetailService;
|
||||
@Autowired
|
||||
private IPickingMaterialDetailService pickingMaterialDetailService;
|
||||
|
||||
/**
|
||||
* 查询出库异常单列表
|
||||
@@ -92,12 +101,54 @@ public class OutOrderAbnormalImpl extends ServiceImpl<OutOrderAbnormalMapper, Ou
|
||||
*/
|
||||
@Override
|
||||
public OutOrderAbnormalPO getInfo(Long outOrderAbnormalId) {
|
||||
OutOrderAbnormal outOrderAbnormal = this.getById(outOrderAbnormalId);
|
||||
OutOrderAbnormalPO outOrderAbnormalPO = new OutOrderAbnormalPO();
|
||||
BeanUtils.copyProperties(outOrderAbnormal,outOrderAbnormalPO);
|
||||
OutOrderAbnormalDO query = new OutOrderAbnormalDO();
|
||||
query.setOutOrderAbnormalId(outOrderAbnormalId);
|
||||
List<OutOrderAbnormalPO> list = queryList(query);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
throw new ServiceException("出库异常单不存在");
|
||||
}
|
||||
OutOrderAbnormalPO outOrderAbnormalPO = list.get(0);
|
||||
fillMaterialDetails(outOrderAbnormalPO);
|
||||
return outOrderAbnormalPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按异常类型加载对应明细:
|
||||
* 1-拣货异常 -> picking_material_detail
|
||||
* 2-复核异常 -> out_material_detail
|
||||
*/
|
||||
private void fillMaterialDetails(OutOrderAbnormalPO po) {
|
||||
if (po == null) {
|
||||
return;
|
||||
}
|
||||
Integer type = po.getType();
|
||||
if (Integer.valueOf(1).equals(type)) {
|
||||
if (StringUtils.hasText(po.getPickingOrderNumber())) {
|
||||
PickingMaterialDetailDO detailDO = new PickingMaterialDetailDO();
|
||||
detailDO.setPickingOrderNumber(po.getPickingOrderNumber());
|
||||
po.setMaterialDetailList(pickingMaterialDetailService.queryList(detailDO));
|
||||
}
|
||||
} else if (Integer.valueOf(2).equals(type)) {
|
||||
if (StringUtils.hasText(po.getOutOrderNumber())) {
|
||||
OutMaterialDetailDO detailDO = new OutMaterialDetailDO();
|
||||
detailDO.setOutOrderNumber(po.getOutOrderNumber());
|
||||
po.setMaterialDetailList(outMaterialDetailService.queryList(detailDO));
|
||||
}
|
||||
} else {
|
||||
// 兼容历史异常数据:两种都尝试
|
||||
if (StringUtils.hasText(po.getPickingOrderNumber())) {
|
||||
PickingMaterialDetailDO detailDO = new PickingMaterialDetailDO();
|
||||
detailDO.setPickingOrderNumber(po.getPickingOrderNumber());
|
||||
po.setMaterialDetailList(pickingMaterialDetailService.queryList(detailDO));
|
||||
}
|
||||
if (po.getMaterialDetailList() == null && StringUtils.hasText(po.getOutOrderNumber())) {
|
||||
OutMaterialDetailDO detailDO = new OutMaterialDetailDO();
|
||||
detailDO.setOutOrderNumber(po.getOutOrderNumber());
|
||||
po.setMaterialDetailList(outMaterialDetailService.queryList(detailDO));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 生成异常记录
|
||||
* @author ZhouGY
|
||||
|
||||
+3
@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -112,6 +113,8 @@ public class OutOrderAbnormalPO extends BaseVOEntity {
|
||||
@Excel(name = "入库单类型名称")
|
||||
private String orderTypeName;
|
||||
|
||||
@ApiModelProperty("异常明细(type=1 返回拣货明细,type=2 返回复核明细)")
|
||||
private List<?> materialDetailList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+6
@@ -55,6 +55,12 @@ public class PickingMaterialDetailPO extends BaseVOEntity {
|
||||
@Excel(name = "拣货单号")
|
||||
private String pickingOrderNumber;
|
||||
|
||||
@ApiModelProperty("入库单号")
|
||||
private String inOrderNumber;
|
||||
|
||||
@ApiModelProperty("LOT编码")
|
||||
private String lotNumber;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
|
||||
+37
-6
@@ -15,6 +15,8 @@ import com.mhd.wms.domain.taskShelfMaterialDetail.repository.todo.TaskShelfMater
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -78,12 +80,35 @@ public class StockInTaskOrderDomainService {
|
||||
public StockInTaskOrderPO getInfo(Long inTaskOrderId)
|
||||
{
|
||||
StockInTaskOrderPO stockInTaskOrderPO = stockInTaskOrderService.getInfo(inTaskOrderId);
|
||||
if (stockInTaskOrderPO.getType() == 1){
|
||||
//根据收货单号查询
|
||||
stockInTaskOrderPO.setTaskReceiptMaterialDetailList(getReceiptInfo(stockInTaskOrderPO.getTaskNumber()));
|
||||
}else {
|
||||
//根据上架单号查询
|
||||
stockInTaskOrderPO.setTaskShelfMaterialDetailList(getShelfInfo(stockInTaskOrderPO.getTaskNumber()));
|
||||
if (stockInTaskOrderPO == null) {
|
||||
return null;
|
||||
}
|
||||
if (Integer.valueOf(1).equals(stockInTaskOrderPO.getType())){
|
||||
// 收货作业:优先按收货单号查询,查不到再回退作业单号
|
||||
List<TaskReceiptMaterialDetailPO> receiptDetails = getReceiptInfo(stockInTaskOrderPO.getReceiptOrderNumber());
|
||||
if (CollectionUtils.isEmpty(receiptDetails)) {
|
||||
receiptDetails = getReceiptInfo(stockInTaskOrderPO.getTaskNumber());
|
||||
}
|
||||
stockInTaskOrderPO.setTaskReceiptMaterialDetailList(receiptDetails);
|
||||
} else if (Integer.valueOf(2).equals(stockInTaskOrderPO.getType())) {
|
||||
// 上架作业:优先按上架单号查询,查不到再回退作业单号
|
||||
List<TaskShelfMaterialDetailPO> shelfDetails = getShelfInfo(stockInTaskOrderPO.getShelfOrderNumber());
|
||||
if (CollectionUtils.isEmpty(shelfDetails)) {
|
||||
shelfDetails = getShelfInfo(stockInTaskOrderPO.getTaskNumber());
|
||||
}
|
||||
stockInTaskOrderPO.setTaskShelfMaterialDetailList(shelfDetails);
|
||||
} else {
|
||||
// 兼容历史数据:无类型时按两个方向各尝试一次
|
||||
List<TaskReceiptMaterialDetailPO> receiptDetails = getReceiptInfo(stockInTaskOrderPO.getReceiptOrderNumber());
|
||||
if (CollectionUtils.isEmpty(receiptDetails)) {
|
||||
receiptDetails = getReceiptInfo(stockInTaskOrderPO.getTaskNumber());
|
||||
}
|
||||
stockInTaskOrderPO.setTaskReceiptMaterialDetailList(receiptDetails);
|
||||
List<TaskShelfMaterialDetailPO> shelfDetails = getShelfInfo(stockInTaskOrderPO.getShelfOrderNumber());
|
||||
if (CollectionUtils.isEmpty(shelfDetails)) {
|
||||
shelfDetails = getShelfInfo(stockInTaskOrderPO.getTaskNumber());
|
||||
}
|
||||
stockInTaskOrderPO.setTaskShelfMaterialDetailList(shelfDetails);
|
||||
}
|
||||
return stockInTaskOrderPO;
|
||||
}
|
||||
@@ -93,6 +118,9 @@ public class StockInTaskOrderDomainService {
|
||||
* 获取入库收货作业单详细信息
|
||||
*/
|
||||
public List<TaskReceiptMaterialDetailPO> getReceiptInfo(String receiptOrderNumber) {
|
||||
if (!StringUtils.hasText(receiptOrderNumber)) {
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
//根据收货单号查询
|
||||
TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO = new TaskReceiptMaterialDetailDO();
|
||||
taskReceiptMaterialDetailDO.setTaskNumber(receiptOrderNumber);
|
||||
@@ -104,6 +132,9 @@ public class StockInTaskOrderDomainService {
|
||||
* 获取入库上架作业单详细信息
|
||||
*/
|
||||
public List<TaskShelfMaterialDetailPO> getShelfInfo(String shelfOrderNumber) {
|
||||
if (!StringUtils.hasText(shelfOrderNumber)) {
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
TaskShelfMaterialDetailDO taskShelfMaterialDetailDO = new TaskShelfMaterialDetailDO();
|
||||
//根据上架单号查询
|
||||
taskShelfMaterialDetailDO.setTaskNumber(shelfOrderNumber);
|
||||
|
||||
@@ -37,6 +37,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.out_order_abnormal_id, a.organization_id, a.organization_name, a.top_organization_id, a.abnormal_number, a.picking_order_number, a.out_task_order_number, a.type, a.actual_quantity, a.quantity, a.abnormal_actual_quantity, a.abnormal_type, a.abnormal_reason, a.remark, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag </sql>
|
||||
|
||||
<sql id="selectOutOrderAbnormalPo1">
|
||||
<if test="outOrderAbnormalId != null ">
|
||||
and a.out_order_abnormal_id = #{outOrderAbnormalId}
|
||||
</if>
|
||||
<if test="organizationId != null ">
|
||||
and a.organization_id = #{organizationId}
|
||||
</if>
|
||||
|
||||
+5
-1
@@ -11,6 +11,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="topOrganizationId" column="top_organization_id" />
|
||||
<result property="uniqueId" column="unique_id" />
|
||||
<result property="pickingOrderNumber" column="picking_order_number" />
|
||||
<result property="inOrderNumber" column="in_order_number" />
|
||||
<result property="lotNumber" column="lot_number" />
|
||||
<result property="materialBaseInfoId" column="material_base_info_id" />
|
||||
<result property="materialCode" column="material_code" />
|
||||
<result property="materialName" column="material_name" />
|
||||
@@ -74,7 +76,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO, a.EXT_ATTR_1, a.EXT_ATTR_2,
|
||||
a.PRODUCTION_DATE, a.EXPIRY_DATE, a.INVENTORY_DATE, a.EXT_ATTR_3, a.EXT_ATTR_4,
|
||||
a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag,
|
||||
a.total_area, a.total_gross_weight, a.total_net_weight, a.total_volume, a.out_unique_id
|
||||
a.total_area, a.total_gross_weight, a.total_net_weight, a.total_volume, a.out_unique_id,
|
||||
omd.in_order_number, omd.lot_no as lot_number
|
||||
</sql>
|
||||
|
||||
<sql id="selectPickingMaterialDetailPo1">
|
||||
@@ -184,6 +187,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
select
|
||||
<include refid="selectPickingMaterialDetailPo"/>
|
||||
from picking_material_detail a
|
||||
left join out_material_detail omd on a.out_unique_id = omd.unique_id and omd.del_flag = 1
|
||||
<where>
|
||||
<include refid="selectPickingMaterialDetailPo1"/>
|
||||
</where>
|
||||
|
||||
@@ -93,6 +93,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<where>
|
||||
<include refid="selectStockInTaskOrderPo1"/>
|
||||
</where>
|
||||
order by create_time desc
|
||||
order by a.operators_end_time desc, a.create_time desc
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user