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/collection/ResourceOutCmd.java |   61 ++++++++++++++----------------
 1 files changed, 29 insertions(+), 32 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java b/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java
index 7bfd823..3f8ede1 100644
--- a/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java
+++ b/service-store/src/main/java/com/java110/store/cmd/collection/ResourceOutCmd.java
@@ -34,7 +34,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-
 /**
  * 閲囪喘浜哄憳鍏ュ簱 鍔熻兘
  * 璇锋眰鍦板潃涓�/app/purchase/resourceEnter
@@ -53,7 +52,7 @@
 @Java110ParamsDoc(params = {
         @Java110ParamDoc(name = "applyOrderId", length = 30, remark = "閲囪喘鐢宠鍗曡鍗旾D"),
         @Java110ParamDoc(name = "purchaseApplyDetailVo", type = "Array", length = 30, remark = "閲囪喘鐗╁搧淇℃伅"),
-        @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "purchaseQuantity", type = "Int", length = 30, remark = "鏁伴噺"),
+        @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "purchaseQuantity", type = "Double", length = 30, remark = "鏁伴噺"),
         @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "id", type = "String", length = 30, remark = "閲囪喘鏄庣粏ID"),
         @Java110ParamDoc(parentNodeName = "purchaseApplyDetailVo", name = "resId", type = "String", length = 30, remark = "鐗╁搧ID"),
 })
@@ -66,7 +65,7 @@
 )
 
 @Java110ExampleDoc(
-        reqBody = "{'applyOrderId':'123123','purchaseApplyDetailVo':[{'purchaseQuantity':'10','id':'123123','resId':'343434'}]}",
+        reqBody = "{'applyOrderId':'123123','purchaseApplyDetailVo':[{'purchaseQuantity':'10.00','id':'123123','resId':'343434'}]}",
         resBody = "{'code':0,'msg':'鎴愬姛'}"
 )
 
@@ -80,7 +79,7 @@
     private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
 
     @Autowired
-    private IPurchaseApplyDetailInnerServiceSMO purchaseApplyDetailInnerServiceSMOImpl;
+    private IPurchaseApplyDetailV1InnerServiceSMO purchaseApplyDetailV1InnerServiceSMOImpl;
 
     @Autowired
     private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl;
@@ -98,34 +97,27 @@
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         Assert.hasKeyAndValue(reqJson, "applyOrderId", "璁㈠崟ID涓虹┖");
         JSONArray purchaseApplyDetails = reqJson.getJSONArray("purchaseApplyDetailVo");
-
-
         if (purchaseApplyDetails == null || purchaseApplyDetails.size() < 1) {
             throw new CmdException("鏈寘鍚鐢ㄧ墿鍝�");
         }
-
         String storeId = CmdContextUtils.getStoreId(context);
-        int quanitity = 0;
-        int stock = 0;
+        double quanitity = 0;
+        double stock = 0;
         for (int detailIndex = 0; detailIndex < purchaseApplyDetails.size(); detailIndex++) {
             JSONObject purchaseApplyDetail = purchaseApplyDetails.getJSONObject(detailIndex);
             Assert.hasKeyAndValue(purchaseApplyDetail, "purchaseQuantity", "閲囪喘鏁伴噺鏈~鍐�");
             Assert.hasKeyAndValue(purchaseApplyDetail, "id", "鏄庣粏ID涓虹┖");
             Assert.hasKeyAndValue(purchaseApplyDetail, "timesId", "浠锋牸涓虹┖");
-            quanitity = purchaseApplyDetail.getIntValue("quantity");
-
+            quanitity = Double.parseDouble(purchaseApplyDetail.getString("quantity"));
             ResourceStoreTimesDto resourceStoreTimesDto = new ResourceStoreTimesDto();
             resourceStoreTimesDto.setTimesId(purchaseApplyDetail.getString("timesId"));
             resourceStoreTimesDto.setStoreId(storeId);
             List<ResourceStoreTimesDto> resourceStoreTimesDtos = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimess(resourceStoreTimesDto);
-
             Assert.listOnlyOne(resourceStoreTimesDtos, "浠锋牸涓嶅瓨鍦�");
-
             if (quanitity < 1) {
                 throw new CmdException("鐢宠鏁伴噺涓嶆纭�");
             }
-            stock = Integer.parseInt(resourceStoreTimesDtos.get(0).getStock());
-
+            stock = Double.parseDouble(resourceStoreTimesDtos.get(0).getStock());
             if (quanitity > stock) {
                 throw new CmdException(resourceStoreTimesDtos.get(0).getResCode() + "鍑哄簱涓嶈冻,搴撳瓨涓�=" + stock + ",鐢宠鏁颁负=" + quanitity);
             }
@@ -134,16 +126,16 @@
 
     /**
      * 鐗╁搧棰嗙敤-鐗╁搧棰嗙敤鐗╁搧鍙戞斁
-     * @param event              浜嬩欢瀵硅薄
+     *
+     * @param event   浜嬩欢瀵硅薄
      * @param context 鏁版嵁涓婃枃瀵硅薄
-     * @param reqJson            璇锋眰鎶ユ枃
+     * @param reqJson 璇锋眰鎶ユ枃
      * @throws CmdException
      * @throws ParseException
      */
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
-
         JSONArray purchaseApplyDetails = reqJson.getJSONArray("purchaseApplyDetailVo");
         List<PurchaseApplyDetailDto> purchaseApplyDetailPos = new ArrayList<>();
         for (int detailIndex = 0; detailIndex < purchaseApplyDetails.size(); detailIndex++) {
@@ -153,13 +145,11 @@
         }
         PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
         purchaseApplyPo.setApplyOrderId(reqJson.getString("applyOrderId"));
