From b4adff68a07b783fc90da1c9370d8be5f383e700 Mon Sep 17 00:00:00 2001
From: 黎星凯 <13949086503@163.com>
Date: 星期三, 08 五月 2024 13:46:34 +0800
Subject: [PATCH] 20240528修改: bug41、42、43修改 领用单(分发单),调拨单,流程优化

---
 consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java |  241 ++++++++++++++++++++++-------------------------
 1 files changed, 114 insertions(+), 127 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 8bd2708..9977d08 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,23 +1,29 @@
 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;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
 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 org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
 
 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.TransferStatesType;
+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 +41,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 +73,7 @@
     @Autowired
     private CodeGeneratorService codeGeneratorService;
     @Autowired
-    private FinSysTenantServiceImpl finSysTenantService;
+    private FinSysTenantService finSysTenantService;
     @Autowired
     private LWhGoodsService lWhGoodsService;
     @Autowired
@@ -91,7 +97,8 @@
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/30
      */
-    public long add(LWhFormTransferParam param, FinSysTenantUser sysInfo) throws Exception {
+    @Transactional(rollbackFor = Exception.class)
+    public long add(LWhFormTransferParam param, FinSysTenantUser sysInfo,boolean isHaveDoc) throws Exception {
         // 1.鏂板璋冩嫧鍗曡褰�
         LWhFormTransfer lWhFormTransfer = new LWhFormTransfer();
         // 璋冩嫧鍗昳d
@@ -99,30 +106,27 @@
         lWhFormTransfer.setId(lWhFormTransferId);
 
         Integer businessType = param.getTransferBusinessType();
-        // 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為��
-        // TODO 鏋氫妇瀛楀吀
+        // 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂
         lWhFormTransfer.setBusinessType(businessType);
         CodeGeneratorEnum codeGeneratorEnum = null;
-        if (businessType == 0) {
+        if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) {
             codeGeneratorEnum = CodeGeneratorEnum.Transfer;
-        } else if (businessType == 1) {
+        } else if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) {
             codeGeneratorEnum = CodeGeneratorEnum.Distribute;
-        } else if (businessType == 2) {
-            codeGeneratorEnum = CodeGeneratorEnum.GOBACK;
         }
 
         lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(codeGeneratorEnum));
 
-        Long warehouseId = param.getInWarehouseId();
         // 璋冩嫧绫诲瀷鍗曟嵁
-        if (businessType == 0) {
-            // 鍏ュ簱浠撳簱涓哄綋鍓嶇敤鎴风殑榛樿浠撳簱
+        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("浠撳簱涓嶅瓨鍦�");
+                //throw new Exception("浠撳簱涓嶅瓨鍦�");
+                return -2L;
             }
             lWhFormTransfer.setInWarehouseId(warehouse.getId());
             lWhFormTransfer.setInWarehouseName(warehouse.getWarehouseName());
@@ -130,56 +134,64 @@
             lWhFormTransfer.setInAgencyName(tenantName);
         }
         // 褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉
-        if (businessType == 1) {
+        if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) {
             // 閮ㄩ棬鍒嗗彂绫诲瀷 鍑哄簱浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬
             // 浠庡綋鍓嶇櫥褰曞簱绠′汉浠庡簱涓嚭搴擄紝鍏ュ埌鎵�閫夐儴闂ㄧ殑涓�
 
             // 鏌ヨ搴撶鍛樹俊鎭拰鐩稿叧浠撳簱
-            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("璇ョ敤鎴蜂笉鏄簱绠″憳");
-                throw new Exception("璇ョ敤鎴蜂笉鏄簱绠″憳");
+                //throw new Exception("璇ョ敤鎴蜂笉鏄簱绠″憳");
+                return -1L;
             }
