From b34b160a7332f94015fc047455b718e303920dc8 Mon Sep 17 00:00:00 2001 From: lilibo <1471506043@qq.com> Date: 星期三, 22 一月 2025 10:58:23 +0800 Subject: [PATCH] 漏洞修改 升级tomcat版本 --- consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java | 202 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 181 insertions(+), 21 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..fbb78f4 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 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.web.ResponseValue; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +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 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.DepFormScrappedService; +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.infrastructure.utils.StringUtils; +import com.walker.web.ResponseValue; + +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 io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; /** * @ClassName DepFormScrappedController @@ -25,34 +44,34 @@ * @Description * @Version 1.0 **/ -@Api(value = "搴撶鍛�", tags = "搴撶鍛�") +@Api(value = "閮ㄩ棬鎶ュ簾", tags = "閮ㄩ棬鎶ュ簾") @RestController @RequestMapping("/pc/l/wh/form/scrapped") public class DepFormScrappedController extends BaseController { @Resource - private DepFormScrappedServiceImpl depFormScrappedService; + private DepFormScrappedService depFormScrappedService; @ApiOperation(value = "鏂板鎶ュ簾鍗�", notes = "鏂板鎶ュ簾鍗�") @PostMapping("/deptAdd") - public ResponseValue deptAdd() { + public ResponseValue deptAdd() throws Exception { LDeptFormScrappedParam param = CommonUtil.getObjFromReqBody(LDeptFormScrappedParam.class); LDeptFormScrappedParam query = new LDeptFormScrappedParam(); CommonUtil.copyProperties(param, query); param = query; FinSysTenantUser sysInfo = this.getSysInfo(); - return depFormScrappedService.add(param, this.getCurrentUser(), sysInfo); + + depFormScrappedService.add(param, this.getCurrentUser(), sysInfo); + return ResponseValue.success(); } /** - * @Description 鍒楄〃鏌ヨ - * 1.鏌ヨ鎶ュ簾鍗� 2.鏌ヨ鎶ュ簾鍗曠墿鍝� + * @Description 鍒楄〃鏌ヨ 1.鏌ヨ鎶ュ簾鍗� 2.鏌ヨ鎶ュ簾鍗曠墿鍝� * @Date */ @ApiOperation(value = "鍒楄〃鏌ヨ", notes = "鍒楄〃鏌ヨ") @ApiImplicitParams({ - @ApiImplicitParam(name = "param", value = "鏌ヨ鏉′欢", dataType = "LWhFormScrappedQry", paramType = "query") - }) + @ApiImplicitParam(name = "param", value = "鏌ヨ鏉′欢", dataType = "LWhFormScrappedQry", paramType = "query")}) @GetMapping("/deptList") public ResponseValue queryList() { LDeptFormScrappedQry param = CommonUtil.getObjFromReq(LDeptFormScrappedQry.class); @@ -65,6 +84,147 @@ 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 ResponseValue<String> 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("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(); +// } + String filePath = downLoadExcel("閲囪喘鍏ュ簱鍗�", workbook); + return ResponseValue.success("瀵煎嚭鎴愬姛", filePath); + + } + + @GetMapping("/deptListByModel") + public ResponseValue export() { + LDeptFormScrappedQry param = CommonUtil.getObjFromReq(LDeptFormScrappedQry.class); + LDeptFormScrappedQry query = new LDeptFormScrappedQry(); + CommonUtil.copyProperties(param, query); + param = query; + + 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); + } + + @GetMapping("/deptListByModel2") + public ResponseValue deptListByModel2() { + LDeptFormScrappedQry param = CommonUtil.getObjFromReq(LDeptFormScrappedQry.class); + LDeptFormScrappedQry query = new LDeptFormScrappedQry(); + CommonUtil.copyProperties(param, query); + param = query; + + 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); + } + return ResponseValue.success(depFormScrappedService.listByModel2(param)); + } + } -- Gitblit v1.9.1