-       // purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);
-
+        // purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);
         PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
         purchaseApplyDto.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
         List<PurchaseApplyDto> purchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplys(purchaseApplyDto);
         Assert.listOnlyOne(purchaseApplyDtos, "鍑哄簱鍗曚笉瀛樺湪");
-
         for (PurchaseApplyDetailDto tmpPurchaseApplyDetailDto : purchaseApplyDetailPos) {
             ResourceStorePo resourceStorePo = new ResourceStorePo();
             resourceStorePo.setResId(tmpPurchaseApplyDetailDto.getResId());
@@ -180,6 +170,15 @@
             if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniStock())) {
                 throw new IllegalArgumentException("鏈�灏忚閲忔�绘暟涓嶈兘涓虹┖锛�");
             }
+            //鑾峰彇棰嗙敤鎷ㄦ斁鐨勬暟閲�
+            BigDecimal quantity = new BigDecimal(tmpPurchaseApplyDetailDto.getQuantity());
+            //鍘熷簱瀛樻�绘暟
+            BigDecimal stock = new BigDecimal(resourceStoreDtos.get(0).getStock());
+            //璁$畻棰嗙敤鎴愬姛鍚庡墿浣欑殑搴撳瓨鎬绘暟
+            BigDecimal newStock = stock.subtract(quantity);
+            //璁$畻棰嗙敤鎴愬姛鍚庡墿浣欑殑鏈�灏忚閲忔�绘暟
+            BigDecimal nowMiniStock = newStock.multiply(miniUnitStock);
+            resourceStorePo.setMiniStock(String.valueOf(nowMiniStock));
 //            //鑾峰彇閲囪喘鍓嶇墿鍝佹渶灏忚閲忔�绘暟
 //            BigDecimal miniStock = new BigDecimal(resourceStoreDtos.get(0).getMiniStock());
 //            //璁$畻閲囪喘鐨勭墿鍝佹渶灏忚閲忔�绘暟
@@ -190,9 +189,8 @@
 //            if (nowMiniStock.compareTo(BigDecimal.ZERO) == -1) {
 //                throw new IllegalArgumentException("鐗╁搧搴撳瓨宸茬粡涓嶈冻锛岃纭鐗╁搧搴撳瓨锛�");
 //            }
- //           resourceStorePo.setMiniStock(String.valueOf(nowMiniStock));
+            //           resourceStorePo.setMiniStock(String.valueOf(nowMiniStock));
             resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
