From 1e0e62187e2b7ff3e1fef23b182a710dc8cd76f8 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期三, 25 三月 2026 18:22:39 +0800
Subject: [PATCH] 采购导入需求

---
 service-store/src/main/java/com/java110/store/smo/impl/ResourceStoreInnerServiceSMOImpl.java |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 101 insertions(+), 15 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/smo/impl/ResourceStoreInnerServiceSMOImpl.java b/service-store/src/main/java/com/java110/store/smo/impl/ResourceStoreInnerServiceSMOImpl.java
old mode 100755
new mode 100644
index ccc78a6..98326f8
--- a/service-store/src/main/java/com/java110/store/smo/impl/ResourceStoreInnerServiceSMOImpl.java
+++ b/service-store/src/main/java/com/java110/store/smo/impl/ResourceStoreInnerServiceSMOImpl.java
@@ -1,20 +1,27 @@
 package com.java110.store.smo.impl;
 
-
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.dto.PageDto;
-import com.java110.dto.resourceStore.ResourceStoreDto;
+import com.java110.dto.file.FileRelDto;
+import com.java110.dto.purchase.PurchaseApplyDto;
+import com.java110.dto.resource.ResourceStoreDto;
+import com.java110.dto.resource.ResourceStoreTimesDto;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.store.IResourceStoreInnerServiceSMO;
+import com.java110.intf.store.IResourceStoreTimesV1InnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.purchase.ResourceStorePo;
 import com.java110.store.dao.IResourceStoreServiceDao;
 import com.java110.utils.lock.DistributedLock;
 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.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -36,20 +43,50 @@
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IResourceStoreTimesV1InnerServiceSMO resourceStoreTimesV1InnerServiceSMOImpl;
+
     @Override
     public List<ResourceStoreDto> queryResourceStores(@RequestBody ResourceStoreDto resourceResourceStoreDto) {
-
         //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
-
         int page = resourceResourceStoreDto.getPage();
-
         if (page != PageDto.DEFAULT_PAGE) {
             resourceResourceStoreDto.setPage((page - 1) * resourceResourceStoreDto.getRow());
         }
-
         List<ResourceStoreDto> resourceResourceStores = BeanConvertUtil.covertBeanList(resourceResourceStoreServiceDaoImpl.getResourceStoreInfo(BeanConvertUtil.beanCovertMap(resourceResourceStoreDto)), ResourceStoreDto.class);
+        //鑾峰彇鍥剧墖鍦板潃
+        List<ResourceStoreDto> resourceStoreDtos = new ArrayList<>();
+        List<String> resCodes = new ArrayList<>();
+        for (ResourceStoreDto resourceStoreDto : resourceResourceStores) {
 
-        return resourceResourceStores;
+            resCodes.add(resourceStoreDto.getResCode());
+            //鑾峰彇璧勬簮id
+            String resId = resourceStoreDto.getResId();
+            FileRelDto fileRelDto = new FileRelDto();
+            fileRelDto.setObjId(resId);
+            //鏌ヨ鏂囦欢琛�
+            List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+            if (fileRelDtos != null && fileRelDtos.size() > 0) {
+                List<String> fileUrls = new ArrayList<>();
+                for (FileRelDto fileRel : fileRelDtos) {
+                    fileUrls.add(fileRel.getFileRealName());
+                }
+                resourceStoreDto.setFileUrls(fileUrls);
+            }
+            resourceStoreDtos.add(resourceStoreDto);
+
+
+            ResourceStoreTimesDto resourceStoreTimesDto = new ResourceStoreTimesDto();
+            resourceStoreTimesDto.setStoreId(resourceResourceStoreDto.getStoreId());
+            resourceStoreTimesDto.setResCode(resourceStoreDto.getResCode());
+            resourceStoreTimesDto.setShId(resourceStoreDto.getShId());
+//            List<ResourceStoreTimesDto> resourceStoreTimesDtos = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimess(resourceStoreTimesDto);
+//            resourceStoreDto.setTimes(resourceStoreTimesDtos);
+        }
+        return resourceStoreDtos;
     }
 
 
@@ -70,23 +107,61 @@
             info.put("resId", resourceStorePo.getResId());
             info.put("storeId", resourceStorePo.getStoreId());
             List<Map> stores = resourceResourceStoreServiceDaoImpl.getResourceStoreInfo(info);
-
             Assert.listOnlyOne(stores, "涓嶅瓨鍦ㄨ鐗╁搧");
