feat(标准解读流程): 完善流程

This commit is contained in:
yjz
2024-07-12 15:18:33 +08:00
parent c2ac3c8da3
commit a4d1925ee2
5 changed files with 42 additions and 27 deletions
@@ -143,4 +143,9 @@ public class StandardInterpretCommon {
* 唯一标识
*/
public static final String PROJECT_ID = "projectId";
/**
* 分发的数据id
*/
public static final String DISTRIBUTE_ID_LIST = "distributeIdList";
}
@@ -50,5 +50,8 @@ public class ProcessStandardInterpretClause extends BaseEntity {
/**是否驳回过(1:是 0:否)*/
@ApiModelProperty(value = "是否驳回过(1:是 0:否)")
private String isReject;
/**是否分发(1:是 0:否)*/
@ApiModelProperty(value = "是否分发(1:是 0:否)")
private String isDistribute;
}
@@ -11,7 +11,8 @@
standard_interpret_id,
psic.clause_id,
interpret_person_ids,
is_reject
is_reject,
is_distribute
from laws_chery_dev.process_standard_interpret_clause psic
left join laws_domestic_standard lds on psic.clause_id = lds.id and lds.del_flag = 0
left join laws_document_split lds2 on psic.clause_id = lds2.id and lds2.del_flag = 0
@@ -37,8 +37,8 @@ public class ProcessStandardInterpretClauseServiceImpl
queryWrapper.eq(StringUtils.isNotBlank(processStandardInterpretClause.getStandardInterpretId()),
"standard_interpret_id", processStandardInterpretClause.getStandardInterpretId());
// 标准主解读人分发 节点查询未分发数据
queryWrapper.isNull("null".equals(processStandardInterpretClause.getInterpretPersonIds()),
"interpret_person_ids");
queryWrapper.eq(StringUtils.isNotBlank(processStandardInterpretClause.getIsDistribute()),
"is_distribute", processStandardInterpretClause.getIsDistribute());
// 标准主解读人重新分发 节点查询驳回数据
queryWrapper.eq(StringUtils.isNotBlank(processStandardInterpretClause.getIsReject()),
"is_reject", processStandardInterpretClause.getIsReject());
@@ -252,8 +252,9 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
String processInstanceId = delegateTask.getProcessInstanceId();
String projectId =(String) delegateTask.getVariable(StandardInterpretCommon.PROJECT_ID);
String snowflake =(String) delegateTask.getVariable(StandardInterpretCommon.SNOWFLAKE);
String projectId = (String) delegateTask.getVariable(StandardInterpretCommon.PROJECT_ID);
String snowflake = (String) delegateTask.getVariable(StandardInterpretCommon.SNOWFLAKE);
String distributeIdList = (String) delegateTask.getVariable(StandardInterpretCommon.DISTRIBUTE_ID_LIST);
ProcessAll processAlls = processAllService.getOne(new LambdaQueryWrapper<ProcessAll>()
.eq(ProcessAll::getProjectId, projectId));
@@ -272,10 +273,14 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
.eq(ProcessStandardInterpret::getProjectId, processAlls.getProjectId()));
if (!Objects.isNull(processStandardInterpret)){
String id = processStandardInterpret.getId();
LambdaQueryWrapper<ProcessStandardInterpretClause> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardInterpretClause::getStandardInterpretId, id);
if (StringUtils.isNotBlank(distributeIdList)){
queryWrapper.in(ProcessStandardInterpretClause::getId,
Arrays.asList(distributeIdList.split(",")));
}
List<ProcessStandardInterpretClause> processStandardInterpretClauseList =
processStandardInterpretClauseService.list(
new LambdaQueryWrapper<ProcessStandardInterpretClause>()
.eq(ProcessStandardInterpretClause::getStandardInterpretId, id));
processStandardInterpretClauseService.list(queryWrapper);
for (ProcessStandardInterpretClause processStandardInterpretClause :
processStandardInterpretClauseList) {
List<ProcessStandardInterpretClauseSublist> list =
@@ -304,6 +309,13 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
// 发起子流程
childrenFlowStart(standardInterpretFlowDTO);
processStandardInterpretClauseService.update(
new LambdaUpdateWrapper<ProcessStandardInterpretClause>()
.eq(ProcessStandardInterpretClause::getId,
processStandardInterpretClause.getId())
.set(ProcessStandardInterpretClause::getIsDistribute,
YesOrNoEnum.YES.getValue()));
processStandardInterpretClauseSublistService.update(
new LambdaUpdateWrapper<ProcessStandardInterpretClauseSublist>()
.eq(ProcessStandardInterpretClauseSublist::getId,
@@ -332,11 +344,12 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
processStandardInterpretClauseSublistService.getOne(
new LambdaQueryWrapper<ProcessStandardInterpretClauseSublist>()
.eq(ProcessStandardInterpretClauseSublist::getSnowFlake, snowflake));
// 清除中间表解读人
// 清除中间表解读人,设置驳回标识
processStandardInterpretClauseService.update(
new LambdaUpdateWrapper<ProcessStandardInterpretClause>()
.eq(ProcessStandardInterpretClause::getId,
processStandardInterpretClauseSublist.getStandardInterpretClauseId())
.set(ProcessStandardInterpretClause::getIsReject, YesOrNoEnum.YES.getValue())
.set(ProcessStandardInterpretClause::getInterpretPersonIds, null));
// 删除旧分发数据
@@ -525,7 +538,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
processStandardInterpretClause.setStandardInterpretId(processStandardInterpret.getId());
// 标准主解读人分发
if (StandardInterpretCommon.MASTER_INTERPRET_DISTRIBUTE.equals(node)){
processStandardInterpretClause.setInterpretPersonIds("null");
processStandardInterpretClause.setIsDistribute(YesOrNoEnum.NO.getValue());
}
// 标准主解读人重新分发(分发)
if (StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE.equals(node)){
@@ -1153,15 +1166,6 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
// 主控部门联络人分发
case StandardInterpretCommon.CONTACT_PERSON_DISTRIBUTE:
processStandardInterpretService.updateById(processStandardInterpret);
// List<String> clauseIdList = processStandardInterpretClauseList.stream()
// .map(ProcessStandardInterpretClause::getId)
// .collect(Collectors.toList());
// 删除旧数据
// LambdaQueryWrapper<ProcessStandardInterpretClause> removeQueryWrapper = new LambdaQueryWrapper<>();
// removeQueryWrapper.notIn(ProcessStandardInterpretClause::getId, clauseIdList);
// removeQueryWrapper.eq(ProcessStandardInterpretClause::getStandardInterpretId, standardInterpretId);
// processStandardInterpretClauseService.remove(removeQueryWrapper);
processStandardInterpretClauseService.removeByIds(processAllDelIds);
// 标准主解读人
@@ -1174,12 +1178,6 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
if (YesOrNoEnum.YES.getValue().equals(processStandardInterpret.getIsDistribute())){
// 分发
// 删除旧数据
// List<String> clauseIdList2 = processStandardInterpretClauseList.stream()
// .map(ProcessStandardInterpretClause::getId)
// .collect(Collectors.toList());
// LambdaQueryWrapper<ProcessStandardInterpretClause> removeQueryWrapper2 = new LambdaQueryWrapper<>();
// removeQueryWrapper2.notIn(ProcessStandardInterpretClause::getId, clauseIdList2);
// removeQueryWrapper2.eq(ProcessStandardInterpretClause::getStandardInterpretId, standardInterpretId);
processStandardInterpretClauseService.removeByIds(processAllDelIds);
// 更新 标准解读流程_条款中间表
@@ -1192,13 +1190,17 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
int unallocatedQuantity = 0;
// 子解读人
List<String> interpretPersonIdList = new ArrayList<>();
// 要分发的数据id
List<String> distributeIdList = new ArrayList<>();
for (ProcessStandardInterpretClause StandardInterpretClause : processStandardInterpretClauseList) {
distributeIdList.add(StandardInterpretClause.getId());
if (StringUtils.isBlank(StandardInterpretClause.getInterpretPersonIds())){
++ unallocatedQuantity;
continue;
}
for (String interpretPersonId : StandardInterpretClause.getInterpretPersonIds().split(",")) {
for (String interpretPersonId :
StandardInterpretClause.getInterpretPersonIds().split(",")) {
ProcessStandardInterpretClauseSublist clauseSublist =
new ProcessStandardInterpretClauseSublist();
clauseSublist.setStandardInterpretClauseId(StandardInterpretClause.getId());
@@ -1213,8 +1215,12 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
// 设置子解读人
map.put(StandardInterpretCommon.INTERPRETING_PEOPLE,
String.join(",", interpretPersonIdList));
// 设置要分发的数据id
map.put(StandardInterpretCommon.DISTRIBUTE_ID_LIST,
String.join(",", distributeIdList));
// 设置主流程实例id
map.put(ActivitiCommon.MAIN_INSTANCE_ID, standardInterpretFlowDTO.getProcessAll().getProcessInstanceId());
map.put(ActivitiCommon.MAIN_INSTANCE_ID,
standardInterpretFlowDTO.getProcessAll().getProcessInstanceId());
processStandardInterpretClauseSublistService.saveBatch(processStandardInterpretClauseSublists);
}else {
// 保存会签人员、审核人员、批准人员