From 76c7d995ac56b60880e998df5e9e3d82fea313f8 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期四, 07 十二月 2023 11:58:15 +0800
Subject: [PATCH] 出库单金额处理

---
 consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java     |   30 +-
 consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java        |    6 
 consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java          |   12 -
 consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedGoodsServiceImpl.java |   27 ++
 consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java           |   30 +-
 consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java      |  139 ++++++++++---
 consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java        |   10 
 consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java      |   47 ++--
 consum-base/src/main/java/com/consum/base/core/type/CategoryType.java                       |   48 ++++
 consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java         |   26 --
 consum-base/src/main/java/com/consum/base/core/type/MixType.java                            |    2 
 /dev/null                                                                                   |   33 ---
 consum-base/src/main/java/com/consum/base/pojo/dto/GoodModelInfoDTO.java                    |    6 
 consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java                   |   16 +
 consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java          |   13 +
 consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java      |   30 ++
 consum-base/src/main/java/com/consum/base/pojo/response/GoodsTemplateInfoVO.java            |   39 +++
 consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java        |    2 
 consum-base/src/main/java/com/consum/base/service/LWhProcureModelService.java               |    5 
 consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java          |   76 +++---
 consum-base/src/main/java/com/consum/base/pojo/response/LWhFormOutputExtendVO.java          |    2 
 consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java                |    1 
 22 files changed, 376 insertions(+), 224 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
index 8465516..55f8dcc 100644
--- a/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -25,15 +25,16 @@
 
 import com.consum.base.BaseController;
 import com.consum.base.core.utils.CommonUtil;
+import com.consum.base.core.utils.CurrencyUtil;
 import com.consum.base.core.utils.PageUtil;
 import com.consum.base.pojo.LWhFormOutputParam;
 import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.pojo.excel.OutputExcelTemplate;
 import com.consum.base.pojo.query.LWhFormOutputQry;
-import com.consum.base.pojo.response.FormOutputGoodsVO;
 import com.consum.base.pojo.response.FormOutputVO;
 import com.consum.base.pojo.response.GoodsModelVO;
 import com.consum.base.pojo.response.GoodsTemplateCountVO;
+import com.consum.base.pojo.response.GoodsTemplateInfoVO;
 import com.consum.base.pojo.response.LWhFormOutputExtendVO;
 import com.consum.base.service.LWarehouseFlowService;
 import com.consum.base.service.LWhFormOutputService;
@@ -156,32 +157,31 @@
         lWhFormOutputExtendVO.setDoc(lWhFormOutput.getOutputDoc());
 
         List<GoodModelInfoDTO> goodsModelList =
-            lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId());
+            lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId(), null);
         if (CollectionUtils.isEmpty(goodsModelList)) {
             return ResponseValue.success(lWhFormOutputExtendVO);
         }
         Map<Long, List<GoodModelInfoDTO>> collect =
             goodsModelList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId));
-        List<FormOutputGoodsVO> fromOutputGoods = Lists.newArrayList();
+        List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList();
         for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) {
-            FormOutputGoodsVO formOutputGoodsVO = getFormOutputGoodsVO(entry);
-            fromOutputGoods.add(formOutputGoodsVO);
+            GoodsTemplateInfoVO goodsTemplateInfoVO = getFormOutputGoodsVO(entry);
+            goodsTemplateInfoList.add(goodsTemplateInfoVO);
         }
-        lWhFormOutputExtendVO.setFromOutputGoods(fromOutputGoods);
+        lWhFormOutputExtendVO.setFromOutputGoods(goodsTemplateInfoList);
 
         return ResponseValue.success("鏌ヨ鎴愬姛!", lWhFormOutputExtendVO);
     }
 
-    private static FormOutputGoodsVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) {
+    private GoodsTemplateInfoVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) {
         Long baseGoodsTemplateId = entry.getKey();
         List<GoodModelInfoDTO> goodModelInfoDTOS = entry.getValue();
         GoodModelInfoDTO goodModelInfoDTO = goodModelInfoDTOS.stream().findFirst().orElse(null);
-        FormOutputGoodsVO formOutputGoodsVO = new FormOutputGoodsVO();
+        GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO();
         if (goodModelInfoDTO != null) {
-            formOutputGoodsVO.setId(baseGoodsTemplateId);
-            formOutputGoodsVO.setCategoryId(goodModelInfoDTO.getCategoryId());
-            formOutputGoodsVO.setCategoryName(goodModelInfoDTO.getCategoryName());
-            formOutputGoodsVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName());
+            goodsTemplateInfoVO.setId(baseGoodsTemplateId);
+            goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName());
+            goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName());
         }
         List<GoodsModelVO> goodsModelList = Lists.newArrayList();
         for (GoodModelInfoDTO goodModelInfo : goodModelInfoDTOS) {
@@ -190,11 +190,11 @@
             goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName());
             goodsModelVO.setUnit(goodModelInfo.getUnit());
             goodsModelVO.setCounts(goodModelInfo.getCounts());
-            goodsModelVO.setTotalAmount(goodModelInfo.getTotalAmount());
+            goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount()));
             goodsModelList.add(goodsModelVO);
         }
-        formOutputGoodsVO.setModels(goodsModelList);
-        return formOutputGoodsVO;
+        goodsTemplateInfoVO.setModels(goodsModelList);
+        return goodsTemplateInfoVO;
     }
 
     @ApiOperation(value = "鏌ヨ鍑哄簱鍗曡鎯呮槑缁�", notes = "鏌ヨ鍑哄簱鍗曡鎯呮槑缁�")
diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
index a6e626a..c6ed00a 100644
--- a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -21,24 +21,22 @@
 
 import com.consum.base.BaseController;
 import com.consum.base.core.utils.CommonUtil;
-import com.consum.base.core.utils.MapUtils;
-import com.consum.base.core.utils.MapperUtil;
 import com.consum.base.core.utils.PageUtil;
 import com.consum.base.pojo.LWhFormProcureGoodsInfoParam;
 import com.consum.base.pojo.LWhFormProcureParam;
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.pojo.excel.ProcureExcelTemplate;
 import com.consum.base.pojo.query.FormProcureQry;
 import com.consum.base.pojo.response.FormProcureVO;
 import com.consum.base.pojo.response.GoodsModelVO;
 import com.consum.base.pojo.response.GoodsTemplateCountVO;
+import com.consum.base.pojo.response.GoodsTemplateInfoVO;
 import com.consum.base.pojo.response.LWhFormProcureExtendVO;
-import com.consum.base.pojo.response.LWhFormProcureGoodsVO;
 import com.consum.base.service.BaseGoodsTemplateService;
-import com.consum.base.service.impl.LWhFormProcureCoreService;
 import com.consum.base.service.LWhFormProcureGoodsService;
 import com.consum.base.service.LWhFormProcureService;
 import com.consum.base.service.LWhProcureModelService;
-import com.consum.model.po.BaseGoodsTemplate;
+import com.consum.base.service.impl.LWhFormProcureCoreService;
 import com.consum.model.po.FinSysTenantUser;
 import com.consum.model.po.LWhFormProcure;
 import com.consum.model.po.LWhFormProcureGoods;
@@ -228,45 +226,49 @@
         lWhFormProcureGoods.setWhFormProcureId(id);
         List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsServiceImpl.select(lWhFormProcureGoods);
 
-        // Field fieldModels = null;
-        // try {
-        // fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models");
-        // } catch (NoSuchFieldException e) {
-        // e.printStackTrace();
-        // }
-        // fieldModels.setAccessible(true);
-        ArrayList<LWhFormProcureGoodsVO> procureGoodsVOList = new ArrayList<>();
+        List<GoodsTemplateInfoVO> goodsTemplateInfoList = new ArrayList<>();
         for (LWhFormProcureGoods formProcureGood : formProcureGoods) {
-            LWhFormProcureGoodsVO lWhFormProcureGoodsVO = new LWhFormProcureGoodsVO();
-            BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsVO);
+            GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO();
+            BeanUtils.copyProperties(formProcureGood, goodsTemplateInfoVO);
 
-            Long baseGoodsTemplateId = formProcureGood.getBaseGoodsTemplateId();
-            BaseGoodsTemplate queryEntity = new BaseGoodsTemplate();
-            queryEntity.setId(baseGoodsTemplateId);
-            BaseGoodsTemplate baseGoodsTemplate = baseGoodsTemplateService.get(queryEntity);
-            lWhFormProcureGoodsVO.setBaseCategoryName(baseGoodsTemplate.getCategoryName());
-            // 鏌ヨ鍨嬪彿鏁伴噺
-            Map<String, Object> paramMap = new HashMap<>();
-            paramMap.put("formProcureGoodId", formProcureGood.getId());
-            String sql = "SELECT\n"
-                + "pm.BASE_GOODS_MODELS_ID,pm.BASE_GOODS_MODELS_NAME,pm.PRICE,pm.COUNTS,pm.WOREHOUSE_COUNT,bgm.unit "
-                + "FROM\n" + "\tl_wh_procure_model pm\n"
-                + "\tLEFT JOIN base_goods_models bgm on pm.BASE_GOODS_MODELS_ID = bgm.id where pm.FROM_PROCURE_GOODS_ID =:formProcureGoodId";
-            List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil());
-            List<GoodsModelVO> goodsModelVOList = Lists.newArrayList();
-            procureModelList.forEach(item -> {
-                GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class);
-                goodsModelVOList.add(goodsModelVO);
-            });
-            // fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList);
-            ReflectUtil.setFieldValue(lWhFormProcureGoodsVO, "models", goodsModelVOList);
+            List<GoodModelInfoDTO> goodsModelInfoList =
+                lWhProcureModelService.getGoodsModelListByBusinessId(null, formProcureGood.getId());
+            if (CollectionUtils.isEmpty(goodsModelInfoList)) {
+                continue;
+            }
+            GoodModelInfoDTO goodModelInfoDTO = goodsModelInfoList.stream().findFirst().orElse(null);
+            if (goodModelInfoDTO != null) {
+                goodsTemplateInfoVO.setBaseCategoryName(goodModelInfoDTO.getCategoryName());
+            }
+            List<GoodsModelVO> goodsModelList = Lists.newArrayList();
+            for (GoodModelInfoDTO goodModelInfo : goodsModelInfoList) {
+                GoodsModelVO goodsModelVO = getGoodsModelVO(goodModelInfo);
+                goodsModelList.add(goodsModelVO);
+            }
 
-            procureGoodsVOList.add(lWhFormProcureGoodsVO);
+            ReflectUtil.setFieldValue(goodsTemplateInfoVO, "models", goodsModelList);
+
+            goodsTemplateInfoList.add(goodsTemplateInfoVO);
         }
