From 28afb0b8dc128b0eef87d491e02bb4cc58f558b3 Mon Sep 17 00:00:00 2001 From: zhou-hongcheng <1064771933@qq.com> Date: Thu, 5 Feb 2026 19:28:29 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=B8=8A=E6=9E=B6=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5=202.=E4=BA=A4?= =?UTF-8?q?=E6=8E=A5=E4=BD=9C=E4=B8=9A=E5=8D=95pad=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/DeliveTaskImpl.java | 69 ++++++++++++++++++- .../repository/po/DeliveTaskPO.java | 10 +++ .../stockOutOrder/StockOutOrderApi.java | 18 +++++ .../StockShelfOrderAppApi.java | 2 +- .../ShelfMaterialDetailMapper.xml | 6 +- 5 files changed, 102 insertions(+), 3 deletions(-) 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 992200e6f..af5b24f08 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 @@ -1,5 +1,6 @@ package com.mhd.wms.domain.deliveTask.repository.persistence; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mhd.common.core.domain.dto.NoticeMessageLoggingDto; import com.mhd.common.core.enums.MessageTypeEnum; @@ -8,17 +9,33 @@ import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.SystemServiceFeign; import com.mhd.system.api.model.LoginUser; +import com.mhd.wms.application.service.pickingOrder.PickingOrderApplicationService; +import com.mhd.wms.application.service.stockOutOrder.StockOutOrderApplicationService; import com.mhd.wms.domain.deliveTask.entity.DeliveTask; import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService; import com.mhd.wms.domain.deliveTask.repository.mapper.DeliveTaskMapper; import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO; 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.pickingOrder.repository.facade.IPickingOrderService; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; +import com.mhd.wms.interfaces.assember.pickingOrder.PickingOrderAssembler; +import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler; +import com.mhd.wms.interfaces.dto.pickingOrder.PickingOrderDTO; +import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -35,6 +52,22 @@ public class DeliveTaskImpl extends ServiceImpl im private DeliveTaskMapper deliveTaskMapper; @Autowired private SystemServiceFeign systemServiceFeign; + + @Autowired + private IHandoverTaskOrderService handoverTaskOrderService; + + @Autowired + private IPickingOrderService pickingOrderService; + + @Resource + private PickingOrderAssembler pickingOrderAssembler; + + @Lazy + @Autowired + private StockOutOrderApplicationService stockOutOrderApplicationService; + + @Resource + private StockOutOrderAssembler stockOutOrderAssembler; /** * 查询下发任务列表 */ @@ -55,8 +88,42 @@ public class DeliveTaskImpl extends ServiceImpl im }else{ } - return deliveTaskMapper.queryListApp(deliveTaskDO); + List deliveTaskPOS = deliveTaskMapper.queryListApp(deliveTaskDO); + if (deliveTaskDO.getTaskType() == 7){ + statistics(deliveTaskPOS); + } + return deliveTaskPOS; } + + //关联查询物料种类 + private void statistics(List deliveTaskPOS) { + for (DeliveTaskPO deliveTaskPO : deliveTaskPOS) { + String trackingNumber = deliveTaskPO.getTrackingNumber(); + String orderNumber = handoverTaskOrderService.getOne(new LambdaQueryWrapper() + .eq(HandoverTaskOrder::getTaskNumber, trackingNumber)).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();//物料种类数 + 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) { + } + } + } + /** * 新增下发任务 */ 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 2e233188b..14bbd594e 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 @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @@ -115,4 +116,13 @@ public class DeliveTaskPO extends BaseVOEntity { @Excel(name = "是否下发 0-否 1-是") private Integer taskSum; + @ApiModelProperty("物料种类数") + private Integer materialQuantity; + + @ApiModelProperty("拣货数量") + private BigDecimal pickingQuantity; + + @ApiModelProperty("复核数量") + private BigDecimal checkQuantity; + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java index 0b95fbe51..7d4fa5081 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java @@ -1,10 +1,14 @@ package com.mhd.wms.interfaces.facadeApi.stockOutOrder; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.wms.application.service.handoverTaskOrder.HandoverTaskOrderApplicationService; import com.mhd.wms.application.service.stockOutOrder.StockOutOrderApplicationService; +import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; +import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO; import com.mhd.wms.domain.stockOutOrder.repository.listener.ExcelParseService; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; @@ -42,6 +46,9 @@ public class StockOutOrderApi extends BaseController { @Resource private StockOutOrderAssembler stockOutOrderAssembler; + @Autowired + private IHandoverTaskOrderService handoverTaskOrderService; + /** * 分页查询出库单列表 */ @@ -129,6 +136,17 @@ public class StockOutOrderApi extends BaseController { { return AjaxResult.success(stockOutOrderApplicationService.getInfoChildren(outOrderId)); } + /** + * 根据出库单号获取出库单详细信息 + */ + @ApiOperation("获取出库单") + @GetMapping(value = "/getInfoOutOrderNumber") + public AjaxResult getInfoOutOrderNumber(String outOrderNumber) + { + HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getOne(new LambdaQueryWrapper() + .eq(HandoverTaskOrder::getTaskNumber, outOrderNumber)); + return AjaxResult.success(stockOutOrderApplicationService.getInfoChildren(handoverTaskOrder.getHandoverTaskOrderId())); + } /** * 审核出库单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockShelfOrder/StockShelfOrderAppApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockShelfOrder/StockShelfOrderAppApi.java index 00773c1e1..9099cd451 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockShelfOrder/StockShelfOrderAppApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockShelfOrder/StockShelfOrderAppApi.java @@ -53,7 +53,7 @@ public class StockShelfOrderAppApi extends BaseController { @GetMapping(value = "/getInfo") public AjaxResult getInfo(Long shelfOrderId) { - return AjaxResult.success(stockShelfOrderApplicationService.getInfoByApp(shelfOrderId)); + return AjaxResult.success(stockShelfOrderApplicationService.getInfo(shelfOrderId)); } diff --git a/mhd_wms/src/main/resources/mapper/shelfMaterialDetail/ShelfMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/shelfMaterialDetail/ShelfMaterialDetailMapper.xml index 7902df1b4..b2a731d32 100644 --- a/mhd_wms/src/main/resources/mapper/shelfMaterialDetail/ShelfMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/shelfMaterialDetail/ShelfMaterialDetailMapper.xml @@ -59,11 +59,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + - select material_detail_id, organization_id, organization_name, top_organization_id, unique_id, shelf_order_number, material_base_info_id, material_code, material_name, bar_code, quantity, already_shelves_quantity, shelves_quantity, shelves_status, pack_id, pack_code, pack_name, pack_detail_id, unit_code, unit_name, unit_number, material_warehouse_control_id, serial_number_manage, quality_inspection_manage, quality_inspection_stage, quality_inspection_rule, quality_inspection_ratio, quality_inspection_term, quality_inspection_results, allow_overcharge, overcharge_ratio, batch_number, material_status_code, material_status_name, distribute_rule_id, distribute_rule_code, distribute_rule_name, container_id, container_code, container_type, container_type_name, warehouse_id, warehouse_code, warehouse_name, storage_section_id, storage_code, storage_name, storage_location_id, storage_location_code, storage_location_name, level, parent_unique_id, in_unique_id, receipt_unique_id, allow_modify, remark, batch_ref_no, sheet_ref_no, box_pallet_no, ext_attr_1, ext_attr_2, production_date, expiry_date, inventory_date, ext_attr_3, ext_attr_4, create_time, create_by, create_by_name, update_time, update_by, update_by_name, del_flag from shelf_material_detail + select material_detail_id, organization_id, organization_name, top_organization_id, unique_id, shelf_order_number, material_base_info_id, material_code, material_name, bar_code, quantity, already_shelves_quantity, shelves_quantity, shelves_status, pack_id, pack_code, pack_name, pack_detail_id, unit_code, unit_name, unit_number, material_warehouse_control_id, serial_number_manage, quality_inspection_manage, quality_inspection_stage, quality_inspection_rule, quality_inspection_ratio, quality_inspection_term, quality_inspection_results, allow_overcharge, overcharge_ratio, batch_number, material_status_code, material_status_name, distribute_rule_id, distribute_rule_code, distribute_rule_name, container_id, container_code, container_type, container_type_name, warehouse_id, warehouse_code, warehouse_name, storage_section_id, storage_code, storage_name, storage_location_id, storage_location_code, storage_location_name, level, parent_unique_id, in_unique_id, receipt_unique_id, allow_modify, remark, batch_ref_no, sheet_ref_no, box_pallet_no, ext_attr_1, ext_attr_2, production_date, expiry_date, inventory_date, ext_attr_3, ext_attr_4, create_time, create_by, create_by_name, update_time, update_by, update_by_name, del_flag,total_net_weight,total_gross_weight,total_volume,total_area from shelf_material_detail