diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java b/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java index d3007278..33877cd5 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java @@ -547,8 +547,7 @@ public class QyWxOperationController { String ad_SpStatus = ""; // 定义审批详情 ApprovalInfo_Details ap_detail = null; - for (int i = 0; i < details.size(); i++) { - ApprovalInfo_Details ad = details.get(i); + for (ApprovalInfo_Details ad : details) { // 获取节点分支审批人审批操作时间,0为尚未操作 spTime = ad.getSpTime(); // 如果当前审批人暂未处理 @@ -578,9 +577,9 @@ public class QyWxOperationController { // 如果已经获取到审批节点 // 获取当前审批节点处理时间 - Long aLong = Long.valueOf(spTime); + long aLong = Long.parseLong(spTime); // 获取之前节点的审批时间 - Long aLong1 = Long.valueOf(as_SpTime); + long aLong1 = Long.parseLong(as_SpTime); if (aLong >= aLong1) { // 如果当前审批节点是最近处理 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 d84255bf..ade68edd 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 @@ -1649,7 +1649,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { UserByPort userByPort = (UserByPort) portInfo.get("user"); // 用于标志是否更新当前申请明细 - Boolean flag = true; + boolean flag = true; // 获取审核订单 Integer outId = ObjectFormatUtil.toInteger(mainId); // 获取对应的出库订单 @@ -1658,7 +1658,6 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 获取当前审批所在部门 Integer maindeparment = userByPort.getMaindeparment(); if (Integer.compare(361, maindeparment) == 0) { -// if(true){ // 如果是仓储中心负责人 String depositoryManagerTime = recordP.getDepositoryManagerTime(); @@ -1674,6 +1673,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if ("2".equals(spStatus)) { // 如果点击的是通过 map.put("depositoryManagerPass", 1); + StringBuilder minRecordByMain = new StringBuilder("[]"); // 根据仓库分类明细 @@ -1682,9 +1682,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List depositoryIdList = new ArrayList<>(); // 获取所有详情 List applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(recordP.getId()); - for (int i = 0; i < applicationOutRecordMinByParent.size(); i++) { + for (ApplicationOutRecordMin applicationOutRecordMin : applicationOutRecordMinByParent) { // 获取子单信息 - ApplicationOutRecordMin applicationOutRecordMin = applicationOutRecordMinByParent.get(i); // 获取当前仓库下的子订单 Integer depositoryId = applicationOutRecordMin.getDepositoryId(); @@ -1703,7 +1702,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { //设置子订单在redis中的主键 String minRecordKey = "minRecord:" + applicationOutRecordMin.getId(); - minRecordByMain.insert(1, minRecordKey + ","); // 将子订单主键插入到主订单的子订单列表 + // 将子订单主键插入到主订单的子订单列表 + minRecordByMain.insert(1, minRecordKey + ","); // 设置当前子订单对应仓库管理员记录 StringBuilder minRecordManage = new StringBuilder(); // 将要存储到redis中的子订单信息 @@ -1713,18 +1713,18 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 获取对应的物料编号 Integer mid = applicationOutRecordMin.getMid(); // 获取物料信息 - Inventory materialById = materialMapper.findInventoryById(mid); + Inventory inventory = materialMapper.findInventoryById(mid); // 获取该物料所处仓库的仓库管理员 List userIdByDid = new ArrayList<>(); - userIdByDid = roleService.findUserIdByDid(materialById.getDepositoryId()); + userIdByDid = roleService.findUserIdByDid(inventory.getDepositoryId()); StringBuilder QyWxUid = new StringBuilder(); - for (int j = 0; j < userIdByDid.size(); j++) { + for (Integer integer : userIdByDid) { // 获取仓库管理员信息 - UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), null); + UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null); // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 - String userMinRecord = (String) redisTemplate.opsForHash().get("user:" + userIdByDid.get(j), "minRecord"); + String userMinRecord = (String) redisTemplate.opsForHash().get("user:" + integer, "minRecord"); if (userMinRecord == null) { // 如果当前用户没有子订单 userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单 } else { // 如果当前用户已经有子订单 @@ -1733,8 +1733,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { userRecord.put("minRecord", minRecordList.toString()); } // 更新redis中用户记录 - redisTemplate.opsForHash().putAll("user:" + userIdByDid.get(j), userRecord); - minRecordManage.append(userIdByDid.get(j)).append(","); + redisTemplate.opsForHash().putAll("user:" + integer, userRecord); + minRecordManage.append(integer).append(","); // QyWxUid.append(manager.getWorkwechat()+","); } QyWxUid.append("PangFuZhen,"); @@ -1792,7 +1792,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 将当前redis中存储的spno删除 redisTemplate.delete(spNo); } - } else { + } + else { // 如果是部门负责人 String departmentheadTime = recordP.getDepartmentheadTime(); 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 665efb1d..6d7c2d6f 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 @@ -938,6 +938,8 @@ public class StockTakingServiceImpl implements StockTakingService { @Transactional(rollbackFor = Exception.class) @Override public Integer completeStockTakingByQyWx(TemplateCard templateCard, String userAgent) { + + // 定义结果集 Map result = new HashMap<>(); // 获取点击的按钮 @@ -969,23 +971,22 @@ public class StockTakingServiceImpl implements StockTakingService { List errIds = new ArrayList<>(); // 定义出错信息 List err = new ArrayList<>(); - + // 获取盘点的库位id Integer placeId = mainRecord.getPlaceId(); // 获取库位详情 Place placeById = placeMapper.findPlaceById(placeId); + // 获取盘点的仓库id Integer depositoryId = mainRecord.getDepositoryId(); // 获取仓库详情 Depository depositoryById = depositoryMapper.findDepositoryById(depositoryId); // 获取所有子单 List minRecordList = stockTakingMapper.selectStockTakingChildByMainId(mainId); - for (int i = 0; i < minRecordList.size(); i++) { - // 获取子单详情 - StockTakingChildP minRecord = minRecordList.get(i); + for (StockTakingChildP minRecord : minRecordList) { + // 获取当前盘点的计量单位 String unit = minRecord.getUnit(); - // 获取盘点的物料详情 // 获取当前盘点结果 String takingResult = minRecord.getTakingResult(); @@ -997,9 +998,10 @@ public class StockTakingServiceImpl implements StockTakingService { // 获取盈亏数量 Integer inventory = minRecord.getInventory(); - + // 获取盘点物料信息 Inventory inventoryById = materialMapper.findInventoryById(minRecord.getMid()); + // 用于获取物料与库位的对应关系 Map paramForMaterialAndPlace = new HashMap<>(); paramForMaterialAndPlace.put("mid", inventoryById.getId()); paramForMaterialAndPlace.put("pid", placeById.getId()); @@ -1008,13 +1010,12 @@ public class StockTakingServiceImpl implements StockTakingService { // 根据盘点结果重新计算物料的单价 - // 数据库中的总额 // 获取判断对应的生产日期 Long producedDate = minRecord.getProducedDate(); // 数据库中的总额 - Double amounts = (inventoryById.getAmounts() / 100); + double amounts = (inventoryById.getAmounts() / 100); // 当前盘点数目 Integer newInventory = minRecord.getNewInventory(); @@ -1069,7 +1070,8 @@ public class StockTakingServiceImpl implements StockTakingService { inventoryById.setPrice(avgPrice); materialMapper.updateMaterialAndProducedDate(materialAndProducedDate); - } else { + } + else { // 如果没有生产日期 // 获取当前生产日期中的物料 @@ -1116,6 +1118,8 @@ public class StockTakingServiceImpl implements StockTakingService { // 新的均价 avgPrice = (amounts / (quantity)) * 100; + BigDecimal bg = new BigDecimal(avgPrice); + avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } // 更新物料单价 inventoryById.setPrice(avgPrice); @@ -1248,6 +1252,7 @@ public class StockTakingServiceImpl implements StockTakingService { } else { // 如果是拆单单位 + // 用于查找对应的拆单记录 Map paramForSplitInfo = new HashMap<>(); paramForSplitInfo.put("newUnit", unit); @@ -1348,6 +1353,7 @@ public class StockTakingServiceImpl implements StockTakingService { @Transactional(rollbackFor = Exception.class) @Override public Map reviewByQyWxApproval(String mainId, ApprovalInfo_Details approvalInfo_details, String userAgent, String spStatus, String spNo) { + // 定义结果集 Map result = new HashMap<>(); // 用于进行修改数据 Map map = new HashMap<>(); @@ -1414,9 +1420,9 @@ public class StockTakingServiceImpl implements StockTakingService { // 获取所有子单 List minRecordList = stockTakingMapper.selectStockTakingChildByMainId(ObjectFormatUtil.toInteger(mainId)); - for (int i = 0; i < minRecordList.size(); i++) { + for (StockTakingChildP minRecord : minRecordList) { // 获取子单详情 - StockTakingChildP minRecord = minRecordList.get(i); + // 获取盘点的物料详情 // 获取当前盘点结果 @@ -1430,10 +1436,10 @@ public class StockTakingServiceImpl implements StockTakingService { Integer inventory = minRecord.getInventory(); - Material materialById = materialMapper.findMaterialById(minRecord.getMid()); + Inventory inventoryById = materialMapper.findInventoryById(minRecord.getMid()); Map paramForMaterialAndPlace = new HashMap<>(); - paramForMaterialAndPlace.put("mid", materialById.getId()); + paramForMaterialAndPlace.put("mid", inventoryById.getId()); paramForMaterialAndPlace.put("pid", placeById.getId()); // 获取物料与库位的对应关系 MaterialAndPlace placeAndMaterialByMidAndPid = placeMapper.findPlaceAndMaterialByMidAndPid(paramForMaterialAndPlace); @@ -1441,7 +1447,7 @@ public class StockTakingServiceImpl implements StockTakingService { // 根据盘点结果重新计算物料的单价 // 数据库中的总额 - Double amounts = (materialById.getAmounts() / 100); + Double amounts = (inventoryById.getAmounts() / 100); Integer newInventory = minRecord.getNewInventory(); Double avgPrice = 0.0; @@ -1450,13 +1456,15 @@ public class StockTakingServiceImpl implements StockTakingService { // 新的均价 avgPrice = (amounts / newInventory) * 100; + BigDecimal bg = new BigDecimal(avgPrice); + avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } - materialById.setPrice(avgPrice); + inventoryById.setPrice(avgPrice); // 获取当前库位上物料数量 - Integer oldQuantity = materialById.getQuantity() - placeAndMaterialByMidAndPid.getQuantity(); + Integer oldQuantity = inventoryById.getQuantity() - placeAndMaterialByMidAndPid.getQuantity(); - materialById.setQuantity(oldQuantity + newInventory); + inventoryById.setQuantity(oldQuantity + newInventory); // 用于计算新的库位数量