|
@@ -1,5 +1,8 @@
|
|
|
package org.jeecg.modules.flowpath.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
import org.jeecg.common.exception.JeecgBootException;
|
|
@@ -14,15 +17,24 @@ import org.jeecg.modules.flowpath.entity.ItdmRunFlowPathStep;
|
|
|
import org.jeecg.modules.flowpath.mapper.ItdmRunFlowPathLogMapper;
|
|
|
import org.jeecg.modules.flowpath.mapper.ItdmRunFlowPathMapper;
|
|
|
import org.jeecg.modules.flowpath.mapper.ItdmRunFlowPathStepMapper;
|
|
|
+import org.jeecg.modules.flowpath.service.IItdmFlowPathStepService;
|
|
|
import org.jeecg.modules.flowpath.service.IItdmRunFlowPathStepService;
|
|
|
import org.jeecg.modules.flowpath.vo.ItdmBuohuiRunFlowPathStepVO;
|
|
|
+import org.jeecg.modules.itdmFirstPage.entity.ItdmTask;
|
|
|
+import org.jeecg.modules.itdmFirstPage.mapper.ItdmTaskMapper;
|
|
|
+import org.jeecg.modules.itdmFirstPage.service.IItdmTaskService;
|
|
|
+import org.jeecg.modules.system.service.ISysRoleService;
|
|
|
+import org.jeecg.modules.system.service.ISysUserService;
|
|
|
+import org.jeecg.modules.weituo.service.IItdmWeituoInfoService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -46,6 +58,31 @@ public class ItdmRunFlowPathStepServiceImpl extends ServiceImpl<ItdmRunFlowPathS
|
|
|
@Autowired
|
|
|
private ItdmFZRunFlowPathLogService logService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ItdmRunFlowPathStepMapper runFlowPathStepMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private IItdmTaskService taskService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ItdmTaskMapper taskMapper;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ISysRoleService roleService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ISysUserService userService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private IItdmWeituoInfoService weituoInfoService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private IItdmFlowPathStepService flowPathStepService;
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
|
|
@@ -111,12 +148,42 @@ public class ItdmRunFlowPathStepServiceImpl extends ServiceImpl<ItdmRunFlowPathS
|
|
|
.eq(ItdmRunFlowPathStep::getSort, Integer.parseInt(select.getSort()) + 1)
|
|
|
|
|
|
);
|
|
|
+
|
|
|
+ //原待办人员和角色、委托id
|
|
|
+ String yuanRole = roleService.getById(itdmRunFlowPath.getDqSetpRoleId()).getRoleName();
|
|
|
+ String yuanUserName = userService.getUserByName(itdmRunFlowPath.getDqSetpUserIds().split(",")[0]).getRealname();
|
|
|
+ Map<String, Object> weituoMap = new HashMap<>();
|
|
|
+ weituoMap.put("weituo_no",itdmRunFlowPath.getWeituoNo());
|
|
|
+ String weituoId = weituoInfoService.listByMap(weituoMap).get(0).getId();
|
|
|
+
|
|
|
itdmRunFlowPath.setId(select.getRunFlowPath());
|
|
|
itdmRunFlowPath.setDqSetp(nextstep.getFlowPathSetp());
|
|
|
itdmRunFlowPath.setDqSetpUserIds(nextstep.getUserIds());
|
|
|
itdmRunFlowPath.setDqSetpRoleId(nextstep.getRoleId());
|
|
|
itdmRunFlowPathMapper.updateById(itdmRunFlowPath);
|
|
|
|
|
|
+ //该步骤通过后,原步骤状态改为进行中,
|
|
|
+ ItdmTask yuanTask = new ItdmTask();
|
|
|
+ yuanTask.setWeituoId(weituoId);//委托id
|
|
|
+ yuanTask.setTaskUser(yuanUserName);
|
|
|
+ yuanTask.setTaskRole(yuanRole);
|
|
|
+ QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(yuanTask);
|
|
|
+ ItdmTask yuanTask1 = taskService.getOne(queryWrapper);
|
|
|
+ yuanTask1.setTaskStatus(1);//进行中
|
|
|
+ UpdateWrapper<ItdmTask> updateWrapper = new UpdateWrapper<>(yuanTask1);
|
|
|
+ taskService.update(updateWrapper);
|
|
|
+ // 然后新增一条该步骤的我的任务
|
|
|
+ String role = roleService.getById(itdmRunFlowPath.getDqSetpRoleId()).getRoleName();
|
|
|
+ String userName = userService.getUserByName(itdmRunFlowPath.getDqSetpUserIds().split(",")[0]).getRealname();
|
|
|
+ ItdmTask itdmTask = new ItdmTask();
|
|
|
+ itdmTask.setTaskRole(role);
|
|
|
+ itdmTask.setTaskUser(userName);
|
|
|
+ itdmTask.setWeituoId(weituoId);//委托id
|
|
|
+ String taskContent = flowPathStepService.getById(nextstep.getFlowPathSetp()).getName();
|
|
|
+ itdmTask.setTaskContent(taskContent);//当前步骤名
|
|
|
+ itdmTask.setTaskStatus(0);//待办
|
|
|
+ taskService.insertTaskAfterJudge(itdmTask);
|
|
|
+
|
|
|
logService.insert(select.getRunFlowPath(), select.getId(), nextstep.getId(), "通过", "");
|
|
|
}
|
|
|
|
|
@@ -137,11 +204,41 @@ public class ItdmRunFlowPathStepServiceImpl extends ServiceImpl<ItdmRunFlowPathS
|
|
|
|
|
|
);
|
|
|
|
|
|
+ //原待办人员和角色、委托id(本次的,改之前的)
|
|
|
+ String yuanRole = roleService.getById(itdmRunFlowPath.getDqSetpRoleId()).getRoleName();
|
|
|
+ String yuanUserName = userService.getUserByName(itdmRunFlowPath.getDqSetpUserIds().split(",")[0]).getRealname();
|
|
|
+ Map<String, Object> weituoMap = new HashMap<>();
|
|
|
+ weituoMap.put("weituo_no",itdmRunFlowPath.getWeituoNo());
|
|
|
+ String weituoId = weituoInfoService.listByMap(weituoMap).get(0).getId();
|
|
|
+
|
|
|
itdmRunFlowPath.setDqSetp(prvestep.getFlowPathSetp());
|
|
|
itdmRunFlowPath.setDqSetpUserIds(prvestep.getUserIds());
|
|
|
itdmRunFlowPath.setDqSetpRoleId(prvestep.getRoleId());
|
|
|
-
|
|
|
itdmRunFlowPathMapper.updateById(itdmRunFlowPath);
|
|
|
+
|
|
|
+ //驳回到上一步,修改上一步状态为待办,
|
|
|
+ String sybRole = roleService.getById(prvestep.getRoleId()).getRoleName();
|
|
|
+ String sybUserName = userService.getUserByName(prvestep.getUserIds().split(",")[0]).getRealname();
|
|
|
+ ItdmTask sybTask = new ItdmTask();
|
|
|
+ sybTask.setWeituoId(weituoId);//委托id
|
|
|
+ sybTask.setTaskUser(sybUserName);
|
|
|
+ sybTask.setTaskRole(sybRole);
|
|
|
+ QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(sybTask);
|
|
|
+ ItdmTask sybTask1 = taskService.getOne(queryWrapper);
|
|
|
+ sybTask1.setTaskStatus(0);//改为待办
|
|
|
+ UpdateWrapper<ItdmTask> updateWrapper = new UpdateWrapper<>(sybTask1);
|
|
|
+ taskService.update(updateWrapper);
|
|
|
+ //删掉此次步骤的任务
|
|
|
+ ItdmTask bcTask = new ItdmTask();
|
|
|
+ bcTask.setWeituoId(weituoId);//委托id
|
|
|
+ bcTask.setTaskUser(yuanUserName);//本次人员
|
|
|
+ bcTask.setTaskRole(yuanRole);//本次角色
|
|
|
+ QueryWrapper<ItdmTask> bcQueryWrapper = new QueryWrapper<>(bcTask);
|
|
|
+ ItdmTask bcTask1 = taskService.getOne(bcQueryWrapper);
|
|
|
+ taskService.removeById(bcTask1);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
logService.insert(select.getRunFlowPath(), select.getId(), prvestep.getId(), "驳回上一节点", itdmRejectDQRunFlowPath.getYuanyin());
|
|
|
|
|
|
}
|
|
@@ -185,6 +282,42 @@ public class ItdmRunFlowPathStepServiceImpl extends ServiceImpl<ItdmRunFlowPathS
|
|
|
itdmRunFlowPathMapper.updateById(itdmRunFlowPath);
|
|
|
logService.insert(prvestep.getRunFlowPath(), select.getId(), prvestep.getId(), "驳回指定节点", zdRunFlowPath.getYuanyin());
|
|
|
|
|
|
+ //驳回到指定节点,修改指定节点的任务状态改为待办0
|
|
|
+ Map<String, Object> weituoMap = new HashMap<>();
|
|
|
+ weituoMap.put("weituo_no",itdmRunFlowPath.getWeituoNo());
|
|
|
+ String weituoId = weituoInfoService.listByMap(weituoMap).get(0).getId();
|
|
|
+ String zdjdRole = roleService.getById(prvestep.getRoleId()).getRoleName();
|
|
|
+ String zdjdUserName = userService.getUserByName(prvestep.getUserIds().split(",")[0]).getRealname();
|
|
|
+ ItdmTask zdjdTask = new ItdmTask();
|
|
|
+ zdjdTask.setWeituoId(weituoId);//委托id
|
|
|
+ zdjdTask.setTaskUser(zdjdUserName);
|
|
|
+ zdjdTask.setTaskRole(zdjdRole);
|
|
|
+ QueryWrapper<ItdmTask> queryWrapper = new QueryWrapper<>(zdjdTask);
|
|
|
+ ItdmTask zdjdTask1 = taskService.getOne(queryWrapper);
|
|
|
+ zdjdTask1.setTaskStatus(0);//改为待办
|
|
|
+ UpdateWrapper<ItdmTask> updateWrapper = new UpdateWrapper<>(zdjdTask1);
|
|
|
+ taskService.update(updateWrapper);
|
|
|
+
|
|
|
+ //指定节点之后的所有步骤的任务全部删除
|
|
|
+ String runFlowPath = prvestep.getRunFlowPath();//指定节点的运行流程id
|
|
|
+ String runFlowPathStep = prvestep.getId();//指定节点的运行流程步骤id
|
|
|
+ int sort = Integer.parseInt(prvestep.getSort());
|
|
|
+ ItdmRunFlowPathStep step = new ItdmRunFlowPathStep();
|
|
|
+ step.setRunFlowPath(runFlowPath);
|
|
|
+ Wrapper<ItdmRunFlowPathStep> stepWrapper = new QueryWrapper<>(step);
|
|
|
+ List<ItdmRunFlowPathStep> stepList = runFlowPathStepMapper.selectList(stepWrapper);
|
|
|
+ for(ItdmRunFlowPathStep s:stepList){
|
|
|
+ int sSort = Integer.parseInt(s.getSort());
|
|
|
+ if(sSort>sort){//该步骤对应的任务需要删除
|
|
|
+ //先查该步骤对应的任务
|
|
|
+ ItdmTask t = new ItdmTask();
|
|
|
+ t.setWeituoId(weituoId);//委托id
|
|
|
+ t.setTaskContent(s.getName());//任务名
|
|
|
+ QueryWrapper<ItdmTask> bcQueryWrapper = new QueryWrapper<>(t);
|
|
|
+ ItdmTask t1 = taskService.getOne(bcQueryWrapper);
|
|
|
+ taskService.removeById(t);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|