diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java index 91f2f8a11..e18484e8d 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index 03d48d2f4..e34bb9cd4 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.concurrent.CompletableFuture; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index ba9a45148..e4a817238 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 688e5ea7c..743be7c29 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -21,7 +21,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java index 48d76d01e..dfac7337f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java @@ -9,7 +9,7 @@ import com.mhd.system.api.feign.FeignAutoConfiguration; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; -@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.33.0.99:8018", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.4:8018", configuration = FeignAutoConfiguration.class) public interface YmsServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/WarehouseFeignPO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/WarehouseFeignPO.java index b064dc0df..04b023713 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/WarehouseFeignPO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/WarehouseFeignPO.java @@ -116,6 +116,12 @@ public class WarehouseFeignPO extends BaseVOEntity{ @Excel(name = "是否作废: 1-否 2-是") private Integer nullify; + @ApiModelProperty("任务模式") + @Excel(name = "任务模式") + private String taskMode; + @ApiModelProperty("作业模式") + @Excel(name = "作业模式") + private String workMode; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/entity/StorageLocation.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/entity/StorageLocation.java index 70ffc6d94..dd0080288 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/entity/StorageLocation.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/entity/StorageLocation.java @@ -165,6 +165,8 @@ public class StorageLocation extends BaseVOEntity{ @ApiModelProperty("是否作废: 1-否 2-是") @Excel(name = "是否作废: 1-否 2-是") private Integer nullify; + @ApiModelProperty("库位条码") + @Excel(name = "库位条码") + private String locationBarCode; - -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/po/StorageLocationPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/po/StorageLocationPO.java index 6a3a87500..f5ed89202 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/po/StorageLocationPO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/po/StorageLocationPO.java @@ -165,6 +165,8 @@ public class StorageLocationPO extends BaseVOEntity{ @Excel(name = "是否作废: 1-否 2-是") private Integer nullify; + @ApiModelProperty("库位条码") + @Excel(name = "库位条码") + private String locationBarCode; - -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/todo/StorageLocationDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/todo/StorageLocationDO.java index e7ca22e26..b46cbb574 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/todo/StorageLocationDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageLocation/repository/todo/StorageLocationDO.java @@ -204,4 +204,8 @@ public class StorageLocationDO extends BaseVOEntity{ @ApiModelProperty("坐标-层 终止") @Excel(name = "坐标-层 终止") private String coordinateLayerEnd; -} + + @ApiModelProperty("库位条码") + @Excel(name = "库位条码") + private String locationBarCode; +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/entity/Warehouse.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/entity/Warehouse.java index 6aec2e620..4564aa5b9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/entity/Warehouse.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/entity/Warehouse.java @@ -122,5 +122,12 @@ public class Warehouse extends BaseVOEntity{ @Excel(name = "是否启用: 1-否 2-是") private Integer isEnable; + @ApiModelProperty("任务模式") + @Excel(name = "任务模式") + private String taskMode; + + @ApiModelProperty("作业模式") + @Excel(name = "作业模式") + private String workMode; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/po/WarehousePO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/po/WarehousePO.java index c42b2f6b6..1127d377d 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/po/WarehousePO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/po/WarehousePO.java @@ -124,5 +124,11 @@ public class WarehousePO extends BaseVOEntity{ private Integer isEnable; @ApiModelProperty("库区集合") private List storageSectionList; + @ApiModelProperty("任务模式") + @Excel(name = "任务模式") + private String taskMode; + @ApiModelProperty("作业模式") + @Excel(name = "作业模式") + private String workMode; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java index f5bd4ec85..097528ef2 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/warehouse/repository/todo/WarehouseDO.java @@ -131,4 +131,12 @@ public class WarehouseDO extends BaseVOEntity{ private String orgIds; @ApiModelProperty("组织id 集合") private List orgIdList; + + @ApiModelProperty("任务模式") + @Excel(name = "任务模式") + private String taskMode; + + @ApiModelProperty("作业模式") + @Excel(name = "作业模式") + private String workMode; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/storageLocation/StorageLocationDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/storageLocation/StorageLocationDTO.java index 7c5968adb..3693b405c 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/storageLocation/StorageLocationDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/storageLocation/StorageLocationDTO.java @@ -212,7 +212,11 @@ public class StorageLocationDTO extends BaseVOEntity{ @Excel(name = "坐标-层 终止") private String coordinateLayerEnd; + @ApiModelProperty("库位条码") + @Excel(name = "库位条码") + private String locationBarCode; + public interface Edit {} public interface BatchInsert {} -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java index 62bd089cf..8b1b164aa 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/warehouse/WarehouseDTO.java @@ -136,4 +136,12 @@ public class WarehouseDTO extends BaseVOEntity{ private String orgIds; @ApiModelProperty("组织id 集合") private List orgIdList; + + @ApiModelProperty("任务模式") + @Excel(name = "任务模式") + private String taskMode; + + @ApiModelProperty("作业模式") + @Excel(name = "作业模式") + private String workMode; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml index 4ff52f6cc..e2915658e 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml @@ -47,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -58,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.storage_location_classify, a.storage_location_classify_name, a.storage_location_type, a.storage_location_type_name, a.mixing_strategy, a.mixing_strategy_name, a.storage_location_group_id, a.storage_location_group_code, a.storage_location_group_name, a.weight_limit, a.volume_limit, a.location_size, a.location_length, a.location_width, a.location_height, - a.coordinate, a.coordinate_area, a.coordinate_column, a.coordinate_row, a.coordinate_layer, a.remark, + a.coordinate, a.coordinate_area, a.coordinate_column, a.coordinate_row, a.coordinate_layer, a.remark, a.LOCATION_BAR_CODE, a.opening_up, a.nullify, a.status, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag from storage_location a LEFT JOIN warehouse w ON a.warehouse_id = w.warehouse_id AND w.del_flag = 1 diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml index 04fcb50ca..ec3402469 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/warehouse/WarehouseMapper.xml @@ -37,11 +37,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select warehouse_id, organization_id, organization_name, top_organization_id, warehouse_code, warehouse_name, warehouse_type, warehouse_type_name, warehouse_structure, warehouse_nature, warm_layer_code, warm_layer_name, director_name, director_phone, region_code, region_name, detail_address, longitude, latitude, building_region, usage_region, remark, opening_up, nullify, create_time, create_by, create_by_name, update_time, update_by, update_by_name, del_flag, IS_ENABLE from warehouse + select warehouse_id, organization_id, organization_name, top_organization_id, warehouse_code, warehouse_name, + warehouse_type, warehouse_type_name, warehouse_structure, warehouse_nature, warm_layer_code, warm_layer_name, + director_name, director_phone, region_code, region_name, detail_address, longitude, latitude, building_region, + usage_region, remark, opening_up, nullify, create_time, create_by, create_by_name, update_time, update_by, + update_by_name, del_flag, IS_ENABLE ,WORK_MODE,TASK_MODE + from warehouse diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java index 044e7cc9c..9bf82170f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java @@ -29,6 +29,7 @@ import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOr import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder; import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService; +import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationStockInOrderMapper; import com.mhd.system.api.SystemServiceFeign; import com.mhd.system.api.WmsServiceFeign; import com.mhd.system.api.domain.*; @@ -39,6 +40,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.ArrayList; @@ -85,7 +87,8 @@ public class ExecutionStockInOrderDomainService { // private IReceiptMaterialDetailService receiptMaterialDetailService; // @Autowired // private IShelfMaterialDetailService shelfMaterialDetailService; - + @Resource + private ReservationStockInOrderMapper stockInOrderMapper; /** * 分页查询入库单列表 */ @@ -497,6 +500,13 @@ public class ExecutionStockInOrderDomainService { StockInOrder stockInOrder = new StockInOrder(); BeanUtils.copyProperties(byId, stockInOrder,"inOrderId"); stockInOrder.setOmsStockInOrderId(String.valueOf(byId.getInOrderId())); + Long warehouseId = stockInOrder.getWarehouseId(); + Long topOrgId = stockInOrderMapper.getTopOrgId(warehouseId); + Long orgId = stockInOrderMapper.getOrgId(warehouseId); + String orgName = stockInOrderMapper.getOrgName(warehouseId); + stockInOrder.setOrganizationId(orgId); + stockInOrder.setOrganizationName(orgName); + stockInOrder.setTopOrganizationId(topOrgId); wmsServiceFeign.omsInOrderAdd(stockInOrder); String inOrderNumber = stockInOrder.getInOrderNumber(); List materialDetailList = materialDetailService.list(new QueryWrapper().lambda().eq(ExecutionInMaterialDetail::getInOrderNumber, inOrderNumber)); @@ -505,6 +515,9 @@ public class ExecutionStockInOrderDomainService { InMaterialDetail inMaterialDetail = new InMaterialDetail(); BeanUtils.copyProperties(reservationInMaterialDetail, inMaterialDetail,"materialDetailId"); inMaterialDetail.setOmsInMaterialDetail(String.valueOf(reservationInMaterialDetail.getMaterialDetailId())); + inMaterialDetail.setOrganizationId(orgId); + inMaterialDetail.setOrganizationName(orgName); + inMaterialDetail.setTopOrganizationId(topOrgId); inMaterialDetailList.add(inMaterialDetail); } wmsServiceFeign.omsInOrderAddDetail(inMaterialDetailList); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java index ed9c53e21..27e1ea97f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/service/ExecutionStockOutOrderDomainService.java @@ -37,6 +37,7 @@ import com.mhd.oms.domain.reservationInventoryAdjustmentRecord.entity.Reservatio import com.mhd.oms.domain.reservationInventoryAdjustmentRecord.repository.mapper.ReservationInventoryAdjustmentRecordMapper; import com.mhd.oms.domain.reservationMaterialInventory.entity.ReservationMaterialInventory; import com.mhd.oms.domain.reservationMaterialInventory.repository.mapper.ReservationMaterialInventoryMapper; +import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationStockInOrderMapper; import com.mhd.system.api.SystemServiceFeign; import com.mhd.system.api.WmsServiceFeign; import com.mhd.system.api.domain.*; @@ -93,7 +94,8 @@ public class ExecutionStockOutOrderDomainService { private ReservationInventoryAdjustmentRecordMapper inventoryAdjustmentRecordMapper; @Autowired private ReservationMaterialInventoryMapper reservationMaterialInventoryMapper; - + @Autowired + private ReservationStockInOrderMapper stockInOrderMapper; /** * 分页查询出库单列表 */ @@ -396,6 +398,13 @@ public class ExecutionStockOutOrderDomainService { ExecutionStockOutOrder byId = stockOutOrderService.getById(inOrderId); StockOutOrder stockOutOrder = new StockOutOrder(); BeanUtils.copyProperties(byId, stockOutOrder,"outOrderId"); + Long warehouseId = stockOutOrder.getWarehouseId(); + Long topOrgId = stockInOrderMapper.getTopOrgId(warehouseId); + Long orgId = stockInOrderMapper.getOrgId(warehouseId); + String orgName = stockInOrderMapper.getOrgName(warehouseId); + stockOutOrder.setOrganizationId(orgId); + stockOutOrder.setOrganizationName(orgName); + stockOutOrder.setTopOrganizationId(topOrgId); wmsServiceFeign.omsOutOrderAdd(stockOutOrder); List list = deliveryDetailsLinkService.list(new QueryWrapper().lambda().eq(ReservationDeliveryDetailsLink::getOrderNumber, byId.getOutOrderNumber())); @@ -415,6 +424,9 @@ public class ExecutionStockOutOrderDomainService { for (ExecutionOutMaterialDetail reservationOutMaterialDetail : materialDetailList) { OutMaterialDetail outMaterialDetail = new OutMaterialDetail(); BeanUtils.copyProperties(reservationOutMaterialDetail, outMaterialDetail,"materialDetailId"); + outMaterialDetail.setOrganizationId(orgId); + outMaterialDetail.setOrganizationName(orgName); + outMaterialDetail.setTopOrganizationId(topOrgId); outMaterialDetailList.add(outMaterialDetail); } wmsServiceFeign.omsOutOrderAddDetail(outMaterialDetailList); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java index 48da47d00..b8313f252 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java @@ -685,9 +685,9 @@ public class ReservationStockInOrderDomainService { reservationStockInOrder.setBusinessType("pu_tong_ru_ku"); reservationStockInOrder.setReservationOrderSource("客户预约"); reservationStockInOrder.setWarehouseId(warehouseId); - reservationStockInOrder.setOrganizationId(orgId); - reservationStockInOrder.setOrganizationName(orgName); - reservationStockInOrder.setTopOrganizationId(topOrgId); +// reservationStockInOrder.setOrganizationId(orgId); +// reservationStockInOrder.setOrganizationName(orgName); +// reservationStockInOrder.setTopOrganizationId(topOrgId); reservationStockInOrder.setWarehouseCode(warehouseCode); reservationStockInOrder.setWarehouseName(warehouseName); reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber); @@ -703,9 +703,9 @@ public class ReservationStockInOrderDomainService { ExecutionInMaterialDetail reservationInMaterialDetail = new ExecutionInMaterialDetail(); BeanUtils.copyProperties(reserveInMaterialDetail, reservationInMaterialDetail,"materialDetailId"); reservationInMaterialDetail.setQuantity(reserveInMaterialDetail.getQuantity()); - reservationInMaterialDetail.setOrganizationId(orgId); - reservationInMaterialDetail.setOrganizationName(orgName); - reservationInMaterialDetail.setTopOrganizationId(topOrgId); +// reservationInMaterialDetail.setOrganizationId(orgId); +// reservationInMaterialDetail.setOrganizationName(orgName); +// reservationInMaterialDetail.setTopOrganizationId(topOrgId); reservationInMaterialDetail.setWarehouseCode(warehouseCode); reservationInMaterialDetail.setWarehouseName(warehouseName); reservationInMaterialDetail.setInOrderNumber(reservationStockInOrder.getInOrderNumber()); @@ -718,13 +718,13 @@ public class ReservationStockInOrderDomainService { BigDecimal quantity = details.stream().map(ReservationInMaterialDetail::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); reservationStockInOrder.setQuantity(quantity); executionStockInOrderService.save(reservationStockInOrder); + executionInMaterialDetailService.saveBatch(inMaterialDetailList); ExecutionStockInOrderDO param = new ExecutionStockInOrderDO(); Long inOrderId1 = reservationStockInOrder.getInOrderId(); List inOrderIdList1 = new ArrayList<>(); inOrderIdList1.add(inOrderId1); param.setInOrderIds(inOrderIdList1); stockInOrderApplicationService.issueOrder(param); - executionInMaterialDetailService.saveBatch(inMaterialDetailList); }); } diff --git a/mhd_oms/src/main/resources/bootstrap.yml b/mhd_oms/src/main/resources/bootstrap.yml index 09ef96b56..08923fbaf 100644 --- a/mhd_oms/src/main/resources/bootstrap.yml +++ b/mhd_oms/src/main/resources/bootstrap.yml @@ -18,15 +18,15 @@ spring: discovery: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 - server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.30:6848 +# server-addr: 10.33.0.129:6010 + server-addr: 10.102.192.30:6848 username: nacos password: manhuoda@2023 config: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 - server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.30:6848 +# server-addr: 10.33.0.129:6010 + server-addr: 10.102.192.30:6848 username: nacos password: manhuoda@2023 #线上正式环境 diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java index 6d9b63602..117efb435 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java @@ -27,6 +27,10 @@ import com.mhd.system.api.domain.WarehouseFeignPO; import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; import com.mhd.system.api.domain.cache.SystemServiceCacheUtil; import com.mhd.system.api.model.LoginUser; +import com.mhd.wms.application.service.stockReceiptOrder.StockReceiptOrderApplicationService; +import com.mhd.wms.application.service.stockShelfOrder.StockShelfOrderApplicationService; +import com.mhd.wms.domain.deliveTask.entity.DeliveTask; +import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; @@ -45,12 +49,18 @@ import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAcc import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; +import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockInOrder.repository.vo.GwInDetail; import com.mhd.wms.domain.stockInOrder.repository.vo.GwStockInOrder; import com.mhd.wms.domain.stockInOrder.service.StockInOrderDomainService; import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper; +import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService; +import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; +import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService; +import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; +import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; @@ -70,6 +80,7 @@ import org.apache.poi.ss.usermodel.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -92,6 +103,10 @@ import java.util.stream.Collectors; public class StockInOrderApplicationService { @Autowired private StockInOrderDomainService stockInOrderDomainService; + @Autowired + private StockReceiptOrderDomainService stockReceiptOrderDomainService; + @Autowired + private StockShelfOrderDomainService stockShelfOrderDomainService; @Resource private UserServiceFeign userServiceFeign; @Resource @@ -109,6 +124,8 @@ public class StockInOrderApplicationService { @Autowired private IStockReceiptOrderService stockReceiptOrderService; @Autowired + private IStockShelfOrderService stockShelfOrderService; + @Autowired private IReceiptMaterialDetailService receiptMaterialDetailService; @Autowired private IStockOutOrderService stockOutOrderService; @@ -119,7 +136,15 @@ public class StockInOrderApplicationService { @Autowired private StockOutOrderMapper stockOutOrderMapper; @Autowired + private StockInOrderMapper stockInOrderMapper; + @Autowired private PickingMaterialDetailMapper pickingMaterialDetailMapper; + @Autowired + private StockReceiptOrderApplicationService stockReceiptOrderApplicationService; + @Autowired + private IDeliveTaskService deliveTaskService; + @Autowired + private StockShelfOrderApplicationService stockShelfOrderApplicationService; private static final String PUSH_API_URL = "http://10.102.192.15/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "save_order_i"; private static final String VERIFY = "ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD"; @@ -541,31 +566,171 @@ public class StockInOrderApplicationService { */ public Boolean auditState(StockInOrderDO stockInOrderDO){ Boolean b = stockInOrderDomainService.auditState(stockInOrderDO); -// List inOrderIds = stockInOrderDO.getInOrderIds(); -// if (inOrderIds != null && !inOrderIds.isEmpty()) { -// StockInOrder stockInOrder = stockInOrderService.getById(inOrderIds.get(0)); -// Integer needCustomsDeclaration = stockInOrder.getNeedCustomsDeclaration(); -// Integer auditStatus = stockInOrder.getAuditStatus(); -// try { -// if (needCustomsDeclaration != null && needCustomsDeclaration == 1 && auditStatus != null && auditStatus == 3) { -// Long inOrderId = stockInOrder.getInOrderId(); -// List idList = new ArrayList<>(); -// idList.add(inOrderId); -// //batchPush(idList); -// } -// } catch (Exception e) { -// throw new ServiceException("推送关务系统失败!"); -// } -// } - return b; } + public Boolean receiptEasyMode(StockInOrderDO stockInOrderDO){ + Boolean b = stockInOrderDomainService.receiptEasyMode(stockInOrderDO); + return b; + } + + public Boolean updateQuantity( BigDecimal quantity, Long materialDetailId,BigDecimal area, + BigDecimal volume,BigDecimal weight){ + Boolean result = false; + InMaterialDetail inMaterialDetail = inMaterialDetailService.getById(materialDetailId); + if (inMaterialDetail != null) { + inMaterialDetail.setQuantity(quantity); + inMaterialDetail.setTotalArea(area); + inMaterialDetail.setTotalVolume(volume); + inMaterialDetail.setTotalNetWeight(weight); + inMaterialDetail.setTotalGrossWeight(weight); + boolean b = inMaterialDetailService.updateById(inMaterialDetail); + Long uniqueId = inMaterialDetail.getUniqueId(); + ReceiptMaterialDetail one = receiptMaterialDetailService.getOne(new LambdaQueryWrapper() + .eq(ReceiptMaterialDetail::getInUniqueId, uniqueId) + .eq(ReceiptMaterialDetail::getDelFlag, 1)); + one.setQuantity(quantity); + one.setTotalArea(area); + one.setTotalVolume(volume); + one.setTotalNetWeight(weight); + one.setTotalGrossWeight(weight); + boolean b1 = receiptMaterialDetailService.updateById(one); + result = b && b1; + } + return result; + } + + public Boolean shelfEasyMode(StockInOrderDO stockInOrderDO){ + Boolean b = stockInOrderDomainService.shelfEasyMode(stockInOrderDO); + return b; + } + + public Boolean checkUploadEasyMode(StockInOrderDO stockInOrderDO){ + String inOrderNumber = stockInOrderDO.getInOrderNumber(); + StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getOne(new LambdaQueryWrapper() + .eq(StockReceiptOrder::getInOrderNumber, inOrderNumber) + .eq(StockReceiptOrder::getDelFlag, 1), false); + stockReceiptOrder.setStatus(3); + boolean b = stockReceiptOrderService.updateById(stockReceiptOrder); + StockShelfOrder stockShelfOrder = stockShelfOrderService.getOne(new LambdaQueryWrapper() + .eq(StockShelfOrder::getInOrderNumber, inOrderNumber) + .eq(StockShelfOrder::getDelFlag, 1), false); + + //上架任务下发 + StockShelfOrderDO stockShelfOrderDO = new StockShelfOrderDO(); + + + //完成上架 + Boolean b1 = stockShelfOrderDomainService.completeUpShelf(stockShelfOrder.getShelfOrderId()); + + String inOrderId = stockInOrderDO.getInOrderNumber(); + StockInOrder stockInOrder = stockInOrderService.getOne(new LambdaQueryWrapper() + .eq(StockInOrder::getInOrderNumber, inOrderId) + .eq(StockInOrder::getDelFlag,1) ,false); + if (stockInOrder != null) { + DeliveTask deliveTask = deliveTaskService.getOne(new LambdaQueryWrapper() + .eq(DeliveTask::getTrackingNumber, stockShelfOrder.getShelfOrderNumber()) + .eq(DeliveTask::getDelFlag, 1)); + if (deliveTask != null) { + deliveTask.setOperatorsBy(stockInOrder.getWorkUserId()); + deliveTask.setOperatorsName(stockInOrder.getWorkUserName()); + deliveTask.setTaskStatus(2); + deliveTaskService.updateById(deliveTask); + } + } + + return b && b1; + } + public void omsOrderAdd(StockInOrder stockInOrder){ + // 设置任务下发用户ID + String userId = stockInOrderMapper.queryWarehouseUserId(stockInOrder.getOrganizationId(), stockInOrder.getWarehouseId(), stockInOrder.getTopOrganizationId()); + stockInOrder.setTaskIssueUserId(userId); stockInOrderDomainService.omsOrderAdd(stockInOrder); } + public void acceptTask(StockInOrder stockInOrder){ + Long workUserId = stockInOrder.getWorkUserId(); + String workUserName = stockInOrder.getWorkUserName(); + if (workUserId == null || workUserName == null) { + throw new ServiceException("作业人员id或名称为空!"); + } + + //pda任务中心下发 + StockReceiptOrderDO stockReceiptOrderDO = new StockReceiptOrderDO(); + stockReceiptOrderDO.setOperatorsBy(workUserId); + stockReceiptOrderDO.setOperatorsName(workUserName); + Long inOrderId = stockInOrder.getInOrderId(); + StockInOrder stock = stockInOrderService.getById(inOrderId); + String inOrderNumber = stock.getInOrderNumber(); + StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getOne(new LambdaQueryWrapper() + .eq(StockReceiptOrder::getInOrderNumber, inOrderNumber) + .eq(StockReceiptOrder::getDelFlag, 1), false); + if (stockReceiptOrder == null) { + throw new ServiceException("收货单不存在!"); + } + List ids = new ArrayList<>(); + ids.add(stockReceiptOrder.getReceiptOrderId()); + stockReceiptOrderDO.setReceiptOrderIds(ids); +// stockReceiptOrderApplicationService.taskDistribution(stockReceiptOrderDO); + DeliveTask deliveTask = deliveTaskService.getOne(new LambdaQueryWrapper() + .eq(DeliveTask::getTrackingNumber, stockReceiptOrder.getReceiptOrderNumber()) + .eq(DeliveTask::getDelFlag, 1)); + if (deliveTask != null) { + deliveTask.setOperatorsBy(workUserId); + deliveTask.setOperatorsName(workUserName); + deliveTask.setTaskStatus(2); + deliveTaskService.updateById(deliveTask); + } + + stockInOrderService.update(null, new LambdaUpdateWrapper() + .set(StockInOrder::getWorkUserId, workUserId) + .set(StockInOrder::getWorkUserName, workUserName) + .set(StockInOrder::getWorkTaskReceiveStatus, "1") + .eq(StockInOrder::getInOrderId, stockInOrder.getInOrderId())); + } + + public void removeTask(StockInOrderDO stockInOrder){ + Long inOrderId = stockInOrder.getInOrderId(); + String removeUserId = stockInOrder.getRemoveUserId(); + if (removeUserId == null) { + throw new ServiceException("移除任务用户ID为空!"); + } + if (inOrderId == null) { + throw new ServiceException("入库单不存在!"); + } + StockInOrder stock = stockInOrderService.getById(inOrderId); + if (stock == null) { + throw new ServiceException("入库单不存在!"); + } + String taskIssueUserId = stock.getTaskIssueUserId(); + if (taskIssueUserId == null) { + return; + } + String[] split = taskIssueUserId.split(","); + List taskIds = Arrays.asList(split); + if (taskIds != null && taskIds.size() > 0) { + // 删除匹配元素 + //taskIds.removeIf(str -> removeUserId.equals(str)); + taskIds = taskIds.stream() + .filter(str -> !Objects.equals(removeUserId, str)) + .collect(Collectors.toList()); + if (taskIds != null && taskIds.size() > 0) { + String newTaskIssueUserId = String.join(",", taskIds); + stock.setTaskIssueUserId(newTaskIssueUserId); + stockInOrderService.updateById(stock); + } else { + stockInOrderService.update(null ,new LambdaUpdateWrapper() + .set(StockInOrder::getTaskIssueUserId, null) + .eq(StockInOrder::getInOrderId, stockInOrder.getInOrderId())); + } + } else { + throw new ServiceException("当前订单没有任务人员!"); + } + + } + public void omsOrderAddDetail(List inMaterialDetails){ stockInOrderDomainService.omsOrderAddDetail(inMaterialDetails); } @@ -1795,7 +1960,10 @@ public class StockInOrderApplicationService { supplierParam(order); // 设置数据字典键值 setDataDict(order); - + + // 设置任务下发用户ID + String userId = stockInOrderMapper.queryWarehouseUserId(order.getOrganizationId(), order.getWarehouseId(), order.getTopOrganizationId()); + order.setTaskIssueUserId(userId); orderList.add(order); } @@ -1915,6 +2083,10 @@ public class StockInOrderApplicationService { if (stockInOrderDO.getWarehouseId() == null) { throw new ServiceException("仓库ID不能为空"); } + + //任务下发用户ID + String userIds = stockInOrderMapper.queryWarehouseUserId(stockInOrderDO.getOrganizationId(), stockInOrderDO.getWarehouseId(), stockInOrderDO.getTopOrganizationId()); + stockInOrderDO.setTaskIssueUserId(userIds); AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockInOrderDO.getWarehouseId()); if (ajaxResult == null) { throw new ServiceException("获取仓库信息失败:返回结果为空,仓库ID:" + stockInOrderDO.getWarehouseId()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index da4f96954..8e6556798 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.mhd.common.core.constant.SecurityConstants; import com.mhd.common.core.constant.SnowFlakeConstants; import com.mhd.common.core.domain.entity.R; @@ -26,6 +27,8 @@ import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; import com.mhd.system.api.domain.cache.SystemServiceCacheUtil; import com.mhd.system.api.model.LoginUser; import com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO; +import com.mhd.wms.domain.deliveTask.entity.DeliveTask; +import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService; import com.mhd.wms.domain.deliveryDetailsLink.entity.DeliveryDetailsLink; import com.mhd.wms.domain.deliveryDetailsLink.repository.facade.IDeliveryDetailsLinkService; import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; @@ -47,9 +50,13 @@ import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMateri import com.mhd.wms.domain.pickingMaterialDetail.repository.mapper.PickingMaterialDetailMapper; import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingAggByOutOrderRow; import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO; +import com.mhd.wms.domain.pickingOrder.entity.PickingOrder; +import com.mhd.wms.domain.pickingOrder.repository.facade.IPickingOrderService; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService; +import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; +import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper; @@ -109,6 +116,8 @@ public class StockOutOrderApplicationService { @Autowired private IPickingMaterialDetailService pickingMaterialDetailService; @Autowired + private IPickingOrderService pickingOrderService; + @Autowired private IReceiptOrderAccountService receiptOrderAccountService; @Autowired private IDeliveryDetailsLinkService deliveryDetailsLinkService; @@ -117,7 +126,11 @@ public class StockOutOrderApplicationService { @Autowired private StockOutOrderMapper stockOutOrderMapper; @Autowired + private StockInOrderMapper stockInOrderMapper; + @Autowired private PickingMaterialDetailMapper pickingMaterialDetailMapper; + @Autowired + private IDeliveTaskService deliveTaskService; private static final String PUSH_API_URL = "http://10.102.192.15/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "save_order_e"; private static final String VERIFY = "ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD"; @@ -294,14 +307,20 @@ public class StockOutOrderApplicationService { */ public Boolean insert(StockOutOrderDO stockOutOrderDO) { //设置仓库 - //setWarehouseInfo(stockOutOrderDO); + setWarehouseInfo(stockOutOrderDO); //设置货主信息 shipperParam(stockOutOrderDO); //设置客户信息 customerParam(stockOutOrderDO); - stockOutOrderDO.setOrderTypeCode("pu_tong_chu_ku"); - stockOutOrderDO.setBusinessType("pu_tong_chu_ku"); - stockOutOrderDO.setOrderTypeName("普通出库"); + if (stockOutOrderDO.getOrderTypeCode() == null) { + stockOutOrderDO.setOrderTypeCode("pu_tong_chu_ku"); + } + if (stockOutOrderDO.getBusinessType() == null) { + stockOutOrderDO.setBusinessType("pu_tong_chu_ku"); + } + if (stockOutOrderDO.getOrderTypeName() == null) { + stockOutOrderDO.setOrderTypeName("普通出库"); + } //设置数据字典键值 //setDataDict(stockOutOrderDO); return stockOutOrderDomainService.insert(stockOutOrderDO); @@ -311,6 +330,8 @@ public class StockOutOrderApplicationService { * 修改出库单 */ public Boolean update(StockOutOrderDO stockOutOrderDO) { + //设置仓库 + setWarehouseInfo(stockOutOrderDO); return stockOutOrderDomainService.update(stockOutOrderDO); } @@ -1128,6 +1149,28 @@ public class StockOutOrderApplicationService { return b; } + + public Boolean adjustPicking(StockOutOrderDO stockOutOrderDO){ + Boolean b = stockOutOrderDomainService.adjustPicking(stockOutOrderDO); + return b; + } + + public Boolean checkUpload(StockOutOrderDO stockOutOrderDO){ + //pda复核下发 +// String outOrderNumber = stockOutOrderDO.getOutOrderNumber(); +// StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper().lambda() +// .eq(StockOutOrder::getOutOrderNumber, outOrderNumber) +// .eq(StockOutOrder::getDelFlag, 1), false); +// stockOutOrderDO.setCheckOperatorsBy(stockOutOrder.getWorkUserId()); +// List outOrderIds = new ArrayList<>(); +// outOrderIds.add(stockOutOrder.getOutOrderId()); +// stockOutOrderDO.setOutOrderIds(outOrderIds); +// checkTaskDistribution(stockOutOrderDO); + + Boolean b = stockOutOrderDomainService.checkUpload(stockOutOrderDO); + return b; + } + public Boolean genPickingOrderByOms(StockOutOrderDO stockOutOrderDO){ Boolean b = stockOutOrderDomainService.genPickingOrderByOms(stockOutOrderDO); // List outOrderIds = stockOutOrderDO.getOutOrderIds(); @@ -1354,6 +1397,9 @@ public class StockOutOrderApplicationService { if (stockOutOrderDO.getWarehouseId() == null) { throw new ServiceException("仓库ID不能为空"); } + // 获取任务下发用户ID + String userId = stockInOrderMapper.queryWarehouseUserId(stockOutOrderDO.getOrganizationId(), stockOutOrderDO.getWarehouseId(), stockOutOrderDO.getTopOrganizationId()); + stockOutOrderDO.setTaskIssueUserId(userId); AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockOutOrderDO.getWarehouseId()); if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ throw new ServiceException("获取仓库信息失败"); @@ -1603,6 +1649,76 @@ public class StockOutOrderApplicationService { + public void acceptTask(StockOutOrder stockOutOrder){ + Long workUserId = stockOutOrder.getWorkUserId(); + String workUserName = stockOutOrder.getWorkUserName(); + if (workUserId == null || workUserName == null) { + throw new ServiceException("作业人员id或名称为空!"); + } + PickingOrder pickingOrder = pickingOrderService.getOne(new LambdaQueryWrapper() + .eq(PickingOrder::getOrderNumber, stockOutOrder.getOutOrderNumber()) + .eq(PickingOrder::getDelFlag, 1),false); + if (pickingOrder != null) { + DeliveTask deliveTask = deliveTaskService.getOne(new LambdaQueryWrapper() + .eq(DeliveTask::getTrackingNumber, pickingOrder.getPickingOrderNumber()) + .eq(DeliveTask::getDelFlag, 1)); + if (deliveTask != null) { + deliveTask.setOperatorsBy(workUserId); + deliveTask.setOperatorsName(workUserName); + deliveTask.setTaskStatus(2); + deliveTaskService.updateById(deliveTask); + } + } + + stockOutOrderService.update(null, new LambdaUpdateWrapper() + .set(StockOutOrder::getWorkUserId, workUserId) + .set(StockOutOrder::getWorkUserName, workUserName) + .set(StockOutOrder::getWorkTaskReceiveStatus, "1") + .eq(StockOutOrder::getOutOrderId, stockOutOrder.getOutOrderId())); + } + + public void removeTask(StockOutOrderDO stockOutOrder){ + Long outOrderId = stockOutOrder.getOutOrderId(); + String removeUserId = stockOutOrder.getRemoveUserId(); + if (removeUserId == null) { + throw new ServiceException("移除任务用户ID为空!"); + } + if (outOrderId == null) { + throw new ServiceException("出库单不存在!"); + } + StockOutOrder stock = stockOutOrderService.getById(outOrderId); + if (stock == null) { + throw new ServiceException("入库单不存在!"); + } + String taskIssueUserId = stock.getTaskIssueUserId(); + if (taskIssueUserId == null) { + return; + } + String[] split = taskIssueUserId.split(","); + List taskIds = Arrays.asList(split); + if (taskIds != null && taskIds.size() > 0) { + // 删除匹配元素 + //taskIds.removeIf(str -> removeUserId.equals(str)); + taskIds = taskIds.stream() + .filter(str -> !Objects.equals(removeUserId, str)) + .collect(Collectors.toList()); + if (taskIds != null && taskIds.size() > 0) { + String newTaskIssueUserId = String.join(",", taskIds); + stock.setTaskIssueUserId(newTaskIssueUserId); + stockOutOrderService.updateById(stock); + } else { + stockOutOrderService.update(null ,new LambdaUpdateWrapper() + .set(StockOutOrder::getTaskIssueUserId, null) + .eq(StockOutOrder::getOutOrderId, stockOutOrder.getOutOrderId())); + } + } else { + throw new ServiceException("当前订单不存在任务人员!"); + } + + } + + + public void omsOrderAdd(StockOutOrder stockOutOrder){ stockOutOrderDomainService.omsOrderAdd(stockOutOrder); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/entity/InMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/entity/InMaterialDetail.java index dbd947f6c..3d592e406 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/entity/InMaterialDetail.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/entity/InMaterialDetail.java @@ -414,4 +414,8 @@ public class InMaterialDetail extends BaseVOEntity { private BigDecimal erpPriceGw; //申报总价 private BigDecimal amountGw; + + //仓码简易模式收货上架 + private BigDecimal collectQuantity; + private String shelfJson; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/po/InMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/po/InMaterialDetailPO.java index 3b4b83ccb..b53b7a071 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/po/InMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/po/InMaterialDetailPO.java @@ -439,4 +439,8 @@ public class InMaterialDetailPO extends StockInOrderBasePO { //申报总价 private BigDecimal amountGw; private String khdm; + + //仓码简易模式收货上架 + private BigDecimal collectQuantity; + private String shelfJson; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/todo/InMaterialDetailDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/todo/InMaterialDetailDO.java index 13f27b4b4..10474e43a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/todo/InMaterialDetailDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inMaterialDetail/repository/todo/InMaterialDetailDO.java @@ -404,4 +404,8 @@ public class InMaterialDetailDO extends StockInOrderBaseDO { private BigDecimal erpPriceGw; //申报总价 private BigDecimal amountGw; + + //仓码简易模式收货上架 + private BigDecimal collectQuantity; + private String shelfJson; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java index 1a5115a0f..830f67c50 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java @@ -528,4 +528,17 @@ public class OutMaterialDetail extends BaseVOEntity { private String bondInvtNoGw; private String whNoGw; private String seatNoGw; + + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file 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 982a283eb..f37fdea55 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 @@ -568,4 +568,16 @@ public class OutMaterialDetailPO extends StockOutOrderBaseDO { private String whNoGw; private String seatNoGw; private String khdm; + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java index 1dd1cc9aa..ea24b9fe7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java @@ -520,4 +520,16 @@ public class OutMaterialDetailDO extends BaseVOEntity { private String bondInvtNoGw; private String whNoGw; private String seatNoGw; + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java index 0da6467d4..79d8b2dd6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java @@ -382,4 +382,14 @@ public class StockInOrder extends BaseVOEntity { @ApiModelProperty("推送人姓名") private String pushByName; + + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java index 7e447d800..15c9d20b5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java @@ -30,4 +30,6 @@ public interface StockInOrderMapper extends BaseMapper List queryNoticePrintDetail(StockInOrderDO stockInOrderDO); StockInOrderPO selectByInOrderNumber(@Param("inOrderNumber") String inOrderNumber); -} + + String queryWarehouseUserId(@Param("organizationId") Long organizationId, @Param("warehouseId") Long warehouseId, @Param("topOrganizationId") Long topOrganizationId); +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java index 19a78ed27..ea9facb43 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java @@ -444,4 +444,13 @@ public class StockInOrderPO extends BaseVOEntity { private String pushByName; private String khdm; + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java index 4f131966d..24a41d5ce 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java @@ -428,4 +428,24 @@ public class StockInOrderDO extends BaseVOEntity { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTimeTo; + + //仓码pda查询参数 + @ApiModelProperty("pda查询用户ID") + private Long queryUserId; + @ApiModelProperty("状态列表") + private List statusList; + + + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; + + @ApiModelProperty("任务移除用户ID") + private String removeUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java index 32a91bbe5..8abce3094 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java @@ -1,14 +1,19 @@ package com.mhd.wms.domain.stockInOrder.service; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.mhd.common.core.constant.SnowFlakeConstants; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.utils.IgnoreNullUtil; import com.mhd.common.core.utils.OrderSequence; import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.utils.bean.BeanUtils; +import com.mhd.common.core.utils.uuid.IdGenerator; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.SystemServiceFeign; @@ -27,9 +32,11 @@ import com.mhd.wms.domain.materialWarehouseControl.repository.facade.IMaterialWa import com.mhd.wms.domain.materialWarehouseControl.repository.po.MaterialWarehouseControlPO; import com.mhd.wms.domain.qualityInspection.repository.facade.IQualityInspectionService; import com.mhd.wms.domain.qualityInspection.repository.todo.QualityInspectionDO; +import com.mhd.wms.domain.receiptMaterialDetail.entity.ReceiptMaterialDetail; import com.mhd.wms.domain.receiptMaterialDetail.repository.facade.IReceiptMaterialDetailService; import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO; import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO; +import com.mhd.wms.domain.shelfMaterialDetail.entity.ShelfMaterialDetail; import com.mhd.wms.domain.shelfMaterialDetail.repository.facade.IShelfMaterialDetailService; import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO; import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO; @@ -37,9 +44,13 @@ import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; +import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder; +import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrderService; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService; +import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; +import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService; @@ -50,8 +61,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -81,12 +95,18 @@ public class StockInOrderDomainService { private IMaterialGoodsRuleService materialGoodsRuleService; @Autowired private IMaterialWarehouseControlService materialWarehouseControlService; - @Autowired + @Resource private SystemServiceFeign systemServiceFeign; @Autowired private IReceiptMaterialDetailService receiptMaterialDetailService; @Autowired private IShelfMaterialDetailService shelfMaterialDetailService; + @Autowired + private IStockReceiptOrderService stockReceiptOrderService; + @Autowired + private IStockShelfOrderService stockShelfOrderService; + @Autowired + private IdGenerator idGenerator; /** * 分页查询入库单列表 @@ -107,7 +127,7 @@ public class StockInOrderDomainService { // //设置物料信息 // setMaterialDetailInfo(stockInOrderDO); // //统计总物料种数 -// stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size()); + stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size()); // //统计总计划数 // BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); // stockInOrderDO.setQuantity(quantity); @@ -483,6 +503,295 @@ public class StockInOrderDomainService { .in(StockInOrder::getInOrderId, stockInOrderDO.getInOrderIds())); } + @Transactional(rollbackFor = Exception.class) + public Boolean receiptEasyMode(StockInOrderDO stockInOrderDO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); + String inOrderNumber = stockInOrderDO.getInOrderNumber(); + // 查询当天创建的入库单数量,用于生成batchNo + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String todayStr = dateFormat.format(new Date()); + String todayStart = todayStr + " 00:00:00"; + String todayEnd = todayStr + " 23:59:59"; + SimpleDateFormat fullDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + Date todayStartDate = null; + try { + todayStartDate = fullDateFormat.parse(todayStart); + } catch (ParseException e) { + throw new RuntimeException(e); + } + Date todayEndDate = null; + try { + todayEndDate = fullDateFormat.parse(todayEnd); + } catch (ParseException e) { + throw new RuntimeException(e); + } + long todayStockInOrderCount = stockInOrderService.count(new LambdaQueryWrapper() + .ge(StockInOrder::getCreateTime, todayStartDate) + .le(StockInOrder::getCreateTime, todayEndDate) + .eq(StockInOrder::getDelFlag, 1)); + String batchNo = "PC"+inOrderNumber+"-"+todayStockInOrderCount; + List materialDetailList = stockInOrderDO.getMaterialDetailList(); + List receiptMaterialDetailList = materialDetailList.stream() + .filter(m -> m.getCollectQuantity() != null && m.getCollectQuantity().compareTo(BigDecimal.ZERO) != 0) + .collect(Collectors.toList()); + if (receiptMaterialDetailList!=null && receiptMaterialDetailList.size()>0) { + for (InMaterialDetailDO inMaterialDetailDO : receiptMaterialDetailList) { + BigDecimal collectQuantity = inMaterialDetailDO.getCollectQuantity(); + Long materialBaseInfoId = inMaterialDetailDO.getMaterialBaseInfoId(); + Long uniqueId = inMaterialDetailDO.getUniqueId(); + + InMaterialDetail materialDetail = materialDetailService.getById(inMaterialDetailDO.getMaterialDetailId()); + materialDetail.setCollectQuantity(collectQuantity); + materialDetailService.updateById(materialDetail); + + ReceiptMaterialDetail receiptMaterialDetail = receiptMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(ReceiptMaterialDetail::getMaterialBaseInfoId, materialBaseInfoId) + .eq(ReceiptMaterialDetail::getInUniqueId, uniqueId) + .eq(ReceiptMaterialDetail::getDelFlag, 1), false); + BigDecimal alreadyReceiptQuantity = receiptMaterialDetail.getAlreadyReceiptQuantity(); + if (alreadyReceiptQuantity != null && alreadyReceiptQuantity.compareTo(collectQuantity) == 0) { + continue; + } + receiptMaterialDetail.setReceiptQuantity(collectQuantity); + receiptMaterialDetail.setAlreadyReceiptQuantity(collectQuantity); + + receiptMaterialDetail.setBatchNo(batchNo); + BigDecimal quantity = receiptMaterialDetail.getQuantity(); + if (quantity != null && quantity.compareTo(BigDecimal.ZERO) == 0) { + receiptMaterialDetail.setReceiptStatus(3); + } + receiptMaterialDetailService.updateById(receiptMaterialDetail); + + StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getOne(new QueryWrapper().lambda() + .eq(StockReceiptOrder::getInOrderNumber, inOrderNumber) + .eq(StockReceiptOrder::getDelFlag, 1), false); + if (stockReceiptOrder != null) { + stockReceiptOrder.setStatus(2); + stockReceiptOrder.setReceiptQuantity(stockReceiptOrder.getReceiptQuantity().add(collectQuantity)); + stockReceiptOrder.setBatchNo(batchNo); + stockReceiptOrderService.updateById(stockReceiptOrder); + } + + StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper().lambda() + .eq(StockInOrder::getInOrderNumber, inOrderNumber) + .eq(StockInOrder::getDelFlag, 1), false); + if (stockInOrder != null) { + stockInOrder.setStatus(3); + stockInOrderService.updateById(stockInOrder); + } + List list = stockShelfOrderService.list(new QueryWrapper().lambda() + .eq(StockShelfOrder::getInOrderNumber, inOrderNumber) + .eq(StockShelfOrder::getDelFlag, 1)); + StockShelfOrder stockShelfOrder = new StockShelfOrder(); + if (list!=null && list.size()>0) { + stockShelfOrder = list.get(0); + } else { + BeanUtils.copyProperties(stockReceiptOrder, stockShelfOrder); + stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ")); + stockShelfOrder.setBatchNo(batchNo); + stockShelfOrderService.save(stockShelfOrder); + } + log.info("生成上架单成功,上架单编号:{}", stockShelfOrder.getShelfOrderNumber()); + ShelfMaterialDetail shelfMaterialDetail = new ShelfMaterialDetail(); + ShelfMaterialDetail one = shelfMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(ShelfMaterialDetail::getMaterialBaseInfoId, materialBaseInfoId) + .eq(ShelfMaterialDetail::getInUniqueId, uniqueId) + .eq(ShelfMaterialDetail::getLevel, 1) + .eq(ShelfMaterialDetail::getDelFlag, 1), false); + if (one != null) { + one.setQuantity(collectQuantity); + one.setBatchNo(batchNo); +// one.setLotNumber(receiptMaterialDetail.getLotNo()); + shelfMaterialDetailService.updateById(one); + } else { + BeanUtils.copyProperties(inMaterialDetailDO, shelfMaterialDetail); + shelfMaterialDetail.setShelfOrderNumber(stockShelfOrder.getShelfOrderNumber()); + shelfMaterialDetail.setQuantity(collectQuantity); + shelfMaterialDetail.setInUniqueId(uniqueId); + shelfMaterialDetail.setReceiptUniqueId(receiptMaterialDetail.getUniqueId()); + shelfMaterialDetail.setBatchNo(batchNo); + shelfMaterialDetail.setLotNumber(receiptMaterialDetail.getLotNo()); + shelfMaterialDetailService.save(shelfMaterialDetail); + } + + log.info("生成上架单成功,上架单编号:{},上架单明细编号:{}", stockShelfOrder.getShelfOrderNumber(), shelfMaterialDetail.getShelfOrderNumber()); + } + } + return true; + } + + @Transactional(rollbackFor = Exception.class) + public Boolean shelfEasyMode(StockInOrderDO stockInOrderDO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + + String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); + String inOrderNumber = stockInOrderDO.getInOrderNumber(); + List materialDetailList = stockInOrderDO.getMaterialDetailList(); + List receiptMaterialDetailList = materialDetailList.stream() + .filter(m -> StringUtils.isNotBlank(m.getShelfJson())) + .collect(Collectors.toList()); + if (receiptMaterialDetailList!=null && receiptMaterialDetailList.size()>0) { + for (InMaterialDetailDO inMaterialDetailDO : receiptMaterialDetailList) { + Long materialDetailId1 = inMaterialDetailDO.getMaterialDetailId(); + Long materialBaseInfoId = inMaterialDetailDO.getMaterialBaseInfoId(); + Long uniqueId = inMaterialDetailDO.getUniqueId(); + String shelfJson = inMaterialDetailDO.getShelfJson(); + List> shelfList = JSON.parseObject(shelfJson, new TypeReference>>(){}); + StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper().lambda() + .eq(StockInOrder::getInOrderNumber, inOrderNumber) + .eq(StockInOrder::getDelFlag, 1), false); + if (stockInOrder != null) { + stockInOrder.setStatus(4); + stockInOrderService.updateById(stockInOrder); + } + int index=0; + for (Map stringObjectMap : shelfList) { + Object shelvesQuantityObj = stringObjectMap.get("shelvesQuantity"); + BigDecimal shelvesQuantity = shelvesQuantityObj != null ? new BigDecimal(String.valueOf(shelvesQuantityObj)) : null; + String shelfOrderNumber = (String) stringObjectMap.get("shelfOrderNumber"); + String warehouseCode = (String) stringObjectMap.get("warehouseCode"); + String warehouseName = (String) stringObjectMap.get("warehouseName"); + String storageCode = (String) stringObjectMap.get("storageCode"); + String storageName = (String) stringObjectMap.get("storageName"); + String storageLocationCode = (String) stringObjectMap.get("storageLocationCode"); + String storageLocationName = (String) stringObjectMap.get("storageLocationName"); + Object warehouseIdObj = stringObjectMap.get("warehouseId"); + Long warehouseId = warehouseIdObj != null ? Long.valueOf(String.valueOf(warehouseIdObj)) : null; + Object storageSectionIdObj = stringObjectMap.get("storageSectionId"); + Long storageSectionId = storageSectionIdObj != null ? Long.valueOf(String.valueOf(storageSectionIdObj)) : null; + Object storageLocationIdObj = stringObjectMap.get("storageLocationId"); + Long storageLocationId = storageLocationIdObj != null ? Long.valueOf(String.valueOf(storageLocationIdObj)) : null; +// Integer level = (Integer) stringObjectMap.get("level"); + + // 如果 materialDetailId 不为空,则更新上架单明细 +// if (stringObjectMap.containsKey("materialDetailId")) { +// Long materialDetailId = (Long) stringObjectMap.get("materialDetailId"); +// ShelfMaterialDetail detail = shelfMaterialDetailService.getById(materialDetailId); +// detail.setShelvesQuantity(shelvesQuantity); +// detail.setAlreadyShelvesQuantity(shelvesQuantity); +// detail.setWarehouseId(warehouseId); +// detail.setStorageSectionId(storageSectionId); +// detail.setStorageLocationId(storageLocationId); +// detail.setWarehouseCode(warehouseCode); +// detail.setWarehouseName(warehouseName); +// detail.setStorageCode(storageCode); +// detail.setStorageName(storageName); +// detail.setStorageLocationCode(storageLocationCode); +// detail.setStorageLocationName(storageLocationName); +// shelfMaterialDetailService.updateById(detail); +// continue; +// } + + StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getOne(new LambdaUpdateWrapper() + .eq(StockReceiptOrder::getInOrderNumber, inOrderNumber) + .eq(StockReceiptOrder::getDelFlag, 1), false); + + // 如果 materialDetailId 为空,则创建上架单明细 + List list = stockShelfOrderService.list(new QueryWrapper().lambda() + .eq(StockShelfOrder::getInOrderNumber, inOrderNumber) + .eq(StockShelfOrder::getDelFlag, 1)); + StockShelfOrder stockShelfOrder = new StockShelfOrder(); + if (list!=null && list.size()>0) { + stockShelfOrder = list.get(0); + stockShelfOrder.setStatus(2); + stockShelfOrderService.updateById(stockShelfOrder); + } else { + throw new RuntimeException("未找到上架单!"); + } + ShelfMaterialDetail one = shelfMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(ShelfMaterialDetail::getMaterialBaseInfoId, materialBaseInfoId) + .eq(ShelfMaterialDetail::getInUniqueId, uniqueId) + .eq(ShelfMaterialDetail::getDelFlag, 1), false); + shelfMaterialDetailService.remove(new QueryWrapper().lambda() + .eq(ShelfMaterialDetail::getLevel, 2) + .ne(ShelfMaterialDetail::getParentUniqueId, 0l) + .eq(ShelfMaterialDetail::getDelFlag, 1)); + if (one != null) { + if (index == 0) { + one.setShelvesQuantity(shelvesQuantity); + one.setAlreadyShelvesQuantity(shelvesQuantity); + one.setWarehouseId(warehouseId); + one.setStorageSectionId(storageSectionId); + one.setStorageLocationId(storageLocationId); + one.setShelfOrderNumber(stockShelfOrder.getShelfOrderNumber()); + one.setWarehouseCode(warehouseCode); + one.setWarehouseName(warehouseName); + one.setStorageCode(storageCode); + one.setStorageName(storageName); + one.setStorageLocationCode(storageLocationCode); + one.setStorageLocationName(storageLocationName); + one.setLevel(1); + one.setParentUniqueId(0l); + one.setShelvesStatus(3); + shelfMaterialDetailService.updateById(one); + stringObjectMap.put("materialDetailId", one.getMaterialDetailId()); + stringObjectMap.put("level",1); + } else { + ShelfMaterialDetail shelfMaterialDetail = new ShelfMaterialDetail(); + BeanUtils.copyProperties(one, shelfMaterialDetail); + shelfMaterialDetail.setQuantity(BigDecimal.ZERO); + shelfMaterialDetail.setShelvesQuantity(shelvesQuantity); + shelfMaterialDetail.setAlreadyShelvesQuantity(shelvesQuantity); + shelfMaterialDetail.setShelfOrderNumber(stockShelfOrder.getShelfOrderNumber()); + shelfMaterialDetail.setWarehouseCode(warehouseCode); + shelfMaterialDetail.setWarehouseName(warehouseName); + shelfMaterialDetail.setStorageCode(storageCode); + shelfMaterialDetail.setStorageName(storageName); + shelfMaterialDetail.setStorageLocationCode(storageLocationCode); + shelfMaterialDetail.setStorageLocationName(storageLocationName); + shelfMaterialDetail.setStorageSectionId(storageSectionId); + shelfMaterialDetail.setStorageLocationId(storageLocationId); + shelfMaterialDetail.setLevel(2); + shelfMaterialDetail.setParentUniqueId(one.getUniqueId()); + shelfMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); + shelfMaterialDetail.setInUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); + shelfMaterialDetail.setReceiptUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); + shelfMaterialDetail.setShelvesStatus(3); + shelfMaterialDetail.setLotNumber(one.getLotNumber()); + if (stockReceiptOrder!= null) { + shelfMaterialDetail.setBatchNo(stockReceiptOrder.getBatchNo()); + } + shelfMaterialDetailService.save(shelfMaterialDetail); + stringObjectMap.put("materialDetailId", shelfMaterialDetail.getMaterialDetailId()); + stringObjectMap.put("level",2 ); + } + } else { + throw new RuntimeException("未找到上架单明细!"); + } + index++; + } + InMaterialDetail inMaterialDetail = materialDetailService.getById(materialDetailId1); + inMaterialDetail.setShelfJson(JSON.toJSONString(shelfList)); + materialDetailService.updateById(inMaterialDetail); + } + } + StockShelfOrder stockShelfOrder = stockShelfOrderService.getOne(new QueryWrapper().lambda() + .eq(StockShelfOrder::getInOrderNumber, inOrderNumber) + .eq(StockShelfOrder::getDelFlag, 1), false); + if (stockShelfOrder != null) { + String shelfOrderNumber = stockShelfOrder.getShelfOrderNumber(); + List list = shelfMaterialDetailService.list(new LambdaQueryWrapper() + .eq(ShelfMaterialDetail::getShelfOrderNumber, shelfOrderNumber) + .eq(ShelfMaterialDetail::getDelFlag, 1)); + if (list!=null&&list.size() > 0) { + BigDecimal quantity = BigDecimal.ZERO; + for (ShelfMaterialDetail shelfMaterialDetail : list) { + quantity = quantity.add(shelfMaterialDetail.getAlreadyShelvesQuantity()); + } + stockShelfOrder.setShelvesQuantity(quantity); + stockShelfOrderService.updateById(stockShelfOrder); + } + } + return true; + } + /** * @description 取消入库单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java index 0d67f7fa2..ca13c0772 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java @@ -424,4 +424,14 @@ public class StockOutOrder extends BaseVOEntity { @ApiModelProperty("推送人姓名") private String pushByName; + + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java index 8fb6472db..ede734c42 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java @@ -25,6 +25,7 @@ import com.mhd.wms.domain.materialBaseInfo.repository.mapper.MaterialBaseInfoMap import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO; import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO; import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO; +import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper; @@ -61,6 +62,8 @@ public class ExcelParseService { private StockOutOrderDomainService stockOutOrderDomainService; @Autowired private StockOutOrderMapper stockOutOrderMapper; + @Autowired + private StockInOrderMapper stockInOrderMapper; @Resource private UserServiceFeign userServiceFeign; /** @@ -114,6 +117,7 @@ public class ExcelParseService { stockOutOrder.setWarehouseName(warehouseName); stockOutOrder.setWarehouseCode(warehouseCode); stockOutOrder.setWarehouseId(warehouseId); + stockOutOrder.setSalesmanId(String.valueOf(loginUser.getUserPo().getUserId())); stockOutOrder.setSalesmanName(loginUser.getUserPo().getUserName()); String settlementCurrency = stockOutOrderMapper.getSettlementCurrency(shipperId); @@ -124,6 +128,9 @@ public class ExcelParseService { stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId()); stockOutOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName()); } + // 获取任务下发用户ID + String userId = stockInOrderMapper.queryWarehouseUserId(stockOutOrder.getOrganizationId(), stockOutOrder.getWarehouseId(), stockOutOrder.getTopOrganizationId()); + stockOutOrder.setTaskIssueUserId(userId); initParam(stockOutOrder); // 导入出库单时,如果出库单类型为空,默认设置为普通出库 if (StringUtils.isBlank(stockOutOrder.getOrderTypeCode())) { diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java index 413f72731..73ce5b5bf 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java @@ -451,4 +451,13 @@ public class StockOutOrderPO extends BaseVOEntity { @ApiModelProperty("推送人姓名") private String pushByName; private String khdm; + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java index adece8789..559c21fe9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java @@ -492,4 +492,25 @@ public class StockOutOrderDO extends BaseVOEntity { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTimeTo; + + @ApiModelProperty("作业人用户ID") + private Long workUserId; + + @ApiModelProperty("作业人用户") + private String workUserName; + + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; + + //仓码pda查询参数 + @ApiModelProperty("pda查询用户ID") + private Long queryUserId; + @ApiModelProperty("状态列表") + private List statusList; + + @ApiModelProperty("任务移除用户ID") + private String removeUserId; } \ No newline at end of file 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 070410be6..4c106af4b 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 @@ -19,12 +19,19 @@ import com.mhd.system.api.domain.BatchDetailFeignPO; import com.mhd.system.api.domain.DeliveryDetailsLink; import com.mhd.system.api.domain.PackDetailFeignPO; import com.mhd.system.api.model.LoginUser; +import com.mhd.wms.application.service.handoverTaskOrder.HandoverTaskOrderApplicationService; +import com.mhd.wms.application.service.pickingOrder.PickingOrderApplicationService; +import com.mhd.wms.application.service.reviewOrder.ReviewOrderApplicationService; +import com.mhd.wms.application.service.stockOutOrder.StockOutOrderApplicationService; import com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO; +import com.mhd.wms.domain.deliveTask.entity.DeliveTask; import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService; import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO; import com.mhd.wms.domain.deliveryDetailsLink.repository.facade.IDeliveryDetailsLinkService; +import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; +import com.mhd.wms.domain.handoverTaskOrder.service.HandoverTaskOrderDomainService; import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; import com.mhd.wms.domain.inventoryAdjustmentRecord.entity.InventoryAdjustmentRecord; @@ -68,8 +75,15 @@ import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService; import com.mhd.wms.domain.pushSyncBms.PushSyncBmsDomainService; import com.mhd.wms.domain.replenishmentNotice.repository.todo.ReplenishmentNoticeDO; import com.mhd.wms.domain.replenishmentNotice.service.ReplenishmentNoticeDomainService; +import com.mhd.wms.domain.reviewOrder.entity.ReviewMaterialDetail; +import com.mhd.wms.domain.reviewOrder.entity.ReviewOrder; +import com.mhd.wms.domain.reviewOrder.repository.mapper.ReviewMaterialDetailMapper; +import com.mhd.wms.domain.reviewOrder.repository.mapper.ReviewOrderMapper; +import com.mhd.wms.domain.reviewOrder.repository.po.ReviewMaterialDetailPO; +import com.mhd.wms.domain.reviewOrder.repository.todo.ReviewOrderDO; import com.mhd.wms.domain.statementStatistics.po.ImmediateInventoryPO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; +import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockInOrder.service.StockInOrderDomainService; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; @@ -112,6 +126,8 @@ public class StockOutOrderDomainService { @Autowired private IHandoverTaskOrderService handoverTaskOrderService; @Autowired + private HandoverTaskOrderDomainService handoverTaskOrderDomainService; + @Autowired private IOutOrderAbnormalService outOrderAbnormalService; @Autowired private PickingOrderDomainService pickingOrderDomainService; @@ -149,6 +165,19 @@ public class StockOutOrderDomainService { private IPickingMaterialDetailService pickingMaterialDetailService; @Autowired private IPickingOrderService pickingOrderService; + @Autowired + private StockInOrderMapper stockInOrderMapper; + @Autowired + private PickingOrderApplicationService pickingOrderApplicationService; + @Autowired + private HandoverTaskOrderApplicationService handoverTaskOrderApplicationService; + @Autowired + private ReviewOrderApplicationService reviewOrderApplicationService; + @Autowired + private ReviewOrderMapper reviewOrderMapper; + @Autowired + private ReviewMaterialDetailMapper reviewMaterialDetailMapper; + /** * 分页查询出库单列表 */ @@ -166,7 +195,7 @@ public class StockOutOrderDomainService { //设置物料信息 //setMaterialDetailInfo(stockOutOrderDO); //统计种类 - //stockOutOrderDO.setMaterialQuantity(stockOutOrderDO.getMaterialDetailList().size()); + stockOutOrderDO.setMaterialQuantity(stockOutOrderDO.getMaterialDetailList().size()); //统计总数量 BigDecimal quantity = stockOutOrderDO.getMaterialDetailList().stream().map(OutMaterialDetailDO::getOutboundQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); stockOutOrderDO.setQuantity(quantity); @@ -864,6 +893,205 @@ public class StockOutOrderDomainService { return inserted; } + @Transactional(rollbackFor = Exception.class) + public Boolean adjustPicking(StockOutOrderDO stockOutOrderDO){ + String outOrderNumber = stockOutOrderDO.getOutOrderNumber(); + StockOutOrder stockOutOrder = stockOutOrderService.getOne(new LambdaQueryWrapper() + .eq(StockOutOrder::getOutOrderNumber, outOrderNumber) + .eq(StockOutOrder::getDelFlag, 1), false); + stockOutOrder.setStatus(6); + stockOutOrder.setUpdateTime(new Date()); + stockOutOrderService.updateById(stockOutOrder); + PickingOrder pickingOrder = pickingOrderService.getOne(new QueryWrapper().lambda() + .eq(PickingOrder::getOrderNumber, outOrderNumber) + .eq(PickingOrder::getDelFlag, 1), false); + if (pickingOrder == null) { + throw new RuntimeException("拣货单不存在!"); + } + pickingOrder.setStatus(2); + pickingOrderService.updateById(pickingOrder); + + //拣货任务下发 + PickingOrderDO pickingOrderDO = new PickingOrderDO(); + pickingOrderDO.setOperatorsBy(stockOutOrder.getWorkUserId()); + List ids = new ArrayList<>(); + ids.add(pickingOrder.getPickingOrderId()); + pickingOrderDO.setPickingOrderIdList(ids); +// pickingOrderApplicationService.allDistribution(pickingOrderDO); + + List materialDetailList = stockOutOrderDO.getMaterialDetailList(); + if (CollectionUtils.isEmpty(materialDetailList)) { + throw new RuntimeException("出库单明细不存在!"); + } + List pickingMaterialDetailList = materialDetailList.stream() + .filter(m -> m.getOutWeight() != null || m.getOutVolume() != null || m.getOutQuantity() != null) + .collect(Collectors.toList()); + if (pickingMaterialDetailList != null && pickingMaterialDetailList.size() > 0) { + for (OutMaterialDetailDO outMaterialDetailDO : pickingMaterialDetailList) { + Long uniqueId = outMaterialDetailDO.getUniqueId(); + BigDecimal outWeight = outMaterialDetailDO.getOutWeight(); + BigDecimal outVolume = outMaterialDetailDO.getOutVolume(); + BigDecimal outQuantity = outMaterialDetailDO.getOutQuantity(); + PickingMaterialDetail pickingMaterialDetail = pickingMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(PickingMaterialDetail::getOutUniqueId, uniqueId) + .eq(PickingMaterialDetail::getDelFlag, 1), false); + if (pickingMaterialDetail != null) { + pickingMaterialDetail.setWeightLimit(outWeight); + pickingMaterialDetail.setTotalNetWeight(outWeight); + pickingMaterialDetail.setTotalGrossWeight(outVolume); + pickingMaterialDetail.setVolumeLimit(outVolume); + pickingMaterialDetail.setTotalVolume(outVolume); + pickingMaterialDetail.setPickingQuantity(outQuantity == null || outQuantity.compareTo(BigDecimal.ZERO) == 0 ? outMaterialDetailDO.getOutQuantity() : outQuantity); + pickingMaterialDetail.setAlreadyPickingQuantity(outQuantity == null || outQuantity.compareTo(BigDecimal.ZERO) == 0 ? outMaterialDetailDO.getOutQuantity() : outQuantity); + pickingMaterialDetailService.updateById(pickingMaterialDetail); + OutMaterialDetail outMaterialDetail = outMaterialDetailService.getOne(new LambdaQueryWrapper() + .eq(OutMaterialDetail::getUniqueId, uniqueId) + .eq(OutMaterialDetail::getDelFlag, 1), false); + if (outMaterialDetail != null) { + outMaterialDetail.setOutWeight(outWeight); + outMaterialDetail.setOutVolume(outVolume); + outMaterialDetail.setOutQuantity(outQuantity == null || outQuantity.compareTo(BigDecimal.ZERO) == 0 ? outMaterialDetailDO.getOutQuantity() : outQuantity); + outMaterialDetailService.updateById(outMaterialDetail); + } + } + } + } + return Boolean.TRUE; + } + + @Transactional(rollbackFor = Exception.class) + public Boolean checkUpload(StockOutOrderDO stockOutOrderDO){ + String outOrderNumber = stockOutOrderDO.getOutOrderNumber(); + StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper().lambda() + .eq(StockOutOrder::getOutOrderNumber, outOrderNumber) + .eq(StockOutOrder::getDelFlag, 1), false); + if (stockOutOrder == null) { + throw new RuntimeException("出库单不存在!"); + } + PickingOrder pickingOrder = pickingOrderService.getOne(new QueryWrapper().lambda() + .eq(PickingOrder::getOrderNumber, outOrderNumber) + .eq(PickingOrder::getDelFlag, 1), false); + if (pickingOrder == null) { + throw new RuntimeException("拣货单不存在!"); + } + PickingOrderDO pickingOrderDO = new PickingOrderDO(); + pickingOrderDO.setType(1); + pickingOrderDO.setPickingOrderId(pickingOrder.getPickingOrderId()); + pickingOrderDomainService.completePicking(pickingOrderDO); + DeliveTask pickdeliveTask = deliveTaskService.getOne(new LambdaQueryWrapper() + .eq(DeliveTask::getTrackingNumber, pickingOrder.getPickingOrderNumber()) + .eq(DeliveTask::getDelFlag, 1)); + if (pickdeliveTask != null) { + pickdeliveTask.setOperatorsBy(stockOutOrder.getWorkUserId()); + pickdeliveTask.setOperatorsName(stockOutOrder.getWorkUserName()); + pickdeliveTask.setTaskStatus(2); + deliveTaskService.updateById(pickdeliveTask); + } + + //复核 +// ReviewOrderDO reviewOrderDO = new ReviewOrderDO(); +// List materialDetailList = stockOutOrderDO.getMaterialDetailList(); +// if (materialDetailList != null && materialDetailList.size() > 0) { +// for (OutMaterialDetailDO outMaterialDetailDO : materialDetailList) { +// Long uniqueId = outMaterialDetailDO.getUniqueId(); +// PickingMaterialDetail pickingMaterialDetail = pickingMaterialDetailService.getOne(new QueryWrapper().lambda() +// .eq(PickingMaterialDetail::getOutUniqueId, uniqueId) +// .eq(PickingMaterialDetail::getDelFlag, 1), false); +// if (pickingMaterialDetail != null) { +// outMaterialDetailDO.setActualQuantity(pickingMaterialDetail.getPickingQuantity()); +// outMaterialDetailDO.setCheckArea(pickingMaterialDetail.getTotalArea()); +// outMaterialDetailDO.setCheckVolume(pickingMaterialDetail.getTotalVolume()); +// outMaterialDetailDO.setCheckNetWeight(pickingMaterialDetail.getTotalNetWeight()); +// outMaterialDetailDO.setCheckGrossWeight(pickingMaterialDetail.getTotalGrossWeight()); +// } +// } +// } +// stockOutOrderDO.setMaterialDetailList(materialDetailList); +// batchCheck(stockOutOrderDO); +// checkConfirm(stockOutOrderDO); + ReviewOrderDO cmd1 = new ReviewOrderDO(); + List reviewOrders = reviewOrderMapper.selectList(new QueryWrapper().lambda() + .eq(ReviewOrder::getOutOrderId, stockOutOrderDO.getOutOrderId()) + .eq(ReviewOrder::getDelFlag, 1)); + if (reviewOrders != null && reviewOrders.size() > 0) { + ReviewOrder reviewOrder = reviewOrders.get(0); + BeanUtils.copyProperties(reviewOrder,cmd1); + List details = new ArrayList<>(); + List materialDetailList = stockOutOrderDO.getMaterialDetailList(); + // 将每个明细的children提取出来,与父级合并为一个扁平list + List flatMaterialDetailList = new ArrayList<>(); + for (OutMaterialDetailDO detail : materialDetailList) { + flatMaterialDetailList.add(detail); + if (!CollectionUtils.isEmpty(detail.getChildren())) { + flatMaterialDetailList.addAll(detail.getChildren()); + } + } + materialDetailList = flatMaterialDetailList; + + for (OutMaterialDetailDO outMaterialDetailDO : materialDetailList) { + ReviewMaterialDetailPO detailPO = new ReviewMaterialDetailPO(); + Long materialDetailId = outMaterialDetailDO.getMaterialDetailId(); + ReviewMaterialDetail reviewMaterialDetailPO = reviewMaterialDetailMapper.selectOne(new QueryWrapper().lambda() + .eq(ReviewMaterialDetail::getMaterialDetailId, materialDetailId) + .eq(ReviewMaterialDetail::getDelFlag, 1)); +// reviewMaterialDetailPO.setReviewedQty(BigDecimal.ZERO); + reviewMaterialDetailPO.setReviewQtyEa(reviewMaterialDetailPO.getMaterialPlanQty()); + reviewMaterialDetailPO.setVolumeCbm(outMaterialDetailDO.getOutVolume()); + reviewMaterialDetailPO.setNetWeightKg(outMaterialDetailDO.getOutWeight()); + reviewMaterialDetailPO.setGrossWeightKg(outMaterialDetailDO.getOutVolume()); + BeanUtils.copyProperties(reviewMaterialDetailPO, detailPO); + details.add(detailPO); + } + cmd1.setDetails(details); + } + + + reviewOrderApplicationService.batchCheck(cmd1); + ReviewOrderDO cmd2 = new ReviewOrderDO(); + cmd2.setReviewOrderId(cmd1.getReviewOrderId()); + reviewOrderApplicationService.checkConfirm(cmd2); + DeliveTask reviewdeliveTask = deliveTaskService.getOne(new LambdaQueryWrapper() + .eq(DeliveTask::getTrackingNumber, cmd1.getReviewOrderNumber()) + .eq(DeliveTask::getDelFlag, 1)); + if (reviewdeliveTask != null) { + reviewdeliveTask.setOperatorsBy(stockOutOrder.getWorkUserId()); + reviewdeliveTask.setOperatorsName(stockOutOrder.getWorkUserName()); + reviewdeliveTask.setTaskStatus(2); + deliveTaskService.updateById(reviewdeliveTask); + } + //交接 + + + HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getOne(new LambdaQueryWrapper() + .eq(HandoverTaskOrder::getOrderNumber, outOrderNumber) + .eq(HandoverTaskOrder::getDelFlag, 1)); + if (handoverTaskOrder != null) { + //交接pda下发 + HandoverTaskOrderDO handoverTaskOrderDO1 = new HandoverTaskOrderDO(); + handoverTaskOrderDO1.setOperatorsBy(stockOutOrder.getWorkUserId()); + List ids = new ArrayList<>(); + ids.add(handoverTaskOrder.getHandoverTaskOrderId()); + handoverTaskOrderDO1.setHandoverTaskOrderIds(ids); + DeliveTask deliveTask = deliveTaskService.getOne(new LambdaQueryWrapper() + .eq(DeliveTask::getTrackingNumber, handoverTaskOrder.getTaskNumber()) + .eq(DeliveTask::getDelFlag, 1)); + if (deliveTask != null) { + deliveTask.setOperatorsBy(stockOutOrder.getWorkUserId()); + deliveTask.setOperatorsName(stockOutOrder.getWorkUserName()); + deliveTask.setTaskStatus(2); + deliveTaskService.updateById(deliveTask); + } +// handoverTaskOrderApplicationService.taskDistribution(handoverTaskOrderDO1); + //完成交接 + HandoverTaskOrderDO handoverTaskOrderDO = new HandoverTaskOrderDO(); + List handoverTaskOrderId = new ArrayList<>(); + handoverTaskOrderId.add(handoverTaskOrder.getHandoverTaskOrderId()); + handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderId); + handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO); + } + return Boolean.TRUE; + } + @Transactional(rollbackFor = Exception.class) public Boolean genPickingOrderByOms(StockOutOrderDO stockOutOrderDO){ List stockOutOrderList = stockOutOrderService.list(new QueryWrapper().lambda() @@ -1569,9 +1797,9 @@ public class StockOutOrderDomainService { if (stockOutOrderDb.getStatus() > 8){ throw new ServiceException("出库单【" + stockOutOrderDb.getOutOrderNumber() + "】已出库,请重新选择"); } - if (stockOutOrderDb.getUpdateTime().compareTo(stockOutOrderDO.getUpdateTime()) != 0){ - throw new ServiceException("出库单【" + stockOutOrderDb.getOutOrderNumber() + "】数据已被更新,请刷新后重新进行收货"); - } +// if (stockOutOrderDb.getUpdateTime().compareTo(stockOutOrderDO.getUpdateTime()) != 0){ +// throw new ServiceException("出库单【" + stockOutOrderDb.getOutOrderNumber() + "】数据已被更新,请刷新后重新进行收货"); +// } LoginUser loginUser = SecurityUtils.getLoginUser(); stockOutOrderService.update(null, new UpdateWrapper().lambda() .set(StockOutOrder::getCheckStatus, 2) @@ -1986,6 +2214,9 @@ public class StockOutOrderDomainService { private static final String OMS_AUTO_AUDIT_REMARK = "OMS下发自动审核"; public void omsOrderAdd(StockOutOrder stockOutOrder) { + // 任务下发用户id + String userId = stockInOrderMapper.queryWarehouseUserId(stockOutOrder.getOrganizationId(), stockOutOrder.getWarehouseId(), stockOutOrder.getTopOrganizationId()); + stockOutOrder.setTaskIssueUserId(userId); stockOutOrderService.save(stockOutOrder); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inMaterialDetail/InMaterialDetailDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inMaterialDetail/InMaterialDetailDTO.java index a87ebdf82..4895b9d89 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inMaterialDetail/InMaterialDetailDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/inMaterialDetail/InMaterialDetailDTO.java @@ -401,4 +401,8 @@ public class InMaterialDetailDTO extends BaseVOEntity { private BigDecimal erpPriceGw; //申报总价 private BigDecimal amountGw; + + //仓码简易模式收货上架 + private BigDecimal collectQuantity; + private String shelfJson; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java index 0fa14e65e..67cfc6d1e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java @@ -506,4 +506,16 @@ public class OutMaterialDetailDTO extends BaseVOEntity { private String bondInvtNoGw; private String whNoGw; private String seatNoGw; + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java index ad6b20d0f..b70a0c7a7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java @@ -426,4 +426,23 @@ public class StockInOrderDTO extends StockInOrderBaseDTO { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTimeTo; + + //仓码pda查询参数 + @ApiModelProperty("pda查询用户ID") + private Long queryUserId; + @ApiModelProperty("状态列表") + private List statusList; + + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; + + @ApiModelProperty("任务移除用户ID") + private String removeUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java index 4d5862483..39e3c8793 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java @@ -484,4 +484,22 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTimeTo; + @ApiModelProperty("作业人用户ID") + private Long workUserId; + @ApiModelProperty("作业人用户") + private String workUserName; + @ApiModelProperty("作业任务接收状态") + private String workTaskReceiveStatus; + + @ApiModelProperty("任务下发用户ID") + private String taskIssueUserId; + + //仓码pda查询参数 + @ApiModelProperty("pda查询用户ID") + private Long queryUserId; + @ApiModelProperty("状态列表") + private List statusList; + + @ApiModelProperty("任务移除用户ID") + private String removeUserId; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java index 2b7de4d42..988275c98 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java @@ -1,6 +1,7 @@ package com.mhd.wms.interfaces.facadeApi.stockInOrder; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.common.core.exception.ServiceException; @@ -8,12 +9,15 @@ import com.mhd.common.core.utils.StringUtils; import com.mhd.wms.application.service.stockInOrder.StockInOrderApplicationService; import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO; +import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; +import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.interfaces.assember.stockInOrder.StockInOrderAssembler; import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler; +import com.mhd.wms.interfaces.dto.inMaterialDetail.InMaterialDetailDTO; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO; import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; import io.swagger.annotations.ApiOperation; @@ -22,6 +26,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -172,6 +178,87 @@ public class StockInOrderApi extends BaseController { stockInOrderApplicationService.omsOrderAdd(stockInOrder); } + /** + * oms下发单保存 + */ + @ApiOperation("pda接收任务") + @PostMapping(value = "/acceptTask") + public AjaxResult acceptTask(@RequestBody StockInOrder stockInOrder) { + stockInOrderApplicationService.acceptTask(stockInOrder); + return AjaxResult.success(); + } + + /** + * oms下发单保存 + */ + @ApiOperation("pda取消接收任务") + @PostMapping(value = "/removeTask") + public AjaxResult removeTask(@RequestBody StockInOrderDO stockInOrderDO) { + stockInOrderApplicationService.removeTask(stockInOrderDO); + return AjaxResult.success(); + } + + /** + * 审核入库单 + */ + @ApiOperation("pda简易模式收货") + @PostMapping(value = "/receiptEasyMode") + public AjaxResult receiptEasyMode(@RequestBody StockInOrderDTO stockInOrderDTO) { + StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); + List materialDetailList = stockInOrderDTO.getMaterialDetailList(); + if (materialDetailList != null && !materialDetailList.isEmpty()) { + List inMaterialDetailDOList = new ArrayList<>(); + for (InMaterialDetailDTO dto : materialDetailList) { + InMaterialDetailDO detailDO = new InMaterialDetailDO(); + BeanUtils.copyProperties(dto, detailDO); + inMaterialDetailDOList.add(detailDO); + } + stockInOrderDO.setMaterialDetailList(inMaterialDetailDOList); + } + + return AjaxResult.success(stockInOrderApplicationService.receiptEasyMode(stockInOrderDO)); + } + + @ApiOperation("pda简易模式修改计划数量") + @GetMapping(value = "/updateQuantity") + public AjaxResult updateQuantity(@RequestParam BigDecimal quantity, + @RequestParam Long materialDetailId, + @RequestParam BigDecimal area, + @RequestParam BigDecimal volume + ,@RequestParam BigDecimal weight) { + return AjaxResult.success(stockInOrderApplicationService.updateQuantity(quantity, materialDetailId, area, volume, weight)); + } + + /** + * 审核入库单 + */ + @ApiOperation("pda简易模式上架") + @PostMapping(value = "/shelfEasyMode") + public AjaxResult shelfEasyMode(@RequestBody StockInOrderDTO stockInOrderDTO) { + StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); + List materialDetailList = stockInOrderDTO.getMaterialDetailList(); + if (materialDetailList != null && !materialDetailList.isEmpty()) { + List inMaterialDetailDOList = new ArrayList<>(); + for (InMaterialDetailDTO dto : materialDetailList) { + InMaterialDetailDO detailDO = new InMaterialDetailDO(); + BeanUtils.copyProperties(dto, detailDO); + inMaterialDetailDOList.add(detailDO); + } + stockInOrderDO.setMaterialDetailList(inMaterialDetailDOList); + } + return AjaxResult.success(stockInOrderApplicationService.shelfEasyMode(stockInOrderDO)); + } + + /** + * 审核入库单 + */ + @ApiOperation("pda简易模式核对上传") + @PostMapping(value = "/checkUploadEasyMode") + public AjaxResult checkUploadEasyMode(@RequestBody StockInOrderDTO stockInOrderDTO) { + StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); + return AjaxResult.success(stockInOrderApplicationService.checkUploadEasyMode(stockInOrderDO)); + } + /** * oms下发单明细保存 */ 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 dcf644f9c..e35ddf4e5 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 @@ -18,6 +18,7 @@ import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; +import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.listener.ExcelParseService; @@ -346,6 +347,29 @@ public class StockOutOrderApi extends BaseController { return toAjax(stockOutOrderApplicationService.genPickingOrder(stockOutOrderDO)); } + + /** + * 生成拣货单 + */ + @ApiOperation("简易模式拣货") + @PostMapping("/adjustPicking") + public AjaxResult adjustPicking(@RequestBody StockOutOrderDTO stockOutOrderDTO) { + StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class); + return toAjax(stockOutOrderApplicationService.adjustPicking(stockOutOrderDO)); + } + + + + /** + * 生成拣货单 + */ + @ApiOperation("简易核对上传") + @PostMapping("/checkUpload") + public AjaxResult checkUpload(@RequestBody StockOutOrderDTO stockOutOrderDTO) { + StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class); + return toAjax(stockOutOrderApplicationService.checkUpload(stockOutOrderDO)); + } + /** * 生成拣货单 */ @@ -464,6 +488,26 @@ public class StockOutOrderApi extends BaseController { stockOutOrderApplicationService.omsOrderAdd(stockOutOrder); } + /** + * oms下发单保存 + */ + @ApiOperation("pda接收任务") + @PostMapping(value = "/acceptTask") + public AjaxResult acceptTask(@RequestBody StockOutOrder stockOutOrder) { + stockOutOrderApplicationService.acceptTask(stockOutOrder); + return AjaxResult.success(); + } + + /** + * oms下发单保存 + */ + @ApiOperation("pda取消接收任务") + @PostMapping(value = "/removeTask") + public AjaxResult removeTask(@RequestBody StockOutOrderDO stockOutOrderDO) { + stockOutOrderApplicationService.removeTask(stockOutOrderDO); + return AjaxResult.success(); + } + /** * oms下发单明细保存 */ diff --git a/mhd_wms/src/main/resources/bootstrap.yml b/mhd_wms/src/main/resources/bootstrap.yml index b97ce9a79..fc7380c20 100644 --- a/mhd_wms/src/main/resources/bootstrap.yml +++ b/mhd_wms/src/main/resources/bootstrap.yml @@ -14,18 +14,18 @@ spring: nacos: discovery: # server-addr: 127.0.0.1:8848 - server-addr: 10.33.0.129:6010 +# server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 -# server-addr: 10.102.192.31:6848 + server-addr: 10.102.192.30:6848 username: nacos password: manhuoda@2023 #线上正式环境 # server-addr: 10.102.192.105:6848 config: # server-addr: 127.0.0.1:8848 - server-addr: 10.33.0.129:6010 +# server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 -# server-addr: 10.102.192.31:6848 + server-addr: 10.102.192.30:6848 username: nacos password: manhuoda@2023 #线上正式环境 diff --git a/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml index f73d0359a..02df3d80f 100644 --- a/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/OutMaterialDetail/OutMaterialDetailMapper.xml @@ -104,6 +104,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -117,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.lot_no , a.stock_quantity , a.stock_unit ,a.in_order_number , + a.OUT_WEIGHT,a.OUT_VOLUME,a.OUT_QUANTITY, 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(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, diff --git a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml index cece22329..cfee42bf1 100644 --- a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml @@ -96,6 +96,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -109,7 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.lot_no , a.material_detail_id, a.organization_id, a.organization_name, a.top_organization_id, a.unique_id, a.in_order_number, a.material_base_info_id, a.material_code, a.material_name, a.bar_code, a.quantity, a.receipt_quantity, a.shelves_quantity, - a.receipt_status, a.shelves_status, a.pack_id, a.pack_code, a.pack_name, + a.receipt_status, a.shelves_status, a.pack_id, a.pack_code, a.pack_name,a.SHELF_JSON,a.COLLECT_QUANTITY, CASE WHEN a.pack_detail_id IS NULL OR TRIM(a.pack_detail_id) = '' THEN NULL ELSE CAST(a.pack_detail_id AS BIGINT) diff --git a/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml b/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml index 5db3cdaca..86a8a0466 100644 --- a/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml @@ -154,6 +154,9 @@ and a.shipper_name like concat('%', #{shipperName}, '%') + + and a.shipper_id like concat('%', #{shipperId}, '%') + and date_format(a.create_time, '%Y-%m-%d') >= #{createTimeStart} diff --git a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml index a1a04ed25..7cfb2cdb0 100644 --- a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml @@ -101,6 +101,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -134,7 +138,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a."TO", a.CONTACT_PERSON, a.VEHICLE_INFO, a.CONSIGNMENT_NO, a.TEL, a.DRIVER_SIGNATURE, a.FAX, a.DECLARATION_AREA, a.MANUFACTURER, a.CUSTOMS_BROKER_INFO, a.DELIVERY_ADDRESS, a.ENTRY_EXIT_CUSTOMS, a.ORIGIN_DESTINATION_COUNTRY, a.CARRIER, a.CONTAINER_NO, a.TRANSPORT_METHOD, a.SUPERVISION_METHOD, a.CUSTOMS_INSPECTION, a.NEED_CUSTOMS_DECLARATION, a.NEED_TRANSPORT, - a.WAREHOUSE_DATE, a.COMPLETION_TIME, a.ORDER_DATE,a.stock_in_order,a.business_order_no + a.WAREHOUSE_DATE, a.COMPLETION_TIME, a.ORDER_DATE,a.stock_in_order,a.business_order_no,a.WORK_USER_ID,a.WORK_TASK_RECEIVE_STATUS,a.TASK_ISSUE_USER_ID,a.WORK_USER_NAME @@ -342,6 +346,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item} + + + and a.status in + + #{item} + + + + and a.TASK_ISSUE_USER_ID like concat('%', #{queryUserId}, '%') + and a."TO" like concat('%', #{to}, '%') @@ -575,4 +589,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND in_order_number = #{inOrderNumber} + + \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml index 87b8b297b..ff7954d80 100644 --- a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml @@ -100,6 +100,10 @@ + + + + @@ -120,7 +124,7 @@ a.CUSTOMS_DECLARER_INFO,a.DELIVERY_ADDR,a.ENTRY_EXIT_CUSTOMS,a.DEPARTURE_ARRIVAL_COUNTRY,a.CARRIER,a.CONTAINER_NO,a.CONTAINER_NO_NAME,a.OUTBOUND_DATE, a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME, a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.billing_json,a.SETTLEMENT_CURRENCY, - a.SALESMAN_ID,a.SALESMAN_NAME,a.business_order_no,a.RETURN_QUANTITY + a.SALESMAN_ID,a.SALESMAN_NAME,a.business_order_no,a.RETURN_QUANTITY,a.WORK_USER_ID,a.WORK_TASK_RECEIVE_STATUS,a.TASK_ISSUE_USER_ID,a.WORK_USER_NAME @@ -170,6 +174,15 @@ + + and a.status in + + #{item} + + + + and a.TASK_ISSUE_USER_ID like concat('%', #{queryUserId}, '%') + and a.status > #{gtStatus}