diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index 0d3bbfbef..5af2789e3 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -203,4 +203,38 @@ CREATE TABLE `params_report_export_history` ( -- 参数清单历史版本 添加字段 ALTER TABLE `laws_weilai`.`params_manifest_history` - ADD COLUMN `source_params_manifest_id` varchar(50) NULL COMMENT '源参数清单id' AFTER `params_template_publish_version`; \ No newline at end of file + ADD COLUMN `source_params_manifest_id` varchar(50) NULL COMMENT '源参数清单id' AFTER `params_template_publish_version`; + +-- 上报库表 添加字段 2022-07-08 +ALTER TABLE `laws_weilai`.`params_report` + ADD COLUMN `project_name` varchar(200) NULL COMMENT '项目名称' AFTER `params_template_publish_version`, + ADD COLUMN `title` varchar(200) NULL COMMENT '清单标题' AFTER `project_name`; + +ALTER TABLE `laws_opinion_gather` + ADD COLUMN `opinion_archive_id` varchar(4000) NULL COMMENT '意见归档文件id' AFTER `prc_num`; + +-- 法规技术评估流程相关表 - 法规技术评估表 +CREATE TABLE `laws_technology_evaluation` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门', + `stand_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准id', + `serial_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `technology_territory` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '技术领域', + `evaluation_methods` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评估方式', + `flow_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程状态', + `start_time` datetime NULL DEFAULT NULL COMMENT '发起日期', + `end_time` datetime NULL DEFAULT NULL COMMENT '截止日期', + `remark` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `acti_proc_inst_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例id', + `related_data_file_id` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关资料id', + `process_background` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程背景', + `regulation_owner_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '法规工程师id', + `evaluation_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评估类型(类型有:反馈评估、条款评估)', + `prc_num` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '法规技术评估表' ROW_FORMAT = DYNAMIC; diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/ParamsManifestEOMapper.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/ParamsManifestEOMapper.java index a099fd871..280efb58f 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/ParamsManifestEOMapper.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/ParamsManifestEOMapper.java @@ -3,8 +3,11 @@ package com.jero.modules.cert.collect.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.cert.collect.entity.ParamsManifestEO; +import com.jero.modules.cert.collect.vo.ParamsManifestVO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @Description: 参数清单 * @Author: jero-boot @@ -18,4 +21,6 @@ public interface ParamsManifestEOMapper extends BaseMapper { @Param("state") String state, IPage page); + List listInfoAll(@Param("idList") List idList); + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml index be1ffc81c..5ed28fbca 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml @@ -20,6 +20,7 @@ + @@ -72,6 +73,7 @@ select pm.id as id, pm.title as title, + pm.version as version, pm.project_id as project_id, pm.state as state, concat(pni.project_name,'-',pyni.year_name) as project_name, @@ -91,4 +93,23 @@ order by create_time desc + + \ No newline at end of file diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java index ca3d42c9d..8d97915fc 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java @@ -34,4 +34,12 @@ public interface IParamsCollectManifestHistoryEOService extends IService> getHeader(String paramsManifestId, String flag, String cut); + /** + * 批量删除 + * + * @param ids + * @return + */ + boolean deleteByIds(List ids); + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsConfigDataHistoryEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsConfigDataHistoryEOService.java index d7f6f1f41..13fb9d79c 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsConfigDataHistoryEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsConfigDataHistoryEOService.java @@ -1,7 +1,6 @@ package com.jero.modules.cert.collect.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.jero.modules.cert.collect.entity.ParamsConfigDataEO; import com.jero.modules.cert.collect.entity.ParamsConfigDataHistoryEO; import java.util.List; @@ -29,4 +28,7 @@ public interface IParamsConfigDataHistoryEOService extends IService queryListByConfigIdList(List configIdList); + + int deleteByParamsCollectManifestIdList(List paramsCollectManifestIdList); + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java index c66c62790..5d30be7c2 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java @@ -17,4 +17,6 @@ public interface IParamsManifestHistoryEOService extends IService getHistoryVersionList(String paramsManifestId); + + void deleteAllHistoryVersion(List paramsManifestIdList); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java index cc8457f40..9deb0dc6a 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java @@ -455,6 +455,19 @@ public class ParamsCollectManifestHistoryEOServiceImpl extends ServiceImpl ids) { + // 关联删除配置数据 + paramsConfigDataHistoryEOService.deleteByParamsCollectManifestIdList(ids); + return removeByIds(ids); + } + /** * 获取一个类和其父类的所有属性 * diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataHistoryEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataHistoryEOServiceImpl.java index 08ac676f1..620f6da2b 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataHistoryEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsConfigDataHistoryEOServiceImpl.java @@ -7,6 +7,7 @@ import com.jero.modules.cert.collect.entity.ParamsConfigDataEO; import com.jero.modules.cert.collect.entity.ParamsConfigDataHistoryEO; import com.jero.modules.cert.collect.mapper.ParamsConfigDataHistoryEOMapper; import com.jero.modules.cert.collect.service.IParamsConfigDataHistoryEOService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -20,6 +21,9 @@ import java.util.List; @Service public class ParamsConfigDataHistoryEOServiceImpl extends ServiceImpl implements IParamsConfigDataHistoryEOService { + @Autowired + private ParamsConfigDataHistoryEOMapper paramsConfigDataHistoryEOMapper; + /** * 通过id查询 * @@ -50,4 +54,12 @@ public class ParamsConfigDataHistoryEOServiceImpl extends ServiceImpl paramsCollectManifestIdList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifestIdList); + return paramsConfigDataHistoryEOMapper.delete(queryWrapper); + } + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 843676384..49a3b33ab 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -20,6 +20,7 @@ import com.jero.modules.cert.collect.mapper.ParamsConfigEOMapper; import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper; import com.jero.modules.cert.collect.service.*; import com.jero.modules.cert.collect.vo.ParamsManifestHistoryVO; +import com.jero.modules.cert.report.service.IParamsReportEOService; import com.jero.modules.cert.template.entity.ParamsInfoPublishEO; import com.jero.modules.cert.template.entity.ParamsTemplateEO; import com.jero.modules.cert.template.service.IParamsInfoPublishEOService; @@ -81,6 +82,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl idList = new ArrayList<>(); + idList.add(id); + paramsManifestHistoryEOService.deleteAllHistoryVersion(idList); + + // 添加上报库的项目名称和清单标题 + paramsReportEOService.setProjectNameAndTitle(idList); + return removeById(id); } @@ -251,6 +263,13 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl getHistoryVersionList(String paramsManifestId) { - // 同一项目下标题时唯一的,历史版本和当前版本通过标题进行关联 + // 历史版本和当前版本通过id进行关联 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ParamsManifestHistoryEO::getSourceParamsManifestId, paramsManifestId) .orderByAsc(ParamsManifestHistoryEO::getVersion); @@ -149,4 +151,37 @@ public class ParamsManifestHistoryEOServiceImpl extends ServiceImpl paramsManifestIdList) { + LambdaQueryWrapper manifestHistoryEOLambdaQueryWrapper = new LambdaQueryWrapper<>(); + manifestHistoryEOLambdaQueryWrapper.in(ParamsManifestHistoryEO::getSourceParamsManifestId, paramsManifestIdList); + List list = list(manifestHistoryEOLambdaQueryWrapper); + if (CollectionUtil.isNotEmpty(list)) { + List ids = list.stream().map(ParamsManifestHistoryEO::getId).collect(Collectors.toList()); + + // 关联删除配置 + LambdaQueryWrapper configEOQueryWrapper = new LambdaQueryWrapper<>(); + configEOQueryWrapper.in(ParamsConfigHistoryEO::getParamsManifestId, ids); + paramsConfigHistoryEOMapper.delete(configEOQueryWrapper); + + // 关联删除收集的参数项(包含配置数据) + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ParamsCollectManifestHistoryEO::getParamsManifestId, ids); + List paramsCollectManifestHistoryEOList = paramsCollectManifestHistoryEOService.list(queryWrapper); + if (CollectionUtil.isNotEmpty(paramsCollectManifestHistoryEOList)) { + List paramsCollectManifestIdList = paramsCollectManifestHistoryEOList.stream().map(ParamsCollectManifestHistoryEO::getId).collect(Collectors.toList()); + paramsCollectManifestHistoryEOService.deleteByIds(paramsCollectManifestIdList); + + } + + // 删除清单对应的所有历史版本清单 + paramsManifestHistoryEOMapper.delete(manifestHistoryEOLambdaQueryWrapper); + } + } + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsManifestVO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsManifestVO.java index 187fe1d54..cec703acd 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsManifestVO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/vo/ParamsManifestVO.java @@ -1,5 +1,6 @@ package com.jero.modules.cert.collect.vo; +import io.swagger.models.auth.In; import lombok.Data; /** @@ -12,6 +13,7 @@ public class ParamsManifestVO { private String id; private String title; + private Integer version; private String projectName; private String projectId; private String state; diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/controller/ParamsReportDetailEOController.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/controller/ParamsReportDetailEOController.java index 718155cc4..8d3e9f61e 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/controller/ParamsReportDetailEOController.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/controller/ParamsReportDetailEOController.java @@ -1,13 +1,10 @@ package com.jero.modules.cert.report.controller; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; -import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; -import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO; import com.jero.modules.cert.report.entity.ParamsReportDetailEO; import com.jero.modules.cert.report.service.IParamsReportDetailEOService; import com.jero.modules.cert.report.vo.ParamsReportDetailVO; @@ -15,9 +12,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -89,7 +88,7 @@ public class ParamsReportDetailEOController extends JeroController + + @@ -24,8 +26,8 @@ pr.create_time as create_time, pr.update_by as update_by, pr.update_time as update_time, - pm.title as title, - pni.project_name as project_name + if (pm.title is not null, pm.title, pr.title) as title, + if (pni.project_name is not null, concat(pni.project_name,'-', pyni.year_name), pr.project_name) as project_name @@ -48,6 +50,7 @@ left join params_manifest as pm on pm.id = pr.old_params_manifest_id left join project_library_base as plb on plb.id = pm.project_id left join project_name_info as pni on plb.project_name_id = pni.id + left join project_year_name_info as pyni on plb.year_name_id=pyni.id ) tmp_tb order by create_time desc diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java index 6c65c50d2..3ac662c11 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java @@ -36,6 +36,12 @@ public interface IParamsReportDetailEOService extends IService> getHeader(String paramsManifestId, String flag, String cut); + /** + * 常规导出 + * @param paramsReportDetailVO + * @param response + * @param request + */ void exportNormal(ParamsReportDetailVO paramsReportDetailVO, HttpServletResponse response, HttpServletRequest request); // 配置-下拉选项 @@ -43,4 +49,7 @@ public interface IParamsReportDetailEOService extends IService> getTemplateLabelList(); + + void exportCustom(ParamsReportDetailVO paramsReportDetailVO, HttpServletResponse response, HttpServletRequest request); + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java index ff7746e6f..51f147836 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java @@ -67,4 +67,5 @@ public interface IParamsReportEOService extends IService { ParamsReportEO queryByOldParamsManifestId(String oldParamsManifestId, Integer version); + boolean setProjectNameAndTitle(List oldParamsManifestIdList); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java index 18b71515c..60754ba17 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java @@ -14,7 +14,8 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.util.oss.CosBootUtil; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; -import com.jero.modules.cert.collect.entity.*; +import com.jero.modules.cert.collect.entity.ParamsConfigDataEO; +import com.jero.modules.cert.collect.entity.ParamsConfigEO; import com.jero.modules.cert.collect.enums.CollectManifestStateEnum; import com.jero.modules.cert.collect.enums.ConfigDataTypeEnum; import com.jero.modules.cert.collect.vo.ParamsConfigDataVO; @@ -22,34 +23,23 @@ import com.jero.modules.cert.report.entity.*; import com.jero.modules.cert.report.enums.ExportTypeEnum; import com.jero.modules.cert.report.mapper.ParamsReportDetailEOMapper; import com.jero.modules.cert.report.service.*; +import com.jero.modules.cert.report.util.Docx4jUtil; import com.jero.modules.cert.report.vo.ParamsReportDetailVO; import com.jero.modules.cert.template.enums.ControlTypeEnum; -import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.ocr.util.LineHumpUtil; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; -import com.jero.modules.split.common.ConvertHtml2Excel; import com.jero.modules.split.common.ReadExcel; -import com.jero.modules.split.dto.FileSpiltValTableExportDto; -import com.jero.modules.split.dto.FileSplitValExportDto; -import com.jero.modules.split.dto.FileSplitValImgExportDto; -import com.jero.modules.split.entity.SarFileSplitItemsValEO; -import com.jero.modules.split.page.SarFileSplitItemsEOPage; -import com.jero.modules.split.page.SarFileSplitItemsValEOPage; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.service.ISysDictItemService; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.entity.ContentType; -import org.apache.poi.common.usermodel.HyperlinkType; -import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; -import org.apache.poi.ss.usermodel.CreationHelper; -import org.apache.poi.ss.usermodel.Hyperlink; -import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.*; import org.aspectj.util.FileUtil; +import org.docx4j.openpackaging.exceptions.Docx4JException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mock.web.MockMultipartFile; @@ -97,6 +87,10 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl fieldList = Arrays.asList(field.split(",")); // list形式 // 查询导出数据 - List> allParamsInfoList = queryForExport(paramsReportDetailVO); // id记得去掉 + List> allParamsInfoList = queryForExportNormal(paramsReportDetailVO); // id记得去掉 // 开始处理工作表 List allRelevFileList = new ArrayList<>(); @@ -641,9 +635,6 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl> getTemplateLabelList() { // 查询所有导出模板 @@ -664,6 +655,113 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl allParamsInfoList = queryForExportCustom(paramsReportDetailVO); + Map params = allParamsInfoList.get(0); + + String templateUrl = ""; + ParamsExportTemplateEO paramsExportTemplateEO = paramsExportTemplateEOService.getById(paramsReportDetailVO.getExportTemplateId()); + List ossFiles = ossFileService.getFileInfosByConnectId(paramsExportTemplateEO.getFileConnectId()); + if (CollectionUtil.isNotEmpty(ossFiles)) { + templateUrl = ossFiles.get(0).getUrl(); + } + + // 替换模板中的占位符 + try { + //下载关联文件内容 + List allRelevFileList = (List) allParamsInfoList.get(1).get("fileListAll"); + if (allRelevFileList != null && !allRelevFileList.isEmpty()) { + allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList()); + downLoadFileList(allRelevFileList,fileNowPath + File.separator + "导出文件"); + } + + // 拿取模板 + String repFileName = fileName.replaceAll("/","_"); + wordOS = new FileOutputStream(fileNowPath + File.separator + repFileName); + if (CosBootUtil.doesObjectExist(templateUrl)) { + InputStream wordTemplate = CosBootUtil.download(templateUrl); + com.qcloud.cos.utils.IOUtils.copy(wordTemplate, wordOS); + } + + // 替换占位符内容 + byte[] wordContent = Docx4jUtil.of(fileNowPath + File.separator + repFileName) + .addParams(params) + .get(); + ByteArrayInputStream wordis = new ByteArrayInputStream(wordContent); + OutputStream wordFileOS = new FileOutputStream(fileNowPath + File.separator + repFileName); + int len1 = 0; + while ((len1 = wordis.read()) != -1) { + wordFileOS.write(len1); + } + wordOS.flush(); + wordOS.close(); + wordFileOS.flush(); + wordFileOS.close(); + + // 打包导出压缩包 + response.setHeader("Content-Disposition", + "attachment; filename=\""+ ReadExcel.encodeFileName(fileOriName+".zip", request) +"\""); + response.setContentType("application/force-download"); + response.flushBuffer(); + os = response.getOutputStream(); + ZipUtil.zip(fileNowPath,fileNowPath+".zip"); + FileInputStream fis = new FileInputStream(fileNowPath+".zip"); + int len2 = 0; + while ((len2 = fis.read()) != -1) { + os.write(len2); + } + + // 添加导出历史 + /*String uploadFileName = fileOriName + ".zip"; + MultipartFile mFile = new MockMultipartFile(uploadFileName, uploadFileName, ContentType.APPLICATION_OCTET_STREAM.toString(), fis); // 用于上传 + OSSFile ossFile = ossFileService.uploadLocalOfCos(mFile, "/report", "", CutEnum.CN.getValue()); // 上传导出的压缩包 + ParamsReportExportHistoryEO paramsReportExportHistoryEO = new ParamsReportExportHistoryEO(); + paramsReportExportHistoryEO.setExportType(ExportTypeEnum.NORMAL.getValue()); + paramsReportExportHistoryEO.setExportFileId(ossFile.getId()); + paramsReportExportHistoryEO.setParamsManifestId(paramsReportDetailVO.getParamsManifestId()); + paramsReportExportHistoryEO.setExportTime(new Date()); + paramsReportExportHistoryEOService.add(paramsReportExportHistoryEO);*/ + + os.flush(); + os.close(); // 后开先关 + fis.close(); // 先开后关 + + } catch (Docx4JException e) { + log.error(e.getMessage(), e); + + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new JeroBootException("下载文件失败,请重试"); + + } finally { + IOUtils.closeQuietly(os); + IOUtils.closeQuietly(wordOS); + File tempZipFile = new File(uploadpath + "/tempZip"); + FileUtil.deleteContents(tempZipFile); + } + + } + private void downLoadFileList(List allRelevFileList,String fileNowPath) { File nowFile = new File(fileNowPath); if (nowFile.exists()){ @@ -710,7 +808,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl> queryForExport(ParamsReportDetailVO paramsReportDetailVO) { + private List> queryForExportNormal(ParamsReportDetailVO paramsReportDetailVO) { List idList = new ArrayList<>(); if (StringUtils.isNotEmpty(paramsReportDetailVO.getIds())) { idList = Arrays.asList(paramsReportDetailVO.getIds().split(",")); @@ -803,6 +901,80 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl queryForExportCustom(ParamsReportDetailVO paramsReportDetailVO) { + List idList = new ArrayList<>(); + if (StringUtils.isNotEmpty(paramsReportDetailVO.getIds())) { + idList = Arrays.asList(paramsReportDetailVO.getIds().split(",")); + } + List configIdList = Arrays.asList(paramsReportDetailVO.getConfigIds().split(",")); + List> dataList = paramsReportDetailEOMapper.listInfoForExport(idList, paramsReportDetailVO); + + List paramsConfigEOList = paramsReportConfigEOService.queryList(paramsReportDetailVO.getParamsManifestId()); // 查询所有配置列 + + List resultList = new ArrayList<>(); + Map resultMap = new HashMap<>(); + List fileListAll = new ArrayList<>(); + // 查询配置列数据 + for (Map record1 : dataList) { + + String paramsCollectManifestId = (String) record1.get("id"); + String nioNumber = (String) record1.get("nio_number"); + + if (CollectionUtil.isNotEmpty(paramsConfigEOList)) { + List fileList = new ArrayList<>(); + + // 合并配置数据 + String configData = ""; + List paramsReportConfigDataEOS = paramsReportConfigDataEOService.queryByConfigIdListAndCollectManifestId(configIdList, paramsCollectManifestId); + + String textDatas = paramsReportConfigDataEOS.stream().filter(e->StringUtils.isNotEmpty(e.getTextData())) + .map(ParamsReportConfigDataEO::getTextData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator())); + + String pullDatas = paramsReportConfigDataEOS.stream().filter(e->StringUtils.isNotEmpty(e.getPullData())) + .map(ParamsReportConfigDataEO::getPullData).distinct().collect(Collectors.joining(paramsReportDetailVO.getSeparator())); + + List fileNameList = new ArrayList<>(); + paramsReportConfigDataEOS.forEach(paramsReportConfigDataEO -> { + if (StringUtils.isNotEmpty(paramsReportConfigDataEO.getFileConnectId())) { + List ossFileList = ossFileService.getFileInfosByConnectId(paramsReportConfigDataEO.getFileConnectId()); + if (CollectionUtil.isNotEmpty(ossFileList)) { + fileNameList.add(ossFileList.get(0).getFileName()); + + fileList.addAll(ossFileList); + } + } + }); + + StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据 + if (StringUtils.isNotEmpty(textDatas)) { + configDataBuilder.append(textDatas).append("&"); + } + if (StringUtils.isNotEmpty(pullDatas)) { + configDataBuilder.append(pullDatas).append("&"); + } + if (CollectionUtil.isNotEmpty(fileNameList)) { + configDataBuilder.append(StringUtils.join(fileNameList, ",")).append("&"); + } + configData = configDataBuilder.toString(); + if (configData.contains("&")) { + configData = configData.substring(0, configData.lastIndexOf("&")); + } + resultMap.put(nioNumber, configData); + + + fileListAll.addAll(fileList); + + } + } + + Map fileMap = new HashMap<>(); + fileMap.put("fileListAll", fileListAll); + + resultList.add(resultMap); + resultList.add(fileMap); + return resultList; + } + /** * 获取导出文件的表头 * diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java index b53905e06..20b992308 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java @@ -3,13 +3,15 @@ package com.jero.modules.cert.report.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper; +import com.jero.modules.cert.collect.vo.ParamsManifestVO; import com.jero.modules.cert.report.entity.ParamsReportEO; import com.jero.modules.cert.report.mapper.ParamsReportEOMapper; import com.jero.modules.cert.report.service.IParamsReportEOService; -import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -25,6 +27,9 @@ public class ParamsReportEOServiceImpl extends ServiceImpl oldParamsManifestIdList) { + List updateEOList = new ArrayList<>(); + + List paramsManifestEOList = paramsManifestEOMapper.listInfoAll(oldParamsManifestIdList); + paramsManifestEOList.forEach(paramsManifestVO -> { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ParamsReportEO::getOldParamsManifestId, paramsManifestVO.getId()) + .eq(ParamsReportEO::getVersion, paramsManifestVO.getVersion()); + ParamsReportEO paramsReportEO = getOne(queryWrapper); + + ParamsReportEO updateEO = new ParamsReportEO(); + updateEO.setId(paramsReportEO.getId()); + updateEO.setTitle(paramsManifestVO.getTitle()); + updateEO.setProjectName(paramsManifestVO.getProjectName()); + + updateEOList.add(updateEO); + }); + + return updateBatchById(updateEOList); + } } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/util/Docx4jUtil.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/util/Docx4jUtil.java new file mode 100644 index 000000000..e034dc69b --- /dev/null +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/util/Docx4jUtil.java @@ -0,0 +1,481 @@ +package com.jero.modules.cert.report.util; + +import org.docx4j.XmlUtils; +import org.docx4j.dml.wordprocessingDrawing.Inline; +import org.docx4j.openpackaging.exceptions.Docx4JException; +import org.docx4j.openpackaging.packages.WordprocessingMLPackage; +import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; +import org.docx4j.wml.*; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Docx4jUtil { + public static Builder Builder; + + public static Builder of(String path) throws FileNotFoundException, Docx4JException { + return new Builder(path); + } + + public static class Builder { + private WordprocessingMLPackage template = null; + private Iterator texts = null; + + // 占位符参数map + private Map params = new HashMap<>(); + + private Builder(String path) throws FileNotFoundException, Docx4JException { + if (path != null && !path.isEmpty()) { + this.template = WordprocessingMLPackage.load(new FileInputStream(new File(path))); + this.texts = getAllPlaceholderElementFromObject(template.getMainDocumentPart()).iterator(); + } + } + + /** + * 增加文本占位符参数(一个) + * + * @param key 键 + * @param value 值 + * @return Builder对象 + */ + public Builder addParam(String key, String value) { + Builder builder = this; + if (key != null && !key.isEmpty()) { + /*while (texts.hasNext()) { + Text text = texts.next(); + String temp = text.getValue(); + if (temp.equals("${" + key + "}")) { + text.setValue(value); + texts.remove(); + return builder; + } + }*/ + params.put(key, value); + } + return builder; + } + + /** + * 增加参数(多个) + * + * @param params 多个参数的map + * @return Builder对象 + */ + public Builder addParams(Map params) { + this.params = params; + return this; + } + + /** + * 增加一个表格 + * + * @param tablePlaceholder 寻找表格的占位符 + * @param placeholderRows 模板行所占行数 + * @param list 替换模板占位符的数据 + * @return Builder对象 + * @throws JAXBException JAXBException + * @throws Docx4JException Docx4JException + */ + public Builder addTable(String tablePlaceholder, int placeholderRows, List> list) + throws Docx4JException, JAXBException { + List tables = getAllElementFromObject(template.getMainDocumentPart(), Tbl.class); + + Tbl tempTable = getTemplateTable(tables, tablePlaceholder); // + if (tempTable != null && list != null && !list.isEmpty()) { + List trs = getAllElementFromObject(tempTable, Tr.class); + int rows = trs.size(); + + if (rows > placeholderRows) { + List tempTrs = new ArrayList<>(); + for (int i = rows - placeholderRows; i < rows; i++) { + tempTrs.add((Tr) trs.get(i)); + } + + for (Map trData : list) { + for (Tr tempTr : tempTrs) { + addRowToTable(tempTable, tempTr, trData); + } + } + + for (Tr tempTr : tempTrs) { + tempTable.getContent().remove(tempTr); + } + } + } + return this; + + } + + private void loadImg(Tbl tempTable, byte[] decodeBuffer, int maxWidth) { + Inline inline = createInlineImage(template, decodeBuffer, maxWidth); + P paragraph = addInlineImageToParagraph(inline); + List rows = getAllElementFromObject(tempTable, Tr.class); + Tr tr = (Tr) rows.get(0); + List cells = getAllElementFromObject(tr, Tc.class); + Tc tc = (Tc) cells.get(0); + tc.getContent().clear(); + tc.getContent().add(paragraph); + } + + /** + * 通过占位符确定加载图片的位置,图片的位置为表格 + * + * @param placeholder 占位符 + * @param decodeBuffer 图片的字节流 + * @return 当前对象 + * @throws Docx4JException Docx4JException + * @throws JAXBException JAXBException + */ + public Builder addImg(String placeholder, byte[] decodeBuffer) throws Docx4JException, JAXBException { + addImg(placeholder, decodeBuffer, 0); + return this; + } + + /** + * 通过占位符确定加载图片的位置,图片的位置为表格 + * + * @param placeholder 占位符 + * @param decodeBuffer 图片的字节流 + * @param maxWidth 图片的最多宽度,不传默认写入图片原始宽度 + * @return 当前对象 + * @throws Docx4JException Docx4JException + * @throws JAXBException JAXBException + */ + public Builder addImg(String placeholder, byte[] decodeBuffer, int maxWidth) throws Docx4JException, JAXBException { + List tables = getAllElementFromObject(template.getMainDocumentPart(), Tbl.class); + Tbl tempTable = getTemplateTable(tables, placeholder); + loadImg(tempTable, decodeBuffer, maxWidth); + return this; + } + + /** + * 通过int的位置数组确定加载图片的位置,图片的位置为表格(以主界面为基准) + * + * @param wz int型数组,长度必须为3 ,第一个值为第几个表格,第二个值为第几行,第三个参数为第几个单元格 + * @param decodeBuffer 图片的字节流 + * @param maxWidth 图片的最多宽度,不传默认写入图片原始宽度 + * @return 当前对象 + */ + public Builder addImg(int[] wz, byte[] decodeBuffer, int maxWidth) { + Tc tc = getTcByWz(wz); + Tbl tempTable = (Tbl) getAllElementFromObject(tc, Tbl.class).get(0); + loadImg(tempTable, decodeBuffer, maxWidth); + return this; + } + + /** + * 通过int的位置数组确定加载图片的位置,图片的位置为表格(以主界面为基准) + * + * @param wz int型数组,长度必须为3 ,第一个值为第几个表格,第二个值为第几行,第三个参数为第几个单元格 + * @param decodeBuffer 图片的字节流 + * @return 当前对象 + */ + public Builder addImg(int[] wz, byte[] decodeBuffer) { + addImg(wz, decodeBuffer, 0); + return this; + } + + /** + * 添加段落 + * + * @param list 数据集合 + * @param wz 模板段落所在的位置,长度为三(第几个表格,第几行,第几个单元格) + * @return Builder对象 + */ + public Builder addParagrash(List> list, int[] wz) { + Tc tc = getTcByWz(wz); + List paraList = getAllElementFromObject(tc, P.class); + tc.getContent().clear(); + for (Map item : list) { + paraList.forEach((tempPara) -> { + P workingPara = (P) XmlUtils.deepCopy(tempPara); + repaleTexts(workingPara, item); + tc.getContent().add(workingPara); + }); + } + return this; + } + + /** + * 移除含有占位符的Tr + * @param placeholder 占位符 + * @return Builder对象 + */ + public Builder removeTrByPlaceholder(String placeholder) { + //这种方式获取是正常的,但是get()方法操作的时候不能正常替换文本了。 + //List trs = template.getMainDocumentPart().getJAXBNodesViaXPath("//w:tr", true); + List trs = getAllElementFromObject(template.getMainDocumentPart(), Tr.class); + Tr tr = (Tr) getTemplateObj(trs,placeholder,false); + if(tr != null){ + Tbl tbl = (Tbl) tr.getParent(); + tbl.getContent().remove(tr); + } + return this; + } + + /** + * 移除含有占位符的Tr + * @param placeholders 占位符的集合 + * @return Builder对象 + */ + public Builder removeTrByPlaceholder(List placeholders) { + /* List trs = template.getMainDocumentPart().getJAXBNodesViaXPath("//w:tr", true);*/ + List trs = getAllElementFromObject(template.getMainDocumentPart(), Tr.class); + List list = getTemplateObjs(trs,placeholders); + for (Object o:list) { + Tr tr = (Tr) o; + if(tr != null){ + Tbl tbl = (Tbl) tr.getParent(); + tbl.getContent().remove(tr); + } + } + return this; + } + + /** + * 获取文件字节流 + * + * @return 文件字节流 + * @throws Docx4JException docx异常 + */ + public byte[] get() throws Docx4JException { + if (!params.isEmpty()) { + while (texts.hasNext()) { + Text text = texts.next(); + String temp = text.getValue(); + for (Map.Entry param : params.entrySet()) { + if (temp.equals("${" + param.getKey() + "}")) { + text.setValue(param.getValue()); + } + } + } + } + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + template.save(outputStream); + return outputStream.toByteArray(); + } + + /** + * 获取指定单元格 + * + * @param temp 模板段落所在的位置,长度为三(第几个表格,第几行,第几个单元格) + * @return tc + */ + private Tc getTcByWz(int[] temp) { + List tables = getAllElementFromObject(template.getMainDocumentPart(), Tbl.class); + Tbl wzTable = (Tbl) tables.get(temp[0]); + Tr tr = (Tr) getAllElementFromObject(wzTable, Tr.class).get(temp[1]); + return (Tc) getAllElementFromObject(tr, Tc.class).get(temp[2]); + } + + } + + /** + * 创建包含图片的一个内联对象 + * + * @param wordMLPackage WordprocessingMLPackage + * @param bytes 图片字节流 + * @param maxWidth 最大宽度 + * @return 图片的内联对象 + */ + private static Inline createInlineImage(WordprocessingMLPackage wordMLPackage, byte[] bytes, int maxWidth) { + Inline inline = null; + try { + BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes); + int docPrId = 1; + int cNvPrId = 2; + if (maxWidth > 0) { + inline = imagePart.createImageInline("Filename hint", "Alternative text", docPrId, cNvPrId, false, maxWidth); + } else { + inline = imagePart.createImageInline("Filename hint", "Alternative text", docPrId, cNvPrId, false); + } + } catch (Exception e) { + e.printStackTrace(); + } + return inline; + } + + /** + * 创建一个对象工厂并用它创建一个段落和一个可运行块R. 然后将可运行块添加到段落中. 接下来创建一个图画并将其添加到可运行块R中. 最后我们将内联 + * 对象添加到图画中并返回段落对象. + * + * @param inline 包含图片的内联对象. + * @return 包含图片的段落 + */ + private static P addInlineImageToParagraph(Inline inline) { + // 添加内联对象到一个段落中 + ObjectFactory factory = new ObjectFactory(); + P paragraph = factory.createP(); + R run = factory.createR(); + paragraph.getContent().add(run); + Drawing drawing = factory.createDrawing(); + run.getContent().add(drawing); + drawing.getAnchorOrInline().add(inline); + return paragraph; + } + + // 发现docx文档包含占位符的文本节点 + private static List getAllPlaceholderElementFromObject(Object obj) { + List result = new ArrayList<>(); + Class toSearch = Text.class; + Text textPlaceholder; + if (obj instanceof JAXBElement) { + obj = ((JAXBElement) obj).getValue(); + } + if (obj.getClass().equals(toSearch)) { + textPlaceholder = (Text) obj; + if (isPlaceholder(textPlaceholder.getValue())) { + result.add((Text) obj); + } + } else if (obj instanceof ContentAccessor) { + List children = ((ContentAccessor) obj).getContent(); + for (Object child : children) { + result.addAll(getAllPlaceholderElementFromObject(child)); + } + } + return result; + } + + // 发现docx文档中的节点 + private static List getAllElementFromObject(Object obj, Class toSearch) { + List result = new ArrayList<>(); + if (obj instanceof JAXBElement) { + obj = ((JAXBElement) obj).getValue(); + } + if (obj.getClass().equals(toSearch)) { + result.add(obj); + } else if (obj instanceof ContentAccessor) { + List children = ((ContentAccessor) obj).getContent(); + for (Object child : children) { + result.addAll(getAllElementFromObject(child, toSearch)); + } + } + return result; + } + + // 这个方法只是查看表格是否含有我们的占位符,如果有则返回表格 + private static Tbl getTemplateTable(List tables, String templateKey) { + return (Tbl) getTemplateObj(tables,templateKey,false); + } + + /** + * 这个方法只是查看dom是否含有我们的占位符,如果有则返回dom + * + * @param objects 需要查找的dom元素 + * @param placeholder 占位符 + * @param f 是否全部查找,为ture时全部查找,返回的是list,为false时一找到元素就返回,只是单个元素 + * @return 找到的元素 + */ + private static Object getTemplateObj(List objects, String placeholder, boolean f) { + List objectList = new ArrayList<>(); + for (Object o : objects) { + List textElements = getAllElementFromObject(o, Text.class); + for (Object text : textElements) { + Text textElement = (Text) text; + if (textElement.getValue() != null && textElement.getValue().equals("${" + placeholder + "}")) { + if (!f) { + return o; + } else { + objectList.add(o); + } + } + } + } + return objectList.isEmpty()?null:objectList; + } + + /** + * 这个方法只是查看dom是否含有我们的占位符,如果有则返回dom + * @param objects 需要查找的dom元素的集合 + * @param placeholders 占位符集合 + * @return 找到的元素的集合 + */ + private static List getTemplateObjs(List objects, List placeholders) { + List objectList = new ArrayList<>(); + for (Object o : objects) { + List textElements = getAllElementFromObject(o, Text.class); + for (Object text : textElements) { + Text textElement = (Text) text; + if (textElement.getValue() != null && placeholders.contains(getPlaceholderStr(textElement.getValue()))) { + objectList.add(o); + } + } + } + return objectList; + } + + /** + * 复制模板行 + * + * @param reviewtable 表格 + * @param templateRow 模板行 + * @param replacements 填充模板行的数据 + */ + private static void addRowToTable(Tbl reviewtable, Tr templateRow, Map replacements) { + Tr workingRow = XmlUtils.deepCopy(templateRow); + repaleTexts(workingRow, replacements); + reviewtable.getContent().add(workingRow); + } + + /** + * 把工作对象中的全部占位符都替换掉 + * + * @param working 工作对象 + * @param replacements map数据对象 + */ + private static void repaleTexts(Object working, Map replacements) { + List textElements = getAllElementFromObject(working, Text.class); + for (Object object : textElements) { + Text text = (Text) object; + String keyStr = getPlaceholderStr(text.getValue()); + if (keyStr != null && !keyStr.isEmpty()) { + String replacementValue = replacements.get(keyStr); + if (replacementValue != null) { + text.setValue(replacementValue); + } else { + text.setValue("--"); + } + } + } + } + + /** + * 判断字符串是否有${}占位符 + * + * @param str 需要判断的字符串 + * @return 是否字符串是否有${}占位符 + */ + private static boolean isPlaceholder(String str) { + if (str != null && !str.isEmpty()) { + Pattern pattern = Pattern.compile("([$]\\{\\w+\\})"); + Matcher m = pattern.matcher(str); + return m.find(); + } + return false; + } + + /** + * 得到占位符${}中的文本 + * + * @param str 需要判断的字符串 + * @return 占位符${}中的文本 + */ + private static String getPlaceholderStr(String str) { + if (str != null && !str.isEmpty()) { + Pattern p = Pattern.compile("\\$\\{(.*?)\\}"); + Matcher m = p.matcher(str); + if (m.find()) { + return m.group(1);//m.group(0)包括这两个字符 + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/vo/ParamsReportDetailVO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/vo/ParamsReportDetailVO.java index 84ec1e32b..1ab8e7c79 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/vo/ParamsReportDetailVO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/vo/ParamsReportDetailVO.java @@ -1,13 +1,7 @@ package com.jero.modules.cert.report.vo; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.springframework.format.annotation.DateTimeFormat; @Data public class ParamsReportDetailVO { @@ -43,12 +37,19 @@ public class ParamsReportDetailVO { @ApiModelProperty(value = "对应参数模板发布版本") private Integer paramsTemplatePublishVersion; + // 导出通用 + private String cut; + private String exportName; private String ids; // 勾选导出 private String configIds; // 导出的配置列 + + // 常规导出专用 private String combineFlag; // 合并标识 1-不合并,2-合并 private String separator; // 分隔符 - private String cut; - private String exportName; + // 自定义导出专用 + private String exportTemplateId; //导出模板id + + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java index 7a690c725..ad9bf75f1 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java @@ -35,11 +35,9 @@ import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.aspectj.util.FileUtil; -import org.checkerframework.checker.units.qual.C; import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.enmus.ExcelType; @@ -516,14 +514,17 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl fileTemplateList = new ArrayList<>(); + Map fileNowPathMap = new HashMap<>(); for (ParamsInfoEO paramsInfoEO : paramsInfoEOList) { String fileTemplateConnectId = paramsInfoEO.getFileTemplateConnectId(); if (StringUtils.isNotBlank(fileTemplateConnectId)) { List ossFileList = ossFileService.getFileInfosByConnectId(fileTemplateConnectId); - List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); - paramsInfoEO.setFileTemplateName(StringUtils.join(fileNameList, ",")); + if (CollectionUtil.isNotEmpty(ossFileList)) { + paramsInfoEO.setFileTemplateName(paramsInfoEO.getNioNumber() + "/" + ossFileList.get(0).getFileName()); - fileTemplateList.addAll(ossFileList); + fileNowPathMap.put(ossFileList.get(0).getId(), fileNowPath + File.separator + paramsInfoEO.getNioNumber()); + fileTemplateList.add(ossFileList.get(0)); + } } } @@ -590,7 +591,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl fileTemplateList = new ArrayList<>(); + Map fileNowPathMap = new HashMap<>(); for (ParamsInfoEnExport paramsInfoEnExport : paramsInfoEnExportList) { String fileTemplateConnectId = paramsInfoEnExport.getFileTemplateConnectId(); if (StringUtils.isNotBlank(fileTemplateConnectId)) { List ossFileList = ossFileService.getFileInfosByConnectId(fileTemplateConnectId); - List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); - paramsInfoEnExport.setFileTemplateName(StringUtils.join(fileNameList, ",")); + if (CollectionUtil.isNotEmpty(ossFileList)) { + paramsInfoEnExport.setFileTemplateName(paramsInfoEnExport.getNioNumber() + "/" + ossFileList.get(0).getFileName()); - fileTemplateList.addAll(ossFileList); + fileNowPathMap.put(ossFileList.get(0).getId(), fileNowPath + File.separator + paramsInfoEnExport.getNioNumber()); + fileTemplateList.add(ossFileList.get(0)); + } } } @@ -677,14 +681,21 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl fileTemplateList,String fileNowPath) { + private void downLoadFileList(List fileTemplateList,Map fileNowPathMap) { for(OSSFile fileExportDto : fileTemplateList){ + String fileNowPath = fileNowPathMap.get(fileExportDto.getId()); + File nowFile = new File(fileNowPath); + if (nowFile.exists()){ + nowFile.delete(); + } + nowFile.mkdirs(); + String oldPath = fileExportDto.getUrl(); String newPath = fileNowPath + File.separator + fileExportDto.getFileName(); if (CosBootUtil.doesObjectExist(oldPath)){ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java index f74919082..35461f2e7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java @@ -2,11 +2,13 @@ package com.jero.modules.lawsOpinionGather.entity; import java.io.Serializable; import java.util.Date; +import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.jero.modules.oss.entity.OSSFile; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -111,4 +113,10 @@ public class LawsOpinionGatherEO implements Serializable { @ApiModelProperty(value = "流程编号") private String prcNum; + @ApiModelProperty(value = "对外意见归档文件id") + private String opinionArchiveId; + + /**对外意见归档文件数组**/ + @TableField(exist = false) + private List opinionArchiveFileList; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java index 241da71dc..ef6aa374f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java @@ -8,6 +8,8 @@ import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO; import com.jero.modules.lawsOpinionGather.enums.GatherResultEnum; import com.jero.modules.lawsOpinionGather.mapper.LawsOpinionGatherEOMapper; import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.project.enums.OperatorTypeEnum; import com.jero.modules.project.enums.RequestSourceEnum; import com.jero.modules.system.entity.SysCategory; @@ -33,6 +35,8 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl opinionArchiveFileList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(lawsOpinionGather.getOpinionArchiveId(), ",")); + lawsOpinionGather.setOpinionArchiveFileList(opinionArchiveFileList); + } }); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java new file mode 100644 index 000000000..2c8380afc --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java @@ -0,0 +1,170 @@ +package com.jero.modules.lawsTechnologyEvaluation.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; +import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: 法规技术评估 + * @Author: jero-boot + * @Date: 2022-07-07 + * @Version: V1.0 + */ +@Api(tags="法规技术评估") +@RestController +@RequestMapping("/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO") +@Slf4j +public class LawsTechnologyEvaluationEOController extends JeroController { + @Autowired + private ILawsTechnologyEvaluationEOService lawsTechnologyEvaluationEOService; + + /** + * 分页列表查询 + * + * @param lawsTechnologyEvaluationEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "法规技术评估-分页列表查询") + @ApiOperation(value="法规技术评估-分页列表查询", notes="法规技术评估-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsTechnologyEvaluationEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = lawsTechnologyEvaluationEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "法规技术评估-列表查询") + @ApiOperation(value="法规技术评估-列表查询", notes="法规技术评估-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = lawsTechnologyEvaluationEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param lawsTechnologyEvaluationEO + * @return + */ + @AutoLog(value = "法规技术评估-添加") + @ApiOperation(value="法规技术评估-添加", notes="法规技术评估-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO) { + lawsTechnologyEvaluationEOService.add(lawsTechnologyEvaluationEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param lawsTechnologyEvaluationEO + * @return + */ + @AutoLog(value = "法规技术评估-编辑") + @ApiOperation(value="法规技术评估-编辑", notes="法规技术评估-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO) { + lawsTechnologyEvaluationEOService.editById(lawsTechnologyEvaluationEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "法规技术评估-通过id删除") + @ApiOperation(value="法规技术评估-通过id删除", notes="法规技术评估-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + lawsTechnologyEvaluationEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "法规技术评估-批量删除") + @ApiOperation(value="法规技术评估-批量删除", notes="法规技术评估-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.lawsTechnologyEvaluationEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "法规技术评估-通过id查询") + @ApiOperation(value="法规技术评估-通过id查询", notes="法规技术评估-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO = lawsTechnologyEvaluationEOService.queryById(id); + if(lawsTechnologyEvaluationEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(lawsTechnologyEvaluationEO); + } + + /** + * 导出excel + * + * @param request + * @param lawsTechnologyEvaluationEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO) { + return super.exportXls(request, lawsTechnologyEvaluationEO, LawsTechnologyEvaluationEO.class, "法规技术评估"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, LawsTechnologyEvaluationEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/entity/LawsTechnologyEvaluationEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/entity/LawsTechnologyEvaluationEO.java new file mode 100644 index 000000000..bb3718991 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/entity/LawsTechnologyEvaluationEO.java @@ -0,0 +1,145 @@ +package com.jero.modules.lawsTechnologyEvaluation.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 法规技术评估 + * @Author: jero-boot + * @Date: 2022-07-07 + * @Version: V1.0 + */ +@Data +@TableName("laws_technology_evaluation") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="laws_technology_evaluation对象", description="法规技术评估") +public class LawsTechnologyEvaluationEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + + /**标准id*/ + @Excel(name = "标准id", width = 15) + @ApiModelProperty(value = "标准id") + private String standId; + + /**编号*/ + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") + private String serialNumber; + + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private String title; + + /**技术领域*/ + @Excel(name = "技术领域", width = 15) + @ApiModelProperty(value = "技术领域") + private String technologyTerritory; + + /**评估方式*/ + @Excel(name = "评估方式", width = 15) + @ApiModelProperty(value = "评估方式") + private String evaluationMethods; + + /**流程状态*/ + @Excel(name = "流程状态", width = 15) + @ApiModelProperty(value = "流程状态") + private String flowStatus; + + /**发起日期*/ + @Excel(name = "发起日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "发起日期") + private Date startTime; + + /**截止日期*/ + @Excel(name = "截止日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "截止日期") + private Date endTime; + + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private String remark; + + /**流程实例id*/ + @Excel(name = "流程实例id", width = 15) + @ApiModelProperty(value = "流程实例id") + private String actiProcInstId; + + /**相关资料id*/ + @Excel(name = "相关资料id", width = 15) + @ApiModelProperty(value = "相关资料id") + private String relatedDataFileId; + + /**流程背景*/ + @Excel(name = "流程背景", width = 15) + @ApiModelProperty(value = "流程背景") + private String processBackground; + + /**法规工程师id*/ + @Excel(name = "法规工程师id", width = 15) + @ApiModelProperty(value = "法规工程师id") + private String regulationOwnerId; + + /**评估类型(类型有:反馈评估、条款评估)*/ + @Excel(name = "评估类型(类型有:反馈评估、条款评估)", width = 15) + @ApiModelProperty(value = "评估类型(类型有:反馈评估、条款评估)") + private String evaluationType; + + /**流程编号*/ + @Excel(name = "流程编号", width = 15) + @ApiModelProperty(value = "流程编号") + private String prcNum; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/mapper/LawsTechnologyEvaluationEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/mapper/LawsTechnologyEvaluationEOMapper.java new file mode 100644 index 000000000..10db029c8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/mapper/LawsTechnologyEvaluationEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.lawsTechnologyEvaluation.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 法规技术评估 + * @Author: jero-boot + * @Date: 2022-07-07 + * @Version: V1.0 + */ +public interface LawsTechnologyEvaluationEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/mapper/xml/LawsTechnologyEvaluationEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/mapper/xml/LawsTechnologyEvaluationEOMapper.xml new file mode 100644 index 000000000..958b612c5 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/mapper/xml/LawsTechnologyEvaluationEOMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java new file mode 100644 index 000000000..65a302e4c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java @@ -0,0 +1,61 @@ +package com.jero.modules.lawsTechnologyEvaluation.service; + +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 法规技术评估 + * @Author: jero-boot + * @Date: 2022-07-07 + * @Version: V1.0 + */ +public interface ILawsTechnologyEvaluationEOService extends IService { + + /** + * 保存 + * + * @param lawsTechnologyEvaluationEO + * @return + */ + void add(LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO); + + /** + * 更新 + * + * @param lawsTechnologyEvaluationEO + * @return + */ + void editById(LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + LawsTechnologyEvaluationEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java new file mode 100644 index 000000000..5d7100f1d --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java @@ -0,0 +1,89 @@ +package com.jero.modules.lawsTechnologyEvaluation.service.impl; + +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; +import com.jero.modules.lawsTechnologyEvaluation.mapper.LawsTechnologyEvaluationEOMapper; +import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 法规技术评估 + * @Author: jero-boot + * @Date: 2022-07-07 + * @Version: V1.0 + */ +@Service +public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl implements ILawsTechnologyEvaluationEOService { + + /** + * 保存 + * + * @param lawsTechnologyEvaluationEO + * @return + */ + @Override + public void add(LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO) { + Date now = new Date(); + lawsTechnologyEvaluationEO.setCreateTime(now); + lawsTechnologyEvaluationEO.setUpdateTime(now); + save(lawsTechnologyEvaluationEO); + } + + /** + * 更新 + * + * @param lawsTechnologyEvaluationEO + * @return + */ + @Override + public void editById(LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO) { + Date now = new Date(); + lawsTechnologyEvaluationEO.setUpdateTime(now); + saveOrUpdate(lawsTechnologyEvaluationEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public LawsTechnologyEvaluationEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java index aef3b081d..8c873e5d6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -22,6 +23,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -172,4 +174,14 @@ public class LawsMonthlyReportWriteEOController extends JeroController exportMonthlyReport(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) throws IOException { + return lawsMonthlyReportWriteEOService.exportMonthlyReport(lawsMonthlyReportWriteEO); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportWriteEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportWriteEO.java index 16af6ede5..d5244a469 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportWriteEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportWriteEO.java @@ -187,4 +187,8 @@ public class LawsMonthlyReportWriteEO implements Serializable { @TableField(exist = false) private String cut; + //导出 + @TableField(exist = false) + private String ids; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java index 82c461d68..503feabb0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java @@ -3,6 +3,7 @@ package com.jero.modules.report.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.report.entity.LawsMonthlyReportWriteEO; +import org.springframework.http.ResponseEntity; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -74,4 +75,6 @@ public interface ILawsMonthlyReportWriteEOService extends IService exportMonthlyReport(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java index 8906e352a..60deb8c14 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java @@ -18,13 +18,21 @@ import com.jero.modules.report.service.ILawsMonthlyReportTitleTemplateEOService; import com.jero.modules.report.service.ILawsMonthlyReportWriteEOService; import com.jero.modules.report.service.INewOpinionTemplateEOService; import com.jero.modules.report.service.INewStandardTemplateEOService; +import com.jero.modules.report.util.WordUtil; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.util.StringUtils; +import org.apache.poi.xwpf.usermodel.ParagraphAlignment; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -48,6 +56,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl exportMonthlyReport(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) { + ResponseEntity result = null; + //获取数据 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getMonth())){ + wrapper.eq(LawsMonthlyReportWriteEO::getMonth,lawsMonthlyReportWriteEO.getMonth()); + } + if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getIds())){ + wrapper.in(LawsMonthlyReportWriteEO::getId,StringUtils.join(lawsMonthlyReportWriteEO.getIds(),"")); + } + List lawsMonthlyReportWriteEOS = this.list(wrapper); + //月报填写列表所有的章节目录 + List memoriesChapterList = lawsMonthlyReportWriteEOS.stream() + .map(LawsMonthlyReportWriteEO::getMemoriesChapter).distinct().collect(Collectors.toList()); + + //所有的章节目录 + List lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOService.list(); + lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOS.stream() + .filter(e -> memoriesChapterList.contains(e.getId())).collect(Collectors.toList()); + + String path = uploadpath + "/tempZip"; + File fileTemp = new File(path); + if (fileTemp.exists()) { + fileTemp.delete(); + } + fileTemp.mkdirs(); + createWord(path,lawsMonthlyReportWriteEOS,lawsMonthlyReportTitleTemplateEOS); + + + + + return null; + } + + /** + * + * @param path + * @param lawsMonthlyReportWriteEOS 列表数据 + * @param lawsMonthlyReportTitleTemplateEOS 章节目录 + */ + private void createWord(String path, + List lawsMonthlyReportWriteEOS, + List lawsMonthlyReportTitleTemplateEOS){ + //蔚来汽车法规月报-202004-主页面-CN + //NIO Monthly Report on Automobile Regulations-202004-Main Page-EN + String memoriesChapterCN = path + File.separator +"蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"主页面-CN.docx"; + String memoriesChapterEN = path + File.separator +"NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-Main Page-EN.docx"; + + File wordFile = new File(memoriesChapterCN); + if(!wordFile.exists()){ + try { + wordFile.getParentFile().mkdirs(); + wordFile.createNewFile(); + } catch (IOException e) { + log.error("文件《"+memoriesChapterCN+"》创建失败"); + } + } + + try (XWPFDocument document = new XWPFDocument(); + FileOutputStream out = new FileOutputStream(wordFile)) { + WordUtil.exportWord(document, memoriesChapterCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI"); + + + + } catch (IOException e) { + log.error("文件创建异常,异常信息为:" + e.getMessage()); + } + + + + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java new file mode 100644 index 000000000..607d5da73 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java @@ -0,0 +1,87 @@ +package com.jero.modules.report.util; + +import cn.hutool.core.util.ObjectUtil; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.xwpf.usermodel.ParagraphAlignment; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.apache.poi.xwpf.usermodel.XWPFRun; + +public class WordUtil { + /** + * 导出工具示例 + * + * @param document POI文件类 + * @param text 输出文本 + * @param textColor 字体颜色 + * @param align 字体位置,默认居左 + * @param spaceNum 预留空格数,默认不留空格 + * @param fontSize 字体大小,默认11 + * @param isNewline 是否换行,换行后文本失效 + * @param isBold 是否加粗,默认不加粗 + * @param fontFamily 字体,默认宋体 + */ + public static void exportWord(XWPFDocument document, + String text, + String textColor, + ParagraphAlignment align, + Integer spaceNum, + Integer fontSize, + Boolean isNewline, + Boolean isBold, + String fontFamily) { + + document.createParagraph(); + + //添加标题 + XWPFParagraph titleParagraph = document.createParagraph(); + //设置段落左对齐 + if (align == null) { + titleParagraph.setAlignment(ParagraphAlignment.LEFT); + } else { + titleParagraph.setAlignment(align); + } + + XWPFRun titleParagraphRun = titleParagraph.createRun(); + if (isNewline) { + titleParagraphRun.setText("\r"); + } else { + //封装文字内容 + StringBuilder newText = new StringBuilder(); + for (int i = 0; i < spaceNum; i++) { + newText.append(" "); + } + newText.append(text); + titleParagraphRun.setText(newText.toString()); + + //设置颜色 + if (StringUtils.isNotEmpty(textColor)) { + titleParagraphRun.setColor(textColor); + } else { + titleParagraphRun.setColor("000000"); + } + //设置文字大小 + if (ObjectUtil.isNotEmpty(fontSize)) { + titleParagraphRun.setFontSize(fontSize); + } else { + titleParagraphRun.setFontSize(11); + } + + //设置加粗 + if (ObjectUtil.isNotEmpty(isBold)) { + titleParagraphRun.setBold(isBold); + } else { + titleParagraphRun.setBold(false); + } + + //设置字体样式 + if (StringUtils.isNotEmpty(fontFamily)) { + titleParagraphRun.setFontFamily(fontFamily); + } else { + titleParagraphRun.setFontFamily("宋体"); + } + + } + } +} + diff --git a/jero-web/src/components/PersonnelSelection/index.vue b/jero-web/src/components/PersonnelSelection/index.vue index efb9283b6..59a15eb92 100644 --- a/jero-web/src/components/PersonnelSelection/index.vue +++ b/jero-web/src/components/PersonnelSelection/index.vue @@ -5,7 +5,7 @@ :disabled="true" :title="value" :placeholder="$t('PleaseSelect')+query.db_field_txt"/> - + {{this.$t('PersonnelSelection')}} @@ -58,7 +58,7 @@ export default { name: 'index', - props: ['query', 'value', 'personneQuery', 'isSingleChoice', 'isInput', 'isClass', 'isDelete'], + props: ['query', 'value', 'personneQuery', 'isSingleChoice', 'isInput', 'isClass', 'isDelete', 'disabled'], data() { return { loading: true, diff --git a/jero-web/src/components/searchalonesplit/index.vue b/jero-web/src/components/searchalonesplit/index.vue index 77bfd3a66..2ff331f7d 100644 --- a/jero-web/src/components/searchalonesplit/index.vue +++ b/jero-web/src/components/searchalonesplit/index.vue @@ -23,14 +23,14 @@
{{item.db_field_txt}}
-
{{item.db_field_txt}}
-
@@ -90,14 +90,14 @@
{{item.db_field_txt}}
-
{{item.db_field_txt}}
-
diff --git a/jero-web/src/components/tableCollection/index1.vue b/jero-web/src/components/tableCollection/index1.vue new file mode 100644 index 000000000..0dc4b2e8e --- /dev/null +++ b/jero-web/src/components/tableCollection/index1.vue @@ -0,0 +1,754 @@ + + + + + + diff --git a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue index eb55411df..fb1d93dfa 100644 --- a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue +++ b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue @@ -24,33 +24,69 @@ :data-source="dataSource" :columns="columns" > + + + {{$t('viewFile')}} + + -- + +
+ +
- 对外意见归档: + 对外意见归档: +
+ + {{$t('clickUpload')}} +
+
+ + {{$t('viewFile')}} +
{{$t('cancel')}}
- + +
+ \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue index 80632e53a..cdd5dd3a4 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue @@ -9,7 +9,7 @@ @@ -23,7 +23,7 @@ @@ -42,6 +42,7 @@ tree-node-filter-prop="title" v-model="formInline.technologyTerritory" :maxTagCount="1" + :disabled="disabled" :getPopupContainer="triggerNode=> triggerNode.parentNode" class="box-input" style="width: 100%" @@ -62,6 +63,7 @@ @@ -78,6 +80,7 @@ @@ -91,6 +94,7 @@ @@ -110,6 +114,7 @@ @input="handleInput('usage')" :placeholder="$t('PleaseSelect')+$t('usage')" :type="'select'" + :disabled="disabled" :triggerChange="false" :dictCode="'yong4_fa3'"/> @@ -183,6 +188,7 @@ @@ -197,6 +203,7 @@ @@ -211,6 +218,7 @@ @@ -225,6 +233,7 @@ @@ -239,10 +248,11 @@ + v-model="formInline.lawsContact"/> @@ -255,7 +265,7 @@ @@ -272,7 +282,7 @@ export default { name: 'defaultTemplate', - props: ['formInlineQuery'], + props: ['formInlineQuery', 'disabled'], components: { PersonnelSelection }, @@ -358,8 +368,7 @@ ] }, formInline: {}, - CategoryTreeList: [], - disabled: false + CategoryTreeList: [] } }, mounted() { @@ -367,20 +376,24 @@ this.$nextTick(() => { if (this.formInlineQuery.id) { this.formInline = JSON.parse(JSON.stringify(this.formInlineQuery)) - if(this.formInline.technologyTerritory){ + if (this.formInline.technologyTerritory) { this.formInline.technologyTerritory = this.formInline.technologyTerritory.split(',') } this.formInline = { ...this.formInline } } else { this.formInline = {} - this.formInline.lawsContactName = this.userInfo().username - this.formInline.lawsContact = this.userInfo().id + this.formInline.lawsContact = this.userInfo().username + this.formInline.lawsContactName = this.userInfo().id this.formInline = { ...this.formInline } } }) }, methods: { ...mapGetters(['userInfo']), + getStandData(value) { + this.formInline.titleCn = value.serial_number + ' ' + value.title + this.formInline.titleEn = value.serial_number + ' ' + value.title_en + }, getSysCategoryTree() { getAction('/sys/category/getSysCategoryTree', {}).then((res) => { if (res.success) { diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue index 2258f7fb4..22f173f08 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue @@ -15,12 +15,14 @@
- * + * {{$t('fillInTheMonth')}}
- + @@ -28,7 +30,9 @@
- {{$t('bringInStandardInformation')}} + {{$t('bringInStandardInformation')}} +
@@ -36,15 +40,16 @@
- * + * {{$t('chapterContents')}}
- +
- * + * {{$t('contentTemplate')}}
- + - - - + + +
{{$t('cancel')}} - {{$t('submit')}} + {{$t('submit')}} +
+
@@ -101,14 +108,17 @@ import defaultTemplate from './defaultTemplate' import solicitOpinions from './solicitOpinions' import releaseStandard from './releaseStandard' + import addModel from './addModel' import { getAction, postAction, downloadFile } from '@/api/manage' + import moment from 'moment' export default { name: 'fillAdd', components: { defaultTemplate, solicitOpinions, - releaseStandard + releaseStandard, + addModel }, data() { return { @@ -140,7 +150,9 @@ confirmLoading: false, title: '', disabled: false, + isTrue: false, chapterContentsList: [], + templateDisabled: false, contentTemplateList: [ { id: '1', @@ -165,6 +177,12 @@ mounted() { }, methods: { + bringInStandardInformationClick() { + this.$refs.addModelRef.addModel() + }, + addModelForm(value) { + this.$refs.defaultTemplateRef.getStandData(value) + }, getTree() { getAction('/report/lawsMonthlyReportTitleTemplateEO/list', {}).then((res) => { if (res.success) { @@ -174,37 +192,53 @@ } }) }, + dateChange(item) { + this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM') : '' + this.formInline = { ...this.formInline } + }, add() { + this.isTrue = false + this.templateDisabled = false this.getTree() this.title = this.$t('addContent') this.visible = true this.disabled = false + this.formInline = {} this.$nextTick(() => { - this.formInline = {} this.formInline.contentTemplate = '1' this.formInline = { ...this.formInline } + this.isTrue = true this.$refs.ruleForm.clearValidate() }) }, edit(row) { this.getTree() + this.isTrue = false this.title = this.$t('editContent') this.visible = true this.disabled = false + this.templateDisabled = true this.$nextTick(() => { this.formInline = row if (this.formInline.memoriesChapter) { this.formInline.memoriesChapter = this.formInline.memoriesChapter.split(',') } + this.isTrue = true this.$refs.ruleForm.clearValidate() }) }, view(row) { this.title = this.$t('viewContent') this.visible = true + this.isTrue = false + this.templateDisabled = true this.disabled = true this.$nextTick(() => { this.formInline = row + if (this.formInline.memoriesChapter) { + this.formInline.memoriesChapter = this.formInline.memoriesChapter.split(',') + } + this.isTrue = true this.$refs.ruleForm.clearValidate() }) }, @@ -237,17 +271,16 @@ } }) let query = Object.assign(val, { - month: JSON.stringify(formInline.month), + month: formInline.month, memoriesChapter: formInline.memoriesChapter, contentTemplate: formInline.contentTemplate }) - postAction(url, query).then((res) => { if (res.success) { this.$message.success(this.$t('OperationSuccessful')) this.visible = false this.confirmLoading = false - this.$emit('fillTableAddForm') + this.$emit('fillAddForm') } else { this.confirmLoading = false this.$message.warning(this.$t('operationFailed')) @@ -260,7 +293,15 @@ } } + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue b/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue index 3a0c09d0e..d2cc97db2 100644 --- a/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue +++ b/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue @@ -155,14 +155,14 @@ title: this.$t('collectionCompletionTime'), align: 'center', dataIndex: 'finishTime', - width: 160, + width: 180, ellipsis: true, scopedSlots: { customRender: 'collectionCompletionTime' } }, { title: this.$t('Version'), align: 'center', - width: 50, + width: 80, ellipsis: true, dataIndex: 'version' },