From ed7d7e411534f3bcc649f681aa8c529672b31e89 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期五, 01 十二月 2023 17:43:42 +0800
Subject: [PATCH] feat: 报废
---
consum-base/src/main/java/com/consum/base/pojo/response/DepFormScrappedExtendVo.java | 20 ++++
consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java | 55 ++++++++++
consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java | 180 +++++++++++++++++++++++++++++++++++
3 files changed, 253 insertions(+), 2 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 7d75df1..fe0d734 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
@@ -1,22 +1,41 @@
package com.consum.base.controller;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ReflectUtil;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.LDeptFormScrappedParam;
import com.consum.base.pojo.query.LDeptFormScrappedQry;
import com.consum.base.service.DepFormScrappedServiceImpl;
import com.consum.model.po.FinSysTenantUser;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.CollectionUtils;
+import com.walker.infrastructure.utils.DateUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
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;
+import java.util.Map;
/**
* @ClassName DepFormScrappedController
@@ -65,6 +84,165 @@
return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
}
param.setAgencyId(sysInfo.getTenantId());
- return ResponseValue.success(depFormScrappedService.queryList(param));
+
+ GenericPager<Map<String, Object>> mapGenericPager = depFormScrappedService.queryList(param);
+ // 澶勭悊涓�涓嬫暟鎹�
+ List<Map<String, Object>> datas = mapGenericPager.getDatas();
+ if (CollectionUtils.isEmpty(datas)) {
+ return ResponseValue.success(mapGenericPager);
+ }
+ List<Map<String, Object>> maps = mergeData(datas);
+ ReflectUtil.setFieldValue(mapGenericPager, "datas", maps);
+ return ResponseValue.success(mapGenericPager);
+ }
+
+ private static List<Map<String, Object>> mergeData(List<Map<String, Object>> dataList) {
+ Map<Long, Map<String, Object>> mergedDataMap = new HashMap<>();
+ // 閬嶅巻鍘熷鏁版嵁杩涜鍚堝苟
+ for (Map<String, Object> data : dataList) {
+ Long id = Convert.toLong(data.get("id"));
+ HashMap hashMap = new HashMap();
+ hashMap.put("baseGoodsTemplateId", data.get("operatorName"));
+ hashMap.put("baseGoodsTemplateName", data.get("baseGoodsTemplateName"));
+ hashMap.put("totalCount", data.get("totalCount"));
+ hashMap.put("unit", data.get("unit"));
+
+ if (!mergedDataMap.containsKey(id)) {
+ // 濡傛灉id鍦ㄥ悎骞舵暟鎹腑涓嶅瓨鍦紝鍒欐柊澧炰竴鏉¤褰�
+ Map<String, Object> mergedMap = new HashMap<>();
+ mergedMap.put("departmentName", data.get("departmentName"));
+ mergedMap.put("dealTime", data.get("dealTime"));
+ mergedMap.put("businessFormCode", data.get("businessFormCode"));
+ mergedMap.put("operatorName", data.get("operatorName"));
+ mergedMap.put("id", data.get("id"));
+ ArrayList<HashMap> goodsList = new ArrayList<>();
+ goodsList.add(hashMap);
+ mergedMap.put("goods", goodsList);
+ mergedDataMap.put(id, mergedMap);
+ } else {
+ // 濡傛灉id鍦ㄥ悎骞舵暟鎹腑宸插瓨鍦紝鍒欏皢k3杩藉姞鍒板凡瀛樺湪璁板綍鐨刱3鍒楄〃涓�
+ Map<String, Object> mergedMap = mergedDataMap.get(id);
+ ArrayList<HashMap> goodsList = (ArrayList<HashMap>) mergedMap.get("goods");
+ goodsList.add(hashMap);
+ }
+ }
+ // 灏嗗悎骞跺悗鐨勬暟鎹浆鎹负List杩斿洖
+ return new ArrayList<>(mergedDataMap.values());
+ }
+
+ /**
+ * @Description 鏍规嵁id鏌ヨ璇︽儏
+ */
+ @ApiOperation(value = "鏍规嵁id鏌ヨ璇︽儏", notes = "鏍规嵁id鏌ヨ璇︽儏")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "鎶ュ簾鍗昳d", dataType = "Long", paramType = "query")
+ })
+ @GetMapping("/deptDetail")
+ public ResponseValue getById(Long id) {
+ if (id == null) {
+ return ResponseValue.error("鎶ュ簾鍗昳d涓虹┖");
+ }
+ return ResponseValue.success(this.depFormScrappedService.getById(id));
+ }
+
+ @ApiOperation(value = "瀵煎嚭鎶ュ簾鍗�", notes = "瀵煎嚭鎶ュ簾鍗�")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "鎶ュ簾鍗昳d", dataType = "Long", paramType = "query")
+ })
+ @GetMapping("/deptList/export")
+ public void export(Long id, HttpServletResponse response) throws Exception {
+ if (id == null) {
+ throw new RuntimeException("鎶ュ簾鍗昳d涓虹┖");
+ }
+ FinSysTenantUser sysInfo = getSysInfo();
+ if (sysInfo == null) {
+ throw new RuntimeException("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+ }
+ List<Map<String, Object>> export = depFormScrappedService.export(id, sysInfo.getTenantId());
+ if (CollectionUtils.isEmpty(export)) {
+ throw new RuntimeException("鏁版嵁涓虹┖");
+ }
+ TemplateExportParams exportParams = new TemplateExportParams("import/deptScrapped.xlsx");
+ exportParams.setHeadingStartRow(2);
+ Map<String, Object> scrappedInfoExcelTemplate = export.get(0);
+
+ Long dealTime = Convert.toLong(scrappedInfoExcelTemplate.get("dealTime"));
+ String operatorName = Convert.toStr(scrappedInfoExcelTemplate.get("operatorName"));
+ String businessFormCode = Convert.toStr(scrappedInfoExcelTemplate.get("businessFormCode"));
+
+ Map<String, Object> map = new HashMap<>();
+ map.put("code", businessFormCode);
+ map.put("date", DateUtils.toShowDate(dealTime));
+ map.put("name", operatorName);
+ map.put("countNum", 0);
+ map.put("totalAmount", 0);
+ map.put("dataList", export);
+
+ Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
+ // 璁剧疆鍝嶅簲澶�
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("閮ㄩ棬鎶ュ簾鍗�.xlsx", "utf-8"));
+ try (OutputStream outputStream = response.getOutputStream()) {
+ workbook.write(outputStream);
+ workbook.close();
+ }
+ }
+
+ 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/response/DepFormScrappedExtendVo.java b/consum-base/src/main/java/com/consum/base/pojo/response/DepFormScrappedExtendVo.java
new file mode 100644
index 0000000..895b28d
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/DepFormScrappedExtendVo.java
@@ -0,0 +1,20 @@
+package com.consum.base.pojo.response;
+
+import com.consum.model.po.DepFormScrapped;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName DepFormScrappedExtendVo
+ * @Author cy
+ * @Date 2023/12/1
+ * @Description
+ * @Version 1.0
+ **/
+@Data
+public class DepFormScrappedExtendVo extends DepFormScrapped {
+ //鎶ュ簾鍟嗗搧淇℃伅
+ private List<Map> goods;
+}
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 62021c8..cc9a437 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
@@ -8,7 +8,9 @@
import com.consum.base.pojo.DepFormScrappedModelParam;
import com.consum.base.pojo.LDeptFormScrappedParam;
import com.consum.base.pojo.query.LDeptFormScrappedQry;
+import com.consum.base.pojo.response.DepFormScrappedExtendVo;
import com.consum.model.po.*;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
@@ -17,6 +19,7 @@
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import com.walker.web.ResponseValue;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -187,7 +190,7 @@
/**
* @Description 鍒楄〃鏌ヨ
*/
- private static String QUERY_LIST = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME,SUM(model.COUNTS) total_Count 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 QUERY_LIST = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME,SUM(model.COUNTS) total_Count,model.unit 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 QUERY_LIST_END = " GROUP BY scrap.id,scrap.BUSINESS_FORM_CODE,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME ORDER BY scrap.DEAL_TIME DESC";
public GenericPager<Map<String, Object>> queryList(LDeptFormScrappedQry param) {
@@ -225,4 +228,54 @@
sql.append(QUERY_LIST_END);
return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
}
+
+
+ /**
+ * @Description 鏍规嵁id鏌ヨ璇︽儏
+ */
+ public DepFormScrappedExtendVo getById(Long id) {
+ DepFormScrappedExtendVo scrappedExtend = new DepFormScrappedExtendVo();
+ //1.鏌ヨ鎶ュ簾鍗�
+ DepFormScrapped lWhFormScrapped = this.get(new DepFormScrapped(id));
+ if (lWhFormScrapped != null) {
+ BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
+ }
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ //2.鏌ヨ鎶ュ簾鍗曠墿鍝�
+ DepFormScrappedGoods goodsQuery = new DepFormScrappedGoods();
+ List<DepFormScrappedGoods> formScrappedGoodsList = select(goodsQuery);
+ List<Map> goodsList = new ArrayList<>();
+ for (DepFormScrappedGoods scrappedGoods : formScrappedGoodsList) {
+ Map<String, Object> scrappedGoodsMap = objectMapper.convertValue(scrappedGoods, Map.class);
+ // 鏌ヨ瑙勬牸鍨嬪彿
+ Long scrappedGoodsId = scrappedGoods.getId();
+ DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel();
+ depFormScrappedModel.setDepFormScrappedGoodsId(scrappedGoodsId);
+ List<DepFormScrappedModel> scrappedModelList = select(depFormScrappedModel);
+ scrappedGoodsMap.put("models", scrappedModelList);
+ 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 ";
+
+ public List<Map<String, Object>> export(Long id, String agencyId) {
+ HashMap<String, Object> paramts = new HashMap<>();
+ StringBuilder sql = new StringBuilder(EXPORT_SQL);
+ //鎶ュ簾鍗曞彿
+ if (id != null) {
+ sql.append(" and scrap.id = :id");
+ paramts.put("id", id);
+ }
+ //鏈烘瀯
+ sql.append(" and scrap.AGENCY_ID = :agencyId ");
+ if (agencyId != null) {
+ paramts.put("agencyId", agencyId);
+ }
+ return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
+ }
}
--
Gitblit v1.9.1