-        lWhFormProcureExtendVO.setProcureGoods(procureGoodsVOList);
+        lWhFormProcureExtendVO.setProcureGoods(goodsTemplateInfoList);
         return ResponseValue.success("鏌ヨ鎴愬姛!", lWhFormProcureExtendVO);
     }
 
+    private GoodsModelVO getGoodsModelVO(GoodModelInfoDTO goodModelInfo) {
+        GoodsModelVO goodsModelVO = new GoodsModelVO();
+
+        goodsModelVO.setId(goodModelInfo.getId());
+        goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName());
+        goodsModelVO.setUnit(goodModelInfo.getUnit());
+        goodsModelVO.setCounts(goodModelInfo.getCounts());
+        goodsModelVO.setTotalAmount(
+            goodModelInfo.getTotalAmount() != null ? goodModelInfo.getTotalAmount().doubleValue() : null);
+        goodsModelVO.setWorehouseCount(goodModelInfo.getWorehouseCount());
+        goodsModelVO.setPrice(goodModelInfo.getPrice());
+        goodsModelVO.setBaseGoodsModelsId(goodModelInfo.getBaseGoodsModelsId());
+        return goodsModelVO;
+    }
+
     @ApiOperation(value = "閲囪喘鍗曟槑缁嗘煡璇�", notes = "閲囪喘鍗曟槑缁嗘煡璇�")
     @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "閲囪喘鍗曟槑缁嗘煡璇�", required = true,
         dataType = "FormProcureQryDto", paramType = "query")})
