Merge branch 'master' into SecondStage

This commit is contained in:
fengchenchen
2024-09-20 18:56:01 +08:00
37 changed files with 575 additions and 195 deletions
+138 -1
View File
@@ -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 '所属部门'; ALTER TABLE sys_user_agent MODIFY COLUMN `sys_org_code` varchar(64) NULL COMMENT '所属部门';
-- 2024-09-14 IAM同步的时候 用户管理-人员类型修改长度为 64 -- 2024-09-14 IAM同步的时候 用户管理-人员类型修改长度为 64
ALTER TABLE sys_user MODIFY COLUMN `type_id` varchar(64) NULL COMMENT '人员类型,000正式员工、002外部用户、001劳务工等'; 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);
+31 -18
View File
@@ -152,26 +152,26 @@
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<!-- sqlserver--> <!-- sqlserver-->
<dependency> <!-- <dependency>-->
<groupId>com.microsoft.sqlserver</groupId> <!-- <groupId>com.microsoft.sqlserver</groupId>-->
<artifactId>sqljdbc4</artifactId> <!-- <artifactId>sqljdbc4</artifactId>-->
<version>${sqljdbc4.version}</version> <!-- <version>${sqljdbc4.version}</version>-->
<scope>runtime</scope> <!-- <scope>runtime</scope>-->
</dependency> <!-- </dependency>-->
<!-- oracle驱动 --> <!-- oracle驱动 -->
<dependency> <!-- <dependency>-->
<groupId>com.oracle</groupId> <!-- <groupId>com.oracle</groupId>-->
<artifactId>ojdbc6</artifactId> <!-- <artifactId>ojdbc6</artifactId>-->
<version>${ojdbc6.version}</version> <!-- <version>${ojdbc6.version}</version>-->
<scope>runtime</scope> <!-- <scope>runtime</scope>-->
</dependency> <!-- </dependency>-->
<!-- postgresql驱动 --> <!-- postgresql驱动 -->
<dependency> <!-- <dependency>-->
<groupId>org.postgresql</groupId> <!-- <groupId>org.postgresql</groupId>-->
<artifactId>postgresql</artifactId> <!-- <artifactId>postgresql</artifactId>-->
<version>${postgresql.version}</version> <!-- <version>${postgresql.version}</version>-->
<scope>runtime</scope> <!-- <scope>runtime</scope>-->
</dependency> <!-- </dependency>-->
<!-- Quartz定时任务 --> <!-- Quartz定时任务 -->
<dependency> <dependency>
@@ -222,8 +222,21 @@
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
</exclusion> </exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<artifactId>commons-compress</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.26.0</version>
</dependency>
<!-- mini文件存储服务 --> <!-- mini文件存储服务 -->
<dependency> <dependency>
@@ -73,7 +73,7 @@ public class CorsFilter implements Filter {
private void responseInfo(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { private void responseInfo(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpServletResponse = (HttpServletResponse) response; 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-Credentials", "true");
httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST,GET"); httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST,GET");
httpServletResponse.setHeader("Access-Control-Max-Age", "3600"); httpServletResponse.setHeader("Access-Control-Max-Age", "3600");
@@ -28,7 +28,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter {
* 默认开启跨域设置(使用单体) * 默认开启跨域设置(使用单体)
* 微服务情况下,此属性设置为false * 微服务情况下,此属性设置为false
*/ */
private boolean allowOrigin = true; private boolean allowOrigin = false;
public JwtFilter(){} public JwtFilter(){}
public JwtFilter(boolean allowOrigin){ public JwtFilter(boolean allowOrigin){
+25
View File
@@ -15,13 +15,38 @@
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.2</version>
</dependency>
<!-- Redis --> <!-- Redis -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<artifactId>netty-codec</artifactId>
<groupId>io.netty</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec</artifactId>
<version>4.1.94.Final</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId> <artifactId>commons-pool2</artifactId>
+14 -9
View File
@@ -41,16 +41,21 @@
<artifactId>jero-system-local-api</artifactId> <artifactId>jero-system-local-api</artifactId>
</dependency> </dependency>
<!-- 积木报表 --> <!-- 积木报表 -->
<!-- <dependency>-->
<!-- <groupId>com.jimureport</groupId>-->
<!-- <artifactId>spring-boot-starter-jimureport</artifactId>-->
<!-- <version>1.2.0</version>-->
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <artifactId>autopoi-web</artifactId>-->
<!-- <groupId>org.jeecgframework</groupId>-->
<!-- </exclusion>-->
<!-- </exclusions>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>com.jimureport</groupId> <groupId>org.apache.poi</groupId>
<artifactId>spring-boot-starter-jimureport</artifactId> <artifactId>ooxml-schemas</artifactId>
<version>1.2.0</version> <version>1.4</version>
<exclusions>
<exclusion>
<artifactId>autopoi-web</artifactId>
<groupId>org.jeecgframework</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.stuxuhai</groupId> <groupId>com.github.stuxuhai</groupId>
@@ -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<String, Object> getUserInfo(String token) {
String username = JwtUtil.getUsername(token);
//此处通过token只能拿到一个信息 用户账号 后面的就是根据账号获取其他信息 查询数据或是走redis 用户根据自身业务可自定义
SysUserCacheInfo userInfo = sysBaseAPI.getCacheUser(username);
Map<String, Object> map = new HashMap<>();
//设置账号名
map.put(SYS_USER_CODE, userInfo.getSysUserCode());
//设置部门编码
map.put(SYS_ORG_CODE, userInfo.getSysOrgCode());
// 将所有信息存放至map 解析sql/api会根据map的键值解析
return map;
}
}
+24
View File
@@ -39,6 +39,19 @@
<artifactId>mybatis</artifactId> <artifactId>mybatis</artifactId>
<groupId>org.mybatis</groupId> <groupId>org.mybatis</groupId>
</exclusion> </exclusion>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<!-- Activiti生成流程图 --> <!-- Activiti生成流程图 -->
@@ -102,6 +115,17 @@
<version>2.2.3</version> <version>2.2.3</version>
<classifier>jdk15</classifier> <classifier>jdk15</classifier>
<!-- jdk版本 --> <!-- jdk版本 -->
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--加载beanutils-->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
@@ -304,7 +304,8 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
if(!Objects.isNull(data)){ if(!Objects.isNull(data)){
LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>();
queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,data.getManifestId()); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,data.getManifestId());
queryLawsMarketStandardDetail.orderByDesc(LawsMarketStandardDetail::getId); queryLawsMarketStandardDetail.orderByAsc(LawsMarketStandardDetail::getOrderNo);
queryLawsMarketStandardDetail.orderByDesc(LawsMarketStandardDetail::getCreateTime);
List<LawsMarketStandardDetail> listLawsMarketStandardDetail = lawsMarketStandardDetailService.list(queryLawsMarketStandardDetail); List<LawsMarketStandardDetail> listLawsMarketStandardDetail = lawsMarketStandardDetailService.list(queryLawsMarketStandardDetail);
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail)){
data.setList(listLawsMarketStandardDetail); data.setList(listLawsMarketStandardDetail);
@@ -23,7 +23,7 @@ public class ModelExcelVO {
public boolean emptyRowOrNot() { public boolean emptyRowOrNot() {
ModelExcelVO modelExcel = this; ModelExcelVO modelExcel = this;
return modelExcel.getModel() == null && modelExcel.getModelState() == null; return modelExcel.getModel() == null;
} }
// 预定义的Excel头部字段 // 预定义的Excel头部字段
@@ -823,7 +823,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
while (iterator.hasNext()) { while (iterator.hasNext()) {
ModelExcelVO data = iterator.next(); ModelExcelVO data = iterator.next();
if (ExcelUtils.isEmptyRow(data)) { if (data.emptyRowOrNot()) {
iterator.remove(); iterator.remove();
if (list.isEmpty()) { if (list.isEmpty()) {
errorMsgs.add("文件暂无数据,请检查后重试。"); errorMsgs.add("文件暂无数据,请检查后重试。");
@@ -1196,6 +1196,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detail.setCheckId(detailInfo.getCheckId()); detail.setCheckId(detailInfo.getCheckId());
return detail; return detail;
})) }))
.filter(detail ->
StrUtil.isNotBlank(detail.getTermNumber()) ||
StrUtil.isNotBlank(detail.getTermTitle()) ||
StrUtil.isNotBlank(detail.getTermContent()))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
@@ -1942,6 +1942,28 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
case StandardInterpretCommon.INTERPRETING_PEOPLE_FILLOUT: case StandardInterpretCommon.INTERPRETING_PEOPLE_FILLOUT:
boolean pass = (boolean) map.get(StandardInterpretCommon.PASS); boolean pass = (boolean) map.get(StandardInterpretCommon.PASS);
if (pass){ if (pass){
// List<ProcessStandardInterpretClauseSublist> idsNotNull = new ArrayList<>();
// List<ProcessStandardInterpretClauseSublist> idsNull = new ArrayList<>();
// List<String> ids = processStandardInterpretClauseSublistList.stream().map(ProcessStandardInterpretClauseSublist::getId).collect(Collectors.toList());
// List<ProcessStandardInterpretClauseSublist> listData = processStandardInterpretClauseSublistService.listByIds(ids);
// if(!CollectionUtils.isEmpty(listData)){
// List<String> 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 processStandardInterpretClauseSublistService
.saveOrUpdateBatch(processStandardInterpretClauseSublistList); .saveOrUpdateBatch(processStandardInterpretClauseSublistList);
} }
@@ -386,7 +386,7 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
new LambdaQueryWrapper<ProcessStandardInterpret>() new LambdaQueryWrapper<ProcessStandardInterpret>()
.eq(ProcessStandardInterpret::getProjectId, param.getProjectId()), false); .eq(ProcessStandardInterpret::getProjectId, param.getProjectId()), false);
if (Objects.nonNull(processStandardInterpret) 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"); xmlNodeId = xmlNodeId.replace("2", "1");
} }
@@ -208,6 +208,11 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
exportParams.setSheetName(sheetName); exportParams.setSheetName(sheetName);
// 复制一份数据 // 复制一份数据
List<LawsConformityAssessmentLibraryExportVO> newRecordsExport = new ArrayList<>(recordsExport); List<LawsConformityAssessmentLibraryExportVO> 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); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsConformityAssessmentLibraryExportVO.class, recordsExport);
// 翻译评估结果和佐证材料字段 // 翻译评估结果和佐证材料字段
newRecordsExport.parallelStream().forEach(item -> { newRecordsExport.parallelStream().forEach(item -> {
@@ -264,7 +269,7 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
if (StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getApplicableMarket())){ if (StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getApplicableMarket())){
List<String> list = Arrays.asList(lawsConformityAssessmentLibrary.getApplicableMarket().split(",")); List<String> list = Arrays.asList(lawsConformityAssessmentLibrary.getApplicableMarket().split(","));
queryWrapper.and(query -> list.forEach(item -> 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.orderByAsc("valuation_time");
queryWrapper.last("limit 1"); queryWrapper.last("limit 1");
@@ -149,6 +149,11 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl<LawsEval
exportParams.setSheetName(sheetName); exportParams.setSheetName(sheetName);
// 复制一份数据 // 复制一份数据
List<LawsEvaluationNotMetLibrary> newRecordsExport = new ArrayList<>(records); List<LawsEvaluationNotMetLibrary> 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); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, LawsEvaluationNotMetLibrary.class, records);
// 翻译评估结果和佐证材料字段 // 翻译评估结果和佐证材料字段
newRecordsExport.parallelStream().forEach(item -> { newRecordsExport.parallelStream().forEach(item -> {
@@ -26,6 +26,7 @@ import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService; import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import com.jero.modules.system.util.MyStringUtils; import com.jero.modules.system.util.MyStringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -270,6 +271,7 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
private List<SarFileCompareItem> wrapperItemList(List<SarFileSplitItemsEO> list, String infoId, Map<String, SarFileCompareMenu> menuMap, String leftOrRight) { private List<SarFileCompareItem> wrapperItemList(List<SarFileSplitItemsEO> list, String infoId, Map<String, SarFileCompareMenu> menuMap, String leftOrRight) {
List<SarFileCompareItem> resList = new ArrayList<>(); List<SarFileCompareItem> resList = new ArrayList<>();
List<SarFileCompareItem> resNullList = new ArrayList<>();
for (SarFileSplitItemsEO itemsEO : list) { for (SarFileSplitItemsEO itemsEO : list) {
SarFileCompareItem item = new SarFileCompareItem(); SarFileCompareItem item = new SarFileCompareItem();
item.setInfoId(infoId); item.setInfoId(infoId);
@@ -277,15 +279,23 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
item.setMenuId(itemsEO.getMenuId()); item.setMenuId(itemsEO.getMenuId());
item.setItemsNum(itemsEO.getItemNum()); item.setItemsNum(itemsEO.getItemNum());
item.setItemsText(itemsEO.getItemContent()); item.setItemsText(itemsEO.getItemContent());
item.setLeftOrRight(leftOrRight);
item.setReviewed(CompareConst.NO_REVIEWED);
SarFileCompareMenu menu = menuMap.get(itemsEO.getMenuId()); SarFileCompareMenu menu = menuMap.get(itemsEO.getMenuId());
if (menu != null) { if (menu != null) {
item.setItemsDisplayNum(menu.getDisplaySeq()); item.setItemsDisplayNum(menu.getDisplaySeq());
resList.add(item);
}else{
resNullList.add(item);
} }
item.setLeftOrRight(leftOrRight);
item.setReviewed(CompareConst.NO_REVIEWED); }
resList.add(item); if(!CollectionUtils.isEmpty(resList)){
resList.stream().filter(o->!Objects.isNull(o.getItemsDisplayNum())).collect(Collectors.toList());
}
if(!CollectionUtils.isEmpty(resNullList)){
resList.addAll(resNullList);
} }
Collections.sort(resList, Comparator.comparingInt(SarFileCompareItem::getItemsDisplayNum));
return resList; return resList;
} }
@@ -92,6 +92,7 @@ import java.nio.file.Path;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
@@ -621,8 +622,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
**/ **/
private List<Map<String, Object>> processResultMapPageList(List<Map<String, Object>> records, List<LawsTag> fieldList) { private List<Map<String, Object>> processResultMapPageList(List<Map<String, Object>> records, List<LawsTag> fieldList) {
List<SysDictItem> dictItemList = getDictItemList(fieldList); List<SysDictItem> dictItemList = getDictItemList(fieldList);
List<Map<String, Object>> resultMapList = new ArrayList<>(); List<Map<String, Object>> resultMapList = new CopyOnWriteArrayList<>();
for (Map<String, Object> map : records) { records.parallelStream().forEach(map->{
Map<String, Object> resultMap = new LinkedHashMap<>(); Map<String, Object> resultMap = new LinkedHashMap<>();
String id = (String) map.get("id"); String id = (String) map.get("id");
String standardNumber = (String) map.get(FieldCommon.STANDARD_NUMBER); String standardNumber = (String) map.get(FieldCommon.STANDARD_NUMBER);
@@ -642,7 +643,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
processSpecificFieldValue(resultMap, key, value, id, standardNumber, fieldList); processSpecificFieldValue(resultMap, key, value, id, standardNumber, fieldList);
} }
resultMapList.add(resultMap); resultMapList.add(resultMap);
} });
return resultMapList; return resultMapList;
} }
@@ -1614,6 +1615,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.PLEASE_UPLOAD_ZIP)); 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"); Path path = Files.createTempDirectory("temp");
File saveDirectory = new File(path.toUri()); File saveDirectory = new File(path.toUri());
if (!saveDirectory.isDirectory()) { if (!saveDirectory.isDirectory()) {
@@ -2039,12 +2045,19 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 体系 // 体系
String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM); String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM);
if (StrUtil.isNotBlank(standardSystem)) { if (StrUtil.isNotBlank(standardSystem)) {
idSearch = true; if (FieldCommon.MY_COLLECTION.equals(standardSystem)) {
LambdaQueryWrapper<LawsNodeRelation> standSystemWrapper = new LambdaQueryWrapper<>(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> standSystemIdList = Arrays.asList(standardSystem.split(",")); selectCondition.append(" and id in (select distinct standard_id from laws_standard_collection" +
standSystemWrapper.in(LawsNodeRelation::getNodeId, standSystemIdList); " where collector_id = '" + loginUser.getId() + "')");
List<LawsNodeRelation> systemList = lawsNodeRelationService.list(standSystemWrapper); } else {
idSet.addAll(systemList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toSet())); List<String> 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); parameterMap.remove(FieldCommon.STANDARD_SYSTEM);
} }
Set<String> listIntersection = new HashSet<>(); Set<String> listIntersection = new HashSet<>();
@@ -320,7 +320,7 @@
<select id="getSplitSelectIds" resultType="java.lang.String"> <select id="getSplitSelectIds" resultType="java.lang.String">
select l2.id from laws_domestic_standard l1 select l2.id from laws_domestic_standard l1
left join sar_file_split_info l2 on l1.id = l2.standard_id and l2.del_flag = 0 left join sar_file_split_info l2 on l1.id = l2.standard_id and l2.del_flag = 0
where l1.del_flag = 0 and l2.id is not null where l1.del_flag = 0 and l2.id is not null and split_status = 2
and and
<foreach collection="countryList" separator="or" item= "item" open="(" close=")"> <foreach collection="countryList" separator="or" item= "item" open="(" close=")">
CONCAT(',',l1.applicable_market,',') like CONCAT('%,',#{item},',%') CONCAT(',',l1.applicable_market,',') like CONCAT('%,',#{item},',%')
@@ -1879,10 +1879,12 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// 查询市场下的标准 // 查询市场下的标准
List<String> countryList = Arrays.asList(parameter.get(COUNTRY).toString().split(",")); List<String> countryList = Arrays.asList(parameter.get(COUNTRY).toString().split(","));
List<String> ids = documentSplitMapper.getSplitSelectIds(countryList); List<String> ids = documentSplitMapper.getSplitSelectIds(countryList);
if(!CollectionUtils.isEmpty(ids)){ if(CollectionUtils.isEmpty(ids)){
// in查询 ids = new ArrayList<>();
selectCondition.append(" and s.info_id" + " in('").append(String.join("','",ids)).append("')"); ids.add("-1");
} }
// in查询
selectCondition.append(" and s.info_id" + " in('").append(String.join("','",ids)).append("')");
parameter.remove(COUNTRY); parameter.remove(COUNTRY);
} }
} }
@@ -76,6 +76,7 @@ import java.net.URLEncoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -1361,7 +1362,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
private ModelAndView exportExcelByClause(Map<String, Object> parameterMap) { private ModelAndView exportExcelByClause(Map<String, Object> parameterMap) {
List<LawsHomeAdvancedSearchClauseVO> advancedSearchClause = getAdvancedSearchClauseExport(parameterMap); List<LawsHomeAdvancedSearchClauseVO> advancedSearchClause = getAdvancedSearchClauseExport(parameterMap);
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new CopyOnWriteArrayList<>();
// 标准sheet页 // 标准sheet页
List<LawsHomeAdvancedSearchStandardExcelVO> lawsHomeAdvancedSearchStandardExcelVOList = List<LawsHomeAdvancedSearchStandardExcelVO> lawsHomeAdvancedSearchStandardExcelVOList =
@@ -1373,14 +1374,12 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
standardSheet.put(NormalExcelConstants.PARAMS, exportParams); standardSheet.put(NormalExcelConstants.PARAMS, exportParams);
standardSheet.put(NormalExcelConstants.DATA_LIST, lawsHomeAdvancedSearchStandardExcelVOList); standardSheet.put(NormalExcelConstants.DATA_LIST, lawsHomeAdvancedSearchStandardExcelVOList);
list.add(standardSheet); list.add(standardSheet);
for (LawsHomeAdvancedSearchClauseVO lawsHomeAdvancedSearchClauseVO : advancedSearchClause) { for (LawsHomeAdvancedSearchClauseVO lawsHomeAdvancedSearchClauseVO : advancedSearchClause) {
List<Map<String, Object>> clauseList = lawsHomeAdvancedSearchClauseVO.getClauseList(); List<Map<String, Object>> clauseList = lawsHomeAdvancedSearchClauseVO.getClauseList();
List<LawsHomeAdvancedSearchClauseExcelVO> lawsHomeAdvancedSearchClauseExcelVOS = List<LawsHomeAdvancedSearchClauseExcelVO> lawsHomeAdvancedSearchClauseExcelVOS =
JSON.parseArray(JSON.toJSONString(clauseList), LawsHomeAdvancedSearchClauseExcelVO.class); JSON.parseArray(JSON.toJSONString(clauseList), LawsHomeAdvancedSearchClauseExcelVO.class);
// 条款详情 // 条款详情
for (LawsHomeAdvancedSearchClauseExcelVO lawsHomeAdvancedSearchClauseExcelVO : lawsHomeAdvancedSearchClauseExcelVOS.parallelStream().forEach(lawsHomeAdvancedSearchClauseExcelVO->{
lawsHomeAdvancedSearchClauseExcelVOS) {
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = sarFileSplitItemsValEOMapper.findList( List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = sarFileSplitItemsValEOMapper.findList(
new QueryWrapper<SarFileSplitItemsValEO>() new QueryWrapper<SarFileSplitItemsValEO>()
.eq("item_id", lawsHomeAdvancedSearchClauseExcelVO.getId()) .eq("item_id", lawsHomeAdvancedSearchClauseExcelVO.getId())
@@ -1392,12 +1391,22 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
.map(SarFileSplitItemsValEO::getItemContent) .map(SarFileSplitItemsValEO::getItemContent)
.collect(Collectors.joining("\n\r")); .collect(Collectors.joining("\n\r"));
lawsHomeAdvancedSearchClauseExcelVO.setItemContent(itemContents); lawsHomeAdvancedSearchClauseExcelVO.setItemContent(itemContents);
String translation = sarFileSplitItemsValEOS.stream()
.filter(v -> StringUtils.isNotBlank(v.getTranslation()))
.map(SarFileSplitItemsValEO::getTranslation)
.collect(Collectors.joining("\n\r"));
lawsHomeAdvancedSearchClauseExcelVO.setTranslation(translation);
} }
} });
// 条款sheet页 // 条款sheet页
Map<String, Object> clauseSheet = new HashMap<>(); Map<String, Object> clauseSheet = new HashMap<>();
clauseSheet.put(NormalExcelConstants.CLASS, LawsHomeAdvancedSearchClauseExcelVO.class); clauseSheet.put(NormalExcelConstants.CLASS, LawsHomeAdvancedSearchClauseExcelVO.class);
ExportParams exportParamss = new ExportParams(null, lawsHomeAdvancedSearchClauseVO.getStandardNumber()); ExportParams exportParamss = new ExportParams(null,
lawsHomeAdvancedSearchClauseVO.getStandardNumber().replace("/","")
.replace("\\","").replace("?","")
.replace("*","").replace("[","")
.replace("]","").replace(":",""));
exportParamss.setType(ExcelType.XSSF); exportParamss.setType(ExcelType.XSSF);
clauseSheet.put(NormalExcelConstants.PARAMS, exportParamss); clauseSheet.put(NormalExcelConstants.PARAMS, exportParamss);
clauseSheet.put(NormalExcelConstants.DATA_LIST, lawsHomeAdvancedSearchClauseExcelVOS); clauseSheet.put(NormalExcelConstants.DATA_LIST, lawsHomeAdvancedSearchClauseExcelVOS);
@@ -1533,8 +1542,13 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
data.put("release_date", new SimpleDateFormat(YYYY_MM_DD).format(releaseDate)); data.put("release_date", new SimpleDateFormat(YYYY_MM_DD).format(releaseDate));
} }
if (!Objects.isNull(data.get("implementation_date"))){ if (!Objects.isNull(data.get("implementation_date"))){
Date implementationDate = (Date) data.get("implementation_date"); try{
data.put("implementation_date", new SimpleDateFormat(YYYY_MM_DD).format(implementationDate)); Date implementationDate = (Date) data.get("implementation_date");
data.put("implementation_date", new SimpleDateFormat(YYYY_MM_DD).format(implementationDate));
}catch (Exception e){
String implementationDate = data.get("implementation_date").toString();
data.put("implementation_date", implementationDate);
}
} }
} }
return Result.OK(advancedSearchAll); return Result.OK(advancedSearchAll);
@@ -48,8 +48,8 @@ public class LawsHomeAdvancedSearchExportExcelVO implements Serializable {
* 实施日期 * 实施日期
*/ */
@ApiModelProperty(value = "实施日期") @ApiModelProperty(value = "实施日期")
@Excel(name = "实施日期", width = 20, format = "yyyy-MM-dd") @Excel(name = "实施日期", width = 20)
private Date implementationDate; private String implementationDate;
/** /**
* 在产车实施日期 * 在产车实施日期
* */ * */
@@ -235,4 +235,20 @@ public class MarketStandardDetailController {
return lawsMarketStandardDetailService.export(marketStandardDetail,request); return lawsMarketStandardDetailService.export(marketStandardDetail,request);
} }
/**
* 移动
*
* @param marketStandardDetail
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-移动")
@ApiOperation(value = "外部标准库-市场法规清单-移动", notes = "外部标准库-市场法规清单-移动")
@PostMapping(value = "/move")
@ApiOperationSupport(order = 5)
// @RequiresPermissions("marketStandard:move")
public Result<?> move(@RequestBody LawsMarketStandardDetail marketStandardDetail) {
return lawsMarketStandardDetailService.move(marketStandardDetail);
}
} }
@@ -247,4 +247,17 @@ public class LawsMarketStandardDetail implements Serializable {
@ApiModelProperty(value = "清单版本") @ApiModelProperty(value = "清单版本")
@TableField(exist = false) @TableField(exist = false)
private String manifestVersion; private String manifestVersion;
/**
* 排序号
*/
@ApiModelProperty(value = "排序号")
private Float orderNo;
/**
* 移动标识 上移up 下移down
*/
@ApiModelProperty(value = "移动标识")
@TableField(exist = false)
private String moveFlag;
} }
@@ -61,7 +61,7 @@
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="getOneByManifestNo" resultType="java.lang.String"> <select id="getOneByManifestNo" resultType="java.lang.String">
select max(manifest_no) as manifest_no from laws_market_standard where manifest_no like CONCAT(#{str},'%') select CONCAT(max(REPLACE(manifest_no,#{str},'') * 1), '') as manifest_no from laws_market_standard where manifest_no like CONCAT(#{str},'%')
<if test = "oldStr != null and oldStr != ''"> <if test = "oldStr != null and oldStr != ''">
and manifest_no &lt;> #{oldStr} and manifest_no &lt;> #{oldStr}
</if> </if>
@@ -110,4 +110,11 @@ public interface ILawsMarketStandardDetailService extends IService<LawsMarketSta
* @return * @return
*/ */
ModelAndView export(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request); ModelAndView export(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request);
/**
* 移动
* @param marketStandardDetail
* @return
*/
Result<?> move(LawsMarketStandardDetail marketStandardDetail);
} }
@@ -3,6 +3,7 @@ package com.jero.modules.laws.marketStandard.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
@@ -154,6 +155,8 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
List<String> listIds = Arrays.asList(manifestId.split(",")); List<String> listIds = Arrays.asList(manifestId.split(","));
LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LawsMarketStandardDetail> queryLawsMarketStandardDetail = new LambdaQueryWrapper<>();
queryLawsMarketStandardDetail.in(LawsMarketStandardDetail::getManifestId,listIds); queryLawsMarketStandardDetail.in(LawsMarketStandardDetail::getManifestId,listIds);
queryLawsMarketStandardDetail.orderByAsc(LawsMarketStandardDetail::getOrderNo);
queryLawsMarketStandardDetail.orderByDesc(LawsMarketStandardDetail::getCreateTime);
List<LawsMarketStandardDetail> list = list(queryLawsMarketStandardDetail); List<LawsMarketStandardDetail> list = list(queryLawsMarketStandardDetail);
return Result.OK(list); return Result.OK(list);
} }
@@ -207,6 +210,22 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(!StringUtils.isBlank(m.toString())){ if(!StringUtils.isBlank(m.toString())){
return Result.error(m.toString()); return Result.error(m.toString());
} }
if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){
return Result.OK(ResultCommon.OK);
}
QueryWrapper<LawsMarketStandardDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.select("max(order_no) as order_no");
queryWrapper.eq("manifest_id",manifestId);
LawsMarketStandardDetail lawsMarketStandardDetail = getOne(queryWrapper,false);
int no = 0;
if(!Objects.isNull(lawsMarketStandardDetail) && !Objects.isNull(lawsMarketStandardDetail.getOrderNo())){
no = lawsMarketStandardDetail.getOrderNo().intValue();
}
no = no + 1;
for (int i = 0; i < listLawsMarketStandardDetail.size(); i++) {
listLawsMarketStandardDetail.get(i).setOrderNo((float)(no + i));
}
// 更新状态 // 更新状态
marketStandardService.updateStatus(manifestId); marketStandardService.updateStatus(manifestId);
@@ -448,12 +467,30 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(CollectionUtils.isEmpty(list)){ if(CollectionUtils.isEmpty(list)){
return Result.OK(ResultCommon.OK); return Result.OK(ResultCommon.OK);
} }
setOrderData(list, manifestId);
// 更细状态 // 更细状态
marketStandardService.updateStatus(list.get(0).getManifestId()); marketStandardService.updateStatus(list.get(0).getManifestId());
saveBatch(list); saveBatch(list);
return Result.OK(ResultCommon.OK); return Result.OK(ResultCommon.OK);
} }
private void setOrderData(List<LawsMarketStandardDetail> list, String manifestId) {
QueryWrapper<LawsMarketStandardDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.select("max(order_no) as order_no");
queryWrapper.eq("manifest_id", manifestId);
LawsMarketStandardDetail lawsMarketStandardDetail = getOne(queryWrapper, false);
int m = 0;
if (!Objects.isNull(lawsMarketStandardDetail) && !Objects.isNull(lawsMarketStandardDetail.getOrderNo())) {
m = lawsMarketStandardDetail.getOrderNo().intValue();
}
m = m + 1;
for (int i = 0; i < list.size(); i++) {
list.get(i).setOrderNo((float) (m + i));
}
}
@Override @Override
public synchronized Result<?> copy(String oldId,String newId) { public synchronized Result<?> copy(String oldId,String newId) {
LawsMarketStandard lawsMarketStandard = marketStandardService.getById(newId); LawsMarketStandard lawsMarketStandard = marketStandardService.getById(newId);
@@ -495,6 +532,9 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
if(CollectionUtils.isEmpty(listOld)){ if(CollectionUtils.isEmpty(listOld)){
return Result.OK(ResultCommon.OK); return Result.OK(ResultCommon.OK);
} }
setOrderData(listOld, newId);
// 更细状态 // 更细状态
marketStandardService.updateStatus(listOld.get(0).getManifestId()); marketStandardService.updateStatus(listOld.get(0).getManifestId());
saveBatch(listOld); saveBatch(listOld);
@@ -549,7 +589,17 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
} }
// 更细状态 // 更细状态
marketStandardService.updateStatus(marketStandardDetail.getManifestId()); marketStandardService.updateStatus(marketStandardDetail.getManifestId());
if(Objects.isNull(marketStandardDetail.getOrderNo())){
QueryWrapper<LawsMarketStandardDetail> query = new QueryWrapper<>();
query.select("max(order_no) as order_no");
query.eq("manifest_id",marketStandardDetail.getManifestId());
LawsMarketStandardDetail obj = getOne(query,false);
int m = 0;
if(!Objects.isNull(obj)){
m = obj.getOrderNo().intValue();
}
marketStandardDetail.setOrderNo((float) m);
}
updateById(marketStandardDetail); updateById(marketStandardDetail);
return Result.OK(ResultCommon.OK); return Result.OK(ResultCommon.OK);
} }
@@ -687,6 +737,67 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
mv.addObject(NormalExcelConstants.DATA_LIST, res); mv.addObject(NormalExcelConstants.DATA_LIST, res);
return mv; return mv;
} }
@Override
public Result<?> move(LawsMarketStandardDetail marketStandardDetail) {
if(StringUtils.isBlank(marketStandardDetail.getManifestId()) ||
StringUtils.isBlank(marketStandardDetail.getId()) ||
StringUtils.isBlank(marketStandardDetail.getMoveFlag())){
return Result.error(ResultCommon.PARAMETER_NOT_RECOGNIZED);
}
LawsMarketStandard lawsMarketStandard = marketStandardService.getById(marketStandardDetail.getManifestId());
if(Objects.isNull(lawsMarketStandard)){
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
LawsMarketStandardDetail lawsMarketStandardDetail = getById(marketStandardDetail.getId());
if(Objects.isNull(lawsMarketStandardDetail)){
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
LambdaQueryWrapper<LawsMarketStandardDetail> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LawsMarketStandardDetail::getManifestId,marketStandardDetail.getManifestId());
queryWrapper.orderByAsc(LawsMarketStandardDetail::getOrderNo);
queryWrapper.orderByDesc(LawsMarketStandardDetail::getCreateTime);
List<LawsMarketStandardDetail> list = list(queryWrapper);
if(CollectionUtils.isEmpty(list)){
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
if(Objects.equals(marketStandardDetail.getMoveFlag(),"up")){
for (int i = 0; i < list.size(); i++) {
LawsMarketStandardDetail now = list.get(i);
if(Objects.equals(now.getId(),marketStandardDetail.getId()) && i > 0){
LawsMarketStandardDetail last = list.get(i - 1);
LambdaUpdateWrapper<LawsMarketStandardDetail> updateNow = new LambdaUpdateWrapper<>();
updateNow.eq(LawsMarketStandardDetail::getId,now.getId());
updateNow.set(LawsMarketStandardDetail::getOrderNo,last.getOrderNo());
update(updateNow);
LambdaUpdateWrapper<LawsMarketStandardDetail> updateLast = new LambdaUpdateWrapper<>();
updateLast.eq(LawsMarketStandardDetail::getId,last.getId());
updateLast.set(LawsMarketStandardDetail::getOrderNo,now.getOrderNo());
update(updateLast);
}
}
}else if(Objects.equals(marketStandardDetail.getMoveFlag(),"down")){
for (int i = 0; i < list.size(); i++) {
LawsMarketStandardDetail now = list.get(i);
if(Objects.equals(now.getId(),marketStandardDetail.getId()) && (i != list.size() -1)){
LawsMarketStandardDetail next = list.get(i + 1);
LambdaUpdateWrapper<LawsMarketStandardDetail> updateNow = new LambdaUpdateWrapper<>();
updateNow.eq(LawsMarketStandardDetail::getId,now.getId());
updateNow.set(LawsMarketStandardDetail::getOrderNo,next.getOrderNo());
update(updateNow);
LambdaUpdateWrapper<LawsMarketStandardDetail> updateNext = new LambdaUpdateWrapper<>();
updateNext.eq(LawsMarketStandardDetail::getId,next.getId());
updateNext.set(LawsMarketStandardDetail::getOrderNo,now.getOrderNo());
update(updateNext);
}
}
}
// 更细状态
marketStandardService.updateStatus(lawsMarketStandardDetail.getManifestId());
return Result.OK(ResultCommon.OK);
}
} }
@@ -220,7 +220,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
List<DictModel> listDict = map.get(marketState); List<DictModel> listDict = map.get(marketState);
List<String> country = listDict.stream().map(DictModel::getText).collect(Collectors.toList()); List<String> country = listDict.stream().map(DictModel::getText).collect(Collectors.toList());
// 国家/地区+自定义+固定字段自定义字段预留手填当前默认不填固定字段车型需满足标准法规清单 // 国家/地区+自定义+固定字段自定义字段预留手填当前默认不填固定字段车型需满足标准法规清单
manifest.setManifestName(String.join("",country) + manifest.setManifestName(String.join("",country) +
(StringUtils.isEmpty(manifest.getCustomColumnName()) ? "" : manifest.getCustomColumnName()) (StringUtils.isEmpty(manifest.getCustomColumnName()) ? "" : manifest.getCustomColumnName())
+ "车型需满足标准法规清单"); + "车型需满足标准法规清单");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -247,9 +247,9 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
if(StringUtils.isBlank(manifestNo)){ if(StringUtils.isBlank(manifestNo)){
return s + "01"; return s + "01";
} }
String num = manifestNo.substring(manifestNo.length() - 2); int m = Integer.parseInt(manifestNo) + 1;
int m = Integer.parseInt(num); String n = s + (m >= 10 ? m : "0" + m);
return s + (m >= 10 ? (m + 1) : "0" + (m + 1)); return n;
} }
@Override @Override
@@ -288,7 +288,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
List<DictModel> listDict = map.get(marketState); List<DictModel> listDict = map.get(marketState);
List<String> country = listDict.stream().map(DictModel::getText).collect(Collectors.toList()); List<String> country = listDict.stream().map(DictModel::getText).collect(Collectors.toList());
// 国家/地区+自定义+固定字段自定义字段预留手填当前默认不填固定字段车型需满足标准法规清单 // 国家/地区+自定义+固定字段自定义字段预留手填当前默认不填固定字段车型需满足标准法规清单
manifest.setManifestName(String.join("",country) + manifest.setManifestName(String.join("",country) +
(StringUtils.isEmpty(manifest.getCustomColumnName()) ? "" : manifest.getCustomColumnName()) (StringUtils.isEmpty(manifest.getCustomColumnName()) ? "" : manifest.getCustomColumnName())
+ "车型需满足标准法规清单"); + "车型需满足标准法规清单");
updateById(manifest); updateById(manifest);
@@ -1,6 +1,9 @@
package com.jero.modules.split.common; package com.jero.modules.split.common;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.MessageUtils;
import com.xkcoding.http.util.StringUtil; import com.xkcoding.http.util.StringUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipEntry;
@@ -53,6 +56,9 @@ public class FileUnZip {
// orgMkdirs = outPath.substring(0, outPath.lastIndexOf('/')); // orgMkdirs = outPath.substring(0, outPath.lastIndexOf('/'));
file.mkdirs(); file.mkdirs();
}else{ }else{
if (!isFileSafe(zipEntryName)) {
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.ERROR));
}
// orgMkdirs = outPath.substring(0, outPath.lastIndexOf('/')); // orgMkdirs = outPath.substring(0, outPath.lastIndexOf('/'));
} }
//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压 //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
@@ -77,6 +83,18 @@ public class FileUnZip {
return orgMkdirs; return orgMkdirs;
} }
private static boolean isFileSafe(String fileName) {
// 添加文件类型检查逻辑
// 这里仅作为一个示例实际应用中需要根据需要进行扩展
String[] unsafeExtensions = {".exe", ".sh", ".bat", ".js"};
for (String ext : unsafeExtensions) {
if (fileName.endsWith(ext)) {
return false;
}
}
return true;
}
/** /**
* 解压zip文件 * 解压zip文件
* 解决解压文件下有多个文件夹时读不到orgMkdirs问题 * 解决解压文件下有多个文件夹时读不到orgMkdirs问题
@@ -74,7 +74,7 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper<SarFileSplitMenuEO>
SarFileSplitMenuEO findById(String id); SarFileSplitMenuEO findById(String id);
List<SarFileSplitMenuEO> findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq); List<SarFileSplitMenuEO> findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq, @Param("sourceIdList") List<String> sourceIdList);
List<SarFileSplitMenuEO> queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq); List<SarFileSplitMenuEO> queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq);
@@ -378,7 +378,9 @@
<if test="displaySeq != null"> <if test="displaySeq != null">
and display_seq > #{displaySeq} and display_seq > #{displaySeq}
</if> </if>
<foreach item="item" index="index" collection="sourceIdList" open="and id not in (" separator="," close=")">
#{item}
</foreach>
order by display_seq order by display_seq
</select> </select>
@@ -2269,6 +2269,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
tableHtml = tableHtml.replaceAll("style","border=\"1\" style");// 解决导入的表格没线 tableHtml = tableHtml.replaceAll("style","border=\"1\" style");// 解决导入的表格没线
splitTableInfo.setTableHtml(tableHtml); splitTableInfo.setTableHtml(tableHtml);
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(),e);
throw new JeroBootException(sheet.getSheetName() + "页签数据异常"); throw new JeroBootException(sheet.getSheetName() + "页签数据异常");
} }
getSheetTableList.add(splitTableInfo); getSheetTableList.add(splitTableInfo);
@@ -2295,11 +2296,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
FileUnZip.deleteDir(saveDirectory); FileUnZip.deleteDir(saveDirectory);
return message; return message;
} catch (JeroBootException e){ } catch (JeroBootException e){
log.error(e.getMessage(),e);
//删除原上传文件 //删除原上传文件
FileUnZip.deleteDir(saveDirectory); FileUnZip.deleteDir(saveDirectory);
return Result.error(1, e.getMessage()); return Result.error(1, e.getMessage());
}catch (NullPointerException e){ }catch (NullPointerException e){
log.error(e.getMessage()); log.error("读取失败,请严格按照模板文件导入数据",e);
//删除原上传文件 //删除原上传文件
FileUnZip.deleteDir(saveDirectory); FileUnZip.deleteDir(saveDirectory);
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){ if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){
@@ -2309,6 +2311,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
return Result.error(1, resultMsg); return Result.error(1, resultMsg);
}catch (Exception e) { }catch (Exception e) {
log.error(e.getMessage(),e);
//删除原上传文件 //删除原上传文件
FileUnZip.deleteDir(saveDirectory); FileUnZip.deleteDir(saveDirectory);
return Result.error(e.getMessage()); return Result.error(e.getMessage());
@@ -1,7 +1,9 @@
package com.jero.modules.split.service.impl; package com.jero.modules.split.service.impl;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
@@ -377,54 +379,33 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
public void updateMenuLevel(String sourceIds, String parentId, Long displaySeq) { public void updateMenuLevel(String sourceIds, String parentId, Long displaySeq) {
// 要移动到的节点信息 // 要移动到的节点信息
SarFileSplitMenuEO parentMenu = baseMapper.findById(parentId); SarFileSplitMenuEO parentMenu = baseMapper.findById(parentId);
Long menuDisplaySeq = parentMenu.getDisplaySeq();
List<String> sourceIdList = Arrays.asList(sourceIds.split(",")); List<String> sourceIdList = Arrays.asList(sourceIds.split(","));
// 获取要移动到的层级的最后一个 的排序值
List<SarFileSplitMenuEO> lastMenuList; List<SarFileSplitMenuEO> lastMenuList = getLastMenu(parentMenu.getId(),displaySeq,sourceIdList);
//是否是放到最后 if (CollectionUtil.isNotEmpty(lastMenuList)){
boolean equals = Objects.equals(menuDisplaySeq, displaySeq); displaySeq = lastMenuList.stream().map(SarFileSplitMenuEO::getDisplaySeq).min(Comparator.comparing(x -> x)).orElse(null);
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<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();
for (String sourceId : sourceIdList) {
// 要移动的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId);
sarFileSplitMenuEO.setParentId(parentId);
sarFileSplitMenuEO1List.add(sarFileSplitMenuEO);
}
List<SarFileSplitMenuEO> 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); //this.updateBatchById(updateList);
// 要移动的节点所有子集包括本身 // 要移动的节点所有子集包括本身
@@ -464,16 +445,21 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
private void getChildren(List<SarFileSplitMenuEO> allList, List<SarFileSplitMenuEO> sarFileSplitMenuEOList) { private void getChildren(List<SarFileSplitMenuEO> allList, List<SarFileSplitMenuEO> sarFileSplitMenuEOList) {
for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOList) { for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOList) {
String id = sarFileSplitMenuEO.getId();
List<String> idList = CollStreamUtil.toList(allList, SarFileSplitMenuEO::getId);
if (idList.contains(id)){
continue;
}
allList.add(sarFileSplitMenuEO); allList.add(sarFileSplitMenuEO);
List<SarFileSplitMenuEO> childrenList = baseMapper.findByParentId(sarFileSplitMenuEO.getId()); List<SarFileSplitMenuEO> childrenList = baseMapper.findByParentId(id);
if (CollectionUtils.isNotEmpty(childrenList)){ if (CollectionUtils.isNotEmpty(childrenList)){
getChildren(allList, childrenList); getChildren(allList, childrenList);
} }
} }
} }
public List<SarFileSplitMenuEO> getLastMenu(String parentId, Long displaySeq) { public List<SarFileSplitMenuEO> getLastMenu(String parentId, Long displaySeq, List<String> sourceIdList) {
List<SarFileSplitMenuEO> lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq); List<SarFileSplitMenuEO> lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq,sourceIdList);
//if(sarFileSplitMenuEO1 != null){ //if(sarFileSplitMenuEO1 != null){
// getLastMenu(sarFileSplitMenuEO1.getId()); // getLastMenu(sarFileSplitMenuEO1.getId());
//} //}
@@ -147,7 +147,7 @@ spring:
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true
datasource: datasource:
master: 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 username: cgrsm
password: ULfDEhef7gkQuT password: ULfDEhef7gkQuT
driver-class-name: com.p6spy.engine.spy.P6SpyDriver driver-class-name: com.p6spy.engine.spy.P6SpyDriver
@@ -45,7 +45,7 @@ spring:
job-store-type: jdbc job-store-type: jdbc
initialize-schema: embedded initialize-schema: embedded
#定时任务启动开关,true-开 false-关 #定时任务启动开关,true-开 false-关
auto-startup: true auto-startup: false
#启动时更新己存在的Job #启动时更新己存在的Job
overwrite-existing-jobs: true overwrite-existing-jobs: true
properties: properties:
@@ -147,7 +147,7 @@ spring:
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true
datasource: datasource:
master: 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 username: root
password: hzwlsoft.com password: hzwlsoft.com
driver-class-name: com.p6spy.engine.spy.P6SpyDriver driver-class-name: com.p6spy.engine.spy.P6SpyDriver
@@ -147,7 +147,7 @@ spring:
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true
datasource: datasource:
master: 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 username: cgrsm
password: V3DpPGBQez8g4b password: V3DpPGBQez8g4b
driver-class-name: com.p6spy.engine.spy.P6SpyDriver driver-class-name: com.p6spy.engine.spy.P6SpyDriver
@@ -147,7 +147,7 @@ spring:
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000;druid.stat.logSlowSql\=true
datasource: datasource:
master: 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 username: cgrsm
password: xjGpFMrULjt8HW password: xjGpFMrULjt8HW
driver-class-name: com.p6spy.engine.spy.P6SpyDriver driver-class-name: com.p6spy.engine.spy.P6SpyDriver
+14 -14
View File
@@ -19,7 +19,7 @@
<spring-cloud.version>Hoxton.SR8</spring-cloud.version> <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version>
<xxl-job-core.version>2.2.0</xxl-job-core.version> <xxl-job-core.version>2.2.0</xxl-job-core.version>
<fastjson.version>1.2.75</fastjson.version> <fastjson.version>1.2.83</fastjson.version>
<knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version> <knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version>
<knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version> <knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version>
<postgresql.version>42.2.6</postgresql.version> <postgresql.version>42.2.6</postgresql.version>
@@ -36,7 +36,7 @@
<commons.version>2.6</commons.version> <commons.version>2.6</commons.version>
<aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version> <aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version>
<aliyun.oss.version>3.11.2</aliyun.oss.version> <aliyun.oss.version>3.11.2</aliyun.oss.version>
<shiro.version>1.8.0</shiro.version> <shiro.version>1.10.0</shiro.version>
<java-jwt.version>3.11.0</java-jwt.version> <java-jwt.version>3.11.0</java-jwt.version>
<shiro-redis.version>3.1.0</shiro-redis.version> <shiro-redis.version>3.1.0</shiro-redis.version>
<autopoi-web.version>1.3.6</autopoi-web.version> <autopoi-web.version>1.3.6</autopoi-web.version>
@@ -44,7 +44,7 @@
<justauth-spring-boot-starter.version>1.3.4</justauth-spring-boot-starter.version> <justauth-spring-boot-starter.version>1.3.4</justauth-spring-boot-starter.version>
<dom4j.version>1.6.1</dom4j.version> <dom4j.version>1.6.1</dom4j.version>
<qiniu-java-sdk.version>7.4.0</qiniu-java-sdk.version> <qiniu-java-sdk.version>7.4.0</qiniu-java-sdk.version>
<log4j2.version>2.15.0</log4j2.version> <log4j2.version>2.17.1</log4j2.version>
<activiti.version>6.0.0</activiti.version> <activiti.version>6.0.0</activiti.version>
<tomcat.version>9.0.82</tomcat.version> <tomcat.version>9.0.82</tomcat.version>
</properties> </properties>
@@ -215,17 +215,17 @@
<version>${commons-beanutils.version}</version> <version>${commons-beanutils.version}</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>commons-fileupload</groupId> <!-- <groupId>commons-fileupload</groupId>-->
<artifactId>commons-fileupload</artifactId> <!-- <artifactId>commons-fileupload</artifactId>-->
<version>1.4</version> <!-- <version>1.4</version>-->
<exclusions> <!-- <exclusions>-->
<exclusion> <!-- <exclusion>-->
<artifactId>commons-io</artifactId> <!-- <artifactId>commons-io</artifactId>-->
<groupId>commons-io</groupId> <!-- <groupId>commons-io</groupId>-->
</exclusion> <!-- </exclusion>-->
</exclusions> <!-- </exclusions>-->
</dependency> <!-- </dependency>-->
<!-- justauth第三方登录 --> <!-- justauth第三方登录 -->
<dependency> <dependency>