From 350125984c618f95d09fb08978953ad24f5d3b6c Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期三, 20 十二月 2023 13:53:48 +0800
Subject: [PATCH] 去除默认机构默认仓库逻辑

---
 consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java |   70 +++++++++++++++++++++++++----------
 1 files changed, 50 insertions(+), 20 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
index dd21c13..b0e3d5e 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
@@ -1,5 +1,7 @@
 package com.consum.base.service.impl;
 
+import static com.walker.db.Sorts.DESC;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -17,7 +19,9 @@
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
 import com.consum.base.core.type.CategoryType;
+import com.consum.base.core.type.StatesType;
 import com.consum.base.core.type.TransferBusinessType;
+import com.consum.base.core.type.WareHouseType;
 import com.consum.base.core.utils.CurrencyUtil;
 import com.consum.base.core.utils.IdUtil;
 import com.consum.base.core.utils.MapUtils;
@@ -35,7 +39,7 @@
 import com.consum.base.pojo.response.LWHFromTransferExtendVO;
 import com.consum.base.service.BaseWarehouseManagerService;
 import com.consum.base.service.BaseWarehouseService;
-import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.base.service.FinSysTenantService;
 import com.consum.base.service.LWhFormTransferService;
 import com.consum.base.service.LWhGoodsService;
 import com.consum.base.service.LWhProcureModelService;
@@ -67,7 +71,7 @@
     @Autowired
     private CodeGeneratorService codeGeneratorService;
     @Autowired
-    private FinSysTenantServiceImpl finSysTenantService;
+    private FinSysTenantService finSysTenantService;
     @Autowired
     private LWhGoodsService lWhGoodsService;
     @Autowired
@@ -110,13 +114,12 @@
 
         lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(codeGeneratorEnum));
 
