diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 0eba2a62..900a6dc9 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -394,4 +394,141 @@ ALTER TABLE sys_depart_permission MODIFY COLUMN `depart_id` varchar(64) NULL COM ALTER TABLE sys_user_agent MODIFY COLUMN `sys_org_code` varchar(64) NULL COMMENT '所属部门'; -- 2024-09-14 IAM同步的时候 用户管理-人员类型修改长度为 64 -ALTER TABLE sys_user MODIFY COLUMN `type_id` varchar(64) NULL COMMENT '人员类型,000正式员工、002外部用户、001劳务工等'; \ No newline at end of file +ALTER TABLE sys_user MODIFY COLUMN `type_id` varchar(64) NULL COMMENT '人员类型,000正式员工、002外部用户、001劳务工等'; +-- 2024-09-18 增加法规符合性评估库适用市场字段长度 +ALTER TABLE `laws_conformity_assessment_library` + MODIFY COLUMN `applicable_market` varchar(200) NULL DEFAULT NULL COMMENT '适用市场' AFTER `valuation_time`; + +-- 2024-09-19 市场法规清单-标准添加排序号字段 +ALTER TABLE `laws_market_standard_detail` + ADD COLUMN `order_no` float NULL COMMENT '排序号'; + +-- 2024-09-20 标准解读添加索引 +CREATE INDEX psi_idx_master_interpret_id ON process_standard_interpret(`master_interpret_id`); +CREATE INDEX psi_idx_parent_id ON process_standard_interpret(`parent_id`); +CREATE INDEX psi_idx_standard_id ON process_standard_interpret(`standard_id`); +CREATE INDEX psi_idx_split_info_id ON process_standard_interpret(`split_info_id`); +CREATE INDEX psi_idx_choose_clause ON process_standard_interpret(`choose_clause`); +CREATE INDEX psi_idx_project_id ON process_standard_interpret(`project_id`); +CREATE INDEX psi_idx_decomposition_source ON process_standard_interpret(`decomposition_source`); +CREATE INDEX psi_idx_distribute ON process_standard_interpret(`distribute`); + +CREATE INDEX psic_idx_standard_interpret_id ON process_standard_interpret_clause(`standard_interpret_id`); +CREATE INDEX psic_idx_clause_id ON process_standard_interpret_clause(`clause_id`); +CREATE INDEX psic_idx_interpret_person_ids ON process_standard_interpret_clause(`interpret_person_ids`); +CREATE INDEX psic_idx_decomposition_source ON process_standard_interpret_clause(`decomposition_source`); +CREATE INDEX psic_idx_is_reject ON process_standard_interpret_clause(`is_reject`); +CREATE INDEX psic_idx_is_distribute ON process_standard_interpret_clause(`is_distribute`); + +CREATE INDEX psics_idx_standard_interpret_clause_id ON process_standard_interpret_clause_sublist(`standard_interpret_clause_id`); +CREATE INDEX psics_idx_clause_id ON process_standard_interpret_clause_sublist(`clause_id`); +CREATE INDEX psics_idx_snow_flake ON process_standard_interpret_clause_sublist(`snow_flake`); + +CREATE INDEX sfsi_idx_sys_org_code ON sar_file_split_info(`sys_org_code`); +CREATE INDEX sfsi_idx_serial_number ON sar_file_split_info(`serial_number`); +CREATE INDEX sfsi_idx_title ON sar_file_split_info(`title`); +CREATE INDEX sfsi_idx_file_type ON sar_file_split_info(`file_type`); +CREATE INDEX sfsi_idx_file_name ON sar_file_split_info(`file_name`); +CREATE INDEX sfsi_idx_split_result ON sar_file_split_info(`split_result`); +CREATE INDEX sfsi_idx_connect_id ON sar_file_split_info(`connect_id`); +CREATE INDEX sfsi_idx_title_en ON sar_file_split_info(`title_en`); +CREATE INDEX sfsi_idx_author ON sar_file_split_info(`author`); +CREATE INDEX sfsi_idx_split_status ON sar_file_split_info(`split_status`); +CREATE INDEX sfsi_idx_standard_id ON sar_file_split_info(`standard_id`); +CREATE INDEX sfsi_idx_publish_before_id ON sar_file_split_info(`publish_before_id`); +CREATE INDEX sfsi_idx_is_asms_import ON sar_file_split_info(`is_asms_import`); + +CREATE INDEX sfsiv_idx_sys_org_code ON sar_file_split_items_val(`sys_org_code`); +CREATE INDEX sfsiv_idx_item_id ON sar_file_split_items_val(`item_id`); +CREATE INDEX sfsiv_idx_type ON sar_file_split_items_val(`type`); +CREATE INDEX sfsiv_idx_display_seq ON sar_file_split_items_val(`display_seq`); +CREATE INDEX sfsiv_idx_valid_flag ON sar_file_split_items_val(`valid_flag`); +CREATE INDEX sfsiv_idx_img_name ON sar_file_split_items_val(`img_name`); +CREATE INDEX sfsiv_idx_index_item ON sar_file_split_items_val(`index_item`); +CREATE INDEX sfsiv_idx_creation_time ON sar_file_split_items_val(`creation_time`); +CREATE INDEX sfsiv_idx_modify_user ON sar_file_split_items_val(`modify_user`); +CREATE INDEX sfsiv_idx_modify_time ON sar_file_split_items_val(`modify_time`); +CREATE INDEX sfsiv_idx_creation_user ON sar_file_split_items_val(`creation_user`); + +CREATE INDEX sfsmenu_idx_sys_org_code ON sar_file_split_menu(`sys_org_code`); +CREATE INDEX sfsmenu_idx_info_id ON sar_file_split_menu(`info_id`); +CREATE INDEX sfsmenu_idx_name ON sar_file_split_menu(`name`); +CREATE INDEX sfsmenu_idx_parent_id ON sar_file_split_menu(`parent_id`); +CREATE INDEX sfsmenu_idx_display_seq ON sar_file_split_menu(`display_seq`); +CREATE INDEX sfsmenu_idx_valid_flag ON sar_file_split_menu(`valid_flag`); +CREATE INDEX sfsmenu_idx_remarks ON sar_file_split_menu(`remarks`); +CREATE INDEX sfsmenu_idx_item_name ON sar_file_split_menu(`item_name`); +CREATE INDEX sfsmenu_idx_creation_user ON sar_file_split_menu(`creation_user`); +CREATE INDEX sfsmenu_idx_creation_time ON sar_file_split_menu(`creation_time`); +CREATE INDEX sfsmenu_idx_modify_user ON sar_file_split_menu(`modify_user`); +CREATE INDEX sfsmenu_idx_modify_time ON sar_file_split_menu(`modify_time`); + +CREATE INDEX lds_idx_is_long_effect ON laws_document_split(`is_long_effect`); +CREATE INDEX lds_idx_file_type ON laws_document_split(`file_type`); + +CREATE INDEX sfcinfo_idx_sys_org_code ON sar_file_compare_info(`sys_org_code`); +CREATE INDEX sfcinfo_idx_file_id_left ON sar_file_compare_info(`file_id_left`); +CREATE INDEX sfcinfo_idx_file_key_left ON sar_file_compare_info(`file_key_left`); +CREATE INDEX sfcinfo_idx_serial_number_left ON sar_file_compare_info(`serial_number_left`); +CREATE INDEX sfcinfo_idx_title_left ON sar_file_compare_info(`title_left`); +CREATE INDEX sfcinfo_idx_file_type_left ON sar_file_compare_info(`file_type_left`); +CREATE INDEX sfcinfo_idx_file_name_left ON sar_file_compare_info(`file_name_left`); +CREATE INDEX sfcinfo_idx_file_id_right ON sar_file_compare_info(`file_id_right`); +CREATE INDEX sfcinfo_idx_file_key_right ON sar_file_compare_info(`file_key_right`); +CREATE INDEX sfcinfo_idx_serial_number_right ON sar_file_compare_info(`serial_number_right`); +CREATE INDEX sfcinfo_idx_title_right ON sar_file_compare_info(`title_right`); +CREATE INDEX sfcinfo_idx_file_type_right ON sar_file_compare_info(`file_type_right`); +CREATE INDEX sfcinfo_idx_file_name_right ON sar_file_compare_info(`file_name_right`); +CREATE INDEX sfcinfo_idx_release_state ON sar_file_compare_info(`release_state`); + +CREATE INDEX sfcitem_idx_info_id ON sar_file_compare_item(`info_id`); +CREATE INDEX sfcitem_idx_menu_id ON sar_file_compare_item(`menu_id`); +CREATE INDEX sfcitem_idx_items_name ON sar_file_compare_item(`items_name`); +CREATE INDEX sfcitem_idx_items_num ON sar_file_compare_item(`items_num`); +CREATE INDEX sfcitem_idx_items_display_num ON sar_file_compare_item(`items_display_num`); +CREATE INDEX sfcitem_idx_target_stand ON sar_file_compare_item(`target_stand`); +CREATE INDEX sfcitem_idx_left_or_right ON sar_file_compare_item(`left_or_right`); +CREATE INDEX sfcitem_idx_reviewed ON sar_file_compare_item(`reviewed`); + +CREATE INDEX sfcitemc_idx_sys_org_code ON sar_file_compare_item_comment(`sys_org_code`); +CREATE INDEX sfcitemc_idx_info_id ON sar_file_compare_item_comment(`info_id`); +CREATE INDEX sfcitemc_idx_items_id_left ON sar_file_compare_item_comment(`items_id_left`); +CREATE INDEX sfcitemc_idx_items_id_right ON sar_file_compare_item_comment(`items_id_right`); + +CREATE INDEX sfcmenu_idx_sys_org_code ON sar_file_compare_menu(`sys_org_code`); +CREATE INDEX sfcmenu_idx_menu_id ON sar_file_compare_menu(`menu_id`); +CREATE INDEX sfcmenu_idx_info_id ON sar_file_compare_menu(`info_id`); +CREATE INDEX sfcmenu_idx_name ON sar_file_compare_menu(`name`); +CREATE INDEX sfcmenu_idx_parent_id ON sar_file_compare_menu(`parent_id`); +CREATE INDEX sfcmenu_idx_display_seq ON sar_file_compare_menu(`display_seq`); +CREATE INDEX sfcmenu_idx_left_or_right ON sar_file_compare_menu(`left_or_right`); +CREATE INDEX sfcmenu_idx_item_name ON sar_file_compare_menu(`item_name`); + +CREATE INDEX sfcrc_idx_sys_org_code ON sar_file_compare_res_comment(`sys_org_code`); +CREATE INDEX sfcrc_idx_info_id ON sar_file_compare_res_comment(`info_id`); +CREATE INDEX sfcrc_idx_parent_id ON sar_file_compare_res_comment(`parent_id`); + +CREATE INDEX par_idx_task_id ON process_approval_record(`task_id`); +CREATE INDEX par_idx_parent_task_id ON process_approval_record(`parent_task_id`); +CREATE INDEX par_idx_process_instance_id ON process_approval_record(`process_instance_id`); +CREATE INDEX par_idx_origin_user_id ON process_approval_record(`origin_user_id`); +CREATE INDEX par_idx_msg_type ON process_approval_record(`msg_type`); +CREATE INDEX par_idx_user_id ON process_approval_record(`user_id`); +CREATE INDEX par_idx_project_id ON process_approval_record(`project_id`); +CREATE INDEX par_idx_commit_flag ON process_approval_record(`commit_flag`); +CREATE INDEX par_idx_has_delegate_task ON process_approval_record(`has_delegate_task`); +CREATE INDEX par_idx_is_delegate_task ON process_approval_record(`is_delegate_task`); +CREATE INDEX par_idx_delegate_by ON process_approval_record(`delegate_by`); +CREATE INDEX par_idx_transfer_by ON process_approval_record(`transfer_by`); +CREATE INDEX par_idx_node_id ON process_approval_record(`node_id`); +CREATE INDEX par_idx_over_due ON process_approval_record(`over_due`); +CREATE INDEX par_idx_transfer_task_id ON process_approval_record(`transfer_task_id`); +CREATE INDEX par_idx_feishu_msg_id ON process_approval_record(`feishu_msg_id`); + +CREATE INDEX pnl_idx_process_definition_id ON process_node_link(`process_definition_id`); +CREATE INDEX pnl_idx_process_node_id ON process_node_link(`process_node_id`); +CREATE INDEX pnl_idx_process_instance_id ON process_node_link(`process_instance_id`); +CREATE INDEX pnl_idx_user_id ON process_node_link(`user_id`); + +ALTER TABLE laws_document_split ADD PRIMARY KEY (id); + diff --git a/laws-base/laws-base-core/pom.xml b/laws-base/laws-base-core/pom.xml index bf7091f5..677423b7 100644 --- a/laws-base/laws-base-core/pom.xml +++ b/laws-base/laws-base-core/pom.xml @@ -152,26 +152,26 @@ runtime - - com.microsoft.sqlserver - sqljdbc4 - ${sqljdbc4.version} - runtime - + + + + + + - - com.oracle - ojdbc6 - ${ojdbc6.version} - runtime - + + + + + + - - org.postgresql - postgresql - ${postgresql.version} - runtime - + + + + + + @@ -222,8 +222,21 @@ commons-codec commons-codec + + xerces + xercesImpl + + + commons-compress + org.apache.commons + + + org.apache.commons + commons-compress + 1.26.0 + diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/filter/cors/CorsFilter.java b/laws-base/laws-base-core/src/main/java/com/jero/config/filter/cors/CorsFilter.java index 3d553eb2..4910d02b 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/filter/cors/CorsFilter.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/filter/cors/CorsFilter.java @@ -73,7 +73,7 @@ public class CorsFilter implements Filter { private void responseInfo(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse httpServletResponse = (HttpServletResponse) response; - httpServletResponse.setHeader("Access-Control-Allow-Origin", ((HttpServletRequest) request).getHeader("Origin")); + httpServletResponse.setHeader("Access-Control-Allow-Origin", originIp); httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true"); httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST,GET"); httpServletResponse.setHeader("Access-Control-Max-Age", "3600"); diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/filters/JwtFilter.java b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/filters/JwtFilter.java index 0febf304..88a3b48e 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/filters/JwtFilter.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/filters/JwtFilter.java @@ -28,7 +28,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter { * 默认开启跨域设置(使用单体) * 微服务情况下,此属性设置为false */ - private boolean allowOrigin = true; + private boolean allowOrigin = false; public JwtFilter(){} public JwtFilter(boolean allowOrigin){ diff --git a/laws-base/laws-base-tools/pom.xml b/laws-base/laws-base-tools/pom.xml index 3f4b5fd3..59ea7f02 100644 --- a/laws-base/laws-base-tools/pom.xml +++ b/laws-base/laws-base-tools/pom.xml @@ -15,13 +15,38 @@ org.springframework.boot spring-boot-starter-web + + + jackson-databind + com.fasterxml.jackson.core + + true + + + com.fasterxml.jackson.core + jackson-databind + 2.14.2 + + org.springframework.boot spring-boot-starter-data-redis + + + netty-codec + io.netty + + + + io.netty + netty-codec + 4.1.94.Final + + org.apache.commons commons-pool2 diff --git a/laws-module-system/pom.xml b/laws-module-system/pom.xml index 7f23d8c1..ca924543 100644 --- a/laws-module-system/pom.xml +++ b/laws-module-system/pom.xml @@ -41,16 +41,21 @@ jero-system-local-api + + + + + + + + + + + - com.jimureport - spring-boot-starter-jimureport - 1.2.0 - - - autopoi-web - org.jeecgframework - - + org.apache.poi + ooxml-schemas + 1.4 com.github.stuxuhai diff --git a/laws-module-system/src/main/java/com/jero/config/jimureport/JimuReportTokenService.java b/laws-module-system/src/main/java/com/jero/config/jimureport/JimuReportTokenService.java deleted file mode 100644 index 989f8c3f..00000000 --- a/laws-module-system/src/main/java/com/jero/config/jimureport/JimuReportTokenService.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.jero.config.jimureport; - -import com.jero.common.system.api.ISysBaseAPI; -import com.jero.common.system.util.JwtUtil; -import com.jero.common.system.vo.SysUserCacheInfo; -import com.jero.common.util.RedisUtil; -import com.jero.common.util.TokenUtils; -import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; - -import javax.servlet.http.HttpServletRequest; -import java.util.HashMap; -import java.util.Map; - -/** - * 自定义积木报表鉴权(如果不进行自定义,则所有请求不做权限控制) - * * 1.自定义获取登录token - * * 2.自定义获取登录用户 - */ -class JimuReportTokenService implements JmReportTokenServiceI { - @Autowired - private ISysBaseAPI sysBaseAPI; - @Autowired - @Lazy - private RedisUtil redisUtil; - - @Override - public String getToken(HttpServletRequest request) { - return TokenUtils.getTokenByRequest(request); - } - - @Override - public String getUsername(String token) { - return JwtUtil.getUsername(token); - } - - @Override - public Boolean verifyToken(String token) { - return TokenUtils.verifyToken(token, sysBaseAPI, redisUtil); - } - - @Override - public Map getUserInfo(String token) { - String username = JwtUtil.getUsername(token); - //此处通过token只能拿到一个信息 用户账号 后面的就是根据账号获取其他信息 查询数据或是走redis 用户根据自身业务可自定义 - SysUserCacheInfo userInfo = sysBaseAPI.getCacheUser(username); - Map map = new HashMap<>(); - //设置账号名 - map.put(SYS_USER_CODE, userInfo.getSysUserCode()); - //设置部门编码 - map.put(SYS_ORG_CODE, userInfo.getSysOrgCode()); - // 将所有信息存放至map 解析sql/api会根据map的键值解析 - return map; - } -} diff --git a/laws-modules/pom.xml b/laws-modules/pom.xml index 772aa121..788bd6e6 100644 --- a/laws-modules/pom.xml +++ b/laws-modules/pom.xml @@ -39,6 +39,19 @@ mybatis org.mybatis + + org.apache.commons + commons-email + + + org.springframework.security + spring-security-core + + + org.springframework.security + spring-security-web + + @@ -102,6 +115,17 @@ 2.2.3 jdk15 + + + commons-collections + commons-collections + + + + + + commons-beanutils + commons-beanutils org.springframework diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java index 418d338c..98574c2b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ms/service/impl/ProcessMarketStandardReleaseServiceImpl.java @@ -304,7 +304,8 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,data.getManifestId()); - queryLawsMarketStandardDetail.orderByDesc(LawsMarketStandardDetail::getId); + queryLawsMarketStandardDetail.orderByAsc(LawsMarketStandardDetail::getOrderNo); + queryLawsMarketStandardDetail.orderByDesc(LawsMarketStandardDetail::getCreateTime); List listLawsMarketStandardDetail = lawsMarketStandardDetailService.list(queryLawsMarketStandardDetail); if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ data.setList(listLawsMarketStandardDetail); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/ModelExcelVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/ModelExcelVO.java index 30a7c580..c4f3ff7c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/ModelExcelVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/ModelExcelVO.java @@ -23,7 +23,7 @@ public class ModelExcelVO { public boolean emptyRowOrNot() { ModelExcelVO modelExcel = this; - return modelExcel.getModel() == null && modelExcel.getModelState() == null; + return modelExcel.getModel() == null; } // 预定义的Excel头部字段 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index 64f20732..66af94d8 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -823,7 +823,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl + StrUtil.isNotBlank(detail.getTermNumber()) || + StrUtil.isNotBlank(detail.getTermTitle()) || + StrUtil.isNotBlank(detail.getTermContent())) .collect(Collectors.toList()); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java index 54c148ab..345abe72 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java @@ -1942,6 +1942,28 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe case StandardInterpretCommon.INTERPRETING_PEOPLE_FILLOUT: boolean pass = (boolean) map.get(StandardInterpretCommon.PASS); if (pass){ +// List idsNotNull = new ArrayList<>(); +// List idsNull = new ArrayList<>(); +// List ids = processStandardInterpretClauseSublistList.stream().map(ProcessStandardInterpretClauseSublist::getId).collect(Collectors.toList()); +// List listData = processStandardInterpretClauseSublistService.listByIds(ids); +// if(!CollectionUtils.isEmpty(listData)){ +// List idsNew = listData.stream().map(ProcessStandardInterpretClauseSublist::getId).collect(Collectors.toList()); +// processStandardInterpretClauseSublistList.forEach(p->{ +// if(idsNew.contains(p.getId())){ +// idsNotNull.add(p); +// }else{ +// idsNull.add(p); +// } +// }); +// } +// if(!CollectionUtils.isEmpty(idsNotNull)){ +// processStandardInterpretClauseSublistService.updateBatchById(idsNotNull); +// } +// +// if(!CollectionUtils.isEmpty(idsNull)){ +// processStandardInterpretClauseSublistService.saveBatch(idsNull); +// } + processStandardInterpretClauseSublistList.stream().map(ProcessStandardInterpretClauseSublist::getId).collect(Collectors.toList()); processStandardInterpretClauseSublistService .saveOrUpdateBatch(processStandardInterpretClauseSublistList); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 4f5dae9f..7eed5f8e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -386,7 +386,7 @@ public class ProcessAllService extends ServiceImpl new LambdaQueryWrapper() .eq(ProcessStandardInterpret::getProjectId, param.getProjectId()), false); if (Objects.nonNull(processStandardInterpret) - && StandardInterpretCommon.IS_DISTRIBUTE_2.equals(processStandardInterpret.getDistribute())){ + && Objects.equals(String.valueOf(StandardInterpretCommon.IS_DISTRIBUTE_2),processStandardInterpret.getDistribute())){ // 未分发 xmlNodeId = xmlNodeId.replace("2", "1"); } diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java index 515ab4e5..c4e81b6e 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsConformityAssessmentLibraryServiceImpl.java @@ -208,6 +208,11 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl newRecordsExport = new ArrayList<>(recordsExport); + recordsExport.parallelStream().forEach(item -> { + String termContent = item.getTermContent(); + // 截取32766字符 + item.setTermContent(StrUtil.sub(termContent, 0, 32767)); + }); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsConformityAssessmentLibraryExportVO.class, recordsExport); // 翻译评估结果和佐证材料字段 newRecordsExport.parallelStream().forEach(item -> { @@ -264,7 +269,7 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl list = Arrays.asList(lawsConformityAssessmentLibrary.getApplicableMarket().split(",")); queryWrapper.and(query -> list.forEach(item -> - query.or(qw -> qw.gt("find_in_set('" + item + "', applicableMarket)", 0)))); + query.or(qw -> qw.gt("find_in_set('" + item + "', applicable_market)", 0)))); } queryWrapper.orderByAsc("valuation_time"); queryWrapper.last("limit 1"); diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java index 9ddb47f0..fc22a051 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java @@ -149,6 +149,11 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl newRecordsExport = new ArrayList<>(records); + records.parallelStream().forEach(item -> { + String termContent = item.getTermContent(); + // 截取32766字符 + item.setTermContent(StrUtil.sub(termContent, 0, 32767)); + }); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsEvaluationNotMetLibrary.class, records); // 翻译评估结果和佐证材料字段 newRecordsExport.parallelStream().forEach(item -> { diff --git a/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareInfoServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareInfoServiceImpl.java index c3c35caa..1c6c3b63 100644 --- a/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareInfoServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareInfoServiceImpl.java @@ -26,6 +26,7 @@ import com.jero.modules.split.service.IFileSplitItemsEOService; import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.split.service.ISarFileSplitMenuEOService; import com.jero.modules.system.util.MyStringUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -270,6 +271,7 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl wrapperItemList(List list, String infoId, Map menuMap, String leftOrRight) { List resList = new ArrayList<>(); + List resNullList = new ArrayList<>(); for (SarFileSplitItemsEO itemsEO : list) { SarFileCompareItem item = new SarFileCompareItem(); item.setInfoId(infoId); @@ -277,15 +279,23 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl!Objects.isNull(o.getItemsDisplayNum())).collect(Collectors.toList()); + } + if(!CollectionUtils.isEmpty(resNullList)){ + resList.addAll(resNullList); } - Collections.sort(resList, Comparator.comparingInt(SarFileCompareItem::getItemsDisplayNum)); return resList; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index f7461304..b1956f4d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -92,6 +92,7 @@ import java.nio.file.Path; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -621,8 +622,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService { **/ private List> processResultMapPageList(List> records, List fieldList) { List dictItemList = getDictItemList(fieldList); - List> resultMapList = new ArrayList<>(); - for (Map map : records) { + List> resultMapList = new CopyOnWriteArrayList<>(); + records.parallelStream().forEach(map->{ Map resultMap = new LinkedHashMap<>(); String id = (String) map.get("id"); String standardNumber = (String) map.get(FieldCommon.STANDARD_NUMBER); @@ -642,7 +643,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { processSpecificFieldValue(resultMap, key, value, id, standardNumber, fieldList); } resultMapList.add(resultMap); - } + }); return resultMapList; } @@ -1614,6 +1615,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { throw new JeroBootException(MessageUtils.getMessage(ResultCommon.PLEASE_UPLOAD_ZIP)); } + String contentType = file.getContentType(); + if (!contentType.contains("zip")) { + throw new JeroBootException(MessageUtils.getMessage(ResultCommon.PLEASE_UPLOAD_ZIP)); + } + Path path = Files.createTempDirectory("temp"); File saveDirectory = new File(path.toUri()); if (!saveDirectory.isDirectory()) { @@ -2039,12 +2045,19 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 体系 String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM); if (StrUtil.isNotBlank(standardSystem)) { - idSearch = true; - LambdaQueryWrapper standSystemWrapper = new LambdaQueryWrapper<>(); - List standSystemIdList = Arrays.asList(standardSystem.split(",")); - standSystemWrapper.in(LawsNodeRelation::getNodeId, standSystemIdList); - List systemList = lawsNodeRelationService.list(standSystemWrapper); - idSet.addAll(systemList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toSet())); + if (FieldCommon.MY_COLLECTION.equals(standardSystem)) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + selectCondition.append(" and id in (select distinct standard_id from laws_standard_collection" + + " where collector_id = '" + loginUser.getId() + "')"); + } else { + List standardSystemList = Arrays.asList(standardSystem.split(",")); + String str = String.join(",",standardSystemList).replace(",","','"); + selectCondition.append(" and id in (select distinct l2.unique_relation_flag from " + + " (select node_code from laws_node_relation where node_id in ('") + .append(str).append("') ") + .append(" group by node_code) l1 left join laws_node_relation l2 " + + " on l2.node_code like CONCAT(l1.node_code,'%')) "); + } parameterMap.remove(FieldCommon.STANDARD_SYSTEM); } Set listIntersection = new HashSet<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml index 285b2043..b042d378 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml @@ -320,7 +320,7 @@ diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 7606c490..6546c929 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -2269,6 +2269,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sourceIdList = Arrays.asList(sourceIds.split(",")); - - List lastMenuList; - //是否是放到最后 - boolean equals = Objects.equals(menuDisplaySeq, displaySeq); - if (equals){ - // 获取要移动到的层级的最后一个 的排序值 - lastMenuList = getLastMenu(parentMenu.getId(),null); - int size = lastMenuList.size(); - for (int i = 0; i < size; i++) { - SarFileSplitMenuEO sarFileSplitMenuEO = lastMenuList.get(i); - sarFileSplitMenuEO.setDisplaySeq(menuDisplaySeq+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - if(displaySeq == 0){ - displaySeq = menuDisplaySeq; - } - for (int i = 0; i < sourceIdList.size(); i++) { - String sourceId = sourceIdList.get(i); - // 要移动的节点信息 - SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); - sarFileSplitMenuEO.setParentId(parentId); - sarFileSplitMenuEO.setDisplaySeq(displaySeq+size+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - }else { - // 获取要移动到的层级的最后一个 的排序值 - lastMenuList = getLastMenu(parentMenu.getId(),displaySeq); - int size = sourceIdList.size(); - for (SarFileSplitMenuEO sarFileSplitMenuEO : lastMenuList) { - Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq(); - sarFileSplitMenuEO.setDisplaySeq(displaySeq1+size); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - if(displaySeq == 0){ - displaySeq = parentMenu.getDisplaySeq(); - } - for (int i = 0; i < sourceIdList.size(); i++) { - String sourceId = sourceIdList.get(i); - // 要移动的节点信息 - SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); - sarFileSplitMenuEO.setParentId(parentId); - sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } + // 获取要移动到的层级的最后一个 的排序值 + List lastMenuList = getLastMenu(parentMenu.getId(),displaySeq,sourceIdList); + if (CollectionUtil.isNotEmpty(lastMenuList)){ + displaySeq = lastMenuList.stream().map(SarFileSplitMenuEO::getDisplaySeq).min(Comparator.comparing(x -> x)).orElse(null); } + // 要移动的节点所有子集(包括本身) + List sarFileSplitMenuEO1List = new ArrayList<>(); + for (String sourceId : sourceIdList) { + // 要移动的节点信息 + SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); + sarFileSplitMenuEO.setParentId(parentId); + sarFileSplitMenuEO1List.add(sarFileSplitMenuEO); + } + List allList = new ArrayList<>(); + getChildren(allList, sarFileSplitMenuEO1List); + //for (SarFileSplitMenuEO splitMenuEO : allList) { + // splitMenuEO.setParentId(parentId); + //} + //排除 + getChildren(allList, lastMenuList); + for (int i = 0; i < allList.size(); i++) { + SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i); + sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1); + baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); + } //this.updateBatchById(updateList); // 要移动的节点所有子集(包括本身) @@ -464,16 +445,21 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl allList, List sarFileSplitMenuEOList) { for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOList) { + String id = sarFileSplitMenuEO.getId(); + List idList = CollStreamUtil.toList(allList, SarFileSplitMenuEO::getId); + if (idList.contains(id)){ + continue; + } allList.add(sarFileSplitMenuEO); - List childrenList = baseMapper.findByParentId(sarFileSplitMenuEO.getId()); + List childrenList = baseMapper.findByParentId(id); if (CollectionUtils.isNotEmpty(childrenList)){ getChildren(allList, childrenList); } } } - public List getLastMenu(String parentId, Long displaySeq) { - List lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq); + public List getLastMenu(String parentId, Long displaySeq, List sourceIdList) { + List lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq,sourceIdList); //if(sarFileSplitMenuEO1 != null){ // getLastMenu(sarFileSplitMenuEO1.getId()); //} diff --git a/laws-single-startup/src/main/resources/application-dev-chery.yml b/laws-single-startup/src/main/resources/application-dev-chery.yml index 67cc8739..991e223e 100644 --- a/laws-single-startup/src/main/resources/application-dev-chery.yml +++ b/laws-single-startup/src/main/resources/application-dev-chery.yml @@ -147,7 +147,7 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true datasource: master: - url: jdbc:p6spy:mysql://10.2.16.9:3306/rsm_dev?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:p6spy:mysql://10.2.16.9:3306/rsm_dev?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true&rewriteBatchedStatements=true username: cgrsm password: ULfDEhef7gkQuT driver-class-name: com.p6spy.engine.spy.P6SpyDriver diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index b16a18c3..2ca34c8d 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -45,7 +45,7 @@ spring: job-store-type: jdbc initialize-schema: embedded #定时任务启动开关,true-开 false-关 - auto-startup: true + auto-startup: false #启动时更新己存在的Job overwrite-existing-jobs: true properties: @@ -147,7 +147,7 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true datasource: master: - url: jdbc:p6spy:mysql://10.10.10.44:3306/laws_chery_dev_init?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:p6spy:mysql://10.10.10.44:3306/laws_chery_dev?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true&rewriteBatchedStatements=true username: root password: hzwlsoft.com driver-class-name: com.p6spy.engine.spy.P6SpyDriver diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index 0b80aad5..f5de40c0 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -147,7 +147,7 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true datasource: master: - url: jdbc:p6spy:mysql://10.2.16.35:3306/rsm_prd?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:p6spy:mysql://10.2.16.35:3306/rsm_prd?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true&rewriteBatchedStatements=true username: cgrsm password: V3DpPGBQez8g4b driver-class-name: com.p6spy.engine.spy.P6SpyDriver diff --git a/laws-single-startup/src/main/resources/application-test.yml b/laws-single-startup/src/main/resources/application-test.yml index baf10aa8..03a22ebd 100644 --- a/laws-single-startup/src/main/resources/application-test.yml +++ b/laws-single-startup/src/main/resources/application-test.yml @@ -147,7 +147,7 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true datasource: master: - url: jdbc:p6spy:mysql://10.2.16.11:3306/rsm_uat?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:p6spy:mysql://10.2.16.11:3306/rsm_uat?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true&rewriteBatchedStatements=true username: cgrsm password: xjGpFMrULjt8HW driver-class-name: com.p6spy.engine.spy.P6SpyDriver diff --git a/pom.xml b/pom.xml index 26388da9..706b6931 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ Hoxton.SR8 2.2.3.RELEASE 2.2.0 - 1.2.75 + 1.2.83 3.0.3 2.0.9 42.2.6 @@ -36,7 +36,7 @@ 2.6 2.1.0 3.11.2 - 1.8.0 + 1.10.0 3.11.0 3.1.0 1.3.6 @@ -44,7 +44,7 @@ 1.3.4 1.6.1 7.4.0 - 2.15.0 + 2.17.1 6.0.0 9.0.82 @@ -215,17 +215,17 @@ ${commons-beanutils.version} - - commons-fileupload - commons-fileupload - 1.4 - - - commons-io - commons-io - - - + + + + + + + + + + +