guoshilong
2023-05-18 6cd2da8eb7d7aefecd96a19ebbfe9caba59ea88c
巡查任务巡查责任人完成任务逻辑修改
15 files modified
388 ■■■■ 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/mapper/PatrolRecordMapper.xml 4 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml 37 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java 4 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java 10 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolRecordVO.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/controller/ReportFloodRecordController.java 93 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/entity/ReportFloodRecord.java 61 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodRecordMapper.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodRecordMapper.xml 41 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/IReportFloodRecordService.java 6 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/impl/ReportFloodRecordServiceImpl.java 79 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodRecordVO.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -64,9 +64,9 @@
     */
    @ApiOperation(value="获取所有巡查任务", notes="获取所有巡查任务")
    @GetMapping(value = "/all")
   public R getAll(){
       List<PatrolTask> list = patrolTaskService.list();
       return R.data(list);
   public R getAll(PatrolTaskVO patrolTaskVO){
       List<PatrolTask> list = patrolTaskService.getAll(patrolTaskVO);
        return R.data(list);
   }
   /**
@@ -187,13 +187,11 @@
    /**
     * 巡查人员完成任务
     *
     * @param patrolTask 任务
     */
    @PostMapping("patrol-complete-task")
    @ApiOperation(value = "完成任务", notes = "传入流程信息")
    public R completeTask(PatrolTask patrolTask, String currentUserId,String taskUser) {
        return R.status(patrolTaskService.patrolCompleteTask(patrolTask,currentUserId,taskUser));
    public R completeTask(@RequestBody PatrolTaskVO patrolTaskVO) {
        return R.status(patrolTaskService.patrolCompleteTask(patrolTaskVO,patrolTaskVO.getCurrentUserId(),patrolTaskVO.getTaskUser()));
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolRecordMapper.xml
@@ -24,6 +24,7 @@
        <result property="phone" column="phone"/>
        <result property="toUserId" column="create_user"/>
        <result property="toUserName" column="real_name"/>
        <result property="taskName" column="taskName"/>
        <result column="create_user" property="createUser"/>
        <result column="create_dept" property="createDept"/>
@@ -35,7 +36,8 @@
    <select id="selectPatrolRecord" resultMap="selectPatrolRecordList">
        SELECT
        record.id,record.patrol_type,record.device_ids,record.images,record.videos,record.content,record.status,record.item_id,record.task_id,record.patrol_route,record.update_time,record.solution,
        task.route_coordinates taskRoute,item.items_name itemsName,item.description
        task.route_coordinates taskRoute,task.title taskName,
        item.items_name itemsName,item.description
        FROM SM_PATROL_RECORD record
        LEFT JOIN sm_patrol_type type ON type.id = record.patrol_type
        LEFT JOIN sm_patrol_task task ON task.id = record.task_id
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java
@@ -20,6 +20,13 @@
    List<PatrolTaskVO> selectPatrolTask(IPage<PatrolTaskVO> page,@Param("patrolTask") PatrolTaskVO patrolTask);
    /**
     * 获取全部
     * @param patrolTaskVO
     * @return
     */
    List<PatrolTask> getAll(@Param("patrolTask") PatrolTaskVO patrolTaskVO);
    /**
     * 查询巡查人员统计数据信息
     * @param patrolTask
     * @return
@@ -48,4 +55,6 @@
    PatrolTask getPatrolTaskById(@Param("id")String id);
    PatrolTask customizeGetById(@Param("id") String id);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
@@ -35,6 +35,42 @@
            AND spt.state = #{patrolTask.state}
        </if>
    </select>
    <!--获取全部-->
    <select id="getAll" resultType="cn.gistack.sm.patrol.entity.PatrolTask">
        SELECT
        spt.*,spt2.name as patrolTypeName,
        route.ROUTE_COORDINATES routeRange,
        u.real_name toUserName
        FROM sm_patrol_task spt
        left join sm_patrol_type spt2 on spt.task_type = spt2.id
        LEFT JOIN sm_patrol_route route ON route.id = spt.route_id
        LEFT JOIN blade_user u ON u.id = spt.to_user_id
        WHERE spt.is_deleted = 0
        <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 DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTask.startTime}
        </if>
        <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">
            AND DATE_FORMAT(spt.end_time,'%Y-%m-%d') &lt;= #{patrolTask.endTime}
        </if>
        <if test="patrolTask.projectId !=null and patrolTask.projectId !='' ">
            AND spt.project_id = #{patrolTask.projectId}
        </if>
        <if test="patrolTask.reservoirName !=null and patrolTask.reservoirName !='' ">
            AND spt.reservoir_name LIKE CONCAT('%',#{patrolTask.reservoirName},'%')
        </if>
        <if test="patrolTask.toUserId != null and patrolTask.toUserId !=''">
            AND spt.to_user_id = #{patrolTask.toUserId}
        </if>
        <if test="patrolTask.state != null and patrolTask.state !=''">
            AND spt.state = #{patrolTask.state}
        </if>
        <if test="patrolTask.finish == 2">
            AND spt.state != 3
        </if>
    </select>
    <!--查询巡查人员统计数据信息-->
    <select id="getPatrolTaskStatistic" resultType="cn.gistack.sm.patrol.vo.PatrolTaskStatisticsVO">
@@ -146,4 +182,5 @@
        WHERE T.ID = #{id}
        AND T.IS_DELETED = 0
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
@@ -57,9 +57,11 @@
     */
    boolean startProcess(PatrolTask patrolTask);
    boolean patrolCompleteTask(PatrolTask patrolTask,String currentUserId,String taskUser);
    boolean patrolCompleteTask(PatrolTaskVO patrolTaskVO,String currentUserId,String taskUser);
    boolean chargeCompletePerson(BladeFlowTask bladeFlowTask);
    PatrolTask customizeGetById(String businessId);
    List<PatrolTask> getAll(PatrolTaskVO patrolTaskVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -137,8 +137,8 @@
    }
    @Override
    @Transactional
    public boolean patrolCompleteTask(PatrolTask patrolTask,String currentUserId,String taskUser) {
    @Transactional(rollbackFor = Exception.class)
    public boolean patrolCompleteTask(PatrolTaskVO patrolTask,String currentUserId,String taskUser) {
        R<BladeFlow> res = flowClient.getBladeFlow(patrolTask.getId().toString(),currentUserId);
        if (res.isSuccess()){
            BladeFlow flow = res.getData();
@@ -156,6 +156,7 @@
            // 完成任务
            flowClient.completeTask(taskId,processInstanceId,comment,variables);
            saveReport(patrolTask);
            patrolRecordService.saveBatch(patrolTask.getPatrolRecordList());
            return baseMapper.updateById(patrolTask) >0;
        }else {
            return  false;
@@ -204,6 +205,11 @@
        return baseMapper.customizeGetById(businessId);
    }
    @Override
    public List<PatrolTask> getAll(PatrolTaskVO patrolTaskVO) {
        return baseMapper.getAll(patrolTaskVO);
    }
    public void saveReport(PatrolTask patrolTask){
        //拿到当前任务下的异常巡查记录
        PatrolRecord patrolRecord = new PatrolRecord();
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolRecordVO.java
@@ -48,4 +48,8 @@
     * 联系方式
     */
    private String phone;
    /**
     * 任务名称
     */
    private String taskName;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java
@@ -1,8 +1,12 @@
package cn.gistack.sm.patrol.vo;
import cn.gistack.sm.patrol.entity.PatrolGroupItem;
import cn.gistack.sm.patrol.entity.PatrolRecord;
import cn.gistack.sm.patrol.entity.PatrolTask;
import cn.gistack.sm.reportFlood.entity.ReportFloodRecord;
import lombok.Data;
import java.util.List;
/**
 * 巡查组明细 vo
@@ -40,4 +44,13 @@
     * 当前用户id
     */
    private String currentUserId;
    private String taskUser;
    /**
     * 是否返回已完成的任务
     */
    private String finish;
    private List<PatrolRecord> patrolRecordList;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/controller/ReportFloodRecordController.java
@@ -110,98 +110,5 @@
        ReportFloodRecord reportFloodRecord = reportFloodRecordService.getById(id);
        return R.data(reportFloodRecord);
    }
    /**====================工作流==========================**/
    /**
     * 新增或修改
     *
     * @param reportFloodRecord
     * @return
     */
    @ApiOperation(value = "报汛记录-新增或修改", notes = "报汛记录-新增或修改")
    @PostMapping(value = "/start-process")
    public R startProcess(@RequestBody ReportFloodRecordVO reportFloodRecord) {
        return R.status(reportFloodRecordService.startProcess(reportFloodRecord));
    }
    /**
     * 完成任务
     *
     * @param reportFloodRecord
     * @return
     */
    @ApiOperation(value = "报汛记录-新增或修改", notes = "报汛记录-新增或修改")
    @PostMapping(value = "/complete-task")
    public R startProcess(@RequestBody ReportFloodRecordVO reportFloodRecord, String taskUser, String currentUser) {
        return R.status(reportFloodRecordService.completeTask(reportFloodRecord, taskUser, currentUser));
    }
    /**
     * 查询待办
     */
    @PostMapping("reportFlood-todo-list")
    @ApiOperation(value = "查询待办")
    public R reportFloodToDoList(ReportFloodRecordVO reportFloodRecordVO, Query query) {
        BladeFlowVO bladeFlow2 = new BladeFlowVO();
        //设置流程类型
        bladeFlow2.setCategory("flow_4");
        //获取待办
        R<BladeFlowPage> res = flowClient.getTodoBladeFlowList(query.getSize(), query.getCurrent(), reportFloodRecordVO.getCurrentUserId(), bladeFlow2);
        IPage<BladeFlowVO> bladeFlowVOIPage = new Page<>();
        List<BladeFlowVO> bladeFlowVOList = new ArrayList<>();
        if (res.isSuccess()) {
            List<Object> data = res.getData().getData();
            data.forEach(obj -> {
                BladeFlowVO<ReportFloodRecord> bladeFlow = JSON.parseObject(JSON.toJSONString(obj), BladeFlowVO.class);
                ReportFloodRecordVO byId = reportFloodRecordService.customizeGetDetail(bladeFlow.getBusinessId());
                bladeFlow.setDetail(byId);
                bladeFlowVOList.add(bladeFlow);
            });
        }
        //设置数据集
        bladeFlowVOIPage.setRecords(bladeFlowVOList);
        //设置当前页
        bladeFlowVOIPage.setCurrent(res.getData().getCurrent());
        //设置页数
        bladeFlowVOIPage.setSize(res.getData().getSize());
        //设置总数
        bladeFlowVOIPage.setTotal(res.getData().getTotal());
        return R.data(bladeFlowVOIPage);
    }
    /**
     * 查询已办
     */
    @PostMapping("reportFlood-done-list")
    @ApiOperation(value = "查询待办")
    public R reportFloodDoneList(ReportFloodRecordVO reportFloodRecordVO, Query query) {
        BladeFlowVO bladeFlow2 = new BladeFlowVO();
        //设置流程类型
        bladeFlow2.setCategory("flow_4");
        //获取待办
        R<BladeFlowPage> res = flowClient.getDoneBladeFlowList(query.getSize(), query.getCurrent(), reportFloodRecordVO.getCurrentUserId(), bladeFlow2);
        IPage<BladeFlowVO> bladeFlowVOIPage = new Page<>();
        List<BladeFlowVO> bladeFlowVOList = new ArrayList<>();
        if (res.isSuccess()) {
            List<Object> data = res.getData().getData();
            data.forEach(obj -> {
                BladeFlowVO<ReportFloodRecord> bladeFlow = JSON.parseObject(JSON.toJSONString(obj), BladeFlowVO.class);
                ReportFloodRecordVO byId = reportFloodRecordService.customizeGetDetail(bladeFlow.getBusinessId());
                bladeFlow.setDetail(byId);
                bladeFlowVOList.add(bladeFlow);
            });
        }
        //设置数据集
        bladeFlowVOIPage.setRecords(bladeFlowVOList);
        //设置当前页
        bladeFlowVOIPage.setCurrent(res.getData().getCurrent());
        //设置页数
        bladeFlowVOIPage.setSize(res.getData().getSize());
        //设置总数
        bladeFlowVOIPage.setTotal(res.getData().getTotal());
        return R.data(bladeFlowVOIPage);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/entity/ReportFloodRecord.java
@@ -19,7 +19,7 @@
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="SM_REPORT_FLOOD_RECORD对象", description="报汛记录表")
public class ReportFloodRecord extends FlowEntity {
public class ReportFloodRecord extends BaseEntity {
    /**
     * 水库id
     */
@@ -33,28 +33,46 @@
    private String curDrp;
    /**
     * 系统监测水位(米)
     * 老站监测水位(米)
     */
    @ApiModelProperty("系统监测水位(米)")
    private String sysReport;
    @ApiModelProperty("老站监测水位(米)")
    private String lkRz;
    /**
     * 人工观测水位差值
     * 老站超溢洪道(米)
     */
    @ApiModelProperty("人工观测水位差值")
    private String personWatch;
    @ApiModelProperty("老站超溢洪道(米)")
    private String lkOverZ;
    /**
     * 新站监测水位(米)
     */
    @ApiModelProperty("新站监测水位(米)")
    private String wlwRz;
    /**
     * 新站超溢洪道(米)
     */
    @ApiModelProperty("新站超溢洪道(米)")
    private String wlwOverZ;
    /**
     * 人工观测水位超汛幅度
     */
    @ApiModelProperty("人工观测水位超汛幅度")
    private String personOverZ;
    /**
     * 新站监测水位(米)
     */
    @ApiModelProperty("新站监测水位(米)")
    private String personRz;
    /**
     * 是否超溢洪道(1、是;2、否)
     */
    @ApiModelProperty("是否超溢洪道(1、是;2、否)")
    private String isOver;
    /**
     * 超溢洪道(米)
     */
    @ApiModelProperty("超溢洪道(米)")
    private String overZ;
    /**
     * 闸门状态(1、开启;2、关闭)
@@ -83,17 +101,20 @@
    private Object[] videos;
    /**
     * 1、自行处理;2、上报处理
     * 任务id
     */
    @ApiModelProperty("1、自行处理;2、上报处理")
    private String solution;
    @ApiModelProperty("任务id")
    private String taskId;
    /**
     * 流程定义id
     * 行政区划
     */
    private String processDefinitionId;
    @ApiModelProperty("行政区划")
    private String adCode;
    /**
     * 流程实例id
     * 是否审核(1、审核通过;2、审核未通过)
     */
    private String processInstanceId;
    @ApiModelProperty("是否审核(1、审核通过;2、审核未通过)")
    private String isAudit;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodRecordMapper.java
@@ -16,5 +16,5 @@
    List<ReportFloodRecord> selectReportFloodRecordPages(IPage<ReportFloodRecord> page, ReportFloodRecord reportFloodRecord);
    ReportFloodRecordVO customizeGetDetail(@Param("id") String id);
    ReportFloodRecordVO customizeGetDetail(@Param("reportFloodRecord") ReportFloodRecordVO reportFloodRecordVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodRecordMapper.xml
@@ -1,14 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.gistack.sm.reportFlood.mapper.ReportFloodRecordMapper">
    <resultMap id="vo" type="cn.gistack.sm.reportFlood.vo.ReportFloodRecordVO">
        <id property="id" column="id"/>
        <result property="reservoirName" column="reservoirName"/>
        <result property="updateTime" column="update_time"/>
        <result property="content" column="content"/>
        <result property="solution" column="solution"/>
        <result property="isDeleted" column="is_deleted"/>
        <result property="status" column="status"/>
        <result property="images" column="images" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result property="videos" column="videos" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result property="curDrp" column="cur_drp"/>
        <result property="gateStatus" column="gate_status"/>
        <result property="isOver" column="is_over"/>
        <result property="overZ" column="over_z"/>
        <result property="personWatch" column="person_watch"/>
        <result property="processDefinitionId" column="process_definition_id"/>
        <result property="processInstanceId" column="process_instance_id"/>
        <result property="reservoirId" column="reservoir_id"/>
        <result property="sysReport" column="sys_report"/>
        <result property="createDept" column="create_dept"/>
        <result property="createUser" column="create_user"/>
        <result property="updateUser" column="update_user"/>
        <result property="createTime" column="create_time"/>
        <result property="handleContent" column="handleContent"/>
        <result property="handleImages" column="handleImages" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result property="handleVideos" column="handleVideos" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result property="handleSolution" column="handleSolution"/>
    </resultMap>
    <select id="selectReportFloodRecordPages" resultType="cn.gistack.sm.reportFlood.entity.ReportFloodRecord">
    </select>
    <select id="customizeGetDetail" resultType="cn.gistack.sm.reportFlood.vo.ReportFloodRecordVO">
        SELECT R.*,atb."name" reservoirName FROM SM_REPORT_FLOOD_RECORD R
        LEFT JOIN "SJZT_MD"."att_res_base" atb ON atb."guid" = R.reservoir_id
        WHERE IS_DELETED = 0 AND  R.ID = #{id}
    <select id="customizeGetDetail" resultMap="vo">
        SELECT R.*,atb."name" reservoirName,handle.content handleContent,handle.solution handleSolution,handle.images handleImages,handle.videos handleVideos FROM SM_REPORT_FLOOD_RECORD r
        LEFT JOIN "SJZT_MD"."att_res_base" atb ON atb."guid" = r.reservoir_id
        LEFT JOIN SM_REPORT_FLOOD_HANDLE handle ON handle.record_id = r.id
        WHERE r.IS_DELETED = 0 AND  r.ID = #{reportFloodRecord.id}
        <if test="reportFloodRecord.currentUserId != null and reportFloodRecord.currentUserId !=''">
            AND handle.create_user = #{reportFloodRecord.currentUserId}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/IReportFloodRecordService.java
@@ -13,9 +13,5 @@
    IPage<ReportFloodRecord> selectReportFloodRecordPages(IPage<ReportFloodRecord> page, ReportFloodRecord reportFloodRecord);
    boolean startProcess(ReportFloodRecordVO reportFloodRecord);
    boolean completeTask(ReportFloodRecordVO reportFloodRecord, String taskUser, String currentUser);
    ReportFloodRecordVO customizeGetDetail(String businessId);
    ReportFloodRecordVO customizeGetDetail(ReportFloodRecordVO reportFloodRecordVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/impl/ReportFloodRecordServiceImpl.java
@@ -39,7 +39,6 @@
@Service
@AllArgsConstructor
public class ReportFloodRecordServiceImpl extends BaseServiceImpl<ReportFloodRecordMapper, ReportFloodRecord> implements IReportFloodRecordService {
    private final IFlowClient flowClient;
    private final IAttResManagePersonService attResManagePersonService;
    private final IUserClient userClient;
@@ -49,82 +48,8 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean startProcess(ReportFloodRecordVO reportFloodRecord) {
        String businessTable = FlowUtil.getBusinessTable(ProcessConstant.REPORT_FLOOD_KEY);
        if (Func.isEmpty(reportFloodRecord.getId())) {
            save(reportFloodRecord);
            // 启动流程
            Kv variables = Kv.create()
                .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, reportFloodRecord.getCreateUser())
                .set("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, reportFloodRecord.getTaskUser()));
            R<BladeFlow> result = flowClient.startProcessInstanceById(reportFloodRecord.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(reportFloodRecord.getId())), variables);
            if (result.isSuccess()) {
                log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId());
                // 返回流程id写入
                reportFloodRecord.setProcessInstanceId(result.getData().getProcessInstanceId());
                updateById(reportFloodRecord);
//                //状态正常直接结束任务
                ReportFloodRecordVO reportFloodRecordVO = new ReportFloodRecordVO();
                reportFloodRecordVO.setProcessInstanceId(reportFloodRecord.getProcessInstanceId());
                //业务id
                String businessId = reportFloodRecord.getId().toString();
                //当前用户id
                String currentUserId = reportFloodRecord.getCreateUser().toString();
                //指定下一人
                String taskUser = reportFloodRecord.getTaskUser();
                R<BladeFlow> res = flowClient.getBladeFlow(businessId,currentUserId);
                //参数设置
                if (res.isSuccess()){
                    reportFloodRecordVO.setFlow(res.getData());
                    if (Func.equals(reportFloodRecord.getStatus(),1)){
                        //状态正常结束任务
                        reportFloodRecordVO.setReport(false);
                    }else{
                        //异常
                        if (Func.equals(reportFloodRecord.getSolution(),"1")){
                            //自行处理
                            return true;
                        }else {
                            //上报给技术责任人
                            reportFloodRecordVO.setReport(true);
                        }
                    }
                }
                completeTask(reportFloodRecordVO,taskUser,currentUserId);
            } else {
                throw new ServiceException("开启流程失败");
            }
        } else {
            updateById(reportFloodRecord);
        }
        return true;
    }
    @Override
    public boolean completeTask(ReportFloodRecordVO reportFloodRecord, String taskUser, String currentUser) {
            BladeFlow flow = reportFloodRecord.getFlow();
            String taskId = flow.getTaskId();
            String processInstanceId = reportFloodRecord.getProcessInstanceId();
            String comment = "完成";
            // 创建变量
            Map<String, Object> variables = flow.getVariables();
            if (variables == null) {
                variables = Kv.create();
            }
            //指定是否上报
            variables.put(ProcessConstant.REPORT_KEY,reportFloodRecord.isReport());
            //指定转交人
            variables.put("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser));
            // 完成任务
            flowClient.completeTask(taskId,processInstanceId,comment,variables);
            return true;
    }
    @Override
    public ReportFloodRecordVO customizeGetDetail(String businessId) {
        return baseMapper.customizeGetDetail(businessId);
    public ReportFloodRecordVO customizeGetDetail(ReportFloodRecordVO reportFloodRecordVO) {
        return baseMapper.customizeGetDetail(reportFloodRecordVO);
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodRecordVO.java
@@ -23,4 +23,17 @@
     * 任务人
     */
    private String taskUser;
    private Object[] handleImages;
    private Object[] handleVideos;
    /**
     * 上报处理内容
     */
    private String handleContent;
    /**
     * 上报解决方案
     */
    private String handleSolution;
}