Commit acd22bf64a9259e0a3d400706c4634b9a59bf003

Authored by 易文鹏
1 parent f6d51d9c

feat:一个用户允许有多个角色

src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/vo/Test.java 0 → 100644
  1 +package com.huaheng.pc.inventory.inventoryTransaction.domain.vo;
  2 +
  3 +import com.fasterxml.jackson.databind.ObjectMapper;
  4 +
  5 +import java.io.IOException;
  6 +import java.io.StringReader;
  7 +
  8 +public class Test {
  9 + public static InventoryRankVO deserializeInventoryRankVO(String jsonString) throws IOException {
  10 + ObjectMapper objectMapper = new ObjectMapper();
  11 + return objectMapper.readValue(new StringReader(jsonString), InventoryRankVO.class);
  12 + }
  13 +
  14 + public static void main(String[] args) throws IOException {
  15 + String jsonString = "{\"materialCode\":\"SW035-S-02T25\",\"inQty\":88,\"outQty\":396,\"materialName\":\"内胎\",\"materialSpec\":\"焊接件\",\"materialUnit\":\"件\"}";
  16 +
  17 + InventoryRankVO inventoryRankVO = deserializeInventoryRankVO(jsonString);
  18 +
  19 + System.out.println("Material Code: " + inventoryRankVO.getMaterialCode());
  20 + System.out.println("In Quantity: " + inventoryRankVO.getInQty());
  21 + System.out.println("Out Quantity: " + inventoryRankVO.getOutQty());
  22 + }
  23 +}
... ...
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
... ... @@ -572,14 +572,17 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
572 572 }
573 573  
574 574 List<InventoryDetail> inventoryList = shippingCombinationService.getInventorys(item, true, false, false);
575   - //去除已锁的库存
  575 + //去除已锁的库存列表
576 576 ArrayList<InventoryDetail> removeInventoryList = new ArrayList<>();
  577 + //获取未完成的任务列表
577 578 List<TaskHeader> taskHeaderList = taskHeaderService.getUnCompleteTaskList();
  579 + //获取未完成的入库组盘列表
578 580 List<ReceiptContainerHeader> receiptContainerHeaderList = receiptContainerHeaderService.getUnCompleteCombineList();
579 581 boolean lock = false;
580 582 for (InventoryDetail inventoryDetail : inventoryList) {
581 583 Container container = containerService.getOne(new LambdaQueryWrapper<Container>().eq(Container::getCode, inventoryDetail.getContainerCode()));
582 584 if (QuantityConstant.STATUS_CONTAINER_LOCK.equals(container.getStatus())) {
  585 + //托盘锁定的
583 586 removeInventoryList.add(inventoryDetail);
584 587 lock = true;
585 588 }
... ... @@ -603,14 +606,14 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
603 606 return AjaxResult.error("'物料名称:" + item.getMaterialName() + ",物料编码:" + item.getMaterialCode() + "' 所在托盘全部处于锁定状态,请完成或取消任务后再进行组盘");
604 607 }
605 608  
606   - //if (inventoryList.isEmpty() && item.getWaveId() != 0) {
607   - // Wave wave = waveService.getById(item.getWaveId());
608   - // wave.setStatus(QuantityConstant.WAVE_STATUS_ERROR);
609   - // wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_ERROR);
610   - // wave.setLastWaveStep(QuantityConstant.WAVE_STEP_BUILD);
611   - // waveService.updateById(wave);
612   - // throw new ServiceException("主单为" + item.getShipmentCode() + "子单id为" + item.getId() + "的单据没有库存,波次失败");
613   - //}
  609 + if (inventoryList.isEmpty() && item.getWaveId() != 0) {
  610 + Wave wave = waveService.getById(item.getWaveId());
  611 + wave.setStatus(QuantityConstant.WAVE_STATUS_ERROR);
  612 + wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_ERROR);
  613 + wave.setLastWaveStep(QuantityConstant.WAVE_STEP_BUILD);
  614 + waveService.updateById(wave);
  615 + throw new ServiceException("主单为" + item.getShipmentCode() + "子单id为" + item.getId() + "的单据没有库存,波次失败");
  616 + }