-        Long warehouseId = param.getInWarehouseId();
         // 璋冩嫧绫诲瀷鍗曟嵁
         if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) {
-            // 鍏ュ簱浠撳簱涓哄綋鍓嶇敤鎴风殑榛樿浠撳簱
+            // 鍏ュ簱浠撳簱涓哄綋鍓嶇敤鎴风殑榛樿浠撳簱涓殑绗竴涓�
             String tenantId = sysInfo.getTenantId();
             String tenantName = sysInfo.getTenantName();
-            BaseWarehouse warehouse = baseWarehouseService.getDefaultWarehouseByAgencyId(Long.valueOf(tenantId));
+            BaseWarehouse warehouse = baseWarehouseService.getWarehouseByAgencyId(Long.valueOf(tenantId), null);
             if (warehouse == null) {
                 log.error("浠撳簱涓嶅瓨鍦�");
                 throw new Exception("浠撳簱涓嶅瓨鍦�");
@@ -132,9 +135,9 @@
             // 浠庡綋鍓嶇櫥褰曞簱绠′汉浠庡簱涓嚭搴擄紝鍏ュ埌鎵�閫夐儴闂ㄧ殑涓�
 
             // 鏌ヨ搴撶鍛樹俊鎭拰鐩稿叧浠撳簱
-            Long id = sysInfo.getId();
+            Long sysUserId = sysInfo.getSysUserId();
             BaseWarehouseManager manager = new BaseWarehouseManager();
-            manager.setManagerId(id);
+            manager.setManagerId(sysUserId);
             List<BaseWarehouseManager> managerList = baseWarehouseManagerService.select(manager);
             if (CollectionUtils.isEmpty(managerList)) {
                 log.error("璇ョ敤鎴蜂笉鏄簱绠″憳");
@@ -146,13 +149,13 @@
             baseWarehouse.setId(baseWarehouseId);
             BaseWarehouse warehouse = baseWarehouseService.get(baseWarehouse);
 
-            lWhFormTransfer.setInWarehouseType(1);
+            lWhFormTransfer.setInWarehouseType(WareHouseType.DEPARTMENT.getValue());
             lWhFormTransfer.setInWarehouseId(param.getDepartmentId());
             lWhFormTransfer.setInWarehouseName(param.getDepartmentName());
             lWhFormTransfer.setInOperatorName(param.getOperatorName());
             lWhFormTransfer.setInTime(param.getCreateTime());
 
-            lWhFormTransfer.setOutWarehouseType(0);
+            lWhFormTransfer.setOutWarehouseType(WareHouseType.TENANT.getValue());
             lWhFormTransfer.setOutWarehouseId(warehouse.getId());
             lWhFormTransfer.setOutWarehouseName(warehouse.getWarehouseName());
 
@@ -168,7 +171,8 @@
         if (finSysTenant == null) {
             log.error("璋冩嫧鏈烘瀯涓嶅瓨鍦�");
         }
-        lWhFormTransfer.setOutAgencyId(finSysTenant.getId());
+        Long outAgencyId = finSysTenant.getId();
+        lWhFormTransfer.setOutAgencyId(outAgencyId);
         lWhFormTransfer.setOutAgencyName(finSysTenant.getName());
         lWhFormTransfer.setOperatorId(sysInfo.getId());
         lWhFormTransfer.setOperatorName(sysInfo.getUserName());
@@ -187,14 +191,14 @@
         List<LWhProcureModel> modelList = new ArrayList<>();
 
         // 鍒ゆ柇娣诲姞涓�娆′娇鐢ㄤ汉璁板綍
-        List<LWhFormTransferGoodsInfoParam> type = transferGoods.stream()
+        List<LWhFormTransferGoodsInfoParam> recordType = transferGoods.stream()
             .filter(
                 item -> businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue() && item.getModels().stream()
                     .anyMatch(model -> baseGoodsModelsService.queryGoodsModelInfo(model.getBaseGoodsModelsId()).stream()
                         .findFirst().orElse(null).get("type").equals(CategoryType.TYPE_A.getValue())))
             .collect(Collectors.toList());
         LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord();
-        if (CollectionUtils.isEmpty(type)) {
+        if (!CollectionUtils.isEmpty(recordType)) {
             lWhProcureModelUserRecord.setId(IdUtil.generateId());
             lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId);
             lWhProcureModelUserRecord.setOperatorId(sysInfo.getId());
@@ -212,7 +216,13 @@
                 if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) {
                     lWhProcureModel.setBusinessType(2);
                     // 鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧搴撳瓨
-                    int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null);
+                    // 璋冩嫧鐢宠鏃舵病鏈変粨搴搃d 鏌ヨ涓婄骇鏈烘瀯鐨勬墍鏈変粨搴�
+                    List<BaseWarehouse> baseWareHouseList =
+                        baseWarehouseService.getBaseWareHouseList(outAgencyId, StatesType.NORMAL.getValue());
+                    List<Long> warehouseIdList =
+                        baseWareHouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList());
+                    int goodsNum = lWhGoodsService.queryGoodsModelNum(WareHouseType.TENANT.getValue(), warehouseIdList,
+                        baseGoodsModelsId, 1, null);
                     lWhProcureModel.setWorehouseCount(goodsNum);
                 }
                 if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) {
@@ -293,6 +303,11 @@
             paramts.put("goodsTemplateName",
                 StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
         }
+        // 鐗╁搧id
+        if (param.getGoodsTemplateId() != null) {
+            sql.append("AND bgt.id = :goodsTemplateId ");
+            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
+        }
         // 璋冩嫧鏈烘瀯
         if (param.getOutAgencyId() != null) {
             sql.append(" and OUT_AGENCY_ID = :OUT_AGENCY_ID ");
@@ -332,9 +347,9 @@
             paramts.put("inTimeEnd", param.getEndTime() * 1000000 + 240000);
         }
         // 鍒嗗彂閮ㄩ棬
-        if (param.getInWarehouseId() != null) {
+        if (param.getDepartmentId() != null) {
             sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId ");
-            paramts.put("inWarehouseId", param.getInWarehouseId());
+            paramts.put("inWarehouseId", param.getDepartmentId());
         }
 
         sql.append(" ORDER BY ft.CREATE_TIME DESC");
@@ -393,8 +408,14 @@
                     && CategoryType.TYPE_A.getValue().equals(type)) {
                     Long procureModelId = goodsModelVO.getId();
 
+                    LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord();
+                    lWhProcureModelUserRecord.setTransBusinessId(id);
+                    List<LWhProcureModelUserRecord> select = lWhProcureModelUserRecordService
+                        .select(lWhProcureModelUserRecord, DESC().setField("DEAL_TIME"));
+                    LWhProcureModelUserRecord record = select.stream().findFirst().orElse(null);
                     LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                     lWhProcureModelUser.setWhProcureModelId(procureModelId);
+                    lWhProcureModelUser.setProcureModelUserRecordId(record.getId());
                     List<LWhProcureModelUser> procureModelUserList =
                         this.lWhProcureModelUserService.select(lWhProcureModelUser);
 
@@ -551,6 +572,11 @@
             paramts.put("goodsName",
                 StringUtils.CHAR_PERCENT + transferQry.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
         }
+        // 鐗╁搧id
+        if (transferQry.getGoodsTemplateId() != null) {
+            sql.append("AND bgt.id =:goodsTemplateId ");
+            paramts.put("goodsTemplateId", transferQry.getGoodsTemplateId());
+        }
         // 瑙勬牸鍨嬪彿
         if (transferQry.getBaseGoodsModelsId() != null) {
             sql.append("AND bgm.id =:goodsModelId ");
@@ -558,13 +584,13 @@
         }
         // 璋冩嫧鏈烘瀯
         if (transferQry.getOutAgencyId() != null) {
-            sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID ");
-            paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId());
+            sql.append("AND OUT_AGENCY_ID like :OUT_AGENCY_ID ");
+            paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId() + StringUtils.CHAR_PERCENT);
         }
         // 鍒嗗彂閮ㄩ棬
-        if (transferQry.getInWarehouseId() != null) {
+        if (transferQry.getDepartmentId() != null) {
             sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId ");
-            paramts.put("inWarehouseId", transferQry.getInWarehouseId());
+            paramts.put("inWarehouseId", transferQry.getDepartmentId());
         }
         // 鍒涘缓浜�
         if (StringUtils.isNotEmpty(transferQry.getOperatorName())) {
@@ -598,7 +624,7 @@
             + "       ft.OUT_OPERATOR_NAME,\n" + "       ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n"
             + "         LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n"
             + "         LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n"
-            + "         LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 ");
+            + "         LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where ft.BUSINESS_TYPE =0 ");
         if (StringUtils.isNotEmpty(param.getBusinessFormCode())) {
             sql.append("AND ft.BUSINESS_FORM_CODE = :businessFormCode ");
             params.put("businessFormCode", param.getBusinessFormCode());
@@ -607,6 +633,10 @@
             sql.append("AND bgt.GOODS_NAME like :goodsName ");
             params.put("goodsName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
         }
+        if (param.getGoodsTemplateId() != null) {
+            sql.append("AND bgt.id = :goodsTemplateId ");
+            params.put("goodsTemplateId", param.getGoodsTemplateId());
+        }
         if (param.getBaseGoodsModelsId() != null) {
             sql.append("AND bgm.id = :goodsModelId ");
             params.put("goodsModelId", param.getBaseGoodsModelsId());

--
Gitblit v1.9.1