From 8e4000461f3a6bbee34068b78ed60292c0ada611 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 05 十二月 2023 13:46:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java |  140 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)

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
new file mode 100644
index 0000000..e2564bd
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java
@@ -0,0 +1,140 @@
+package com.consum.base.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.compress.utils.Lists;
+import org.springframework.stereotype.Service;
+
+import com.consum.base.core.WhBusinessEnum;
+import com.consum.base.core.utils.MapUtils;
+import com.consum.base.core.utils.MapperUtil;
+import com.consum.base.pojo.response.GoodsTemplateCountVO;
+import com.consum.base.service.LWhProcureModelService;
+import com.consum.model.po.LWhProcureModel;
+import com.walker.jdbc.service.BaseServiceImpl;
+
+/**
+ * @ClassName LWhProcureModelService
+ * @Date 2023/10/24
+ * @Description
+ * @Version 1.0
+ **/
+@Service
+public class LWhProcureModelServiceImpl extends BaseServiceImpl implements LWhProcureModelService {
+
+    private static String GET_MODEL_BY_FORM = "SELECT * FROM L_WH_PROCURE_MODEL WHERE 1=1 ";
+
+    /**
+     * 閫氳繃鍗曟嵁绫诲瀷 鍗曟嵁ID鏌ヨ璇ヨ鍗曞叧鑱旂殑璁惧鍨嬪彿浠ュ強鏁伴噺
+     *
+     * @return
+     */
+    @Override
+    public List<LWhProcureModel> getModelByForm(WhBusinessEnum businessType, Long businessId) {
+        StringBuilder sql = new StringBuilder(GET_MODEL_BY_FORM);
+        HashMap<String, Object> paramts = new HashMap<>();
+        // 椤圭洰闃舵id
+        if (businessType != null) {
+            sql.append(" and BUSINESS_TYPE=:businessType ");
+            paramts.put("businessType", businessType.getValue());
+        }
+        if (businessId != null) {
+            sql.append(" and BUSINESS_ID=:businessId ");
+            paramts.put("businessId", businessId);
+        }
+        return this.select(sql.toString(), paramts, new LWhProcureModel());
+    }
+
+    /**
+     * 鏍规嵁閮ㄩ棬銆佺墿鍝佹煡璇㈣皟鎷ㄥ崟
+     *
+     * @param goodsTemplateId 鐗╁搧ID
+     * @param departmentId 閮ㄩ棬ID
+     * @return
+     */
+    private static String GET_FF_ORDER_BY_GOODS_ID_AND_DEPT =
+        "SELECT trans.ID TRANS_BUSINESS_ID,trans.BUSINESS_FORM_CODE,baseTemp.ID BASE_GOODS_TEMPLATE_ID,baseTemp.GOODS_NAME BASE_GOODS_TEMPLATE_NAME,sum(proModel.COUNTS) total_count,sum(proModel.USE_COUNT) use_count,trans.IN_TIME FROM L_WH_FORM_TRANSFER trans LEFT JOIN L_WH_PROCURE_MODEL proModel ON proModel.BUSINESS_ID=trans.id LEFT JOIN BASE_GOODS_MODELS baseModel ON proModel.BASE_GOODS_MODELS_ID=baseModel.id LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseTemp.id=baseModel.GOODS_TEMPLATES_ID WHERE proModel.BUSINESS_TYPE=4 AND proModel.USE_COUNT> 0 ";
+    private static String GET_FF_ORDER_BY_GOODS_ID_AND_DEPT_END =
+        " GROUP BY trans.ID,trans.BUSINESS_FORM_CODE,baseTemp.ID,baseTemp.GOODS_NAME,trans.IN_TIME order by trans.BUSINESS_FORM_CODE desc";
+
+    @Override
+    public List<Map<String, Object>> getFfOrderByGoodsIdAndDept(Long goodsTemplateId, Long departmentId) {
+        StringBuilder sql = new StringBuilder(GET_FF_ORDER_BY_GOODS_ID_AND_DEPT);
+        HashMap<String, Object> paramts = new HashMap<>();
+        // 椤圭洰闃舵id
+        if (goodsTemplateId != null) {
+            sql.append(" AND baseTemp.ID=:goodsTemplateId ");
+            paramts.put("goodsTemplateId", goodsTemplateId);
+        }
+        if (departmentId != null) {
+            sql.append(" AND trans.IN_WAREHOUSE_TYPE=1 and trans.IN_WAREHOUSE_ID=:departmentId ");
+            paramts.put("departmentId", departmentId);
+        }
+        return select(sql.append(GET_FF_ORDER_BY_GOODS_ID_AND_DEPT_END).toString(), paramts, new MapperUtil());
+    }
+
+    /**
+     * 鏍规嵁閮ㄩ棬銆佺墿鍝佹煡璇㈣皟鎷ㄥ崟
+     *
+     * @param goodsTemplateId 鐗╁搧ID
+     * @param departmentId 鍒嗗彂鍗旾D
+     * @return
+     */
+    private static String GET_GOODS_USE_INFO_BY_FF_ORDER_AND_GOOD_ID =
+        "SELECT baseModel.GOODS_TEMPLATES_ID,proModel.BASE_GOODS_MODELS_ID,baseModel.MODEL_NAME,baseModel.UNIT,CONCAT(baseCate.CLASSIFICATION,'绫�') CLASSIFICATION,modelUser.id MODEL_USER_id,modelUser.NOW_USER_PHONE,modelUser.NOW_USER_NAME,CASE WHEN modelUser.id IS NULL THEN proModel.USE_COUNT ELSE modelUser.USE_COUNT END AS user_Use_Count,CASE WHEN modelUser.id IS NULL THEN proModel.COUNTS ELSE modelUser.GOODS_NUM END AS GOODS_NUM FROM L_WH_PROCURE_MODEL proModel LEFT JOIN BASE_GOODS_MODELS baseModel ON proModel.BASE_GOODS_MODELS_ID=baseModel.id LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseTemp.id=baseModel.GOODS_TEMPLATES_ID LEFT JOIN BASE_CATEGORY baseCate ON baseCate.id=baseTemp.CATEGORY_ID LEFT JOIN L_WH_PROCURE_MODEL_USER modelUser ON modelUser.WH_PROCURE_MODEL_ID=proModel.id WHERE proModel.BUSINESS_TYPE=4 AND proModel.USE_COUNT> 0 ";
+
+    @Override
+    public List<Map<String, Object>> getGoodsUseInfoByFfOrderAndGoodId(Long goodsTemplateId, Long transBusinessId) {
+        StringBuilder sql = new StringBuilder(GET_GOODS_USE_INFO_BY_FF_ORDER_AND_GOOD_ID);
+        HashMap<String, Object> paramts = new HashMap<>();
+        if (goodsTemplateId != null) {
+            sql.append(" AND baseModel.GOODS_TEMPLATES_ID=:goodsTemplateId ");
+            paramts.put("goodsTemplateId", goodsTemplateId);
+        }
+        if (transBusinessId != null) {
+            sql.append(" AND proModel.BUSINESS_ID=:transBusinessId ");
+            paramts.put("transBusinessId", transBusinessId);
+        }
+        return select(sql.toString(), paramts, new MapperUtil());
+    }
+
+    @Override
+    public List<GoodsTemplateCountVO> getGoodsTemplateCountByBusinessId(Long businessId) {
+        List<GoodsTemplateCountVO> goodsTemplateCount = Lists.newArrayList();
+
+        // 鏌ヨ鍨嬪彿鏁伴噺
+        String sql = "SELECT bgt.id,goods_name,sum(counts) count FROM "
+            + "l_wh_procure_model pm 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 pm.business_id =:businessId GROUP BY bgm.goods_templates_id";
+
+        HashMap<String, Object> param = new HashMap<>();
+        param.put("businessId", businessId);
+        List<Map<String, Object>> select = this.select(sql, param, new MapperUtil());
+        select.forEach(item -> {
+            GoodsTemplateCountVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsTemplateCountVO.class);
+            goodsTemplateCount.add(goodsModelVO);
+        });
+
+        return goodsTemplateCount;
+    }
+
+    @Override
+    public List<GoodsTemplateCountVO> getProcureCountByBusinessId(Long businessId) {
+        List<GoodsTemplateCountVO> goodsTemplateCount = Lists.newArrayList();
+        // 鏌ヨ閲囪喘鍨嬪彿缁熻鏁伴噺
+        String sql = "select fpg.id,BASE_GOODS_TEMPLATE_ID,GOODS_TEMPLATE_NAME ,sum(counts) count "
+            + "from L_WH_FORM_PROCURE_GOODS fpg left join L_WH_PROCURE_MODEL pm on fpg.id = pm.FROM_PROCURE_GOODS_ID "
+            + "where fpg.WH_FORM_PROCURE_ID =:businessId group by pm.FROM_PROCURE_GOODS_ID";
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("businessId", businessId);
+        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);
+        }
+        return goodsTemplateCount;
+    }
+}

--
Gitblit v1.9.1