Browse Source

优化项目合并和拆分

master
zhouhaibin 2 months ago
parent
commit
310b786193
  1. 28
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouMergesplitinfoController.java
  2. 1
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouMergesplitinfo.java
  3. 10
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/HuzhouMergesplitinfoService.java
  4. 135
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouMergesplitinfoServiceImpl.java
  5. BIN
      huzhou/src/main/resources/excelTemplate/项目计划模板.xlsx

28
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouMergesplitinfoController.java

@ -54,21 +54,29 @@ public class HuzhouMergesplitinfoController {
public void approvalMergeProject(@RequestParam(value = "file",required = false) MultipartFile[] file,
String taskId,
String flag,
String fieldChangeGroupid,
String comment,
String isEdit,
HuzhouProjectinfo newProjectinfo) throws Exception {
// huzhouMergesplitinfoService.approvalMergeProject(file,taskId,flag,fieldChangeGroupid,comment,isEdit,newProjectinfo);
String projectid,
String comment
) throws Exception {
huzhouMergesplitinfoService.approvalMergeProject(file,taskId,flag,projectid,comment);
}
@PostMapping("/approvalSplitProject")
public void approvalSplitProject(@RequestParam(value = "file",required = false) MultipartFile[] file,
String taskId,
String flag,
String fieldChangeGroupid,
String comment,
String isEdit,
HuzhouProjectinfo newProjectinfo) throws Exception {
// huzhouMergesplitinfoService.approvalSplitProject(file,taskId,flag,fieldChangeGroupid,comment,isEdit,newProjectinfo);
String projectid,
String comment
) throws Exception {
huzhouMergesplitinfoService.approvalSplitProject(file,taskId,flag,projectid,comment);
}
@GetMapping("/getFromDataFromMerge")
public List<HuzhouProjectinfo> getFromDataFromMerge(@RequestParam("projectid") String projectid){
List<HuzhouProjectinfo> result = huzhouMergesplitinfoService.getFromDataFromMerge(projectid);
return result;
}
@GetMapping("/getFromDataFromSplit")
public List<HuzhouProjectinfo> getFromDataFromSplit(@RequestParam("projectid") String projectid){
List<HuzhouProjectinfo> result = huzhouMergesplitinfoService.getFromDataFromSplit(projectid);
return result;
}
}

1
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouMergesplitinfo.java

@ -1,6 +1,5 @@
package com.easy.admin.modules.huzhou.entity;
import com.easy.admin.modules.huzhou.entity.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;

10
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/HuzhouMergesplitinfoService.java

@ -3,7 +3,9 @@ package com.easy.admin.modules.huzhou.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easy.admin.modules.huzhou.entity.HuzhouMergesplitinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.vo.HuzhouMergesplitinfoVo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@ -23,4 +25,12 @@ public interface HuzhouMergesplitinfoService extends IService<HuzhouMergesplitin
List<HuzhouMergesplitinfo> getSplitDetailList(String projectid);
void submitSplitProject(List<HuzhouMergesplitinfoVo> mergesplitinfoVoList);
void approvalMergeProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment);
void approvalSplitProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment);
List<HuzhouProjectinfo> getFromDataFromMerge(String projectid);
List<HuzhouProjectinfo> getFromDataFromSplit(String projectid);
}

135
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouMergesplitinfoServiceImpl.java

