Ver código fonte

流程更新

zt 6 meses atrás
pai
commit
dde6e4001e
18 arquivos alterados com 1810 adições e 2630 exclusões
  1. 868 941
      pro-base/src/main/java/com/idea/oa/activiti/service/ProActiService.java
  2. 0 573
      pro-base/src/main/java/com/idea/oa/apply/controller/ApplyAddWorkController.java
  3. 6 6
      pro-base/src/main/java/com/idea/oa/apply/controller/ApplyPaymentSettleController.java
  4. 44 100
      pro-base/src/main/java/com/idea/oa/apply/util/constant/ConstantFlowType.java
  5. 1 4
      pro-base/src/main/java/com/idea/oa/apply/util/service/RunerLoadOneService.java
  6. 0 9
      pro-base/src/main/java/com/idea/oa/flow2/controller/FlowMainCcController.java
  7. 77 42
      pro-base/src/main/java/com/idea/oa/flow2/controller/FlowMainController.java
  8. 5 11
      pro-base/src/main/java/com/idea/oa/flow2/mapper/FlowMainExtendMapper.java
  9. 1 1
      pro-base/src/main/java/com/idea/oa/flow2/mapper/FlowMainPushExtendMapper.java
  10. 0 10
      pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainCc.java
  11. 0 70
      pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainCcExample.java
  12. 20 10
      pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainPush.java
  13. 140 70
      pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainPushExample.java
  14. 0 10
      pro-base/src/main/java/com/idea/oa/flow2/model/in/FlowMainIn.java
  15. 17 0
      pro-base/src/main/java/com/idea/oa/flow2/model/in/TargetUserAndFlowRole.java
  16. 11 2
      pro-base/src/main/java/com/idea/oa/flow2/model/out/IMGFlowHistoryInfo.java
  17. 19 0
      pro-base/src/main/java/com/idea/oa/flow2/service/FlowMainLogService.java
  18. 601 771
      pro-base/src/main/java/com/idea/oa/flow2/service/FlowMainService.java

Diferenças do arquivo suprimidas por serem muito extensas
+ 868 - 941
pro-base/src/main/java/com/idea/oa/activiti/service/ProActiService.java


+ 0 - 573
pro-base/src/main/java/com/idea/oa/apply/controller/ApplyAddWorkController.java

