From 5e6c61b8753870ef2f8cde60eef47e3eeefe89e6 Mon Sep 17 00:00:00 2001
From: luqingyang <lqy5492@163.com>
Date: 星期四, 02 十一月 2023 17:35:48 +0800
Subject: [PATCH] 报废单 相关代码

---
 consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java |  230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 218 insertions(+), 12 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
index 7601f0a..59f876e 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
@@ -2,19 +2,26 @@
 
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
-import com.consum.base.pojo.LWhFormScrappedGoodsParams;
-import com.consum.base.pojo.LWhFormScrappedParam;
-import com.consum.base.pojo.LWhProcureModelParams;
+import com.consum.base.core.tools.MapRowMapper;
+import com.consum.base.pojo.*;
 import com.consum.base.util.IdUtil;
 import com.consum.model.po.*;
 import com.iplatform.model.po.S_user_core;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description 鎶ュ簾鍗�
@@ -33,22 +40,43 @@
     private LWhGoodsService lWhGoodsService;
     @Autowired
     private LWhFormScrappedGoodsService scrappedGoodsService;
+    @Autowired
+    private SDictDataServiceImpl sDictDataService;
+    @Autowired
+    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
+    @Autowired
+    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
+    @Autowired
+    private LWhFormScrappedCoreService lWhFormScrappedCoreService;
+
+    private static String QUERY_LIST = "SELECT * FROM l_wh_form_scrapped WHERE 1 = 1";
+
+    private static final String QUERY_BF_DETAIL_LIST = "select lwfs.BUSINESS_FORM_CODE,\n" +
+            "       lwfsg.GOODS_TEMPLATE_NAME,\n" +
+            "       lwfsg.BASE_GOODS_MODELS_NAME,\n" +
+            "       lwfsg.COUNTS,\n" +
+            "       lwfs.AGENCY_NAME,\n" +
+            "       lwfs,OPERATOR_NAME,\n" +
+            "       lwfs,DEAL_TIME\n" +
+            "from l_wh_form_scrapped lwfs\n" +
+            "         inner join l_wh_form_scrapped_goods lwfsg on lwfs.ID = lwfsg.FORM_SCRAPPED_ID ";
 
     /**
      * 鏂板
+     *
      * @param param
-     * @param sysInfo
-     * @param operatorUser
+     * @param currentUser  褰撳墠鐧诲綍鐢ㄦ埛
+     * @param sysInfo      褰撳墠鐧诲綍鐢ㄦ埛
      * @return
      */
     //1.鏂板鎶ュ簾鍗�
     //2.鏂板鎶ュ簾鍗曠墿鍝�
-    public int add(LWhFormScrappedParam param, FinSysTenantUser sysInfo, S_user_core operatorUser) {
+    public int add(LWhFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
         //1.鏂板鎶ュ簾鍗曡褰�
         LWhFormScrapped lWhFormScrapped = new LWhFormScrapped();
-        //璋冩嫧鍗昳d
-        long lWhFormTransferId = IdUtil.generateId();
-        lWhFormScrapped.setId(lWhFormTransferId);
+        //鎶ュ簾鍗昳d
+        long lWhFormScrappedId = IdUtil.generateId();
+        lWhFormScrapped.setId(lWhFormScrappedId);
         lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped));
         lWhFormScrapped.setWarehouseType(0);
         Long warehouseId = param.getWarehouseId();
@@ -78,28 +106,206 @@
             return 0;
         }
         //2.鏂板鎶ュ簾鍗曠墿鍝佽褰�
+        //鏍规嵁鐗╁搧id鏌ヨ鐗╁搧
+        BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(param.getBaseGoodsTemplateId()));
+        if (goodsTemplate == null) {
+            log.error("鏍规嵁鐗╁搧id鏌ヨ鐗╁搧");
+            return 0;
+        }
         List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList();
+        if (CollectionUtils.isEmpty(scrappedGoodsParamList)) {
+            log.error("鏂板鎶ュ簾鍗曠墿鍝佽褰� 澶辫触");
+            return 0;
+        }
+        //鑾峰彇瑙勬牸鍨嬪彿id
+        List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList());
+        //鏍规嵁瑙勬牸鍨嬪彿id鏌ヨ瑙勬牸鍨嬪彿
+        List<BaseGoodsModels> models = this.baseGoodsModelsService.selectByModelsIdList(baseGoodsModelsIdList);
+        Map<Long, BaseGoodsModels> modelMap = models.stream().collect(Collectors.toMap(model -> model.getId(), model -> model));
+        //鑾峰彇鎶ュ簾鍘熷洜code
+        List<String> scrappedCodeList = scrappedGoodsParamList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
+        //鏍规嵁鎶ュ簾鍘熷洜code鏌ヨ鏁版嵁瀛楀吀
+        List<S_dict_data> s_dict_dataList = this.sDictDataService.selectByScrappedCodeList(scrappedCodeList);
+        Map<Long, String> scrappedNameMap = s_dict_dataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
+
         List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
         for (LWhFormScrappedGoodsParams params : scrappedGoodsParamList) {
             LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
             scrappedGoods.setId(IdUtil.generateId());
             //鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧搴撳瓨
-            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, scrappedGoods.getBaseGoodsModelsId(), (short) 1, null);
+            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, scrappedGoods.getBaseGoodsModelsId(), (short) 1, null);
             if (params.getCounts() > goodsNum) {
                 log.error("鎶ュ簾鏁伴噺澶т簬搴撳瓨鏁伴噺");
                 return 0;
             }
             scrappedGoods.setCounts(params.getCounts());
+            //鎶ュ簾鍘熷洜
             scrappedGoods.setScrappedCode(params.getScrappedCode());