-            Optional<BaseWarehouseManager> first = managerList.stream().findFirst();
-            if (first.isPresent()) {
-                BaseWarehouseManager baseWarehouseManager = first.get();
-                Long baseWarehouseId = baseWarehouseManager.getBaseWarehouseId();
-                BaseWarehouse baseWarehouse = new BaseWarehouse();
-                baseWarehouse.setId(baseWarehouseId);
-                BaseWarehouse warehouse = baseWarehouseService.get(baseWarehouse);
+            BaseWarehouseManager baseWarehouseManager = managerList.stream().findFirst().orElse(null);
+            Long baseWarehouseId = baseWarehouseManager.getBaseWarehouseId();
+            BaseWarehouse baseWarehouse = new BaseWarehouse();
+            baseWarehouse.setId(baseWarehouseId);
+            BaseWarehouse warehouse = baseWarehouseService.get(baseWarehouse);
 
-                lWhFormTransfer.setInWarehouseType(1);
-                lWhFormTransfer.setInWarehouseId(param.getDepartmentId());
-                lWhFormTransfer.setInWarehouseName(param.getDepartmentName());
-                lWhFormTransfer.setInOperatorName(param.getOperatorName());
+            lWhFormTransfer.setInWarehouseType(WareHouseType.DEPARTMENT.getValue());
+            lWhFormTransfer.setInWarehouseId(param.getDepartmentId());
+            lWhFormTransfer.setInWarehouseName(param.getDepartmentName());
+            lWhFormTransfer.setInOperatorName(param.getOperatorName());
+
+            if(!isHaveDoc){
                 lWhFormTransfer.setInTime(param.getCreateTime());
-
-                lWhFormTransfer.setOutWarehouseType(0);
-                lWhFormTransfer.setOutWarehouseId(warehouse.getId());
-                lWhFormTransfer.setOutWarehouseName(warehouse.getWarehouseName());
-
-                lWhFormTransfer.setOutOperatorId(sysInfo.getId());
-                lWhFormTransfer.setOutOperatorName(sysInfo.getUserName());
-                lWhFormTransfer.setOutputTime(param.getCreateTime());
-                lWhFormTransfer.setTel(param.getTel());
             }
+
+
+            lWhFormTransfer.setOutWarehouseType(WareHouseType.TENANT.getValue());
+            lWhFormTransfer.setOutWarehouseId(warehouse.getId());
+            lWhFormTransfer.setOutWarehouseName(warehouse.getWarehouseName());
+
+            lWhFormTransfer.setOutOperatorId(sysInfo.getId());
+            lWhFormTransfer.setOutOperatorName(sysInfo.getUserName());
+
+            if(!isHaveDoc) {
+                lWhFormTransfer.setOutputTime(param.getCreateTime());
+            }
+            lWhFormTransfer.setTel(param.getTel());
+
         }
 
         // 鏍规嵁鏈烘瀯id鏌ヨ璋冩嫧鏈烘瀯
         FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(param.getOutAgencyId()));
         if (finSysTenant == null) {
             log.error("璋冩嫧鏈烘瀯涓嶅瓨鍦�");
+            throw new Exception("璋冩嫧鏈烘瀯涓嶅瓨鍦�");
         }
-        lWhFormTransfer.setOutAgencyId(finSysTenant.getId());
+        Long outAgencyId = finSysTenant.getId();
+        lWhFormTransfer.setOutAgencyId(outAgencyId);
         lWhFormTransfer.setOutAgencyName(finSysTenant.getName());
         lWhFormTransfer.setOperatorId(sysInfo.getId());
         lWhFormTransfer.setOperatorName(sysInfo.getUserName());
         lWhFormTransfer.setCreateTime(param.getCreateTime());
         // 0=寰呭嚭搴擄紱1=寰呮帴鏀讹紱2=宸插叆搴撳簱:4=宸叉挙閿�
-        lWhFormTransfer.setStates(0);
+        lWhFormTransfer.setStates(TransferStatesType.OUT_PENDING.getValue());
         lWhFormTransfer.setProcureDoc(param.getProcureDoc());
 
         int flag1 = this.insert(lWhFormTransfer);
@@ -190,6 +202,23 @@
         // 2.鏂板鐗╁搧鍨嬪彿璁板綍
         List<LWhFormTransferGoodsInfoParam> transferGoods = param.getTransferGoods();
         List<LWhProcureModel> modelList = new ArrayList<>();
