From 7cee6151b42670dbcd8c08fb4716c8d9414a951b Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 02 十二月 2022 19:00:34 +0800
Subject: [PATCH] 优化代码

---
 service-store/src/main/java/com/java110/store/cmd/purchase/UrgentPurchaseApplyCmd.java |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/cmd/purchase/UrgentPurchaseApplyCmd.java b/service-store/src/main/java/com/java110/store/cmd/purchase/UrgentPurchaseApplyCmd.java
index 7c6bb9e..5660a06 100644
--- a/service-store/src/main/java/com/java110/store/cmd/purchase/UrgentPurchaseApplyCmd.java
+++ b/service-store/src/main/java/com/java110/store/cmd/purchase/UrgentPurchaseApplyCmd.java
@@ -3,9 +3,11 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.CommunitySettingFactory;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.allocationStorehouse.AllocationStorehouseDto;
 import com.java110.dto.allocationStorehouseApply.AllocationStorehouseApplyDto;
@@ -17,6 +19,7 @@
 import com.java110.po.purchase.PurchaseApplyDetailPo;
 import com.java110.po.purchase.PurchaseApplyPo;
 import com.java110.po.purchase.ResourceStorePo;
+import com.java110.po.resourceStoreTimes.ResourceStoreTimesPo;
 import com.java110.store.bmo.purchase.IPurchaseApplyBMO;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.exception.CmdException;
@@ -24,6 +27,7 @@
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 
@@ -62,6 +66,9 @@
     @Autowired
     private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IResourceStoreTimesV1InnerServiceSMO resourceStoreTimesV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         Assert.hasKeyAndValue(reqJson, "resourceStores", "蹇呭~锛岃濉啓鐢宠閲囪喘鐨勭墿璧�");
@@ -70,6 +77,7 @@
     }
 
     @Override
+    @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         String userId = context.getReqHeaders().get("user-id");
         String userName = context.getReqHeaders().get("user-name");
@@ -95,13 +103,18 @@
         //鏌ヨ褰撴湀绱ф�ラ噰璐殑娆℃暟
         int count = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplysCount(purchaseApplyDto);
         //鍙栧嚭寮�鍏虫槧灏勭殑鍊�
-        String value = MappingCache.getValue(DOMAIN_COMMON, URGRNT_NUMBER);
+        String value = CommunitySettingFactory.getValue(purchaseApplyDto.getCommunityId(), URGRNT_NUMBER);
+        if (StringUtil.isEmpty(value)) {
+            value = MappingCache.getValue(DOMAIN_COMMON, URGRNT_NUMBER);
+        }
         if (StringUtil.isEmpty(value)) {
             throw new IllegalArgumentException("鏄犲皠鍊间负绌猴紒");
         }
         int number = Integer.parseInt(value);
         if (count >= number) {
-            throw new IllegalArgumentException("鏈湀绱ф�ラ噰璐鏁板凡瓒呰繃" + number + "娆★紝璇蜂笅鏈堝啀浣跨敤锛�");
+            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "鏈湀绱ф�ラ噰璐鏁板凡瓒呰繃" + number + "娆★紝璇蜂笅鏈堝啀浣跨敤锛�");
+            context.setResponseEntity(responseEntity);
+            return;
         }
         PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
         purchaseApplyPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
@@ -149,6 +162,7 @@
             resourceStorePo.setResOrderType(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
             resourceStorePo.setOperationType(PurchaseApplyDto.WEIGHTED_MEAN_TRUE);
             resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
+
             if (resourceStoreDtos != null && resourceStoreDtos.size() == 1) {
                 //鐢熸垚璋冩嫧璁板綍
                 AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto();
@@ -215,6 +229,16 @@
                 BigDecimal newMiniStock = purchaseQuantity.multiply(miniUnitStock).add(miniStock);
                 resourceStorePo1.setMiniStock(String.valueOf(newMiniStock));
                 resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo1);
+
+                // 淇濆瓨鑷� 鐗╁搧 times琛�
+                ResourceStoreTimesPo resourceStoreTimesPo = new ResourceStoreTimesPo();
+                resourceStoreTimesPo.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
+                resourceStoreTimesPo.setPrice(purchaseApplyDetailPo.getPrice());
+                resourceStoreTimesPo.setStock(purchaseApplyDetailPo.getPurchaseQuantity());
+                resourceStoreTimesPo.setResCode(resourceStoreDtoList.get(0).getResCode());
+                resourceStoreTimesPo.setStoreId(resourceStoreDtoList.get(0).getStoreId());
+                resourceStoreTimesPo.setTimesId(GenerateCodeFactory.getGeneratorId("10"));
+                resourceStoreTimesV1InnerServiceSMOImpl.saveResourceStoreTimes(resourceStoreTimesPo);
             } else if (resourceStoreDtos != null && resourceStoreDtos.size() > 1) {
                 throw new IllegalArgumentException("鏌ヨ鍟嗗搧閿欒锛�");
             } else {
@@ -273,6 +297,16 @@
                 BigDecimal miniStock = purchaseQuantity.multiply(miniUnitStock);
                 resourceStoreDto1.setMiniStock(String.valueOf(miniStock));
                 resourceStoreInnerServiceSMOImpl.saveResourceStore(resourceStoreDto1);
+
+                // 淇濆瓨鑷� 鐗╁搧 times琛�
+                ResourceStoreTimesPo resourceStoreTimesPo = new ResourceStoreTimesPo();
+                resourceStoreTimesPo.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
+                resourceStoreTimesPo.setPrice(purchaseApplyDetailPo.getPrice());
+                resourceStoreTimesPo.setStock(purchaseApplyDetailPo.getPurchaseQuantity());
+                resourceStoreTimesPo.setResCode(resourceStoreDtoList.get(0).getResCode());
+                resourceStoreTimesPo.setStoreId(resourceStoreDtoList.get(0).getStoreId());
+                resourceStoreTimesPo.setTimesId(GenerateCodeFactory.getGeneratorId("10"));
+                resourceStoreTimesV1InnerServiceSMOImpl.saveResourceStoreTimes(resourceStoreTimesPo);
             }
         }
         purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);

--
Gitblit v1.8.0