Browse Source

优化合并拆分项目

master
zhouhaibin 2 months ago
parent
commit
b10e13604a
  1. 25
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouMergesplitinfoController.java
  2. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java
  3. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/WorkflowMapper.xml
  4. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/HuzhouMergesplitinfoService.java
  5. 8
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java
  6. 35
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouMergesplitinfoServiceImpl.java
  7. 11
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java
  8. 25
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java
  9. 8
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  10. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java

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

@ -1,11 +1,15 @@
package com.easy.admin.modules.huzhou.controller;
import cn.hutool.core.util.StrUtil;
import com.easy.admin.common.core.annotation.ResponseResult;
import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouMergesplitinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.service.HuzhouMergesplitinfoService;
import com.easy.admin.modules.huzhou.vo.HuzhouMergesplitinfoVo;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@ -55,18 +59,31 @@ public class HuzhouMergesplitinfoController {
String taskId,
String flag,
String projectid,
String comment
String comment,
@RequestParam(value = "mergesplitinfoVo",required = false) String mergesplitinfoVo
) throws Exception {
huzhouMergesplitinfoService.approvalMergeProject(file,taskId,flag,projectid,comment);
HuzhouMergesplitinfoVo vo=null;
if(mergesplitinfoVo!=null){
ObjectMapper mapper = new ObjectMapper();
vo = mapper.readValue(mergesplitinfoVo, new TypeReference<HuzhouMergesplitinfoVo>(){});
}
huzhouMergesplitinfoService.approvalMergeProject(file,taskId,flag,projectid,comment,vo);
}
@PostMapping("/approvalSplitProject")
public void approvalSplitProject(@RequestParam(value = "file",required = false) MultipartFile[] file,
String taskId,
String flag,
String projectid,
String comment
String comment,
@RequestParam(value = "mergesplitinfoVoList",required = false) String mergesplitinfoVoList
) throws Exception {
huzhouMergesplitinfoService.approvalSplitProject(file,taskId,flag,projectid,comment);
List<HuzhouMergesplitinfoVo> list=null;
if(mergesplitinfoVoList!=null){
ObjectMapper mapper = new ObjectMapper();
list = mapper.readValue(mergesplitinfoVoList, new TypeReference<List<HuzhouMergesplitinfoVo>>(){});
}
huzhouMergesplitinfoService.approvalSplitProject(file,taskId,flag,projectid,comment,list);
}
@GetMapping("/getFromDataFromMerge")
public List<HuzhouProjectinfo> getFromDataFromMerge(@RequestParam("projectid") String projectid){

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java

@ -268,7 +268,7 @@ public class WorkflowController {
if(info!=null){
reshashMap.put("projectName",info.getProjectName());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String createtime = dateFormat.format(info.getCreateDate());
String createtime = dateFormat.format(processinfo.getCreateDate());
reshashMap.put("createTime",createtime);
}
@ -371,7 +371,7 @@ public class WorkflowController {
for (HashMap<String,Object> hash: approvalEntityList) {
String operator = hash.get("operator").toString();
if(StringUtils.isNotBlank(approvalSuggestion)&&approvalSuggestion.contains("撤回")){
if(operator.equals(nickname)&&hash.get("approvalStatue").equals("1")){
if(operator.equals(nickname)){
hashMap.put("taskName",hash.get("taskName"));
}
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/WorkflowMapper.xml

@ -17,7 +17,7 @@
<select id="getProjectInfo" resultType="com.easy.admin.modules.huzhou.entity.WorkflowBaseInfo" parameterType="String">
SELECT project_Name,reform_name,create_date,stage FROM `huzhou_projectinfo` WHERE id = #{projectId}
UNION ALL
SELECT task_name project_Name,null,create_date,null from huzhou_planinfo WHERE id = #{projectId}
SELECT project_Name,reform_name,create_date,stage FROM `huzhou_projectinfo` WHERE id =( SELECT DISTINCT project_id from huzhou_planinfo WHERE id = #{projectId})
union all
SELECT
(select field_name from huzhou_changefieldmanage c where c.field_value =f.field_value) project_Name,

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

@ -26,9 +26,9 @@ public interface HuzhouMergesplitinfoService extends IService<HuzhouMergesplitin
void submitSplitProject(List<HuzhouMergesplitinfoVo> mergesplitinfoVoList);
void approvalMergeProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment);
void approvalMergeProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment,HuzhouMergesplitinfoVo mergesplitinfoVo);
void approvalSplitProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment);
void approvalSplitProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment,List<HuzhouMergesplitinfoVo> mergesplitinfoVoList);
List<HuzhouProjectinfo> getFromDataFromMerge(String projectid);

8
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java

@ -164,6 +164,9 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
}
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.complete(taskId, variables);
}else {
@ -222,6 +225,9 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
}
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.complete(taskId, variables);
}else {
@ -330,7 +336,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
List<HuzhouFieldchangehistory> list = list(queryWrapper);
Map<String, HuzhouFieldchangehistory> nameMap = list.stream().collect(Collectors.toMap(HuzhouFieldchangehistory::getFieldValue, o -> o));
List<HuzhouFieldchangehistory> result = new ArrayList<>();
List<String> sortList = Arrays.asList("constructionPeriod","superLeader","reformName","workplaceProperties","dutyWorkplace","adminDivision","projectContacts","totalMoney","centralMoney","provincialMoney","cityMoney",
List<String> sortList = Arrays.asList("projectName","constructionPeriod","superLeader","reformName","workplaceProperties","dutyWorkplace","adminDivision","projectContacts","totalMoney","centralMoney","provincialMoney","cityMoney",
"countyMoney","selfMoney","payamount2023Money","payamount2024Money","payamount2025Money");
for(String name:sortList){
if(nameMap.get(name)!=null){

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

@ -208,13 +208,21 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
}
@Override
public void approvalMergeProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment) {
public void approvalMergeProject(MultipartFile[] files, String taskId, String flag, String projectid, String comment,HuzhouMergesplitinfoVo mergesplitinfoVo) {
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(mergesplitinfoVo!=null){
HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo();
BeanUtils.copyProperties(mergesplitinfoVo, huzhouProjectinfo);
userprojectService.removeByProjectId(projectid,"0");
userprojectService.saveFromProject(huzhouProjectinfo,"0");
huzhouProjectinfo.setId(projectid);
projectinfoService.updateById(huzhouProjectinfo);
}
if("3".equals(flag)){
processinfoService.modifyStatusByProjectId(projectid,"0",processName);
return ;
@ -240,17 +248,36 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
}
@Override
public void approvalSplitProject(MultipartFile[] file, String taskId, String flag, String oldprojectid, String comment) {
public void approvalSplitProject(MultipartFile[] file, String taskId, String flag, String oldprojectid, String comment,List<HuzhouMergesplitinfoVo> mergesplitinfoVoList) {
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();
//新项目id在HuzhouMergesplitinfo projectid字段中
LambdaQueryWrapper<HuzhouMergesplitinfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getId,oldprojectid);
lambdaQueryWrapper.eq(HuzhouMergesplitinfo::getMergeOrSplit,"split");
List<HuzhouMergesplitinfo> list = mergesplitinfoMapper.selectList(lambdaQueryWrapper);
if("3".equals(flag)){
processinfoService.modifyStatusByProjectId(oldprojectid,"0",processName);
return ;
}
if(mergesplitinfoVoList!=null){
HuzhouProjectinfo huzhouProjectinfo1 = new HuzhouProjectinfo();
HuzhouProjectinfo huzhouProjectinfo2 = new HuzhouProjectinfo();
BeanUtils.copyProperties(mergesplitinfoVoList.get(0), huzhouProjectinfo1);
BeanUtils.copyProperties(mergesplitinfoVoList.get(1), huzhouProjectinfo2);
huzhouProjectinfo1.setStage(list.get(0).getProjectId());
huzhouProjectinfo2.setStage(list.get(1).getProjectId());
userprojectService.removeByProjectId(huzhouProjectinfo1.getId(),"0");
userprojectService.removeByProjectId(huzhouProjectinfo2.getId(),"0");
userprojectService.saveFromProject(huzhouProjectinfo1,"0");
userprojectService.saveFromProject(huzhouProjectinfo2,"0");
projectinfoService.updateById(huzhouProjectinfo1);
projectinfoService.updateById(huzhouProjectinfo2);
}
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
if(processInstance==null&&"1".equals(flag)){
//将旧项目状态变成已停止0.1,可见
@ -259,10 +286,6 @@ public class HuzhouMergesplitinfoServiceImpl extends ServiceImpl<HuzhouMergespli
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");

11
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java

@ -130,10 +130,15 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
Row chineseTitlerow = sheet.getRow(1);
int cellNum = 5;
//获取字段名称
NameMap.put("0","taskLevel");
NameMap.put("1","taskName");
NameMap.put("2","scheduledStartTime");
NameMap.put("3","scheduledEndTime");
NameMap.put("4","taskFile");
// for (int i = 0; i < cellNum; i++) {
// NameMap.put(String.valueOf(i),titlerow.getCell(i).getStringCellValue());
// }
for (int i = 0; i < cellNum; i++) {
NameMap.put(String.valueOf(i),titlerow.getCell(i).getStringCellValue());
}
for (int i = 1; i < cellNum; i++) {
chineseNameMap.put(String.valueOf(i),chineseTitlerow.getCell(i).getStringCellValue());
}
for (int i = 2; i < physicalNumberOfRows; i++) {

25
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java

@ -212,11 +212,14 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
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);
taskService.complete(taskId, variables);
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid);
huzhouPlaninfo.setIsfinish("1");
@ -291,7 +294,25 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
huzhouPlaninfo.setIsfinish("1");
huzhouPlaninfo.setActualStartTime(new Date());
planinfoService.updateById(huzhouPlaninfo);
} else{
} else if("立项审批".equals(taskName)){
WorkFlow workFlow = workflowService.createFlow("projectApprovalStage",planinfoid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
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);
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid);
huzhouPlaninfo.setIsfinish("1");
huzhouPlaninfo.setActualStartTime(new Date());
planinfoService.updateById(huzhouPlaninfo);
}else{
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid);
huzhouPlaninfo.setIsfinish("2");

8
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

@ -1138,8 +1138,12 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
int total=projectIds.size();
int ptNum=0;
int rkNum=0;
ptNum=numByType.get("1").getNum();
rkNum=numByType.get("2").getNum();
if(numByType.get("1")!=null){
ptNum=numByType.get("1").getNum();
}
if(numByType.get("2")!=null){
rkNum=numByType.get("2").getNum();
}
CountBoardOV result = CountBoardOV.builder().total(String.valueOf(total)).ptNum(String.valueOf(ptNum)).rkNum(String.valueOf(rkNum)).build();
//项目总进度
TotalProgressOV totalProgress = this.countNumByPlan(rkIds);

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java

@ -232,7 +232,7 @@ public class WorkflowServiceImpl implements IWorkflowService {
UserTask userTask = (UserTask) flowElement;
String name = userTask.getName();
if("发起人".equals(name)){
if("发起人".equals(name)&&!task.getProcessDefinitionId().contains("costEvalReportConfirm")){
Select select1 = new Select();
select1.setLabel("同意");
select1.setValue("1");

Loading…
Cancel
Save