diff --git a/consum-base/src/main/java/com/consum/base/core/type/CategoryType.java b/consum-base/src/main/java/com/consum/base/core/type/CategoryType.java
new file mode 100644
index 0000000..9aad2f1
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/core/type/CategoryType.java
@@ -0,0 +1,48 @@
+package com.consum.base.core.type;
+
+/**
+ * 鍒嗙被绫诲瀷
+ *
+ * @author asus
+ * @version 2023/12/06 17:27
+ **/
+public enum CategoryType {
+
+    /**
+     * A绫�
+     */
+    TYPE_A("A", "A绫�"),
+    /**
+     * B绫�
+     */
+    TYPE_B("B", "B绫�"),
+    /**
+     * C绫�
+     */
+    TYPE_C("C", "C绫�");
+
+    private String value;
+
+    private String desc;
+
+    CategoryType(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/core/utils/MixType.java b/consum-base/src/main/java/com/consum/base/core/type/MixType.java
similarity index 96%
rename from consum-base/src/main/java/com/consum/base/core/utils/MixType.java
rename to consum-base/src/main/java/com/consum/base/core/type/MixType.java
index 944c386..ed2968c 100644
--- a/consum-base/src/main/java/com/consum/base/core/utils/MixType.java
+++ b/consum-base/src/main/java/com/consum/base/core/type/MixType.java
@@ -1,4 +1,4 @@
-package com.consum.base.core.utils;
+package com.consum.base.core.type;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/consum-base/src/main/java/com/consum/base/pojo/dto/GoodModelInfoDTO.java b/consum-base/src/main/java/com/consum/base/pojo/dto/GoodModelInfoDTO.java
index a6fc257..0749670 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/dto/GoodModelInfoDTO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/dto/GoodModelInfoDTO.java
@@ -20,4 +20,10 @@
     private String unit;
     private Integer counts;
     private Integer totalAmount;
+    private Long baseGoodsModelsId;
+    private Long price;
+    private Integer worehouseCount;
+    private String type;
+
+    private String scrappedName;
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java
deleted file mode 100644
index 653a00d..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.consum.base.pojo.response;
-
-/**
- * @author asus
- * @version 1.0
- * @description: 鐗╁搧淇℃伅
- * @date 2023/12/1 17:16
- */
-
-public class BaseGoodsTemplateInfo {
-
-    private String baseGoodsTemplateName;
-    private Integer count;
-    private String unit;
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/FormOutputGoodsVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/FormOutputGoodsVO.java
deleted file mode 100644
index 8c0595e..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/FormOutputGoodsVO.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.consum.base.pojo.response;
-
-import io.swagger.annotations.ApiModel;
-import java.util.List;
-import lombok.Data;
-
-/**
- * @author asus
- * @version 1.0
- * @description: TODO
- * @date 2023/11/14 13:13
- */
-@Data
-@ApiModel(description = "杈撳嚭鍟嗗搧琛�")
-public class FormOutputGoodsVO {
-
-    // 涓婚敭
-    private Long id;
-    //鍒嗙被缂栧彿
-    private Long categoryId;
-    //鍒嗙被鍚嶇О
-    private String categoryName;
-    //鐗╁搧妯$増缂栧彿
-    private Long baseGoodsTemplateId;
-
-    private String goodsName;
-
-    private List<GoodsModelVO> models;
-
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsVO.java
deleted file mode 100644
index 6467a14..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsVO.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.consum.base.pojo.response;
-
-import io.swagger.annotations.ApiModel;
-import java.util.List;
-import lombok.Data;
-
-/**
- * @author asus
- * @version 1.0
- * @description: TODO
- * @date 2023/11/22 17:26
- */
-@Data
-@ApiModel
-public class FormScrappedGoodsVO {
-
-    private Long id;
-    //鍒嗙被缂栧彿
-    private Long categoryId;
-    //鍒嗙被鍚嶇О
-    private String categoryName;
-    //鐗╁搧妯$増缂栧彿
-    private Long baseGoodsTemplateId;
-
-    private String goodsName;
-
-    private List<GoodsModelVO> models;
-
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/FormTransferGoodsVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/FormTransferGoodsVO.java
deleted file mode 100644
index 76ad553..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/FormTransferGoodsVO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.consum.base.pojo.response;
-
-import io.swagger.annotations.ApiModel;
-import java.util.List;
-import lombok.Data;
-
-/**
- * @author asus
- * @version 1.0
- * @description: 鍑哄簱鍗曠墿鍝佹ā鏉夸俊鎭�
- * @date 2023/11/15 18:06
- */
-@Data
-@ApiModel(value = "FormTransferGoodsVO")
-public class FormTransferGoodsVO {
-
-    // 涓婚敭
-    private Long id;
-    //鍒嗙被缂栧彿
-    private Long categoryId;
-    //鍒嗙被鍚嶇О
-    private String categoryName;
-    //鐗╁搧妯$増缂栧彿
-    private Long baseGoodsTemplateId;
-
-    private String goodsName;
-
-    //鍒嗙被绫诲瀷
-    private String type;
-
-    private List<GoodsModelVO> models;
-
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
index fb62a92..611513a 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
@@ -20,17 +20,23 @@
     private String baseGoodsModelsName;
     @ApiModelProperty(value = "鍗曚綅淇℃伅")
     private String unit;
-    @ApiModelProperty(value = "鍗曚环")
-    private Long price;
+
     @ApiModelProperty(value = "鏁伴噺")
     private Integer counts;
-    private Integer worehouseCount;
-    private Long baseGoodsModelsId;
     @ApiModelProperty(value = "鎬婚噾棰�")
-    private Integer totalAmount;
+    private Double totalAmount;
 
+    /*閲囪喘淇℃伅*/
+    @ApiModelProperty(value = "搴撳瓨鏁伴噺")
+    private Integer worehouseCount;
+    @ApiModelProperty(value = "鍗曚环")
+    private Long price;
+    private Long baseGoodsModelsId;
+
+    /*鎶ュ簾淇℃伅*/
     private String scrappedName;
 
+    @ApiModelProperty(value = "閮ㄩ棬鍒嗗彂浣跨敤浜轰俊鎭�")
     private List<DepartGoodsUseInfo> useInfo;
 
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/GoodsTemplateInfoVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/GoodsTemplateInfoVO.java
new file mode 100644
index 0000000..d4b7e49
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/GoodsTemplateInfoVO.java
@@ -0,0 +1,39 @@
+package com.consum.base.pojo.response;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 杈撳嚭鐗╁搧淇℃伅
+ * @date 2023/11/14 13:13
+ */
+@Data
+@ApiModel(description = "杈撳嚭鐗╁搧淇℃伅")
+public class GoodsTemplateInfoVO {
+
+    // 涓婚敭
+    private Long id;
+    // 鍒嗙被鍚嶇О
+    private String categoryName;
+    // 鐗╁搧鍚嶇О
+    private String goodsName;
+
+    /*閲囪喘淇℃伅*/
+    // 鍒嗙被鍚嶇О
+    private String baseCategoryName;
+    // 渚涘簲鍟�
+    private String supplier;
+    // 鐗╁搧鍚嶇О
+    private String goodsTemplateName;
+
+    /*璋冩嫧淇℃伅*/
+    // 鍒嗙被绫诲瀷
+    private String type;
+
+    private List<GoodsModelVO> models;
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java
index b96f406..1ddf8ad 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java
@@ -1,8 +1,9 @@
 package com.consum.base.pojo.response;
 
+import java.util.List;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.List;
 import lombok.Data;
 
 /**
@@ -14,7 +15,6 @@
 @Data
 @ApiModel(value = "璋冩嫧鍗曟墿灞曡缁嗕俊鎭�")
 public class LWHFromTransferExtendVO {
-
 
     // 涓婚敭
     private Long id;
@@ -106,5 +106,5 @@
     @ApiModelProperty(value = "鐢佃瘽")
     private Long tel;
 
-    private List<FormTransferGoodsVO> formTransferGoods;
+    private List<GoodsTemplateInfoVO> formTransferGoods;
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormOutputExtendVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormOutputExtendVO.java
index ddefa8d..f877748 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormOutputExtendVO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormOutputExtendVO.java
@@ -46,5 +46,5 @@
     // 鍑哄簱鎵嬬画
     private String doc;
 
-    private List<FormOutputGoodsVO> fromOutputGoods;
+    private List<GoodsTemplateInfoVO> fromOutputGoods;
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java
index 58fbcf8..b0ffc33 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java
@@ -1,69 +1,49 @@
 package com.consum.base.pojo.response;
 
 import java.util.List;
+
 import lombok.Data;
 
 /**
  * @author asus
  * @version 1.0
- * @description: TODO
+ * @description: 閲囪喘璇︽儏淇℃伅
  * @date 2023/11/11 18:00
  */
 @Data
 public class LWhFormProcureExtendVO {
 
-
     // 涓婚敭
     private Long id;
-
 
     // 灞炴�у垪琛�
     private String businessFormCode;
 
-
     private Long warehouseId;
-
 
     private String warehouseName;
 
-
     private Long buyerId;
-
 
     private String buyerName;
 
-
     private Long procureTime;
-
 
     private String procureDoc;
 
-
     private Integer buyType;
-
 
     private Integer states;
 
-
     private Long agencyId;
-
 
     private String agencyName;
 
-
     private Long incomeId;
-
 
     private String incomeName;
 
-
     private Long incomeTime;
 
-
-    private String beiz;
-
-
-    private Long lWarehouseFlowId;
-
-    private List<LWhFormProcureGoodsVO> procureGoods;
+    private List<GoodsTemplateInfoVO> procureGoods;
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureGoodsVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureGoodsVO.java
deleted file mode 100644
index 4698c6c..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureGoodsVO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.consum.base.pojo.response;
-
-import java.util.List;
-import lombok.Data;
-
-/**
- * @ClassName LWhFormProcureGoodsParams
- * @Date 2023/10/27
- * @Description
- * @Version 1.0
- **/
-@Data
-public class LWhFormProcureGoodsVO {
-
-    // 涓婚敭
-    private Long id;
-    //鍒嗙被缂栧彿
-    private Long baseCategoryId;
-    //鍒嗙被鍚嶇О
-    private String baseCategoryName;
-    //鐗╁搧妯$増缂栧彿
-    private Long baseGoodsTemplateId;
-    //渚涘簲鍟�
-    private String supplier;
-
-    private Long whFormProcureId;
-
-    private String goodsTemplateName;
-
-    private Integer sort;
-
-    private List<GoodsModelVO> models;
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java
index 1525d04..08cf84f 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java
@@ -47,7 +47,7 @@
 
     private Integer states;
 
-    private List<FormScrappedGoodsVO> scrappedGoods;
+    private List<GoodsTemplateInfoVO> scrappedGoods;
 
 
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java
index 2330f17..a80bf4f 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java
@@ -1,6 +1,7 @@
 package com.consum.base.pojo.response;
 
 import java.util.List;
+
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -24,15 +25,4 @@
 
     private List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList;
 
-//    private Integer counts;
-//    private String goodsUserName;
-//    private String classification;
-//
-//    private String categoryName;
-//
-//    private String unit;
-//
-//    private String baseGoodsTemplateName;
-//    private String baseGoodsModelsName;
-//    private Integer useCount;
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
index c2ce57b..56ceb2c 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
@@ -1,6 +1,7 @@
 package com.consum.base.service;
 
 import com.consum.base.core.WhBusinessEnum;
+import com.consum.base.core.type.MixType;
 import com.consum.base.core.utils.*;
 import com.consum.base.pojo.LWarehouseFlowParam;
 import com.consum.base.pojo.query.LWhFormOutputQry;
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
index 4bfe3ca..953aa85 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -1,15 +1,18 @@
 package com.consum.base.service;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.consum.base.core.utils.IdUtil;
 import com.consum.base.pojo.response.FormInventoryGoodsVO;
 import com.consum.model.po.LWhFormInventoryGoods;
 import com.walker.jdbc.service.BaseServiceImpl;
-import java.util.ArrayList;
-import java.util.List;
+
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @Description 鐩樼偣鍗曠墿鍝�
@@ -33,7 +36,6 @@
         return this.select(inventoryGoods);
     }
 
-
     public List<FormInventoryGoodsVO> add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId) {
         List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
         for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
@@ -46,7 +48,7 @@
             lWhFormInventoryGoods.setBaseGoodsModelsId(inventoryGoods.getId());
             lWhFormInventoryGoods.setBaseGoodsModelsName(inventoryGoods.getBaseGoodsModelsName());
             lWhFormInventoryGoods.setInitCounts(inventoryGoods.getInventoryCount());
-            //淇濆瓨鎴愬姛鍚庤繑鍥瀒d,鐢ㄦ潵杩涜璁板綍鐨勬洿鏂�
+            // 淇濆瓨鎴愬姛鍚庤繑鍥瀒d,鐢ㄦ潵杩涜璁板綍鐨勬洿鏂�
             inventoryGoods.setId(lWhFormInventoryGoods.getId());
             goodsList.add(lWhFormInventoryGoods);
         }
@@ -65,25 +67,15 @@
                 int errorCount = realNum - inventoryCount;
                 lWhFormInventoryGoods.setInventoryCounts(realNum);
                 lWhFormInventoryGoods.setErrorCounts(Math.abs(errorCount));
-                //鐩樼偣缁撴灉锛�1=姝e父锛�2=鐩樼泩锛�3=鐩樹簭锛�
+                // 鐩樼偣缁撴灉锛�1=姝e父锛�2=鐩樼泩锛�3=鐩樹簭锛�
                 lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? 2 : (errorCount < 0) ? 3 : 1);
                 // TODO 鎵归噺鏇存柊
                 this.update(lWhFormInventoryGoods);
-//                goodsList.add(lWhFormInventoryGoods);
+                // goodsList.add(lWhFormInventoryGoods);
             }
 
         }
         return 1;
     }
-
-    /**
-     * @Description 鏍规嵁鐩樼偣鍗昳d鍒犻櫎鐩樼偣鍗曠墿鍝�
-     * @Author 鍗㈠簡闃�
-     * @Date 2023/10/31
-     */
-    public void delByFormInventoryId(Long id) {
-
-    }
-
 
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java
index 237f001..5458ba2 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java
@@ -1,5 +1,9 @@
 package com.consum.base.service;
 
+import java.util.List;
+
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
+import com.consum.model.po.LWhFormScrappedGoods;
 import com.walker.jdbc.service.BaseService;
 
 /**
@@ -10,4 +14,13 @@
  **/
 public interface LWhFormScrappedGoodsService extends BaseService {
 
+    List<LWhFormScrappedGoods> getByFormScrappedId(Long id);
+
+    /**
+     * 鏍规嵁鎶ュ簾鍗昳d鑾峰彇鎶ュ簾鍟嗗搧淇℃伅
+     * 
+     * @param scrappedId
+     * @return
+     */
+    List<GoodModelInfoDTO> getScrappedGoodsByScrappedId(Long scrappedId);
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhProcureModelService.java b/consum-base/src/main/java/com/consum/base/service/LWhProcureModelService.java
index 4469590..e4fcd5e 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhProcureModelService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhProcureModelService.java
@@ -1,10 +1,10 @@
 package com.consum.base.service;
 
-import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import java.util.List;
 import java.util.Map;
 
 import com.consum.base.core.WhBusinessEnum;
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.pojo.response.GoodsTemplateCountVO;
 import com.consum.model.po.LWhProcureModel;
 import com.walker.jdbc.service.BaseService;
@@ -37,7 +37,8 @@
      * 鏍规嵁涓氬姟id鏌ヨ鍨嬪彿淇℃伅鍒楄〃
      *
      * @param businessId
+     * @param procureGoodId
      * @return
      */
-    List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId);
+    List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId, Long procureGoodId);
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedGoodsServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedGoodsServiceImpl.java
index e4b228f..d113f5e 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedGoodsServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedGoodsServiceImpl.java
@@ -1,9 +1,16 @@
 package com.consum.base.service.impl;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
+import org.apache.commons.compress.utils.Lists;
 import org.springframework.stereotype.Service;
 
+import com.consum.base.core.utils.MapUtils;
+import com.consum.base.core.utils.MapperUtil;
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.service.LWhFormScrappedGoodsService;
 import com.consum.model.po.LWhFormScrappedGoods;
 import com.walker.jdbc.service.BaseServiceImpl;
@@ -23,9 +30,29 @@
      * @Author 鍗㈠簡闃�
      * @Date 2023/11/2
      */
+    @Override
     public List<LWhFormScrappedGoods> getByFormScrappedId(Long id) {
         LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
         scrappedGoods.setFormScrappedId(id);
         return this.select(scrappedGoods);
     }
+
+    @Override
+    public List<GoodModelInfoDTO> getScrappedGoodsByScrappedId(Long scrappedId) {
+        String sql =
+            "select fsg.id,CATEGORY_NAME,fsg.GOODS_TEMPLATE_NAME baseGoodsName,fsg.BASE_GOODS_MODELS_NAME,fsg.BASE_GOODS_TEMPLATE_ID,"
+                + "fsg.UNIT,fsg.COUNTS,SCRAPPED_NAME from l_wh_form_scrapped_goods fsg left join base_goods_template bgt on "
+                + "fsg.BASE_GOODS_TEMPLATE_ID = bgt.id where form_scrapped_id =:scrappedId ";
+        Map<String, Object> param = new HashMap<>();
+        param.put("scrappedId", scrappedId);
+        List<Map<String, Object>> select = this.select(sql, param, new MapperUtil());
+        List<GoodModelInfoDTO> goodModelInfoList = Lists.newArrayList();
+        select.forEach(item -> {
+            GoodModelInfoDTO goodModelInfoDTO = MapUtils.convertMapToObj(item, GoodModelInfoDTO.class);
+            if (Objects.nonNull(goodModelInfoDTO)) {
+                goodModelInfoList.add(goodModelInfoDTO);
+            }
+        });
+        return goodModelInfoList;
+    }
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java
index b82944a..83fe6e2 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java
@@ -4,7 +4,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
 import org.apache.commons.compress.utils.Lists;
@@ -24,17 +23,19 @@
 import com.consum.base.pojo.LWhFormScrappedGoodsInfoParam;
 import com.consum.base.pojo.LWhFormScrappedGoodsModelParams;
 import com.consum.base.pojo.LWhFormScrappedParam;
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.pojo.excel.ScrappedInfoExcelTemplate;
 import com.consum.base.pojo.query.LWhFormScrappedQry;
 import com.consum.base.pojo.response.FormScrappedGoodsDetailVO;
-import com.consum.base.pojo.response.FormScrappedGoodsVO;
 import com.consum.base.pojo.response.GoodsModelVO;
 import com.consum.base.pojo.response.GoodsTemplateCountVO;
+import com.consum.base.pojo.response.GoodsTemplateInfoVO;
 import com.consum.base.pojo.response.LWhFormScrappedExtendVO;
 import com.consum.base.service.BaseGoodsModelsService;
 import com.consum.base.service.BaseGoodsTemplateService;
 import com.consum.base.service.BaseWarehouseService;
 import com.consum.base.service.FinSysTenantDepartmentService;
+import com.consum.base.service.LWhFormScrappedGoodsService;
 import com.consum.base.service.LWhFormScrappedService;
 import com.consum.base.service.LWhGoodsService;
 import com.consum.base.service.SDictDataServiceImpl;
@@ -68,7 +69,7 @@
     @Autowired
     private LWhGoodsService lWhGoodsService;
     @Autowired
-    private LWhFormScrappedGoodsServiceImpl scrappedGoodsService;
+    private LWhFormScrappedGoodsService scrappedGoodsService;
     @Autowired
     private SDictDataServiceImpl sDictDataService;
     @Autowired
@@ -272,31 +273,23 @@
         if (lWhFormScrapped != null) {
             BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
         }
-        // 2.鏌ヨ鎶ュ簾鍗�
-        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
+        // 2.鏌ヨ鎶ュ簾鍗曞晢鍝佷俊鎭�
+        List<GoodModelInfoDTO> scrappedGoodsInfoList = scrappedGoodsService.getScrappedGoodsByScrappedId(id);
         // 閫氳繃baseGoodsTemplateId 杩涜鍒嗙粍
-        Map<Long, List<LWhFormScrappedGoods>> map =
-            scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId));
+        Map<Long, List<GoodModelInfoDTO>> map =
+            scrappedGoodsInfoList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId));
         // 寰幆map鐨刱ey鍜寁alue
