From af8af24790cb7240da60c6752d47254d62533ffb Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期四, 26 三月 2026 17:11:55 +0800
Subject: [PATCH] 出入库明细,导入导出,根据登录用户类型,以及搜索条件,做回显调整

---
 fzzy-igdss-web/src/main/java/com/fzzy/common/ExportController.java |  255 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 223 insertions(+), 32 deletions(-)

diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/common/ExportController.java b/fzzy-igdss-web/src/main/java/com/fzzy/common/ExportController.java
index bc10824..6258190 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/common/ExportController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/common/ExportController.java
@@ -1,13 +1,15 @@
 package com.fzzy.common;
 
 import com.fzzy.common.manager.ExportManager;
-import com.fzzy.igds.ReportInDetailPR;
-import com.fzzy.igds.ReportOutDetailPR;
-import com.fzzy.igds.SuperInventoryReportPR;
-import com.fzzy.igds.data.ExportWordParam;
-import com.fzzy.igds.data.InoutParam;
-import com.fzzy.igds.data.SuperInventoryReportData;
-import com.fzzy.igds.data.SuperInventoryReportParam;
+import com.fzzy.igds.CompanyPR;
+import com.fzzy.igds.DepotPR;
+import com.fzzy.igds.DeptPR;
+import com.fzzy.igds.ReportInoutPR;
+import com.fzzy.igds.constant.FoodVariety;
+import com.fzzy.igds.data.*;
+import com.fzzy.igds.domain.Company;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.Dept;
 import com.fzzy.igds.domain.InoutRecord;
 import com.fzzy.igds.service.SysDeptService;
 import com.fzzy.igds.utils.ContextUtil;
@@ -20,13 +22,15 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
+import java.text.DecimalFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
- * @Description  鏁版嵁瀵煎嚭鍏ュ彛
+ * @Description 鏁版嵁瀵煎嚭鍏ュ彛
  * @Author CZT
  * @Date 2025/12/29 10:32
  */
@@ -40,11 +44,13 @@
     @Resource
     private SysDeptService sysDeptService;
     @Resource
-    private ReportInDetailPR reportInDetailPR;
+    private ReportInoutPR reportInoutPR;
     @Resource
-    private ReportOutDetailPR reportOutDetailPR;
+    private CompanyPR companyPR;
     @Resource
