From b938f236181f5636dcc4b6089c1270d0f138ad23 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期六, 02 十二月 2023 10:43:50 +0800
Subject: [PATCH] feat: 部门报废详情、明细

---
 consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java   |   64 +++++++++++++++-
 consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java |  135 +++++++++++++++++++--------------
 consum-base/src/main/java/com/consum/base/pojo/query/LDeptFormScrappedQry.java      |   11 ++
 3 files changed, 148 insertions(+), 62 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java b/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
index fe0d734..c7a8918 100644
--- a/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
@@ -13,6 +13,7 @@
 import com.walker.db.page.GenericPager;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.web.ResponseValue;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -26,12 +27,8 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
 import java.io.OutputStream;
 import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -188,61 +185,83 @@
         }
     }
 
-    public static void main(String[] args) {
-        TemplateExportParams exportParams = new TemplateExportParams("D:\\MyProjects\\jmy\\浣庡�兼槗鑰楀搧\\low-consum-manage\\deploy-jar-single\\src\\main\\resources\\import\\deptScrapped.xlsx");
-        exportParams.setHeadingStartRow(2);
+    @GetMapping("/deptListByModel")
+    public ResponseValue export() {
+        LDeptFormScrappedQry param = CommonUtil.getObjFromReq(LDeptFormScrappedQry.class);
+        LDeptFormScrappedQry query = new LDeptFormScrappedQry();
+        CommonUtil.copyProperties(param, query);
+        param = query;
 
-        List<Map<String, Object>> export = new ArrayList<>();
-
-        // 鍒涘缓绗竴鏉℃暟鎹�
-        Map<String, Object> data1 = new HashMap<>();
-        data1.put("agencyName", 1);
-        data1.put("baseGoodsTemplateName", "Bob");
-        data1.put("scrappedName", "Bob");
-        data1.put("bz", "Bob");
-        data1.put("baseGoodsModelsName", 30);
-        data1.put("counts", 30);
-        data1.put("totalPrice", 30);
-        export.add(data1);
-
-        // 鍒涘缓绗簩鏉℃暟鎹�
-        Map<String, Object> data2 = new HashMap<>();
-        data2.put("agencyName", 2);
-        data2.put("baseGoodsTemplateName", "Bob");
-        data2.put("scrappedName", "Bob");
-        data2.put("bz", "Bob");
-        data2.put("baseGoodsModelsName", 30);
-        data2.put("counts", 30);
-        data2.put("totalPrice", 30);
-        export.add(data2);
-
-
-        Map<String, Object> map = new HashMap<>();
-        map.put("code", "2023");
-        map.put("date", "2023");
-        map.put("name", "operatorName");
-        map.put("countNum", 0);
-        map.put("totalAmount", 0);
-        map.put("maplist", export);
-
-        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
-
-        File file = new File("C:\\Users\\cy\\Desktop\\鏂板缓鏂囦欢澶�");
-        OutputStream stream = null;
-        try {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
-            stream = new FileOutputStream(new File(file, "鏈烘瀯瀹㈡埛淇℃伅琛�.xls"));
-            //document.write(stream);
-            workbook.write(stream);
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            if (stream != null) ;
-            try {
-                stream.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            throw new RuntimeException("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
         }
+        /*褰撳墠鐧诲綍浜哄彧鑳界湅鍒拌嚜宸辨満鏋勪笅鐨勫垪琛�*/
+        String tenantId = sysInfo.getTenantId();
+        String paramAgencyId = param.getAgencyId();
+        if (StringUtils.isEmpty(paramAgencyId) || !paramAgencyId.startsWith(tenantId)) {
+            param.setAgencyId(tenantId);
+        }
+
+        List<Map<String, Object>> export = depFormScrappedService.listByModel(param);
+        return ResponseValue.success(export);
     }
+
+//    public static void main(String[] args) {
+//        TemplateExportParams exportParams = new TemplateExportParams("D:\\MyProjects\\jmy\\浣庡�兼槗鑰楀搧\\low-consum-manage\\deploy-jar-single\\src\\main\\resources\\import\\deptScrapped.xlsx");
+//        exportParams.setHeadingStartRow(2);
+//
+//        List<Map<String, Object>> export = new ArrayList<>();
+//
+//        // 鍒涘缓绗竴鏉℃暟鎹�
+//        Map<String, Object> data1 = new HashMap<>();
+//        data1.put("agencyName", 1);
+//        data1.put("baseGoodsTemplateName", "Bob");
+//        data1.put("scrappedName", "Bob");
+//        data1.put("bz", "Bob");
+//        data1.put("baseGoodsModelsName", 30);
+//        data1.put("counts", 30);
+//        data1.put("totalPrice", 30);
+//        export.add(data1);
+//
+//        // 鍒涘缓绗簩鏉℃暟鎹�
+//        Map<String, Object> data2 = new HashMap<>();
+//        data2.put("agencyName", 2);
+//        data2.put("baseGoodsTemplateName", "Bob");
+//        data2.put("scrappedName", "Bob");
+//        data2.put("bz", "Bob");
+//        data2.put("baseGoodsModelsName", 30);
+//        data2.put("counts", 30);
+//        data2.put("totalPrice", 30);
+//        export.add(data2);
+//
+//
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("code", "2023");
+//        map.put("date", "2023");
+//        map.put("name", "operatorName");
+//        map.put("countNum", 0);
+//        map.put("totalAmount", 0);
+//        map.put("maplist", export);
+//
+//        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
+//
+//        File file = new File("C:\\Users\\cy\\Desktop\\鏂板缓鏂囦欢澶�");
+//        OutputStream stream = null;
+//        try {
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
+//            stream = new FileOutputStream(new File(file, "鏈烘瀯瀹㈡埛淇℃伅琛�.xls"));
+//            //document.write(stream);
+//            workbook.write(stream);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        } finally {
+//            if (stream != null) ;
+//            try {
+//                stream.close();
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//        }
+//    }
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/query/LDeptFormScrappedQry.java b/consum-base/src/main/java/com/consum/base/pojo/query/LDeptFormScrappedQry.java
index 9e5fcdb..0f83176 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/query/LDeptFormScrappedQry.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/query/LDeptFormScrappedQry.java
@@ -1,5 +1,6 @@
 package com.consum.base.pojo.query;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -11,6 +12,10 @@
  **/
 @Data
 public class LDeptFormScrappedQry {
+    /**
+     * 鎶ュ簾鍗昳d
+     */
+    private Long id;
     /**
      * 鎶ュ簾鍗曞彿
      */
@@ -37,6 +42,12 @@
      */
     private String agencyId;
 
+    @ApiModelProperty("瑙勬牸鍨嬪彿")
+    private Long baseGoodsModelsId;
+
+    @ApiModelProperty("閮ㄩ棬ID")
+    private Long departmentId;
+
     private Integer pageSize = 10;
     private Integer pageNum = 1;
 
diff --git a/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
index cc9a437..e05d42e 100644
--- a/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
@@ -202,8 +202,8 @@
             paramts.put("businessFormCode", param.getBusinessFormCode());
         }
         //鏈烘瀯
-        sql.append(" and scrap.AGENCY_ID = :agencyId ");
         if (param.getAgencyId() != null) {
+            sql.append(" and scrap.AGENCY_ID = :agencyId ");
             paramts.put("agencyId", param.getAgencyId());
         }
         //鐗╁搧鍚嶇О
@@ -253,15 +253,21 @@
             DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel();
             depFormScrappedModel.setDepFormScrappedGoodsId(scrappedGoodsId);
             List<DepFormScrappedModel> scrappedModelList = select(depFormScrappedModel);
-            scrappedGoodsMap.put("models", scrappedModelList);
+            List<List<DepFormScrappedModel>> modelList = scrappedModelList.stream()
+                    .collect(Collectors.groupingBy(DepFormScrappedModel::getBaseGoodsModelsId))
+                    .values().stream()
+                    .map(list -> list.stream().collect(Collectors.toList()))
+                    .collect(Collectors.toList());
+
+            scrappedGoodsMap.put("models", modelList);
             goodsList.add(scrappedGoodsMap);
         }
         scrappedExtend.setGoods(goodsList);
         return scrappedExtend;
     }
 
-    private static String EXPORT_SQL = "SELECT scrap.BUSINESS_FORM_CODE,scrap.DEAL_TIME,scrap.OPERATOR_NAME,scrap.AGENCY_NAME,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,scrap.OUT_WAREHOUSE_NAME,model.COUNTS,2 AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 ";
-    private static String EXPORT_SQL_END = "order by scrap.BUSINESS_FORM_CODE desc ";
+    private static String EXPORT_SQL = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,model.COUNTS,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,scrap.OUT_WAREHOUSE_NAME,2 AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 ";
+    private static String EXPORT_SQL_END = "order by scrap.DEAL_TIME DESC";
 
     public List<Map<String, Object>> export(Long id, String agencyId) {
         HashMap<String, Object> paramts = new HashMap<>();
@@ -278,4 +284,54 @@
         }
         return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
     }
