fix: 法规符合性评估库搜素SQL问题
This commit is contained in:
@@ -170,6 +170,8 @@ public class ResultCommon {
|
||||
public static final String ASSESS_DELETE_ERROR = "assess.delete.error";
|
||||
//项目中有评估中的数据时,不允许删除
|
||||
public static final String ASSESS_DELETE_ERROR2 = "assess.delete.error2";
|
||||
//法规符合性排查流程有正在进行中的流程,不允许删除
|
||||
public static final String SCC_DELETE_STANDARD_ERROR = "scc.delete.standard.error";
|
||||
|
||||
// 流程已分发,禁止驳回
|
||||
public static final String PROCESS_ALREADY_DISTRIBUTED = "process.already.distributed";
|
||||
|
||||
+31
-1
@@ -15,8 +15,10 @@ import com.jero.common.util.MessageUtils;
|
||||
import com.jero.common.util.ZipUtil;
|
||||
import com.jero.common.util.obs.ObsBootUtil;
|
||||
import com.jero.modules.activiti.common.ActivitiCommon;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.entity.ProcessNode;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
@@ -35,6 +37,7 @@ import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.Witho
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.mapper.ProcessStandardComplianceCheckMapper;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckDetailService;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
@@ -43,6 +46,7 @@ import com.jero.modules.laws.common.service.impl.LawsCommonServiceImpl;
|
||||
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
|
||||
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
|
||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||
import com.jero.modules.laws.standard.service.DoNotSplitStandardProvider;
|
||||
import com.jero.modules.laws.utils.ExcelExportUtilPro;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
@@ -95,7 +99,7 @@ import static com.jero.modules.activiti.process.standardComplianceCheck.common.P
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<ProcessStandardComplianceCheckMapper, ProcessStandardComplianceCheck>
|
||||
implements IProcessStandardComplianceCheckService {
|
||||
implements IProcessStandardComplianceCheckService, DoNotSplitStandardProvider {
|
||||
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
@@ -127,6 +131,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
private ProcessNodeService processNodeService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService approvalRecordService;
|
||||
@Resource
|
||||
private ProcessAllService paService;
|
||||
|
||||
@Value("${jero.path.exportExcelTempPath}")
|
||||
private String exportExcelTempPath;
|
||||
@@ -1047,6 +1053,30 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
}
|
||||
return modelExcelVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getDoNotDeleteStandardIdList() {
|
||||
List<ProcessStandardComplianceCheck> list = list();
|
||||
List<ProcessStandardComplianceCheck> collect =
|
||||
list.stream().filter(e -> StrUtil.isNotBlank(e.getStandardId())).collect(Collectors.toList());
|
||||
// 去流程主表判断对应的流程是否已经结束
|
||||
List<String> prcIdList = collect.stream().map(ProcessStandardComplianceCheck::getProcessInstanceId)
|
||||
.collect(Collectors.toList());
|
||||
LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(ProcessAll::getProcessInstanceId, prcIdList);
|
||||
wrapper.eq(ProcessAll::getPrcStatus, FinishFlagEnum.INCOMPLETE.getValue());
|
||||
// 未完成的流程
|
||||
List<ProcessAll> incompleteList = paService.list(wrapper);
|
||||
return collect.stream().filter(e -> incompleteList.stream()
|
||||
.noneMatch(i -> i.getProcessInstanceId().equals(e.getProcessInstanceId())))
|
||||
.map(ProcessStandardComplianceCheck::getStandardId)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getResultCommon() {
|
||||
return ResultCommon.SCC_DELETE_STANDARD_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+12
-17
@@ -18,23 +18,18 @@
|
||||
</sql>
|
||||
|
||||
<select id="queryByPage" resultType="com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary">
|
||||
SELECT cs.id,
|
||||
cs.standard_id,
|
||||
sub.standard_number,
|
||||
sub.standard_name,
|
||||
lms.country AS applicableMarket,
|
||||
cs.valuation_time
|
||||
FROM laws_conformity_assessment_library cs
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
COALESCE(d.standard_number, cs.standard_number) AS standard_number,
|
||||
COALESCE(d.standard_name, cs.standard_name) AS standard_name,
|
||||
cs.standard_id
|
||||
FROM laws_conformity_assessment_library cs
|
||||
LEFT JOIN laws_domestic_standard d ON d.id = cs.standard_id
|
||||
) AS sub ON sub.standard_id = cs.standard_id
|
||||
LEFT JOIN laws_market_standard lms ON lms.id = cs.applicable_market
|
||||
${ew.customSqlSegment}
|
||||
select *
|
||||
from (select cs.id,
|
||||
cs.standard_id,
|
||||
IF(cs.standard_id IS NOT NULL, d.standard_number, cs.standard_number) AS standard_number,
|
||||
IF(cs.standard_id IS NOT NULL, d.standard_name, cs.standard_name) AS standard_name,
|
||||
lms.country as applicableMarket,
|
||||
cs.valuation_time,
|
||||
cs.create_time
|
||||
from laws_conformity_assessment_library cs
|
||||
left join laws_domestic_standard as d on d.id = cs.standard_id
|
||||
left join laws_market_standard as lms on lms.id = cs.applicable_market) as t
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="detail"
|
||||
|
||||
+6
-6
@@ -81,25 +81,25 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
|
||||
QueryWrapper<LawsConformityAssessmentLibrary> queryWrapper = new QueryWrapper<>();
|
||||
Page<LawsConformityAssessmentLibrary> page = new Page<>(pageNo, pageSize);
|
||||
queryWrapper.like(StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getStandardNumber()),
|
||||
"sub.standard_number", lawsConformityAssessmentLibrary.getStandardNumber());
|
||||
"standard_number", lawsConformityAssessmentLibrary.getStandardNumber());
|
||||
queryWrapper.like(StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getStandardName()),
|
||||
"sub.standard_name", lawsConformityAssessmentLibrary.getStandardName());
|
||||
"standard_name", lawsConformityAssessmentLibrary.getStandardName());
|
||||
String applicableMarkets = lawsConformityAssessmentLibrary.getApplicableMarket();
|
||||
if (StringUtils.isNotBlank(applicableMarkets)) {
|
||||
String[] split = applicableMarkets.split(",");
|
||||
for (String splitStr : split) {
|
||||
queryWrapper.like("lms.country", splitStr);
|
||||
queryWrapper.like("country", splitStr);
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getSelections())) {
|
||||
queryWrapper.in("cs.id", Arrays.asList(lawsConformityAssessmentLibrary.getSelections().split(",")));
|
||||
queryWrapper.in("id", Arrays.asList(lawsConformityAssessmentLibrary.getSelections().split(",")));
|
||||
}
|
||||
queryWrapper.between(lawsConformityAssessmentLibrary.getValuationTime() != null,
|
||||
"valuation_time", lawsConformityAssessmentLibrary.getStartValuationTime(), lawsConformityAssessmentLibrary.getEndValuationTime());
|
||||
queryWrapper.orderByDesc("cs.create_time");
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
if (noAdminAuth()) {
|
||||
String userId = UserUtils.getUserId();
|
||||
queryWrapper.like("cs.all_approval_user", userId);
|
||||
queryWrapper.like("all_approval_user", userId);
|
||||
}
|
||||
return lawsConformityAssessmentLibraryMapper.queryByPage(page, queryWrapper);
|
||||
}
|
||||
|
||||
+13
-6
@@ -11,6 +11,7 @@ import com.jero.modules.compare.service.ISarFileCompareInfoService;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
import com.jero.modules.laws.standard.service.ILawsNodeRelationService;
|
||||
import com.jero.modules.laws.standard.util.StandardUtil;
|
||||
import com.jero.modules.personal.service.ILawsStandardCollectionService;
|
||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||
import com.jero.modules.tag.entity.LawsTag;
|
||||
@@ -26,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -53,6 +55,9 @@ public class LawsDomesticController {
|
||||
@Resource
|
||||
private ISarFileCompareInfoService compareInfoService;
|
||||
|
||||
@Resource
|
||||
private StandardUtil standardUtil;
|
||||
|
||||
private static final String MODULE_VALUE = TableNameEnum.DOMESTIC_REGULATIONS.getValue();
|
||||
|
||||
@AutoLog(value = "国内法规标准-分页列表查询")
|
||||
@@ -147,12 +152,14 @@ public class LawsDomesticController {
|
||||
public Result<String> deleteByIdsAndModule(@RequestBody @ApiParam(name = "ids", value = "主键(多个用逗号分隔)") Map<String,Object> parameterMap) {
|
||||
// 删除校验
|
||||
// processFbEntryChangeService.delCheck((String) parameterMap.get("ids"));
|
||||
//删除标准时同步删除这个标准的收藏数据
|
||||
lawsStandardCollectionService.deleteByStandardId((String) parameterMap.get("ids"));
|
||||
// 删除标准时同步删除比对和拆分的相关数据
|
||||
splitInfoService.deleteByStandardId((String) parameterMap.get("ids"));
|
||||
compareInfoService.deleteByStandardId((String) parameterMap.get("ids"));
|
||||
return Result.OK(lawsCommonService.deleteByIdsAndModule((String) parameterMap.get("ids"), MODULE_VALUE));
|
||||
standardUtil.validDeleteStandard(Collections.singletonList((String) parameterMap.get("ids")));
|
||||
// //删除标准时同步删除这个标准的收藏数据
|
||||
// lawsStandardCollectionService.deleteByStandardId((String) parameterMap.get("ids"));
|
||||
// // 删除标准时同步删除比对和拆分的相关数据
|
||||
// splitInfoService.deleteByStandardId((String) parameterMap.get("ids"));
|
||||
// compareInfoService.deleteByStandardId((String) parameterMap.get("ids"));
|
||||
// return Result.OK(lawsCommonService.deleteByIdsAndModule((String) parameterMap.get("ids"), MODULE_VALUE));
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国内法规标准-配置标准")
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.jero.modules.laws.standard.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DoNotSplitStandardProvider {
|
||||
|
||||
List<String> getDoNotDeleteStandardIdList();
|
||||
|
||||
String getResultCommon();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.jero.modules.laws.standard.util;
|
||||
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.laws.standard.service.DoNotSplitStandardProvider;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Component
|
||||
public class StandardUtil {
|
||||
|
||||
@Resource
|
||||
private List<DoNotSplitStandardProvider> providers;
|
||||
|
||||
/**
|
||||
* 判断是否可以删除
|
||||
*
|
||||
*/
|
||||
public void validDeleteStandard(List<String> needDelStandardIdList) {
|
||||
// 将需要删除的标准ID转换为HashSet以快速查找
|
||||
HashSet<String> strings = new HashSet<>(needDelStandardIdList);
|
||||
|
||||
for (DoNotSplitStandardProvider provider : providers) {
|
||||
List<String> data = provider.getDoNotDeleteStandardIdList();
|
||||
|
||||
// 提前退出如果没有禁止删除的ID
|
||||
if (data.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 将禁止删除的ID也转换为Set,这样可以更高效地检查交集
|
||||
Set<String> doNotDeleteSet = new HashSet<>(data);
|
||||
|
||||
// 检查交集,如果存在,则抛出异常
|
||||
for (String id : strings) {
|
||||
if (doNotDeleteSet.contains(id)) {
|
||||
throw new JeroBootException(provider.getResultCommon());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -76,4 +76,5 @@ assess.delete.error=\u672A\u7B26\u5408\u9879\u4E2D\u6709\u6574\u6539\u4E2D\u3001
|
||||
assess.delete.error2=\u9879\u76EE\u4E2D\u6709\u8BC4\u4F30\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664
|
||||
new.en.standard.number.conflict=\u8BE5\u65B0\u4F01\u6807\u7F16\u53F7\u4E0E\u5DF2\u5B58\u5728\u7684\u4F01\u6807\u7F16\u53F7\u91CD\u590D\uFF0C\u8BF7\u91CD\u65B0\u4FEE\u6539\u63D0\u4EA4
|
||||
zip_root_one_excel=\u538B\u7F29\u5305\u6839\u76EE\u5F55\u4E0B\u4EC5\u80FD\u5B58\u5728\u4E00\u4E2Aexcel\u4E3A\u5BFC\u5165\u6570\u636E
|
||||
message.no.exists.standard=\u6807\u51C6\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
|
||||
message.no.exists.standard=\u6807\u51C6\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
|
||||
scc.delete.standard.error=\u6CD5\u89C4\u7B26\u5408\u6027\u6392\u67E5\u6D41\u7A0B\u6709\u6B63\u5728\u8FDB\u884C\u4E2D\u7684\u6D41\u7A0B\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664
|
||||
|
||||
@@ -85,3 +85,4 @@ process.already.distributed=The process has been distributed, do not reject!
|
||||
process.not.countersignature=It is not a countersign node task!
|
||||
zip_root_one_excel=The zip file contains more than one excel file
|
||||
message.no.exists.standard=The standard does not exist
|
||||
scc.delete.standard.error=The standard has been used by the Standard Compliance Check Process, can not delete
|
||||
@@ -84,3 +84,4 @@ process.already.distributed=\u6D41\u7A0B\u5DF2\u5206\u53D1,\u7981\u6B62\u9A73\u5
|
||||
process.not.countersignature=\u4E0D\u662F\u4F1A\u7B7E\u8282\u70B9\u4EFB\u52A1!
|
||||
zip_root_one_excel=\u538B\u7F29\u5305\u6839\u76EE\u5F55\u4E0B\u4EC5\u80FD\u5B58\u5728\u4E00\u4E2Aexcel\u4E3A\u5BFC\u5165\u6570\u636E
|
||||
message.no.exists.standard=\u6807\u51C6\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
|
||||
scc.delete.standard.error=\u6CD5\u89C4\u7B26\u5408\u6027\u6392\u67E5\u6D41\u7A0B\u6709\u6B63\u5728\u8FDB\u884C\u4E2D\u7684\u6D41\u7A0B\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664
|
||||
|
||||
Reference in New Issue
Block a user