From 8e41786892a4bd7cff2d63bde8cb0636cdb0650c Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期六, 02 十二月 2023 20:54:51 +0800
Subject: [PATCH] 分转元

---
 consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java |  151 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 90 insertions(+), 61 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
index e00cb1f..273cd1c 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -12,26 +12,43 @@
 import com.consum.base.pojo.request.UsingFormBackGoodsInfo;
 import com.consum.base.pojo.request.UsingFormBackParam;
 import com.consum.base.pojo.request.baseGoodModel;
-import com.consum.base.pojo.response.*;
-import com.consum.base.service.*;
-import com.consum.model.po.*;
+import com.consum.base.pojo.response.BaseGoodsTemplateInfo;
+import com.consum.base.pojo.response.UseInfo;
+import com.consum.base.pojo.response.UsingFormBackDetailListVO;
+import com.consum.base.pojo.response.UsingFormBackDetailVO;
+import com.consum.base.pojo.response.UsingFormBackGoodsTemplateInfo;
+import com.consum.base.pojo.response.UsingFormBackModelInfo;
+import com.consum.base.pojo.response.UsingFormBackVO;
+import com.consum.base.service.BaseCategoryService;
+import com.consum.base.service.FinSysTenantDepartmentService;
+import com.consum.base.service.LWhFormTransferService;
+import com.consum.base.service.UsingFormBackGoodsService;
+import com.consum.base.service.UsingFormBackModelService;
+import com.consum.base.service.UsingFormBackService;
+import com.consum.model.po.BaseCategory;
+import com.consum.model.po.FinSysTenantDepartment;
+import com.consum.model.po.FinSysTenantUser;
+import com.consum.model.po.LWhFormTransfer;
+import com.consum.model.po.UsingFormBack;
+import com.consum.model.po.UsingFormBackGoods;
+import com.consum.model.po.UsingFormBackModel;
 import com.iplatform.model.po.S_user_core;
 import com.walker.db.page.GenericPager;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @author asus
@@ -56,76 +73,88 @@
     private LWhFormTransferService lWhFormTransferService;
     @Resource
     private DepUsingFormBackCoreServiceImpl depUsingFormBackCoreService;
+
     @Override
     public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo, S_user_core currentUser) {
 
         Long departmentId = usingFormBackParam.getDepartmentId();
+        Long operatorId = usingFormBackParam.getOperatorId();
+        String operatorName = usingFormBackParam.getOperatorName();
+        Long backTime = usingFormBackParam.getDealTime();
+        String procureDoc = usingFormBackParam.getProcureDoc();
+        List<UsingFormBackGoodsInfo> goodsList = usingFormBackParam.getGoods();
+
+        // 妫�鏌ラ儴闂ㄦ槸鍚﹀瓨鍦�
         FinSysTenantDepartment department = finSysTenantDepartmentService.getById(departmentId);
         if (department == null) {
             throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
         }
         String departmentName = department.getName();
-        Long operatorId = usingFormBackParam.getOperatorId();
-        String operatorName = usingFormBackParam.getOperatorName();
-        Long backTime = usingFormBackParam.getDealTime();
-        String procureDoc = usingFormBackParam.getProcureDoc();
-        List<UsingFormBackGoodsInfo> usingFormBackGoodsInfo = usingFormBackParam.getGoods();
 
+        // 娣诲姞閫�鍥炶〃鍗�
         Long usingFormBackId = addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc);