-            int stock = Integer.parseInt(stores.get(0).get("stock").toString());
-            int newStock = Integer.parseInt(resourceStorePo.getStock());
-            int totalStock = stock + newStock;
-
-            if (totalStock < 0) {
+            BigDecimal stock = new BigDecimal(stores.get(0).get("stock").toString());
+            BigDecimal newStock = new BigDecimal(resourceStorePo.getStock().toString());
+            BigDecimal totalStock = stock.add(newStock);
+            BigDecimal zeroStock = new BigDecimal(0);
+            if (totalStock.compareTo(zeroStock) == -1) {
                 throw new IllegalArgumentException("搴撳瓨涓嶈冻锛屽弬鏁版湁璇�");
             }
-            resourceStorePo.setStock(totalStock + "");
+            //鍏ュ簱鎿嶄綔 瀵圭墿鍝佽繘琛屽姞鏉冨钩鍧�
+            if (PurchaseApplyDto.RES_ORDER_TYPE_ENTER.equals(resourceStorePo.getResOrderType())
+                    || (PurchaseApplyDto.WAREHOUSING_TYPE_URGENT.equals(resourceStorePo.getResOrderType())
+                    && PurchaseApplyDto.WEIGHTED_MEAN_TRUE.equals(resourceStorePo.getOperationType()))) {
+                //鑾峰彇鍘熷潎浠�
+                Object averageOldPrice = stores.get(0).get("averagePrice");
+                BigDecimal price = new BigDecimal(0);
+                if (averageOldPrice != null) {
+                    price = new BigDecimal(averageOldPrice.toString());
+                }
+                //鑾峰彇鐜板湪閲囪喘鐨勪环鏍�
+                BigDecimal newPrice = new BigDecimal(resourceStorePo.getPurchasePrice());
+                //鑾峰彇鍧囦环
+                BigDecimal averagePriceTotal = ((newPrice.multiply(newStock)).add(price.multiply(stock)));
+                BigDecimal averagePrice = averagePriceTotal.divide(totalStock, 2, BigDecimal.ROUND_HALF_UP);
+                resourceStorePo.setAveragePrice(averagePrice.toString());
+            }
+            if (PurchaseApplyDto.WAREHOUSING_TYPE_URGENT.equals(resourceStorePo.getResOrderType())
+                    && PurchaseApplyDto.WEIGHTED_MEAN_TRUE.equals(resourceStorePo.getOperationType())) {
+                resourceStorePo.setStock(stock + "");
+            } else {
+                resourceStorePo.setStock(totalStock + "");
+            }
             resourceStorePo.setStatusCd("0");
+
+            if (StringUtil.isEmpty(resourceStorePo.getAdjustmentType())) {
+                //璁$畻鏈�灏忚閲忔�绘暟
+                BigDecimal miniUnitStock = new BigDecimal(stores.get(0).get("miniUnitStock").toString());//鏈�灏忚閲忓崟浣嶆暟閲�
+                BigDecimal newMiniStock = totalStock.multiply(miniUnitStock);
+                resourceStorePo.setMiniStock(String.valueOf(newMiniStock));
+            }
+
             return resourceResourceStoreServiceDaoImpl.updateResourceStoreInfoInstance(BeanConvertUtil.beanCovertMap(resourceStorePo));
         } finally {
-            DistributedLock.releaseDistributedLock(requestId, key);
+            DistributedLock.releaseDistributedLock(key, requestId);
         }
     }
 
+    /**
+     * 鏂板鐗╁搧
+     *
+     * @param resourceStoreDto
+     */
+    @Override
+    public void saveResourceStore(@RequestBody ResourceStoreDto resourceStoreDto) {
+        resourceResourceStoreServiceDaoImpl.saveResourceStoreInfo(BeanConvertUtil.beanCovertMap(resourceStoreDto));
+    }
 
     public IResourceStoreServiceDao getResourceStoreServiceDaoImpl() {
         return resourceResourceStoreServiceDaoImpl;
@@ -96,6 +171,17 @@
         this.resourceResourceStoreServiceDaoImpl = resourceResourceStoreServiceDaoImpl;
     }
 
+    @Override
+    public String queryResourceStoresTotalPrice(@RequestBody ResourceStoreDto resourceResourceStoreDto) {
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+        int page = resourceResourceStoreDto.getPage();
+        if (page != PageDto.DEFAULT_PAGE) {
+            resourceResourceStoreDto.setPage((page - 1) * resourceResourceStoreDto.getRow());
+        }
+        return resourceResourceStoreServiceDaoImpl.queryResourceStoresTotalPrice(BeanConvertUtil.beanCovertMap(resourceResourceStoreDto));
+
+    }
+
     public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
         return userInnerServiceSMOImpl;
     }

--
Gitblit v1.8.0