Browse Source

优化流程信息2

master
zhouhaibin 5 months ago
parent
commit
78d366880d
  1. 18
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouContractinfoController.java
  2. 40
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java
  3. 7
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoHistoryMapper.java
  4. 28
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml
  5. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml
  6. 60
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfoHistory.java
  7. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouSubProjectinfo.java
  8. 1
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouContractinfoService.java
  9. 175
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java
  10. 39
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java
  11. 23
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java
  12. 18
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  13. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java
  14. 5
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java
  15. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java

18
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouContractinfoController.java

@ -56,6 +56,24 @@ public class HuzhouContractinfoController {
contractinfoService.addContractinfo(file,contractList);
return Result.ok("上传成功");
}
@PostMapping(value = "/approvalContractinfo")
public Result<?> approvalContractinfo(@RequestParam(value = "file",required = false) MultipartFile[] file,
@RequestParam String taskId,
@RequestParam String flag,
@RequestParam String projectid,
@RequestParam String comment,
@RequestParam boolean isEdit,
String contractinfoList) throws IOException {
if(contractinfoList!=null){
ObjectMapper mapper = new ObjectMapper();
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>(){});
contractinfoService.approvalContractinfo(file,contractList,taskId,flag,projectid,comment,isEdit);
}else{
contractinfoService.approvalContractinfo(file,null,taskId,flag,projectid,comment,isEdit);
}
return Result.ok("上传成功");
}
@GetMapping("/isExitTaskNameInPlanInfo")
public Result<?> isExitTaskNameInPlanInfo(String projectid,String taskName){
Boolean exitTaskNameInPlanInfo = planinfoService.isExitTaskNameInPlanInfo(projectid, taskName);

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

@ -287,6 +287,7 @@ public class WorkflowController {
queryWrapper.eq(HuzhouProcessinfo::getProjectid,projectid);
queryWrapper.eq(HuzhouProcessinfo::getProcessName,stage);
queryWrapper.orderByDesc(BaseEntity::getCreateDate);
HuzhouProcessinfo huzhouProcessinfo = processinfoService.list(queryWrapper).get(0);
processInstanceId=huzhouProcessinfo.getProcessinstanceid();
}
@ -313,7 +314,7 @@ public class WorkflowController {
.list();
if (variablelist.size()>0) {
for (HistoricVariableInstance hisvar:variablelist) {
hashMap.put(hisvar.getVariableName(),hisvar.getValue());
hashMap.put(hisvar.getVariableName(),hisvar.getValue());//approvalStatue
}
}
@ -344,20 +345,27 @@ public class WorkflowController {
if(processInstance!=null){
BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());
Collection<FlowElement> flowElements = bpmnModel.getProcesses().get(0).getFlowElements();
List<UserTask> userTaskList = new ArrayList<>();
for (FlowElement element : bpmnModel.getProcesses().get(0).getFlowElements()) {
if (element instanceof UserTask) {
UserTask userTask = (UserTask) element;
String taskId = userTask.getId();
boolean match = approvalEntityList.stream().anyMatch(stream-> userTask.getName().equals(stream.get("taskName")));
if(match){
//存在判断最后一个是不是撤回
HashMap<String, Object> stringObjectHashMap = approvalEntityList.get(approvalEntityList.size() - 1);
if (userTask.getName().equals(stringObjectHashMap.get("taskName"))&&stringObjectHashMap.get("comment").toString().contains("撤回")){
match=false;
userTaskList.add(userTask);
}
}
//未处理
for (int i =0;i<userTaskList.size();i++ ) {
UserTask task=userTaskList.get(i);
HashMap<String, Object> lastUser = approvalEntityList.get(approvalEntityList.size() - 1);//获取最后一个
Object taskName = lastUser.get("taskName");
boolean match = task.getName().equals(taskName);
if(!match){
userTaskList.remove(task);
}else{
userTaskList.remove(task);
break;
}
i--;
}
for (UserTask userTask: userTaskList ) {
HashMap<String, Object> hashMap = new HashMap<>();
List<String> candidateGroups = userTask.getCandidateGroups();
String assignee = userTask.getAssignee();
@ -376,7 +384,14 @@ public class WorkflowController {
String groupName = matcher.group(1);// 提取大括号中的内容
// 获取所有变量
Map<String, Object> variables = runtimeService.getVariables(processInstanceId);
List<String> variableValue = (List<String>)runtimeService.getVariable(processInstanceId, groupName);
Object variable = runtimeService.getVariable(processInstanceId, groupName);
if(variable instanceof String){
String startUserid = (String)variable;
String nickname = sysUserService.getById(startUserid).getNickname();
hashMap.put("operator", nickname);
}else{
List<String> variableValue = (List<String>)variable;
String name = "";
for (String id:variableValue
) {
@ -385,6 +400,8 @@ public class WorkflowController {
}
hashMap.put("operator", name.substring(0,name.length()-1));
}
}
}else{
hashMap.put("operator", sysUserService.getById(assignee).getNickname());
}
@ -404,9 +421,6 @@ public class WorkflowController {
hashMap.put("operator", name);
}
approvalEntityList.add(hashMap);
}
}
}
}

7
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoHistoryMapper.java

@ -0,0 +1,7 @@
package com.easy.admin.modules.huzhou.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.easy.admin.modules.huzhou.entity.HuzhouContractinfoHistory;
public interface HuzhouContractinfoHistoryMapper extends BaseMapper<HuzhouContractinfoHistory> {
}

28
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml

@ -81,6 +81,7 @@
<result property="payamount2023Money" column="payamount2023_money" jdbcType="NUMERIC"/>
<result property="payamount2024Money" column="payamount2024_money" jdbcType="NUMERIC"/>
<result property="payamount2025Money" column="payamount2025_money" jdbcType="VARCHAR"/>
<result property="contractStatus" column="contractStatus" jdbcType="VARCHAR"/>
<collection property="children" ofType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo" select="selectchildrenMapList2" column="id"/>
</resultMap>
<resultMap id="childrenMap" type="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo">
@ -98,11 +99,12 @@
<select id="getContractProjectPageList" resultMap="HuzhouProjectinfoMap1" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
SELECT * from huzhou_projectinfo u
<where>
NOT exists (
and u.id not in (select distinct project_id from huzhou_contractinfo)
and NOT exists (
SELECT 1
FROM huzhou_sub_projectinfo sub
left JOIN ( select cc.project_id,ss.project_id zhuprojectid,cc.task_name,cc.status,ss.stage from huzhou_contractinfo cc INNER JOIN huzhou_sub_projectinfo ss on cc.project_id=ss.id) c ON sub.id = c.project_id
WHERE sub.project_id = u.id and (c.status = '1' or c.status is null) and sub.stage>=5
WHERE sub.project_id = u.id and sub.stage>=5
HAVING COUNT(DISTINCT c.project_id) = COUNT(DISTINCT sub.id) AND COUNT(DISTINCT sub.id)>0)
<if test="info.projectContacts!=null and info.projectContacts!=''">
and u.id in(
@ -156,22 +158,19 @@
</where>
</select>
<select id="getContractinfoPageList" resultMap="HuzhouProjectinfoMap2" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
SELECT * from huzhou_projectinfo u
SELECT u.*,con.status contractStatus from huzhou_projectinfo u
left join (SELECT status,group_id,project_id from huzhou_contractinfo GROUP BY status,group_id,project_id) con on u.id =con.project_id
<where>
<if test="info.projectContacts!=null and info.projectContacts!=''">
and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1' and ct.project_id in (
and u.id in (select distinct project_id from huzhou_contractinfo ct where ct.project_id in (
select project_id from huzhou_userproject where user_id=#{info.projectContacts}
)
)
</if>
<if test="info.supervisorContactor!=null and info.supervisorContactor!=''">
and u.id
and u.id in (select distinct project_id from huzhou_contractinfo ct where ct.project_id
in(
SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(
SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from
@ -187,14 +186,14 @@
)
</if>
<if test="(info.supervisorContactor==null or info.supervisorContactor=='' )and( info.projectContacts==null or info.projectContacts=='')">
and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1')
and u.id in (select distinct project_id from huzhou_contractinfo ct )
</if>
or (
EXISTS (
SELECT 1
FROM huzhou_sub_projectinfo sub
JOIN huzhou_contractinfo c ON sub.id = c.project_id
WHERE sub.project_id = u.id and c.status ='1'
WHERE sub.project_id = u.id
HAVING COUNT(DISTINCT c.project_id) >0)
)
<if test="info.projectContacts!=null and info.projectContacts!=''">
@ -258,18 +257,19 @@
u.project_id = #{id} and
not exists(
SELECT 1 from huzhou_contractinfo c
WHERE c.project_id = u.id and c.status ='1'
WHERE c.project_id = u.id
HAVING COUNT(DISTINCT c.project_id) >0)
</where>
-- not exists
</select>
<select id="selectchildrenMapList2" resultType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo">
select * from huzhou_sub_projectinfo u
select u.*,con.status contractStatus from huzhou_sub_projectinfo u
left join (SELECT status,group_id,project_id from huzhou_contractinfo GROUP BY status,group_id,project_id) con on u.id =con.project_id
<where>
u.project_id = #{id} and
exists(
SELECT 1 from huzhou_contractinfo c
WHERE c.project_id = u.id and c.status ='1'
WHERE c.project_id = u.id
HAVING COUNT(DISTINCT c.project_id) >0)
</where>
</select>

3
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml

@ -163,8 +163,9 @@ order by create_date desc
and u.stage &gt;= #{info.stage}
</if>
</where>
order by u.create_date desc
</select>
<select id="selectchildrenMapList" resultType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo">
select * from huzhou_sub_projectinfo where project_id = #{id}
select * from huzhou_sub_projectinfo where project_id = #{id} order by create_date desc
</select>
</mapper>

60
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfoHistory.java

@ -0,0 +1,60 @@
package com.easy.admin.modules.huzhou.entity;
import java.util.Date;
import java.io.Serializable;
/**
* (HuzhouContractinfoHistory)实体类
*
* @author makejava
* @since 2024-04-19 16:02:15
*/
public class HuzhouContractinfoHistory extends BaseEntity implements Serializable {
private static final long serialVersionUID = 390927610448195008L;
/**
* id
*/
private String id;
/**
* 项目id
*/
private String projectId;
/**
* 支付时间
*/
private Date payDate;
/**
* 属性计划节点
*/
private String taskName;
/**
* 总金额
*/
private Double totalMoney;
/**
* 自筹资金
*/
private Double selfMoney;
/**
* 省级资金
*/
private Double provincialMoney;
/**
* 市级资金
*/
private Double cityMoney;
/**
* 区县资金
*/
private Double countyMoney;
/**
* 中央资金
*/
private Double centralMoney;
private String groupId;
private String status;
}

6
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouSubProjectinfo.java

@ -19,7 +19,11 @@ public class HuzhouSubProjectinfo extends HuzhouProjectinfo implements Serializa
@TableField(exist = false)
String planProcessStatus;
/**
* 合同流程状态
*/
@TableField(exist = false)
String contractStatus;
}

1
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouContractinfoService.java

@ -30,4 +30,5 @@ public interface IHuzhouContractinfoService extends IService<HuzhouContractinfo>
List<HuzhouContractinfo> getContractinfoByprojectId(String projectid);
void approvalContractinfo(MultipartFile[] file, List<HuzhouContractinfo> contractList, String taskId, String flag, String projectid, String comment,boolean isEdit) throws IOException;
}

175
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java

@ -4,29 +4,28 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.model.SysRole;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.common.util.CommonUtils;
import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoHistoryMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouSubProjectinfoMapper;
import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo;
import com.easy.admin.modules.huzhou.service.IHuzhouContractinfoService;
import com.easy.admin.modules.huzhou.service.IHuzhouUploadfileinfoService;
import com.easy.admin.modules.huzhou.vo.HuzhouContractinfoOV;
import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.util.ShiroUtil;
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;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -41,7 +40,22 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
private HuzhouSubProjectinfoMapper subProjectinfoMapper;
@Autowired
private IHuzhouUploadfileinfoService uploadfileinfoService;
@Autowired
private IWorkflowService workflowService;
@Autowired
private IHuzhouSubProjectinfoService subProjectinfoService;
@Autowired
private SysUserService userService;
@Autowired
private SysDictService sysDictService;
@Autowired
private TaskService taskService;
@Autowired
private IHuzhouProjectinfoService projectinfoService;
@Autowired
private HuzhouContractinfoHistoryMapper contractinfoHistoryMapper;
@Autowired
private RuntimeService runtimeService;
@Override
public Page<HuzhouProjectinfoOV> getContractProjectPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize) {
Page page = new Page(pageNo, pageSize);
@ -76,8 +90,47 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
public void addContractinfo(MultipartFile[] file, List<HuzhouContractinfo> contractinfoList) throws IOException {
String projectid = contractinfoList.get(0).getProjectId();
uploadfileinfoService.saveFileAndFileInfo(file, projectid, "4");
saveBatch(contractinfoList);
WorkFlow workFlow = workflowService.createFlow("createContract",projectid);
String projectId = contractinfoList.get(0).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> userIdlist = 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");
userIdlist.add(userid);
}
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",userIdlist);
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
List<HuzhouContractinfo> collect = contractinfoList.stream().map(contract -> {
contract.setStatus("1");
return contract;
}).collect(Collectors.toList());
saveBatch(collect);
}
@ -88,11 +141,60 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
if(file!=null){
uploadfileinfoService.modifyUploadFile(file,projectid,"4");
}
LambdaUpdateWrapper<HuzhouContractinfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(HuzhouContractinfo::getStatus,"0");
updateWrapper.eq(HuzhouContractinfo::getProjectId,projectid);
update(null,updateWrapper);
saveBatch(contractinfoList);
//查询旧的合同保存
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getProjectId,projectid);
List<HuzhouContractinfo> oldList = list(queryWrapper);
oldList.forEach(item->{
HuzhouContractinfoHistory huzhouContractinfoHistory = new HuzhouContractinfoHistory();
BeanUtils.copyProperties(item,huzhouContractinfoHistory);
contractinfoHistoryMapper.insert(huzhouContractinfoHistory);
});
//删除合同表数据
remove(queryWrapper);
List<HuzhouContractinfo> collect = contractinfoList.stream().map(contract -> {
contract.setStatus("1");
return contract;
}).collect(Collectors.toList());
saveBatch(collect);
WorkFlow workFlow = workflowService.createFlow("createContract",projectid);
String projectId = contractinfoList.get(0).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> userIdlist = 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");
userIdlist.add(userid);
}
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",userIdlist);
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
return true;
}
@ -109,10 +211,43 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
public List<HuzhouContractinfo> getContractinfoByprojectId(String projectid) {
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid);
queryWrapper.eq(HuzhouContractinfo::getStatus,"1");
List<HuzhouContractinfo> list = list(queryWrapper);
return list;
}
@Override
public void approvalContractinfo(MultipartFile[] file, List<HuzhouContractinfo> contractList, String taskId, String flag,String projectId, String comment,boolean isEdit) throws IOException {
if(isEdit&&"1".equals(flag)){
if(file!=null){
uploadfileinfoService.modifyUploadFile(file,projectId,"4");
}
//查询旧的合同保存
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getProjectId,projectId);
List<HuzhouContractinfo> oldList = list(queryWrapper);
oldList.forEach(item->{
HuzhouContractinfoHistory huzhouContractinfoHistory = new HuzhouContractinfoHistory();
BeanUtils.copyProperties(item,huzhouContractinfoHistory);
contractinfoHistoryMapper.insert(huzhouContractinfoHistory);
});
//删除合同表数据
remove(queryWrapper);
List<HuzhouContractinfo> collect = contractList.stream().map(contract -> {
contract.setStatus("1");
return contract;
}).collect(Collectors.toList());
saveBatch(collect);
}
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
//审批通过修改项目要状态
if(processInstance==null&&"1".equals(flag)){
LambdaUpdateWrapper<HuzhouContractinfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(HuzhouContractinfo::getStatus,"2");
updateWrapper.eq(HuzhouContractinfo::getProjectId,projectId);
update(updateWrapper);
}
}
}

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