@@ -1,573 +0,0 @@
-package com.idea.oa.apply.controller;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.idea.oa.apply.model.ApplyAddWorkTime;
-import com.idea.oa.apply.model.ApplyAddWorkTimeExample;
-import com.idea.oa.apply.model.inout.AddConfirmResult;
-import com.idea.oa.apply.model.inout.ApplyAddWorkIn;
-import com.idea.oa.apply.service.ApplyAddWorkService;
-import com.idea.oa.apply.service.ApplyAddWorkTimeService;
-import com.idea.oa.apply.util.constant.ConstantFlowType;
-import com.idea.oa.flow2.model.FlowMain;
-import com.idea.oa.flow2.model.FlowMainPush;
-import com.idea.oa.flow2.model.in.FlowMainCcVo;
-import com.idea.oa.flow2.service.FlowMainCcService;
-import com.idea.oa.flow2.service.FlowMainPushService;
-import com.idea.oa.flow2.service.FlowMainService;
-//import com.idea.oa.holidayManagement.model.HolidayManagement;
-//import com.idea.oa.holidayManagement.model.HolidayManagementExample;
-//import com.idea.oa.holidayManagement.service.HolidayManagementService;
-//import com.idea.oa.workAttendance.model.WorkAttendanceLog;
-//import com.idea.oa.workAttendance.service.WorkAttendanceLogService;
-import com.rockstar.common.base.BaseController;
-import com.rockstar.common.domain.AjaxResult;
-import com.rockstar.flow.exception.FlowException;
-import com.rockstar.frame.model.FrameUser;
-import com.rockstar.frame.service.FrameUserService;
-import com.rockstar.shiro.util.ShiroUtils;
-import com.rockstar.util.UUIDUtils;
-import io.swagger.annotations.Api;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import java.math.BigDecimal;
-import java.math.MathContext;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by zt on 2023
- */
-@Controller
-@RequestMapping(value = "/ApplyAddWorkController")
-@Api(value = "分表_加班申请")
-public class ApplyAddWorkController extends BaseController {
-//    @Autowired
-//    private WorkAttendanceLogService workAttendanceLogService;
-//    @Autowired
-//    private HolidayManagementService holidayManagementService;
-    //主表
-    @Autowired
-    private ApplyAddWorkService modelService;
-    @Autowired
-    private ApplyAddWorkTimeService applyAddWorkTimeService;
-    @Autowired
-    private FlowMainCcService flowMainCcService;
-    @Autowired
-    private FlowMainPushService flowMainPushService;
-    @Autowired
-    private FlowMainService flowMainService;
-
-
-    @Autowired
-    private FrameUserService frameUserService;
-
-    /**
-     * 添加审核结果
-     * 根据不同的状态值confirmResult判断是 1:审核通过,转下一步;2:退回发起人;3:退回上节点;4:结束流程;
-     *
-     * @param addConfirmResult
-     * @return
-     */
-    @PostMapping(value = "AddConfirmResultAddWork", produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    @Transactional
-    public AjaxResult AddConfirmResultAddWork(AddConfirmResult addConfirmResult) throws FlowException {
-        System.out.println("AddConfirmResultAddWork");
-        System.out.println(addConfirmResult);
-        if (addConfirmResult.getConfirmResult() == null) {
-            return result(-1);
-        }
-//        String deploymentid = ConstantFlowType.USE_MONEY_DEPLOYMENTID;
-//        String constantFlowType = ConstantFlowType.USE_MONEY;
-        FlowMainPush flowMainPush = flowMainPushService.selectByPrimaryKey(addConfirmResult.getFlowMainPushId());
-
-
-        ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
-        example.createCriteria().andAddWorkIdEqualTo(flowMainPush.getFormId());
-        List<ApplyAddWorkTime> applyAddWorkTimes = applyAddWorkTimeService.selectByExample(example);
-        BigDecimal totalAddTime = new BigDecimal(0);//所有加班小时
-
-        String isOkString = null;
-        {//进行审核判断
-            {
-//            ApplyOffWork applyOffWork = modelService.selectByPrimaryKey(flowMainPush.getFormId());
-                for (ApplyAddWorkTime applyAddWorkTime : applyAddWorkTimes) {
-                    {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间
-                        totalAddTime=  totalAddTime.add(new BigDecimal(applyAddWorkTime.getUseTime().toString()), MathContext.DECIMAL32);
-                    }
-                }
-            }
-
-            //添加判断条件
-            HashMap<String, Object> feeMoneyTotalMap = null;//new HashMap<>();
-//            if (totalTiaoXiu.doubleValue() > 0 && totalNianJia.doubleValue() <= 0 && totalShiJia.doubleValue() <= 0) {
-//                //假别仅有调休假
-////            String isExchangeOnly = conditionMap.get("isExchangeOnly").toString();
-////            Integer applyDay = Integer.valueOf(conditionMap.get("applyDay").toString());
-//                feeMoneyTotalMap.put("isExchangeOnly", "yes");
-//                feeMoneyTotalMap.put("applyDay", 0);
-//            } else if (totalTiaoXiu.add(totalNianJia).add(totalShiJia).doubleValue() > 3) {
-////            假期天数合计>3天
-//                feeMoneyTotalMap.put("isExchangeOnly", "no");
-//                feeMoneyTotalMap.put("applyDay", 4);
-//            } else {
-//                feeMoneyTotalMap.put("isExchangeOnly", "no");
-//                feeMoneyTotalMap.put("applyDay", 0);
-//            }
-            isOkString = flowMainService.doConfirmResult(addConfirmResult, ConstantFlowType.ADD_WORK_DEPLOYMENTID, ConstantFlowType.ADD_WORK, flowMainPush, feeMoneyTotalMap);
-            if (!"ok_end".equals(isOkString) && !"ok_noEnd".equals(isOkString)) {
-                return AjaxResult.error(isOkString);
-            }
-        }
-
-
-        Boolean isEnd = false;//是否结束
-        Boolean isAgree = false;//是否同意
-        if (addConfirmResult.getConfirmResult().equals("4")) {//结束流程
-            isEnd = true;
-            isAgree = false;
-        } else if (addConfirmResult.getConfirmResult().equals("1")) {//1:审核通过,转下一步
-            if ("ok_end".equals(isOkString)) {
-                isEnd = true;
-                isAgree = true;
-            }
-        }
-        //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉)
-        if (isEnd) {
-//            String createdById = applyAddWorkTimes.get(0).getCreatedBy();
-//            HolidayManagementExample holidayManagementExample = new HolidayManagementExample();
-//            holidayManagementExample.createCriteria().andUserIdEqualTo(createdById);
-//            List<HolidayManagement> holidayManagements = holidayManagementService.selectByExample(holidayManagementExample);
-//            if (holidayManagements.isEmpty()) {
-//                FrameUser frameUser = frameUserService.selectByPrimaryKey(createdById);
-//                // 添加holidayManagements信息
-//                HolidayManagement entity = new HolidayManagement();
-//                entity.setId(UUIDUtils.middleUUID());
-//
-//                entity.setUserId(createdById);
-//                entity.setJoinDay(frameUser.getCreatedat());
-//
-//                entity.setStatus(0);//状态0正常,1删除,2禁用
-//                entity.setIsFirst(1);//是否是第一次录入管理1是,0不是
-//                entity.setCreatedAt(new Date());
-//                entity.setUpdatedAt(entity.getCreatedAt());
-//                entity.setCreatedBy(ShiroUtils.getUser().getId());
-//                entity.setUpdatedBy(entity.getCreatedBy());
-//
-//                int insert = holidayManagementService.insertWithoutId(entity);
-//                holidayManagements.add(entity);
-//            }
-//            if (isAgree) {//如果是最后   并且同意了,就进行下面的操作,或者不同意就进行另一种操作,
-//                this.booleanIsAgree(totalAddTime,holidayManagements,applyAddWorkTimes,createdById);
-//
-//
-//            } else {
-//                //如果是不同意
-//                {
-////                    不需要做什么
-//                }
-//            }
-        }
-
-        return result(1);
-    }
-
-
-
-
-    /**
-     * 发起付款申请流程
-     *
-     * @param record
-     * @return
-     */
-    @PostMapping(value = "addApplyAddWork", produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    @Transactional
-    public AjaxResult addApplyAddWork(ApplyAddWorkIn record) throws FlowException {
-        System.out.println("addApplyAddWork");
-        System.out.println(record);
-        if (false) {
-            return AjaxResult.error("这是一个错误测试信息");
-        }
-        return myaddApplyPayment(record,null);
-    }
-
-    /**
-     * 申请人重新发起申请
-     *
-     * @param record
-     * @return
-     */
-    @PostMapping(value = "addApplyAddWorkAgain", produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    @Transactional
-    public AjaxResult addApplyAddWorkAgain(ApplyAddWorkIn record) throws FlowException {
-        System.out.println("addApplyAddWorkAgain");
-        if (StringUtils.isEmpty(record.getFlowMainId())) {
-            return AjaxResult.error("没有传入flowMainId的值");
-        }
-        System.out.println(record);
-//        record.setRemark("重新发起申请[" + record.getFlowMainId() + "],");
-        {//修改重新发起前的表状态
-            FlowMain flowMain1 = new FlowMain();
-            flowMain1.setId(record.getFlowMainId());
-            flowMain1.setReturnStatus(1);//0/null无状态,1已撤回并且已重新发起
-            flowMain1.setUpdatedAt(new Date());
-            flowMain1.setUpdatedBy(ShiroUtils.getUser().getId());
-            flowMainService.updateByPrimaryKeySelective(flowMain1);
-        }
-        return myaddApplyPayment(record,"重新发起申请[" + record.getFlowMainId() + "],");
-    }
-
-    /**
-     * 发起请假申请流程
-     *
-     * @param record
-     * @return
-     */
-    public AjaxResult myaddApplyPayment(ApplyAddWorkIn record,String addSystemRemark) throws FlowException {
-        if (StringUtils.isEmpty(record.getApplyAddWorkTimeString())) {
-            return AjaxResult.error("没有获取到请假详细信息,请重新确认");
-        }
-        BigDecimal totalAddTime = new BigDecimal(0);//所有加班小时
-
-        {
-            record.setUpdatedAt(new Date());
-            record.setCreatedAt(record.getUpdatedAt());
-            record.setCreatedBy(ShiroUtils.getUser().getId());
-            record.setUpdatedBy(record.getCreatedBy());
-            record.setStatus(0);
-            modelService.insert(record);
-
-            String applyAddWorkTimeString = record.getApplyAddWorkTimeString();
-            JSONArray jsonArray = JSONArray.parseArray(applyAddWorkTimeString);
-
-
-            for (int i = 0; i < jsonArray.size(); i++) {
-                JSONObject object = jsonArray.getJSONObject(i);
-                ApplyAddWorkTime applyAddWorkTime = JSONObject.parseObject(object.toJSONString(), ApplyAddWorkTime.class);// 将string类型直接封装成对象
-
-                applyAddWorkTime.setAddWorkId(record.getId());
-
-
-                applyAddWorkTime.setUpdatedAt(new Date());
-                applyAddWorkTime.setCreatedAt(applyAddWorkTime.getUpdatedAt());
-                applyAddWorkTime.setCreatedBy(ShiroUtils.getUser().getId());
-                applyAddWorkTime.setUpdatedBy(applyAddWorkTime.getCreatedBy());
-                applyAddWorkTime.setStatus(0);
-
-                // 做一个方法,计算加班时间
-//                BigDecimal addTime=null;
-//                applyAddWorkTime.setUseTime(addTime);
-                applyAddWorkTimeService.insert(applyAddWorkTime);
-
-                {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间
-
-                    totalAddTime = totalAddTime.add(new BigDecimal(applyAddWorkTime.getUseTime().toString()), MathContext.DECIMAL32);
-
-                }
-            }
-            if (totalAddTime.doubleValue() > 0) {
-                /**
-                 * 做一个方法,修改年假表的数据
-                 */
-                //这里没有要做的事情
-            }
-
-
-        }
-
-        HashMap<String, Object> feeMoneyTotalMap = null;//new HashMap<>();
-//        if (totalTiaoXiu.doubleValue() > 0 && totalNianJia.doubleValue() <= 0 && totalShiJia.doubleValue() <= 0) {
-//            //假别仅有调休假
-////            String isExchangeOnly = conditionMap.get("isExchangeOnly").toString();
-////            Integer applyDay = Integer.valueOf(conditionMap.get("applyDay").toString());
-//            feeMoneyTotalMap.put("isExchangeOnly", "yes");
-//            feeMoneyTotalMap.put("applyDay", 0);
-//        } else if (totalTiaoXiu.add(totalNianJia).add(totalShiJia).doubleValue() > 3) {
-////            假期天数合计>3天
-//            feeMoneyTotalMap.put("isExchangeOnly", "no");
-//            feeMoneyTotalMap.put("applyDay", 4);
-//        } else {
-//            feeMoneyTotalMap.put("isExchangeOnly", "no");
-//            feeMoneyTotalMap.put("applyDay", 0);
-//        }
-//        feeMoneyTotalMap.put("billMoney", feeMoneyTotalDouble);
-        String applyTheme = "" + ShiroUtils.getUser().getTruename() + "的加班申请单";
-        AjaxResult ajaxResult = flowMainService.doFlowMain(applyTheme, record.getId(), addSystemRemark, record.getCcList(),
-                ConstantFlowType.ADD_WORK_PROCESSDEFINE, ConstantFlowType.ADD_WORK_DEPLOYMENTID,
-                feeMoneyTotalMap, ConstantFlowType.ADD_WORK_NAME, ConstantFlowType.ADD_WORK,ShiroUtils.getUser());
-
-        if (ajaxResult.get("code").equals(1688)) {
-//            //表成功了 且已经审核完成
-////            需要进行后续的处理
-//            Boolean isEnd = true;//是否结束
-//            Boolean isAgree = true;//是否同意
-//
-//            //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉)
-//            if (isEnd) {
-//                String createdById = record.getCreatedBy();
-//                HolidayManagementExample holidayManagementExample = new HolidayManagementExample();
-//                holidayManagementExample.createCriteria().andUserIdEqualTo(createdById);
-//                List<HolidayManagement> holidayManagements = holidayManagementService.selectByExample(holidayManagementExample);
-//                if (holidayManagements.isEmpty()) {
-//                    // 添加holidayManagements信息
-//                    FrameUser frameUser = frameUserService.selectByPrimaryKey(createdById);
-//                    HolidayManagement entity = new HolidayManagement();
-//                    entity.setId(UUIDUtils.middleUUID());
-//
-//                    entity.setUserId(createdById);
-//                    entity.setJoinDay(frameUser.getCreatedat());
-//
-//                    entity.setStatus(0);//状态0正常,1删除,2禁用
-//                    entity.setIsFirst(1);//是否是第一次录入管理1是,0不是
-//                    entity.setCreatedAt(new Date());
-//                    entity.setUpdatedAt(entity.getCreatedAt());
-//                    entity.setCreatedBy(ShiroUtils.getUser().getId());
-//                    entity.setUpdatedBy(entity.getCreatedBy());
-//
-//                    int insert = holidayManagementService.insertWithoutId(entity);
-//                    holidayManagements.add(entity);
-//                }
-//                if (isAgree) {//如果是最后   并且同意了,就进行下面的操作,或者不同意就进行另一种操作,
-//                    ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
-//                    example.createCriteria().andAddWorkIdEqualTo(record.getId());
-//                    List<ApplyAddWorkTime> applyAddWorkTimes = applyAddWorkTimeService.selectByExample(example);
-//
-//                    this.booleanIsAgree(totalAddTime,holidayManagements,applyAddWorkTimes,createdById);
-//
-//
-//                } else {
-//                    //如果是不同意
-//                    {
-////                    不需要做什么
-//                    }
-//                }
-//            }
-
-            return AjaxResult.success();
-        } else {
-
-            return ajaxResult;
-        }
-
-    }
-
-    /**
-     * 审核或申请结束且同意的情况下进行的处理
-     */
-//    public void booleanIsAgree(BigDecimal totalAddTime,List<HolidayManagement> holidayManagements,List<ApplyAddWorkTime> applyAddWorkTimes,String createdById){
-//        //如果是同意了
-//        {
-//            HolidayManagement holidayManagement = holidayManagements.get(0);
-//            if (totalAddTime.doubleValue() > 0) {//存在加班修改
-//                Double restExchangeTime = holidayManagement.getRestExchangeTime();
-//                if(null==restExchangeTime)restExchangeTime=0.0;
-////                    Double restHolidayTime = holidayManagement.getRestHolidayTime();
-//                double v = new BigDecimal(restExchangeTime).add(totalAddTime, MathContext.DECIMAL32).doubleValue();
-//                holidayManagement.setRestExchangeTime(v);
-//            }
-//
-//
-//            holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId());
-//            holidayManagement.setUpdatedAt(new Date());
-//
-//            holidayManagementService.updateByPrimaryKeySelective(holidayManagement);
-//        }
-//
-//        {//审核通过后 在oa_work_attendance_log表中添加记录
-//            for (ApplyAddWorkTime applyAddWorkTime : applyAddWorkTimes) {
-//                WorkAttendanceLog workAttendanceLog = new WorkAttendanceLog();
-//
-//
-////                        //=========================下面是重要的数据
-////                        user_id varchar (64) DEFAULT NULL COMMENT '用户id 姓名/部门/岗位',
-////	  `do_day`date DEFAULT NULL COMMENT '发生的日期',
-////	`happen_type` int(4) DEFAULT NULL COMMENT
-////                        '1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差',
-////                                //=========================上面是重要的数据
-////                                do_start_time datetime DEFAULT NULL COMMENT '发生开始时间',
-////                                do_end_time datetime DEFAULT NULL COMMENT '发生结束时间',
-////	  `use_time`decimal(5, 2) DEFAULT NULL COMMENT '消耗时间(比如加班/调休时间小时)',
-////                                from_table_id varchar(64) DEFAULT NULL COMMENT '来源表id',
-////                                from_table_name varchar(64) DEFAULT NULL COMMENT '来源表名称',
-//
-//                workAttendanceLog.setUserId(createdById);
-//                workAttendanceLog.setDoDay(applyAddWorkTime.getStartDay());
-//                workAttendanceLog.setHappenType(9);//'1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差',
-//                workAttendanceLog.setDoStartTime(applyAddWorkTime.getStartTime());
-//                workAttendanceLog.setDoEndTime(applyAddWorkTime.getEndTime());
-//                workAttendanceLog.setUseTime(applyAddWorkTime.getUseTime());
-//                workAttendanceLog.setFromTableId(applyAddWorkTime.getId());
-//                workAttendanceLog.setFromTableName("apply_add_work_time");
-//
-//
-//                workAttendanceLog.setCreatedBy(ShiroUtils.getUser().getId());
-//                workAttendanceLog.setCreatedAt(new Date());
-//                workAttendanceLog.setStatus(0);
-//                workAttendanceLog.setUpdatedAt(workAttendanceLog.getCreatedAt());
-//                workAttendanceLog.setUpdatedBy(workAttendanceLog.getCreatedBy());
-//                int result = workAttendanceLogService.insert(workAttendanceLog);
-//            }
-//
-//        }
-//    }
-
-    /**
-     * 根据推送表的FlowMainPushId获取信息
-     *
-     * @param flowMainPushId
-     * @return
-     */
-    @PostMapping(value = "getInfoByFlowMainPushId", produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    public ApplyAddWorkIn getInfoByFlowMainPushId(String flowMainPushId) {
-        ApplyAddWorkIn myApplyAddWorkIn = modelService.getInfoByFlowMainPushId(flowMainPushId);
-        if (myApplyAddWorkIn != null) {
-            {//获取抄送人
-//                FlowMainCcExample example = new FlowMainCcExample();
-//                example.createCriteria().andFlowMainIdEqualTo(myApplyUseMoneyIn.getFlowMainId());
-//                List<FlowMainCc> flowMainCcList = flowMainCcService.selectByExample(example);
-                List<FlowMainCcVo> flowMainCcList = flowMainCcService.selectVoByFlowMainId(myApplyAddWorkIn.getFlowMainId());
-//                HashSet<String> set = new HashSet<>();
-//                for (FlowMainCc flowMainCc : flowMainCcList) {
-//                    set.add(flowMainCc.getCcUser());
-//                }
-//                StringBuilder stringBuilder = new StringBuilder();
-//                if (!set.isEmpty()) {
-//                    for (String s : set) {
-//                        stringBuilder.append(s + ",");
-//                    }
-//                }
-//                myApplyUseMoneyIn.setCcList(stringBuilder.toString());
-                myApplyAddWorkIn.setFlowMainCcList(flowMainCcList);
-
-            }
-
-
-            {//获取apply_use_money_detail数据
-                ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
-                example.createCriteria().andAddWorkIdEqualTo(myApplyAddWorkIn.getId());
-                List<ApplyAddWorkTime> ApplyAddWorkTimes = applyAddWorkTimeService.selectByExample(example);
-                myApplyAddWorkIn.setApplyAddWorkTimeList(ApplyAddWorkTimes);
-            }
-        }
-        return myApplyAddWorkIn;
-    }
-
-
-
-    /**
-     * 根据主表的FlowMainId获取信息
-     *
-     * @param flowMainId
-     * @return
-     */
-    @PostMapping(value = "getInfoByFlowMainId", produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    public ApplyAddWorkIn getInfoByFlowMainId(String flowMainId) {
-        ApplyAddWorkIn myApplyAddWorkIn = modelService.getInfoByFlowMainId(flowMainId);
-        if (myApplyAddWorkIn != null) {
-            {//获取抄送人
-//                FlowMainCcExample example = new FlowMainCcExample();
-//                example.createCriteria().andFlowMainIdEqualTo(myApplyUseMoneyIn.getFlowMainId());
-//                List<FlowMainCc> flowMainCcList = flowMainCcService.selectByExample(example);
-                List<FlowMainCcVo> flowMainCcList = flowMainCcService.selectVoByFlowMainId(myApplyAddWorkIn.getFlowMainId());
-//                HashSet<String> set = new HashSet<>();
-//                for (FlowMainCc flowMainCc : flowMainCcList) {
-//                    set.add(flowMainCc.getCcUser());
-//                }
-//                StringBuilder stringBuilder = new StringBuilder();
-//                if (!set.isEmpty()) {
-//                    for (String s : set) {
-//                        stringBuilder.append(s + ",");
-//                    }
-//                }
-//                myApplyUseMoneyIn.setCcList(stringBuilder.toString());
-                myApplyAddWorkIn.setFlowMainCcList(flowMainCcList);
-
-            }
-
-            {//获取apply_use_money_detail数据
-                ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
-                example.createCriteria().andAddWorkIdEqualTo(myApplyAddWorkIn.getId());
-                List<ApplyAddWorkTime> ApplyOffWorkTimes = applyAddWorkTimeService.selectByExample(example);
-                myApplyAddWorkIn.setApplyAddWorkTimeList(ApplyOffWorkTimes);
-            }
-        }
-        return myApplyAddWorkIn;
-    }
-
-    /**
-     * 根据用户id获取用户姓名和部门名称,岗位信息
-     *
-     * @param userId
-     * @return
-     */
-    @PostMapping(value = "getUserInfoByUserId", produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    public Map<String, Object> getUserInfoByUserId(String userId) {
-        if (StringUtils.isEmpty(userId)) {
-            userId = ShiroUtils.getUser().getId();
-        }
-        return modelService.getUserInfoByUserId(userId);
-    }
-
-
-    //=====下面原生的=============================================================================================================
-
-
-//    @PostMapping(value = "list",produces = {"application/json;charset=UTF-8"})
-//    @ResponseBody
-//    public Object list(Tablepar tablepar, ApplyAddWork model, DateTrans dt){
-//        PageInfo<ApplyAddWork> page= modelService.list(tablepar,model,dt);
-//        TableSplitResult<ApplyAddWork> result=new TableSplitResult<ApplyAddWork>(page.getPageNum(), page.getTotal(), page.getList());
-//        return  result;
-//    }
-//
-//    @PostMapping(value = "listAll",produces = {"application/json;charset=UTF-8"})
-//    @ResponseBody
-//    public Object listAll(ApplyAddWork model, DateTrans dt){
-//        return  modelService.listAll(model,dt);
-//    }
-//
-//    @PostMapping(value = "add",produces = {"application/json;charset=UTF-8"})
-//    @ResponseBody
-//    public AjaxResult add(ApplyAddWork record){
-//        record.setCreatedAt(new Date());
-//        int result = modelService.insert(record);
-//        return result(result);
-//    }
-//
-//    @PostMapping(value = "remove/{id}",produces = {"application/json;charset=UTF-8"})
-//    @ResponseBody
-//    public AjaxResult remove(@PathVariable("id") String id){
-//        int result = -1;//modelService.deleteByPrimaryKey(id);
-//        return result(result);
-//    }
-//
-//    @PostMapping(value = "edit",produces = {"application/json;charset=UTF-8"})
-//    @ResponseBody
-//    public AjaxResult editSave(ApplyAddWork model){
-//        int result = modelService.updateByPrimaryKeySelective(model);
-//        return result(result);
-//    }
-//
-//    @PostMapping(value = "getById",produces = {"application/json;charset=UTF-8"})
-//    @ResponseBody
-//    public ApplyAddWork getById(String id) {
-//        return modelService.selectByPrimaryKey(id);
-//    }
-
-
-}

+ 6 - 6
pro-base/src/main/java/com/idea/oa/apply/controller/ApplyPaymentSettleController.java

@@ -168,13 +168,13 @@ public class ApplyPaymentSettleController extends BaseController {
     @PostMapping(value = "addApplyPaymentSettle", produces = {"application/json;charset=UTF-8"})
     @ResponseBody
     @Transactional
-    public AjaxResult addApplyPaymentSettle(ApplyPaymentSettleIn record) throws FlowException {
+    public AjaxResult addApplyPaymentSettle(ApplyPaymentSettleIn record,String deptId, String tagerUserId) throws FlowException {
         System.out.println("addApplyPaymentSettle");
         System.out.println(record);
         if (false) {
             return AjaxResult.error("这是一个错误测试信息");
         }
-        return myaddApplyPayment(record, null);
+        return myaddApplyPayment(record, null, deptId,  tagerUserId);
     }
 
     /**
@@ -186,7 +186,7 @@ public class ApplyPaymentSettleController extends BaseController {
     @PostMapping(value = "addApplyPaymentSettleAgain", produces = {"application/json;charset=UTF-8"})
     @ResponseBody
     @Transactional
-    public AjaxResult addApplyPaymentSettleAgain(ApplyPaymentSettleIn record) throws FlowException {
+    public AjaxResult addApplyPaymentSettleAgain(ApplyPaymentSettleIn record,String deptId, String tagerUserId) throws FlowException {
         System.out.println("addApplyPaymentSettleAgain");
         if (StringUtils.isEmpty(record.getFlowMainId())) {
             return AjaxResult.error("没有传入flowMainId的值");
@@ -201,7 +201,7 @@ public class ApplyPaymentSettleController extends BaseController {
             flowMain1.setUpdatedBy(ShiroUtils.getUser().getId());
             flowMainService.updateByPrimaryKeySelective(flowMain1);
         }
-        return myaddApplyPayment(record, "重新发起申请[" + record.getFlowMainId() + "],");
+        return myaddApplyPayment(record, "重新发起申请[" + record.getFlowMainId() + "],", deptId,  tagerUserId);
     }
 
     /**
@@ -210,7 +210,7 @@ public class ApplyPaymentSettleController extends BaseController {
      * @param record
      * @return
      */
-    public AjaxResult myaddApplyPayment(ApplyPaymentSettleIn record, String addSystemRemark) throws FlowException {
+    public AjaxResult myaddApplyPayment(ApplyPaymentSettleIn record, String addSystemRemark,String deptId, String tagerUserId) throws FlowException {
 
 
         String id = UUIDUtils.middleUUID();
@@ -228,7 +228,7 @@ public class ApplyPaymentSettleController extends BaseController {
 
         HashMap<String, Object> feeMoneyTotalMap = null;//new HashMap<>();
         String applyTheme = "" + ShiroUtils.getUser().getTruename() + "的付款申请单";
-        AjaxResult ajaxResult = flowMainService.doFlowMain(applyTheme, record.getId(), addSystemRemark, record.getCcList(), ConstantFlowType.PAYMENT_PROCESSDEFINE, ConstantFlowType.PAYMENT_DEPLOYMENTID, feeMoneyTotalMap, ConstantFlowType.PAYMENT_NAME, ConstantFlowType.PAYMENT, ShiroUtils.getUser());
+        AjaxResult ajaxResult = flowMainService.doFlowMain(applyTheme, record.getId(), addSystemRemark, record.getCcList(), ConstantFlowType.PAYMENT_PROCESSDEFINE, ConstantFlowType.PAYMENT_DEPLOYMENTID, feeMoneyTotalMap, ConstantFlowType.PAYMENT_NAME, ConstantFlowType.PAYMENT, ShiroUtils.getUser(), deptId, tagerUserId);
 
         modelService.startOaAndHandle(record.getId(), applyTheme);
         if (ajaxResult.get("code").equals(1688)) {

+ 44 - 100
pro-base/src/main/java/com/idea/oa/apply/util/constant/ConstantFlowType.java

@@ -8,21 +8,31 @@ import java.util.Map;
  * 这是业务配置类
  */
 public class ConstantFlowType {
+    //这是配置是单部门还是多部门,true是多部门
+    public final static boolean isMoreDept = false;
+
     public final static String[] aggree = {"yes", "no", "back"};
     public static Map<Integer, String> nodeKeysName = new HashMap<>();
 
     static {
         ConstantFlowType.nodeKeysName.put(1, "申请人发起");
         ConstantFlowType.nodeKeysName.put(11, "curr_user");
-//        ConstantFlowType.nodeKeysName.put("dept_superior","直接上级审核");
-//        ConstantFlowType.nodeKeysName.put("dept_head","部门负责人审核");
-//        ConstantFlowType.nodeKeysName.put("flow_fgld","分管领导审核");
-//        ConstantFlowType.nodeKeysName.put("flow_sjfgld","上级分管领导审核");
-//        ConstantFlowType.nodeKeysName.put("flow_zyld","主要领导审核");
-//        ConstantFlowType.nodeKeysName.put("flow_cnzf","出纳支付");
-//        ConstantFlowType.nodeKeysName.put("flow_zffh","支付复核");
+
     }
 
+    public static Map<String, String> nodeKeys_Name = new HashMap<>();
+
+    static {
+        ConstantFlowType.nodeKeys_Name.put("curr_user", "申请人发起");
+        ConstantFlowType.nodeKeys_Name.put("dept_superior", "直接上级审核");
+        ConstantFlowType.nodeKeys_Name.put("dept_head", "部门负责人审核");
+        ConstantFlowType.nodeKeys_Name.put("flow_fgld", "分管领导审核");
+        ConstantFlowType.nodeKeys_Name.put("flow_sjfgld", "总经理审核");
+        ConstantFlowType.nodeKeys_Name.put("flow_zyld", "董事长审核");
+        ConstantFlowType.nodeKeys_Name.put("flow_cnzf", "出纳支付");
+        ConstantFlowType.nodeKeys_Name.put("flow_zffh", "支付复核");
+        ConstantFlowType.nodeKeys_Name.put("flow_cgzy", "采购申请用");
+    }
 
     //获取判断条件
 //    public final static  String[]
@@ -32,108 +42,38 @@ public class ConstantFlowType {
     public final static String ADMINID = "1";
     //注意,部门和部门主管的角色是写死的
     //获取用户流程类型
-    public final static String[] FLOW_ROLES = {"flow_cwld","flow_fgld", "flow_sjfgld", "flow_zyld"};//领导查看
+    public final static String[] FLOW_ROLES = {"flow_cwld", "flow_fgld", "flow_sjfgld", "flow_zyld"};//领导查看
     public final static String[] FLOW_ROLES_DEPT = {"curr_user", "dept_superior", "dept_head"};//部门查看
     public final static String[] FLOW_ROLES_CHECK = {"flow_cnzf", "flow_zffh"};//出纳查看
-    public final static String[] ROLES = {"cwld","fgld", "sjfgld", "zyld"};//领导查看(不带主类型)
+    public final static String[] ROLES = {"cwld", "fgld", "sjfgld", "zyld"};//领导查看(不带主类型)
     public final static String[] ROLES_CHECK = {"cnzf", "zffh"};//出纳查看(不带主类型)
-    public final static String[] PURCHASE_FLOW_ROLES_CHECK = {"flow_cgzy"};// 采购申请用
-    public final static String[] PURCHASE_ROLES_CHECK = {"cgzy"};//采购申请用
-    public final static String PURCHASE_ROLES_CHECK_PLUS = "COMPANYCG";//采购申请用
+
     public final static String ROLETYPE = "FLOW";
     public final static String ROLETYPE2 = "DATA"; // 采购申请用
 
 
     //流程类型/名称(off_work请假申请;paymen付款申请;use_money费用报支(因为比较繁杂,用英文字符串表示))',
-
+//===============================================================================================================
     public final static String OFF_WORK = "off_work";
     public final static String OFF_WORK_NAME = "请假申请";
     public final static String OFF_WORK_PROCESSDEFINE = "apply_off_work";//自己瞎写的
-    public static String OFF_WORK_DEPLOYMENTID = "20002";//自己瞎写的
+    public  static String OFF_WORK_DEPLOYMENTID = "20002";//自己瞎写的
     //请假申请流程顺序
-    public static String[] OFF_WORK_FLOWSTEPS_noenough = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1","only_tiaoxiujia"};
-    public static String[] OFF_WORK_FLOWSTEPS_noenough2 = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1","only_tiaoxiujia","less_3day"};
+    public final static String[] OFF_WORK_FLOWSTEPS_noenough = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "only_tiaoxiujia"};
+    public final static String[] OFF_WORK_FLOWSTEPS_noenough2 = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "only_tiaoxiujia", "less_3day"};
 
-    public static String[] OFF_WORK_FLOWSTEPS_enough = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1","only_tiaoxiujia","less_3day", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1"};
-//    key="curr_user"          name="申请人发起"
-//    key="dept_superior_1_0_1"          name="直接上级审核"
-//    key="dept_head_1_0_1"          name="部门负责人审核"
-//    key="flow_fgld_1_0_1"          name="分管领导审核"
-//    key="flow_sjfgld_1_0_1"          name="上级分管领导审核"
-//    key="flow_zyld_1_0_1"          name="主要领导审核"
+    public final static String[] OFF_WORK_FLOWSTEPS_enough = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "only_tiaoxiujia", "less_3day", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_2"};
 
+    //下面三个是没有节点的不同条件流程的节点数组(出纳等财务必须要有的流程节点就不放在里面,该关键字只是跳跃审核用的)
+    public final static String[] onlyFlow_OFF_WORK_FLOWSTEPS_noenough = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1"};
+    public final static String[] onlyFlow_OFF_WORK_FLOWSTEPS_noenough2 = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1"};
 
-    //===============================================================================
-    //业务中存的区别字符
-    public final static String PAYMEN = "paymen";
-    //业务中存的区别说明
-    public final static String PAYMEN_NAME = "付款申请";
-    //流程引擎中用的区别字符
-    public final static String PAYMEN_PROCESSDEFINE = "apply_pay_out";//自己瞎写的
-    //流程引擎中用的区别编号
-    public static String PAYMEN_DEPLOYMENTID = "20002";//自己瞎写的
-    //流程顺序
-    public static String[] PAYMEN_FLOWSTEPS = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1", "flow_cnzf_0_0_1", "flow_zffh_0_0_1"};
-    //    key="curr_user"      name="申请人发起"
-//    key="dept_superior_1_0_1"      name="直接上级审核"
-//    key="dept_head_1_0_1"      name="部门负责人审核"
-//    key="flow_fgld_1_0_1"      name="分管领导审核"
-//    key="flow_sjfgld_1_0_1"      name="上级分管领导审核"
-//    key="flow_zyld_1_0_1"      name="主要领导审核"
-//    key="flow_cnzf_0_0_1"      name="出纳支付"
-//    key="flow_zffh_0_0_1"      name="支付复核"
-
-    //===============================================================================
-    public final static String USE_MONEY = "use_money";
-    public final static String USE_MONEY_NAME = "费用报支申请";
-    public final static String USE_MONEY_PROCESSDEFINE = "apply_pay";//启动流程的时候对应的processDefine值
-    public static String USE_MONEY_DEPLOYMENTID = "50005";//查看流程情况时 付款申请对应的值
-    //流程顺序
-    public static String[] USE_MONEY_FLOWSTEPS_noenough = {"curr_user", "dept_superior_1_0_1-yes", "dept_head_1_0_1-yes", "flow_cnzf_0_0_1-yes@noenough", "flow_zffh_0_0_1-yes@end"};
-    public static String[] USE_MONEY_FLOWSTEPS_enough = {"curr_user", "dept_superior_1_0_1-yes", "dept_head_1_0_1-yes",
-            "flow_fgld_1_0_1-yes", "flow_sjfgld_1_0_1-yes", "flow_zyld_1_0_1-yes", "flow_cnzf_0_0_1-yes@enough", "flow_zffh_0_0_1-yes@end"};
-//    key="curr_user"      name="申请人发起"
-//    key="dept_superior_1_0_1-yes"      name="直接上级审核"
-//    key="dept_head_1_0_1-yes"      name="部门负责人审核"
-//    key="flow_fgld_1_0_1-yes"      name="分管领导审核"
-//    key="flow_sjfgld_1_0_1-yes"      name="上级分管领导审核"
-//    key="flow_zyld_1_0_1-yes"      name="主要领导审核"
-//    key="flow_cnzf_0_0_1-yes@noenough"      name="出纳支付不满3000"
-//    key="flow_cnzf_0_0_1-yes@enough"      name="出纳支付满3000"
-//    key="flow_zffh_0_0_1-yes@end"      name="支付复核"
-
-
-    //===============================================================================
-
-    public final static String ADD_WORK = "add_work";
-    public final static String ADD_WORK_NAME = "加班申请";
-    public final static String ADD_WORK_PROCESSDEFINE = "apply_overtime_work";//自己瞎写的  todo 要对应resources/processes目录下的对应bpmn文件 process id="xxx"
-    public static String ADD_WORK_DEPLOYMENTID = "20003";//自己瞎写的
-    //流程顺序
-    public static String[] ADD_WORK_FLOWSTEPS={"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1"};
-//    key="curr_user"      name="申请人发起"
-//    key="dept_superior_1_0_1"      name="直接上级审核"
-//    key="dept_head_1_0_1"      name="部门负责人审核"
-//    key="flow_fgld_1_0_1"      name="分管领导审核"
-//    key="flow_sjfgld_1_0_1"      name="上级分管领导审核"
-//    key="flow_zyld_1_0_1"      name="主要领导审核"
-
-    //===============================================================================
-    //    key="curr_user"      name="申请人发起"
-    //    key="dept_superior_1_0_1"      name="直接上级审核"
-    //    key="dept_head_1_0_1"      name="部门负责人审核"
-    //    key="flow_fgld_1_0_1"      name="分管领导审核"
-    //    key="flow_sjfgld_1_0_1"      name="上级分管领导审核"
-    //    key="flow_zyld_1_0_1"      name="主要领导审核"
-    //    key="flow_cgzy_1_0_1"      name="采购专员审核"
-    public final static String PURCHASE_WORK = "purchase_work";
-    public final static String PURCHASE_WORK_NAME = "采购申请";
-    public final static String PURCHASE_WORK_PROCESS_DEFINE = "apply_purchase";
-    public static String PURCHASE_WORK_DEPLOYMENT_ID = "23333";
-    //流程顺序
-    public static String[] PURCHASE_WORK_FLOW_STEPS={"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1",
-            "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1", "flow_cgzy_1_0_1"};
+    public final static String[] onlyFlow_OFF_WORK_FLOWSTEPS_enough = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_2"};
+    //本主流程的全部流程(出纳等财务必须要有的流程节点就不放在里面,该关键字只是跳跃审核用的)
+    public final static String[] onlyFlow_OFF_WORK_FLOWSTEPS_ALL = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_2"};
 
+    // 不同流程会有不同的角色判断,所以做特定处理
+    public final static String[] OFF_WORK_ROLES = {"fgld", "sjfgld", "zyld"};//领导查看(不带主类型)==> 结项评审委员会 分管领导 上级分管领导审核 项目评审委员会 主要领导审核 集团总经理审核
 
 
     //===============================================================================
@@ -143,13 +83,17 @@ public class ConstantFlowType {
     public final static String PAYMENT_PROCESSDEFINE = "applyPayment";//自己瞎写的  todo 要对应resources/processes目录下的对应bpmn文件 process id="xxx"
     public static String PAYMENT_DEPLOYMENTID = "20004";//自己瞎写的
     //流程顺序
-    public static String[] PAYMENT_FLOWSTEPS={"curr_user",  "dept_head_1_0_1","flow_cwld_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1"};
-//    key="curr_user"      name="申请人发起"
-//    key="dept_superior_1_0_1"      name="直接上级审核"
-//    key="dept_head_1_0_1"      name="部门负责人审核"
-//    key="flow_fgld_1_0_1"      name="分管领导审核"
-//    key="flow_sjfgld_1_0_1"      name="上级分管领导审核"
-//    key="flow_zyld_1_0_1"      name="主要领导审核"
+    public static String[] PAYMENT_FLOWSTEPS = {"curr_user", "dept_head_1_0_1", "flow_cwld_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1"};
+
+
+    public static String[] onlyFlow_PAYMENT_FLOWSTEPS = {"curr_user", "dept_head_1_0_1", "flow_cwld_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_1"};
+
+    //本主流程的全部流程(出纳等财务必须要有的流程节点就不放在里面,该关键字只是跳跃审核用的)
+    public final static String[] onlyFlow_PAYMENT_FLOWSTEPS_ALL = {"curr_user", "dept_superior_1_0_1", "dept_head_1_0_1", "flow_fgld_1_0_1", "flow_sjfgld_1_0_1", "flow_zyld_1_0_2"};
+
+
+    // 不同流程会有不同的角色判断,所以做特定处理
+    public final static String[] PAYMENT_ROLES = {"cwld","fgld", "sjfgld", "zyld"};//领导查看(不带主类型)==> 结项评审委员会 分管领导 上级分管领导审核 项目评审委员会 主要领导审核 集团总经理审核
 
 
 

+ 1 - 4
pro-base/src/main/java/com/idea/oa/apply/util/service/RunerLoadOneService.java

@@ -32,9 +32,7 @@ public class RunerLoadOneService {
 //            if (ConstantFlowType.OFF_WORK_PROCESSDEFINE.equals(flowDefinition.getFlowDef())) {
 //                ConstantFlowType.OFF_WORK_DEPLOYMENTID=flowDefinition.getDeployId();
 //            }
-            if (ConstantFlowType.ADD_WORK_PROCESSDEFINE.equals(flowDefinition.getFlowDef())) {
-                ConstantFlowType.ADD_WORK_DEPLOYMENTID=flowDefinition.getDeployId();
-            }
+
 //            if (ConstantFlowType.PURCHASE_WORK_PROCESS_DEFINE.equals(flowDefinition.getFlowDef())) {
 //                ConstantFlowType.PURCHASE_WORK_DEPLOYMENT_ID=flowDefinition.getDeployId();
 //            }
@@ -45,7 +43,6 @@ public class RunerLoadOneService {
 //        System.out.println(ConstantFlowType.USE_MONEY_PROCESSDEFINE+"流程编号为:"+ConstantFlowType.USE_MONEY_DEPLOYMENTID);
 //        System.out.println(ConstantFlowType.PAYMEN_PROCESSDEFINE+"流程编号为:"+ConstantFlowType.PAYMEN_DEPLOYMENTID);
 //        System.out.println(ConstantFlowType.OFF_WORK_PROCESSDEFINE+"流程编号为:"+ConstantFlowType.OFF_WORK_DEPLOYMENTID);
-        System.out.println(ConstantFlowType.ADD_WORK_PROCESSDEFINE+"流程编号为:"+ConstantFlowType.ADD_WORK_DEPLOYMENTID);
 //        System.out.println(ConstantFlowType.PURCHASE_WORK_PROCESS_DEFINE+"流程编号为:"+ConstantFlowType.PURCHASE_WORK_DEPLOYMENT_ID);
         System.out.println(ConstantFlowType.PAYMENT_PROCESSDEFINE+"流程编号为:"+ConstantFlowType.PAYMENT_DEPLOYMENTID);
 

+ 0 - 9
pro-base/src/main/java/com/idea/oa/flow2/controller/FlowMainCcController.java

@@ -2,7 +2,6 @@ package com.idea.oa.flow2.controller;
 
 import com.github.pagehelper.PageInfo;
 import com.idea.oa.flow2.model.FlowMainCc;
-import com.idea.oa.flow2.model.FlowMainCcExample;
 import com.idea.oa.flow2.service.FlowMainCcService;
 import com.rockstar.common.base.BaseController;
 import com.rockstar.common.domain.AjaxResult;
@@ -75,12 +74,4 @@ public class FlowMainCcController extends BaseController {
     }
 
 
-    @PostMapping(value = "editByExample",produces = {"application/json;charset=UTF-8"})
-    @ResponseBody
-    public AjaxResult editByExample(FlowMainCc model){
-        FlowMainCcExample example = new FlowMainCcExample();
-        example.createCriteria().andFlowMainIdEqualTo(model.getId()).andCcUserEqualTo(model.getCcUser());
-        int result = modelService.updateByExampleSelective(model, example);
-        return result(result);
-    }
 }

+ 77 - 42
pro-base/src/main/java/com/idea/oa/flow2/controller/FlowMainController.java

@@ -3,8 +3,7 @@ package com.idea.oa.flow2.controller;
 import com.github.pagehelper.PageInfo;
 import com.idea.oa.activiti.service.ProActiService;
 import com.idea.oa.apply.model.*;
-import com.idea.oa.apply.service.ApplyAddWorkTimeService;
-//import com.idea.oa.apply.service.ApplyOffWorkTimeService;
+
 import com.idea.oa.apply.util.constant.ConstantFlowType;
 import com.idea.oa.apply.util.service.RunerLoadOneService;
 import com.idea.oa.flow2.model.FlowMain;
@@ -19,15 +18,13 @@ import com.idea.oa.flow2.model.out.IMGFlowHistoryInfo;
 import com.idea.oa.flow2.service.FlowMainLogService;
 import com.idea.oa.flow2.service.FlowMainPushService;
 import com.idea.oa.flow2.service.FlowMainService;
-//import com.idea.oa.holidayManagement.model.HolidayManagement;
-//import com.idea.oa.holidayManagement.service.HolidayManagementService;
+
 //import com.idea.oa.outsource.model.OutOrderMain;
 //import com.idea.oa.outsource.model.OutOrderMainExample;
 //import com.idea.oa.outsource.model.OutOrderPay;
 //import com.idea.oa.outsource.model.OutOrderPayExample;
 //import com.idea.oa.outsource.service.OutOrderMainService;
 //import com.idea.oa.outsource.service.OutOrderPayService;
-//import com.idea.oa.workAttendance.service.WorkAttendanceLogService;
 import com.rockstar.common.base.BaseController;
 import com.rockstar.common.domain.AjaxResult;
 import com.rockstar.flow.exception.FlowException;
@@ -64,16 +61,10 @@ import java.util.List;
 @Api(value = "申请流程/主表_主申请审核表")
 public class FlowMainController extends BaseController {
 
-//    @Autowired
-//    private WorkAttendanceLogService workAttendanceLogService;
-//    @Autowired
-//    private HolidayManagementService holidayManagementService;
 
-//    @Autowired
-//    private ApplyOffWorkTimeService applyOffWorkTimeService;
 
-    @Autowired
-    private ApplyAddWorkTimeService applyAddWorkTimeService;
+//    @Autowired
+//    private ApplyAddWorkTimeService applyAddWorkTimeService;
 
     //上面是业务中的信息,嵌入的业务信息了,以后可以考虑搬离
 
@@ -158,7 +149,74 @@ public class FlowMainController extends BaseController {
     public AjaxResult recallApply(String flowMainid) {
         return modelService.recallApply(flowMainid);
 
-
+//        if (StringUtils.isEmpty(flowMainid)) {
+//            return AjaxResult.error("数据不能为空");
+//        }
+//        FlowMain flowMain = modelService.selectByPrimaryKey(flowMainid);
+//        //流转状态为审核中时,可以由发起人撤回。ok
+//        if (!flowMain.getFlowStatus().equals(1)){
+//            return AjaxResult.error("流程状态不在审核中,请重新确认");
+//        }
+//        {//开始申请人撤回申请
+//            //1.关闭所有推送人数据信息表 ok
+//            {
+//                flowMainPushService.updateStatusThreeByFlowMainId(ShiroUtils.getUser().getId(),flowMain.getId());
+//            }
+//            //2.关闭主流程 ok
+//            {// 发起流程引擎操作 并结束该流程
+//
+//                try {
+//                    flowService.deleteInstance(flowMain.getFlowId(), "申请人撤回申请_结束流程");
+//                } catch (Exception e) {
+//                    System.err.println("流程引擎异常");
+//                    e.printStackTrace();
+////                    throw new RuntimeException(e);
+//                }
+//            }
+//            //3.关闭主流程表 ok
+//            //存入流程日志表的id
+//            String flowMainLogUuid = UUIDUtils.middleUUID();
+//            {
+//                FlowMain flowMain1 = new FlowMain();
+//                flowMain1.setId(flowMain.getId());
+//                flowMain1.setFlowStatus(4);//申请状态(1审批中,2,退回发起人,3,已结束,4已撤回)
+//                flowMain1.setLastMainLogId(flowMainLogUuid);
+//                flowMain1.setUpdatedAt(new Date());
+//                flowMain1.setUpdatedBy(ShiroUtils.getUser().getId());
+//                modelService.updateByPrimaryKeySelective(flowMain1);
+//            }
+//            //4 添加日志表
+//            FlowMainLog flowMainLog = new FlowMainLog();
+//            {//其表单对应的流转历史该节点审核结果显示为”发起人撤回”
+////                flowMainLogUuid
+//                flowMainLog.setId(flowMainLogUuid);
+//                flowMainLog.setFlowMainId(flowMain.getId());
+//                flowMainLog.setFormId(flowMain.getFormId());
+//                flowMainLog.setAuditUser(ShiroUtils.getUser().getId());
+//                flowMainLog.setAuditContent(null);
+//                flowMainLog.setAuditResult(null);
+//                //审批类型(0流程开始状态还是1流程审核状态还是2流程结束状态还是3申请人暂停状态4申请人结束状态
+//                flowMainLog.setAuditType("4");
+//                flowMainLog.setFlowType(flowMain.getFlowType());
+//                flowMainLog.setFlowPost(ShiroUtils.getUser().getId());
+//                {// 需要工作流引擎的支持
+//                    flowMainLog.setFlowId(flowMain.getFlowId());
+//                    flowMainLog.setTaskId(null);
+//                    flowMainLog.setNodeName("发起人撤回");
+//                }
+////            下一环节操作人(审核人/委托人/退回申请人),列表例如:,张三,李四,
+////            因为感觉用不到,暂时不放进去
+////            flowMainLog.setNextPersons();
+//                flowMainLog.setUpMainLogId(flowMain.getLastMainLogId());
+//                flowMainLog.setCcList(null);
+//                flowMainLog.setCreatedAt(new Date());
+//                flowMainLog.setCreatedBy(ShiroUtils.getUser().getId());
+//                flowMainLog.setGroupId(ShiroUtils.getUser().getGroupId());
+//                flowMainLog.setStatus(0);
+//                flowMainLogService.insertWithoutId(flowMainLog);
+//            }
+//        }
+//        return result(1);
     }
 
 
@@ -258,7 +316,7 @@ public class FlowMainController extends BaseController {
 
     }
 
-    //todo 查看审核人列表
+
 
 
     /**
@@ -721,33 +779,10 @@ public class FlowMainController extends BaseController {
             FlowMainLog flowMainLog = flowMainLogService.selectByPrimaryKey(flowMain.getLastMainLogId());
             if (flowMainLog.getAuditResult().equals("1")) {//最后的操作是同意操作
                 if (flowMain.getFlowType().equals(ConstantFlowType.OFF_WORK)) {
-
-
-                } else if (flowMain.getFlowType().equals(ConstantFlowType.ADD_WORK)) {
-
-                    // todo 些自己的业务
-                    //加班进行回滚
-                    ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
-                    example.createCriteria().andAddWorkIdEqualTo(flowMain.getFormId());
-                    List<ApplyAddWorkTime> applyOffWorkTimeList = applyAddWorkTimeService.selectByExample(example);
-                    //获取所有的加班时间
-                    BigDecimal totaluseTime = new BigDecimal(0);
-                    //2========================================================
-                    {  //获取总共加班时间
-                        for (ApplyAddWorkTime applyAddWorkTime : applyOffWorkTimeList) {
-                            totaluseTime = totaluseTime.add(applyAddWorkTime.getUseTime(), MathContext.DECIMAL32);
-                        }
-
-                    }
-
-
-
-
-
-
-                } else if (flowMain.getFlowType().equals(ConstantFlowType.PURCHASE_WORK)){
-
-                } else if (flowMain.getFlowType().equals(ConstantFlowType.PAYMEN)){
+                    //请假进行回滚
+                    //1进行请假申请的查询
+                    //2.如果查到请假中有年假或者调休需要查年假管理表进行修改
+                    //3.最后删除对应的考勤日志
 
 
                 }

+ 5 - 11
pro-base/src/main/java/com/idea/oa/flow2/mapper/FlowMainExtendMapper.java

@@ -30,17 +30,11 @@ public interface FlowMainExtendMapper {
     @Select("SELECT frame_user.* FROM frame_role_data_user LEFT JOIN frame_role_data ON frame_role_data.id=frame_role_data_user.role_data_id LEFT JOIN frame_user ON frame_user.id=frame_role_data_user.user_id WHERE frame_role_data.role_key=#{roleKey} AND frame_role_data.role_type=#{roleType} ")
     List<FrameUser> findFrameUsersByRoleKey(@Param("roleKey")String roleKey,@Param("roleType")String roleType);
 
-//    @Select("SELECT frame_user.* FROM frame_role_data_user " +
-//            "LEFT JOIN frame_role_data ON frame_role_data.id=frame_role_data_user.role_data_id " +
-//            "LEFT JOIN frame_user ON frame_user.id=frame_role_data_user.user_id " +
-//            "WHERE frame_role_data.role_key=#{roleKey} AND frame_role_data.role_type=#{roleType} " +
-//            "AND frame_user.group_id=#{groupId} AND frame_user.status = '1'")
-    //下面是取消过滤group_id的数据
-@Select("SELECT frame_user.* FROM frame_role_data_user " +
-        "LEFT JOIN frame_role_data ON frame_role_data.id=frame_role_data_user.role_data_id " +
-        "LEFT JOIN frame_user ON frame_user.id=frame_role_data_user.user_id " +
-        "WHERE frame_role_data.role_key=#{roleKey} AND frame_role_data.role_type=#{roleType} " +
-        "AND frame_user.status = '1'")
+    @Select("SELECT frame_user.* FROM frame_role_data_user " +
+            "LEFT JOIN frame_role_data ON frame_role_data.id=frame_role_data_user.role_data_id " +
+            "LEFT JOIN frame_user ON frame_user.id=frame_role_data_user.user_id " +
+            "WHERE frame_role_data.role_key=#{roleKey} AND frame_role_data.role_type=#{roleType} " +
+            "AND frame_user.group_id=#{groupId} AND frame_user.status = '1'")
     List<FrameUser> findFrameUsersByRoleKeyAndGroup(@Param("roleKey")String roleKey, @Param("roleType")String roleType,
                                             @Param("groupId")String groupId);
 

+ 1 - 1
pro-base/src/main/java/com/idea/oa/flow2/mapper/FlowMainPushExtendMapper.java

@@ -9,7 +9,7 @@ import org.springframework.stereotype.Component;
 import java.util.List;
 @Component
 public interface FlowMainPushExtendMapper {
-    @Select("UPDATE flow_main_push SET STATUS=2,updated_by=#{userId},updated_at=NOW() WHERE flow_main_push.up_main_log_id=#{upMainLogId} AND flow_main_push.id !=#{id}")
+    @Select("UPDATE flow_main_push SET STATUS=2,updated_by=#{userId},updated_at=NOW() WHERE flow_main_push.up_main_log_id=#{upMainLogId} AND flow_main_push.id !=#{id} and status=0")
     void updateStatusTwoByUpMainLogId(@Param("userId") String userId,@Param("upMainLogId") String upMainLogId,@Param("id") String id);
     @Select("UPDATE flow_main_push SET STATUS=3,updated_by=#{userId},updated_at=NOW() WHERE flow_main_push.flow_main_id=#{flowMainId} and STATUS=0")
     void updateStatusThreeByFlowMainId(@Param("userId") String userId,@Param("flowMainId")  String flowMainId);

+ 0 - 10
pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainCc.java

@@ -26,8 +26,6 @@ public class FlowMainCc implements Serializable {
 
     private String remark;
 
-    private String isRead;
-
     private static final long serialVersionUID = 1L;
 
     public String getId() {
@@ -117,12 +115,4 @@ public class FlowMainCc implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark == null ? null : remark.trim();
     }
-
-    public String getIsRead() {
-        return isRead;
-    }
-
-    public void setIsRead(String isRead) {
-        this.isRead = isRead == null ? null : isRead.trim();
-    }
 }

+ 0 - 70
pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainCcExample.java

@@ -844,76 +844,6 @@ public class FlowMainCcExample {
             addCriterion("remark not between", value1, value2, "remark");
             return (Criteria) this;
         }
-
-        public Criteria andIsReadIsNull() {
-            addCriterion("is_read is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadIsNotNull() {
-            addCriterion("is_read is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadEqualTo(String value) {
-            addCriterion("is_read =", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadNotEqualTo(String value) {
-            addCriterion("is_read <>", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadGreaterThan(String value) {
-            addCriterion("is_read >", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadGreaterThanOrEqualTo(String value) {
-            addCriterion("is_read >=", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadLessThan(String value) {
-            addCriterion("is_read <", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadLessThanOrEqualTo(String value) {
-            addCriterion("is_read <=", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadLike(String value) {
-            addCriterion("is_read like", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadNotLike(String value) {
-            addCriterion("is_read not like", value, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadIn(List<String> values) {
-            addCriterion("is_read in", values, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadNotIn(List<String> values) {
-            addCriterion("is_read not in", values, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadBetween(String value1, String value2) {
-            addCriterion("is_read between", value1, value2, "isRead");
-            return (Criteria) this;
-        }
-
-        public Criteria andIsReadNotBetween(String value1, String value2) {
-            addCriterion("is_read not between", value1, value2, "isRead");
-            return (Criteria) this;
-        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 20 - 10
pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainPush.java

@@ -14,8 +14,6 @@ public class FlowMainPush implements Serializable {
 
     private String pushUserKey;
 
-    private String nodeName;
-
     private Integer pushType;
 
     private Integer pushRole;
@@ -44,6 +42,10 @@ public class FlowMainPush implements Serializable {
 
     private String remark;
 
+    private String nodeName;
+
+    private String nodeUserRole;
+
     private static final long serialVersionUID = 1L;
 
     public String getId() {
@@ -86,14 +88,6 @@ public class FlowMainPush implements Serializable {
         this.pushUserKey = pushUserKey == null ? null : pushUserKey.trim();
     }
 
-    public String getNodeName() {
-        return nodeName;
-    }
-
-    public void setNodeName(String nodeName) {
-        this.nodeName = nodeName == null ? null : nodeName.trim();
-    }
-
     public Integer getPushType() {
         return pushType;
     }
@@ -205,4 +199,20 @@ public class FlowMainPush implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark == null ? null : remark.trim();
     }
+
+    public String getNodeName() {
+        return nodeName;
+    }
+
+    public void setNodeName(String nodeName) {
+        this.nodeName = nodeName == null ? null : nodeName.trim();
+    }
+
+    public String getNodeUserRole() {
+        return nodeUserRole;
+    }
+
+    public void setNodeUserRole(String nodeUserRole) {
+        this.nodeUserRole = nodeUserRole == null ? null : nodeUserRole.trim();
+    }
 }

+ 140 - 70
pro-base/src/main/java/com/idea/oa/flow2/model/FlowMainPushExample.java

@@ -455,76 +455,6 @@ public class FlowMainPushExample {
             return (Criteria) this;
         }
 
-        public Criteria andNodeNameIsNull() {
-            addCriterion("node_name is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameIsNotNull() {
-            addCriterion("node_name is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameEqualTo(String value) {
-            addCriterion("node_name =", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameNotEqualTo(String value) {
-            addCriterion("node_name <>", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameGreaterThan(String value) {
-            addCriterion("node_name >", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameGreaterThanOrEqualTo(String value) {
-            addCriterion("node_name >=", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameLessThan(String value) {
-            addCriterion("node_name <", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameLessThanOrEqualTo(String value) {
-            addCriterion("node_name <=", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameLike(String value) {
-            addCriterion("node_name like", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameNotLike(String value) {
-            addCriterion("node_name not like", value, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameIn(List<String> values) {
-            addCriterion("node_name in", values, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameNotIn(List<String> values) {
-            addCriterion("node_name not in", values, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameBetween(String value1, String value2) {
-            addCriterion("node_name between", value1, value2, "nodeName");
-            return (Criteria) this;
-        }
-
-        public Criteria andNodeNameNotBetween(String value1, String value2) {
-            addCriterion("node_name not between", value1, value2, "nodeName");
-            return (Criteria) this;
-        }
-
         public Criteria andPushTypeIsNull() {
             addCriterion("push_type is null");
             return (Criteria) this;
@@ -1454,6 +1384,146 @@ public class FlowMainPushExample {
             addCriterion("remark not between", value1, value2, "remark");
             return (Criteria) this;
         }
+
+        public Criteria andNodeNameIsNull() {
+            addCriterion("node_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameIsNotNull() {
+            addCriterion("node_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameEqualTo(String value) {
+            addCriterion("node_name =", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameNotEqualTo(String value) {
+            addCriterion("node_name <>", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameGreaterThan(String value) {
+            addCriterion("node_name >", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameGreaterThanOrEqualTo(String value) {
+            addCriterion("node_name >=", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameLessThan(String value) {
+            addCriterion("node_name <", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameLessThanOrEqualTo(String value) {
+            addCriterion("node_name <=", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameLike(String value) {
+            addCriterion("node_name like", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameNotLike(String value) {
+            addCriterion("node_name not like", value, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameIn(List<String> values) {
+            addCriterion("node_name in", values, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameNotIn(List<String> values) {
+            addCriterion("node_name not in", values, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameBetween(String value1, String value2) {
+            addCriterion("node_name between", value1, value2, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeNameNotBetween(String value1, String value2) {
+            addCriterion("node_name not between", value1, value2, "nodeName");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleIsNull() {
+            addCriterion("node_user_role is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleIsNotNull() {
+            addCriterion("node_user_role is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleEqualTo(String value) {
+            addCriterion("node_user_role =", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleNotEqualTo(String value) {
+            addCriterion("node_user_role <>", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleGreaterThan(String value) {
+            addCriterion("node_user_role >", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleGreaterThanOrEqualTo(String value) {
+            addCriterion("node_user_role >=", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleLessThan(String value) {
+            addCriterion("node_user_role <", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleLessThanOrEqualTo(String value) {
+            addCriterion("node_user_role <=", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleLike(String value) {
+            addCriterion("node_user_role like", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleNotLike(String value) {
+            addCriterion("node_user_role not like", value, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleIn(List<String> values) {
+            addCriterion("node_user_role in", values, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleNotIn(List<String> values) {
+            addCriterion("node_user_role not in", values, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleBetween(String value1, String value2) {
+            addCriterion("node_user_role between", value1, value2, "nodeUserRole");
+            return (Criteria) this;
+        }
+
+        public Criteria andNodeUserRoleNotBetween(String value1, String value2) {
+            addCriterion("node_user_role not between", value1, value2, "nodeUserRole");
+            return (Criteria) this;
+        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 0 - 10
pro-base/src/main/java/com/idea/oa/flow2/model/in/FlowMainIn.java

@@ -23,16 +23,6 @@ public class FlowMainIn extends FlowMain {
     private String flowStatusString;
     private String auditResultString;
 
-    private String isRead;
-
-    public String getIsRead() {
-        return isRead;
-    }
-
-    public void setIsRead(String isRead) {
-        this.isRead = isRead;
-    }
-
     public String getAuditResultString() {
         return auditResultString;
     }

+ 17 - 0
pro-base/src/main/java/com/idea/oa/flow2/model/in/TargetUserAndFlowRole.java

@@ -0,0 +1,17 @@
+package com.idea.oa.flow2.model.in;
+
+import com.rockstar.frame.model.FrameUser;
+import lombok.Data;
+
+/**
+ * 流程下个目标人,以及对应的节点角色,包含全部信息,例如dept_superior_1_0_1
+ * 如果 返回 frameUser为null,说明没有找到目标用户
+ * 如果 flowRole 为null ,说明 本分支流程找过了没有对应角色,需要全流程查看一下
+ * onlyFlowFlowStep:本分支的全部步骤,如果flowRole有,就可以用到这个对象进行查询
+ */
+@Data
+public class TargetUserAndFlowRole {
+    public String flowRole;
+    public FrameUser frameUser;
+    public String[] onlyFlowFlowStep;
+}

+ 11 - 2
pro-base/src/main/java/com/idea/oa/flow2/model/out/IMGFlowHistoryInfo.java

@@ -8,11 +8,20 @@ public class IMGFlowHistoryInfo {
   private String nodeKey;
 //  //审核状态:审批结果(1同意或者2不同意驳回到申请人,3不同意驳回到上一个审核人,4,委托别人进行审核,5,不同意且结束流程,null没有审核)
 //  private String auditResult;
-// 1 审核通过,2退回,3审核中,4申请人撤回,5,监控室撤回,6审核不同意,结束流程
+// 1 单点审核通过,2退回,3审核中,4申请人撤回,5,监控室撤回,6审核不同意,结束流程
   private String type;
-  //审核是否通过,1通过,其他null
+  //整改审核是否通过,1通过,其他null
     private String isPass;
+    // 判断是否跳过,如果有数据就不跳过
+    private Boolean isJump=true;
 
+    public Boolean getJump() {
+        return isJump;
+    }
+
+    public void setJump(Boolean jump) {
+        isJump = jump;
+    }
 
     public String getIsPass() {
         return isPass;

+ 19 - 0
pro-base/src/main/java/com/idea/oa/flow2/service/FlowMainLogService.java

@@ -13,6 +13,7 @@ import com.rockstar.util.UUIDUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -115,4 +116,22 @@ public class FlowMainLogService implements BaseService<FlowMainLog, FlowMainLogE
         }
 
     }
+
+    /**
+     * 查询所有通过的日志信息
+     * @param flowMainId
+     * @return
+     */
+    public List<FlowMainLog> selectPassListByFlowMainId(String flowMainId) {
+        FlowMainLogExample example = new FlowMainLogExample();
+        example.setOrderByClause("created_at desc");
+        example.createCriteria().andFlowMainIdEqualTo(flowMainId).andStatusEqualTo(0).andAuditResultEqualTo("1");
+        List<FlowMainLog> flowMainLogs = modelMapper.selectByExample(example);
+        if (flowMainLogs.isEmpty()){
+            return new ArrayList<>();
+        }else{
+            return flowMainLogs;
+        }
+
+    }
 }

Diferenças do arquivo suprimidas por serem muito extensas
+ 601 - 771
pro-base/src/main/java/com/idea/oa/flow2/service/FlowMainService.java