-        List<FormScrappedGoodsVO> scrappedGoodsVO = Lists.newArrayList();
-        for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : map.entrySet()) {
-            Long baseGoodsTemplateId = entry.getKey();
-            List<LWhFormScrappedGoods> goodsList = entry.getValue();
-            LWhFormScrappedGoods lWhFormScrappedGoods = goodsList.stream().findFirst().get();
-            FormScrappedGoodsVO formScrappedGoodsVO = new FormScrappedGoodsVO();
-            formScrappedGoodsVO.setBaseGoodsTemplateId(baseGoodsTemplateId);
-            formScrappedGoodsVO.setGoodsName(lWhFormScrappedGoods.getGoodsTemplateName());
-
-            String sql = "select CATEGORY_NAME from base_goods_template where id = :id";
-            Map<String, Object> param = new HashMap<>();
-            param.put("id", baseGoodsTemplateId);
-            List<Map<String, Object>> goodTemplate = this.select(sql, param, new MapperUtil());
-            if (!CollectionUtils.isEmpty(goodTemplate)) {
-                Optional<Map<String, Object>> first = goodTemplate.stream().findFirst();
-                Map<String, Object> objectMap = first.get();
-                formScrappedGoodsVO.setCategoryName(objectMap.get("categoryName").toString());
+        List<GoodsTemplateInfoVO> scrappedGoodsVO = Lists.newArrayList();
+        for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : map.entrySet()) {
+            List<GoodModelInfoDTO> goodsList = entry.getValue();
+            GoodModelInfoDTO goodModelInfoDTO = goodsList.stream().findFirst().orElse(null);
+            GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO();
+            if (goodModelInfoDTO != null) {
+                goodsTemplateInfoVO.setId(goodModelInfoDTO.getId());
+                goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName());
+                goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName());
+                goodsTemplateInfoVO.setId(goodModelInfoDTO.getId());
             }