+    public List<Map<String, Object>> listByModel(LDeptFormScrappedQry param) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(EXPORT_SQL);
+        //鎶ュ簾鍗昳d
+        if (param.getId() != null) {
+            sql.append(" and scrap.id = :id");
+            paramts.put("id", param.getId());
+        }
+        //鎶ュ簾鍗曞彿
+        if (param.getBusinessFormCode() != null) {
+            sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode");
+            paramts.put("businessFormCode", param.getBusinessFormCode());
+        }
+        //鐗╁搧鍚嶇О
+        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())){
+            sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
+            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        //瑙勬牸鍨嬪彿
+        if (param.getBaseGoodsModelsId() != null) {
+            sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId ");
+            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
+        }
+
+        //鏈烘瀯
+        if (param.getAgencyId() != null) {
+            sql.append(" and scrap.AGENCY_ID = :agencyId ");
+            paramts.put("agencyId", param.getAgencyId());
+        }
+        // 閮ㄩ棬 姝ゅ鎸夌殑鏄墿鍝佷娇鐢ㄩ儴闂� 鑰屼笉鏄� 鎿嶄綔浜烘墍鍦ㄩ儴闂�
+        if (param.getDepartmentId() != null) {
+            sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId");
+            paramts.put("departmentId", param.getDepartmentId());
+        }
+        //鍒涘缓浜�
+        if (!StringUtils.isEmpty(param.getOperatorName())) {
+            sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName ");
+            paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
+        }
+        //鎶ュ簾鏃堕棿
+        if (param.getStartTime() != null) {
+            sql.append(" and scrap.DEAL_TIME >=:dealTimeStart ");
+            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
+        }
+        if (param.getEndTime() != null) {
+            sql.append(" and scrap.DEAL_TIME <:dealTimeEnd ");
+            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
+        }
+        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
+    }
 }

--
Gitblit v1.9.1