xieb
2024-03-05 200f9e99bab7dcab9360f34fa25f6fa97c33c167
Merge remote-tracking branch 'origin/jtdev' into jtdev
17 files modified
340 ■■■■ changed files
skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/constant/ProcessConstant.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClient.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClientFallback.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/feign/FlowClient.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolRecordController.java 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolRecordMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolRecordMapper.xml 41 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml 10 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolRecordService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolRecordServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java 195 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/BladeFlowTask.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolRecordVO.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/constant/ProcessConstant.java
@@ -64,6 +64,16 @@
    String TOTECH_KEY = "toTech";
    /**
     * 转送给主管部门负责人标识
     */
    String TOSUPERVISOR_KEY = "toSupervisor";
    /**
     * 转送给主管部门负责人标识
     */
    String TOADMIN_KEY = "toAdmin";
    /**
     * 同意代号
     */
    String PASS_ALIAS = "ok";
skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClient.java
@@ -52,6 +52,8 @@
    String DONE_LIST = "/done-list";
    String GET_BLADEFLOW = "/getBladeFlow";
    String HISTORY_FLOW_LIST = "/history-flow-list";
    /**
     * 开启流程
     *
@@ -124,4 +126,9 @@
    @PostMapping(DONE_LIST)
    R<BladeFlowPage> getDoneBladeFlowList(@RequestParam("size") Integer size, @RequestParam("current") Integer current, @RequestParam("currentUserId") String currentUserId, @RequestBody BladeFlowVO bladeFlow);
    @GetMapping(HISTORY_FLOW_LIST)
    R<List<BladeFlow>> historyFlowList(@RequestParam("processInstanceId") String processInstanceId,@RequestParam("startActivityId") String startActivityId,@RequestParam("endActivityId") String endActivityId);
}
skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClientFallback.java
@@ -74,4 +74,10 @@
        return R.fail("远程调用失败");
    }
    @Override
    public R<List<BladeFlow>> historyFlowList(String processInstanceId, String startActivityId, String endActivityId) {
        return R.fail("远程调用失败");
    }
}
skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/feign/FlowClient.java
@@ -21,6 +21,7 @@
import cn.gistack.flow.core.feign.IFlowClient;
import cn.gistack.flow.core.utils.TaskUtil;
import cn.gistack.flow.core.vo.BladeFlowVO;
import cn.gistack.flow.engine.service.FlowEngineService;
import cn.gistack.sm.patrol.vo.BladeFlowPage;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
@@ -54,6 +55,7 @@
    private final IdentityService identityService;
    private final TaskService taskService;
    private final FlowBusinessService flowBusinessService;
    private final FlowEngineService flowEngineService;
    @Override
    @PostMapping(START_PROCESS_INSTANCE_BY_ID)
@@ -148,5 +150,12 @@
        return R.data(bladeFlowPage);
    }
    @Override
    @GetMapping(HISTORY_FLOW_LIST)
    public R<List<BladeFlow>> historyFlowList(String processInstanceId, String startActivityId, String endActivityId) {
        List<BladeFlow> bladeFlows = flowEngineService.historyFlowList(processInstanceId, startActivityId, endActivityId);
        return R.data(bladeFlows);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolRecordController.java
@@ -179,5 +179,17 @@
        return R.data(detail);
    }
    /**
     * 获取处理情况
     * @param patrolRecord
     * @return
     */
    @GetMapping("getHandleRecord")
    public R getHandleRecord(PatrolRecord patrolRecord){
        PatrolRecordVO res = patrolRecordService.getHandleRecord(patrolRecord);
        return R.data(res);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -208,6 +208,18 @@
    }
    /**
     * 汛期、白蚁、大坝 责任人完成任务
     */
    @PostMapping("person-complete-task")
    @ApiOperation(value = "完成任务", notes = "传入流程信息")
    public R personCompleteTask(@RequestBody PatrolTaskVO patrolTaskVO) {
        return R.status(patrolTaskService.personCompleteTask(patrolTaskVO, patrolTaskVO.getCurrentUserId(), patrolTaskVO.getTaskUser()));
    }
    /**
     * 查询待办
     *
     * @param patrolTask 任务
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java
@@ -154,6 +154,9 @@
     */
    private String processInstanceId;
    //处理状态,1、巡查;2、处理中;3已处理
    private String handleStatus;
    /**
     * 工作流标识 是否上报
     */
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolRecordMapper.java
@@ -27,4 +27,6 @@
    List<PatrolGroupDTO> getHistoryRecord(@Param("vo") PatrolRecordVO patrolRecordVO);
    RecordVO getRecordVO(@Param("vo") RecordVO recordVO);
    PatrolRecordVO getHandleRecord(@Param("record") PatrolRecord patrolRecord);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolRecordMapper.xml