-            //TODO 鎶ュ簾鍘熷洜
+            scrappedGoods.setScrappedName(scrappedNameMap.get(Long.valueOf(params.getScrappedCode())));
+            scrappedGoods.setFormScrappedId(lWhFormScrappedId);
+            //鐗╁搧妯℃澘
+            scrappedGoods.setBaseGoodsTemplateId(goodsTemplate.getId());
+            scrappedGoods.setGoodsTemplateName(goodsTemplate.getGoodsName());
+            //瑙勬牸鍨嬪彿
+            Long baseGoodsModelsId = params.getBaseGoodsModelsId();
+            BaseGoodsModels baseGoodsModels = modelMap.get(baseGoodsModelsId);
+            if (baseGoodsModels != null) {
+                scrappedGoods.setBaseGoodsModelsId(baseGoodsModelsId);
+                scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName());
+                scrappedGoods.setUnit(baseGoodsModels.getUnit());
+            }
+
             scrappedGoodsList.add(scrappedGoods);
         }
         int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList);
         if (flag2 != scrappedGoodsList.size()) {
-            log.error("鏂板鎶ュ簾鍗曠墿鍝佽褰�");
+            log.error("鏂板鎶ュ簾鍗曠墿鍝佽褰� 澶辫触");
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return 0;
         }
+        //3.鏍规嵁鎶ュ簾鍗曟姤搴熺墿鍝�
+        Long lWarehouseFlowId = this.lWhFormScrappedCoreService.outFormByTransId(lWhFormScrappedId, currentUser, param.getDealTime());
+        if (lWarehouseFlowId == null) {
+            log.error("鏍规嵁鍑哄簱鍗曞嚭搴� 澶辫触");
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return 0;
+        }
+
         return 1;
     }
+
+    /**
+     * @Description  鍒楄〃鏌ヨ
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/11/2
+     */
+    public GenericPager queryList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(QUERY_LIST);
+        //鎶ュ簾鍗曞彿
+        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
+            sql.append(" and BUSINESS_FORM_CODE like :businessFormCode ");
+            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
+        }
+        //鐗╁搧鍚嶇О
+        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
+            sql.append(" AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=1 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)");
+            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        //鏈烘瀯
+        sql.append(" and AGENCY_ID like :agencyId ");
+        if (param.getAgencyId() != null){
+            paramts.put("agencyId",  param.getAgencyId() + StringUtils.CHAR_PERCENT);
+        } else {
+            paramts.put("agencyId",  sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
+        }
+        //鎶ュ簾鏃堕棿
+        if (param.getDealTimeStart() != null) {
+            sql.append(" and DEAL_TIME >=:dealTimeStart ");
+            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
+        }
+        if (param.getDealTimeEnd() != null) {
+            sql.append(" and DEAL_TIME <:dealTimeEnd ");
+            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
+        }
+
+        sql.append(" ORDER BY DEAL_TIME DESC");
+        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormScrapped());
+        return genericPager;
+    }
+
+    /**
+     * @Description  鏍规嵁id鏌ヨ璇︽儏
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/11/2
+     */
+    public LWhFormScrappedExtend getById(Long id) {
+        LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend();
+        //1.鏌ヨ鎶ュ簾鍗�
+        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
+        if (lWhFormScrapped != null) {
+            BeanUtils.copyProperties(lWhFormScrapped,scrappedExtend);
+        }
+        //2.鏌ヨ鎶ュ簾鍗�
+        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
+        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
+            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
+        }
+        return scrappedExtend;
+    }
+
+    /**
+     * 鎶ュ簾鏄庣粏
+     * @param param
+     * @return
+     */
+    public GenericPager<Map<String, Object>> queryDetailList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) {
+        StringBuilder sql = new StringBuilder(QUERY_BF_DETAIL_LIST);
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        //鎶ュ簾鍗曞彿
+        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
+            sql.append(" and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE ");
+            paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
+        }
+        //鐗╁搧鍚嶇О
+        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
+            sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
+            paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        //瑙勬牸鍨嬪彿
+        if (param.getBaseGoodsModelsId() != null) {
+            sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
+            paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId());
+        }
+        //鏈烘瀯
+        sql.append(" and AGENCY_ID like:AGENCY_ID ");
+        if (param.getAgencyId() != null) {
+            paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT);
+        } else {
+            paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
+        }
+        //鍒涘缓浜�
+        if (!StringUtils.isEmpty(param.getOperatorName())) {
+            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
+            paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
+        }
+
+        //缁撴潫鏃堕棿
+        if (param.getDealTimeStart() != null) {
+            sql.append(" and DEAL_TIME >=:dealTimeStart ");
+            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
+        }
+        if (param.getDealTimeEnd() != null) {
+            sql.append(" and DEAL_TIME <:dealTimeEnd ");
+            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
+        }
+
+        sql.append(" ORDER BY DEAL_TIME DESC ");
+
+        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
+    }
+
+
+    /**
+     * @Description  瀵煎嚭鎶ュ簾鐧昏鍗�
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/11/2
+     */
+    public LWhFormScrappedExtend export(Long id, FinSysTenantUser sysInfo) {
+        LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend();
+        //1.鏌ヨ鎶ュ簾鍗�
+        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
+        if (lWhFormScrapped != null) {
+            lWhFormScrapped.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+            lWhFormScrapped.setOperatorName(sysInfo.getUserName());
+            BeanUtils.copyProperties(lWhFormScrapped,scrappedExtend);
+        }
+        //2.鏌ヨ鎶ュ簾鍗曠墿鍝�
+        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
+        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
+            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
+        }
+        return scrappedExtend;
+    }
 }

--
Gitblit v1.9.1