diff --git a/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java b/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java index 4aed38fc..3fd86555 100644 --- a/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java +++ b/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java @@ -26,10 +26,10 @@ public class PortConfig { // 接口地址 - public static String external_url = "http://172.20.2.87:39168"; -// public static String external_url = "http://127.0.0.1:39168"; - public static String external_url_6666 = "http://172.20.2.87:6666"; -// public static String external_url_6666 = "http://127.0.0.1:6666"; +// public static String external_url = "http://172.20.2.87:39168"; + public static String external_url = "http://127.0.0.1:39168"; +// public static String external_url_6666 = "http://172.20.2.87:6666"; + public static String external_url_6666 = "http://127.0.0.1:6666"; /** diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index f78eec21..6537c08c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -318,12 +318,12 @@ public class DepositoryRecordController { List departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUsers.size(); i++) { -// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); -// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); -// } - departmentHeadId.append("78").append(","); - departMentHeadQyWxName.append("PangFuZhen").append(","); + for (int i = 0; i < departmentHeadByUsers.size(); i++) { + departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); + departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); + } +// departmentHeadId.append("78").append(","); +// departMentHeadQyWxName.append("PangFuZhen").append(","); map.put("departmenthead", departmentHeadId.toString()); List params = (List) map.get("params"); Integer integer = 0; @@ -718,12 +718,12 @@ public class DepositoryRecordController { String crypt = Md5.crypt(header); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUsers.size(); i++) { -// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); -// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); -// } - departmentHeadId.append("78").append(","); - departMentHeadQyWxName.append("PangFuZhen").append(","); + for (int i = 0; i < departmentHeadByUsers.size(); i++) { + departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); + departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); + } +// departmentHeadId.append("78").append(","); +// departMentHeadQyWxName.append("PangFuZhen").append(","); map.put("departmenthead", departmentHeadId.toString()); map.put("departMentHeadQyWxName", departMentHeadQyWxName.toString()); List params = (List) map.get("params"); @@ -959,12 +959,12 @@ public class DepositoryRecordController { List departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUsers.size(); i++) { -// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); -// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); -// } - departmentHeadId.append("78").append(","); - departMentHeadQyWxName.append("PangFuZhen").append(","); + for (int i = 0; i < departmentHeadByUsers.size(); i++) { + departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); + departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); + } +// departmentHeadId.append("78").append(","); +// departMentHeadQyWxName.append("PangFuZhen").append(","); map.put("departmenthead", departmentHeadId.toString()); // 待出库物料id Integer mid = ObjectFormatUtil.toInteger(map.get("iid")); @@ -1100,12 +1100,12 @@ public class DepositoryRecordController { List departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUsers.size(); i++) { -// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); -// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); -// } - departmentHeadId.append("78").append(","); - departMentHeadQyWxName.append("PangFuZhen").append(","); + for (int i = 0; i < departmentHeadByUsers.size(); i++) { + departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); + departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); + } +// departmentHeadId.append("78").append(","); +// departMentHeadQyWxName.append("PangFuZhen").append(","); mainRecord.put("applicantId", userToken.getId()); mainRecord.put("applyRemark", ""); mainRecord.put("quantity", sumQuantity.toString()); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java b/src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java index 934e575f..da20b0e3 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java @@ -531,12 +531,12 @@ public class GroupController { StringBuilder departmentHeadId = new StringBuilder(); // 部门负责人企业微信user StringBuilder departMentHeadQyWxName = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUsers.size(); i++) { -// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); -// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); -// } - departmentHeadId.append("78").append(","); - departMentHeadQyWxName.append("PangFuZhen").append(","); + for (int i = 0; i < departmentHeadByUsers.size(); i++) { + departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); + departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); + } +// departmentHeadId.append("78").append(","); +// departMentHeadQyWxName.append("PangFuZhen").append(","); map.put("departmenthead", departmentHeadId.toString()); // 获取当前提交数 List params = (List) map.get("params"); @@ -685,12 +685,12 @@ public class GroupController { StringBuilder departmentHeadId = new StringBuilder(); // 部门负责人企业微信user StringBuilder departMentHeadQyWxName = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUsers.size(); i++) { -// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); -// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); -// } - departmentHeadId.append("78").append(","); - departMentHeadQyWxName.append("PangFuZhen").append(","); + for (int i = 0; i < departmentHeadByUsers.size(); i++) { + departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); + departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); + } +// departmentHeadId.append("78").append(","); +// departMentHeadQyWxName.append("PangFuZhen").append(","); map.put("departmenthead", departmentHeadId.toString()); // 执行结果 diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index e103a5de..baac68bc 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -415,6 +415,7 @@ public class MaterialController { materialPByCondition = materialService.findMaterialPByCondition(param); if (materialPByCondition.size() > 0) { mp = materialPByCondition.get(0); + mp.setPrice(0.0); mp.setMid(mp.getId()); paramByPrice.put("mcode", mp.getCode()); @@ -613,7 +614,8 @@ public class MaterialController { if ("-1".equals(unit)) { // 如果是基础单位 for (InventoryP inventoryP : inventoryPList) { - if (quantity <= (inventoryP.getQuantity() - inventoryP.getNumberOfTemporary())) { // 如果当前数量合适则跳出循环 + Integer integer = inventoryP.getShowQuantity().get(inventoryP.getBaseUnit()); + if (quantity <= (integer - inventoryP.getNumberOfTemporary())) { // 如果当前数量合适则跳出循环 flag = true; break; } @@ -621,6 +623,7 @@ public class MaterialController { } else { // 如果是拆单单位 + int saveQuantity = 0; for (InventoryP inventoryP : inventoryPList) { @@ -630,8 +633,7 @@ public class MaterialController { // 获取当前拆单记录 SplitInfo splitInfo = splitUnitService.findSplitInfoByMidAndUnit(paramForSplitInfo); - // 获取最高级对应当前单位的数量 - int saveQuantity = (inventoryP.getQuantity() - inventoryP.getNumberOfTemporary()) * splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); + // 获取当前物料所在库位 List placeByMidAndDid = placeService.findPlaceByMidAndDid(inventoryP.getId(), depository.getId()); for (PlaceP p : @@ -639,20 +641,8 @@ public class MaterialController { // 获取对应关系 MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(p.getId(), inventoryP.getId()); - if (placeAndMaterialByMidAndPid != null) { - SplitInventory splitInventory = splitUnitService.findSplitInventoryByIidAndSid(placeAndMaterialByMidAndPid.getId(), splitInfo.getId()); - if (splitInventory != null) { - saveQuantity += (splitInventory.getSaveQuantity() - splitInventory.getOutQuantity()); - - SplitInfo parentSplitInfo = splitUnitService.findSplitInfoById(splitInfo.getParentId()); - while (parentSplitInfo != null) { - splitInventory = splitUnitService.findSplitInventoryByIidAndSid(placeAndMaterialByMidAndPid.getId(), parentSplitInfo.getId()); - splitInfo = splitUnitService.findSplitInfoByParentId(parentSplitInfo.getId()); - saveQuantity += (splitInventory.getSaveQuantity() - splitInventory.getOutQuantity()) * splitInfo.getQuantity(); - parentSplitInfo = splitUnitService.findSplitInfoById(parentSplitInfo.getParentId()); - } - } - } + int allInventoryForSplitInfo = splitUnitService.findAllInventoryForSplitInfo(-1, placeAndMaterialByMidAndPid, splitInfo.getId(), 0, true); + saveQuantity += allInventoryForSplitInfo; } if (quantity <= saveQuantity) { // 如果当前数量合适则跳出循环 @@ -663,7 +653,8 @@ public class MaterialController { } } } - } else { + } + else { // 获取当前要转移的库位 Place place = placeService.findPlaceById(placeId); if (Integer.compare(place.getId(), 0) != 0) { diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/StockTakingController.java b/src/main/java/com/dreamchaser/depository_manage/controller/StockTakingController.java index a0b23486..30c0bc88 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/StockTakingController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/StockTakingController.java @@ -74,9 +74,9 @@ public class StockTakingController { continue; } UserByPort departmentManager = PortConfig.findUserByPortByNumber(s); -// QyWxDepartmentManager.append(departmentManager.getWorkwechat()+","); + QyWxDepartmentManager.append(departmentManager.getWorkwechat()+","); } - QyWxDepartmentManager.append("PangFuZhen").append(","); +// QyWxDepartmentManager.append("PangFuZhen").append(","); map.put("state",3); map.put("departmentManagerState",3); map.remove("departmentManagerId"); diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml index f24bd983..f8336c14 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml @@ -331,6 +331,12 @@ and applicant_time >= #{applicantTime} + + and mversion = #{version} + + + and mcode = #{code} + order by applicant_time desc LIMIT #{begin},#{size} @@ -404,6 +410,12 @@ and istransfer = #{istransfer} + + and mversion = #{version} + + + and mcode = #{code} + and placeId = #{placeId} diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/InventoryP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/InventoryP.java index 0aa23900..3e99e8e1 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/InventoryP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/InventoryP.java @@ -186,6 +186,23 @@ public class InventoryP { + /** + * 基础单位 + */ + private String baseUnit; + + /** + * 默认单位 + */ + private String defaultUnit; + + /** + * 基础单位对应数目 + */ + private Integer defaultQuantity; + + + public InventoryP(Integer id, Integer depositoryId, String mname, Integer quantity, Double price, String typeName) { this.id = id; this.mname = mname; @@ -215,8 +232,10 @@ public class InventoryP { this.remark = inventory.getRemark(); // 备注 this.shelfLifeForCalc = inventory.getShelfLife(); //保质期,用于计算 this.numberOfTemporary = inventory.getNumberOfTemporary(); // 临时数量(出库数量) + this.baseUnit = inventory.getUnit(); // 基础单位 } public InventoryP() { } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java index 5070c5ae..2d929645 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/MaterialP.java @@ -178,6 +178,11 @@ public class MaterialP { */ private List splitInfoList; + /** + * 基础单位 + */ + private String baseUnit; + @@ -211,6 +216,7 @@ public class MaterialP { this.remark = material.getRemark(); // 备注 this.shelfLifeForCalc = material.getShelfLife(); //保质期,用于计算 this.typeName = material.getTypeName(); // 物料类型 + this.baseUnit = material.getUnit(); // 基础单位 } public MaterialP() { diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 8fb02c88..7fd772a2 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -1586,9 +1586,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { for (int i = 0; i < depositoryManagers.length; i++) { Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]); UserByPort depositoryManager = LinkInterfaceUtil.FindUserById(uid, userByPort); -// depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+","); + depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+","); } - depositoryManagerByQyWx.append("PangFuZhen,"); +// depositoryManagerByQyWx.append("PangFuZhen,"); JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId(), userAgent); // 删除redis中本订单 @@ -1708,9 +1708,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 更新redis中用户记录 redisTemplate.opsForHash().putAll("user:" + integer, userRecord); minRecordManage.append(integer).append(","); -// QyWxUid.append(manager.getWorkwechat()+","); + QyWxUid.append(manager.getWorkwechat()+","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); minRecord.put("manager", minRecordManage.toString()); // 添加子订单到redis中 redisTemplate.opsForHash().putAll(minRecordKey, minRecord); @@ -1731,9 +1731,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (Integer value : userIdByDid) { UserByPort manager = LinkInterfaceUtil.FindUserById(value, userByPort); -// QyWxUid.append(manager.getWorkwechat()+","); + QyWxUid.append(manager.getWorkwechat()+","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); // 根据仓库向仓库管理员发送审批 JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userByPort, ObjectFormatUtil.toInteger(mainId), minIdList, QyWxUid.toString()); String sp_no = jsonObject.getString("sp_no"); @@ -1789,9 +1789,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (int i = 0; i < departmentHeadByUser.size(); i++) { depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); -// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); + QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); } - QyWxUid.append("PangFuZhen" + ","); +// QyWxUid.append("PangFuZhen" + ","); map.put("depositoryManager", depositoryManager.toString()); } else { // 如果点击的是驳回 @@ -1935,9 +1935,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (int i = 0; i < departmentHeadByUser.size(); i++) { depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); -// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat() + ","); + QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat() + ","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); map.put("depositoryManager", depositoryManager.toString()); // 向仓储中心负责人发送新的消息 new Thread(new Runnable() { @@ -1995,7 +1995,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { QyWxUid.append(userByPort.getWorkwechat()).append(","); } String s = QyWxUid.toString(); - s = "PangFuZhen,"; +// s = "PangFuZhen,"; qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1); } }).start(); @@ -2078,9 +2078,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { redisTemplate.opsForHash().putAll("user:" + integer, userRecord); minRecordManage.append(integer).append(","); UserByPort userByPort = LinkInterfaceUtil.FindUserById(integer, userToken); -// QyWxUid.append(userByPort.getWorkwechat() + ","); + QyWxUid.append(userByPort.getWorkwechat() + ","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); minRecord.put("manager", minRecordManage.toString()); // 添加子订单到redis中 redisTemplate.opsForHash().putAll(minRecordKey, minRecord); @@ -2105,7 +2105,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userToken); // QyWxUid.append(manager.getWorkwechat()+","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); // 根据仓库向仓库管理员发送审批 JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userToken, ObjectFormatUtil.toInteger(id), minIdList, QyWxUid.toString()); String sp_no = jsonObject.getString("sp_no"); @@ -2140,7 +2140,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { QyWxUid.append(userByPort.getWorkwechat()).append(","); } String s = QyWxUid.toString(); - s = "PangFuZhen,"; +// s = "PangFuZhen,"; qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1); } }).start(); @@ -2221,9 +2221,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (int i = 0; i < departmentHeadByUser.size(); i++) { depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); -// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); + QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); } - QyWxUid.append("PangFuZhen" + ","); +// QyWxUid.append("PangFuZhen" + ","); map.put("depositoryManager", depositoryManager.toString()); // 向仓储中心负责人发送新的消息 JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(outId), false, userAgent); @@ -2314,9 +2314,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 更新redis中用户记录 redisTemplate.opsForHash().putAll("user:" + userIdByDid.get(j), userRecord); minRecordManage.append(userIdByDid.get(j)).append(","); -// QyWxUid.append(manager.getWorkwechat()+","); + QyWxUid.append(manager.getWorkwechat()+","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); minRecord.put("manager", minRecordManage.toString()); // 添加子订单到redis中 redisTemplate.opsForHash().putAll(minRecordKey, minRecord); @@ -2337,9 +2337,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder QyWxUid = new StringBuilder(); for (int j = 0; j < userIdByDid.size(); j++) { UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userByPort); -// QyWxUid.append(manager.getWorkwechat()+","); + QyWxUid.append(manager.getWorkwechat()+","); } - QyWxUid.append("PangFuZhen,"); +// QyWxUid.append("PangFuZhen,"); // 根据仓库向仓库管理员发送审批 JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userByPort, ObjectFormatUtil.toInteger(outId), minIdList, QyWxUid.toString()); String sp_no = jsonObject.getString("sp_no"); 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 c00df820..729ce44b 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 @@ -628,6 +628,7 @@ public class MaterialServiceImpl implements MaterialService { /** * 根据物料类型修改物料状态 + * * @param map 待修改条件 * @return */ @@ -702,49 +703,57 @@ public class MaterialServiceImpl implements MaterialService { Map splitInventoryForUnit = new HashMap<>(); + splitInventoryForUnit.put(inventory.getUnit(), inventory.getQuantity()); + + // 定义最后展示单位及数目 + String unit = inventory.getUnit(); - // 获取拆单信息对应库存 - StringBuilder showQuantity = new StringBuilder(); //定义总额 double amounts = 0.0; - if (Integer.compare(m.getQuantity(), 0) != 0) { - showQuantity.append(m.getUnit()).append(":").append(m.getQuantity()).append(" "); - } for (PlaceP place : placeByMidAndDid) { // 获取当前具体数据 MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(place.getId(), m.getId()); // 获取当前是否存在拆单处理记录 - List splitInventoryList = splitUnitMapper.findSplitInventoryByIid(placeAndMaterialByMidAndPid.getId()); - if (splitInventoryList.size() > 0) { - // 如果存在拆单库存处理记录 - for (SplitInventory splitInventory : splitInventoryList) { - SplitInfo splitInfo = splitUnitMapper.findSplitInfoById(splitInventory.getSid()); - if (Integer.compare(splitInventory.getSaveQuantity(), 0) != 0) { - if (splitInventoryForUnit.containsKey(splitInfo.getNewUnit())) { - // 如果当前存在该拆单类型的记录 - - // 更新当前类型数据 - splitInventoryForUnit.put(splitInfo.getNewUnit(), splitInventoryForUnit.get(splitInfo.getNewUnit()) + splitInventory.getSaveQuantity()); - } else { - // 如果不存在,则新增 - splitInventoryForUnit.put(splitInfo.getNewUnit(), splitInventory.getSaveQuantity()); - } - // 计算拆单后的单价 - BigDecimal bigDecimal = BigDecimal.valueOf(inventory.getPrice() / splitInfo.getQuantity()); - double split_price = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - amounts += split_price * splitInventory.getSaveQuantity(); + // 获取当前物料对应的所有拆单数目 + List splitInfoByMid = splitUnitMapper.findSplitInfoByMid(inventory.getMid()); + for (SplitInfo splitInfo : splitInfoByMid + ) { + // 获取当前拆单单位的总数 + int saveQuantity = splitUnitService.findAllInventoryForSplitInfo(-1, placeAndMaterialByMidAndPid, splitInfo.getId(), 0, true); + + if (splitInventoryForUnit.containsKey(splitInfo.getNewUnit())) { + // 如果当前存在该拆单类型的记录 + + // 更新当前类型数据 + splitInventoryForUnit.put(splitInfo.getNewUnit(), splitInventoryForUnit.get(splitInfo.getNewUnit()) + saveQuantity); + } else { + // 如果不存在,则新增 + splitInventoryForUnit.put(splitInfo.getNewUnit(), saveQuantity); + } + BigDecimal bigDecimal = BigDecimal.valueOf(inventory.getPrice() / splitInfo.getQuantity()); + double split_price = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + amounts += split_price * saveQuantity; + unit = splitInfo.getNewUnit(); } - } + +// } } // 设置新总额 m.setAmounts(m.getAmounts() + amounts); - // 获取当前各拆单信息对应的库存 - splitInventoryForUnit.put(inventory.getUnit(), inventory.getQuantity()); + // 设置当前各拆单信息对应的库存 + + m.setQuantity(splitInventoryForUnit.get(unit)); + m.setDefaultQuantity(splitInventoryForUnit.get(unit)); + + splitInventoryForUnit.remove(unit); + m.setShowQuantity(splitInventoryForUnit); + m.setUnit(unit); + m.setDefaultUnit(unit); result.add(m); } return result; @@ -983,9 +992,9 @@ public class MaterialServiceImpl implements MaterialService { List materialByBarCodeByCondition = materialMapper.findMaterialByBarCodeByCondition(map); MaterialAndBarCode materialAndBarCode = null; if (materialByBarCodeByCondition.size() > 0) { - materialAndBarCode = materialByBarCodeByCondition.get(0); - }else{ - map.put("qrCode",barCode); + materialAndBarCode = materialByBarCodeByCondition.get(0); + } else { + map.put("qrCode", barCode); materialAndBarCode = materialMapper.findMaterialAndBarCodeByQrCode(map); } return materialAndBarCode; @@ -1103,11 +1112,11 @@ public class MaterialServiceImpl implements MaterialService { @Override public String findMaterialCodeByQrCode(String qrCode) { String code = qrCodeMapper.findMaterialCodeByQrCode(qrCode); - if(code == null){ - Map map = new HashMap<>(); - map.put("qrCode",qrCode); + if (code == null) { + Map map = new HashMap<>(); + map.put("qrCode", qrCode); MaterialAndBarCode materialAndBarCodeByQrCode = materialMapper.findMaterialAndBarCodeByQrCode(map); - if(materialAndBarCodeByQrCode != null){ + if (materialAndBarCodeByQrCode != null) { code = materialAndBarCodeByQrCode.getMcode(); } } @@ -2264,7 +2273,7 @@ public class MaterialServiceImpl implements MaterialService { List result = new ArrayList<>(); Map children = new HashMap<>(); param.put("parentId", Oldid); - param.put("state",1); + param.put("state", 1); // 获取当前父类的子类 List materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param); if (materialTypeByCondition.size() > 0) { @@ -2283,7 +2292,7 @@ public class MaterialServiceImpl implements MaterialService { Map param = new HashMap<>(); List result = new ArrayList<>(); param.put("parentId", Oldid); - param.put("state",1); + param.put("state", 1); // 获取当前父类的子类 List materialTypeByCondition = materialTypeMapper.findMaterialTypeByCondition(param); if (materialTypeByCondition.size() > 0 && (level == staticlevel)) { diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java index 79874895..91361a03 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java @@ -2058,13 +2058,13 @@ public class QyWxOperationService { // 获取处理的仓储负责人 List notifyerList = new ArrayList<>(); // // 查询负责人 -// String user = userToken.getWorkwechat(); -// if (user == null || "".equals(user)) { -// user = userToken.getWechat(); -// } -// notifyerList.add(user); - workwechat = "PangFuZhen"; - notifyerList.add(workwechat); + String user = userToken.getWorkwechat(); + if (user == null || "".equals(user)) { + user = userToken.getWechat(); + } + notifyerList.add(user); +// workwechat = "PangFuZhen"; +// notifyerList.add(workwechat); approvalTemplate.setNotifyer(notifyerList); //抄送方式:1-提单时抄送(默认值); 2-单据通过后抄送;3-提单和单据通过后抄送。仅use_template_approver为0时生效。 diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java index b3a8a4a1..35f57b5e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java @@ -206,7 +206,8 @@ public class SplitUnitServiceImpl implements SplitUnitService { } - } else { + } + else { // 如果没有记录 // 获取当前拆单记录的父级 @@ -280,6 +281,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { map.put("quantity", "0"); depositoryRecordService.applicationInPlace(map); map.put("applicationInId",map.get("id")); + depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); map.remove("id"); } else { @@ -539,6 +541,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { double saveQuantity = quantity - disposeQuantity * scale; if (splitInventory != null) { + // 如果拆单库存处理记录不为空 if (splitInventory.getSaveQuantity() + saveQuantity >= splitInfo.getQuantity()) { // 当前库存拆单记录与新入库的数目大于预设的进制 @@ -572,7 +575,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { map.put("realQuantity", String.valueOf(inQuantity)); depositoryRecordService.applicationInPlace(map); // 删除入库订单 - depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); +// depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); map.remove("id"); } } @@ -589,7 +592,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { map.put("realQuantity", String.valueOf(inQuantity)); depositoryRecordService.applicationInPlace(map); // 删除入库订单 - depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); +// depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); map.remove("id"); } } @@ -619,7 +622,8 @@ public class SplitUnitServiceImpl implements SplitUnitService { SplitInfo parentSplitInfo = splitUnitMapper.findSplitInfoById(parentId); updateSplitInfoSaveQuantity(parentSplitInfo, quantity_scale, iid, map, inQuantity, baseSplitInfo); - } else { + } + else { double price = Double.parseDouble((String) map.get("price")); price = price * findSplitInfoScaleQuantity(baseSplitInfo, -1); map.put("price", Double.toString(price)); @@ -627,7 +631,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { map.put("realQuantity", String.valueOf(inQuantity)); depositoryRecordService.applicationInPlace(map); // 删除入库订单 - depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); +// depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); map.remove("id"); } } else { @@ -639,7 +643,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { map.put("price", map.get("price").toString()); depositoryRecordService.applicationInPlace(map); // 删除入库订单 - depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); +// depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(map.get("id"))); map.remove("id"); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java index aedcbb1e..88dcfb1c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java @@ -485,9 +485,9 @@ public class StockTakingServiceImpl implements StockTakingService { public void run() { // 获取盘点人员 UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userToken); -// String workwechat = originator.getWorkwechat(); - JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinId, userAgent); -// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinId, userAgent); + String workwechat = originator.getWorkwechat(); +// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinId, userAgent); + JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinId, userAgent); // 将当前返回结果保存到redis中 if (jsonObject != null) { Map QyWxMessageMap = new HashMap<>(); @@ -545,7 +545,7 @@ public class StockTakingServiceImpl implements StockTakingService { QyWxUid.append(userByPort.getWorkwechat()).append(","); } String s = QyWxUid.toString(); - s = "PangFuZhen,"; +// s = "PangFuZhen,"; qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(mainId),s,userAgent,2); } }).start(); @@ -911,7 +911,7 @@ public class StockTakingServiceImpl implements StockTakingService { @Override public void run() { String s = QyWxUid.toString(); - s = "PangFuZhen,"; +// s = "PangFuZhen,"; JSONObject jsonObject = qyWxOperationService.sendCcStockTakingMessageToHead(s, map, userToken, finalMainRecord, userAgent); } }).start(); @@ -1339,7 +1339,7 @@ public class StockTakingServiceImpl implements StockTakingService { QyWxUid.append(userByPort1.getWorkwechat()).append(","); } String s = QyWxUid.toString(); - s = "PangFuZhen,"; +// s = "PangFuZhen,"; JSONObject jsonObject = qyWxOperationService.sendCcStockTakingMessageToHead(s, map, null, finalMainRecord, userAgent); } }).start(); @@ -1544,9 +1544,9 @@ public class StockTakingServiceImpl implements StockTakingService { public void run() { // 获取盘点人员 UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null); -// String workwechat = originator.getWorkwechat(); - JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent); -// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent); + String workwechat = originator.getWorkwechat(); +// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent); + JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent); // 将当前返回结果保存到redis中 if (jsonObject != null) { Map QyWxMessageMap = new HashMap<>(); @@ -2431,8 +2431,8 @@ public class StockTakingServiceImpl implements StockTakingService { map.put("minIds", minIds); StringBuilder departMentHeadQyWxName = new StringBuilder(); UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(originator), userToken); -// departMentHeadQyWxName.append(userByPort.getWorkwechat()+","); - departMentHeadQyWxName.append("PangFuZhen,"); + departMentHeadQyWxName.append(userByPort.getWorkwechat()+","); +// departMentHeadQyWxName.append("PangFuZhen,"); JSONObject jsonObject = qyWxOperationService.sendCcStockTakingTransferMessageToHead(departMentHeadQyWxName.toString(), map, userToken, finalMainRecord, userAgent); } }).start(); @@ -2635,9 +2635,9 @@ public class StockTakingServiceImpl implements StockTakingService { public void run() { // 获取盘点人员 UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null); -// String workwechat = originator.getWorkwechat(); - JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinIds, userAgent); -// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinIds, userAgent); + String workwechat = originator.getWorkwechat(); +// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinIds, userAgent); + JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinIds, userAgent); if (jsonObject != null) { // 将当前返回结果保存到redis中 Map QyWxMessageMap = new HashMap<>(); @@ -2659,9 +2659,9 @@ public class StockTakingServiceImpl implements StockTakingService { public void run() { // 获取盘点人员 UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null); -// String workwechat = originator.getWorkwechat(); - qyWxOperationService.sendStockTakingErrMessageToHead("PangFuZhen,", errIds, mainRecord, null, userAgent); -// qyWxOperationService.sendStockTakingErrMessageToHead(workwechat, errIds, mainRecord, null, userAgent); + String workwechat = originator.getWorkwechat(); +// qyWxOperationService.sendStockTakingErrMessageToHead("PangFuZhen,", errIds, mainRecord, null, userAgent); + qyWxOperationService.sendStockTakingErrMessageToHead(workwechat, errIds, mainRecord, null, userAgent); } }).start(); } diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 2b02ef35..628fe92f 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -17,8 +17,8 @@ spring: ##数据库设置 datasource: - username: root - password: root + username: depository + password: NhE47edekBHxhjYk url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource diff --git a/src/main/resources/templates/pages/application/application-in.html b/src/main/resources/templates/pages/application/application-in.html index 8e2aee93..751a462d 100644 --- a/src/main/resources/templates/pages/application/application-in.html +++ b/src/main/resources/templates/pages/application/application-in.html @@ -749,7 +749,7 @@ } var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(d.unit, "-1")); + $("#unit" + idNumber).append(new Option(d.baseUnit, "-1")); var unitList = d["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -875,7 +875,7 @@ } var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -940,7 +940,7 @@ } var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -1122,7 +1122,7 @@ form.render(); var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -1569,7 +1569,7 @@ $('#place' + idNumber).append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素 }); $("#unit" + idNumber).empty(); - $("#unit" + idNumber).append(new Option(data.unit, "-1")); + $("#unit" + idNumber).append(new Option(data.baseUnit, "-1")); $.each(data.splitInfoList, function (index, item) { $("#unit" + idNumber).append(new Option(item.newUnit, item.newUnit)); }); diff --git a/src/main/resources/templates/pages/application/application-in_scanQrCode.html b/src/main/resources/templates/pages/application/application-in_scanQrCode.html index dbd3d1d9..55b2e6f7 100644 --- a/src/main/resources/templates/pages/application/application-in_scanQrCode.html +++ b/src/main/resources/templates/pages/application/application-in_scanQrCode.html @@ -777,7 +777,7 @@ } var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -843,7 +843,7 @@ } var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -916,7 +916,7 @@ form.render(); var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); diff --git a/src/main/resources/templates/pages/application/application-out.html b/src/main/resources/templates/pages/application/application-out.html index 0a4ea6a6..97eb29da 100644 --- a/src/main/resources/templates/pages/application/application-out.html +++ b/src/main/resources/templates/pages/application/application-out.html @@ -785,7 +785,7 @@ var materialAndBarCodeList = d["materialAndBarCodeList"]; var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(d.unit, "-1")); + $("#unit" + idNumber).append(new Option(d.baseUnit, "-1")); var unitList = d["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -939,7 +939,7 @@ var idNumber = materialId.name.split("mid")[1]; var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -1210,7 +1210,7 @@ var material = d.data[0]; var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; if(unitList !== null && unitList != undefined){ for (let i = 0; i < unitList.length; i++) { @@ -1303,7 +1303,7 @@ var idNumber = materialId.name.split("mid")[1]; var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(data.unit, "-1")); + $("#unit" + idNumber).append(new Option(data.baseUnit, "-1")); var unitList = data["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -1405,7 +1405,7 @@ $('#place' + idNumber).append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素 }); $("#unit" + idNumber).empty(); - $("#unit" + idNumber).append(new Option(data.unit, "-1")); + $("#unit" + idNumber).append(new Option(data.baseUnit, "-1")); $.each(data.splitInfoList, function (index, item) { $("#unit" + idNumber).append(new Option(item.newUnit, item.newUnit)); }); diff --git a/src/main/resources/templates/pages/application/application-out_back.html b/src/main/resources/templates/pages/application/application-out_back.html index dadd2924..32f98ab6 100644 --- a/src/main/resources/templates/pages/application/application-out_back.html +++ b/src/main/resources/templates/pages/application/application-out_back.html @@ -172,7 +172,7 @@ req.mid = d.id; let unitItem = $("#unit"); unitItem.empty(); - unitItem.append(new Option(d.unit, "-1")); + unitItem.append(new Option(d.baseUnit, "-1")); $.each(d.splitInfoList, function (index, item) { $("#unit").append(new Option(item.newUnit, item.newUnit)); }); @@ -211,7 +211,7 @@ $("#mid").val(material.id); $("#code").val(material.code); $("#unit").empty(); - $("#unit").append(new Option(material.unit, "-1")); + $("#unit").append(new Option(material.baseUnit, "-1")); $.each(material.splitInfoList, function (index, item) { $("#unit").append(new Option(item.newUnit, item.newUnit)); }); @@ -277,7 +277,7 @@ } $("#code").val(code); $("#unit").empty(); - $("#unit").append(new Option(d.data.materialById.unit, "-1")); + $("#unit").append(new Option(d.data.materialById.baseUnit, "-1")); $.each(d.data.materialById.splitInfoList, function (index, item) { $("#unit").append(new Option(item.newUnit, item.newUnit)); }); diff --git a/src/main/resources/templates/pages/application/application-transfer.html b/src/main/resources/templates/pages/application/application-transfer.html index d2363958..efcc4f44 100644 --- a/src/main/resources/templates/pages/application/application-transfer.html +++ b/src/main/resources/templates/pages/application/application-transfer.html @@ -455,7 +455,7 @@ var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(data.unit, "-1")); + $("#unit" + idNumber).append(new Option(data.baseUnit, "-1")); var unitList = data["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -548,7 +548,7 @@ barCode.empty(); } $("#unit" + idNumber).empty(); - $("#unit" + idNumber).append(new Option(data.unit, "-1")); + $("#unit" + idNumber).append(new Option(data.baseUnit, "-1")); $.each(data.splitInfoList, function (index, item) { $("#unit" + idNumber).append(new Option(item.newUnit, item.newUnit)); }); @@ -638,7 +638,7 @@ } var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(d.unit, "-1")); + $("#unit" + idNumber).append(new Option(d.baseUnit, "-1")); var unitList = d["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -737,7 +737,7 @@ }); var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; for (let i = 0; i < unitList.length; i++) { $("#unit" + idNumber).append(new Option(unitList[i].newUnit, unitList[i].newUnit)); @@ -828,7 +828,7 @@ var material = d.data[0]; var unit = $("#unit" + idNumber); unit.empty(); - $("#unit" + idNumber).append(new Option(material.unit, "-1")); + $("#unit" + idNumber).append(new Option(material.baseUnit, "-1")); var unitList = material["splitInfoList"]; if(unitList !== null && unitList != undefined){ for (let i = 0; i < unitList.length; i++) { diff --git a/src/main/resources/templates/pages/depository/table-in.html b/src/main/resources/templates/pages/depository/table-in.html index 3b19f780..ba7770f8 100644 --- a/src/main/resources/templates/pages/depository/table-in.html +++ b/src/main/resources/templates/pages/depository/table-in.html @@ -36,15 +36,23 @@
-
+
- - - - +
+
+
+ +
+ +
+
+
+ +
+
@@ -174,6 +182,13 @@ if (data.applyTime !== '') { req.applyTime = data.applyTime; } + if (data.code !== '') { + req.code = data.code; + } + if (data.code !== '') { + req.version = data.version; + } + //执行搜索重载 table.reload('currentTableId', { url: '/depositoryRecord/applicationInView', diff --git a/src/main/resources/templates/pages/depository/table-out.html b/src/main/resources/templates/pages/depository/table-out.html index a744a135..028c934f 100644 --- a/src/main/resources/templates/pages/depository/table-out.html +++ b/src/main/resources/templates/pages/depository/table-out.html @@ -40,16 +40,24 @@
-
+
+ +
+ +
+
+
+ +
+ +
+
@@ -159,26 +154,6 @@ diff --git a/src/test/java/com/dreamchaser/depository_manage/TestQywxSplitInventoryAll.java b/src/test/java/com/dreamchaser/depository_manage/TestQywxSplitInventoryAll.java new file mode 100644 index 00000000..f1dcf4f4 --- /dev/null +++ b/src/test/java/com/dreamchaser/depository_manage/TestQywxSplitInventoryAll.java @@ -0,0 +1,174 @@ +package com.dreamchaser.depository_manage; + +import com.dreamchaser.depository_manage.entity.MaterialAndPlace; +import com.dreamchaser.depository_manage.entity.SplitInfo; +import com.dreamchaser.depository_manage.entity.SplitInventory; +import com.dreamchaser.depository_manage.mapper.PlaceMapper; +import com.dreamchaser.depository_manage.mapper.SplitUnitMapper; +import com.dreamchaser.depository_manage.service.SplitUnitService; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.HashMap; +import java.util.Map; + +@SpringBootTest +@RunWith(SpringRunner.class) +public class TestQywxSplitInventoryAll { + + @Autowired + SplitUnitMapper splitUnitMapper; + + @Autowired + PlaceMapper placeMapper; + + + @Test + public void Test(){ + Map map = new HashMap<>(); + map.put("mid","6"); + map.put("pid","8"); + MaterialAndPlace placeAndMaterialByMidAndPid = placeMapper.findPlaceAndMaterialByMidAndPid(map); + int allInventoryForSplitInfo = findAllInventoryForSplitInfo(-1, placeAndMaterialByMidAndPid, 4, 0, true); + System.out.println(allInventoryForSplitInfo); + } + + + public int findAllInventoryForSplitInfo(Integer splitInfoId, MaterialAndPlace materialAndPlace, Integer baseSplitInfoId, int saveQuantity, boolean allQuantityFlag) { + if (allQuantityFlag) { + + // 用于标志是否第一次计算 + boolean flag = false; + + // 获取当前基础单位 + SplitInfo baseSplitInfo = splitUnitMapper.findSplitInfoById(baseSplitInfoId); + + // 获取当前基础单位的库存 + Map paramForSplitInventory = new HashMap<>(); + paramForSplitInventory.put("iid", materialAndPlace.getId()); + + // 如果当前获取的为对应基础单位的所有库存 + // 如果是第一次计算 + + if (Integer.compare(saveQuantity, 0) == 0) { + // 如果是第一次计算 + + + paramForSplitInventory.put("sid", baseSplitInfoId); + + // 当前基础单位的库存 + SplitInventory baseSplitInventory = splitUnitMapper.findSplitInventoryByIidAndSid(paramForSplitInventory); + if (baseSplitInventory != null) { + saveQuantity += baseSplitInventory.getSaveQuantity(); + } + } + if (Integer.compare(-1, splitInfoId) != 0) { + flag = true; + // 获取当前记录的子记录 + SplitInfo splitInfoByParentId = splitUnitMapper.findSplitInfoByParentId(splitInfoId); + paramForSplitInventory.put("sid", splitInfoId); + SplitInventory splitInventoryByIidAndSid = splitUnitMapper.findSplitInventoryByIidAndSid(paramForSplitInventory); + if (splitInventoryByIidAndSid != null) { + saveQuantity += splitInventoryByIidAndSid.getSaveQuantity() * splitInfoByParentId.getQuantity(); + } + } + + if (baseSplitInfo.getParentId() != null && !flag) { + // 如果有父级且是第一次 + + // 获取其父级 + SplitInfo parentSplitInfo = splitUnitMapper.findSplitInfoById(baseSplitInfo.getParentId()); + return findAllInventoryForSplitInfo(parentSplitInfo.getId(), materialAndPlace, baseSplitInfoId, saveQuantity, allQuantityFlag); + } else { + if (flag) { + // 如果不是第一次 + + // 获取当前的拆单记录 + SplitInfo splitInfo = splitUnitMapper.findSplitInfoById(splitInfoId); + if (splitInfo.getParentId() != null) { + SplitInfo parentSplitInfo = splitUnitMapper.findSplitInfoById(splitInfo.getParentId()); + return findAllInventoryForSplitInfo(parentSplitInfo.getId(), materialAndPlace, baseSplitInfoId, saveQuantity, allQuantityFlag); + } else { + int splitInfoScaleQuantity = findSplitInfoScaleQuantity(baseSplitInfo, -1); + return saveQuantity + materialAndPlace.getQuantity() * splitInfoScaleQuantity; + } + + } else { + int splitInfoScaleQuantity = findSplitInfoScaleQuantity(baseSplitInfo, -1); + return saveQuantity + materialAndPlace.getQuantity() * splitInfoScaleQuantity; + } + } + + + } + else { + // 如果不是获取所有库存 + // 获取当前基础单位 + SplitInfo baseSplitInfo = splitUnitMapper.findSplitInfoById(baseSplitInfoId); + + // 获取当前基础单位的库存 + Map paramForSplitInventory = new HashMap<>(); + paramForSplitInventory.put("iid", materialAndPlace.getId()); + + // 如果当前获取的为对应基础单位的所有库存 + if (Integer.compare(saveQuantity, 0) == 0) { + // 如果是第一次计算 + + paramForSplitInventory.put("sid", baseSplitInfoId); + + // 当前基础单位的库存 + SplitInventory baseSplitInventory = splitUnitMapper.findSplitInventoryByIidAndSid(paramForSplitInventory); + saveQuantity += baseSplitInventory.getSaveQuantity(); + } + // 获取当前拆单记录与基础拆单记录之间的进制 + + int splitInfoScaleQuantity = findSplitInfoScaleQuantity(baseSplitInfo, splitInfoId); + paramForSplitInventory.put("sid", splitInfoId); + // 获取当前拆单记录的库存 + SplitInventory splitInventory = splitUnitMapper.findSplitInventoryByIidAndSid(paramForSplitInventory); + saveQuantity += splitInventory.getSaveQuantity() * splitInfoScaleQuantity; + + // 获取当前的子类 + SplitInfo splitInfoByParentId = splitUnitMapper.findSplitInfoByParentId(splitInfoId); + if (splitInfoByParentId != null && Integer.compare(splitInfoByParentId.getId(), baseSplitInfoId) != 0) { + // 如果有子类 + return findAllInventoryForSplitInfo(splitInfoByParentId.getId(), materialAndPlace, baseSplitInfoId, saveQuantity, allQuantityFlag); + } else { + // 如果没有 + return saveQuantity; + } + + + } + } + + + + public int findSplitInfoScaleQuantity(SplitInfo splitInfo, Integer parentSplitInfoId) { + int quantity = 1; // 定义进制 + if (parentSplitInfoId != null && Integer.compare(-1, parentSplitInfoId) != 0) { + // 如果待查询的父级不是顶级 + if (Integer.compare(splitInfo.getParentId(), parentSplitInfoId) == 0) { + // 如果当前拆单记录是目标拆单单位 + quantity *= splitInfo.getQuantity(); + + return quantity; + } else { + SplitInfo splitInfoById = splitUnitMapper.findSplitInfoById(splitInfo.getParentId()); + return quantity * findSplitInfoScaleQuantity(splitInfoById, parentSplitInfoId); + } + } else { + quantity *= splitInfo.getQuantity(); + if (splitInfo.getParentId() != null) { + SplitInfo splitInfoById = splitUnitMapper.findSplitInfoById(splitInfo.getParentId()); + return quantity * findSplitInfoScaleQuantity(splitInfoById, parentSplitInfoId); + } else { + return quantity; + } + } + } + +}