614 617 if (inventoryList.isEmpty()) {
615 618 num = num + 1;
616 619 } else {
... ... @@ -620,16 +623,16 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
620 623 break;
621 624 }
622 625  
623   - if (inventory.getLocationCode().startsWith("K05") || inventory.getLocationCode().startsWith("K06") ||
624   - inventory.getLocationCode().startsWith("K07") || inventory.getLocationCode().startsWith("K08")) {
625   - String value = configService.getKey("shipmentTaskBy5RoadLimit");
626   - if (StringUtils.isNotEmpty(value)) {
627   - if (taskHeaderService.getShipmentTaskBy5Road() > Integer.parseInt(value)) {
628   - throw new ServiceException("5号巷道不能存在超过" + value + "个组盘和任务");
629   - }
630   - }
631   -
632   - }
  626 + //if (inventory.getLocationCode().startsWith("K05") || inventory.getLocationCode().startsWith("K06") ||
  627 + // inventory.getLocationCode().startsWith("K07") || inventory.getLocationCode().startsWith("K08")) {
  628 + // String value = configService.getKey("shipmentTaskBy5RoadLimit");
  629 + // if (StringUtils.isNotEmpty(value)) {
  630 + // if (taskHeaderService.getShipmentTaskBy5Road() > Integer.parseInt(value)) {
  631 + // throw new ServiceException("5号巷道不能存在超过" + value + "个组盘和任务");
  632 + // }
  633 + // }
  634 + //
  635 + //}
633 636 BigDecimal inventoryQty = inventory.getQty().subtract(inventory.getTaskQty());
634 637 ShipmentCombinationModel shipmentCombination = new ShipmentCombinationModel();
635 638 shipmentCombination.setInventoryDetailId(inventory.getId());
... ... @@ -642,8 +645,10 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
642 645 } else {
643 646 shipmentCombination.setShipQty(inventoryQty);
644 647 }
645   - ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.combination(shipmentCombination, isAutoShipment);
646   - list.add(shipmentContainerHeader.getId());
  648 + if (shipmentCombination.getShipQty().compareTo(new BigDecimal(0)) > 0) {
  649 + ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.combination(shipmentCombination, isAutoShipment);
  650 + list.add(shipmentContainerHeader.getId());
  651 + }
647 652 shipmentQty = shipmentQty.subtract(shipmentCombination.getShipQty());
648 653 }
649 654 }
... ...
src/main/java/com/huaheng/pc/system/user/controller/UserController.java
... ... @@ -109,10 +109,10 @@ public class UserController extends BaseController {
109 109 if (StringUtils.isNotNull(user.getId()) && User.unAdmin(user.getId())) {
110 110 return error("不允许修改超级管理员用户");
111 111 }
112   - List<Integer> roleList = user.getRoleIds();
113   - if (roleList != null && roleList.size() > 1) {
114   - return error("一个用户不允许有多个角色");
115   - }
  112 + //List<Integer> roleList = user.getRoleIds();
  113 + //if (roleList != null && roleList.size() > 1) {
  114 + // return error("一个用户不允许有多个角色");
  115 + //}
116 116 AjaxResult ajaxResult = toAjax(userService.insertUser(user));
117 117 return ajaxResult;
118 118 }
... ... @@ -142,10 +142,10 @@ public class UserController extends BaseController {
142 142 if (StringUtils.isNotNull(user.getId()) && User.unAdmin(user.getId())) {
143 143 return error("不允许修改超级管理员用户");
144 144 }
145   - List<Integer> roleList = user.getRoleIds();
146   - if (roleList != null && roleList.size() > 1) {
147   - return error("一个用户不允许有多个角色");
148   - }
  145 + //List<Integer> roleList = user.getRoleIds();
  146 + //if (roleList != null && roleList.size() > 1) {
  147 + // return error("一个用户不允许有多个角色");
  148 + //}
149 149 AjaxResult ajaxResult = toAjax(userService.updateUser(user));
150 150  
151 151 if (ShiroUtils.getLoginName().equals(user.getUserName())) {
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
... ... @@ -366,7 +366,9 @@ public class ShipmentTaskService {
366 366 if (inventoryDetails != null && !inventoryDetails.isEmpty()) {
367 367 for (InventoryDetail inventoryDetail : inventoryDetails) {
368 368 inventoryDetail.setLocationCode(task.getToLocation());
369   - inventoryDetailService.updateById(inventoryDetail);
  369 + if (!inventoryDetailService.updateById(inventoryDetail)) {
  370 + throw new ServiceException("完成出库任务,库存修改目标库位时失败" + inventoryDetail.getId());
  371 + }
370 372 }
371 373 }
372 374 }
... ... @@ -376,7 +378,7 @@ public class ShipmentTaskService {
376 378 for (TaskDetail taskDetail : taskDetails) {
377 379 if (taskDetail.getStatus() < QuantityConstant.TASK_STATUS_RUNNING) {
378 380 materialCodes.add(taskDetail.getMaterialCode());
379   - //获取出库子货箱
  381 + //获取出库组盘明细
380 382 ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getById(taskDetail.getAllocationId());
381 383 //获取对应库存记录
382 384 InventoryDetail inventoryDetail = inventoryDetailService.getById(taskDetail.getToInventoryId());
... ...