From 4e134e61ede1f8574189af45c810ca365c7c7f9a Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 12 五月 2022 18:33:14 +0800
Subject: [PATCH] 优化代码

---
 service-api/src/main/java/com/java110/api/bmo/allocationStorehouse/impl/AllocationStorehouseBMOImpl.java |   77 +++++++++++++++++++++++++++++++++++---
 1 files changed, 71 insertions(+), 6 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/bmo/allocationStorehouse/impl/AllocationStorehouseBMOImpl.java b/service-api/src/main/java/com/java110/api/bmo/allocationStorehouse/impl/AllocationStorehouseBMOImpl.java
index 891e1a4..3c14bd3 100644
--- a/service-api/src/main/java/com/java110/api/bmo/allocationStorehouse/impl/AllocationStorehouseBMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/bmo/allocationStorehouse/impl/AllocationStorehouseBMOImpl.java
@@ -4,18 +4,35 @@
 import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.allocationStorehouse.IAllocationStorehouseBMO;
 import com.java110.core.context.DataFlowContext;
+import com.java110.dto.allocationStorehouse.AllocationStorehouseDto;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
+import com.java110.intf.community.IResourceStoreServiceSMO;
 import com.java110.intf.store.IAllocationStorehouseInnerServiceSMO;
+import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
 import com.java110.po.allocationStorehouse.AllocationStorehousePo;