-    private SuperInventoryReportPR superInventoryReportPR;
+    private DeptPR deptPR;
+    @Resource
+    private DepotPR depotPR;
 
     /**
      * 瀵煎嚭word骞朵笅杞�
@@ -62,6 +68,17 @@
         param.setBizId(bizId);
         param.setEntityName(entityName);
         exportManager.renderWordDownload(param, response);
+    }
+
+    /**
+     * 瀵煎嚭word骞朵笅杞�
+     *
+     * @param response
+     */
+    @RequestMapping("/download-inout-excel")
+    public void downloadInoutExcel(HttpServletResponse response) {
+
+        exportManager.downloadInoutExcel(response);
     }
 
     /**
@@ -85,40 +102,185 @@
 
     /**
      * 鍑哄叆搴撴姤琛ㄥ鍑�
+     *
      * @return
      */
     @RequestMapping("/inout-excel")
     @ResponseBody
     public AjaxResult inOutExcel(InoutParam param) {
-        //璁剧疆鏍囬
+//璁剧疆鏍囬
         String sheetName = "鎶ヨ〃鏁版嵁";
         //鏌ヨ鏁版嵁
         List<InoutRecord> list = new ArrayList<>();
-
-        if (StringUtils.isNotEmpty(param.getType()) && "IN".equals(param.getType())) {
-            sheetName = "鍏ュ簱鎶ヨ〃鏁版嵁";
-            list = reportInDetailPR.listRecord(param);
-        }
-
-        if (StringUtils.isNotEmpty(param.getType()) && "OUT".equals(param.getType())) {
-            sheetName = "鍑哄簱鎶ヨ〃鏁版嵁";
-            list = reportOutDetailPR.listRecord(param);
-        }
-
         //鑾峰彇鍒嗗簱缂栫爜瀵瑰簲鐨勫垎搴撳悕绉�
         String deptName = "";
-        SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
+        String deptId= ContextUtil.subDeptId(null);
+        if (StringUtils.isNotBlank(param.getDeptId())){
+            deptId=param.getDeptId();
+        }
+        SysDept subDept = sysDeptService.getCacheDept(null,deptId);
         if (null != subDept) {
             deptName = subDept.getDeptName();
         }
 
-        //瀵煎嚭
-        ExcelUtil<InoutRecord> util = new ExcelUtil<InoutRecord>(InoutRecord.class);
-        return util.exportExcel(list, sheetName, deptName);
+
+        String exportTimeDesc = "";
+        String exportCreateUser = "";
+        Date exportCreateTime = new Date();
+        if (StringUtils.isNotEmpty(param.getTimeDesc())) {
+            exportTimeDesc = param.getTimeDesc();
+        }
+        if (StringUtils.isNotEmpty(param.getCreateUser())) {
+            exportCreateUser = param.getCreateUser();
+        }
+        if (param.getCreateTime() != null) {
+            exportCreateTime = param.getCreateTime();
+        }
+
+        //鍒涘缓鏀跺偍鍏徃ID鍒板悕绉扮殑鏄犲皠
+        Map<String, String> companyMap = Optional.ofNullable(companyPR.getData())
+                .orElse(new ArrayList<>())
+                .stream()
+                .collect(Collectors.toMap(Company::getId, Company::getDwmc, (key1, key2) -> key2));
+        //鍒涘缓鎵�鍦ㄥ簱鍖篒D鍒板悕绉扮殑鏄犲皠
+        Map<String, String> deptMap = Optional.ofNullable(deptPR.getAllData())
+                .orElse(new ArrayList<>())
+                .stream()
+                .collect(Collectors.toMap(Dept::getId, Dept::getKqmc, (key1, key2) -> key2));
+        // 鍒涘缓浠撳簱ID鍒板悕绉扮殑鏄犲皠
+        Map<String, String> depotMap = Optional.ofNullable(depotPR.getData(ContextUtil.getCompanyId()))
+                .orElse(new ArrayList<>())
+                .stream()
+                .collect(Collectors.toMap(Depot::getId, Depot::getName, (key1, key2) -> key2));
+        DecimalFormat df = new DecimalFormat("0.00");
+        //缁勮瀹為檯瀵煎嚭鏁版嵁
+        if (StringUtils.isNotEmpty(param.getType()) && "IN".equals(param.getType())) {
+            sheetName = "鍏ュ簱鎶ヨ〃鏁版嵁";
+            list = reportInoutPR.listRecord(param);
+            List<InoutRecordInExport> exportList = new ArrayList<>();
+            InoutRecordInExport export;
+            for (InoutRecord record : list) {
+                export = new InoutRecordInExport();
+                export.setId(record.getId());
+                export.setPlateNum(record.getPlateNum());
+                // 灏嗕粨搴揑D鏄犲皠涓轰粨搴撳悕绉�
+                String depotNameValue = depotMap.get(record.getDepotId());
+                export.setDepotId(depotNameValue != null ? depotNameValue : "");
+                //绮鍝佺鏄犲皠
+                String foodVarietyNameValue = FoodVariety.getMsg(record.getFoodVariety());
+                export.setFoodVariety(foodVarietyNameValue != null ? foodVarietyNameValue : "");
+                export.setFullWeight(df.format(record.getFullWeight()) + "KG");
+                export.setEmptyWeight(df.format(record.getEmptyWeight()) + "KG");
+                export.setNetWeight(df.format(record.getNetWeight()) + "KG");
+                export.setSettleWeight(df.format(record.getSettleWeight()) + "KG");
+                export.setRecordWeight(df.format(record.getRecordWeight()) + "KG");
+                export.setCompleteTime(record.getCompleteTime());
+                export.setDeOther(df.format(record.getDeOther()) + "KG");
+                export.setUpdateLog(record.getUpdateLog());
+                exportList.add(export);
+            }
+            ExcelUtil<InoutRecordInExport> util = new ExcelUtil<InoutRecordInExport>(InoutRecordInExport.class);
+            return util.exportExcel(exportList, sheetName, deptName, exportTimeDesc, exportCreateUser, exportCreateTime);
+        }
+
+        if (StringUtils.isNotEmpty(param.getType()) && "OUT".equals(param.getType())) {
+            sheetName = "鍑哄簱鎶ヨ〃鏁版嵁";
+            list = reportInoutPR.listRecord(param);
+            List<InoutRecordOutExport> exportList = new ArrayList<>();
+            InoutRecordOutExport export;
+            for (InoutRecord record : list) {
+                export = new InoutRecordOutExport();
+                export.setId(record.getId());
+                export.setPlateNum(record.getPlateNum());
+                // 灏嗕粨搴揑D鏄犲皠涓轰粨搴撳悕绉�
+                String depotNameValue = depotMap.get(record.getDepotId());
+                export.setDepotId(depotNameValue != null ? depotNameValue : "");
+                //绮鍝佺鏄犲皠
+                String foodVarietyNameValue = FoodVariety.getMsg(record.getFoodVariety());
+                export.setFoodVariety(foodVarietyNameValue != null ? foodVarietyNameValue : "");
+                export.setFullWeight(df.format(record.getFullWeight()) + "KG");
+                export.setEmptyWeight(df.format(record.getEmptyWeight()) + "KG");
+                export.setNetWeight(df.format(record.getNetWeight()) + "KG");
+                export.setSettleWeight(df.format(record.getSettleWeight()) + "KG");
+                export.setRecordWeight(df.format(record.getRecordWeight()) + "KG");
+                export.setCompleteTime(record.getCompleteTime());
+                export.setDeOther(df.format(record.getDeOther()) + "KG");
+                export.setUpdateLog(record.getUpdateLog());
+                exportList.add(export);
+            }
+            ExcelUtil<InoutRecordOutExport> util = new ExcelUtil<InoutRecordOutExport>(InoutRecordOutExport.class);
+            return util.exportExcel(exportList, sheetName, deptName, exportTimeDesc, exportCreateUser, exportCreateTime);
+        }
+
+        if (StringUtils.isNotEmpty(param.getType()) && "IN_DETAIL".equals(param.getType())) {
+            sheetName = "鍏ュ簱鏄庣粏鎶ヨ〃鏁版嵁";
+            param.setType("IN");
+            list = reportInoutPR.listRecord(param);
+            List<InoutRecordDetailInExport> exportList = new ArrayList<>();
+            InoutRecordDetailInExport export;
+            for (InoutRecord record : list) {
+                export = new InoutRecordDetailInExport();
+                //鏀跺偍鍏徃鏄犲皠
+                String companyNameValue = companyMap.get(record.getCompanyId());
+                export.setCompanyId(companyNameValue != null ? companyNameValue : "");
+                //搴撳尯鏄犲皠
+                String deptNameValue = deptMap.get(record.getDeptId());
+                export.setDeptId(deptNameValue != null ? deptNameValue : "");
+                export.setId(record.getId());
+                export.setPlateNum(record.getPlateNum());
+                // 灏嗕粨搴揑D鏄犲皠涓轰粨搴撳悕绉�
+                String depotNameValue = depotMap.get(record.getDepotId());
+                export.setDepotId(depotNameValue != null ? depotNameValue : "");
+                //绮鍝佺鏄犲皠
+                String foodVarietyNameValue = FoodVariety.getMsg(record.getFoodVariety());
+                export.setFoodVariety(foodVarietyNameValue != null ? foodVarietyNameValue : "");
+                export.setSettleWeight(df.format(record.getSettleWeight()) + "KG");
+                export.setRecordWeight(df.format(record.getRecordWeight()) + "KG");
+                export.setCompleteTime(record.getCompleteTime());
+                export.setUpdateLog(record.getUpdateLog());
+                exportList.add(export);
+            }
+            ExcelUtil<InoutRecordDetailInExport> util = new ExcelUtil<InoutRecordDetailInExport>(InoutRecordDetailInExport.class);
+            return util.exportExcel(exportList, sheetName, deptName, exportTimeDesc, exportCreateUser, exportCreateTime);
+        }
+
+        if (StringUtils.isNotEmpty(param.getType()) && "OUT_DETAIL".equals(param.getType())) {
+            sheetName = "鍑哄簱鏄庣粏鎶ヨ〃鏁版嵁";
+            param.setType("OUT");
+            list = reportInoutPR.listRecord(param);
+            List<InoutRecordDetailOutExport> exportList = new ArrayList<>();
+            InoutRecordDetailOutExport export;
+            for (InoutRecord record : list) {
+                export = new InoutRecordDetailOutExport();
+                //鏀跺偍鍏徃鏄犲皠
+                String companyNameValue = companyMap.get(record.getCompanyId());
+                export.setCompanyId(companyNameValue != null ? companyNameValue : "");
+                //搴撳尯鏄犲皠
+                String deptNameValue = deptMap.get(record.getDeptId());
+                export.setDeptId(deptNameValue != null ? deptNameValue : "");
+                export.setId(record.getId());
+                export.setPlateNum(record.getPlateNum());
+                // 灏嗕粨搴揑D鏄犲皠涓轰粨搴撳悕绉�
+                String depotNameValue = depotMap.get(record.getDepotId());
+                export.setDepotId(depotNameValue != null ? depotNameValue : "");
+                //绮鍝佺鏄犲皠
+                String foodVarietyNameValue = FoodVariety.getMsg(record.getFoodVariety());
+                export.setFoodVariety(foodVarietyNameValue != null ? foodVarietyNameValue : "");
+                export.setSettleWeight(df.format(record.getSettleWeight()) + "KG");
+                export.setRecordWeight(df.format(record.getRecordWeight()) + "KG");
+                export.setCompleteTime(record.getCompleteTime());
+                export.setUpdateLog(record.getUpdateLog());
+                exportList.add(export);
+            }
+            ExcelUtil<InoutRecordDetailOutExport> util = new ExcelUtil<InoutRecordDetailOutExport>(InoutRecordDetailOutExport.class);
+            return util.exportExcel(exportList, sheetName, deptName, exportTimeDesc, exportCreateUser, exportCreateTime);
+        }
+        return AjaxResult.error("鍙傛暟閿欒");
     }
 
     /**
      * 搴撳瓨鎶ヨ〃瀵煎嚭
+     *
      * @return
      */
     @RequestMapping("/storage-excel")
