From 11f925fdce0f58d1f321f3a13a3f3e84221c6912 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期一, 13 十一月 2023 09:27:14 +0800
Subject: [PATCH] 整理代码

---
 consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java |  189 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 165 insertions(+), 24 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
index da88dcb..c13593f 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -2,28 +2,40 @@
 
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
-import com.consum.base.core.WhBusinessEnum;
+import com.consum.base.core.utils.MapRowMapper;
 import com.consum.base.pojo.LWhFormTransferParam;
 import com.consum.base.pojo.LWhProcureModelParams;
-import com.consum.base.util.IdUtil;
-import com.consum.model.po.*;
+import com.consum.base.pojo.LWhProcureModelUserDTO;
+import com.consum.base.pojo.query.TransferQryDto;
+import com.consum.base.core.utils.IdUtil;
+import com.consum.model.po.BaseGoodsModels;
+import com.consum.model.po.BaseWarehouse;
+import com.consum.model.po.FinSysTenant;
+import com.consum.model.po.FinSysTenantUser;
+import com.consum.model.po.LWhFormOutput;
+import com.consum.model.po.LWhFormTransfer;
+import com.consum.model.po.LWhGoodsRecord;
+import com.consum.model.po.LWhProcureModel;
+import com.consum.model.po.LWhProcureModelUser;
 import com.consum.model.vo.LWhFormOutputVo;
 import com.consum.model.vo.LWhFormTransferVo;
 import com.consum.model.vo.LWhGoodsRecordVo;
+import com.consum.model.vo.LWhProcureModelVo;
 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 java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+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.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
 
 /**
  * @Description 璋冩嫧绠$悊
@@ -51,8 +63,11 @@
     private LWhGoodsRecordService lWhGoodsRecordService;
     @Autowired
     private BaseGoodsModelsServiceImpl baseGoodsModelsService;
+    @Autowired
+    private LWhProcureModelUserServiceImpl lWhProcureModelUserService;
 
     private static String QUERY_FORM_TRANSFER_LIST = "SELECT * FROM l_wh_form_transfer WHERE 1 = 1";
+
 
     /**
      * @Description 鏂板
@@ -65,7 +80,12 @@
         //璋冩嫧鍗昳d
         long lWhFormTransferId = IdUtil.generateId();
         lWhFormTransfer.setId(lWhFormTransferId);
-        lWhFormTransfer.setBusinessType(0);
+
+        Integer businessType = param.getTransferBusinessType();
+        // 涓氬姟绫诲瀷 璋冩嫧/閮ㄩ棬鍒嗗彂/閮ㄩ棬閫�鍥� 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為��
+        // TODO 鏋氫妇瀛楀吀
+        lWhFormTransfer.setBusinessType(businessType);
+
         lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Transfer));
         Long warehouseId = param.getInWarehouseId();
         lWhFormTransfer.setInWarehouseId(warehouseId);
@@ -89,43 +109,80 @@
         lWhFormTransfer.setOperatorId(sysInfo.getId());
         lWhFormTransfer.setOperatorName(sysInfo.getUserName());
         lWhFormTransfer.setCreateTime(param.getCreateTime());
+        //0=寰呭嚭搴擄紱1=寰呮帴鏀讹紱2=宸插叆搴撳簱:4=宸叉挙閿�
         lWhFormTransfer.setStates(0);
         lWhFormTransfer.setProcureDoc(param.getProcureDoc());
+
+        //3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉
+        if (businessType == 1) {
+            //閮ㄩ棬鍒嗗彂绫诲瀷 鍑哄簱浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬
+            // TODO 鍑哄簱涓氬姟绫诲瀷 鑱旂郴鐢佃瘽
+            lWhFormTransfer.setOutWarehouseType(1);
+        }
         int flag1 = this.insert(lWhFormTransfer);
         if (flag1 == 0) {
             log.error("鏂板璋冩嫧鍗曞け璐�");
             return 0;
         }
+
         //2.鏂板鐗╁搧鍨嬪彿璁板綍
         List<LWhProcureModelParams> models = param.getModels();
         List<LWhProcureModel> modelList = new ArrayList<>();
         for (LWhProcureModelParams model : models) {
             LWhProcureModel lWhProcureModel = new LWhProcureModel();
             lWhProcureModel.setId(IdUtil.generateId());
-            lWhProcureModel.setBusinessType(2);
+            // 鐗╁搧鍨嬪彿涓氬姟绫诲瀷
+            lWhProcureModel.setBusinessType(model.getProcureModelBusinessType());
             lWhProcureModel.setBusinessId(lWhFormTransferId);
             lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
             lWhProcureModel.setCounts(model.getCounts());
             //鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧搴撳瓨
-            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
+            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
             lWhProcureModel.setWorehouseCount(goodsNum);
+
+            //3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉
+            // 鍗曟嵁绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂
+            if (model.getProcureModelBusinessType() == 4) {
+                List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList();
+                for (LWhProcureModelUserDTO lWhProcureModelUserDTO : model.getLWhProcureModelUserList()) {
+                    LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
+                    lWhProcureModelUser.setId(IdUtil.generateId());
+                    lWhProcureModelUser.setTransBusinessId(lWhFormTransferId);
+                    lWhProcureModelUser.setWhProcureModelId(lWhProcureModel.getId());
+                    lWhProcureModelUser.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
+                    lWhProcureModelUser.setNowUserName(lWhProcureModelUserDTO.getNowUserName());
+                    lWhProcureModelUser.setNowUserPhone(lWhProcureModelUserDTO.getNowUserPhone());
+                    lWhProcureModelUser.setGoodsNum(lWhProcureModelUserDTO.getGoodsNum());
+                    procureModelUserList.add(lWhProcureModelUser);
+                }
+                int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList);
+                if (procureInsertNum != procureModelUserList.size()) {
+                    log.error("鏂板鐗╁搧浣跨敤淇℃伅澶辫触");
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return 0;
+                }
+            }
+
             modelList.add(lWhProcureModel);
         }
+
         int flag2 = this.lWhProcureModelService.insert(modelList);
         if (flag2 != modelList.size()) {
             log.error("鏂板鐗╁搧鍨嬪彿澶辫触");
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return 0;
         }
+
         return 1;
     }
 
+
     /**
-     * @Description  鍒楄〃鏌ヨ
+     * @Description 鍒楄〃鏌ヨ
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/30
      */
