|
@ -13,11 +13,15 @@ import com.easy.admin.common.api.vo.Result; |
|
|
import com.easy.admin.common.core.exception.EasyException; |
|
|
import com.easy.admin.common.core.exception.EasyException; |
|
|
import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper; |
|
|
import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper; |
|
|
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfofileMapper; |
|
|
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfofileMapper; |
|
|
|
|
|
import com.easy.admin.modules.huzhou.dao.HuzhouProjectinfoMoneyMapper; |
|
|
import com.easy.admin.modules.huzhou.entity.*; |
|
|
import com.easy.admin.modules.huzhou.entity.*; |
|
|
import com.easy.admin.modules.huzhou.service.*; |
|
|
import com.easy.admin.modules.huzhou.service.*; |
|
|
|
|
|
import com.easy.admin.modules.huzhou.vo.HuzhouMergesplitinfoVo; |
|
|
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; |
|
|
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; |
|
|
import com.easy.admin.sys.model.SysDict; |
|
|
import com.easy.admin.sys.model.SysDict; |
|
|
import com.easy.admin.sys.service.SysDictService; |
|
|
import com.easy.admin.sys.service.SysDictService; |
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
import org.activiti.engine.RuntimeService; |
|
|
import org.activiti.engine.RuntimeService; |
|
|
import org.activiti.engine.TaskService; |
|
|
import org.activiti.engine.TaskService; |
|
|
import org.activiti.engine.runtime.ProcessInstance; |
|
|
import org.activiti.engine.runtime.ProcessInstance; |
|
@ -55,6 +59,8 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
private HuzhouPlaninfofileMapper planinfofileMapper; |
|
|
private HuzhouPlaninfofileMapper planinfofileMapper; |
|
|
@Autowired |
|
|
@Autowired |
|
|
private HuzhouContractinfoMapper contractinfoMapper; |
|
|
private HuzhouContractinfoMapper contractinfoMapper; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private HuzhouProjectinfoMoneyMapper projectinfoMoneyMapper; |
|
|
// private String[] names ={"可研技术审查报告(初稿)确认","可研技术审查报告(复审稿)确认","可研技术审查报告(终稿)确认","造价评估报告确认","可行性研究报告审批(发改)","合同签订","首付支付","初验阶段","终验阶段","初步设计审批"};
|
|
|
// private String[] names ={"可研技术审查报告(初稿)确认","可研技术审查报告(复审稿)确认","可研技术审查报告(终稿)确认","造价评估报告确认","可行性研究报告审批(发改)","合同签订","首付支付","初验阶段","终验阶段","初步设计审批"};
|
|
|
private String[] names ={"合同签订","首付支付","初验阶段","终验阶段","初步设计审批"}; |
|
|
private String[] names ={"合同签订","首付支付","初验阶段","终验阶段","初步设计审批"}; |
|
|
|
|
|
|
|
@ -83,7 +89,23 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void submitPlanUploadFile(MultipartFile[] files, String planinfoid) throws IOException { |
|
|
public void submitPlanUploadFile(MultipartFile[] files, String planinfoid,String approvalMoneyFieldsValue,String contractMoneyFieldsValue) throws IOException { |
|
|
|
|
|
//立项审批和合同签订 金额输入
|
|
|
|
|
|
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); |
|
|
|
|
|
if(approvalMoneyFieldsValue!=null){ |
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper(); |
|
|
|
|
|
huzhouProjectinfoMoney = mapper.readValue(approvalMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); |
|
|
|
|
|
projectinfoMoneyMapper.insert(huzhouProjectinfoMoney); |
|
|
|
|
|
} else if (contractMoneyFieldsValue!=null) { |
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper(); |
|
|
|
|
|
huzhouProjectinfoMoney = mapper.readValue(contractMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); |
|
|
|
|
|
HuzhouProjectinfoMoney data = projectinfoMoneyMapper.selectById(huzhouProjectinfoMoney.getId()); |
|
|
|
|
|
if(data!=null){ |
|
|
|
|
|
projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney); |
|
|
|
|
|
}else{ |
|
|
|
|
|
projectinfoMoneyMapper.insert(huzhouProjectinfoMoney); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
//检查是否可提交
|
|
|
//检查是否可提交
|
|
|
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid); |
|
|
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid); |
|
|
String taskLevel = planinfo.getTaskLevel(); |
|
|
String taskLevel = planinfo.getTaskLevel(); |
|
@ -347,7 +369,20 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles) throws IOException { |
|
|
public void approvePlanFile(MultipartFile[] files, String taskId, String flag, |
|
|
|
|
|
String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles, |
|
|
|
|
|
String approvalMoneyFieldsValue,String contractMoneyFieldsValue) throws IOException { |
|
|
|
|
|
//立项审批和合同签订 金额输入
|
|
|
|
|
|
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); |
|
|
|
|
|
if(approvalMoneyFieldsValue!=null){ |
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper(); |
|
|
|
|
|
huzhouProjectinfoMoney = mapper.readValue(approvalMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); |
|
|
|
|
|
projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney); |
|
|
|
|
|
} else if (contractMoneyFieldsValue!=null) { |
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper(); |
|
|
|
|
|
huzhouProjectinfoMoney = mapper.readValue(contractMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); |
|
|
|
|
|
projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney); |
|
|
|
|
|
} |
|
|
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); |
|
|
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); |
|
|
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid); |
|
|
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid); |
|
@ -408,6 +443,14 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
HuzhouPlaninfo byId = planinfoService.getById(planinfoid); |
|
|
HuzhouPlaninfo byId = planinfoService.getById(planinfoid); |
|
|
String taskName = StrUtil.trim(byId.getTaskName()); |
|
|
String taskName = StrUtil.trim(byId.getTaskName()); |
|
|
if("可研报告终稿编制".equals(taskName)){ |
|
|
if("可研报告终稿编制".equals(taskName)){ |
|
|
|
|
|
//查询是否已有完成的流程。有两个以上
|
|
|
|
|
|
queryWrapper.clear(); |
|
|
|
|
|
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid); |
|
|
|
|
|
processinfos = processinfoService.list(queryWrapper); |
|
|
|
|
|
|
|
|
|
|
|
if(processinfos.size()>=2){ |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
//获取造价评估报告确认节点id
|
|
|
//获取造价评估报告确认节点id
|
|
|
String projectId1 = byId.getProjectId(); |
|
|
String projectId1 = byId.getProjectId(); |
|
|
LambdaQueryWrapper<HuzhouPlaninfo> wrapper = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<HuzhouPlaninfo> wrapper = new LambdaQueryWrapper<>(); |
|
@ -465,4 +508,72 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
String name = processinfoService.getProcessName(pid); |
|
|
String name = processinfoService.getProcessName(pid); |
|
|
return name; |
|
|
return name; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void planREUploadFile(MultipartFile[] files, String planinfoid) throws IOException { |
|
|
|
|
|
//检查是否可提交
|
|
|
|
|
|
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid); |
|
|
|
|
|
String taskLevel = planinfo.getTaskLevel(); |
|
|
|
|
|
List<HuzhouPlaninfo> childPlanList = planinfoService.queryChildPlan(planinfo.getProjectId(), planinfo.getTaskLevel(),"0,1"); |
|
|
|
|
|
if(childPlanList.size()>0){ |
|
|
|
|
|
throw new EasyException("存在未完成(审批中)的子项。当前阶段不允许提交文件"); |
|
|
|
|
|
} |
|
|
|
|
|
planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2","1"); |
|
|
|
|
|
String taskName = planinfo.getTaskName(); |
|
|
|
|
|
taskName=StrUtil.trim(taskName); |
|
|
|
|
|
String projectId = planinfoService.getById(planinfoid).getProjectId(); |
|
|
|
|
|
HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectId); |
|
|
|
|
|
String superLeader = ""; |
|
|
|
|
|
//如果项目信息为空说明是子项目
|
|
|
|
|
|
if(huzhouProjectinfo==null){ |
|
|
|
|
|
HuzhouSubProjectinfo byId = subProjectinfoService.getById(projectId); |
|
|
|
|
|
superLeader = byId.getSuperLeader(); |
|
|
|
|
|
}else { |
|
|
|
|
|
superLeader=huzhouProjectinfo.getSuperLeader(); |
|
|
|
|
|
} |
|
|
|
|
|
//获取上级指导室中文名称
|
|
|
|
|
|
SysDict dict = sysDictService.getDictByCode("superLeader", superLeader); |
|
|
|
|
|
String dictName = dict.getName(); |
|
|
|
|
|
//上级指导室中文名称查询角色有哪些人
|
|
|
|
|
|
List<HashMap<String, String>> userDictByRoles = userService.getUserDictByRoles(dictName); |
|
|
|
|
|
ArrayList<String> strings = new ArrayList<>(); |
|
|
|
|
|
if(userDictByRoles==null||userDictByRoles.size()==0){ |
|
|
|
|
|
String error = "任务牵头处室"+dictName+"负责人未找到"; |
|
|
|
|
|
throw new EasyException(error); |
|
|
|
|
|
} |
|
|
|
|
|
for (HashMap<String, String> map:userDictByRoles |
|
|
|
|
|
) { |
|
|
|
|
|
String userid = map.get("value"); |
|
|
|
|
|
strings.add(userid); |
|
|
|
|
|
} |
|
|
|
|
|
if ("可研报告初稿编制".equals(taskName)) { |
|
|
|
|
|
//审批通过但是要开始下一阶段流程
|
|
|
|
|
|
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo(); |
|
|
|
|
|
huzhouPlaninfo.setId(planinfoid); |
|
|
|
|
|
huzhouPlaninfo.setIsfinish("2"); |
|
|
|
|
|
huzhouPlaninfo.setActualStartTime(new Date()); |
|
|
|
|
|
huzhouPlaninfo.setActualEndTime(new Date()); |
|
|
|
|
|
planinfoService.updateById(huzhouPlaninfo); |
|
|
|
|
|
|
|
|
|
|
|
} else if ("可研报告终稿编制".equals(taskName)) { |
|
|
|
|
|
//finalFeasibilityReportDraft
|
|
|
|
|
|
WorkFlow workFlow = workflowService.createFlow("finalFeasibilityReportDraft",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); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|