feat(企标稽查计划): 完善

This commit is contained in:
yjz
2023-11-20 09:16:26 +08:00
parent 1d8e811fc6
commit 14d3bdfd3a
4 changed files with 77 additions and 22 deletions
@@ -14,6 +14,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
@@ -85,7 +86,7 @@ public class ProcessEsInspectPlan extends BaseEntity {
@ApiModelProperty(value = "备注")
private String remarks;
/**意见*/
@Excel(name = "意见", width = 15)
@ApiModelProperty(value = "意见")
private String opinion;
@TableField(exist = false)
private List<ProcessEsInspectPlanOpinion> processEsInspectPlanOpinionList;
}
@@ -53,4 +53,12 @@ public interface IEsInspectPlanFlowService {
* @param userId
*/
void flowTransfer(String taskId, String userId);
/**
* 企标稽查计划流程-是否是最后一个节点
*
* @param processInstanceId
* @return
*/
boolean isLastNode(String processInstanceId);
}
@@ -133,6 +133,11 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
// 自动完成第一个节点
taskService.complete(task.getId());
// 删除草稿
processDraftService.remove(new LambdaQueryWrapper<ProcessDraft>()
.eq(ProcessDraft::getProjectId, processAll.getProjectId())
.eq(ProcessDraft::getUserId, loginUser.getId()));
}
@@ -151,6 +156,12 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
ProcessDraft processDraft = new ProcessDraft();
// 属性拷贝
BeanUtils.copyProperties(processAll, processDraft);
processDraft.setId("");
processDraft.setUpdateBy("");
Date date = new Date();
processDraft.setCreateTime(date);
processDraft.setUpdateBy("");
processDraft.setUpdateTime(date);
// 保存草稿表
if (StringUtils.isNotBlank(processApprovalRecord.getCommitFile())){
processDraft.setHandleFile(processApprovalRecord.getCommitFile());
@@ -159,27 +170,33 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
processDraft.setHandleText(processApprovalRecord.getCommitText());
}
processDraft.setUserId(loginUser.getId());
// 删除旧草稿
processDraftService.remove(new LambdaQueryWrapper<ProcessDraft>()
.eq(ProcessDraft::getProjectId, processAll.getProjectId())
.eq(ProcessDraft::getUserId, loginUser.getId()));
// 保存新草稿
processDraftService.save(processDraft);
// 保存企标稽查计划业务表
List<String> ids = new ArrayList<>();
for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) {
if (StringUtils.isNotBlank(processApprovalRecord.getId())){
ids.add(processEsInspectPlan.getId());
}
processEsInspectPlan.setProjectId(processAll.getProjectId());
}
// 处理企标稽查计划业务表
List<ProcessEsInspectPlan> newInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isBlank(v.getId())).collect(Collectors.toList());
List<ProcessEsInspectPlan> oldInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isNotBlank(v.getId())).collect(Collectors.toList());
// 设置项目id
newInspectPlanList.forEach(v -> v.setProjectId(processAll.getProjectId()));
// 保存新数据
processEsInspectPlanService.saveBatch(newInspectPlanList);
// 旧数据ids
List<String> oldIds = oldInspectPlanList.stream().map(ProcessEsInspectPlan::getId).collect(Collectors.toList());
//删除旧数据
if (ids.isEmpty()){
if (oldIds.isEmpty()){
processEsInspectPlanService.remove(new LambdaQueryWrapper<ProcessEsInspectPlan>()
.eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId()));
}else {
processEsInspectPlanService.remove(new LambdaQueryWrapper<ProcessEsInspectPlan>()
.eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId())
.notIn(ProcessEsInspectPlan::getId, ids));
.notIn(ProcessEsInspectPlan::getId, oldIds));
}
// 保存新数据
processEsInspectPlanService.saveOrUpdateBatch(processEsInspectPlanList);
}
private Map<String, Object> listToString(Map<String, Object> map) {
@@ -198,7 +215,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
public EsInspectPlanFlowVO queryDetailByProjectId(String projectId, String taskId) {
EsInspectPlanFlowVO esInspectPlanFlowVO = new EsInspectPlanFlowVO();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ProcessAll processAll = new ProcessAll();
ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper<ProcessAll>()
.eq(ProcessAll::getProjectId, projectId), false);
ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord();
// 是否存在草稿
@@ -206,10 +224,12 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
.eq(ProcessDraft::getProjectId, projectId)
.eq(ProcessDraft::getUserId, loginUser.getId()));
if (!processDraftList.isEmpty()){
String id = processAll.getId();
// 存在草稿
ProcessDraft processDraft = processDraftList.get(0);
// 属性拷贝
BeanUtils.copyProperties(processDraft, processAll);
processAll.setId(id);
if (StringUtils.isNotBlank(processDraft.getHandleFile())){
processApprovalRecord.setCommitFile(processDraft.getHandleFile());
}
@@ -218,9 +238,6 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
}
}else {
// 不存在草稿
processAll = processAllService.getOne(new LambdaQueryWrapper<ProcessAll>()
.eq(ProcessAll::getProjectId, projectId), false);
processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getProjectId, projectId)
.eq(ProcessApprovalRecord::getUserId, loginUser.getId())
@@ -299,8 +316,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
if (task!= null) {
// 完成任务
taskService.complete(task.getId(), map);
// 任务结束
if (EsInspectPlanCommon.PROCESS_NODE_END.equals(task.getName())
// 判断是否是最后一个节点
if (isLastNode(processAll.getProcessInstanceId())
&& map.containsKey("pass") && (boolean) map.get("pass")){
// 抄送消息 通过hiwork 给稽查联络人抄送消息
List<ProcessNode> processNodeList = queryPersonInfo(EsInspectPlanCommon.NAME, processAll.getProcessInstanceId());
@@ -332,4 +349,15 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
// 转办
taskService.setAssignee(taskId, userId);
}
@Override
public boolean isLastNode(String processInstanceId) {
// 查询流程实例状态
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
// 如果流程实例为null,表示流程已结束
return processInstance == null;
}
}
@@ -11,7 +11,9 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.util.BeanCopyUtils;
import com.jero.common.util.ImportExcelUtil;
import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan;
import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion;
import com.jero.modules.activiti.process.esinspectplan.mapper.ProcessEsInspectPlanMapper;
import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanOpinionService;
import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
@@ -47,15 +49,18 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl<ProcessEsInspec
private final ProcessEsInspectPlanMapper processEsInspectPlanMapper;
private final ILawsEnterpriseStandardService lawsEnterpriseStandardService;
private final IProcessEsInspectPlanOpinionService iProcessEsInspectPlanOpinionService;
private final ISysUserService sysUserService;
private final ISysDepartService sysDepartService;
public ProcessEsInspectPlanServiceImpl(ProcessEsInspectPlanMapper processEsInspectPlanMapper,
ILawsEnterpriseStandardService lawsEnterpriseStandardService,
IProcessEsInspectPlanOpinionService iProcessEsInspectPlanOpinionService,
ISysUserService sysUserService,
ISysDepartService sysDepartService) {
this.processEsInspectPlanMapper = processEsInspectPlanMapper;
this.lawsEnterpriseStandardService = lawsEnterpriseStandardService;
this.iProcessEsInspectPlanOpinionService = iProcessEsInspectPlanOpinionService;
this.sysUserService = sysUserService;
this.sysDepartService = sysDepartService;
}
@@ -74,7 +79,9 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl<ProcessEsInspec
public IPage<ProcessEsInspectPlan> queryPage(ProcessEsInspectPlan processEsInspectPlan, Integer pageNo, Integer pageSize) {
QueryWrapper<ProcessEsInspectPlan> queryWrapper = getProcessEsInspectPlanQueryWrapper(processEsInspectPlan);
Page<ProcessEsInspectPlan> page = new Page<>(pageNo, pageSize);
return page(page, queryWrapper);
Page<ProcessEsInspectPlan> pages = page(page, queryWrapper);
fillOpinion(pages.getRecords());
return pages;
}
/**
@@ -86,9 +93,20 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl<ProcessEsInspec
@Override
public List<ProcessEsInspectPlan> queryList(ProcessEsInspectPlan processEsInspectPlan) {
QueryWrapper<ProcessEsInspectPlan> queryWrapper = getProcessEsInspectPlanQueryWrapper(processEsInspectPlan);
return list(queryWrapper);
List<ProcessEsInspectPlan> list = list(queryWrapper);
fillOpinion(list);
return list;
}
private void fillOpinion(List<ProcessEsInspectPlan> list) {
for (ProcessEsInspectPlan processEsInspectPlan : list) {
List<ProcessEsInspectPlanOpinion> opinionList = iProcessEsInspectPlanOpinionService.list(
new LambdaQueryWrapper<ProcessEsInspectPlanOpinion>()
.eq(ProcessEsInspectPlanOpinion::getInspectPlanId, processEsInspectPlan.getId()));
processEsInspectPlan.setProcessEsInspectPlanOpinionList(opinionList);
}
}
@NotNull
private static QueryWrapper<ProcessEsInspectPlan> getProcessEsInspectPlanQueryWrapper(ProcessEsInspectPlan processEsInspectPlan) {
QueryWrapper<ProcessEsInspectPlan> queryWrapper = new QueryWrapper<>();