@@ -35,6 +35,8 @@
        <result column="city_name" property="cityName"/>
        <result column="county_name" property="countyName"/>
        <result column="town_name" property="townName"/>
        <result property="handleUser" column="handleUser"/>
        <result property="handleUserName" column="handleUserName"/>
    </resultMap>
@@ -81,6 +83,9 @@
          </if>
        <if test="patrolRecord.status !=null and patrolRecord.status != '' ">
            AND record.status = #{patrolRecord.status}
        </if>
        <if test="patrolRecord.solution !=null and patrolRecord.solution != '' ">
            AND record.solution = #{patrolRecord.solution}
        </if>
        <if test="patrolRecord.patrolType !=null and patrolRecord.patrolType !=''">
            AND record.patrolType = #{patrolRecord.patrolType}
@@ -202,6 +207,9 @@
            <result property="taskId" column="taskId"/>
            <result property="solution" column="solution"/>
            <result property="content" column="content"/>
            <result property="state" column="state"/>
            <result property="recordType" column="recordType"/>
            <result property="handleUserName" column="handleUserName"/>
        </collection>
    </resultMap>
@@ -217,11 +225,16 @@
               R.ITEM_ID  AS itemId,
               I.ITEMS_NAME AS itemsName,
               R.TASK_ID AS taskId ,
               R.SOLUTION,
               R.CONTENT
               R.solution,
               R.CONTENT,
               R.STATE,
               R.record_type as recordType,
               R.UPDATE_USER as handleUser,
               BU.real_name as handleUserName
        FROM SM_PATROL_GROUP G
                 LEFT JOIN SM_PATROL_GROUP_ITEM I ON I.GROUP_ID = G.ID
                 LEFT JOIN SM_PATROL_RECORD R ON R.ITEM_ID = I.ID
                LEFT JOIN BLADE_USER BU ON BU.ID = R.UPDATE_USER
        WHERE G.IS_DELETED = 0
          <if test="vo.flowTaskId != null and vo.flowTaskId !='' ">
              AND R.FLOW_TASK_ID = #{vo.flowTaskId}
@@ -231,6 +244,15 @@
         </if>
        <if test="vo.recordType !=null and vo.recordType !=''">
            AND R.record_type = #{vo.recordType}
        </if>
        <if test="vo.status !=null and vo.status !=''">
            AND R.status = #{vo.status}
        </if>
        <if test="vo.state !=null and vo.state !=''">
            AND R.status = #{vo.state}
        </if>
        <if test="vo.solution !=null and vo.solution !=''">
            AND R.status = #{vo.solution}
        </if>
    </select>
@@ -306,7 +328,20 @@
             LEFT JOIN YWXT.BLADE_USER BU ON BU.ID = handle.CREATE_USER
    </select>
    <select id="getHandleRecord" resultMap="selectPatrolRecordList">
        SELECT SPR.*,SPR.update_user as handleUser,BU.real_name as handleUserName FROM SM_PATROL_RECORD SPR
        LEFT JOIN BLADE_USER BU ON BU.ID = SPR.UPDATE_USER
        WHERE SPR.IS_DELETED = 0
        <if test="record.taskId != null and record.taskId != ''">
            AND task_id = #{record.taskId}
        </if>
        <if test="record.itemId != null and record.itemId !=''">
            AND item_id = #{record.itemId}
        </if>
        <if test="record.recordType != null and record.recordType != ''">
            AND record_type = #{record.recordType}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
