From 22e8a676ee42c0d78b3526bcd9a635abbe8dca03 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 六月 2022 11:28:21 +0800
Subject: [PATCH] 优化databus bug

---
 service-store/src/main/java/com/java110/store/bmo/purchase/impl/ResourceEnterBMOImpl.java |   45 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 36 insertions(+), 9 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/bmo/purchase/impl/ResourceEnterBMOImpl.java b/service-store/src/main/java/com/java110/store/bmo/purchase/impl/ResourceEnterBMOImpl.java
old mode 100644
new mode 100755
index e403202..43e56e7
--- a/service-store/src/main/java/com/java110/store/bmo/purchase/impl/ResourceEnterBMOImpl.java
+++ b/service-store/src/main/java/com/java110/store/bmo/purchase/impl/ResourceEnterBMOImpl.java
@@ -2,21 +2,23 @@
 
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.dto.purchaseApply.PurchaseApplyDto;
-import com.java110.intf.common.IPurchaseApplyUserInnerServiceSMO;
+import com.java110.dto.resourceStore.ResourceStoreDto;
 import com.java110.intf.store.IPurchaseApplyDetailInnerServiceSMO;
+import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
 import com.java110.intf.store.IResourceStoreInnerServiceSMO;
 import com.java110.po.purchase.PurchaseApplyDetailPo;
 import com.java110.po.purchase.PurchaseApplyPo;
 import com.java110.po.purchase.ResourceStorePo;
 import com.java110.store.bmo.purchase.IResourceEnterBMO;
-import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
-
 
 @Service("resourceEnterBMOImpl")
 public class ResourceEnterBMOImpl implements IResourceEnterBMO {
@@ -24,28 +26,53 @@
     @Autowired
     private IPurchaseApplyDetailInnerServiceSMO purchaseApplyDetailInnerServiceSMOImpl;
 
-
     @Autowired
-    private IPurchaseApplyUserInnerServiceSMO purchaseApplyUserInnerServiceSMOImpl;
+    private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
 
     @Autowired
     private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl;
 
-
     @Override
     @Java110Transactional
     public ResponseEntity<String> enter(PurchaseApplyPo purchaseApplyPo) {
-
-
         List<PurchaseApplyDetailPo> purchaseApplyDetailPos = purchaseApplyPo.getPurchaseApplyDetailPos();
         for (PurchaseApplyDetailPo purchaseApplyDetailPo : purchaseApplyDetailPos) {
             purchaseApplyDetailInnerServiceSMOImpl.updatePurchaseApplyDetail(purchaseApplyDetailPo);
             ResourceStorePo resourceStorePo = new ResourceStorePo();
             resourceStorePo.setResId(purchaseApplyDetailPo.getResId());
+            resourceStorePo.setPurchasePrice(purchaseApplyDetailPo.getPrice());
             resourceStorePo.setStock(purchaseApplyDetailPo.getPurchaseQuantity());
+            resourceStorePo.setResOrderType(PurchaseApplyDto.RES_ORDER_TYPE_ENTER);
+            //鏌ヨ鐗╁搧璧勬簮淇℃伅
+            ResourceStoreDto resourceStoreDto = new ResourceStoreDto();
+            resourceStoreDto.setResId(purchaseApplyDetailPo.getResId());
+            List<ResourceStoreDto> resourceStoreDtos = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto);
+            Assert.listOnlyOne(resourceStoreDtos, "鏌ヨ鐗╁搧璧勬簮淇℃伅閿欒锛�");
+            if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniUnitStock())) {
+                throw new IllegalArgumentException("鏈�灏忚閲忓崟浣嶆暟閲忎笉鑳戒负绌猴紒");
+            }
+            //鑾峰彇鏈�灏忚閲忓崟浣嶆暟閲�
+            BigDecimal miniUnitStock = new BigDecimal(resourceStoreDtos.get(0).getMiniUnitStock());
+            if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniStock())) {
+                throw new IllegalArgumentException("鏈�灏忚閲忔�绘暟涓嶈兘涓虹┖锛�");
+            }
+            //鑾峰彇閲囪喘鍓嶇墿鍝佹渶灏忚閲忔�绘暟
+            BigDecimal miniStock = new BigDecimal(resourceStoreDtos.get(0).getMiniStock());
+            //璁$畻閲囪喘鐨勭墿鍝佹渶灏忚閲忔�绘暟
+            BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getPurchaseQuantity());
+            BigDecimal purchaseMiniStock = purchaseQuantity.multiply(miniUnitStock);
+            //璁$畻閲囪喘鍚庣墿鍝佹渶灏忚閲忔�绘暟
+            BigDecimal nowMiniStock = miniStock.add(purchaseMiniStock);
+            resourceStorePo.setMiniStock(String.valueOf(nowMiniStock));
             resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
         }
-
+        //鑾峰彇璁㈠崟鍙�
+        String applyOrderId = purchaseApplyPo.getApplyOrderId();
+        PurchaseApplyPo purchaseApply = new PurchaseApplyPo();
+        purchaseApply.setApplyOrderId(applyOrderId);
+        purchaseApply.setState(PurchaseApplyDto.STATE_AUDITED);
+        purchaseApply.setStatusCd("0");
+        purchaseApplyInnerServiceSMOImpl.updatePurchaseApply(purchaseApply);
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, "閲囪喘鐢宠鎴愬姛");
     }
 }

--
Gitblit v1.8.0