From be1b426b7d765a546f4a26b60e80aa49a57079b9 Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期六, 13 一月 2024 16:25:11 +0800
Subject: [PATCH] 1、优化采购模块数量不能为小数点问题2、新增客服巡查巡楼记录功能模块3、新增页面导出功能4、优化记录查询条件新增时间段查询条件5、其他界面性调整

---
 service-store/src/main/java/com/java110/store/cmd/resourceStore/SaveAllocationStorehouseCmd.java |   86 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 68 insertions(+), 18 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/cmd/resourceStore/SaveAllocationStorehouseCmd.java b/service-store/src/main/java/com/java110/store/cmd/resourceStore/SaveAllocationStorehouseCmd.java
index 25c4cf9..f68c822 100644
--- a/service-store/src/main/java/com/java110/store/cmd/resourceStore/SaveAllocationStorehouseCmd.java
+++ b/service-store/src/main/java/com/java110/store/cmd/resourceStore/SaveAllocationStorehouseCmd.java
@@ -17,7 +17,6 @@
 import com.java110.dto.store.StorehouseDto;
 import com.java110.dto.user.UserDto;
 import com.java110.dto.user.UserStorehouseDto;
-import com.java110.intf.common.IAllocationStorehouseUserInnerServiceSMO;
 import com.java110.intf.common.IOaWorkflowActivitiInnerServiceSMO;
 import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
 import com.java110.intf.store.*;
@@ -26,6 +25,7 @@
 import com.java110.po.purchase.AllocationStorehouseApplyPo;
 import com.java110.po.purchase.ResourceStorePo;
 import com.java110.po.resource.ResourceStoreTimesPo;
+import com.java110.po.resource.ResourceStoreUseRecordPo;
 import com.java110.po.user.UserStorehousePo;
 import com.java110.store.bmo.allocation.IAllocationBMO;
 import com.java110.utils.exception.CmdException;
@@ -38,6 +38,7 @@
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -49,9 +50,6 @@
 
     @Autowired
     private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl;
-
-    @Autowired
-    private IAllocationStorehouseUserInnerServiceSMO allocationStorehouseUserInnerServiceSMOImpl;
 
     @Autowired
     private IUserStorehouseInnerServiceSMO userStorehouseInnerServiceSMOImpl;
@@ -89,6 +87,9 @@
     @Autowired
     private IOaWorkflowActivitiInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl;
 
+    @Autowired
+    private IResourceStoreUseRecordV1InnerServiceSMO resourceStoreUseRecordV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
         Assert.hasKeyAndValue(reqJson, "remark", "璇锋眰鎶ユ枃涓湭鍖呭惈鐢宠淇℃伅");
@@ -102,17 +103,19 @@
         }
         //鑾峰彇璋冩嫧杩旇繕鐘舵�佹爣璇�
         String applyType = reqJson.getString("apply_type");
+        List<StorehouseDto> storehouseDtos = new ArrayList<>();
         //鏍¢獙 鐗╁搧鏄惁瀛樺湪
         for (int resIndex = 0; resIndex < resourceStores.size(); resIndex++) {
             //涓昏鐢ㄦ潵鏍¢獙搴撳瓨澶熶笉澶�
             validateResoureStore(reqJson, resourceStores, applyType, resIndex);
+            JSONObject param = resourceStores.getJSONObject(resIndex);
+            //todo 鏌ヨ浠撳簱鏄惁瀛樺湪
+            StorehouseDto storehouseDto = new StorehouseDto();
+            storehouseDto.setShId(param.getString("shzId"));
+            storehouseDtos = storehouseV1InnerServiceSMOImpl.queryStorehouses(storehouseDto);
         }
-        reqJson.put("resourceStores", resourceStores);
-        //todo 鏌ヨ浠撳簱鏄惁瀛樺湪
-        StorehouseDto storehouseDto = new StorehouseDto();
-        storehouseDto.setShId(reqJson.getString("shId"));
-        List<StorehouseDto> storehouseDtos = storehouseV1InnerServiceSMOImpl.queryStorehouses(storehouseDto);
         Assert.listOnlyOne(storehouseDtos, "浠撳簱涓嶅瓨鍦�");
+        reqJson.put("resourceStores", resourceStores);
         if (!StorehouseDto.SWITCH_ON.equals(storehouseDtos.get(0).getAllocationSwitch())) {
             return;
         }
@@ -338,24 +341,24 @@
         UserStorehousePo userStorehousePo = new UserStorehousePo();
         //鑾峰彇鍘熸渶灏忚閲忓崟浣嶆暟閲�
         if (StringUtil.isEmpty(resObj.getString("miniUnitStock"))) {
-            throw new IllegalArgumentException("鏈�灏忚閲忔�绘暟涓嶈兘涓虹┖锛�");
+            throw new IllegalArgumentException("鏈�灏忚閲忓崟浣嶆暟閲忎笉鑳戒负绌猴紒");
         }
