diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/vo/Test.java b/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/vo/Test.java new file mode 100644 index 0000000..2ca7316 --- /dev/null +++ b/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/vo/Test.java @@ -0,0 +1,23 @@ +package com.huaheng.pc.inventory.inventoryTransaction.domain.vo; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; +import java.io.StringReader; + +public class Test { + public static InventoryRankVO deserializeInventoryRankVO(String jsonString) throws IOException { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.readValue(new StringReader(jsonString), InventoryRankVO.class); + } + + public static void main(String[] args) throws IOException { + String jsonString = "{\"materialCode\":\"SW035-S-02T25\",\"inQty\":88,\"outQty\":396,\"materialName\":\"内胎\",\"materialSpec\":\"焊接件\",\"materialUnit\":\"件\"}"; + + InventoryRankVO inventoryRankVO = deserializeInventoryRankVO(jsonString); + + System.out.println("Material Code: " + inventoryRankVO.getMaterialCode()); + System.out.println("In Quantity: " + inventoryRankVO.getInQty()); + System.out.println("Out Quantity: " + inventoryRankVO.getOutQty()); + } +} diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java index b402ce8..f8d0b9a 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java @@ -572,14 +572,17 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont } List<InventoryDetail> inventoryList = shippingCombinationService.getInventorys(item, true, false, false); - //去除已锁的库存 + //去除已锁的库存列表 ArrayList<InventoryDetail> removeInventoryList = new ArrayList<>(); + //获取未完成的任务列表 List<TaskHeader> taskHeaderList = taskHeaderService.getUnCompleteTaskList(); + //获取未完成的入库组盘列表 List<ReceiptContainerHeader> receiptContainerHeaderList = receiptContainerHeaderService.getUnCompleteCombineList(); boolean lock = false; for (InventoryDetail inventoryDetail : inventoryList) { Container container = containerService.getOne(new LambdaQueryWrapper<Container>().eq(Container::getCode, inventoryDetail.getContainerCode())); if (QuantityConstant.STATUS_CONTAINER_LOCK.equals(container.getStatus())) { + //托盘锁定的 removeInventoryList.add(inventoryDetail); lock = true; } @@ -603,14 +606,14 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont return AjaxResult.error("'物料名称:" + item.getMaterialName() + ",物料编码:" + item.getMaterialCode() + "' 所在托盘全部处于锁定状态,请完成或取消任务后再进行组盘"); } - //if (inventoryList.isEmpty() && item.getWaveId() != 0) { - // Wave wave = waveService.getById(item.getWaveId()); - // wave.setStatus(QuantityConstant.WAVE_STATUS_ERROR); - // wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_ERROR); - // wave.setLastWaveStep(QuantityConstant.WAVE_STEP_BUILD); - // waveService.updateById(wave); - // throw new ServiceException("主单为" + item.getShipmentCode() + "子单id为" + item.getId() + "的单据没有库存,波次失败"); - //} + if (inventoryList.isEmpty() && item.getWaveId() != 0) { + Wave wave = waveService.getById(item.getWaveId()); + wave.setStatus(QuantityConstant.WAVE_STATUS_ERROR); + wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_ERROR); + wave.setLastWaveStep(QuantityConstant.WAVE_STEP_BUILD); + waveService.updateById(wave); + throw new ServiceException("主单为" + item.getShipmentCode() + "子单id为" + item.getId() + "的单据没有库存,波次失败"); + } if (inventoryList.isEmpty()) { num = num + 1; } else { @@ -620,16 +623,16 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont break; } - if (inventory.getLocationCode().startsWith("K05") || inventory.getLocationCode().startsWith("K06") || - inventory.getLocationCode().startsWith("K07") || inventory.getLocationCode().startsWith("K08")) { - String value = configService.getKey("shipmentTaskBy5RoadLimit"); - if (StringUtils.isNotEmpty(value)) { - if (taskHeaderService.getShipmentTaskBy5Road() > Integer.parseInt(value)) { - throw new ServiceException("5号巷道不能存在超过" + value + "个组盘和任务"); - } - } - - } + //if (inventory.getLocationCode().startsWith("K05") || inventory.getLocationCode().startsWith("K06") || + // inventory.getLocationCode().startsWith("K07") || inventory.getLocationCode().startsWith("K08")) { + // String value = configService.getKey("shipmentTaskBy5RoadLimit"); + // if (StringUtils.isNotEmpty(value)) { + // if (taskHeaderService.getShipmentTaskBy5Road() > Integer.parseInt(value)) { + // throw new ServiceException("5号巷道不能存在超过" + value + "个组盘和任务"); + // } + // } + // + //} BigDecimal inventoryQty = inventory.getQty().subtract(inventory.getTaskQty()); ShipmentCombinationModel shipmentCombination = new ShipmentCombinationModel(); shipmentCombination.setInventoryDetailId(inventory.getId()); @@ -642,8 +645,10 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont } else { shipmentCombination.setShipQty(inventoryQty); } - ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.combination(shipmentCombination, isAutoShipment); - list.add(shipmentContainerHeader.getId()); + if (shipmentCombination.getShipQty().compareTo(new BigDecimal(0)) > 0) { + ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.combination(shipmentCombination, isAutoShipment); + list.add(shipmentContainerHeader.getId()); + } shipmentQty = shipmentQty.subtract(shipmentCombination.getShipQty()); } } diff --git a/src/main/java/com/huaheng/pc/system/user/controller/UserController.java b/src/main/java/com/huaheng/pc/system/user/controller/UserController.java index ee7280e..a94181c 100644 --- a/src/main/java/com/huaheng/pc/system/user/controller/UserController.java +++ b/src/main/java/com/huaheng/pc/system/user/controller/UserController.java @@ -109,10 +109,10 @@ public class UserController extends BaseController { if (StringUtils.isNotNull(user.getId()) && User.unAdmin(user.getId())) { return error("不允许修改超级管理员用户"); } - List<Integer> roleList = user.getRoleIds(); - if (roleList != null && roleList.size() > 1) { - return error("一个用户不允许有多个角色"); - } + //List<Integer> roleList = user.getRoleIds(); + //if (roleList != null && roleList.size() > 1) { + // return error("一个用户不允许有多个角色"); + //} AjaxResult ajaxResult = toAjax(userService.insertUser(user)); return ajaxResult; } @@ -142,10 +142,10 @@ public class UserController extends BaseController { if (StringUtils.isNotNull(user.getId()) && User.unAdmin(user.getId())) { return error("不允许修改超级管理员用户"); } - List<Integer> roleList = user.getRoleIds(); - if (roleList != null && roleList.size() > 1) { - return error("一个用户不允许有多个角色"); - } + //List<Integer> roleList = user.getRoleIds(); + //if (roleList != null && roleList.size() > 1) { + // return error("一个用户不允许有多个角色"); + //} AjaxResult ajaxResult = toAjax(userService.updateUser(user)); if (ShiroUtils.getLoginName().equals(user.getUserName())) { diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java index f265180..670b957 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java @@ -366,7 +366,9 @@ public class ShipmentTaskService { if (inventoryDetails != null && !inventoryDetails.isEmpty()) { for (InventoryDetail inventoryDetail : inventoryDetails) { inventoryDetail.setLocationCode(task.getToLocation()); - inventoryDetailService.updateById(inventoryDetail); + if (!inventoryDetailService.updateById(inventoryDetail)) { + throw new ServiceException("完成出库任务,库存修改目标库位时失败" + inventoryDetail.getId()); + } } } } @@ -376,7 +378,7 @@ public class ShipmentTaskService { for (TaskDetail taskDetail : taskDetails) { if (taskDetail.getStatus() < QuantityConstant.TASK_STATUS_RUNNING) { materialCodes.add(taskDetail.getMaterialCode()); - //获取出库子货箱 + //获取出库组盘明细 ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getById(taskDetail.getAllocationId()); //获取对应库存记录 InventoryDetail inventoryDetail = inventoryDetailService.getById(taskDetail.getToInventoryId());