@@ -61,11 +61,17 @@
                        <if test="patrolTask.title !=null and patrolTask.title!=''">
                            AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%')
                        </if>
<!--                        <if test="patrolTask.startTime !=null and patrolTask.startTime !=''">-->
<!--                            AND spt.start_time &gt;= #{patrolTask.startTime}-->
<!--                        </if>-->
<!--                        <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">-->
<!--                            AND spt.end_time &lt;= #{patrolTask.endTime}-->
<!--                        </if>-->
                        <if test="patrolTask.startTime !=null and patrolTask.startTime !=''">
                            AND spt.start_time &gt;= #{patrolTask.startTime}
                            AND spt.create_time &gt;= #{patrolTask.startTime}
                        </if>
                        <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">
                            AND spt.end_time &lt;= #{patrolTask.endTime}
                            AND spt.create_time &lt;= #{patrolTask.endTime}
                        </if>
                        <if test="patrolTask.projectId !=null and patrolTask.projectId !='' ">
                            AND spt.project_id = #{patrolTask.projectId}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolRecordService.java
@@ -61,4 +61,6 @@
    List<PatrolGroupDTO> getHistoryRecord(PatrolRecordVO patrolRecordVO);
    RecordVO getRecordVO(RecordVO recordVO);
    PatrolRecordVO getHandleRecord(PatrolRecord patrolRecord);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
@@ -82,4 +82,13 @@
    List<TaskStatusCount> getTaskStatusCountOptimize(PatrolTaskVO patrolTaskVO);
    TaskStatus getTaskStatus(PatrolTaskVO patrolTaskVO);
    /**
     * 汛期、白蚁、大坝 责任人完成任务
     * @param patrolTaskVO
     * @param currentUserId
     * @param taskUser
     * @return
     */
    boolean personCompleteTask(PatrolTaskVO patrolTaskVO, String currentUserId, String taskUser);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolRecordServiceImpl.java
@@ -110,4 +110,9 @@
    public RecordVO getRecordVO(RecordVO recordVO) {
        return baseMapper.getRecordVO(recordVO);
    }
    @Override
    public PatrolRecordVO getHandleRecord(PatrolRecord patrolRecord) {
        return baseMapper.getHandleRecord(patrolRecord);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -44,8 +44,15 @@
    private final INkyClient nkyClient;
    private final IYwTermitesTaskService waterDataTermitesService;
    private final String PATROL_USER = "patrolUser";
    private final String TECH_USER = "techUser";
    private final String SUPERVISOR_USER = "supervisorUser";
    private final String ADMIN_USER = "adminUser";
    private final String DEPT_USER = "deptUser";
    /**
     * 自定义分页查询
     *
     * @param page
     * @param patrolTask
     * @return
@@ -64,6 +71,7 @@
    /**
     * 查询巡查人员统计数据信息
     *
     * @param patrolTask
     * @return
     */
@@ -74,6 +82,7 @@
    /**
     * 自定义编辑(空间坐标编辑)
     *
     * @param patrolTask
     * @return
     */
@@ -89,6 +98,7 @@
    /**
     * 自定义添加
     *
     * @param patrolTask
     * @return
     */
@@ -106,6 +116,7 @@
    /**
     * 自定义通过id查询
     *
     * @param id
     * @return
     */
@@ -120,11 +131,24 @@
        String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY);
        if (Func.isEmpty(patrolTask.getId())) {
            save(patrolTask);
            // 启动流程
//            Kv variables = Kv.create()
//                //设置创建人
//                .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId())
//                //指定任务处理人
//                .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId()));
//            R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables);
            Kv variables = Kv.create()
                //设置创建人
                .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId())
                //指定巡查责任人
                .set(PATROL_USER, TaskUtil.getTaskUser(patrolTask.getToUserId()))
                .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId()));
            R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables);
            if (result.isSuccess()) {
                log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId());
                // 返回流程id写入leave
