guoshilong
2024-03-04 27b27564be25fd92edfe328a0e989ee8f4c4e7d3
任务查询,按创建时间查询;白蚁大坝汛前巡查流程
8 files modified
108 ■■■■ changed files
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.xml 13 ●●●● 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/IPatrolTaskService.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java 55 ●●●● 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 3 ●●●●● patch | view | raw | blame | history
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.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>
@@ -207,6 +209,7 @@
            <result property="content" column="content"/>
            <result property="state" column="state"/>
            <result property="recordType" column="recordType"/>
            <result property="handleUserName" column="handleUserName"/>
        </collection>
    </resultMap>
@@ -225,10 +228,13 @@
               R.solution,
               R.CONTENT,
               R.STATE,
               R.record_type as recordType
               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}
@@ -323,8 +329,9 @@
    </select>
    <select id="getHandleRecord" resultMap="selectPatrolRecordList">
        SELECT * FROM SM_PATROL_RECORD
        WHERE IS_DELETED = 0
        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>
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/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/PatrolTaskServiceImpl.java
@@ -145,7 +145,8 @@
                //设置创建人
                .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId())
                //指定巡查责任人
                .set(PATROL_USER, TaskUtil.getTaskUser(patrolTask.getToUserId()));
                .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()) {
@@ -161,6 +162,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)
@@ -188,12 +233,7 @@
                patrolRecordService.saveBatch(patrolTask.getPatrolRecordList());
            }
//            //查监测预警表,看是否有这个任务,有的话修改任务状态
//            Boolean finishDamTask = nkyClient.finishTask(patrolTask.getId().toString());
//            if (!finishDamTask){
//                //查白蚁表,看是否有这个任务,有的话修改任务状态
//                Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTask.getId().toString());
//            }
            return baseMapper.updateById(patrolTask) > 0;
        } else {
@@ -388,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/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
@@ -72,4 +72,7 @@
    private String lat;
    private String comment;
    //工作流taskId
    private String flowTaskId;
}