-
             List<GoodsModelVO> goodsModelList = Lists.newArrayList();
             goodsList.forEach(item -> {
                 GoodsModelVO goodsModelVO = new GoodsModelVO();
@@ -308,8 +301,8 @@
                 goodsModelVO.setScrappedName(item.getScrappedName());
                 goodsModelList.add(goodsModelVO);
             });
-            formScrappedGoodsVO.setModels(goodsModelList);
-            scrappedGoodsVO.add(formScrappedGoodsVO);
+            goodsTemplateInfoVO.setModels(goodsModelList);
+            scrappedGoodsVO.add(goodsTemplateInfoVO);
 
         }
         scrappedExtend.setScrappedGoods(scrappedGoodsVO);
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 0b09797..c7a342f 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,10 +1,13 @@
 package com.consum.base.service.impl;
 
+import com.consum.base.pojo.response.GoodsTemplateInfoVO;
 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;
@@ -15,6 +18,7 @@
 
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.core.type.CategoryType;
 import com.consum.base.core.utils.CurrencyUtil;
 import com.consum.base.core.utils.IdUtil;
 import com.consum.base.core.utils.MapUtils;
@@ -22,11 +26,11 @@
 import com.consum.base.pojo.LWhFormTransferGoodsInfoParam;
 import com.consum.base.pojo.LWhProcureModelUserParam;
 import com.consum.base.pojo.LWhTransferModelParam;
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.pojo.excel.TransferExcelTemplate;
 import com.consum.base.pojo.query.TransferQry;
 import com.consum.base.pojo.request.LWhFormTransferParam;
 import com.consum.base.pojo.response.DepartGoodsUseInfo;