@@ -139,6 +163,50 @@
        return patrolTask;
    }
    @Override
    public boolean personCompleteTask(PatrolTaskVO patrolTaskVO, String currentUserId, String taskUser) {
        String taskId = patrolTaskVO.getFlowTaskId();
        String processInstanceId = patrolTaskVO.getProcessInstanceId();
        String comment = patrolTaskVO.getComment();
        //保存巡查记录
        if (patrolTaskVO.getPatrolRecordList() != null && patrolTaskVO.getPatrolRecordList().size()>0){
            patrolRecordService.saveBatch(patrolTaskVO.getPatrolRecordList());
        }
        // 创建变量
        Map<String, Object> variables = new HashMap<>();
        if (variables == null) {
            variables = Kv.create();
        }
        //指定了人就是上报,没指定就表示已经处理了
        if (StringUtil.isNotBlank(taskUser)){
            variables.put("taskUser",TaskUtil.getTaskUser(taskUser));
            variables.put(ProcessConstant.REPORT_KEY,true);
        }else{
            variables.put(ProcessConstant.REPORT_KEY,false);
            //查监测预警表,看是否有这个任务,有的话修改任务状态
            Boolean finishDamTask = nkyClient.finishTask(patrolTaskVO.getId().toString());
            if (!finishDamTask){
                //查白蚁表,看是否有这个任务,有的话修改任务状态
                Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTaskVO.getId().toString());
            }
        }
        flowClient.completeTask(taskId, processInstanceId, comment, variables);
        return updateById(patrolTaskVO);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean patrolCompleteTask(PatrolTaskVO patrolTask,String currentUserId,String taskUser) {
@@ -147,30 +215,25 @@
            BladeFlow flow = res.getData();
            String taskId = flow.getTaskId();
            String processInstanceId = patrolTask.getProcessInstanceId();
//            String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT);
            String comment = "完成";
//            String comment = patrolTask.getReport() ? "巡查任务发现问题" : "巡查任务完成,未发现问题";
            String comment = patrolTask.getComment();
            // 创建变量
            Map<String, Object> variables = flow.getVariables();
            if (variables == null) {
                variables = Kv.create();
            }
            //设置是否上报标识
            variables.put(ProcessConstant.REPORT_KEY,patrolTask.getReport());
            variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser));