-        BigDecimal miniUnitStock = new BigDecimal(resObj.getString("miniUnitStock"));
+        BigDecimal miniUnitStock = new BigDecimal(resObj.getString("miniUnitStock")); //鑾峰彇鏈�灏忚閲忓崟浣嶆暟閲�
         //鑾峰彇鍘熸渶灏忚閲忔�绘暟
         if (StringUtil.isEmpty(resObj.getString("miniStock"))) {
             throw new IllegalArgumentException("鏈�灏忚閲忔�绘暟涓嶈兘涓虹┖锛�");
         }
-        BigDecimal miniStock = new BigDecimal(resObj.getString("miniStock"));
+        BigDecimal miniStock = new BigDecimal(resObj.getString("miniStock")); //鑾峰彇鏈�灏忚閲忔�绘暟
         //鑾峰彇鐗╁搧鍗曚綅
         if (StringUtil.isEmpty(userStorehouseDtos.get(0).getUnitCode())) {
             throw new IllegalArgumentException("鐗╁搧鍗曚綅涓嶈兘涓虹┖锛�");
         }
-        String unitCode = userStorehouseDtos.get(0).getUnitCode();
+        String unitCode = userStorehouseDtos.get(0).getUnitCode(); //鑾峰彇鐗╁搧鍗曚綅
         //鑾峰彇鐗╁搧鏈�灏忚閲忓崟浣�
         if (StringUtil.isEmpty(userStorehouseDtos.get(0).getMiniUnitCode())) {
             throw new IllegalArgumentException("鐗╁搧鏈�灏忚閲忓崟浣嶄笉鑳戒负绌猴紒");
         }
-        String miniUnitCode = userStorehouseDtos.get(0).getMiniUnitCode();
+        String miniUnitCode = userStorehouseDtos.get(0).getMiniUnitCode(); //鑾峰彇鏈�灏忚閲忓崟浣�
         //璁$畻涓汉鐗╁搧鍓╀綑鐨勬渶灏忚閲忔�绘暟
         BigDecimal curStockNew = new BigDecimal(resObj.getString("curStock"));
         BigDecimal curStock = miniStock.subtract(curStockNew);
@@ -430,12 +433,35 @@
                 ResourceStoreTimesPo resourceStoreTimesPo = new ResourceStoreTimesPo();
                 resourceStoreTimesPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId("10"));
                 resourceStoreTimesPo.setPrice(resourceStoreTimesDtos.get(0).getPrice());
-                resourceStoreTimesPo.setStock(resObj.getString("curStock"));
+                if (unitCode1.equals(miniUnitCode1)) { //鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶇浉鍚屾椂锛屽氨涓嶅悜涓婂彇鏁�
+                    resourceStoreTimesPo.setStock(resObj.getString("curStock"));
+                } else { //鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶄笉鍚屾椂锛屽氨鍚戜笂鍙栨暣
+                    //璁$畻杩旇繕鍚庣墿鍝佽祫婧愬簱瀛�(鍚戜笂鍙栨暣)
+                    BigDecimal curStock1 = new BigDecimal(resObj.getString("curStock"));
+                    BigDecimal divide = curStock1.divide(miniUnitStock1, 2, BigDecimal.ROUND_HALF_UP);
+                    Integer ceil = (int) Math.ceil(Double.valueOf(divide.toString()));
+                    resourceStoreTimesPo.setStock(String.valueOf(ceil));
+                }
                 resourceStoreTimesPo.setResCode(resObj.getString("resCode"));
                 resourceStoreTimesPo.setStoreId(reqJson.getString("storeId"));
                 resourceStoreTimesPo.setTimesId(GenerateCodeFactory.getGeneratorId("10"));
                 resourceStoreTimesPo.setShId(resObj.getString("shzId"));
+                resourceStoreTimesPo.setCommunityId(reqJson.getString("communityId"));
                 resourceStoreTimesV1InnerServiceSMOImpl.saveOrUpdateResourceStoreTimes(resourceStoreTimesPo);
