feat(标准解读流程): 不带入调整

This commit is contained in:
yjz
2024-07-12 21:03:25 +08:00
parent dc550533d1
commit 1e4d78d6f9
5 changed files with 117 additions and 13 deletions
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.standardinterpret.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict; import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.laws.documenttool.entity.BaseEntity; import com.jero.modules.laws.documenttool.entity.BaseEntity;
@@ -18,6 +19,7 @@ import org.springframework.format.annotation.DateTimeFormat;
*/ */
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName(value = "process_standard_interpret")
public class ProcessStandardInterpret extends BaseEntity { public class ProcessStandardInterpret extends BaseEntity {
/**主解读人*/ /**主解读人*/
@ApiModelProperty(value = "主解读人") @ApiModelProperty(value = "主解读人")
@@ -68,16 +70,16 @@ public class ProcessStandardInterpret extends BaseEntity {
private String projectId; private String projectId;
/**分解单来源(字典)*/ /**分解单来源(字典)*/
@ApiModelProperty(value = "分解单来源(字典)") @ApiModelProperty(value = "分解单来源(字典)")
@Dict(dicCode = "process_manuscript") @Dict(dicCode = "decomposition_source")
private String decompositionSource; private String decompositionSource;
/**发起时是否选择了条款(字典:1:是,2:否)*/ /**发起时是否选择了条款(字典:1:是,2:否)*/
@ApiModelProperty(value = "发起时是否选择了条款(字典:1:是,0:否)") @ApiModelProperty(value = "发起时是否选择了条款(字典:1:是,0:否)")
@Dict(dicCode = "yn") @Dict(dicCode = "yn")
private String isChooseClause; private String chooseClause;
/**是否下发(字典:1:是,2:否)*/ /**是否下发(字典:1:是,2:否)*/
@ApiModelProperty(value = "是否下发(字典:1:是,2:否)") @ApiModelProperty(value = "是否下发(字典:1:是,2:否)")
@Dict(dicCode = "is_distribute") @Dict(dicCode = "is_distribute")
private String isDistribute; private String distribute;
/**会签人员*/ /**会签人员*/
@ApiModelProperty(value = "会签人员") @ApiModelProperty(value = "会签人员")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')") @Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')")
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.standardinterpret.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict; import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.laws.documenttool.entity.BaseEntity; import com.jero.modules.laws.documenttool.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@@ -17,6 +18,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
*/ */
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("process_standard_interpret_clause")
public class ProcessStandardInterpretClause extends BaseEntity { public class ProcessStandardInterpretClause extends BaseEntity {
/**标准解读流程id*/ /**标准解读流程id*/
@ApiModelProperty(value = "标准解读流程id") @ApiModelProperty(value = "标准解读流程id")
@@ -2,10 +2,12 @@ package com.jero.modules.activiti.process.standardinterpret.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict; import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.laws.documenttool.entity.BaseEntity; import com.jero.modules.laws.documenttool.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
/** /**
@@ -14,7 +16,9 @@ import org.jeecgframework.poi.excel.annotation.Excel;
* @author makejava * @author makejava
* @since 2024-06-24 14:47:59 * @since 2024-06-24 14:47:59
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("process_standard_interpret_clause_sublist")
public class ProcessStandardInterpretClauseSublist extends BaseEntity { public class ProcessStandardInterpretClauseSublist extends BaseEntity {
/**标准解读流程_条款中间表id*/ /**标准解读流程_条款中间表id*/
@ApiModelProperty(value = "标准解读流程_条款中间表id") @ApiModelProperty(value = "标准解读流程_条款中间表id")
@@ -17,8 +17,8 @@
split_info_id, split_info_id,
project_id, project_id,
decomposition_source, decomposition_source,
is_distribute, distribute,
is_choose_clause, choose_clause,
countersign_person_ids, countersign_person_ids,
uploader, uploader,
approve_person_id, approve_person_id,
@@ -567,7 +567,8 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
processStandardInterpretClauseList = processStandardInterpretClauseList =
processStandardInterpretClauseService.queryList(processStandardInterpretClause); processStandardInterpretClauseService.queryList(processStandardInterpretClause);
// 主控部门联络人分发 // 主控部门联络人分发
if (StandardInterpretCommon.CONTACT_PERSON_DISTRIBUTE.equals(node)){ if (StandardInterpretCommon.CONTACT_PERSON_DISTRIBUTE.equals(node)
&& YesOrNoEnum.NO.getValue().equals(processStandardInterpret.getChooseClause())){
processStandardInterpretClauseList = new ArrayList<>(); processStandardInterpretClauseList = new ArrayList<>();
} }
} }
@@ -630,9 +631,10 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
LambdaUpdateWrapper<SarFileSplitInfoEO> queryWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SarFileSplitInfoEO> queryWrapper = new LambdaUpdateWrapper<>();
queryWrapper.eq(SarFileSplitInfoEO::getStandardId, standardId); queryWrapper.eq(SarFileSplitInfoEO::getStandardId, standardId);
List<SarFileSplitInfoEO> list = sarFileSplitInfoService.list(queryWrapper); List<SarFileSplitInfoEO> list = sarFileSplitInfoService.list(queryWrapper);
List<DictModel> dictItems = sysDictService.getDictItems("process_manuscript"); List<DictModel> dictItems = sysDictService.getDictItems("decomposition_source");
for (DictModel dictItem : dictItems) { for (DictModel dictItem : dictItems) {
if (list.stream().anyMatch(sarFileSplitInfoEO -> sarFileSplitInfoEO.getFileType().equals(dictItem.getValue()))){ if (list.stream().anyMatch(v -> v.getFileType().equals(dictItem.getValue())
|| dictItem.getValue().equals("noncarry"))){
dictItem.setIsDisabled(YesOrNoEnum.NO.getValue()); dictItem.setIsDisabled(YesOrNoEnum.NO.getValue());
}else { }else {
dictItem.setIsDisabled(YesOrNoEnum.YES.getValue()); dictItem.setIsDisabled(YesOrNoEnum.YES.getValue());
@@ -1123,12 +1125,106 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
@Override @Override
public void flowSave(StandardInterpretFlowDTO standardInterpretFlowDTO) { public void flowSave(StandardInterpretFlowDTO standardInterpretFlowDTO) {
// 处理业务数据 // 处理业务数据
handleBusinessData(standardInterpretFlowDTO); handleBusinessDataSave(standardInterpretFlowDTO);
// 保存流程信息 // 保存流程信息
flowUtility.flowSaveUpdate(standardInterpretFlowDTO.getProcessAll(), flowUtility.flowSaveUpdate(standardInterpretFlowDTO.getProcessAll(),
standardInterpretFlowDTO.getProcessApprovalRecord()); standardInterpretFlowDTO.getProcessApprovalRecord());
} }
private void handleBusinessDataSave(StandardInterpretFlowDTO standardInterpretFlowDTO) {
// map(参数)
Map<String, Object> map = standardInterpretFlowDTO.getMap();
// 流程全局删除ids
List<String> processAllDelIds = standardInterpretFlowDTO.getProcessAllDelIds();
StandardInterpretDTO data = standardInterpretFlowDTO.getData();
// 标准解读流程
ProcessStandardInterpret processStandardInterpret = data.getProcessStandardInterpret();
String standardInterpretId = StringUtils.isBlank(processStandardInterpret.getId()) ?
String.valueOf(SnowflakeUtils.snowflake()) : processStandardInterpret.getId();
processStandardInterpret.setId(standardInterpretId);
// 标准解读流程_条款中间表
List<ProcessStandardInterpretClause> processStandardInterpretClauseList =
data.getProcessStandardInterpretClauseList();
// 标准解读流程_条款中间表_子表
List<ProcessStandardInterpretClauseSublist> processStandardInterpretClauseSublistList =
data.getProcessStandardInterpretClauseSublistList();
// 当前任务节点
String node = StringUtils.isBlank(standardInterpretFlowDTO.getProcessApprovalRecord().getNodeId()) ?
StandardInterpretCommon.REGULATORY_ENGINEER_START
: standardInterpretFlowDTO.getProcessApprovalRecord().getNodeId();
// 删除旧数据
processStandardInterpretService.removeByIds(processAllDelIds);
processStandardInterpretClauseService.removeByIds(processAllDelIds);
processStandardInterpretClauseSublistService.removeByIds(processAllDelIds);
switch (node){
// 主控部门联络人分发
case StandardInterpretCommon.CONTACT_PERSON_DISTRIBUTE:
processStandardInterpretService.updateById(processStandardInterpret);
processStandardInterpretClauseService.removeByIds(processAllDelIds);
break;
// 标准主解读人分发
case StandardInterpretCommon.MASTER_INTERPRET_DISTRIBUTE:
// 标准主解读人重新分发(分发)
case StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE:
if (YesOrNoEnum.YES.getValue().equals(processStandardInterpret.getDistribute())){
// 分发
// 更新 标准解读流程_条款中间表
processStandardInterpretClauseService.saveOrUpdateBatch(processStandardInterpretClauseList);
}else {
// 不分发
// 保存标准解读流程_条款中间表_子表
processStandardInterpretClauseSublistService
.saveOrUpdateBatch(processStandardInterpretClauseSublistList);
// 判断是否有导入的数据,有则补齐对应中间表数据
List<ProcessStandardInterpretClause> newProcessStandardInterpretClauseList = new ArrayList<>();
for (ProcessStandardInterpretClauseSublist standardInterpretClauseSublist :
processStandardInterpretClauseSublistList) {
int count = processStandardInterpretClauseService.count(
new LambdaQueryWrapper<ProcessStandardInterpretClause>()
.eq(ProcessStandardInterpretClause::getId,
standardInterpretClauseSublist.getStandardInterpretClauseId())
.eq(ProcessStandardInterpretClause::getClauseId,
standardInterpretClauseSublist.getClauseId()));
if (count <= 0){
ProcessStandardInterpretClause newProcessStandardInterpretClause =
new ProcessStandardInterpretClause();
String snowflake = String.valueOf(SnowflakeUtils.snowflake());
newProcessStandardInterpretClause.setId(snowflake);
newProcessStandardInterpretClause.setStandardInterpretId(standardInterpretId);
newProcessStandardInterpretClause.setClauseId(standardInterpretClauseSublist.getClauseId());
newProcessStandardInterpretClause.setDecompositionSource(
processStandardInterpret.getDecompositionSource());
newProcessStandardInterpretClauseList.add(newProcessStandardInterpretClause);
// 更新 标准解读流程_条款中间表_子表关联关系
processStandardInterpretClauseSublistService.update(
new LambdaUpdateWrapper<ProcessStandardInterpretClauseSublist>()
.eq(ProcessStandardInterpretClauseSublist::getId,
standardInterpretClauseSublist.getId())
.set(ProcessStandardInterpretClauseSublist::getStandardInterpretClauseId
, snowflake));
}
}
processStandardInterpretClauseService.saveOrUpdateBatch(newProcessStandardInterpretClauseList);
}
processStandardInterpretService.updateById(processStandardInterpret);
break;
// 标准主解读汇总(分发)
case StandardInterpretCommon.MASTER_INTERPRET_SUMMARY:
processStandardInterpretService.updateById(processStandardInterpret);
processStandardInterpretClauseSublistService
.saveOrUpdateBatch(processStandardInterpretClauseSublistList);
break;
default:
processStandardInterpretClauseSublistService
.saveOrUpdateBatch(processStandardInterpretClauseSublistList);
break;
}
}
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
processHandleService.transfer(taskId, userId); processHandleService.transfer(taskId, userId);
@@ -1168,7 +1264,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
processStandardInterpretService.saveOrUpdate(processStandardInterpret); processStandardInterpretService.saveOrUpdate(processStandardInterpret);
// 如果没选择条款 // 如果没选择条款
if (CollectionUtils.isEmpty(processStandardInterpretClauseList)){ if (CollectionUtils.isEmpty(processStandardInterpretClauseList)){
processStandardInterpret.setIsChooseClause(YesOrNoEnum.NO.getValue()); processStandardInterpret.setChooseClause(YesOrNoEnum.NO.getValue());
// 自动保存所有条款 // 自动保存所有条款
processStandardInterpretClauseList = processStandardInterpretClauseList =
getClauseList(processStandardInterpret.getStandardId(), getClauseList(processStandardInterpret.getStandardId(),
@@ -1193,7 +1289,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
case StandardInterpretCommon.MASTER_INTERPRET_DISTRIBUTE: case StandardInterpretCommon.MASTER_INTERPRET_DISTRIBUTE:
// 标准主解读人重新分发(分发) // 标准主解读人重新分发(分发)
case StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE: case StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE:
if (YesOrNoEnum.YES.getValue().equals(processStandardInterpret.getIsDistribute())){ if (YesOrNoEnum.YES.getValue().equals(processStandardInterpret.getDistribute())){
// 分发 // 分发
// 删除旧数据 // 删除旧数据
processStandardInterpretClauseService.removeByIds(processAllDelIds); processStandardInterpretClauseService.removeByIds(processAllDelIds);
@@ -1289,9 +1385,9 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
processStandardInterpretClauseService.saveOrUpdateBatch(newProcessStandardInterpretClauseList); processStandardInterpretClauseService.saveOrUpdateBatch(newProcessStandardInterpretClauseList);
} }
if (StringUtils.isNotBlank(processStandardInterpret.getIsDistribute())){ if (StringUtils.isNotBlank(processStandardInterpret.getDistribute())){
map.put(StandardInterpretCommon.PASS_FIRST, map.put(StandardInterpretCommon.PASS_FIRST,
Integer.parseInt(processStandardInterpret.getIsDistribute())); Integer.parseInt(processStandardInterpret.getDistribute()));
} }
processStandardInterpretService.updateById(processStandardInterpret); processStandardInterpretService.updateById(processStandardInterpret);
break; break;