-    public GenericPager<LWhFormTransfer> queryFormTransferList(LWhFormTransferParam param) {
+    public GenericPager<LWhFormTransfer> queryFormTransferList(TransferQryDto param) {
         HashMap<String, Object> paramts = new HashMap<>();
         StringBuilder sql = new StringBuilder(QUERY_FORM_TRANSFER_LIST);
         //璋冩嫧鍗曞彿
@@ -135,18 +192,19 @@
         }
         //鐗╁搧鍚嶇О
         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)");
+            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);
         }
         //璋冩嫧鏈烘瀯
-        if (param.getOutAgencyId() != null){
+        if (param.getOutAgencyId() != null) {
             sql.append(" and OUT_AGENCY_ID = :OUT_AGENCY_ID ");
             paramts.put("OUT_AGENCY_ID", param.getOutAgencyId());
         }
         //鎺ユ敹鏈烘瀯
-        if (param.getInAgencyId() != null){
+        if (param.getInAgencyId() != null) {
             sql.append(" and IN_AGENCY_ID = :IN_AGENCY_ID ");
-            paramts.put("IN_AGENCY_ID",   param.getInAgencyId() );
+            paramts.put("IN_AGENCY_ID", param.getInAgencyId());
         }
         //鐘舵��
         if (param.getStates() != null) {
@@ -184,7 +242,7 @@
     }
 
     /**
-     * @Description  鏍规嵁id鏌ヨ璇︽儏
+     * @Description 鏍规嵁id鏌ヨ璇︽儏
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/30
      */
@@ -193,18 +251,32 @@
         //1.鏌ヨ璋冩嫧鍗�
         LWhFormTransfer lWhFormTransfer = this.get(new LWhFormTransfer(id));
         if (lWhFormTransfer != null) {
-            BeanUtils.copyProperties(lWhFormTransfer,vo);
+            BeanUtils.copyProperties(lWhFormTransfer, vo);
         }
         //2.鏌ヨ鐗╁搧鍨嬪彿
-        List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id);
+//        List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id);
+        List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(null, id);
+
         if (!CollectionUtils.isEmpty(models)) {
-            vo.setModels(models);
+            List<LWhProcureModelVo> lWhProcureModelVoList = Lists.newArrayList();
+            for (LWhProcureModel model : models) {
+                LWhProcureModelVo lWhProcureModelVo = new LWhProcureModelVo();
+                BeanUtils.copyProperties(model, lWhProcureModelVo);
+
+                LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
+                lWhProcureModelUser.setWhProcureModelId(model.getId());
+                List<LWhProcureModelUser> select = lWhProcureModelUserService.select(lWhProcureModelUser);
+                lWhProcureModelVo.setProcureModelUsersList(select);
+                lWhProcureModelVoList.add(lWhProcureModelVo);
+            }
+            vo.setModels(lWhProcureModelVoList);
         }
         return vo;
     }
 
+
     /**
-     * @Description  瀵煎嚭璋冩嫧鍑哄簱鍗�
+     * @Description 瀵煎嚭璋冩嫧鍑哄簱鍗�
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/31
      */
@@ -215,8 +287,8 @@
         Long outWarehouseFormId = this.lWhFormOutputCoreService.createOutFormByTransId(id, currentUser, dealTime);
         //2.鍑哄簱鍗昳d鏌ヨ鍑哄簱鍗�
         LWhFormOutput lWhFormOutput = this.lWhFormOutputService.get(new LWhFormOutput(outWarehouseFormId));