+                ResourceStoreUseRecordPo resourceStoreUseRecordPo = new ResourceStoreUseRecordPo();
+                resourceStoreUseRecordPo.setRsurId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_rsurId));
+                resourceStoreUseRecordPo.setRepairId("-1");
+                resourceStoreUseRecordPo.setResId(resourceStore.getResId());
+                resourceStoreUseRecordPo.setCommunityId(reqJson.getString("communityId"));
+                resourceStoreUseRecordPo.setStoreId(reqJson.getString("storeId"));
+                resourceStoreUseRecordPo.setQuantity(resObj.getString("curStock"));
+                resourceStoreUseRecordPo.setUnitPrice(resourceStoreTimesDtos.get(0).getPrice());
+                resourceStoreUseRecordPo.setCreateUserId(reqJson.getString("userId"));
+                resourceStoreUseRecordPo.setCreateUserName(reqJson.getString("userName"));
+                resourceStoreUseRecordPo.setRemark("涓汉鐗╁搧閫�杩樹粨搴�");
+                resourceStoreUseRecordPo.setResourceStoreName(resourceStore.getResName());
+                resourceStoreUseRecordPo.setState("4004"); //1001 鎶ュ簾鍥炴敹   2002 宸ュ崟鎹熻��   3003 鍏敤鎹熻��  4004 閫�杩樹粨搴�
+                resourceStoreUseRecordV1InnerServiceSMOImpl.saveResourceStoreUseRecord(resourceStoreUseRecordPo);
             }
         } else { //濡傛灉鐩爣浠撳簱涓嬫病鏈夎繖涓墿鍝佷俊鎭紝灏辨彃鍏ヤ竴鏉$墿鍝佷俊鎭�
             ResourceStoreDto resourceStore = new ResourceStoreDto();
@@ -494,12 +520,36 @@
             ResourceStoreTimesPo resourceStoreTimesPo = new ResourceStoreTimesPo();
             resourceStoreTimesPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId("10"));
             resourceStoreTimesPo.setPrice(resourceStoreTimesDtos.get(0).getPrice());
-            resourceStoreTimesPo.setStock(resObj.getString("curStock"));
+            if (resourceStorePo.getUnitCode().equals(resourceStorePo.getMiniUnitCode())) { //濡傛灉鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶇浉鍚岋紝灏变笉鍚戜笂鍙栨暣
+                //鍗曚綅鐩稿悓锛岀墿鍝佸簱瀛樺氨绛変簬鐗╁搧鏈�灏忚閲忔�绘暟
+                resourceStoreTimesPo.setStock(resObj.getString("curStock"));
+            } else { //濡傛灉鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶄笉鐩稿悓锛屽氨鍚戜笂鍙栨暣
+                //璁$畻鐗╁搧搴撳瓨
+                BigDecimal curStock1 = new BigDecimal(resObj.getString("curStock"));
+                BigDecimal miniUnitStock1 = new BigDecimal(resourceStorePo.getMiniUnitStock());
+                BigDecimal divide = curStock1.divide(miniUnitStock1, 2, BigDecimal.ROUND_HALF_UP);
+                Integer newStock1 = (int) Math.ceil(divide.doubleValue());
+                resourceStoreTimesPo.setStock(String.valueOf(newStock1));
+            }
             resourceStoreTimesPo.setResCode(resourceStoreList.get(0).getResCode());
             resourceStoreTimesPo.setStoreId(reqJson.getString("storeId"));
             resourceStoreTimesPo.setTimesId(GenerateCodeFactory.getGeneratorId("10"));
             resourceStoreTimesPo.setShId(resObj.getString("shzId"));
             resourceStoreTimesV1InnerServiceSMOImpl.saveOrUpdateResourceStoreTimes(resourceStoreTimesPo);
+            ResourceStoreUseRecordPo resourceStoreUseRecordPo = new ResourceStoreUseRecordPo();
+            resourceStoreUseRecordPo.setRsurId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_rsurId));
+            resourceStoreUseRecordPo.setRepairId("-1");
+            resourceStoreUseRecordPo.setResId(resourceStoreList.get(0).getResId());
+            resourceStoreUseRecordPo.setCommunityId(reqJson.getString("communityId"));
+            resourceStoreUseRecordPo.setStoreId(reqJson.getString("storeId"));
+            resourceStoreUseRecordPo.setQuantity(resObj.getString("curStock"));
+            resourceStoreUseRecordPo.setUnitPrice(resourceStoreTimesDtos.get(0).getPrice());
+            resourceStoreUseRecordPo.setCreateUserId(reqJson.getString("userId"));
+            resourceStoreUseRecordPo.setCreateUserName(reqJson.getString("userName"));
+            resourceStoreUseRecordPo.setRemark("涓汉鐗╁搧閫�杩樹粨搴�");
+            resourceStoreUseRecordPo.setResourceStoreName(resourceStoreList.get(0).getResName());
+            resourceStoreUseRecordPo.setState("4004"); //1001 鎶ュ簾鍥炴敹   2002 宸ュ崟鎹熻��   3003 鍏敤鎹熻��  4004 閫�杩樹粨搴�
+            resourceStoreUseRecordV1InnerServiceSMOImpl.saveResourceStoreUseRecord(resourceStoreUseRecordPo);
         }
     }
 
@@ -578,8 +628,8 @@
         if (flag < 1) {
             throw new CmdException("淇濆瓨璋冩嫧鐗╁搧澶辫触");
         }
-        int applyCount = Integer.parseInt(allocationStorehouseApplyPo.getApplyCount());
-        applyCount += resObj.getIntValue("curStock");
+        double applyCount = Double.parseDouble(allocationStorehouseApplyPo.getApplyCount());
+        applyCount += Double.parseDouble(resObj.getString("curStock"));
         allocationStorehouseApplyPo.setApplyCount(applyCount + "");
     }
 

--
Gitblit v1.8.0