Merge remote-tracking branch 'origin/master'

This commit is contained in:
梁琦涛
2024-07-24 09:50:23 +08:00
8 changed files with 122 additions and 27 deletions
@@ -134,12 +134,11 @@ public class WorkCenterController {
public Result<?> getApprovalRecordList(ProcessApprovalRecord processApprovalRecord,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "type") String type,
HttpServletRequest req) {
@RequestParam(name = "type") String type) {
Page<ProcessApprovalRecord> page = new Page<>(pageNo, pageSize);
Page<ProcessApprovalRecord> pageList;
try {
pageList = processApprovalRecordService.pageList(page, processApprovalRecord, type, req);
pageList = processApprovalRecordService.pageList(page, processApprovalRecord, type);
}catch (Exception e){
return Result.error(MessageUtils.getMessage(ResultCommon.ERROR));
}
@@ -1,10 +1,13 @@
package com.jero.modules.activiti.process.standardComplianceCheck.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail;
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckDetailService;
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary;
import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibraryDetail;
import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary;
@@ -24,8 +27,9 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.DISCREPANCY;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.NOT_INVOLVE;
import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
import static com.jero.modules.activiti.service.ProcessApprovalRecordService.COMPLETED_RECORD_LIST;
/**
* @author liJiaRao
@@ -52,10 +56,39 @@ public class ProcessSCCEndListener implements ExecutionListener {
@Resource
private ILawsStandardMasterPlanService lawsStandardMasterPlanService;
@Resource
private ProcessApprovalRecordService processApprovalRecordService;
@Override
public void notify(DelegateExecution delegateExecution) {
log.info("法规符合性排查流程结束监听器开始执行");
// 找到流程的所有审批人员
Page<ProcessApprovalRecord> page = new Page<>(1, Integer.MAX_VALUE);
ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord();
processApprovalRecord.setProcessInstanceId(delegateExecution.getProcessInstanceId());
Page<ProcessApprovalRecord> processApprovalRecordPage = processApprovalRecordService
.pageList(page, processApprovalRecord, COMPLETED_RECORD_LIST);
List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordPage.getRecords();
// 找到流程的所有评估人
boolean distribute = (boolean) delegateExecution.getVariable(DISTRIBUTE);
String allAssessors;
if (distribute) {
allAssessors = processApprovalRecordList.stream()
.filter(task -> task.getNodeId().equals(DESIGNER_ENGINEER_EVALUATION))
.map(ProcessApprovalRecord::getUserId)
.distinct()
.collect(Collectors.joining(","));
} else {
allAssessors = (String) delegateExecution.getVariable(MAIN_CHECK_USER);
}
String allApprovalUsers = processApprovalRecordList.stream()
.filter(task -> task.getNodeId().equals(COUNTERSIGN) ||
task.getNodeId().equals(SENIOR_MANAGER_APPROVAL) ||
task.getNodeId().equals(DESIGNER_ENGINEER_EVALUATION))
.map(ProcessApprovalRecord::getUserId)
.distinct()
.collect(Collectors.joining(","));
LambdaQueryWrapper<ProcessStandardComplianceCheck> sccWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> sccDetailWrapper = new LambdaQueryWrapper<>();
// 找到流程数据
@@ -73,6 +106,8 @@ public class ProcessSCCEndListener implements ExecutionListener {
if (lawsConformityAssessmentLibrary == null) {
lawsConformityAssessmentLibrary = BeanCopyUtils.copyBean(scc, LawsConformityAssessmentLibrary.class);
lawsConformityAssessmentLibrary.setId(null);
lawsConformityAssessmentLibrary.setAllApprovalUser(allApprovalUsers);
lawsConformityAssessmentLibrary.setAllAssessor(allAssessors);
calService.save(lawsConformityAssessmentLibrary);
lawsStandardMasterPlanService.syncRegulatoryComplianceInvestigation(lawsConformityAssessmentLibrary);
} else {
@@ -82,6 +117,8 @@ public class ProcessSCCEndListener implements ExecutionListener {
lawsConformityAssessmentLibrary.setValuationTime(latestEvaluation
.map(ProcessStandardComplianceCheckDetail::getValuationTime).orElse(null));
// 更新评估日期
lawsConformityAssessmentLibrary.setAllApprovalUser(allApprovalUsers);
lawsConformityAssessmentLibrary.setAllAssessor(allAssessors);
calService.updateById(lawsConformityAssessmentLibrary);
}
@@ -96,7 +133,10 @@ public class ProcessSCCEndListener implements ExecutionListener {
.stream().filter(detail -> detail.getResult().equals(DISCREPANCY) ||
detail.getResult().equals(NOT_INVOLVE)).collect(Collectors.toList());
List<LawsEvaluationNotMetLibrary> lawsEvaluationNotMetLibraries = BeanCopyUtils.copyBeanList(notList, LawsEvaluationNotMetLibrary.class);
lawsEvaluationNotMetLibraries.forEach(detail -> detail.setId(null));
lawsEvaluationNotMetLibraries.forEach(detail -> {
detail.setId(null);
detail.setAllApprovalUser(allApprovalUsers);
});
notMetService.saveBatch(lawsEvaluationNotMetLibraries);
log.info("法规符合性排查流程结束监听器结束执行");
}
@@ -19,7 +19,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -60,7 +59,7 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
return this.getOne(wrapper);
}
public Page<ProcessApprovalRecord> pageList(Page<ProcessApprovalRecord> page, ProcessApprovalRecord processApprovalRecord, String type, HttpServletRequest req) {
public Page<ProcessApprovalRecord> pageList(Page<ProcessApprovalRecord> page, ProcessApprovalRecord processApprovalRecord, String type) {
boolean allSnapshotFlag = type.equals(ALL_RECORD_LIST);
String curUserId = UserUtils.getUserId();
QueryWrapper<ProcessApprovalRecord> wrapper = new QueryWrapper<>();
@@ -69,6 +69,18 @@ public class LawsConformityAssessmentLibrary implements Serializable {
@ApiModelProperty(value = "结束评估日期")
private Date endValuationTime;
/**
* 所有审批人员
*/
@ApiModelProperty(value = "所有审批人员")
private String allApprovalUser;
/**
* 所有审批人员
*/
@ApiModelProperty(value = "所有审批人员")
private String allAssessor;
/**
* 适用市场
*/
@@ -248,6 +248,12 @@ public class LawsEvaluationNotMetLibrary implements Serializable {
@Excel(name = "标准编号", width = 15, orderNum = "4")
private String standardName;
/**
* 这条数据的所有审批人员
*/
@ApiModelProperty(value = "这条数据的所有审批人员")
private String allApprovalUser;
/**
* 关闭用主键ids
*/
@@ -9,14 +9,15 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author ThinkBook
* @description 针对表【laws_conformity_assessment_library(法规符合性评估库)】的数据库操作Service
* @createDate 2024-06-24 14:47:19
*/
* @author ThinkBook
* @description 针对表【laws_conformity_assessment_library(法规符合性评估库)】的数据库操作Service
* @createDate 2024-06-24 14:47:19
*/
public interface ILawsConformityAssessmentLibraryService extends IService<LawsConformityAssessmentLibrary> {
/**
* 分页列表
*
* @param lawsConformityAssessmentLibrary
* @param pageNo
* @param pageSize
@@ -27,6 +28,7 @@ public interface ILawsConformityAssessmentLibraryService extends IService<LawsCo
/**
* 查看 分页列表
*
* @param lawsConformityAssessmentLibraryDetail
* @param pageNo
* @param pageSize
@@ -37,6 +39,7 @@ public interface ILawsConformityAssessmentLibraryService extends IService<LawsCo
/**
* 导出
*
* @param lawsConformityAssessmentLibrary
* @return
*/
@@ -44,4 +47,10 @@ public interface ILawsConformityAssessmentLibraryService extends IService<LawsCo
String fileName, String sheetName, HttpServletRequest req);
LawsConformityAssessmentLibrary queryOne(LawsConformityAssessmentLibrary lawsConformityAssessmentLibrary);
/**
* 是否 不是超级管理员或者法规管理员
* @return
*/
boolean noAdminAuth();
}
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.FileUtils;
import com.jero.common.util.ZipUtil;
import com.jero.common.util.obs.ObsBootUtil;
@@ -18,6 +19,7 @@ import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibra
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.util.SysWaterMarkUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -36,6 +38,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Stream;
/**
* @author ThinkBook
@@ -61,9 +64,20 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
@Resource
private LawsConformityAssessmentLibraryMapper lawsConformityAssessmentLibraryMapper;
/**
* 法规管理员
*/
@Value("${sys_role.laws_admin}")
private String lawsAdmin;
/**
* 超级管理员
*/
@Value("${sys_role.super_admin}")
private String superAdmin;
@Override
public IPage<LawsConformityAssessmentLibrary> queryPage(LawsConformityAssessmentLibrary lawsConformityAssessmentLibrary, Integer pageNo, Integer pageSize) {
// TODO 数据权限
QueryWrapper<LawsConformityAssessmentLibrary> queryWrapper = new QueryWrapper<>();
Page<LawsConformityAssessmentLibrary> page = new Page<>(pageNo, pageSize);
queryWrapper.like(StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getStandardNumber()),
@@ -79,8 +93,11 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
queryWrapper.between(lawsConformityAssessmentLibrary.getValuationTime() != null,
"valuation_time", lawsConformityAssessmentLibrary.getStartValuationTime(), lawsConformityAssessmentLibrary.getEndValuationTime());
queryWrapper.orderByDesc("cs.create_time");
Page<LawsConformityAssessmentLibrary> result = lawsConformityAssessmentLibraryMapper.queryByPage(page, queryWrapper);
return result;
if (noAdminAuth()) {
String userId = UserUtils.getUserId();
queryWrapper.like("cs.all_approval_user", userId);
}
return lawsConformityAssessmentLibraryMapper.queryByPage(page, queryWrapper);
}
@Override
@@ -100,6 +117,16 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
}
queryWrapper.like(StringUtils.isNotBlank(lawsConformityAssessmentLibraryDetail.getAssessor()),
"CONCAT(u.realname, '(', u.username, ')')", lawsConformityAssessmentLibraryDetail.getAssessor());
if (noAdminAuth()) {
String userId = UserUtils.getUserId();
String bindId = lawsConformityAssessmentLibraryDetail.getBindId();
LawsConformityAssessmentLibrary cal = this.getById(bindId);
String allApprovalUser = "";
allApprovalUser = cal.getAllApprovalUser();
if (StringUtils.isBlank(allApprovalUser) || !allApprovalUser.contains(userId)) {
queryWrapper.eq("assessor", userId);
}
}
return lawsConformityAssessmentLibraryMapper.detail(page, queryWrapper);
}
@@ -257,6 +284,12 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
}
}
@Override
public boolean noAdminAuth() {
LoginUser currentUser = UserUtils.getCurrentUser();
return Stream.of(currentUser.getRoleIds()).noneMatch(roleId -> roleId.equals(lawsAdmin) || roleId.equals(superAdmin));
}
}
@@ -12,9 +12,11 @@ import com.jero.common.util.FileUtils;
import com.jero.common.util.ZipUtil;
import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary;
import com.jero.modules.assessmentLibrary.mapper.LawsEvaluationNotMetLibraryMapper;
import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryService;
import com.jero.modules.assessmentLibrary.service.ILawsEvaluationNotMetLibraryService;
import com.jero.modules.laws.utils.ExcelExportUtilPro;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
@@ -47,24 +49,14 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl<LawsEval
private LawsEvaluationNotMetLibraryMapper notMetMapper;
@Resource
private ExcelExportUtilPro excelExportUtilPro;
@Resource
private ILawsConformityAssessmentLibraryService calService;
@Value("${jero.path.exportExcelTempPath}")
private String exportExcelTempPath;
private static final String EXPORT_EXCEL_TEMP = "exportExcelTemp";
/**
* 法规管理员
*/
@Value("${sys_role.laws_admin}")
private String lawsAdmin;
/**
* 超级管理员
*/
@Value("${sys_role.super_admin}")
private String superAdmin;
@Override
public IPage<LawsEvaluationNotMetLibrary> queryPage(LawsEvaluationNotMetLibrary lawsEvaluationNotMet, Integer pageNo, Integer pageSize, HttpServletRequest req) {
// TODO 权限
QueryWrapper<LawsEvaluationNotMetLibrary> queryWrapper = QueryGenerator.initQueryWrapper(lawsEvaluationNotMet, req.getParameterMap());
queryWrapper.like(StringUtils.isNotBlank(lawsEvaluationNotMet.getStandardNumber()),
"nm.standard_number", lawsEvaluationNotMet.getStandardNumber());
@@ -82,6 +74,11 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl<LawsEval
if (StringUtils.isNotBlank(lawsEvaluationNotMet.getSelections())) {
queryWrapper.in("nm.id", Arrays.asList(lawsEvaluationNotMet.getSelections().split(",")));
}
if (calService.noAdminAuth()) {
String userId = UserUtils.getUserId();
queryWrapper.like("nm.all_approval_user", userId).or()
.like("nm.assessor", userId);
}
queryWrapper.orderByDesc("nm.create_time");
Page<LawsEvaluationNotMetLibrary> page = new Page<>(pageNo, pageSize);
return notMetMapper.pageList(page, queryWrapper, lawsEvaluationNotMet);