+
+        // 鍒ゆ柇娣诲姞涓�娆′娇鐢ㄤ汉璁板綍
+        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(recordType)) {
+            lWhProcureModelUserRecord.setId(IdUtil.generateId());
+            lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId);
+            lWhProcureModelUserRecord.setOperatorId(sysInfo.getId());
+            lWhProcureModelUserRecord.setOperatorName(sysInfo.getUserName());
+            lWhProcureModelUserRecord.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+            lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord);
+        }
         for (LWhFormTransferGoodsInfoParam transferGoodsInfo : transferGoods) {
             for (LWhTransferModelParam model : transferGoodsInfo.getModels()) {
                 LWhProcureModel lWhProcureModel = new LWhProcureModel();
@@ -197,13 +226,19 @@
                 // 璋冩嫧涓氬姟绫诲瀷杞崲鍒扮墿鍝佺被鍨�
                 // 鐗╁搧绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂
                 Long baseGoodsModelsId = model.getBaseGoodsModelsId();
-                if (businessType == 0) {
+                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 == 1) {
+                if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) {
                     lWhProcureModel.setBusinessType(4);
                 }
                 lWhProcureModel.setCounts(model.getCounts());
@@ -223,16 +258,8 @@
                 // 3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉
                 // 鍗曟嵁绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂
                 // 閮ㄩ棬鍒嗗彂绫诲瀷
-                if (businessType == 1 && CategoryType.TYPE_A.getValue().equals(baseModelMap.get("type"))) {
-                    // TODO 閲嶅淇濆瓨
-                    LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord();
-                    lWhProcureModelUserRecord.setId(IdUtil.generateId());
-                    lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId);
-                    lWhProcureModelUserRecord.setOperatorId(sysInfo.getId());
-                    lWhProcureModelUserRecord.setOperatorName(sysInfo.getUserName());
-                    lWhProcureModelUserRecord.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
-                    lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord);
-
+                if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()
+                    && CategoryType.TYPE_A.getValue().equals(baseModelMap.get("type"))) {
                     List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList();
                     for (LWhProcureModelUserParam lWhProcureModelUserParam : model.getProcureModelUserList()) {
                         LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
@@ -289,6 +316,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 ");
@@ -328,9 +360,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");
@@ -385,11 +417,18 @@
                 // 閮ㄩ棬鍒嗗彂闇�瑕佹煡璇娇鐢ㄤ俊鎭�
                 Integer businessType = result.getBusinessType();
                 String type = goodsTemplateInfoVO.getType();
-                if (businessType == 1 && CategoryType.TYPE_A.getValue().equals(type)) {
+                if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()
+                    && 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);
 
@@ -414,67 +453,6 @@
             goodsTemplateInfoList.add(goodsTemplateInfoVO);
         }
         result.setFormTransferGoods(goodsTemplateInfoList);
-
-        // String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type "
-        // + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID "
-        // + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID "
-        // + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id ";
-        // Map<String, Object> paramMap = new HashMap<>();
-        // paramMap.put("id", result.getId());
-        // List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil());
-        //
-        // String queryRecord =
-        // "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1";
-        // LWhProcureModelUserRecord lWhProcureModelUserRecord =
-        // lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord());
-        // List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList();
-        // for (Map<String, Object> map : procureModelList) {
-        // FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class);
-        // Long baseGoodsTemplateId = procureTemplateInfoVO.getId();
-        // // 鏌ヨ鍨嬪彿鏁伴噺
-        // List<GoodsModelVO> goodsModelVOList = Lists.newArrayList();
-        // String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount "
-        // + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID "
-        // + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID "
-        // + "WHERE pm.BUSINESS_ID =:id and bgt.id =:baseGoodsTemplateId";
-        // Map<String, Object> goodsModelParamMap = new HashMap<>();
-        // goodsModelParamMap.put("id", result.getId());
-        // goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId);
-        // List<Map<String, Object>> modelList = this.select(sql2, goodsModelParamMap, new MapperUtil());
-        // modelList.forEach(item -> {
-        // GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class);
-        // Integer businessType = result.getBusinessType();
-        // String type = procureTemplateInfoVO.getType();
-        // // 閮ㄩ棬鍒嗗彂闇�瑕佹煡璇娇鐢ㄤ俊鎭�
-        // if (businessType == 1 && "A".equals(type)) {
-        // Long procureModelId = goodsModelVO.getId();
-        // LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
-        // lWhProcureModelUser.setWhProcureModelId(procureModelId);
-        // lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId());
-        // List<LWhProcureModelUser> procureModelUserList =
-        // this.lWhProcureModelUserService.select(lWhProcureModelUser);
-        // if (!CollectionUtils.isEmpty(procureModelUserList)) {
-        // List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList();
-        // procureModelUserList.forEach(useInfo -> {
-        // Integer goodsNum = useInfo.getGoodsNum();
-        // Long nowUserPhone = useInfo.getNowUserPhone();
-        // String nowUserName = useInfo.getNowUserName();
-        // DepartGoodsUseInfo departGoodsUseInfo = new DepartGoodsUseInfo();
-        // departGoodsUseInfo.setName(nowUserName);
-        // departGoodsUseInfo.setNum(goodsNum);
-        // departGoodsUseInfo.setTel(nowUserPhone);
-        // departGoodsUseInfoList.add(departGoodsUseInfo);
-        // });
-        // goodsModelVO.setUseInfo(departGoodsUseInfoList);
-        // }
-        //
-        // }
-        // goodsModelVOList.add(goodsModelVO);
-        // procureTemplateInfoVO.setModels(goodsModelVOList);
-        // });
-        // formTransferGoods.add(procureTemplateInfoVO);
-        // }
-        // result.setFormTransferGoods(formTransferGoods);
 
         return result;
     }
@@ -518,7 +496,7 @@
      */
     public int updateStatus(Long id) {
         LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id);
-        lWhFormTransfer.setStates(4);
+        lWhFormTransfer.setStates(TransferStatesType.CANCEL.getValue());
         return this.update(lWhFormTransfer);
     }
 
@@ -546,6 +524,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 ");
@@ -553,13 +536,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())) {
@@ -593,7 +576,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());
@@ -602,17 +585,21 @@
             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());
         }
         if (param.getOutAgencyId() != null) {
             sql.append("AND ft.OUT_AGENCY_ID like :outAgencyId ");
-            params.put("outAgencyId", param.getOutAgencyId());
+            params.put("outAgencyId", param.getOutAgencyId() + StringUtils.CHAR_PERCENT);
         }
-        if (param.getOutAgencyId() != null) {
+        if (param.getInAgencyId() != null) {
             sql.append("AND ft.IN_AGENCY_ID like :inAgencyId ");
-            params.put("inAgencyId", param.getInAgencyId());
+            params.put("inAgencyId", param.getInAgencyId() + StringUtils.CHAR_PERCENT);
         }
         if (StringUtils.isNotEmpty(param.getOperatorName())) {
             sql.append("AND ft.OPERATOR_NAME = :operatorName ");

--
Gitblit v1.9.1