diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java index f8556e414..6e6e4477f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java @@ -19,6 +19,8 @@ import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO; import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; +import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; +import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService; import com.mhd.wms.domain.pickingOrder.repository.facade.IPickingOrderService; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; @@ -74,6 +76,9 @@ public class DeliveTaskImpl extends ServiceImpl im @Autowired private IStockOutOrderService stockOutOrderService; + @Autowired + private IOutMaterialDetailService outMaterialDetailService; + /** * 查询下发任务列表 */ @@ -107,34 +112,38 @@ public class DeliveTaskImpl extends ServiceImpl im String trackingNumber = deliveTaskPO.getTrackingNumber(); HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getOne(new LambdaQueryWrapper() .eq(HandoverTaskOrder::getTaskNumber, trackingNumber)); + if (handoverTaskOrder == null) { + continue; + } + deliveTaskPO.setHandoverStatus(handoverTaskOrder.getStatus());//交接状态: 1-未交接 2-已交接,与PC端保持一致 String orderNumber = handoverTaskOrder.getOrderNumber();//出库单号 PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); pickingOrderDTO.setOrderNumber(orderNumber); PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO); - PickingOrderPO pickingOrderPOS = pickingOrderService.queryList(pickingOrderDO).get(0); - if (pickingOrderPOS != null){ - Integer materialQuantity = pickingOrderPOS.getMaterialQuantity();//物料种类数 + List pickingList = pickingOrderService.queryList(pickingOrderDO); + if (!pickingList.isEmpty()) { + PickingOrderPO pickingOrderPOS = pickingList.get(0); BigDecimal pickingQuantity = pickingOrderPOS.getPickingQuantity();//已拣货数量 - deliveTaskPO.setMaterialQuantity(materialQuantity); deliveTaskPO.setPickingQuantity(pickingQuantity); } - StockOutOrderDTO stockOutOrderDTO = new StockOutOrderDTO(); - stockOutOrderDTO.setOutOrderNumber(orderNumber); - StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO); - StockOutOrderPO checkInfo = null; - try { - checkInfo = stockOutOrderApplicationService.getCheckInfo(stockOutOrderDO); - BigDecimal checkQuantity = checkInfo.getCheckQuantity();//复核数量 - deliveTaskPO.setCheckQuantity(checkQuantity); - } catch (Exception e) { - } + // 物料种类数:从出库明细按料号去重统计 + long materialQuantity = outMaterialDetailService.list(new LambdaQueryWrapper() + .eq(OutMaterialDetail::getOutOrderNumber, orderNumber)) + .stream() + .map(d -> d.getMaterialCode() != null && !d.getMaterialCode().isEmpty() ? d.getMaterialCode() : d.getMaterialNo()) + .filter(c -> c != null && !c.isEmpty()) + .distinct() + .count(); + deliveTaskPO.setMaterialQuantity((int) materialQuantity); + // 已复核数量、出库单信息:直接从出库单获取(getCheckInfo仅支持复核中状态会抛异常) StockOutOrder stockOutOrder = stockOutOrderService.getOne(new LambdaQueryWrapper() .eq(StockOutOrder::getOutOrderNumber, orderNumber)); - if (stockOutOrder != null){ + if (stockOutOrder != null) { deliveTaskPO.setOutOrderNumber(stockOutOrder.getOutOrderNumber()); deliveTaskPO.setOutOrderStatus(stockOutOrder.getStatus()); deliveTaskPO.setShipperName(stockOutOrder.getShipperName()); deliveTaskPO.setCarrier(stockOutOrder.getCarrier()); + deliveTaskPO.setCheckQuantity(stockOutOrder.getCheckQuantity());//已复核数量 } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java index b3b24c13a..5b92521e0 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/po/DeliveTaskPO.java @@ -128,9 +128,12 @@ public class DeliveTaskPO extends BaseVOEntity { @ApiModelProperty("出库单号") private String outOrderNumber; - @ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭") + @ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核") private Integer outOrderStatus; + @ApiModelProperty("交接状态(taskType=7时使用): 1-未交接 2-已交接,PDA列表状态展示应优先使用此字段与PC端保持一致") + private Integer handoverStatus; + @ApiModelProperty("货主名称") private String shipperName; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java index d374c2b34..b06f77832 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java @@ -124,6 +124,15 @@ public class HandoverTaskOrderPO extends BaseVOEntity { @Excel(name = "备注") private String remark; + @ApiModelProperty("任务是否下发: 1-是 2-否") + @Excel(name = "任务是否下发: 1-是 2-否") + private Integer taskDistribution; + + @ApiModelProperty("任务下发时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date taskDistributionTime; + @ApiModelProperty("app上传的图片") private String pictureApp; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java index dae5b327e..989a6b10e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java @@ -97,6 +97,10 @@ public class OutMaterialDetailPO extends StockOutOrderBaseDO { @Excel(name = "待复核数量") private BigDecimal waitCheckQuantity; + @ApiModelProperty("复核数量输入框字段,默认等于待复核数量") + @TableField(exist = false) + private BigDecimal actualQuantity; + @ApiModelProperty("净重 单位:千克") @Excel(name = "净重 单位:千克") private BigDecimal weightLimit; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index 4b1951793..80401d977 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -505,6 +505,9 @@ public class StockOutOrderDomainService { OutMaterialDetailDO outMaterialDetailDO = new OutMaterialDetailDO(); outMaterialDetailDO.setOutOrderNumber(stockOutOrderPO.getOutOrderNumber()); List materialDetailPOList = outMaterialDetailService.queryList(outMaterialDetailDO); + materialDetailPOList.forEach(d -> { + if (d.getWaitCheckQuantity() != null) d.setActualQuantity(d.getWaitCheckQuantity()); + }); stockOutOrderPO.setMaterialDetailList(materialDetailPOList); return stockOutOrderPO; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java index e0b40ef2f..2b39251c6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java @@ -279,6 +279,12 @@ public class StockOutTaskOrderDomainService { //判断拣货数量是否等于计划数量 Integer pickingStatus = judgePickingQuantity(pickingQuantity, quantity); taskStoragePO.setPickingStatus(pickingStatus); + // actualQuantity 为输入框字段,默认等于待拣货数量,供 PDA 表单默认展示 + for (TaskPickingMaterialDetailPO d : incompleteList) { + if (d.getWaitPickingQuantity() != null) { + d.setActualQuantity(d.getWaitPickingQuantity()); + } + } taskStoragePO.setTaskPickingMaterialDetailList(incompleteList); taskStoragePOList.add(taskStoragePO); } @@ -321,6 +327,12 @@ public class StockOutTaskOrderDomainService { //判断拣货数量是否等于计划数量 Integer pickingStatus = judgePickingQuantity(pickingQuantity, quantity); taskMaterialPO.setPickingStatus(pickingStatus); + // actualQuantity 为输入框字段,默认等于待拣货数量,供 PDA 表单默认展示 + for (TaskPickingMaterialDetailPO d : taskPickingMaterialDetailPOListByMaterial) { + if (d.getWaitPickingQuantity() != null) { + d.setActualQuantity(d.getWaitPickingQuantity()); + } + } taskMaterialPO.setTaskPickingMaterialDetailList(taskPickingMaterialDetailPOListByMaterial); taskMaterialPOList.add(taskMaterialPO); if (pickingStatus > 2){ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java index 8fdc8f6ee..b3898c980 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java @@ -86,6 +86,9 @@ public class TaskPickingMaterialDetailPO extends BaseVOEntity { @Excel(name = "待拣货数量") private BigDecimal waitPickingQuantity; + @ApiModelProperty("本次拣货数量,PDA 输入框字段,默认等于待拣货数量") + private BigDecimal actualQuantity; + @ApiModelProperty("拣货状态: 1-待拣货 2-拣货中 3-已拣货") @Excel(name = "拣货状态: 1-待拣货 2-拣货中 3-已拣货", readConverterExp = "少=拣") private Integer pickingStatus; diff --git a/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml index 0e24fe2df..e4f28cb68 100644 --- a/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml @@ -21,6 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -88,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.material_detail_id, a.organization_id, a.organization_name, a.top_organization_id, a.unique_id, a.out_order_number, a.material_base_info_id, a.line_number, a.material_code, a.material_name, a.bar_code, a.weight_limit, a.volume_limit, - a.quantity, a.already_allocation_quantity, a.allocation_quantity, a.picking_quantity, a.check_quantity, ROUND((a.quantity - a.check_quantity), 2) AS wait_check_quantity, + a.quantity, a.already_allocation_quantity, a.allocation_quantity, a.picking_quantity, a.check_quantity, ROUND(GREATEST(0, IFNULL(a.quantity, 0) - IFNULL(a.check_quantity, 0), IFNULL(a.picking_quantity, 0) - IFNULL(a.check_quantity, 0)), 2) AS wait_check_quantity, a.pack_id, a.pack_code, a.pack_name, a.pack_detail_id, a.unit_code, a.unit_name, a.material_warehouse_control_id, a.serial_number_manage, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.storage_section_id, a.storage_code, a.storage_name, a.storage_location_id, a.storage_location_code, a.storage_location_name, a.level, a.parent_unique_id, a.allow_modify, a.material_inventory_id, a.batch_number, a.container_id, a.container_code, a.container_type, a.container_type_name, a.material_status_code, a.material_status_name, diff --git a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml index 17bc07f13..b387c80df 100644 --- a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml @@ -30,6 +30,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -44,8 +46,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.handover_task_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.serial_number, a.task_number, a.status, a.platform_id, a.platform_code, a.platform_name, a.platform_use_time_id, a.platform_use_start_time, a.platform_use_end_time, a.platform_use_status, - a.order_type_code, a.order_type_name, a.expect_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, - a.shipper_name, a.order_number, a.picking_order_number, a.remark, a.create_time, a.create_by, a.create_by_name, a.update_time, + a.order_type_code, a.order_type_name, a.expect_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, + a.shipper_name, a.order_number, a.picking_order_number, a.remark, a.task_distribution, a.task_distribution_time, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.picture_app