@ -691,7 +691,6 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
throw new EasyException(isAllow);
}
//修改项目计划会重新修改项目阶段类型
WorkFlow workFlow = workflowService.createFlow("createPlaninfo",projectid);
projectinfoService.modifyStageById(projectid,"4");
//保存历史记录
List<HuzhouPlaninfo> planinfoHistory = getListByProjectId(projectid);
@ -705,6 +704,44 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
update(null,wrapper);
//批量新增
saveBatch(huzhouPlaninfoArrayList);
WorkFlow workFlow = workflowService.createFlow("createPlaninfo",projectid);
Task task = workFlow.getTask();
String processInstanceId = workFlow.getProcessInstanceId();
String taskId = task.getId();
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
Map<String, Object> variables = new HashMap<>();
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 = sysUserService.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);
}
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.complete(taskId, variables);
//修改项目的阶段状态
projectinfoService.modifyStageById(projectid,"4");
}
@Override

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

@ -119,7 +119,26 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第四个人变量信息
variables.clear();
//上级指导室中文名称查询角色有哪些人
//根据行政区县判断审批人
if("市本级".equals(adminDivision)){
//是市本级,判读责任单位
String dutyWorkplace = huzhouProjectinfo.getDutyWorkplace();
if(dutyWorkplace.contains("湖州市中心医院")){
//是湖州市中心医院 则由吴兴区负责人审批
adminDivision="吴兴区";
}else if(dutyWorkplace.contains("湖州市第一人民医院")){
//是湖州市第一人民医院,则有南浔区负责人审批
adminDivision="南浔区";
}else if(dutyWorkplace.contains("湖州市第三人民医院")){
//是湖州市第三人民医院,则有德清县负责人审批
adminDivision="德清县";
}else if(dutyWorkplace.contains("湖州市妇幼保健院")){
adminDivision="安吉县";
}else if(dutyWorkplace.contains("湖州市中医院")){
adminDivision="长兴县";
}
}
//行政区县名称查询角色有哪些人
userDictByRoles = userService.getUserDictByRoles(adminDivision);
ArrayList<String> strings2 = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
@ -144,7 +163,7 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getTaskName,taskName);
queryWrapper.eq(HuzhouContractinfo::getProjectId,projectId);
queryWrapper.eq(HuzhouContractinfo::getStatus,"1");
queryWrapper.ge(HuzhouContractinfo::getStatus,"1");
List<HuzhouContractinfo> contractinfoList = contractinfoMapper.selectList(queryWrapper);
if(contractinfoList!=null&&contractinfoList.size()>0){
existsContractinfo=true;

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

@ -91,6 +91,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public void submitProject(HuzhouProjectinfo info) {
//保存项目信息
info.setStage("1");//最开始的状态。项目入库中
if(info.getId()!=null){
//批量入库后,有项目负责人重新发起入库申请
userprojectService.removeByProjectId(info.getId(),"0");
this.updateById(info);
}else{
this.save(info);//保存项目信息
}
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo",info.getId());//创建流程
Task task = workFlow.getTask();
String processInstanceId = workFlow.getProcessInstanceId();
@ -119,15 +128,6 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
//保存项目信息
info.setStage("1");//最开始的状态。项目入库中
if(info.getId()!=null){
//批量入库后,有项目负责人重新发起入库申请
userprojectService.removeByProjectId(info.getId(),"0");
this.updateById(info);
}else{
this.save(info);//保存项目信息
}
userprojectService.saveFromProject(info,"0");//保存项目联系人信息,0表示当前醒目是主项目
}

3
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.common.util.CommonUtils;
import com.easy.admin.modules.huzhou.dao.HuzhouProcessinfoMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouUploadfileinfoMapper;
import com.easy.admin.modules.huzhou.entity.BaseEntity;
import com.easy.admin.modules.huzhou.entity.HuzhouProcessinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouUploadfileinfo;
import com.easy.admin.modules.huzhou.service.IHuzhouUploadfileinfoService;
@ -119,6 +120,7 @@ public class HuzhouUploadfileinfoServiceImpl extends ServiceImpl<HuzhouUploadfil
LambdaUpdateWrapper<HuzhouUploadfileinfo> huzhouUploadfileinfoLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
huzhouUploadfileinfoLambdaUpdateWrapper.eq(HuzhouUploadfileinfo::getProjectid,projectid);
huzhouUploadfileinfoLambdaUpdateWrapper.eq(HuzhouUploadfileinfo::getStage,stage);
huzhouUploadfileinfoLambdaUpdateWrapper.orderByDesc(BaseEntity::getCreateDate);
IPage<HuzhouUploadfileinfo> uploadfileinfoIPage = this.page(huzhouUploadfileinfoIPage, huzhouUploadfileinfoLambdaUpdateWrapper);
return uploadfileinfoIPage;
}
@ -133,6 +135,7 @@ public class HuzhouUploadfileinfoServiceImpl extends ServiceImpl<HuzhouUploadfil
huzhouProcessinfoLambdaQueryWrapper.eq(HuzhouProcessinfo::getProcessName,"supervisionFile");
huzhouProcessinfoLambdaQueryWrapper.eq(HuzhouProcessinfo::getProcessstatus,"2");
huzhouProcessinfoLambdaQueryWrapper.eq(HuzhouProcessinfo::getProjectid,projectid);
huzhouProcessinfoLambdaQueryWrapper.orderByDesc(BaseEntity::getCreateDate);
List<HuzhouProcessinfo> huzhouProcessinfos = processinfoMapper.selectList(huzhouProcessinfoLambdaQueryWrapper);
//未通过返回空
if(huzhouProcessinfos.size()==0){

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

@ -160,6 +160,7 @@ public class WorkflowServiceImpl implements IWorkflowService {
// outRes.put("buttons",actionButtons);
workflowActionParamOV.setButtons(actionButtons);
workflowActionParamOV.setShowApprovalForm(false);
workflowActionParamOV.setIsEdit(false);
// outRes.put("showApprovalForm",false);
SysUser currentUser = ShiroUtil.getCurrentUser();
String currentLoginuserId = currentUser.getId();
@ -209,7 +210,9 @@ public class WorkflowServiceImpl implements IWorkflowService {
}
}else{
//代办 发起人可以作废,还要可以修改,加一个修改表示(前端也行)
workflowActionParamOV.setButtons(actionButtons);
workflowActionParamOV.setShowApprovalForm(true);
workflowActionParamOV.setIsEdit(false);
// outRes.put("showApprovalForm",true);
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
//获取当前模型
@ -269,7 +272,7 @@ public class WorkflowServiceImpl implements IWorkflowService {
List<Task> taskList = taskService.createTaskQuery()
.orderByTaskCreateTime()
.desc()
.taskCandidateOrAssigned(currentUser.getId())
.taskAssignee(currentUser.getId())
.list();
hashMap.put("daiban",taskList.size());
return hashMap;

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java

@ -18,5 +18,9 @@ public class HuzhouProjectinfoOV extends HuzhouProjectinfo {
* 是否缺失子项目标志 true 缺失
*/
Boolean missingSubprojects;
/**
* 合同流程状态
*/
String contractStatus;
// String isSubProject;
}

Loading…
Cancel
Save