From 1601114e0afff4ef5044b433539de2296223a8d6 Mon Sep 17 00:00:00 2001 From: youjie <j.you@huahengweld.com> Date: Mon, 27 Sep 2021 10:12:37 +0800 Subject: [PATCH] 现场调试 修改 --- src/main/java/com/huaheng/api/wcs/controller/EmptyContainerController.java | 39 +++++++++++++++++++++++++++++++++------ src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java | 11 ++--------- src/main/java/com/huaheng/api/wcs/domain/ManyEmptyDomain.java | 10 +++++----- src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java | 1 - src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java | 2 ++ src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java | 2 +- src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java | 13 +++++++------ src/main/java/com/huaheng/common/constant/QuantityConstant.java | 2 ++ src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java | 13 +++++++++---- src/main/java/com/huaheng/pc/task/taskHeader/service/WorkTaskService.java | 7 ++++--- 10 files changed, 65 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/huaheng/api/wcs/controller/EmptyContainerController.java b/src/main/java/com/huaheng/api/wcs/controller/EmptyContainerController.java index b968048..74c3b0c 100644 --- a/src/main/java/com/huaheng/api/wcs/controller/EmptyContainerController.java +++ b/src/main/java/com/huaheng/api/wcs/controller/EmptyContainerController.java @@ -1,6 +1,7 @@ package com.huaheng.api.wcs.controller; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.api.wcs.domain.ManyEmptyDomain; @@ -14,6 +15,7 @@ import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.service.ConfigService; +import com.huaheng.pc.config.address.service.AddressService; import com.huaheng.pc.config.container.domain.Container; import com.huaheng.pc.config.container.service.ContainerService; import com.huaheng.pc.config.locationHigh.domain.LocationHigh; @@ -24,12 +26,17 @@ import com.huaheng.pc.config.zone.domain.Zone; import com.huaheng.pc.config.zone.service.ZoneService; import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; import com.huaheng.pc.task.taskHeader.service.WorkTaskService; +import com.sun.javafx.tk.Toolkit; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -52,6 +59,10 @@ public class EmptyContainerController extends BaseController { private LocationHighService locationHighService; @Resource private ContainerService containerService; + @Autowired + private AddressService addressService; + @Resource + private TaskHeaderService taskHeaderService; /** * 生成空托盘入库任务 * @return @@ -65,11 +76,15 @@ public class EmptyContainerController extends BaseController { throw new ServiceException("空托盘组参数不对!"); } String containerCode = manyEmptyDomain.getContainerCode(); - String warehouseCode = manyEmptyDomain.getWareohuseCode(); + String warehouseCode = manyEmptyDomain.getWarehouseCode(); String area = manyEmptyDomain.getArea(); String roadWay = manyEmptyDomain.getRoadWay(); - String[] idArray = Convert.toStrArray(roadWay); - List<String> roadWays = Arrays.asList(idArray); + JSONArray jsonArray = JSONArray.parseArray(roadWay); + List<String> roadWays = new ArrayList<>(); + for(int i=0; i< jsonArray.size(); i++) { + Integer json = (Integer)jsonArray.get(i); + roadWays.add(String.valueOf(json)); + } String value = configService.getKey(QuantityConstant.RULE_ALLOCATION); String height = manyEmptyDomain.getHeight(); if (StringUtils.isEmpty(value)) { @@ -82,6 +97,14 @@ public class EmptyContainerController extends BaseController { if(zone == null) { return AjaxResult.error("分配库位时,没有找到库区"); } + LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); + taskHeaderLambdaQueryWrapper.eq(TaskHeader::getContainerCode, containerCode) + .eq(TaskHeader::getWarehouseCode, warehouseCode) + .lt(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED); + TaskHeader taskHeader = taskHeaderService.getOne(taskHeaderLambdaQueryWrapper); + if(taskHeader != null) { + return AjaxResult.success("已经生成空托盘组任务"); + } //查询满足条件的库位类型 LambdaQueryWrapper<LocationType> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(LocationType::getZoneCode, zone.getCode()) @@ -92,8 +115,9 @@ public class EmptyContainerController extends BaseController { } List<String> locationTypeCodeList = locationTypeList.stream(). map(t -> t.getCode()).collect(Collectors.toList()); + int highHeight = Float.valueOf(height).intValue(); LambdaQueryWrapper<LocationHigh> locationHighLambdaQueryWrapper = Wrappers.lambdaQuery(); - locationHighLambdaQueryWrapper.eq(LocationHigh::getHighLevel, Integer.parseInt(height)) + locationHighLambdaQueryWrapper.eq(LocationHigh::getHighLevel, highHeight) .in(LocationHigh::getLocationTypeCode, locationTypeCodeList); LocationHigh locationHigh = locationHighService.getOne(locationHighLambdaQueryWrapper); int high = locationHigh.getHigh(); @@ -117,14 +141,17 @@ public class EmptyContainerController extends BaseController { if(manyEmptyDomain == null){ throw new ServiceException("空托盘组参数不对!"); } + String containerCode = manyEmptyDomain.getContainerCode(); + String warehouseCode = manyEmptyDomain.getWarehouseCode(); if(StringUtils.isEmpty(containerCode)){ throw new ServiceException("托盘号为空“"); } - Container container = containerService.getContainerByCode(containerCode); + Container container = containerService.getContainerByCode(containerCode, warehouseCode); if(container == null){ throw new ServiceException("没有找到托盘“"); } - return workTaskService.createManyEmptyOut(containerCode, "P1024"); + String port = addressService.selectAddress(QuantityConstant.ADDRESS_WCS_MANY_EMPTY_CONTAINER, warehouseCode); + return workTaskService.createManyEmptyOut(containerCode,warehouseCode,port); } } diff --git a/src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java b/src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java index 3f7fe67..e6e2215 100644 --- a/src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java +++ b/src/main/java/com/huaheng/api/wcs/controller/WarecellAllocation.java @@ -36,15 +36,8 @@ public class WarecellAllocation extends BaseController { /* WCS给的长,宽,高,重在有不同规格库位才有用,destination是区域, locationType库位类型 */ - public AjaxResult WarecellAllocation(String taskNo, String length, String width, String height, String weight, String destination, String warehouseCode) { - WcsTask wcsTask = new WcsTask(); - wcsTask.setTaskNo(taskNo); - wcsTask.setLength(length); - wcsTask.setWidth(width); - wcsTask.setHeight(height); - wcsTask.setWeight(weight); - wcsTask.setWarehouseCode(warehouseCode); - wcsTask.setDestination(destination); + public AjaxResult WarecellAllocation(@RequestBody WcsTask wcsTask) { + AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() { @Override public AjaxResult doProcess() { diff --git a/src/main/java/com/huaheng/api/wcs/domain/ManyEmptyDomain.java b/src/main/java/com/huaheng/api/wcs/domain/ManyEmptyDomain.java index ebe978f..73514c3 100644 --- a/src/main/java/com/huaheng/api/wcs/domain/ManyEmptyDomain.java +++ b/src/main/java/com/huaheng/api/wcs/domain/ManyEmptyDomain.java @@ -9,7 +9,7 @@ public class ManyEmptyDomain { private String weight; private String roadWay; private String area; - private String wareohuseCode; + private String warehouseCode; public String getContainerCode() { return containerCode; @@ -68,11 +68,11 @@ public class ManyEmptyDomain { this.area = area; } - public String getWareohuseCode() { - return wareohuseCode; + public String getWarehouseCode() { + return warehouseCode; } - public void setWareohuseCode(String wareohuseCode) { - this.wareohuseCode = wareohuseCode; + public void setWarehouseCode(String warehouseCode) { + this.warehouseCode = warehouseCode; } } diff --git a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java index 662bcfb..95dcb57 100644 --- a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java @@ -150,7 +150,6 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { String roadWay = location.getRoadway(); List<String> roadWays = new ArrayList<>(); roadWays.add(roadWay); - String roadWay = location.getRoadway(); String containerCode = taskHeader.getContainerCode(); List<TaskDetail> taskDetailList = taskDetailService.findByTaskId(taskHeader.getId()); String materialAreaCode = null; diff --git a/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java index 55c4dca..86eead2 100644 --- a/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java @@ -286,10 +286,12 @@ public class TaskAssignServiceImpl implements TaskAssignService { switch (taskType) { case QuantityConstant.TASK_TYPE_WHOLERECEIPT: case QuantityConstant.TASK_TYPE_EMPTYRECEIPT: + case QuantityConstant.TASK_TYPE_MANY_EMPTYRECEIPT: wcsTask.setTaskType(100); break; case QuantityConstant.TASK_TYPE_WHOLESHIPMENT: case QuantityConstant.TASK_TYPE_EMPTYSHIPMENT: + case QuantityConstant.TASK_TYPE_MANY_EMPTYSHIPMENT: wcsTask.setTaskType(300); break; case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT: diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java index f2c00b6..9758633 100644 --- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java @@ -44,7 +44,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService @Override public String allocation(int locationRule, List<String> locationTypeCodeList, - int high, int high, String area, List<String> raodWays, String warehouseCode, String containerCode, String materialAreaCode) { LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery(); + int high, String area, List<String> raodWays, String warehouseCode, String containerCode, String materialAreaCode) { LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery(); containerLambdaQueryWrapper.eq(Container::getCode, containerCode) .eq(Container::getWarehouseCode, warehouseCode); Container container = containerService.getOne(containerLambdaQueryWrapper); diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java index 2c5e1e9..45b3496 100644 --- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java @@ -160,9 +160,10 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService } List<String> locationTypeCodeList = locationTypeList.stream(). map(t -> t.getCode()).collect(Collectors.toList()); + int highHeight = Float.valueOf(height).intValue(); LambdaQueryWrapper<LocationHigh> locationHighLambdaQueryWrapper = Wrappers.lambdaQuery(); - locationHighLambdaQueryWrapper.eq(LocationHigh::getHighLevel, Integer.parseInt(height)) - .in(LocationHigh::getLocationTypeCode, locationTypeCodeList); + locationHighLambdaQueryWrapper.eq(LocationHigh::getHighLevel, highHeight) + .in(LocationHigh::getLocationTypeCode, locationTypeCodeList); LocationHigh locationHigh = locationHighService.getOne(locationHighLambdaQueryWrapper); int high = locationHigh.getHigh(); //查询任务明细 @@ -260,10 +261,10 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService if (!taskHeaderService.updateById(taskHeader)) { throw new ServiceException("更新任务头表目标库位失败"); } - WCSInfo wcsInfo = new WCSInfo(); - wcsInfo.setLocationCode(locationCode); - wcsInfo.setPreTask(String.valueOf(preTaskNo)); - return AjaxResult.success().setData(wcsInfo); + + WcsTask wcsTask1 = new WcsTask(); + wcsTask1.setToLocationCode(locationCode); + return AjaxResult.success().setData(wcsTask1); } /** diff --git a/src/main/java/com/huaheng/common/constant/QuantityConstant.java b/src/main/java/com/huaheng/common/constant/QuantityConstant.java index 6e6d827..88b877e 100644 --- a/src/main/java/com/huaheng/common/constant/QuantityConstant.java +++ b/src/main/java/com/huaheng/common/constant/QuantityConstant.java @@ -381,6 +381,8 @@ public class QuantityConstant { public static final String ADDRESS_WCS_STATION_INFOS = "WCS_STATION_INFOS"; //WCS获取可用巷道 public static final String ADDRESS_WCS_AVAILABLE_ROADWAY = "WCS_AVAILABLE_ROADWAY"; + //拆盘机地址 + public static final String ADDRESS_WCS_MANY_EMPTY_CONTAINER = "WCS_MANY_EMPTY_CONTAINER"; //ERP public static final String ERP = "ERP"; diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java index 3c6a57e..8d9f760 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java @@ -200,9 +200,10 @@ public class TransferTaskService { List<TaskDetail> taskDetailList = taskDetailService.findByTaskId(taskHeader.getId()); /* 库存头表id*/ List<Integer> inventoryHeadIdList = new ArrayList<>(); + String warehouseCode = taskHeader.getWarehouseCode(); + InventoryDetail inventoryDetail = null; for (TaskDetail taskDetail : taskDetailList) { taskDetail.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - InventoryDetail inventoryDetail = inventoryDetailService.getById(taskDetail.getToInventoryId()); inventoryHeadIdList.add(inventoryDetail.getInventoryHeaderId()); InventoryTransaction inventoryTransaction = new InventoryTransaction(); inventoryTransaction.setWarehouseCode(taskDetail.getWarehouseCode()); @@ -239,9 +240,13 @@ public class TransferTaskService { if (!taskHeaderService.saveOrUpdate(taskHeader)) { throw new ServiceException("任务单据状态更新失败!"); } - locationService.updateContainerCodeAndStatus(taskHeader.getFromLocation(), "", QuantityConstant.STATUS_LOCATION_EMPTY); - locationService.updateContainerCodeAndStatus(taskHeader.getToLocation(), taskHeader.getContainerCode(), QuantityConstant.STATUS_LOCATION_EMPTY); - containerService.updateLocationCodeAndStatus(taskHeader.getContainerCode(), taskHeader.getToLocation(), QuantityConstant.STATUS_CONTAINER_SOME); + if(inventoryDetail != null) { + containerService.updateLocationCodeAndStatus(taskHeader.getContainerCode(), taskHeader.getToLocation(), QuantityConstant.STATUS_CONTAINER_SOME, warehouseCode); + } else { + containerService.updateLocationCodeAndStatus(taskHeader.getContainerCode(), taskHeader.getToLocation(), QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode); + } + locationService.updateContainerCodeAndStatus(taskHeader.getFromLocation(), "", QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); + locationService.updateContainerCodeAndStatus(taskHeader.getToLocation(), taskHeader.getContainerCode(), QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); inventoryHeadIdList = inventoryHeadIdList.stream().distinct().collect(Collectors.toList()); LambdaUpdateWrapper<InventoryHeader> headerUpdateWrapper = Wrappers.lambdaUpdate(); headerUpdateWrapper.set(InventoryHeader::getLocationCode, taskHeader.getToLocation()) diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/WorkTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/WorkTaskService.java index 816f35c..1142b99 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/WorkTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/WorkTaskService.java @@ -413,12 +413,12 @@ public class WorkTaskService { * @return */ @Transactional - public AjaxResult createManyEmptyOut(String containerCode, String port) { + public AjaxResult createManyEmptyOut(String containerCode, String warehouseCode, String port) { /* 库位编码*/ String locationCode = null; //验证容器 if (StringUtils.isNotEmpty(containerCode)) { - Container container = containerService.getContainerByCode(containerCode); + Container container = containerService.getContainerByCode(containerCode, warehouseCode); if (StringUtils.isNull(container)) { return AjaxResult.error(containerCode+"容器不存在"); } @@ -429,7 +429,8 @@ public class WorkTaskService { return AjaxResult.error("该容器不在库位上"); } LambdaQueryWrapper<InventoryDetail> queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(InventoryDetail::getContainerCode, containerCode); + queryWrapper.eq(InventoryDetail::getContainerCode, containerCode) + .eq(InventoryDetail::getWarehouseCode, warehouseCode); if (inventoryDetailService.count(queryWrapper) > 0) { return AjaxResult.error("该容器上有库存,无法空托出库!"); } -- libgit2 0.22.2