-import com.consum.base.pojo.response.FormTransferGoodsVO;
 import com.consum.base.pojo.response.GoodsModelVO;
 import com.consum.base.pojo.response.LWHFromTransferExtendVO;
 import com.consum.base.service.BaseWarehouseManagerService;
@@ -76,7 +80,7 @@
     @Autowired
     private BaseWarehouseManagerService baseWarehouseManagerService;
 
-    private static String QUERY_FORM_TRANSFER_LIST =
+    private static final String QUERY_FORM_TRANSFER_LIST =
         "SELECT ft.* FROM l_wh_form_transfer ft " + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id "
             + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID "
             + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 ";
@@ -347,41 +351,50 @@
             result.setDepartmentName(lWhFormTransfer.getInWarehouseName());
         }
 
-        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 ";
+        List<GoodModelInfoDTO> goodsModelInfo =
+            lWhProcureModelService.getGoodsModelListByBusinessId(result.getId(), null);
+        if (CollectionUtils.isEmpty(goodsModelInfo)) {
+            return result;
+        }
+        // 鏌ヨ閮ㄩ棬鐗╁搧浣跨敤淇℃伅
         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();
+
+        Map<Long, List<GoodModelInfoDTO>> collect =
+            goodsModelInfo.stream().filter(Objects::nonNull).filter(dto -> dto.getBaseGoodsTemplateId() != null)
+                .collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId));
+        List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList();
+        for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) {
+            List<GoodModelInfoDTO> value = entry.getValue();
+            GoodModelInfoDTO goodModelInfoDTO = value.stream().findFirst().orElse(null);
+            GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO();
+            if (goodModelInfoDTO != null) {
+                goodsTemplateInfoVO.setId(goodModelInfoDTO.getId());
+                goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName());
+                goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName());
+                goodsTemplateInfoVO.setType(goodModelInfoDTO.getType());
+            }
+
+            List<GoodsModelVO> goodsModelList = Lists.newArrayList();
+            for (GoodModelInfoDTO goodModelInfo : value) {
+                GoodsModelVO goodsModelVO = new GoodsModelVO();
+                goodsModelVO.setId(goodModelInfo.getId());
+                goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName());
+                goodsModelVO.setUnit(goodModelInfo.getUnit());
+                goodsModelVO.setCounts(goodModelInfo.getCounts());
+                goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount()));
                 // 閮ㄩ棬鍒嗗彂闇�瑕佹煡璇娇鐢ㄤ俊鎭�
-                if (businessType == 1 && "A".equals(type)) {
+                Integer businessType = result.getBusinessType();
+                String type = goodsTemplateInfoVO.getType();
+                if (businessType == 1 && CategoryType.TYPE_A.getValue().equals(type)) {
                     Long procureModelId = goodsModelVO.getId();
                     LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                     lWhProcureModelUser.setWhProcureModelId(procureModelId);
+
                     lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId());
                     List<LWhProcureModelUser> procureModelUserList =
                         this.lWhProcureModelUserService.select(lWhProcureModelUser);
@@ -399,14 +412,74 @@
                         });
                         goodsModelVO.setUseInfo(departGoodsUseInfoList);
                     }
-
                 }
-                goodsModelVOList.add(goodsModelVO);
-                procureTemplateInfoVO.setModels(goodsModelVOList);
-            });
-            formTransferGoods.add(procureTemplateInfoVO);
+                goodsModelList.add(goodsModelVO);
+            }
+            goodsTemplateInfoVO.setModels(goodsModelList);
+            goodsTemplateInfoList.add(goodsTemplateInfoVO);
         }
-        result.setFormTransferGoods(formTransferGoods);
+        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;
     }
diff --git a/consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java
index 64bc8de..5c55c44 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java
@@ -3,6 +3,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.commons.compress.utils.Lists;
 import org.springframework.stereotype.Service;
@@ -116,7 +117,9 @@
         List<Map<String, Object>> select = this.select(sql, param, new MapperUtil());
         select.forEach(item -> {
             GoodsTemplateCountVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsTemplateCountVO.class);
-            goodsTemplateCount.add(goodsModelVO);
+            if (Objects.nonNull(goodsModelVO)) {
+                goodsTemplateCount.add(goodsModelVO);
+            }
         });
 
         return goodsTemplateCount;
@@ -134,26 +137,35 @@
         List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil());
         for (Map<String, Object> map : procureModelList) {
             GoodsTemplateCountVO goodsTemplateCountVO = MapUtils.convertMapToObj(map, GoodsTemplateCountVO.class);
-            goodsTemplateCount.add(goodsTemplateCountVO);
+            if (Objects.nonNull(goodsTemplateCountVO)) {
+                goodsTemplateCount.add(goodsTemplateCountVO);
+            }
         }
         return goodsTemplateCount;
     }
 
     @Override
-    public List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId) {
+    public List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId, Long procureGoodId) {
         // 鏌ヨ鍨嬪彿鍒楄〃淇℃伅
         List<GoodModelInfoDTO> goodsModelList = Lists.newArrayList();
         String sql =
-            "SELECT bgt.id baseGoodsTemplateId,pm.id,CATEGORY_ID,CATEGORY_NAME,GOODS_NAME baseGoodsName,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 = :businessId";
+            "SELECT bgt.id baseGoodsTemplateId,pm.id,CATEGORY_ID,CATEGORY_NAME,GOODS_NAME baseGoodsName,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount, "
+                + "pm.BASE_GOODS_MODELS_ID,PRICE,WOREHOUSE_COUNT,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 ";
         Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("businessId", businessId);
+        if (businessId != null) {
+            sql += "pm.BUSINESS_ID = :businessId ";
+            paramMap.put("businessId", businessId);
+        } else {
+            sql += "pm.FROM_PROCURE_GOODS_ID =:procureGoodId ";
+            paramMap.put("procureGoodId", procureGoodId);
+        }
         List<Map<String, Object>> modelList = select(sql, paramMap, new MapperUtil());
         modelList.forEach(item -> {
             GoodModelInfoDTO goodsModelVO = MapUtils.convertMapToObj(item, GoodModelInfoDTO.class);
-            goodsModelList.add(goodsModelVO);
+            if (Objects.nonNull(goodsModelVO)) {
+                goodsModelList.add(goodsModelVO);
+            }
         });
         return goodsModelList;
     }
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 e7345dc..97871be 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
@@ -273,11 +273,13 @@
                 List<UsingFormBackModelInfo> modelInfoList = Lists.newArrayList();
                 templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId))
                     .forEach((modelId, modelInfo) -> {
-                        UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0);
+                        UsingFormBackDetailDTO modelInfoDTO = modelInfo.stream().findFirst().orElse(null);
                         UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo();
-                        usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName());
-                        usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit());
-                        usingFormBackModelInfo.setId(modelId);
+                        if (modelInfoDTO != null) {
+                            usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName());
+                            usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit());
+                            usingFormBackModelInfo.setId(modelId);
+                        }
                         modelInfoList.add(usingFormBackModelInfo);
                         usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList);
                         List<UseInfo> useInfoList = Lists.newArrayList();

--
Gitblit v1.9.1