Browse Source

流程新增、通过、驳回、驳回到指定节点对应我的任务变化

LLL 1 year ago
parent
commit
5fea07fafa

+ 6 - 6
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/flowpath/controller/ItdmRunFlowPathStepController.java

@@ -56,7 +56,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 public class ItdmRunFlowPathStepController extends JeecgController<ItdmRunFlowPathStep, IItdmRunFlowPathStepService> {
 	@Autowired
 	private IItdmRunFlowPathStepService itdmRunFlowPathStepService;
-	
+
 	/**
 	 * 分页列表查询
 	 *
@@ -78,9 +78,9 @@ public class ItdmRunFlowPathStepController extends JeecgController<ItdmRunFlowPa
 		IPage<ItdmRunFlowPathStep> pageList = itdmRunFlowPathStepService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
-	
 
-	
+
+
 	/**
 	 *  编辑
 	 *
@@ -115,7 +115,7 @@ public class ItdmRunFlowPathStepController extends JeecgController<ItdmRunFlowPa
 
 
 	 /**
-	  *  编辑
+	  *  下一步
 	  *
 	  * @param itdmRunFlowPathStep
 	  * @return
@@ -133,7 +133,7 @@ public class ItdmRunFlowPathStepController extends JeecgController<ItdmRunFlowPa
 
 
 	 /**
-	  *  编辑
+	  *  驳回到上一步
 	  *
 	  * @param itdmRunFlowPathStep
 	  * @return
@@ -161,7 +161,7 @@ public class ItdmRunFlowPathStepController extends JeecgController<ItdmRunFlowPa
 
 
 	 /**
-	  *  编辑
+	  *  驳回到指定节点
 	  *
 	  * @param itdmRunFlowPathStep
 	  * @return

+ 2 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/flowpath/service/impl/ItdmRunFlowPathServiceImpl.java

@@ -115,11 +115,11 @@ public class ItdmRunFlowPathServiceImpl extends ServiceImpl<ItdmRunFlowPathMappe
 
         //新增运行流程后,新增一条我的审批
         ItdmTask itdmTask = new ItdmTask();
-        if(list.get(0).getRoleId()!=null){
+        if(list.get(0).getRoleId()!=null  && "".equals(list.get(0).getRoleId())){
             String role = roleService.getById(list.get(0).getRoleId()).getRoleName();
             itdmTask.setTaskRole(role);//待办角色
         }
-        if(list.get(0).getUserIds()!=null){
+        if(list.get(0).getUserIds()!=null && "".equals(list.get(0).getUserIds())){
             String userName = userService.getUserByName(list.get(0).getUserIds()).getRealname();
             itdmTask.setTaskUser(userName);//待办人员
         }

+ 134 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/flowpath/service/impl/ItdmRunFlowPathStepServiceImpl.java

@@ -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);
+            }
+        }
 
     }
 

+ 1 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmFirstPage/controller/itdmFirstPageController.java

@@ -64,7 +64,7 @@ public class itdmFirstPageController {
                 String role = roles.get(0); // 登录人角色,只有一个(可以有多个,但本系统根据客户需求由前端限制只有一个)
                 itdmTask.setTaskRole(role);
 
-                if(role.equals("经理") || role.equals("计划员")) itdmTask.setTaskUser(null);
+//                if(role.equals("经理") || role.equals("计划员")) itdmTask.setTaskUser(null);
             }
 
         }