@ -2,23 +2,21 @@ package com.easy.admin.modules.huzhou.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.modules.huzhou.dao.HuzhouMergesplitinfoMapper;
import com.easy.admin.modules.huzhou.entity.HuzhouMergesplitinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.entity.WorkFlow;
import com.easy.admin.modules.huzhou.service.HuzhouMergesplitinfoService;
import com.easy.admin.modules.huzhou.service.IHuzhouProjectinfoService;
import com.easy.admin.modules.huzhou.service.IHuzhouUserprojectService;
import com.easy.admin.modules.huzhou.service.IWorkflowService;
import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.modules.huzhou.vo.HuzhouMergesplitinfoVo;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -27,12 +25,10 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* (HuzhouMergesplitinfo)表服务实现类
@ -59,6 +55,8 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
private SysDictService sysDictService;
@Autowired
private TaskService taskService;
@Autowired
private IHuzhouProcessinfoService processinfoService;
@Override
public void submitMergeProject(HuzhouMergesplitinfoVo mergesplitinfoVo) {
HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo();
@ -83,12 +81,12 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
huzhouMergesplitinfo.setMergeOrSplit("merge");
huzhouMergesplitinfo.setProjectId(huzhouProjectinfo.getId());
projectinfo.setStage("0.1");
projectinfoService.updateById(projectinfo);
// projectinfoService.updateById(projectinfo);
mergesplitinfoMapper.insert(huzhouMergesplitinfo);
}
//发起流程
String superLeader = mergesplitinfoVo.getSuperLeader();
WorkFlow workFlow = workflowService.createFlow("fieldChange",huzhouProjectinfo.getId());
WorkFlow workFlow = workflowService.createFlow("MergeProject",huzhouProjectinfo.getId());
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
@ -110,6 +108,9 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
}
@ -126,7 +127,19 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
LambdaQueryWrapper<HuzhouMergesplitinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouMergesplitinfo::getProjectId, projectid);
queryWrapper.eq(HuzhouMergesplitinfo::getMergeOrSplit, "split");
return mergesplitinfoMapper.selectList(queryWrapper);
List<HuzhouMergesplitinfo> huzhouMergesplitinfos = mergesplitinfoMapper.selectList(queryWrapper);
if(huzhouMergesplitinfos==null||huzhouMergesplitinfos.size()==0){
ArrayList<HuzhouMergesplitinfo> huzhouProjectinfos = new ArrayList<>();
LambdaQueryWrapper<HuzhouMergesplitinfo> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(HuzhouMergesplitinfo::getId, projectid);
queryWrapper1.eq(HuzhouMergesplitinfo::getMergeOrSplit, "split");
huzhouMergesplitinfos = mergesplitinfoMapper.selectList(queryWrapper1);
huzhouProjectinfos.add(huzhouMergesplitinfos.get(0));
return huzhouProjectinfos;
}else{
return huzhouMergesplitinfos;
}
}
@Override
@ -155,7 +168,7 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
huzhouMergesplitinfo.setMergeOrSplit("split");
huzhouMergesplitinfo.setProjectId(huzhouProjectinfo.getId());
projectinfo.setStage("0.1");
projectinfoService.updateById(projectinfo);
// projectinfoService.updateById(projectinfo);
mergesplitinfoMapper.insert(huzhouMergesplitinfo);
}
@ -163,7 +176,7 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
HuzhouProjectinfo oldProjectinfo = projectinfoService.getById(oldId);
//发起流程
String superLeader = oldProjectinfo.getSuperLeader();
WorkFlow workFlow = workflowService.createFlow("fieldChange",oldId);
WorkFlow workFlow = workflowService.createFlow("SplitProject",oldId);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
@ -185,6 +198,96 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
}
@Override
public void approvalMergeProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment) {
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouProcessinfo::getProjectid,projectid);
queryWrapper.eq(HuzhouProcessinfo::getProcessstatus,"1");
List<HuzhouProcessinfo> processinfos = processinfoService.list(queryWrapper);
String processName = processinfos.get(0).getProcessName();
if("3".equals(flag)){
processinfoService.modifyStatusByProjectId(projectid,"0",processName);
return ;
}
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
if(processInstance==null&&"1".equals(flag)){
//将新项目状态变成0,可见
HuzhouProjectinfo newpj = projectinfoService.getById(projectid);
newpj.setStage("0");
projectinfoService.updateById(newpj);
//查询要合并的项目,将项目状态进行变更
LambdaQueryWrapper<HuzhouMergesplitinfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getProjectId,projectid);
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getMergeOrSplit,"merge");
List<HuzhouMergesplitinfo> mergesplitinfos = mergesplitinfoMapper.selectList(lambdaQueryWrapper);
for (HuzhouMergesplitinfo mergesplitinfo : mergesplitinfos) {
HuzhouProjectinfo oldpj = projectinfoService.getById(mergesplitinfo.getId());
oldpj.setStage("0.1");
projectinfoService.updateById(oldpj);
}
processinfoService.modifyStatusByProjectId(projectid,"2",processName);
}
}
@Override
public void approvalSplitProject(MultipartFile[] file, String taskId, String flag, String oldprojectid, String comment) {
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouProcessinfo::getProjectid,oldprojectid);
queryWrapper.eq(HuzhouProcessinfo::getProcessstatus,"1");
List<HuzhouProcessinfo> processinfos = processinfoService.list(queryWrapper);
String processName = processinfos.get(0).getProcessName();
if("3".equals(flag)){
processinfoService.modifyStatusByProjectId(oldprojectid,"0",processName);
return ;
}
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
if(processInstance==null&&"1".equals(flag)){
//将旧项目状态变成已停止0.1,可见
HuzhouProjectinfo oldpj = projectinfoService.getById(oldprojectid);
oldpj.setStage("0.1");
projectinfoService.updateById(oldpj);
//查询项目拆分后,新项目的id,改变其状态
//新项目id在HuzhouMergesplitinfo projectid字段中
LambdaQueryWrapper<HuzhouMergesplitinfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getId,oldprojectid);
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getMergeOrSplit,"split");
List<HuzhouMergesplitinfo> list = mergesplitinfoMapper.selectList(lambdaQueryWrapper);
for (HuzhouMergesplitinfo mergesplitinfo : list) {
HuzhouProjectinfo newpj = projectinfoService.getById(mergesplitinfo.getProjectId());
newpj.setStage("0");
projectinfoService.updateById(newpj);
}
processinfoService.modifyStatusByProjectId(oldprojectid,"2",processName);
}
}
@Override
public List<HuzhouProjectinfo> getFromDataFromMerge(String projectid) {
ArrayList<HuzhouProjectinfo> huzhouProjectinfos = new ArrayList<>();
HuzhouProjectinfo projectinfo = projectinfoService.getById(projectid);
huzhouProjectinfos.add(projectinfo);
return huzhouProjectinfos;
}
@Override
public List<HuzhouProjectinfo> getFromDataFromSplit(String projectid) {
LambdaQueryWrapper<HuzhouMergesplitinfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getId,projectid);
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getMergeOrSplit,"split");
List<HuzhouMergesplitinfo> mergesplitinfos = mergesplitinfoMapper.selectList(lambdaQueryWrapper);
ArrayList<HuzhouProjectinfo> huzhouProjectinfos = new ArrayList<>();
for (HuzhouMergesplitinfo mergesplitinfo : mergesplitinfos) {
HuzhouProjectinfo projectinfo = projectinfoService.getById(mergesplitinfo.getProjectId());
huzhouProjectinfos.add(projectinfo);
}
return huzhouProjectinfos;
}
}

BIN
huzhou/src/main/resources/excelTemplate/项目计划模板.xlsx

Binary file not shown.
Loading…
Cancel
Save