-        if (lWhFormOutput!= null) {
-            BeanUtils.copyProperties(lWhFormOutput,result);
+        if (lWhFormOutput != null) {
+            BeanUtils.copyProperties(lWhFormOutput, result);
         }
         //3.鏍规嵁杩涘嚭搴撴祦姘存�昏〃id鏌ヨl_wh_goods_record
         LWhGoodsRecord record = new LWhGoodsRecord();
@@ -226,7 +298,7 @@
         if (!CollectionUtils.isEmpty(recordList)) {
             for (LWhGoodsRecord lWhGoodsRecord : recordList) {
                 LWhGoodsRecordVo vo = new LWhGoodsRecordVo();
-                BeanUtils.copyProperties(lWhGoodsRecord,vo);
+                BeanUtils.copyProperties(lWhGoodsRecord, vo);
                 //鏍规嵁鍨嬪彿id鏌ヨ鍨嬪彿
                 BaseGoodsModels baseGoodsModels = baseGoodsModelsService.get(new BaseGoodsModels(id));
                 if (baseGoodsModels != null) {
@@ -242,6 +314,7 @@
 
     /**
      * 鎾ら攢
+     *
      * @author 鍗㈠簡闃�
      * @date 2023/10/31
      */
@@ -250,4 +323,72 @@
         lWhFormTransfer.setStates(4);
         return this.update(lWhFormTransfer);
     }
+
+    public GenericPager<Map<String, Object>> queryTransferInfo(TransferQryDto transferQryDto) {
+
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder("SELECT\n"
+            + "\tft.id,\n"
+            + "\tft.BUSINESS_FORM_CODE businessCode,\n"
+            + "\tbgt.GOODS_NAME goodsName,\n"
+            + "\tbgt.CLASSIFICATION goodsType,\n"
+            + "\tbgm.id goodsModelId,\n"
+            + "\tbgm.MODEL_NAME goodsModelName,\n"
+            + "\tpm.COUNTS goodsCount,\n"
+            + "\tfst.`name` tennatName,\n"
+            + "\tfstd.NAME departmentName,\n"
+            + "\tft.OPERATOR_ID distributor,\n"
+            + "\tft.CREATE_TIME TIME \n"
+            + "FROM\n"
+            + "\tl_wh_form_transfer ft\n"
+            + "\tLEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n"
+            + "\tLEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = pm.BASE_GOODS_MODELS_ID\n"
+            + "\tLEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID\n"
+            + "\tLEFT JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID\n"
+            + "\tLEFT JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID \n"
+            + "\tLEFT JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where 1=1 ");
+        //鍗曞彿
+        if (StringUtils.isNotEmpty(transferQryDto.getBusinessFormCode())) {
+            sql.append("AND BUSINESS_FORM_CODE like :businessFormCode ");
+            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + transferQryDto.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
+        }
+        //鐗╁搧鍚嶇О
+        if (StringUtils.isNotEmpty(transferQryDto.getGoodsTemplateName())) {
+            sql.append("AND bgt.GOODS_NAME like:goodsName ");
+            paramts.put("goodsName", StringUtils.CHAR_PERCENT + transferQryDto.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        // 瑙勬牸鍨嬪彿
+        if (transferQryDto.getBaseGoodsTemplateId() != null) {
+            sql.append("AND bgm.id =:goodsModelId ");
+            paramts.put("goodsModelId", transferQryDto.getBaseGoodsTemplateId());
+        }
+        //璋冩嫧鏈烘瀯
+        if (transferQryDto.getOutAgencyId() != null) {
+            sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID ");
+            paramts.put("OUT_AGENCY_ID", transferQryDto.getOutAgencyId());
+        }
+
+        //鍒涘缓浜�
+        if (StringUtils.isNotEmpty(transferQryDto.getOperatorName())) {
+            sql.append("AND ft.OPERATOR_NAME =:OPERATOR_NAME ");
+            paramts.put("OPERATOR_NAME", transferQryDto.getOperatorName());
+        }
+        //鐢宠鏃堕棿
+        if (transferQryDto.getCreateTimeStart() != null) {
+            sql.append("AND ft.CREATE_TIME >=:createTimeStart ");
+            paramts.put("createTimeStart", transferQryDto.getCreateTimeStart() * 1000000);
+        }
+        if (transferQryDto.getCreateTimeEnd() != null) {
+            sql.append("AND ft.CREATE_TIME <:createTimeEnd ");
+            paramts.put("createTimeEnd", transferQryDto.getCreateTimeEnd() * 1000000 + 240000);
+        }
+        sql.append("ORDER BY ft.CREATE_TIME DESC");
+
+        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, transferQryDto.getPageNum(), transferQryDto.getPageSize(),
+            new MapRowMapper());
+
+        return mapGenericPager;
+    }
+
+
 }

--
Gitblit v1.9.1