-        for (UsingFormBackGoodsInfo backingGoodsInfo : usingFormBackGoodsInfo) {
-            Long baseCategoryId = backingGoodsInfo.getBaseCategoryId();
-            Long baseGoodsTemplateId = backingGoodsInfo.getBaseGoodsTemplateId();
-            String goodsTemplateName = backingGoodsInfo.getGoodsTemplateName();
-            Long transBusinessId = backingGoodsInfo.getTransBusinessId();
-            String businessFormCode = backingGoodsInfo.getBusinessFormCode();
 
-            UsingFormBackGoods usingFormBackGoods = new UsingFormBackGoods();
-            usingFormBackGoods.setId(IdUtil.generateId());
-            usingFormBackGoods.setUsingFormBackId(usingFormBackId);
-            usingFormBackGoods.setBaseGoodsTemplateId(baseGoodsTemplateId);
-            usingFormBackGoods.setBaseGoodsTemplateName(goodsTemplateName);
+        // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨�
+        List<UsingFormBackGoods> goodsBatch = new ArrayList<>();
+        List<UsingFormBackModel> modelBatch = new ArrayList<>();
 
-            BaseCategory baseCategory = baseCategoryService.getById(baseCategoryId);
-            String categoryName = baseCategory.getCategoryName();
-            String classification = baseCategory.getClassification();
-            usingFormBackGoods.setCategoryName(categoryName);
-            usingFormBackGoods.setClassification(classification);
-            usingFormBackGoods.setTransBusinessId(transBusinessId);
-            usingFormBackGoods.setBusinessFormCode(businessFormCode);
+        for (UsingFormBackGoodsInfo goodsInfo : goodsList) {
+            UsingFormBackGoods goods = createUsingFormBackGoods(usingFormBackId, goodsInfo);
+            goodsBatch.add(goods);
 
-            LWhFormTransfer lWhFormTransfer = lWhFormTransferService.selectById(transBusinessId);
-            Integer outWarehouseType = lWhFormTransfer.getOutWarehouseType();
-            Long outWarehouseId = lWhFormTransfer.getOutWarehouseId();
-            usingFormBackGoods.setTransOutWarehouseType(outWarehouseType);
-            usingFormBackGoods.setTransOutWarehouseId(outWarehouseId);
-
-            usingFormBackModelService.insert(usingFormBackGoods);
-            for (baseGoodModel model : backingGoodsInfo.getModels()) {
-
-                UsingFormBackModel usingFormBackModel = new UsingFormBackModel();
-                usingFormBackModel.setId(IdUtil.generateId());
-                usingFormBackModel.setUsingFormBackId(usingFormBackId);
-                usingFormBackModel.setUsingFormBackGoodsId(usingFormBackGoods.getId());
-                usingFormBackModel.setBaseGoodsTemplateId(model.getGoodsTemplatesId());
-                usingFormBackModel.setBaseGoodsTemplateName(goodsTemplateName);
-                usingFormBackModel.setClassification(model.getClassification());
-                usingFormBackModel.setUnit(model.getUnit());
-                usingFormBackModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
-                usingFormBackModel.setBaseGoodsModelsName(model.getModelName());
-                usingFormBackModel.setProcureModelUserId(model.getModelUserId());
-                usingFormBackModel.setInitialCount(model.getGoodsNum());
-                usingFormBackModel.setUseCount(model.getUserUseCount());
-                usingFormBackModel.setCounts(model.getCounts());
-                usingFormBackModel.setGoodsUserName(model.getNowUserName());
-
-                usingFormBackGoodsService.insert(usingFormBackModel);
+            for (baseGoodModel model : goodsInfo.getModels()) {
+                UsingFormBackModel formModel = createUsingFormBackModel(usingFormBackId, goods.getId(), goodsInfo, model);
+                modelBatch.add(formModel);
             }
-
-
         }
-        depUsingFormBackCoreService.updateBack(usingFormBackId ,currentUser,DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+
+        // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨�
+        usingFormBackModelService.insertBatch(goodsBatch);
+        usingFormBackGoodsService.insertBatch(modelBatch);
+
+        depUsingFormBackCoreService.updateBack(usingFormBackId, currentUser, DateUtils.getDateTimeNumber(System.currentTimeMillis()));
     }
 
+    private UsingFormBackGoods createUsingFormBackGoods(Long usingFormBackId, UsingFormBackGoodsInfo goodsInfo) {
+        UsingFormBackGoods goods = new UsingFormBackGoods();
+        goods.setId(IdUtil.generateId());
+        goods.setUsingFormBackId(usingFormBackId);
+        goods.setBaseGoodsTemplateId(goodsInfo.getBaseGoodsTemplateId());
+        goods.setBaseGoodsTemplateName(goodsInfo.getGoodsTemplateName());
+
+        BaseCategory baseCategory = baseCategoryService.getById(goodsInfo.getBaseCategoryId());
+        goods.setCategoryName(baseCategory.getCategoryName());
+        goods.setClassification(baseCategory.getClassification());
+
+        LWhFormTransfer lWhFormTransfer = lWhFormTransferService.selectById(goodsInfo.getTransBusinessId());
+        goods.setTransOutWarehouseType(lWhFormTransfer.getOutWarehouseType());
+        goods.setTransOutWarehouseId(lWhFormTransfer.getOutWarehouseId());
+
+        return goods;
+    }
+
+    private UsingFormBackModel createUsingFormBackModel(Long usingFormBackId, Long usingFormBackGoodsId, UsingFormBackGoodsInfo goodsInfo,
+        baseGoodModel model) {
+        UsingFormBackModel formModel = new UsingFormBackModel();
+        formModel.setId(IdUtil.generateId());
+        formModel.setUsingFormBackId(usingFormBackId);
+        formModel.setUsingFormBackGoodsId(usingFormBackGoodsId);
+        formModel.setBaseGoodsTemplateId(model.getGoodsTemplatesId());
+        formModel.setBaseGoodsTemplateName(goodsInfo.getGoodsTemplateName());
+        formModel.setClassification(model.getClassification());
+        formModel.setUnit(model.getUnit());
+        formModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
+        formModel.setBaseGoodsModelsName(model.getModelName());
+        formModel.setProcureModelUserId(model.getModelUserId());
+        formModel.setInitialCount(model.getGoodsNum());
+        formModel.setUseCount(model.getUserUseCount());
+        formModel.setCounts(model.getCounts());
+        formModel.setGoodsUserName(model.getNowUserName());
+
+        return formModel;
+    }
+
+
     @Override
     public PageUtil selectPageByList(UsingFormBackQry usingFormBackParam) {
 

--
Gitblit v1.9.1