diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index afe0d03d..ee38792d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -514,7 +514,7 @@ public class PageController { mv.addObject("placeId", place.getId()); } Inventory inventoryById = materialService.findInventoryById(mid); - if (unit.equals(inventoryById.getUnit())) { + if ("-1".equals(unit)) { // 如果转移的基础单位 mv.addObject("quantity", placeAndMaterialByMidAndPid.getQuantity()); } else { diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java index 97de49f4..04796fa6 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -1481,13 +1481,47 @@ public class MaterialServiceImpl implements MaterialService { paramForSplitInventory.put("iid", pidAndMidForBefore.getId()); // 转移之前的拆单库存记录 SplitInventory splitInventoryForBefore = splitUnitMapper.findSplitInventoryByIidAndSid(paramForSplitInventory); - // 设置转移前库存的数量 - splitInventoryForBefore.setSaveQuantity(splitInventoryForBefore.getSaveQuantity() - quantity); - // 设置转移前的出库数量 - splitInventoryForBefore.setOutQuantity(splitInventoryForBefore.getOutQuantity() + quantity); - // 修改转移前的记录 - splitUnitMapper.updateSplitInventory(splitInventoryForBefore); + if(splitInventoryForBefore != null) { + //如果存在 + // 设置转移前库存的数量 + splitInventoryForBefore.setSaveQuantity(splitInventoryForBefore.getSaveQuantity() - quantity); + // 设置转移前的出库数量 + splitInventoryForBefore.setOutQuantity(splitInventoryForBefore.getOutQuantity() + quantity); + // 修改转移前的记录 + splitUnitMapper.updateSplitInventory(splitInventoryForBefore); + + } + else{ + // 如果不存在 + + // 获取当前单位对应的进制 + int scale = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); + // 计算当前转移数目对应需要减少的数目 + int num = (int)Math.ceil(quantity / (double)scale); + + // 修改当前库存数量 + inventoryByMid.setQuantity(inventoryByMid.getQuantity() - num); + materialMapper.updateInventory(inventoryByMid); + + // 修改当前库位对应关系的数目 + pidAndMidForBefore.setQuantity(pidAndMidForBefore.getQuantity() - num); + placeService.updateMaterialAndPlace(pidAndMidForBefore); + + Map insertForSplitInventory = new HashMap<>(); + insertForSplitInventory.put("mid",inventoryByMid.getMid()); + insertForSplitInventory.put("mcode",inventoryByMid.getCode()); + insertForSplitInventory.put("price",inventoryByMid.getPrice() / scale); + insertForSplitInventory.put("quantity",num * scale - quantity); + insertForSplitInventory.put("unit",unit); + insertForSplitInventory.put("depositoryId",map.get("depositoryId")); + insertForSplitInventory.put("placeId",pidAndMidForBefore.getPid()); + insertForSplitInventory.put("type","in"); + splitUnitService.addSplitInventory(insertForSplitInventory); + Integer new_id = ObjectFormatUtil.toInteger(insertForSplitInventory.get("newInMid")); + depositoryRecordMapper.deleteApplicationInRecordById(new_id); + + } // 定义进制时算法需要的参数 Map paramForNewMap = new HashMap<>(); @@ -1547,7 +1581,8 @@ public class MaterialServiceImpl implements MaterialService { // 修改库存数量 splitUnitMapper.updateSplitInventory(splitInventoryForAfter); } - } else { + } + else { // 如果不存在转移后的拆单库存记录 // 定义用于添加拆单库存记录 diff --git a/src/main/resources/templates/pages/depository/table-stock.html b/src/main/resources/templates/pages/depository/table-stock.html index 2986e048..c54827d7 100644 --- a/src/main/resources/templates/pages/depository/table-stock.html +++ b/src/main/resources/templates/pages/depository/table-stock.html @@ -75,7 +75,7 @@ @@ -414,7 +414,7 @@ // 当前点击行中的计量单位按钮 let unitBtn = obj.parentNode.parentNode.parentNode.childNodes[5].childNodes[0].childNodes[1]; - let unit = unitBtn.innerText; + let unit = unitBtn.value; var index = layer.open({ title: '选择库位', type: 2,