From 9540bb31929d9d6335f471c50dac279f1a27465a Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 6 Apr 2022 01:01:33 +0800 Subject: [PATCH] feat: There is no way the, bug #52285 --- .../SarLawsStandInfoController.java | 3 +- .../dao/SarLawsStandInfoDao.java | 3 +- .../service/ISarLawsStandInfoService.java | 3 +- .../impl/SarLawsStandInfoServiceImpl.java | 59 ++++++++++--- .../adc/da/utils/util/FieldConvertUtil.java | 4 +- .../da/utils/util/LawsStandExportUtil.java | 49 ++++++++--- .../SarLawsStandInfoMapper.xml | 85 +++++++++++++------ 7 files changed, 148 insertions(+), 58 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java index 34a6d875..9620fbbb 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java @@ -4,6 +4,7 @@ package com.adc.da.slrs.sarLawsStandInfo.controller; import com.adc.da.common.ReadExcel; import com.adc.da.exception.AdcDaBaseException; import com.adc.da.person.service.IPersonCollectEOService; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoExport; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; import com.adc.da.slrs.sarResource.service.ITsResourceService; @@ -191,7 +192,7 @@ public class SarLawsStandInfoController extends BaseController @GetMapping(value = "/exportStandardsInfoExcel") public void exportStandardsInfoExcel(String exportContent, String exportType, String exportName,String userId, HttpServletResponse response, HttpServletRequest request) throws Exception { - List data = sarLawsInfoEOService.getExportData(exportType,exportContent,userId); + List data = sarLawsInfoEOService.getExportData(exportType,exportContent,userId); OutputStream os = null; Workbook workbook = null; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java index 8ca5a2a3..12f498f7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java @@ -1,6 +1,7 @@ package com.adc.da.slrs.sarLawsStandInfo.dao; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoExport; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; @@ -24,7 +25,7 @@ public interface SarLawsStandInfoDao extends BaseMapper { List selectStandardsInfoByKey(String id); - List getSarStandardsExportInfo(SarLawsStandInfoPage page); + List getSarStandardsExportInfo(SarLawsStandInfoPage page); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java index a4a7b022..70a7fd55 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java @@ -3,6 +3,7 @@ package com.adc.da.slrs.sarLawsStandInfo.service; import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoExport; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; @@ -32,7 +33,7 @@ public interface ISarLawsStandInfoService extends IService { SarLawsStandInfoPage updateStandardsMenu(SarLawsStandInfoPage standardsInfoEO); - List getExportData(String exportType, String exportContent,String userId) throws Exception; + List getExportData(String exportType, String exportContent, String userId) throws Exception; List getSarStandardsInfoPage(SarLawsStandInfoPage page) throws Exception; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java index 58c6c954..da5cafee 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java @@ -36,6 +36,7 @@ import com.adc.da.slrs.sarLawsMenu.dao.SarLawsMenuDao; import com.adc.da.slrs.sarLawsMenu.entity.SarLawsMenu; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; import com.adc.da.slrs.sarLawsStandInfo.dao.SarLawsStandInfoDao; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoExport; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; import com.adc.da.slrs.sarLawsVal.dao.SarLawsValDao; @@ -60,6 +61,7 @@ import com.adc.da.utils.util.SarAdvanceSearchUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.sf.json.JSONObject; +import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang.StringUtils; import org.json.JSONTokener; import org.springframework.beans.factory.annotation.Autowired; @@ -323,11 +325,13 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl getAttrMap = sarLawsAttrInfoDao.selectLawsFieldAndData(fieldInfo,row.getId()); + List list = Arrays.asList(fieldInfo.split(",")).stream().map(s -> String.format(s.trim())).collect(Collectors.toList()); + + Map getAttrMap = BeanUtils.describe(row); if (InitStandAttrUtil.clobFieldListLaws != null && !InitStandAttrUtil.clobFieldListLaws.isEmpty()) { // 遍历修改所有clob类型的值 for (String clobField : InitStandAttrUtil.clobFieldListLaws) { @@ -341,7 +345,13 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl entry : getAttrMap.entrySet()) { String name = entry.getKey(); + List filterList = list.stream().filter(a -> name.equals(a)).collect(Collectors.toList()); + if(filterList.isEmpty()){ + newMap.remove(name); + continue; + } Object value1 = entry.getValue(); + if (value1 != null && value1.toString().equals("\"null\"")){ entry.setValue(""); } @@ -440,7 +450,7 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl getExportData(String exportType, String exportContent,String userId) throws Exception { + public List getExportData(String exportType, String exportContent,String userId) throws Exception { SarLawsStandInfoPage page = new SarLawsStandInfoPage(); if ("apart".equals(exportType)) { page.setIdlist(exportContent.split(",")); @@ -489,9 +499,9 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl list = Arrays.asList(fieldInfo.split(",")).stream().map(s -> String.format("SAR_BUSS_STAND_ATTR_INFO."+s.trim())).collect(Collectors.toList()); + List list = Arrays.asList(fieldInfo.split(",")).stream().map(s -> String.format("SAR_LAWS_ATTR_INFO."+s.trim())).collect(Collectors.toList()); List listSelect = Arrays.asList(fieldInfo.split(",")).stream().map(s -> String.format("tmp_tb."+s.trim())).collect(Collectors.toList()); String exportAllAttrInfo = list.stream().collect(Collectors.joining(",")); String exportAllResult = listSelect.stream().collect(Collectors.joining(",")); @@ -503,7 +513,7 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl rows = this.baseMapper.getSarStandardsExportInfo(page); + List rows = this.baseMapper.getSarStandardsExportInfo(page); attrInfoShowExport(rows); return rows; } @@ -577,8 +587,15 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl sarlist) throws Exception { - for(SarLawsStandInfo row : sarlist){ + public void attrInfoShowExport (List sarlist) throws Exception { + + //查询字典表,形成Hash映射提升速度 + List dicInfo = dicTypeEODao.getDicInfo("dic_type_code", "dic_type_name"); + Map dicMap = dicInfo.stream() + .filter(item-> !item.getDicTypeCode().isEmpty()) + .collect(Collectors.toMap(DicTypeEO::getDicTypeCode,DicTypeEO::getDicTypeName,(value1, value2 )->value2)); + + for(SarLawsStandInfoExport row : sarlist){ attrInfoDetailsExport(row); Map getAttrMap = row.getAttrInfoMap(); Map getNewMap = new LinkedHashMap<>(); @@ -588,11 +605,11 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl 0 && InitStandAttrUtil.fileFieldListLaws.contains(name)) { - value = entry.getValue().toString(); - if (StringUtils.isNotBlank(value)) { - List fileObj = attFileEOService.getMultiFileInfos(value); - entry.setValue(fileObj); - } +// value = entry.getValue().toString(); +// if (StringUtils.isNotBlank(value)) { +// List fileObj = attFileEOService.getMultiFileInfos(value); +// entry.setValue(fileObj); +// } } else if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListLaws != null && InitStandAttrUtil.selectionFieldListLaws.size() > 0 && InitStandAttrUtil.selectionFieldListLaws.contains(name)) { value = entry.getValue().toString(); String selVal = InitStandAttrUtil.selectFieldMapLaws.get(name); @@ -606,7 +623,21 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl valArr = Arrays.asList(value.split(",")); - value = dicTypeEODao.getDicNamesByCodes(valArr,""); + if(entry.getValue()!=null) { + StringBuilder builder = new StringBuilder(""); + for (String s : valArr) { + if (dicMap.containsKey(s) && !"ZRBM".equals(name)){ + builder.append(dicMap.get(s)+","); + } + + } + + if (builder.toString().isEmpty()){ + value = entry.getValue().toString(); + }else { + value = builder.toString(); + } + } } entry.setValue(value); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/FieldConvertUtil.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/FieldConvertUtil.java index 8541ab3b..18a5bf30 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/utils/util/FieldConvertUtil.java +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/FieldConvertUtil.java @@ -47,8 +47,8 @@ public class FieldConvertUtil { "EOP实施日期(文本),责任部门,相关部门,SVPPS,FO,项目评估角色,法规维护人,代替标准编号," + "对应其他标准,文字描述,等效标准,引用标准,被引用标准,覆盖关系"; - public static String exportBaseFieldNamesLaws = "政策分类,政策编号,中文名称,英文名称,政策文号,发文日期,发文单位,征集意见周期-起始时间,征集意见周期-结束时间,文本状态," + - "适用区域,适用车型,是否纳入认证清单,年度,福田转发通知文号,信息简报,标签,备注"; + public static String exportBaseFieldNamesLaws = "政策分类,政策编号,政策名称,英文名称,政策文号,发文日期,发文单位,征集意见周期-起始时间,征集意见周期-结束时间,文本状态," + + "适用区域,适用车型,是否纳入认证清单,年度,福田转发通知文号,信息简报,标签,备注(最终政策发布)"; public static String exportAttrFieldNamesLaws = "适用车辆类型,要求类型," + "个性化标签,政策文本,过程稿件,新车型实施日期(文本),在产车实施日期(文本),EOP实施日期(文本),SVPPS," + diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java index e7c63cfa..bd2845cf 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java @@ -2,6 +2,7 @@ package com.adc.da.utils.util; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoExport; import com.adc.da.slrs.sarStandAttrDetails.entity.SarStandAttrDetails; import org.apache.commons.lang.StringUtils; import org.apache.poi.ss.usermodel.*; @@ -10,10 +11,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 标准导出工具 @@ -24,11 +23,11 @@ public class LawsStandExportUtil { private static final Logger logger = LoggerFactory.getLogger(LawsStandExportUtil.class); - public static Workbook exportDatas (List datas) { + public static Workbook exportDatas (List datas) { Workbook workbook = new XSSFWorkbook(); try { StringBuilder attrBud = new StringBuilder(); - List detailsEOList = InitStandAttrUtil.lawsStandAttrFieldList; + List detailsEOList = InitStandAttrUtil.lawsForeignAttrFieldList; Map attrInfoMap = new HashMap<>(); for (SarStandAttrDetails detailsEO : detailsEOList) { if (!InitStandAttrUtil.fileFieldListLaws.contains(detailsEO.getAttrField())) { @@ -62,13 +61,13 @@ public class LawsStandExportUtil { } } - public static void createDatas(Workbook workbook,Sheet sheet,List datas, + public static void createDatas(Workbook workbook,Sheet sheet,List datas, String header,Map attrInfoMap) throws Exception{ CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象 cellStyle.setAlignment(HorizontalAlignment.CENTER); if (datas != null && !datas.isEmpty()) { for (int i=0;i < datas.size(); i++) { - SarLawsStandInfo sarStandardsInfoEO = datas.get(i); + SarLawsStandInfoExport sarStandardsInfoEO = datas.get(i); Row row = sheet.createRow(i+1); String[] headerArr = header.split(","); int sheetNum = 0; @@ -85,7 +84,7 @@ public class LawsStandExportUtil { } // 根据表头返回相应值 - public static String getValueByName (String name,SarLawsStandInfo sarStandardsInfoEO,Map attrInfoMap) throws Exception{ + public static String getValueByName (String name,SarLawsStandInfoExport sarStandardsInfoEO,Map attrInfoMap) throws Exception{ String value = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Map attrValueMap = sarStandardsInfoEO.getAttrInfoMap(); @@ -96,7 +95,7 @@ public class LawsStandExportUtil { case "政策编号": value = verifyBean(sarStandardsInfoEO.getLawsNumber()); break; - case "中文名称": + case "政策名称": value = verifyBean(sarStandardsInfoEO.getLawsName()); break; case "英文名称": @@ -114,6 +113,11 @@ public class LawsStandExportUtil { issueTime=sarStandardsInfoEO.getIssueTime(); } value = issueTime; + if(StringUtils.isNotBlank(value)){ + if (value.length()>10){ + value = value.substring(0,10); + } + } break; case "发文单位": value = verifyBean(sarStandardsInfoEO.getIssueCompany()); @@ -126,6 +130,11 @@ public class LawsStandExportUtil { commentCycleStart=sarStandardsInfoEO.getCommentCycleStart(); } value = commentCycleStart; + if(StringUtils.isNotBlank(value)){ + if (value.length()>10){ + value = value.substring(0,10); + } + } break; case "征集意见周期-结束时间": String commentCycleEnd=""; @@ -135,6 +144,11 @@ public class LawsStandExportUtil { commentCycleEnd=sarStandardsInfoEO.getCommentCycleEnd(); } value = commentCycleEnd; + if(StringUtils.isNotBlank(value)){ + if (value.length()>10){ + value = value.substring(0,10); + } + } break; case "文本状态": value = verifyBean(sarStandardsInfoEO.getStandStatusShow()); @@ -160,14 +174,25 @@ public class LawsStandExportUtil { case "标签": value = verifyBean(sarStandardsInfoEO.getLawsLabel()); break; - case "备注": + case "备注(最终政策发布)": value = verifyBean(sarStandardsInfoEO.getLawsRemark()); break; default: + List list = new ArrayList<>(); + List dateList = InitStandAttrUtil.timeFieldListLaws; + List dateList2 = InitStandAttrUtil.multiTimeFieldListLaws; + list.addAll(dateList); + list.addAll(dateList2); String field = attrInfoMap.get(name); if (attrValueMap != null) { + List finalData = list.stream().filter(field::contains).collect(Collectors.toList()); value = String.valueOf(attrValueMap.get(field)); - } + if (!finalData.isEmpty()) { + if (value.length()>10){ + value = value.substring(0,10); + } + } + } break; } return value; diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml index d7a181a3..9ebd7e9a 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml @@ -295,10 +295,10 @@ laws_sycx_show.DIC_TYPE_NAME as LAWS_SYCX, laws_syqy_show.DIC_TYPE_NAME as LAWS_SYQY, SAR_LAWS_STAND_INFO.IS_RELATE_ACCESS, - SAR_LAWS_STAND_INFO.LAWS_YEAR, + laws_year_show.DIC_TYPE_NAME as LAWS_YEAR, SAR_LAWS_STAND_INFO.LAWS_NOTISYNC_NUM, SAR_LAWS_STAND_INFO.LAWS_BULLETIN, - SAR_LAWS_STAND_INFO.LAWS_LABEL, + laws_label_show.DIC_TYPE_NAME as LAWS_LABEL, SAR_LAWS_STAND_INFO.LAWS_REMARK, SAR_LAWS_STAND_INFO.COUNTRY, SAR_LAWS_STAND_INFO.MODIFY_TIME, @@ -306,28 +306,47 @@ - DISTINCT SAR_LAWS_STAND_INFO.ID, - laws_type_show.DIC_TYPE_NAME as LAWS_TYPE, - SAR_LAWS_STAND_INFO.LAWS_NUMBER, - SAR_LAWS_STAND_INFO.LAWS_NAME, - SAR_LAWS_STAND_INFO.LAWS_EN_NAME, - SAR_LAWS_STAND_INFO.LAWS_NO, - SAR_LAWS_STAND_INFO.ISSUE_TIME, - SAR_LAWS_STAND_INFO.ISSUE_COMPANY, - SAR_LAWS_STAND_INFO.COMMENT_CYCLE_START, - SAR_LAWS_STAND_INFO.COMMENT_CYCLE_END, - SAR_LAWS_STAND_INFO.LAWS_TEXT_STATE, - laws_sycx_show.DIC_TYPE_NAME as LAWS_SYCX, - laws_syqy_show.DIC_TYPE_NAME as LAWS_SYQY, - SAR_LAWS_STAND_INFO.IS_RELATE_ACCESS, - SAR_LAWS_STAND_INFO.LAWS_YEAR, - SAR_LAWS_STAND_INFO.LAWS_NOTISYNC_NUM, - SAR_LAWS_STAND_INFO.LAWS_BULLETIN, - SAR_LAWS_STAND_INFO.LAWS_LABEL, - SAR_LAWS_STAND_INFO.LAWS_REMARK, - SAR_LAWS_STAND_INFO.COUNTRY, - SAR_LAWS_STAND_INFO.MODIFY_TIME, - dicstandTextStatus.DIC_TYPE_NAME AS standStatusShow + DISTINCT tmp_tb.ID, + tmp_tb.LAWS_TYPE, + tmp_tb.LAWS_NUMBER, + tmp_tb.LAWS_NAME, + tmp_tb.LAWS_EN_NAME, + tmp_tb.LAWS_NO, + tmp_tb.ISSUE_TIME, + tmp_tb.ISSUE_COMPANY, + tmp_tb.COMMENT_CYCLE_START, + tmp_tb.COMMENT_CYCLE_END, + tmp_tb.LAWS_TEXT_STATE, + tmp_tb.LAWS_SYCX, + tmp_tb.LAWS_SYQY, + tmp_tb.IS_RELATE_ACCESS, + tmp_tb.LAWS_YEAR, + tmp_tb.LAWS_NOTISYNC_NUM, + tmp_tb.LAWS_BULLETIN, + tmp_tb.LAWS_LABEL, + tmp_tb.LAWS_REMARK, + tmp_tb.COUNTRY, + tmp_tb.MODIFY_TIME, + tmp_tb.standStatusShow, + tmp_tb.SSRQLAWS, + tmp_tb.XCXSSRQLAWS, + tmp_tb.ZCXSSRQLAWS, + tmp_tb.ZCWBLAWS, + tmp_tb.GCWBLAWS, + tmp_tb.JDWJLAWS, + tmp_tb.CYSDLAWS, + tmp_tb.TGRLAWS, + tmp_tb.TGDWLAWS, + tmp_tb.NYLXLAWS, + tmp_tb.YYRZLAWS, + tmp_tb.ZRBMLAWS, + tmp_tb.ZRGCSLAWS, + tmp_tb.DTWJHLAWS, + tmp_tb.BDTWJHLAWS, + tmp_tb.YYBZZCLAWS, + tmp_tb.XGLC, + tmp_tb.CHJLLAWS, + tmp_tb.GLWJLAWS