//            variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser));
            variables.put(TECH_USER, TaskUtil.getTaskUser(taskUser));
            // 完成任务
            flowClient.completeTask(taskId,processInstanceId,comment,variables);
            //保存巡查记录
            if (patrolTask.getPatrolRecordList() != null && patrolTask.getPatrolRecordList().size() > 0){
            patrolRecordService.saveBatch(patrolTask.getPatrolRecordList());
            //保存上报
            //停用
//            saveReport(patrolTask);
            //查监测预警表,看是否有这个任务,有的话修改任务状态
            Boolean finishDamTask = nkyClient.finishTask(patrolTask.getId().toString());
            if (!finishDamTask){
                //查白蚁表,看是否有这个任务,有的话修改任务状态
                Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTask.getId().toString());
            }
            return baseMapper.updateById(patrolTask) >0;
        }else {
@@ -180,39 +243,110 @@
    @Override
    public boolean chargeCompletePerson(BladeFlowTask bladeFlowTask) {
        //判断是否上报
//        boolean isReport = false;
//        List<PatrolReport> collect = bladeFlowTask.getPatrolReportList().stream().filter(report -> Func.equals(report.getStatus(), 2)).collect(Collectors.toList());
//        if (collect.size()>0){
//        if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())){
//            isReport = true;
//        }
//        //更新report表
//        boolean update = patrolReportService.updateBatchById(bladeFlowTask.getPatrolReportList());
//
//        String taskId = bladeFlowTask.getTaskId();
//        String processInstanceId = bladeFlowTask.getProcessInstanceId();
//        String comment = "完成";
//        // 创建变量
//        Map<String, Object> variables = new HashMap<>();
//        if (variables == null) {
//            variables = Kv.create();
//        }
//        //指定下一个人
//        variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, bladeFlowTask.getTaskUser()));
//        //指定是否上报
//        variables.put(ProcessConstant.REPORT_KEY,isReport);
//        //指定是否上报给部门
//        variables.put(ProcessConstant.TODEPT_KEY,bladeFlowTask.getToDept());
//        //指定是否转交
//        variables.put(ProcessConstant.TOTECH_KEY,bladeFlowTask.getToTech());
//        //完成任务
//        flowClient.completeTask(taskId, processInstanceId, comment, variables);
//        return true;
        boolean isReport = false;
        if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())){
            isReport = true;
        }
        String taskId = bladeFlowTask.getTaskId();
        String processInstanceId = bladeFlowTask.getProcessInstanceId();
        String comment = "完成";
        String comment = bladeFlowTask.getComment();
        // 创建变量
        Map<String, Object> variables = new HashMap<>();
        if (variables == null) {
            variables = Kv.create();
        }
        //指定下一个人
        variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, bladeFlowTask.getTaskUser()));
        //指定是否上报
        //默认不上报
        boolean isReport = false;
        if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())) {
            //指定了下一个人,修改状态为上报
            isReport = true;
        }
        //techPerson   supervisorPerson  adminPerson department
        //获取当前节点
        BladeFlow currentNode = getFlowNode(processInstanceId, 1);
        switch (currentNode.getHistoryActivityId()) {
            case "techPerson":
                variables.put(bladeFlowTask.getToDept()?DEPT_USER:SUPERVISOR_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser()));
                break;
            case "supervisorPerson":
                variables.put(bladeFlowTask.getToDept()?DEPT_USER:ADMIN_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser()));
                break;
            case "adminPerson":
                variables.put(DEPT_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser()));
                break;
            case "department":
                //当前节点为水行政部门,需要指定回复给谁
                //获取前一个节点
                BladeFlow beforeNode = getFlowNode(processInstanceId, 2);
                String beforeId = beforeNode.getHistoryActivityId();
                if (beforeId.equals("techPerson")) {
                    //前一个节点是技术责任人
                    variables.put(ProcessConstant.TOTECH_KEY, true);
                }else if (beforeId.equals("supervisorPerson")){
                    variables.put(ProcessConstant.TOSUPERVISOR_KEY, true);
                }else if (beforeId.equals("adminPerson")){
                    variables.put(ProcessConstant.TOADMIN_KEY, true);
                }
                break;
            default:
                break;
        }
        variables.put(ProcessConstant.REPORT_KEY,isReport);
        //指定是否上报给部门
        variables.put(ProcessConstant.TODEPT_KEY,bladeFlowTask.getToDept());
        //指定是否转交
        variables.put(ProcessConstant.TOTECH_KEY,bladeFlowTask.getToTech());
        //完成任务
        flowClient.completeTask(taskId, processInstanceId, comment, variables);
        return true;
    }
    /**
     * 获取节点信息,倒数第一个是自己,第二个是上一节点
     *
     * @param processInstanceId
     * @param i                 倒数第几
     * @return
     */
    private BladeFlow getFlowNode(String processInstanceId, int i) {
        R<List<BladeFlow>> res = flowClient.historyFlowList(processInstanceId, "start", "finish");
        if (res.isSuccess()) {
            //历史流程
            List<BladeFlow> data = res.getData();
            //size减1为当前节点,-2为上一节点
            BladeFlow bladeFlow = data.get(data.size() - i);
            return bladeFlow;
        } else {
            return null;
        }
    }
    @Override
@@ -294,6 +428,7 @@
        return taskStatus;
    }
    @Override
    public List<TaskStatusCount> getTaskTypeCount(PatrolTaskVO patrolTaskVO) {
        return baseMapper.getTaskTypeCount(patrolTaskVO);
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/BladeFlowTask.java
@@ -8,16 +8,17 @@
@Data
public class BladeFlowTask {
    private List<PatrolReport> patrolReportList;
    //流程任务id
    private String taskId;
    //实例id
    private String processInstanceId;
    //指定人
    private String taskUser;
    //上报给水行政部门
    private Boolean toDept;
    private Boolean toTech;
    private String comment;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolRecordVO.java
@@ -79,4 +79,7 @@
    private String endTime;
    private String adCode;
    private String handleUser;
    private String handleUserName;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java
@@ -70,4 +70,9 @@
    private String lon;
    private String lat;
    private String comment;
    //工作流taskId
    private String flowTaskId;
}