From 26edbbab130e7c69bea11bbd4e2c83127741e582 Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Tue, 16 Feb 2021 12:09:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebtp/extend/export/bean/ExportParame.java | 15 + .../export/controller/ExportController.java | 925 +++++++++--------- .../ebtp/extend/export/model/开标记录表.docx | Bin 17978 -> 18014 bytes .../export/services/ExportServiceOpen.java | 1 - 4 files changed, 477 insertions(+), 464 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java index 52cbb2e..d4c5550 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java @@ -8,13 +8,20 @@ import io.swagger.annotations.ApiModelProperty; public class ExportParame { private String assessRoomId; + private String reviewTurnId; + private String reviewTurnSort; + private String projectId; @ApiModelProperty(value = "标段id") private String sectionId; + @ApiModelProperty(value="类型id") private String reviewType; + + + public String getAssessRoomId() { return assessRoomId; } @@ -54,4 +61,12 @@ public class ExportParame { public void setReviewType(String reviewType) { this.reviewType = reviewType; } + + public String getReviewTurnSort() { + return reviewTurnSort; + } + + public void setReviewTurnSort(String reviewTurnSort) { + this.reviewTurnSort = reviewTurnSort; + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java index 14227a1..3148759 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java @@ -1,63 +1,29 @@ package com.chinaunicom.mall.ebtp.extend.export.controller; -import java.io.File; -import java.io.IOException; -import java.io.OutputStream; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.poi.ss.usermodel.BorderStyle; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.CellStyle; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.VerticalAlignment; -import org.apache.poi.ss.util.CellRangeAddress; -import org.apache.poi.xssf.streaming.SXSSFWorkbook; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; -import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalDetailDTO; -import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalInfoDTO; -import com.chinaunicom.mall.ebtp.extend.export.bean.BizBidOpenroom; -import com.chinaunicom.mall.ebtp.extend.export.bean.BizSupplierRegister; -import com.chinaunicom.mall.ebtp.extend.export.bean.ExportParame; -import com.chinaunicom.mall.ebtp.extend.export.bean.ProjectSectionVO; -import com.chinaunicom.mall.ebtp.extend.export.bean.ReviewConfigCategoryDTO; -import com.chinaunicom.mall.ebtp.extend.export.bean.ReviewConfigDetailDTO; -import com.chinaunicom.mall.ebtp.extend.export.bean.Tdoc; +import com.chinaunicom.mall.ebtp.extend.export.bean.*; import com.chinaunicom.mall.ebtp.extend.export.services.ExportService; import com.chinaunicom.mall.ebtp.extend.export.services.ExportServiceOpen; import com.chinaunicom.mall.ebtp.extend.export.services.ExportServiceProject; import com.chinaunicom.mall.ebtp.extend.export.services.ExportServiceResps; -import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalDetailJudgesSummaryVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalDetailSummaryVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalDetailVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalEarlyJudgesSummaryVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.JuryPrintVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.MemberVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterPriceScoreVO; -import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.*; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.policy.HackLoopTableRenderPolicy; - import io.swagger.annotations.Api; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; @RestController @@ -74,7 +40,7 @@ public class ExportController { @Resource private ExportServiceOpen exportServiceOpen; - + private final String ERROR_MESSAGE="导出失败,请联系管理员"; /** * 1 * 导出方法 @@ -86,19 +52,19 @@ public class ExportController { Tdoc tdocPara = new Tdoc(); tdocPara.setAssessRoomId(parame.getAssessRoomId()); - tdocPara.setTurnSort(Integer.parseInt(parame.getReviewTurnId())); - + tdocPara.setTurnSort(Integer.parseInt(parame.getReviewTurnSort())); + //开标记录数据 BaseResponse> listBaseResponse = exportServiceResps.getTenderQuoteList(tdocPara); - List list = listBaseResponse.getData(); ArrayList> maps = new ArrayList<>(); - if (list != null) { - for (int i = 0; i < list.size(); i++) { + + if (listBaseResponse != null) { + for (int i = 0; i < listBaseResponse.getData().size(); i++) { Map data = new HashMap<>(); data.put("num", (i + 1)); - data.put("tbr", list.get(i).getBidUserName()); - data.put("bj", list.get(i).getNewPrice()); + data.put("tbr", (listBaseResponse.getData().get(i).getBidUserName())); + data.put("bj", (listBaseResponse.getData().get(i).getNewPrice())); data.put("yy", ""); - data.put("sign", list.get(i).getContactName() + ":" + list.get(i).getSignTime()); + data.put("sign", (listBaseResponse.getData().get(i).getContactName()) + ":" + (listBaseResponse.getData().get(i).getSignTime())); maps.add(data); } @@ -117,10 +83,23 @@ public class ExportController { File file = new File("d:/开标记录表.docx"); Map all = new HashMap() {{ put("Record", maps); - put("time", timeList.getData().get(0).getOpingTime()); - put("mc", project.getData().getProjectName()); - put("bh", project.getData().getSectionNumber()); - put("bao", project.getData().getBidSectBizNum()); + + if (timeList.getData() != null) { + put("time", timeList.getData().get(0).getOpingTime()); + } else { + put("time", ""); + } + + if (project.getData() != null) { + put("mc", project.getData().getProjectName()); + put("bh", project.getData().getSectionNumber()); + put("bao", project.getData().getBidSectBizNum()); + } else { + put("mc", ""); + put("bh", ""); + put("bao", ""); + } + put("yuan", ""); }}; @@ -129,7 +108,6 @@ public class ExportController { XWPFTemplate template = XWPFTemplate.compile(file, config).render(all); String fileName = new String("开标记录表.docx".getBytes("UTF-8"), "iso-8859-1"); - OutputStream os = response.getOutputStream(); response.setHeader("Content-disposition", "attachment; filename=" + fileName); template.write(os); @@ -140,38 +118,40 @@ public class ExportController { * 2 * 导出方法 * 评标委员会签字表 + * @return */ @RequestMapping(value = "/judges", method = RequestMethod.GET) @ResponseBody public void exportJudgesMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { - //项目和招标名称处理 + //项目和招标名称数据 ProjectSectionVO projectSectionVO = new ProjectSectionVO(); projectSectionVO.setId(parame.getSectionId()); BaseResponse list = exportServiceProject.selectById(projectSectionVO); - //专家人员数据 BaseResponse> listBaseResponse = exportService.queryReportPrintByRoomId(parame.getAssessRoomId()); ArrayList> maps = new ArrayList<>(); - for (int i = 0; i < listBaseResponse.getData().size(); i++) { - Map data = new HashMap<>(); - data.put("name", listBaseResponse.getData().get(i).getName()); - data.put("phone", listBaseResponse.getData().get(i).getMobile()); - maps.add(data); + if (listBaseResponse != null && list != null) { + for (int i = 0; i < listBaseResponse.getData().size(); i++) { + Map data = new HashMap<>(); + data.put("name", (listBaseResponse.getData().get(i).getName())); + data.put("phone", listBaseResponse.getData().get(i).getMobile()); + maps.add(data); + } } - //获取模板 File file = new File("d:/评标委员会签字表.docx"); - - //当前时间 - Date date = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); - Map all = new HashMap() {{ put("Judges", maps); - put("time", sdf.format(date)); - put("bh", list.getData().getBidSectCode()); - put("mc", list.getData().getProjectName()); + put("time", ""); + + if (list != null) { + put("bh", list.getData().getBidSectCode()); + put("mc", list.getData().getProjectName()); + } else { + put("bh", ""); + put("mc", ""); + } }}; HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); @@ -183,6 +163,9 @@ public class ExportController { OutputStream os = response.getOutputStream(); response.setHeader("Content-disposition", "attachment; filename=" + fileName); template.write(os); + + + } @@ -195,26 +178,23 @@ public class ExportController { @ResponseBody public void exportPszjMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { - - //项目和招标名称处理 - ProjectSectionVO projectSectionVO = new ProjectSectionVO(); - projectSectionVO.setId(parame.getSectionId()); - BaseResponse list = exportServiceProject.selectById(projectSectionVO); - //专家人员数据 BaseResponse> listBaseResponse = exportService.queryReportPrintByRoomId(parame.getAssessRoomId()); ArrayList> maps = new ArrayList<>(); - for (int i = 0; i < listBaseResponse.getData().size(); i++) { - Map data = new HashMap<>(); - data.put("name", listBaseResponse.getData().get(i).getName()); - data.put("phone", listBaseResponse.getData().get(i).getMobile()); - data.put("idCard", listBaseResponse.getData().get(i).getCertificate()); - data.put("isTrue", listBaseResponse.getData().get(i).getAttitude() == 1 ? "是" : "否"); - data.put("time", listBaseResponse.getData().get(i).getLoginTime()); - maps.add(data); + if (listBaseResponse != null && listBaseResponse.getData() != null) { + for (int i = 0; i < listBaseResponse.getData().size(); i++) { + Map data = new HashMap<>(); + data.put("name", listBaseResponse.getData().get(i).getName()); + data.put("phone", listBaseResponse.getData().get(i).getMobile()); + data.put("idCard", listBaseResponse.getData().get(i).getCertificate()); + data.put("isTrue", listBaseResponse.getData().get(i).getAttitude() == 1 ? "是" : "否"); + data.put("time", listBaseResponse.getData().get(i).getLoginTime()); + maps.add(data); + } } + File file = new File("d:/评审专家签到表.docx"); Map all = new HashMap() {{ put("table", maps); @@ -239,7 +219,6 @@ public class ExportController { */ @RequestMapping(value = "/pbbg", method = RequestMethod.GET) @ResponseBody - //todo 暂未完成 public void exportAllMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { //表一假数据 @@ -266,11 +245,14 @@ public class ExportController { //专家人员数据 BaseResponse> listBaseResponse = exportService.queryReportPrintByRoomId(parame.getAssessRoomId()); ArrayList> list3 = new ArrayList<>(); - for (int i = 0; i < listBaseResponse.getData().size(); i++) { - Map data = new HashMap<>(); - data.put("num", (i + 1)); - data.put("name", listBaseResponse.getData().get(i).getName()); - list3.add(data); + if (listBaseResponse != null && listBaseResponse.getData() != null) { + for (int i = 0; i < listBaseResponse.getData().size(); i++) { + Map data = new HashMap<>(); + data.put("num", (i + 1)); + data.put("name", listBaseResponse.getData().get(i).getName()); + list3.add(data); + } + } @@ -295,7 +277,6 @@ public class ExportController { } - BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); bidEvalDetailDTO.setAssessRoomId(parame.getAssessRoomId()); bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); @@ -341,10 +322,10 @@ public class ExportController { List> list6 = new ArrayList<>(); for (int i = 0; i < all1.size(); i++) { Map map = new HashMap<>(); - map.put("num", (i+1)); + map.put("num", (i + 1)); map.put("tbr", all1.get(i).getSupplierRegisterName()); - map.put("js", all1.get(i).getServiceAllScore()); - map.put("sw", all1.get(i).getBusinessAllScore()); + map.put("js", all1.get(i).getServiceAllScore()); + map.put("sw", all1.get(i).getBusinessAllScore()); list6.add(map); } @@ -365,10 +346,10 @@ public class ExportController { List> list8 = new ArrayList<>(); for (int i = 0; i < all1.size(); i++) { Map map = new HashMap<>(); - map.put("num", (i+1)); + map.put("num", (i + 1)); map.put("tbr", all1.get(i).getSupplierRegisterName()); - map.put("sw", all1.get(i).getBusinessAllScore()); - map.put("js", all1.get(i).getServiceAllScore()); + map.put("sw", all1.get(i).getBusinessAllScore()); + map.put("js", all1.get(i).getServiceAllScore()); map.put("jg", all1.get(i).getPriceAllScore()); map.put("zhdf", all1.get(i).getAllScore()); map.put("bj", ""); @@ -424,11 +405,9 @@ public class ExportController { //文件模板从数据库或者项目位置取得 File file = new File("d:/评标专家承诺书.docx"); - XWPFTemplate template = XWPFTemplate.compile(file); String fileName = new String("评标专家承诺书.docx".getBytes("UTF-8"), "iso-8859-1"); - OutputStream os = response.getOutputStream(); response.setHeader("Content-disposition", "attachment; filename=" + fileName); template.write(os); @@ -439,137 +418,141 @@ public class ExportController { * 6 * 导出方法 * 打分汇总 + * @return */ @RequestMapping(value = "dfhz", method = RequestMethod.GET) @ResponseBody - public void exportDfMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { - - BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); - bidEvalDetailDTO.setAssessRoomId(parame.getAssessRoomId()); - bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); - bidEvalDetailDTO.setReviewType(parame.getReviewType()); - BaseResponse>> list = exportService.findCategoryResultSummary(bidEvalDetailDTO); - - - //商务数据 - List list1 = list.getData().get("1"); - //服务数据 - List list2 = list.getData().get("5"); - //价格数据 - List list3 = list.getData().get("0"); - + public BaseResponse exportDfMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { BidEvalInfoDTO bidEvalInfoDTO = new BidEvalInfoDTO(); bidEvalInfoDTO.setAssessRoomId(parame.getAssessRoomId()); bidEvalInfoDTO.setReviewTurnId(parame.getReviewTurnId()); bidEvalInfoDTO.setReviewType(parame.getReviewType()); + //所有评委数据源 + BaseResponse> judges = exportService.findRegisterAndUser(bidEvalInfoDTO); +// List memberall= exportService.findRegisterAndUser(bidEvalInfoDTO).getData().stream().findFirst().get().getMembers(); - //所有评委 - List memberall = exportService.findRegisterAndUser(bidEvalInfoDTO).getData().stream().findFirst().get().getMembers(); + BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); + bidEvalDetailDTO.setAssessRoomId(parame.getAssessRoomId()); + bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); + bidEvalDetailDTO.setReviewType(parame.getReviewType()); + //所有类型打分数据源 + BaseResponse>> list = exportService.findCategoryResultSummary(bidEvalDetailDTO); + if (list != null && judges != null) { + //所有评委 + List memberall = judges.getData().stream().findFirst().get().getMembers(); + //商务数据 + List list1 = list.getData().get("1"); + //服务数据 + List list2 = list.getData().get("5"); + //价格数据 + List list3 = list.getData().get("0"); + // 打分综合汇总 + List all = new ArrayList<>(); - // 综合汇总 - List all = new ArrayList<>(); - list1.stream().forEach(o -> { - BidEvalDetailSummaryVO object = new BidEvalDetailSummaryVO(); - object.setSupplierRegisterId(o.getSupplierRegisterId()); - object.setSupplierRegisterName(o.getSupplierRegisterName()); - object.setBusinessAllScore(o.getFinalScore()); - all.add(object); - }); - all.stream().forEach(x -> { - - list2.stream().forEach(y -> { - if (x.getSupplierRegisterId().equals(y.getSupplierRegisterId())) { - x.setServiceAllScore(y.getFinalScore()); - } - ; + list1.stream().forEach(o -> { + BidEvalDetailSummaryVO object = new BidEvalDetailSummaryVO(); + object.setSupplierRegisterId(o.getSupplierRegisterId()); + object.setSupplierRegisterName(o.getSupplierRegisterName()); + object.setBusinessAllScore(o.getFinalScore()); + all.add(object); }); - list3.stream().forEach(z -> { - if (x.getSupplierRegisterId().equals(z.getSupplierRegisterId())) { - x.setPriceAllScore(z.getFinalScore()); - } - ; + all.stream().forEach(x -> { + + list2.stream().forEach(y -> { + if (x.getSupplierRegisterId().equals(y.getSupplierRegisterId())) { + x.setServiceAllScore(y.getFinalScore()); + } + ; + }); + + list3.stream().forEach(z -> { + if (x.getSupplierRegisterId().equals(z.getSupplierRegisterId())) { + x.setPriceAllScore(z.getFinalScore()); + } + ; + }); + + BigDecimal allPrice = (x.getBusinessAllScore().add(x.getServiceAllScore()).add(x.getPriceAllScore())).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_HALF_UP); + x.setAllScore(allPrice); }); - BigDecimal allPrice = (x.getBusinessAllScore().add(x.getServiceAllScore()).add(x.getPriceAllScore())).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_HALF_UP); - x.setAllScore(allPrice); - }); - - //所有专家 - Map members = list1.get(0).getScoreMap(); - //列头 - StringBuffer titles0 = new StringBuffer("投标人名称,投标序号"); - ArrayList strings = new ArrayList<>(); - //专家信息 添加到列头 - members.forEach((k, v) -> { -// titles0.append("," + k); - memberall.forEach(x -> { - if (k.equals(x.getUserId())) { - titles0.append("," + x.getName()); - } + //参与打分评委 + Map members = list1.get(0).getScoreMap(); + //列头 + StringBuffer titles0 = new StringBuffer("投标人名称,投标序号"); + ArrayList strings = new ArrayList<>(); + //评委专家信息添加到列头 根据参加打分专家的id到所有专家列表中查询名字 + List finalMemberall = memberall; + members.forEach((k, v) -> { + finalMemberall.forEach(x -> { + if (k.equals(x.getUserId())) { + titles0.append("," + x.getName()); + } + }); + strings.add(v.getCreateBy()); }); - strings.add(v.getCreateBy()); - }); - //添加最后一列 - titles0.append(",平均分"); - //最终的列头 - String titles = titles0.toString(); + //添加最后一列 + titles0.append(",平均分"); + //最终的列头 + String titles = titles0.toString(); - // 创建工作簿 - SXSSFWorkbook wb = new SXSSFWorkbook(); - //表格样式 - CellStyle cellStyle = wb.createCellStyle(); - //水平居中 - cellStyle.setAlignment(HorizontalAlignment.CENTER); - //垂直居中 - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - //边框 - cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 - cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 - cellStyle.setBorderTop(BorderStyle.THIN);//上边框 - cellStyle.setBorderRight(BorderStyle.THIN);//右边框 - //渲染所有数据表格 - List createList = null; - /** - * 一共4个表,固定循环4次 - */ - for (int k = 0; k < 4; k++) { - // 创建表格 - Sheet sheet = null; - if (k == 0) { - sheet = wb.createSheet("商务得分"); - } else if (k == 1) { - sheet = wb.createSheet("服务得分"); - } else if (k == 2) { - sheet = wb.createSheet("价格得分"); - titles = "投标人名称,投标序号,价格得分"; + // 创建工作簿 + SXSSFWorkbook wb = new SXSSFWorkbook(); + //表格样式 + CellStyle cellStyle = wb.createCellStyle(); + //水平居中 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //边框 + cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle.setBorderRight(BorderStyle.THIN);//右边框 - } else { - sheet = wb.createSheet("评分汇总表"); - titles = "投标人名称,投标序号,商务得分,服务得分,价格得分,综合得分"; + //渲染所有数据表格 + List createList = null; + /** + * 一共4个表,固定循环4次 + */ + for (int k = 0; k < 4; k++) { + // 创建表格 + Sheet sheet = null; + if (k == 0) { + sheet = wb.createSheet("商务得分"); + } else if (k == 1) { + sheet = wb.createSheet("服务得分"); + } else if (k == 2) { + sheet = wb.createSheet("价格得分"); + titles = "投标人名称,投标序号,价格得分"; - } - sheet.createFreezePane(1, 1); + } else { + sheet = wb.createSheet("评分汇总表"); + titles = "投标人名称,投标序号,商务得分,服务得分,价格得分,综合得分"; - //最右侧列值 - Integer index = (titles.split(",").length) - 1; - //行 - int rowIndex = 0; - //列 - int colIndex = 0; + } + sheet.createFreezePane(1, 1); - // 1行 表头 - CellRangeAddress region1 = new CellRangeAddress(0, 0, 0, index); - sheet.addMergedRegion(region1); - Row title1 = sheet.createRow(rowIndex++); - Cell titleCell1 = title1.createCell(0); - title1.setHeightInPoints(35); - titleCell1.setCellValue("打分汇总表"); - titleCell1.setCellStyle(cellStyle); - // 2行 + //最右侧列值 + Integer index = (titles.split(",").length) - 1; + //行 + int rowIndex = 0; + //列 + int colIndex = 0; + + // 1行 表头 + CellRangeAddress region1 = new CellRangeAddress(0, 0, 0, index); + sheet.addMergedRegion(region1); + Row title1 = sheet.createRow(rowIndex++); + Cell titleCell1 = title1.createCell(0); + title1.setHeightInPoints(35); + titleCell1.setCellValue("打分汇总表"); + titleCell1.setCellStyle(cellStyle); + // 2行 /* CellRangeAddress region2 = new CellRangeAddress(1, 1, 0, index); sheet.addMergedRegion(region2); Row title2 = sheet.createRow(rowIndex++); @@ -581,120 +564,127 @@ public class ExportController { Row title3 = sheet.createRow(rowIndex++); Cell titleCell3 = title3.createCell(0); titleCell3.setCellValue("招标编号 bh123456");*/ - //4行 得分标题 - CellRangeAddress region4 = new CellRangeAddress(1, 1, 0, index); - sheet.addMergedRegion(region4); - Row title4 = sheet.createRow(rowIndex++); - Cell titleCell4 = title4.createCell(0); - if (k == 0) { - titleCell4.setCellValue("商务得分"); - createList = list1; - } else if (k == 1) { - titleCell4.setCellValue("服务得分"); - createList = list2; - } else if (k == 2) { - titleCell4.setCellValue("价格得分"); - createList = list3; - } else { - titleCell4.setCellValue("评分汇总"); - } - - //5行 列头 - Row titleRow5 = sheet.createRow(rowIndex++); - // 设置高度为30 - titleRow5.setHeightInPoints(30); - for (String title : titles.split(",")) { - sheet.setColumnWidth(colIndex, 17 * 256); - Cell titleCell = titleRow5.createCell(colIndex++); - titleCell.setCellValue(title); - //设置样式 - titleCell.setCellStyle(cellStyle); - } - //6行 数据行 - int num = 1; - if (k == 3) { - for (int i = 0; i < all.size(); i++) { - //3为最终汇总表 - Row titleRowN = sheet.createRow(rowIndex++); - colIndex = 0; - //投标人名称 - Cell cell = titleRowN.createCell(colIndex++); - cell.setCellStyle(cellStyle); - cell.setCellValue(all.get(i).getSupplierRegisterName()); - //序号 - Cell cell1 = titleRowN.createCell(colIndex++); - cell1.setCellStyle(cellStyle); - cell1.setCellValue(num++); - //商务汇总 - Cell cell2 = titleRowN.createCell(colIndex++); - cell2.setCellStyle(cellStyle); - cell2.setCellValue(all.get(i).getBusinessAllScore().toString()); - //服务汇总 - Cell cell3 = titleRowN.createCell(colIndex++); - cell3.setCellStyle(cellStyle); - cell3.setCellValue(all.get(i).getServiceAllScore().toString()); - //价格汇总 - Cell cell4 = titleRowN.createCell(colIndex++); - cell4.setCellStyle(cellStyle); - cell4.setCellValue(all.get(i).getPriceAllScore().toString()); - //综合得分 - Cell cell5 = titleRowN.createCell(colIndex++); - cell5.setCellStyle(cellStyle); - cell5.setCellValue(all.get(i).getAllScore().toString()); + //4行 得分标题 + CellRangeAddress region4 = new CellRangeAddress(1, 1, 0, index); + sheet.addMergedRegion(region4); + Row title4 = sheet.createRow(rowIndex++); + Cell titleCell4 = title4.createCell(0); + if (k == 0) { + titleCell4.setCellValue("商务得分"); + createList = list1; + } else if (k == 1) { + titleCell4.setCellValue("服务得分"); + createList = list2; + } else if (k == 2) { + titleCell4.setCellValue("价格得分"); + createList = list3; + } else { + titleCell4.setCellValue("评分汇总"); } - } else { - for (int i = 0; i < createList.size(); i++) { - colIndex = 0; - Row titleRowN = sheet.createRow(rowIndex++); - //投标人名称 - Cell cell = titleRowN.createCell(colIndex++); - cell.setCellStyle(cellStyle); - cell.setCellValue(createList.get(i).getSupplierRegisterName()); - //序号 - Cell cell1 = titleRowN.createCell(colIndex++); - cell1.setCellStyle(cellStyle); - cell1.setCellValue(num++); - if (k == 2) { - //价格得分 2时无专家评分,有最终评分 - Cell cellN1 = titleRowN.createCell(colIndex++); - cellN1.setCellStyle(cellStyle); - cellN1.setCellValue(createList.get(i).getFinalScore().toString()); - } else { - //所有专家 - for (int j = 0; j < createList.get(i).getScoreMap().size(); j++) { - Map scoreMap = createList.get(i).getScoreMap(); - //获取专家的顺序 - if (scoreMap != null) { - String score = null; - for (String string : strings) { - if (scoreMap.get(string) != null) { - score = (scoreMap.get(string).getScore()).toString(); - } else { - score = "无"; + + //5行 列头 + Row titleRow5 = sheet.createRow(rowIndex++); + // 设置高度为30 + titleRow5.setHeightInPoints(30); + for (String title : titles.split(",")) { + sheet.setColumnWidth(colIndex, 17 * 256); + Cell titleCell = titleRow5.createCell(colIndex++); + titleCell.setCellValue(title); + //设置样式 + titleCell.setCellStyle(cellStyle); + } + //6行 数据行 + int num = 1; + if (k == 3) { + for (int i = 0; i < all.size(); i++) { + //3为最终汇总表 + Row titleRowN = sheet.createRow(rowIndex++); + colIndex = 0; + //投标人名称 + Cell cell = titleRowN.createCell(colIndex++); + cell.setCellStyle(cellStyle); + cell.setCellValue(all.get(i).getSupplierRegisterName()); + //序号 + Cell cell1 = titleRowN.createCell(colIndex++); + cell1.setCellStyle(cellStyle); + cell1.setCellValue(num++); + //商务汇总 + Cell cell2 = titleRowN.createCell(colIndex++); + cell2.setCellStyle(cellStyle); + cell2.setCellValue(all.get(i).getBusinessAllScore().toString()); + //服务汇总 + Cell cell3 = titleRowN.createCell(colIndex++); + cell3.setCellStyle(cellStyle); + cell3.setCellValue(all.get(i).getServiceAllScore().toString()); + //价格汇总 + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + cell4.setCellValue(all.get(i).getPriceAllScore().toString()); + //综合得分 + Cell cell5 = titleRowN.createCell(colIndex++); + cell5.setCellStyle(cellStyle); + cell5.setCellValue(all.get(i).getAllScore().toString()); + } + } else { + for (int i = 0; i < createList.size(); i++) { + colIndex = 0; + Row titleRowN = sheet.createRow(rowIndex++); + //投标人名称 + Cell cell = titleRowN.createCell(colIndex++); + cell.setCellStyle(cellStyle); + cell.setCellValue(createList.get(i).getSupplierRegisterName()); + //序号 + Cell cell1 = titleRowN.createCell(colIndex++); + cell1.setCellStyle(cellStyle); + cell1.setCellValue(num++); + if (k == 2) { + //价格得分 2时无专家评分,有最终评分 + Cell cellN1 = titleRowN.createCell(colIndex++); + cellN1.setCellStyle(cellStyle); + cellN1.setCellValue(createList.get(i).getFinalScore().toString()); + } else { + //所有专家 + for (int j = 0; j < createList.get(i).getScoreMap().size(); j++) { + Map scoreMap = createList.get(i).getScoreMap(); + //获取专家的顺序 + if (scoreMap != null) { + String score = null; + for (String string : strings) { + if (scoreMap.get(string) != null) { + score = (scoreMap.get(string).getScore()).toString(); + } else { + score = "无"; + } + Cell cellN = titleRowN.createCell(colIndex++); + cellN.setCellStyle(cellStyle); + cellN.setCellValue(score); } - Cell cellN = titleRowN.createCell(colIndex++); - cellN.setCellStyle(cellStyle); - cellN.setCellValue(score); + } + } - - + //平均分 + Cell cellN1 = titleRowN.createCell(colIndex++); + cellN1.setCellStyle(cellStyle); + cellN1.setCellValue(createList.get(i).getFinalScore().toString()); } - //平均分 - Cell cellN1 = titleRowN.createCell(colIndex++); - cellN1.setCellStyle(cellStyle); - cellN1.setCellValue(createList.get(i).getFinalScore().toString()); } } } + + + String filename = "打分汇总表.xls"; + filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); + response.reset(); + response.setContentType("application/octet-stream;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); + wb.write(response.getOutputStream()); } - String filename = "打分汇总表.xls"; - filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); - response.reset(); - response.setContentType("application/octet-stream;charset=utf-8"); - response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); - wb.write(response.getOutputStream()); + + return BaseResponse.fail(ERROR_MESSAGE); + + } @@ -706,7 +696,7 @@ public class ExportController { */ @RequestMapping(value = "/jgdf", method = RequestMethod.GET) @ResponseBody - public void exportJgdfMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { + public BaseResponse exportJgdfMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { List titles = new LinkedList(); titles.add("序号"); @@ -731,168 +721,176 @@ public class ExportController { projectSectionVO.setId(parame.getSectionId()); BaseResponse list = exportServiceProject.selectById(projectSectionVO); - //价格数据 + BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); bidEvalDetailDTO.setReviewType(parame.getReviewType()); bidEvalDetailDTO.setAssessRoomId(parame.getAssessRoomId()); - + //价格数据 BaseResponse> listBaseResponse = exportService.findPriceScoreRecord(bidEvalDetailDTO); - //最小价格 - BigDecimal minPrice = listBaseResponse.getData().stream().map(SupplierRegisterPriceScoreVO::getBidContent).min((x1, x2) -> x1.compareTo(x2)).get(); - //平均价格 - BigDecimal avgPrice = listBaseResponse.getData().stream().map(SupplierRegisterPriceScoreVO::getBidContent).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(listBaseResponse.getData().size()), 2, BigDecimal.ROUND_HALF_UP); + //组装价格数据 - ArrayList> maps = new ArrayList<>(); - for (int i = 0; i < listBaseResponse.getData().size(); i++) { - Map data = new HashMap<>(); - data.put("num", i + 1); - data.put("ydName", listBaseResponse.getData().get(i).getSupplierRegisterName()); - data.put("tbPrice", listBaseResponse.getData().get(i).getBidContent()); - data.put("psPrice", listBaseResponse.getData().get(i).getEvaluatingContent()); - if (i == 0) { - data.put("lowPrice", minPrice); - data.put("avgPrice", avgPrice); - } else { - data.put("lowPrice", ""); - data.put("avgPrice", ""); - } - data.put("jgScore", listBaseResponse.getData().get(i).getPriceScore()); - maps.add(data); - } + if(listBaseResponse!=null && listBaseResponse.getData() !=null){ + //最小价格 + BigDecimal minPrice = listBaseResponse.getData().stream().map(SupplierRegisterPriceScoreVO::getBidContent).min((x1, x2) -> x1.compareTo(x2)).get(); + //平均价格 + BigDecimal avgPrice = listBaseResponse.getData().stream().map(SupplierRegisterPriceScoreVO::getBidContent).reduce(BigDecimal.ZERO, BigDecimal::add). + divide(BigDecimal.valueOf(listBaseResponse.getData().size()), 2, BigDecimal.ROUND_HALF_UP); - // 创建工作簿 - SXSSFWorkbook wb = new SXSSFWorkbook(); - //表格样式 - CellStyle cellStyle = wb.createCellStyle(); - //水平居中 - cellStyle.setAlignment(HorizontalAlignment.CENTER); - //垂直居中 - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - //边框 - cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 - cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 - cellStyle.setBorderTop(BorderStyle.THIN);//上边框 - cellStyle.setBorderRight(BorderStyle.THIN);//右边框 + ArrayList> maps = new ArrayList<>(); - // 创建表格, - Sheet sheet = wb.createSheet("价格打分"); - sheet.createFreezePane(1, 1); - - int rowIndex = 0; - int colIndex = 0; - - // 价格打分 - CellRangeAddress region = new CellRangeAddress(0, 0, 0, 6); - sheet.addMergedRegion(region); - Row title0 = sheet.createRow(rowIndex++); - Cell titleCell0 = title0.createCell(0); - title0.setHeightInPoints(35); - titleCell0.setCellValue("价格打分表"); - titleCell0.setCellStyle(cellStyle); - //项目名称 - CellRangeAddress region1 = new CellRangeAddress(1, 1, 0, 6); - sheet.addMergedRegion(region1); - Row title1 = sheet.createRow(rowIndex++); - Cell titleCell1 = title1.createCell(0); - titleCell1.setCellValue("项目名称 : " + list.getData().getProjectName()); - //招标编号 - CellRangeAddress region2 = new CellRangeAddress(2, 2, 0, 6); - sheet.addMergedRegion(region2); - Row title2 = sheet.createRow(rowIndex++); - Cell titleCell2 = title2.createCell(0); - titleCell2.setCellValue("招标编号 : " + list.getData().getBidSectName()); - - //标题行 - Row titleRow = sheet.createRow(rowIndex++); - // 设置高度为30 - titleRow.setHeightInPoints(30); - - for (String title : titles) { - sheet.setColumnWidth(colIndex, 17 * 256); - Cell titleCell = titleRow.createCell(colIndex++); - titleCell.setCellValue(title); - //设置样式 - titleCell.setCellStyle(cellStyle); - } - - - // 遍历结果数据 - for (Map item : maps) { - // 创建数据行 - Row activityRow = sheet.createRow(rowIndex++); - // 重置列索引 - colIndex = 0; - for (String key : keys) { - String value = item.get(key).toString(); - Cell valueCell = activityRow.createCell(colIndex++); - valueCell.setCellValue(value); - valueCell.setCellStyle(cellStyle);//设置样式 + for (int i = 0; i < listBaseResponse.getData().size(); i++) { + Map data = new HashMap<>(); + data.put("num", i + 1); + data.put("ydName", listBaseResponse.getData().get(i).getSupplierRegisterName()); + data.put("tbPrice", listBaseResponse.getData().get(i).getBidContent()); + data.put("psPrice", listBaseResponse.getData().get(i).getEvaluatingContent()); + if (i == 0) { + data.put("lowPrice", minPrice); + data.put("avgPrice", avgPrice); + } else { + data.put("lowPrice", ""); + data.put("avgPrice", ""); + } + data.put("jgScore", listBaseResponse.getData().get(i).getPriceScore()); + maps.add(data); } - } + // 创建工作簿 + SXSSFWorkbook wb = new SXSSFWorkbook(); + //表格样式 + CellStyle cellStyle = wb.createCellStyle(); + //水平居中 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //边框 + cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle.setBorderRight(BorderStyle.THIN);//右边框 + // 创建表格, + Sheet sheet = wb.createSheet("价格打分"); + sheet.createFreezePane(1, 1); - CellRangeAddress region3 = new CellRangeAddress(4, (4 + maps.size() - 1), 4, 4); - sheet.addMergedRegion(region3); + int rowIndex = 0; + int colIndex = 0; - CellRangeAddress region4 = new CellRangeAddress(4, (4 + maps.size() - 1), 5, 5); - sheet.addMergedRegion(region4); + // 价格打分 + CellRangeAddress region = new CellRangeAddress(0, 0, 0, 6); + sheet.addMergedRegion(region); + Row title0 = sheet.createRow(rowIndex++); + Cell titleCell0 = title0.createCell(0); + title0.setHeightInPoints(35); + titleCell0.setCellValue("价格打分表"); + titleCell0.setCellStyle(cellStyle); + //项目名称 + CellRangeAddress region1 = new CellRangeAddress(1, 1, 0, 6); + sheet.addMergedRegion(region1); + Row title1 = sheet.createRow(rowIndex++); + Cell titleCell1 = title1.createCell(0); + titleCell1.setCellValue("项目名称 : " + list.getData().getProjectName()); + //招标编号 + CellRangeAddress region2 = new CellRangeAddress(2, 2, 0, 6); + sheet.addMergedRegion(region2); + Row title2 = sheet.createRow(rowIndex++); + Cell titleCell2 = title2.createCell(0); + titleCell2.setCellValue("招标编号 : " + list.getData().getBidSectName()); + //标题行 + Row titleRow = sheet.createRow(rowIndex++); + // 设置高度为30 + titleRow.setHeightInPoints(30); - //价格打分说明 - CellStyle cellStyle0 = wb.createCellStyle(); - //边框 - cellStyle0.setBorderBottom(BorderStyle.THIN); //下边框 - cellStyle0.setBorderLeft(BorderStyle.THIN);//左边框 - cellStyle0.setBorderTop(BorderStyle.THIN);//上边框 - cellStyle0.setBorderRight(BorderStyle.THIN);//右边框 - cellStyle0.setVerticalAlignment(VerticalAlignment.CENTER); - String description = "价格打分说明 :"; - CellRangeAddress region5 = new CellRangeAddress((4 + maps.size()), (4 + maps.size()), 0, 6); - sheet.addMergedRegion(region5); - Row titleLast2 = sheet.createRow(rowIndex++); - titleLast2.setHeightInPoints(40); - for (int i = 0; i < 7; i++) { - Cell valueCell = titleLast2.createCell(i); - if (i == 0) { - valueCell.setCellValue(description); - } else { - valueCell.setCellValue(""); + for (String title : titles) { + sheet.setColumnWidth(colIndex, 17 * 256); + Cell titleCell = titleRow.createCell(colIndex++); + titleCell.setCellValue(title); + //设置样式 + titleCell.setCellStyle(cellStyle); } - valueCell.setCellStyle(cellStyle0); + + + // 遍历结果数据 + for (Map item : maps) { + // 创建数据行 + Row activityRow = sheet.createRow(rowIndex++); + // 重置列索引 + colIndex = 0; + for (String key : keys) { + String value = item.get(key).toString(); + Cell valueCell = activityRow.createCell(colIndex++); + valueCell.setCellValue(value); + valueCell.setCellStyle(cellStyle);//设置样式 + } + + } + + + CellRangeAddress region3 = new CellRangeAddress(4, (4 + maps.size() - 1), 4, 4); + sheet.addMergedRegion(region3); + + CellRangeAddress region4 = new CellRangeAddress(4, (4 + maps.size() - 1), 5, 5); + sheet.addMergedRegion(region4); + + + //价格打分说明 + CellStyle cellStyle0 = wb.createCellStyle(); + //边框 + cellStyle0.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle0.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle0.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle0.setBorderRight(BorderStyle.THIN);//右边框 + cellStyle0.setVerticalAlignment(VerticalAlignment.CENTER); + String description = "价格打分说明 :"; + CellRangeAddress region5 = new CellRangeAddress((4 + maps.size()), (4 + maps.size()), 0, 6); + sheet.addMergedRegion(region5); + Row titleLast2 = sheet.createRow(rowIndex++); + titleLast2.setHeightInPoints(40); + for (int i = 0; i < 7; i++) { + Cell valueCell = titleLast2.createCell(i); + if (i == 0) { + valueCell.setCellValue(description); + } else { + valueCell.setCellValue(""); + } + valueCell.setCellStyle(cellStyle0); + } + + + //签名行 + Row titleLast1 = sheet.createRow(rowIndex++); + Cell titleCellLast1 = titleLast1.createCell(0); + titleCellLast1.setCellValue("全体委员签字 :"); + CellRangeAddress region6 = new CellRangeAddress((4 + maps.size() + 1), (4 + maps.size() + 1), 0, 6); + sheet.addMergedRegion(region6); + //时间行 + CellStyle cellStyle1 = wb.createCellStyle(); + cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER); + cellStyle1.setAlignment(HorizontalAlignment.RIGHT); + Row title6 = sheet.createRow(rowIndex++); + Cell titleCell6 = title6.createCell(0); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); + titleCell6.setCellValue("日期: " + sdf.format(date)); + titleCell6.setCellStyle(cellStyle1); + CellRangeAddress region7 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, 6); + sheet.addMergedRegion(region7); + + String filename = "价格打分.xls"; + filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); + response.reset(); + response.setContentType("application/octet-stream;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); + wb.write(response.getOutputStream()); + } - - //签名行 - Row titleLast1 = sheet.createRow(rowIndex++); - Cell titleCellLast1 = titleLast1.createCell(0); - titleCellLast1.setCellValue("全体委员签字 :"); - CellRangeAddress region6 = new CellRangeAddress((4 + maps.size() + 1), (4 + maps.size() + 1), 0, 6); - sheet.addMergedRegion(region6); - //时间行 - CellStyle cellStyle1 = wb.createCellStyle(); - cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER); - cellStyle1.setAlignment(HorizontalAlignment.RIGHT); - Row title6 = sheet.createRow(rowIndex++); - Cell titleCell6 = title6.createCell(0); - Date date = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); - titleCell6.setCellValue("日期: " + sdf.format(date)); - titleCell6.setCellStyle(cellStyle1); - CellRangeAddress region7 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, 6); - sheet.addMergedRegion(region7); - - String filename = "价格打分.xls"; - filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); - response.reset(); - response.setContentType("application/octet-stream;charset=utf-8"); - response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); - wb.write(response.getOutputStream()); - + return BaseResponse.fail(ERROR_MESSAGE); } @@ -918,6 +916,7 @@ public class ExportController { bidEvalInfoDTO.setReviewType(parame.getReviewType()); //供应商 List listBaseResponse = exportService.findRegisterAndUser(bidEvalInfoDTO).getData(); + //列头 StringBuffer titles0 = new StringBuffer("序号,评审因素,评审标准"); //供应商 顺序 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/开标记录表.docx b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/开标记录表.docx index cf4db72bf385571288c399d53933ef44c3460284..809e86d92988d740fded1bc5722b6dc6033acacf 100644 GIT binary patch delta 5904 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 delta 5845 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 fdqqA0sgt@zJOO}{_eD4Xsgp29C> list(@ApiParam(value = "查询对象数据", required = false) BizBidOpenroom bizBidOpenroom);