+import com.java110.po.allocationStorehouseApply.AllocationStorehouseApplyPo;
+import com.java110.po.purchase.ResourceStorePo;
 import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 @Service("allocationStorehouseBMOImpl")
 public class AllocationStorehouseBMOImpl extends ApiBaseBMO implements IAllocationStorehouseBMO {
 
     @Autowired
     private IAllocationStorehouseInnerServiceSMO allocationStorehouseInnerServiceSMOImpl;
+
+    @Autowired
+    private IResourceStoreServiceSMO resourceStoreServiceSMOImpl;
+
+    @Autowired
+    private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
 
     /**
      * 娣诲姞灏忓尯淇℃伅
@@ -25,12 +42,10 @@
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
      */
     public void addAllocationStorehouse(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
         paramInJson.put("asId", "-1");
         AllocationStorehousePo allocationStorehousePo = BeanConvertUtil.covertBean(paramInJson, AllocationStorehousePo.class);
         super.insert(dataFlowContext, allocationStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ALLOCATION_STOREHOUSE);
     }
-
 
     /**
      * 娣诲姞娲诲姩淇℃伅
@@ -44,7 +59,6 @@
         super.update(dataFlowContext, allocationStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_ALLOCATION_STOREHOUSE);
     }
 
-
     /**
      * 娣诲姞灏忓尯淇℃伅
      *
@@ -54,8 +68,59 @@
      */
     public void deleteAllocationStorehouse(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
-        AllocationStorehousePo allocationStorehousePo = BeanConvertUtil.covertBean(paramInJson, AllocationStorehousePo.class);
-        super.update(dataFlowContext, allocationStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ALLOCATION_STOREHOUSE);
-    }
+        AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto();
+        allocationStorehouseDto.setApplyId(paramInJson.getString("applyId"));
+        allocationStorehouseDto.setStoreId(paramInJson.getString("storeId"));
 
+        List<AllocationStorehouseDto> allocationStorehouseDtos = allocationStorehouseInnerServiceSMOImpl.queryAllocationStorehouses(allocationStorehouseDto);
+
+        for (AllocationStorehouseDto tmpAllocationStorehouseDto : allocationStorehouseDtos) {
+            AllocationStorehousePo allocationStorehousePo = BeanConvertUtil.covertBean(tmpAllocationStorehouseDto, AllocationStorehousePo.class);
+            super.delete(dataFlowContext, allocationStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ALLOCATION_STOREHOUSE);
+            ResourceStorePo resourceStorePo = new ResourceStorePo();
+            resourceStorePo.setResId(allocationStorehousePo.getResId());
+            //鏌ヨ璧勬簮鐗╁搧琛�
+            List<ResourceStorePo> resourceStores = resourceStoreServiceSMOImpl.getResourceStores(resourceStorePo);
+            Assert.listOnlyOne(resourceStores, "璧勬簮鐗╁搧淇℃伅閿欒");
+            //鑾峰彇搴撳瓨鏁伴噺
+            BigDecimal resourceStoreStock = new BigDecimal(resourceStores.get(0).getStock());
+            //鑾峰彇璋冩嫧鐨勬暟閲�
+            BigDecimal storehouseStock = new BigDecimal(allocationStorehousePo.getStock());
+            //搴撳瓨鏁伴噺
+            BigDecimal stock = resourceStoreStock.add(storehouseStock);
+            resourceStorePo.setStock(String.valueOf(stock));
+            //璁$畻鏈�灏忚閲忔�绘暟
+            if (StringUtil.isEmpty(resourceStores.get(0).getMiniStock())) {
+                throw new IllegalArgumentException("鏈�灏忚閲忔�绘暟涓嶈兘涓虹┖锛�");
+            }
+            BigDecimal miniStock = new BigDecimal(resourceStores.get(0).getMiniStock()); //鑾峰彇鐗╁搧琛ㄧ殑鏈�灏忚閲忔�绘暟
+            if (StringUtil.isEmpty(resourceStores.get(0).getMiniUnitStock())) {
+                throw new IllegalArgumentException("鏈�灏忚閲忓崟浣嶆暟閲忎笉鑳戒负绌猴紒");
+            }
+            BigDecimal miniUnitStock = new BigDecimal(resourceStores.get(0).getMiniUnitStock()); //鑾峰彇鏈�灏忚閲忓崟浣嶆暟閲�
+            BigDecimal stock2 = new BigDecimal(allocationStorehousePo.getStock()); //鑾峰彇鏈�灏忚閲忓崟浣嶆暟閲�
+            BigDecimal nowMiniStock = stock2.multiply(miniUnitStock); //璁$畻褰撳墠鐨勬渶灏忚閲忔�绘暟
+            BigDecimal newMiniStock = miniStock.add(nowMiniStock);
+            resourceStorePo.setMiniStock(String.valueOf(newMiniStock));
+            super.update(dataFlowContext, resourceStorePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_RESOURCE_STORE);
+
+            //鍙栨秷娴佺▼瀹℃壒
+            //鏌ヨ浠诲姟
+            PurchaseApplyDto purchaseDto = new PurchaseApplyDto();
+            purchaseDto.setBusinessKey(tmpAllocationStorehouseDto.getApplyId());
+            List<PurchaseApplyDto>  purchaseApplyDtoList=purchaseApplyInnerServiceSMOImpl.getActRuTaskId(purchaseDto);
+            if(purchaseApplyDtoList!=null && purchaseApplyDtoList.size()>0){
+                PurchaseApplyDto purchaseDto1 = new PurchaseApplyDto();
+                purchaseDto1.setActRuTaskId(purchaseApplyDtoList.get(0).getActRuTaskId());
+                purchaseDto1.setAssigneeUser("999999");
+                purchaseApplyInnerServiceSMOImpl.updateActRuTaskById(purchaseDto1);
+            }
+        }
+
+        AllocationStorehouseApplyPo allocationStorehouseApplyPo = new AllocationStorehouseApplyPo();
+        allocationStorehouseApplyPo.setApplyId(allocationStorehouseDto.getApplyId());
+        allocationStorehouseApplyPo.setStoreId(allocationStorehouseDto.getStoreId());
+        super.update(dataFlowContext, allocationStorehouseApplyPo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ALLOCATION_STOREHOUSE_APPLY);
+
+    }
 }

--
Gitblit v1.8.0