From cccaf417bc5cb4a9c3fa925d491ca7c1e5621a0c Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期一, 11 十二月 2023 11:12:39 +0800 Subject: [PATCH] 还原测试类 --- consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 218 insertions(+), 1 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..281c1ce 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,38 @@ 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.infrastructure.utils.StringUtils; 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.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @ClassName DepFormScrappedController @@ -41,6 +57,7 @@ param = query; FinSysTenantUser sysInfo = this.getSysInfo(); + return depFormScrappedService.add(param, this.getCurrentUser(), sysInfo); } @@ -65,6 +82,206 @@ 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("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(); + } + } + + @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)); + } + + +// 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(); +// } +// } +// } } -- Gitblit v1.9.1