@@ -127,17 +289,46 @@
         //璁剧疆鏍囬
         String sheetName = "搴撳瓨鎶ヨ〃鏁版嵁";
         //鏌ヨ鏁版嵁
-        List<SuperInventoryReportData> list = superInventoryReportPR.getReportData(param);
+        List<SuperInventoryReportData> list = reportInoutPR.getStoreData(param);
         //鑾峰彇鍒嗗簱缂栫爜瀵瑰簲鐨勫垎搴撳悕绉�
         String deptName = "";
         SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
         if (null != subDept) {
             deptName = subDept.getDeptName();
         }
+        String exportTimeDesc = "";
+        String exportCreateUser = "";
+        Date exportCreateTime = new Date();
+        if (StringUtils.isNotEmpty(param.getTimeDesc())) {
+            exportTimeDesc = param.getTimeDesc();
+        }
+        if (StringUtils.isNotEmpty(param.getCreateUser())) {
+            exportCreateUser = param.getCreateUser();
+        }
+        if (param.getCreateTime() != null) {
+            exportCreateTime = param.getCreateTime();
+        }
+        List<SuperInventoryReportExport> exportList = new ArrayList<>();
+        DecimalFormat df = new DecimalFormat("0.00");
+
+        for (SuperInventoryReportData data : list) {
+            SuperInventoryReportExport export = new SuperInventoryReportExport();
+            export.setCustomerName(data.getCustomerName());
+            export.setDeptName(data.getDeptName());
+            export.setDepotName(data.getDepotName());
+            export.setInitialWeight(df.format(data.getInitialWeight()) + "KG");
+            export.setRecordInWeight(df.format(data.getRecordInWeight()) + "KG");
+            export.setChangeInWeight(df.format(data.getChangeInWeight()) + "KG");
+            export.setRecordOutWeight(df.format(data.getRecordOutWeight()) + "KG");
+            export.setChangeOutWeight(df.format(data.getChangeOutWeight()) + "KG");
+            export.setLossWeight(df.format(data.getLossWeight()) + "KG");
+            export.setFinalWeight(df.format(data.getFinalWeight()) + "KG");
+            exportList.add(export);
+        }
 
         //瀵煎嚭
-        ExcelUtil<SuperInventoryReportData> util = new ExcelUtil<SuperInventoryReportData>(SuperInventoryReportData.class);
-        return util.exportExcel(list, sheetName, deptName);
+        ExcelUtil<SuperInventoryReportExport> util = new ExcelUtil<SuperInventoryReportExport>(SuperInventoryReportExport.class);
+        return util.exportExcel(exportList, sheetName, deptName, exportTimeDesc, exportCreateUser, exportCreateTime);
     }
 
 }

--
Gitblit v1.9.3