-
             // 淇濆瓨鑷� 鐗╁搧 times琛�
             ResourceStoreTimesPo resourceStoreTimesPo = new ResourceStoreTimesPo();
             resourceStoreTimesPo.setApplyOrderId(tmpPurchaseApplyDetailDto.getApplyOrderId());
@@ -205,31 +203,31 @@
             resourceStoreTimesV1InnerServiceSMOImpl.saveOrUpdateResourceStoreTimes(resourceStoreTimesPo);
             //todo 涓汉浠撳簱涓坊鍔�
             addPersonStorehouse(purchaseApplyDtos.get(0), resourceStoreDtos, tmpPurchaseApplyDetailDto);
+            //棰嗙敤鏄庣粏琛ㄩ噷鐨勯鐢ㄦ暟閲忔洿鏂颁负瀹為檯棰嗙敤鏁伴噺
+            PurchaseApplyDetailPo purchaseApplyDetailPo = new PurchaseApplyDetailPo();
+            purchaseApplyDetailPo.setApplyOrderId(tmpPurchaseApplyDetailDto.getApplyOrderId());
+            purchaseApplyDetailPo.setPurchaseQuantity(tmpPurchaseApplyDetailDto.getPurchaseQuantity());
+            purchaseApplyDetailV1InnerServiceSMOImpl.updatePurchaseApplyDetail(purchaseApplyDetailPo);
         }
-
-        //
         //鑾峰彇璁㈠崟鍙�
         String applyOrderId = purchaseApplyPo.getApplyOrderId();
         PurchaseApplyPo purchaseApply = new PurchaseApplyPo();
         purchaseApply.setApplyOrderId(applyOrderId);
-
-        if(reqJson.containsKey("taskId")) {
+        if (reqJson.containsKey("taskId")) {
             reqJson.put("auditCode", "1100");
             reqJson.put("auditMessage", "鍏ュ簱鎴愬姛");
             reqJson.put("id", reqJson.getString("applyOrderId"));
             reqJson.put("storeId", CmdContextUtils.getStoreId(context));
             reqJson.put("nextUserId", reqJson.getString("staffId"));
             boolean isLastTask = oaWorkflowUserInnerServiceSMOImpl.completeTask(reqJson);
-
             if (isLastTask) {
                 purchaseApply.setState(PurchaseApplyDto.STATE_END);
             } else {
                 purchaseApply.setState(PurchaseApplyDto.STATE_DEALING);
             }
-        }else{
+        } else {
             purchaseApply.setState(PurchaseApplyDto.STATE_AUDITED);
         }
-
         purchaseApply.setStatusCd("0");
         purchaseApplyInnerServiceSMOImpl.updatePurchaseApply(purchaseApply);
         context.setResponseEntity(ResultVo.createResponseEntity(ResultVo.CODE_OK, "鍑哄簱鎴愬姛"));
@@ -241,7 +239,6 @@
      * @param resourceStoreDtos
      */
     private void addPersonStorehouse(PurchaseApplyDto purchaseApplyDto, List<ResourceStoreDto> resourceStoreDtos, PurchaseApplyDetailDto purchaseApplyDetailDto) {
-
         //鑾峰彇鐗╁搧鍗曚綅
         String unitCode = resourceStoreDtos.get(0).getUnitCode();
         //鑾峰彇鐗╁搧鏈�灏忚閲忓崟浣�
@@ -281,7 +278,7 @@
             BigDecimal purchaseQuantity3 = new BigDecimal(purchaseApplyDetailDto.getPurchaseQuantity());
             BigDecimal stock3 = new BigDecimal(userStorehouseDtos.get(0).getStock());
             BigDecimal total = purchaseQuantity3.add(stock3);
-            userStorehousePo.setStock(total.toString());
+            userStorehousePo.setStock(String.valueOf(total));
             userStorehousePo.setUsId(userStorehouseDtos.get(0).getUsId());
             if (!StringUtil.isEmpty(unitCode) && !StringUtil.isEmpty(miniUnitCode) && !StringUtil.isEmpty(miniUnitStock) && !unitCode.equals(miniUnitCode)) {
                 //鑾峰彇鏈棰嗗彇鏁伴噺

--
Gitblit v1.8.0