guoshilong
2023-05-16 d0a1fc499804f832f4c77bc80727340907cbfd4a
报汛开始流程调整
6 files modified
7 files added
553 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/controller/ReportFloodHandleController.java 125 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/controller/ReportFloodRecordController.java 166 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/entity/ReportFloodHandle.java 54 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodHandleMapper.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodHandleMapper.xml 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/IReportFloodHandleService.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/IReportFloodRecordService.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/impl/ReportFloodHandleServiceImpl.java 54 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/impl/ReportFloodRecordServiceImpl.java 63 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodHandleVO.java 33 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodRecordVO.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -214,6 +214,8 @@
    @ApiOperation(value = "查询待办")
    public R patrolTodoList(PatrolTaskVO patrolTask, Query query) {
        BladeFlow bladeFlow2 = new BladeFlow();
        //设置流程类型
        bladeFlow2.setCategory("flow_3");
        R<BladeFlowPage> res = flowClient.getTodoBladeFlowList(query.getSize(),query.getCurrent(),patrolTask.getCurrentUserId(), bladeFlow2);
        IPage<PatrolTask> patrolTaskIPage = new Page<>();
        List<PatrolTask> patrolTaskList = new ArrayList<>();
@@ -250,6 +252,8 @@
    @ApiOperation(value = "查询待办")
    public R patrolDoneList(PatrolTaskVO patrolTask, Query query){
        BladeFlowVO bladeFlow2 = new BladeFlowVO();
        //设置流程类型
        bladeFlow2.setCategory("flow_3");
        R<BladeFlowPage> res = flowClient.getDoneBladeFlowList(query.getSize(),query.getCurrent(),patrolTask.getCurrentUserId(), bladeFlow2);
        IPage<BladeFlowVO> bladeFlowVOIPage = new Page<>();
        List<BladeFlowVO> bladeFlowVOList = new ArrayList<>();
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/controller/ReportFloodHandleController.java
New file
@@ -0,0 +1,125 @@
package cn.gistack.sm.reportFlood.controller;
import cn.gistack.flow.core.feign.IFlowClient;
import cn.gistack.flow.core.vo.BladeFlowVO;
import cn.gistack.sm.patrol.vo.BladeFlowPage;
import cn.gistack.sm.reportFlood.entity.ReportFloodHandle;
import cn.gistack.sm.reportFlood.entity.ReportFloodRecord;
import cn.gistack.sm.reportFlood.service.IReportFloodHandleService;
import cn.gistack.sm.reportFlood.service.IReportFloodRecordService;
import cn.gistack.sm.reportFlood.vo.ReportFloodHandleVO;
import cn.gistack.sm.reportFlood.vo.ReportFloodRecordVO;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 报汛上报记录处理
*/
@Slf4j
@Api(tags="报汛上报记录处理")
@RestController
@RequestMapping("/reportFloodHandle/reportFloodHandle")
@AllArgsConstructor
public class ReportFloodHandleController extends BladeController {
   private IReportFloodHandleService reportFloodHandleService;
   /**
    * 分页列表查询
    */
   @ApiOperation(value="报汛上报记录处理-分页列表查询", notes="报汛上报记录处理-分页列表查询")
   @GetMapping(value = "/list")
   public R<IPage<ReportFloodHandle>> queryPageList(ReportFloodHandle reportFloodHandle, Query query) {
       IPage<ReportFloodHandle> pageList =  reportFloodHandleService.selectPages(Condition.getPage(query),reportFloodHandle);
       return R.data(pageList);
   }
   /**
    * 添加
    *
    * @param reportFloodHandle
    * @return
    */
   @ApiOperation(value="报汛上报记录处理-添加", notes="报汛上报记录处理-添加")
   @PostMapping(value = "/add")
   public R add(@RequestBody ReportFloodHandle reportFloodHandle) {
       return R.data(reportFloodHandleService.save(reportFloodHandle));
   }
   /**
    * 编辑
    *
    * @param reportFloodHandle
    * @return
    */
   @ApiOperation(value="报汛上报记录处理-编辑", notes="报汛上报记录处理-编辑")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
   public R edit(@RequestBody ReportFloodHandle reportFloodHandle) {
       return R.data(reportFloodHandleService.updateById(reportFloodHandle));
   }
   /**
    * 通过id删除
    *
    * @param id
    * @return
    */
   @ApiOperation(value="报汛上报记录处理-通过id删除", notes="报汛上报记录处理-通过id删除")
   @DeleteMapping(value = "/delete")
   public R delete(@RequestParam(name="id",required=true) String id) {
       return R.data(reportFloodHandleService.removeById(id));
   }
   /**
    * 批量删除
    *
    * @param ids
    * @return
    */
   @ApiOperation(value="报汛上报记录处理-批量删除", notes="报汛上报记录处理-批量删除")
   @DeleteMapping(value = "/deleteBatch")
   public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
       return R.data(this.reportFloodHandleService.removeByIds(Arrays.asList(ids.split(","))));
   }
   /**
    * 通过id查询
    *
    * @param id
    * @return
    */
   @ApiOperation(value="报汛上报记录处理-通过id查询", notes="报汛上报记录处理-通过id查询")
   @GetMapping(value = "/queryById")
   public R queryById(@RequestParam(name="id",required=true) String id) {
       ReportFloodHandle reportFloodHandle = reportFloodHandleService.getById(id);
       return R.data(reportFloodHandle);
   }
    /**====================工作流==========================**/
    /**
     * 完成任务
     *
     * @param reportFloodHandleVO
     * @return
     */
    @ApiOperation(value="报汛上报记录处理-完成任务", notes="报汛上报记录处理-完成任务")
    @PostMapping(value = "/complete-process")
    public R completeProcess(@RequestBody ReportFloodHandleVO reportFloodHandleVO) {
        return R.status(reportFloodHandleService.completeProcess(reportFloodHandleVO));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/controller/ReportFloodRecordController.java
@@ -28,88 +28,88 @@
import java.util.List;
/**
* @Description: 报汛记录
*/
 * @Description: 报汛记录
 */
@Slf4j
@Api(tags="报汛记录")
@Api(tags = "报汛记录")
@RestController
@RequestMapping("/reportFloodRecord/reportFloodRecord")
@AllArgsConstructor
public class ReportFloodRecordController extends BladeController {
   private IReportFloodRecordService reportFloodRecordService;
    private IReportFloodRecordService reportFloodRecordService;
    private IFlowClient flowClient;
   /**
    * 分页列表查询
    */
   @ApiOperation(value="报汛记录-分页列表查询", notes="报汛记录-分页列表查询")
   @GetMapping(value = "/list")
   public R<IPage<ReportFloodRecord>> queryPageList(ReportFloodRecord reportFloodRecord, Query query) {
       IPage<ReportFloodRecord> pageList =  reportFloodRecordService.selectReportFloodRecordPages(Condition.getPage(query),reportFloodRecord);
       return R.data(pageList);
   }
    /**
     * 分页列表查询
     */
    @ApiOperation(value = "报汛记录-分页列表查询", notes = "报汛记录-分页列表查询")
    @GetMapping(value = "/list")
    public R<IPage<ReportFloodRecord>> queryPageList(ReportFloodRecord reportFloodRecord, Query query) {
        IPage<ReportFloodRecord> pageList = reportFloodRecordService.selectReportFloodRecordPages(Condition.getPage(query), reportFloodRecord);
        return R.data(pageList);
    }
   /**
    * 添加
    *
    * @param reportFloodRecord
    * @return
    */
   @ApiOperation(value="报汛记录-添加", notes="报汛记录-添加")
   @PostMapping(value = "/add")
   public R add(@RequestBody ReportFloodRecord reportFloodRecord) {
       return R.data(reportFloodRecordService.save(reportFloodRecord));
   }
    /**
     * 添加
     *
     * @param reportFloodRecord
     * @return
     */
    @ApiOperation(value = "报汛记录-添加", notes = "报汛记录-添加")
    @PostMapping(value = "/add")
    public R add(@RequestBody ReportFloodRecord reportFloodRecord) {
        return R.data(reportFloodRecordService.save(reportFloodRecord));
    }
   /**
    * 编辑
    *
    * @param reportFloodRecord
    * @return
    */
   @ApiOperation(value="报汛记录-编辑", notes="报汛记录-编辑")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
   public R edit(@RequestBody ReportFloodRecord reportFloodRecord) {
       return R.data(reportFloodRecordService.updateById(reportFloodRecord));
   }
    /**
     * 编辑
     *
     * @param reportFloodRecord
     * @return
     */
    @ApiOperation(value = "报汛记录-编辑", notes = "报汛记录-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public R edit(@RequestBody ReportFloodRecord reportFloodRecord) {
        return R.data(reportFloodRecordService.updateById(reportFloodRecord));
    }
   /**
    * 通过id删除
    *
    * @param id
    * @return
    */
   @ApiOperation(value="报汛记录-通过id删除", notes="报汛记录-通过id删除")
   @DeleteMapping(value = "/delete")
   public R delete(@RequestParam(name="id",required=true) String id) {
       return R.data(reportFloodRecordService.removeById(id));
   }
    /**
     * 通过id删除
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "报汛记录-通过id删除", notes = "报汛记录-通过id删除")
    @DeleteMapping(value = "/delete")
    public R delete(@RequestParam(name = "id", required = true) String id) {
        return R.data(reportFloodRecordService.removeById(id));
    }
   /**
    * 批量删除
    *
    * @param ids
    * @return
    */
   @ApiOperation(value="报汛记录-批量删除", notes="报汛记录-批量删除")
   @DeleteMapping(value = "/deleteBatch")
   public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
       return R.data(this.reportFloodRecordService.removeByIds(Arrays.asList(ids.split(","))));
   }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @ApiOperation(value = "报汛记录-批量删除", notes = "报汛记录-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public R deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        return R.data(this.reportFloodRecordService.removeByIds(Arrays.asList(ids.split(","))));
    }
   /**
    * 通过id查询
    *
    * @param id
    * @return
    */
   @ApiOperation(value="报汛记录-通过id查询", notes="报汛记录-通过id查询")
   @GetMapping(value = "/queryById")
   public R queryById(@RequestParam(name="id",required=true) String id) {
       ReportFloodRecord reportFloodRecord = reportFloodRecordService.getById(id);
       return R.data(reportFloodRecord);
   }
    /**
     * 通过id查询
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "报汛记录-通过id查询", notes = "报汛记录-通过id查询")
    @GetMapping(value = "/queryById")
    public R queryById(@RequestParam(name = "id", required = true) String id) {
        ReportFloodRecord reportFloodRecord = reportFloodRecordService.getById(id);
        return R.data(reportFloodRecord);
    }
    /**====================工作流==========================**/
    /**
@@ -118,9 +118,9 @@
     * @param reportFloodRecord
     * @return
     */
    @ApiOperation(value="报汛记录-新增或修改", notes="报汛记录-新增或修改")
    @ApiOperation(value = "报汛记录-新增或修改", notes = "报汛记录-新增或修改")
    @PostMapping(value = "/start-process")
    public R startProcess(@RequestBody ReportFloodRecord reportFloodRecord) {
    public R startProcess(@RequestBody ReportFloodRecordVO reportFloodRecord) {
        return R.status(reportFloodRecordService.startProcess(reportFloodRecord));
    }
@@ -130,10 +130,10 @@
     * @param reportFloodRecord
     * @return
     */
    @ApiOperation(value="报汛记录-新增或修改", notes="报汛记录-新增或修改")
    @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));
        return R.status(reportFloodRecordService.completeTask(reportFloodRecord, taskUser, currentUser));
    }
    /**
@@ -141,17 +141,19 @@
     */
    @PostMapping("reportFlood-todo-list")
    @ApiOperation(value = "查询待办")
    public R reportFloodToDoList(ReportFloodRecordVO reportFloodRecordVO, Query query){
    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);
        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()){
        if (res.isSuccess()) {
            List<Object> data = res.getData().getData();
            data.forEach(obj -> {
                BladeFlowVO<ReportFloodRecord> bladeFlow = JSON.parseObject(JSON.toJSONString(obj),BladeFlowVO.class);
                BladeFlowVO<ReportFloodRecord> bladeFlow = JSON.parseObject(JSON.toJSONString(obj), BladeFlowVO.class);
                ReportFloodRecordVO byId = reportFloodRecordService.customizeGetDetail(bladeFlow.getBusinessId());
                bladeFlow.setDetail(byId);
                bladeFlowVOList.add(bladeFlow);
@@ -173,17 +175,19 @@
     */
    @PostMapping("reportFlood-done-list")
    @ApiOperation(value = "查询待办")
    public R reportFloodDoneList(ReportFloodRecordVO reportFloodRecordVO, Query query){
    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);
        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()){
        if (res.isSuccess()) {
            List<Object> data = res.getData().getData();
            data.forEach(obj -> {
                BladeFlowVO<ReportFloodRecord> bladeFlow = JSON.parseObject(JSON.toJSONString(obj),BladeFlowVO.class);
                BladeFlowVO<ReportFloodRecord> bladeFlow = JSON.parseObject(JSON.toJSONString(obj), BladeFlowVO.class);
                ReportFloodRecordVO byId = reportFloodRecordService.customizeGetDetail(bladeFlow.getBusinessId());
                bladeFlow.setDetail(byId);
                bladeFlowVOList.add(bladeFlow);
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/entity/ReportFloodHandle.java
New file
@@ -0,0 +1,54 @@
package cn.gistack.sm.reportFlood.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springblade.core.mp.base.BaseEntity;
/**
 * 报汛上报记录处理
 */
@Data
@TableName( value = "SM_REPORT_FLOOD_HANDLE",autoResultMap = true)
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="SM_REPORT_FLOOD_HANDLE对象", description="报汛记录表")
public class ReportFloodHandle extends BaseEntity {
    /**
     * 上报记录id
     */
    @ApiModelProperty("上报记录id")
    private String recordId;
    /**
     * 内容
     */
    @ApiModelProperty("内容")
    private String content;
    /**
     * 图片
     */
    @ApiModelProperty("图片")
    @TableField(value = "images",typeHandler = FastjsonTypeHandler.class)
    private Object[] images;
    /**
     * 视频
     */
    @ApiModelProperty("视频")
    @TableField(value = "videos",typeHandler = FastjsonTypeHandler.class)
    private Object[] videos;
    /**
     * 1、自行处理;2、上报处理
     */
    @ApiModelProperty("1、自行处理;2、上报处理")
    private String solution;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodHandleMapper.java
New file
@@ -0,0 +1,18 @@
package cn.gistack.sm.reportFlood.mapper;
import cn.gistack.sm.reportFlood.entity.ReportFloodHandle;
import cn.gistack.sm.reportFlood.entity.ReportFloodRecord;
import cn.gistack.sm.reportFlood.vo.ReportFloodRecordVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @Description: 报汛上报记录处理
 */
public interface ReportFloodHandleMapper extends BaseMapper<ReportFloodHandle> {
    List<ReportFloodHandle> selectPages(IPage<ReportFloodHandle> page, ReportFloodHandle reportFloodHandle);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodHandleMapper.xml
New file
@@ -0,0 +1,9 @@
<?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.ReportFloodHandleMapper">
    <select id="selectPages" resultType="cn.gistack.sm.reportFlood.entity.ReportFloodHandle">
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/IReportFloodHandleService.java
New file
@@ -0,0 +1,18 @@
package cn.gistack.sm.reportFlood.service;
import cn.gistack.sm.reportFlood.entity.ReportFloodHandle;
import cn.gistack.sm.reportFlood.entity.ReportFloodRecord;
import cn.gistack.sm.reportFlood.vo.ReportFloodHandleVO;
import cn.gistack.sm.reportFlood.vo.ReportFloodRecordVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
/**
 * @Description: 报汛上报记录处理
 */
public interface IReportFloodHandleService extends BaseService<ReportFloodHandle> {
    IPage<ReportFloodHandle> selectPages(IPage<ReportFloodHandle> page, ReportFloodHandle reportFloodHandle);
    Boolean completeProcess(ReportFloodHandleVO reportFloodHandleVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/IReportFloodRecordService.java
@@ -13,7 +13,7 @@
    IPage<ReportFloodRecord> selectReportFloodRecordPages(IPage<ReportFloodRecord> page, ReportFloodRecord reportFloodRecord);
    boolean startProcess(ReportFloodRecord reportFloodRecord);
    boolean startProcess(ReportFloodRecordVO reportFloodRecord);
    boolean completeTask(ReportFloodRecordVO reportFloodRecord, String taskUser, String currentUser);
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/impl/ReportFloodHandleServiceImpl.java
New file
@@ -0,0 +1,54 @@
package cn.gistack.sm.reportFlood.service.impl;
import cn.gistack.flow.core.constant.ProcessConstant;
import cn.gistack.flow.core.feign.IFlowClient;
import cn.gistack.sm.reportFlood.entity.ReportFloodHandle;
import cn.gistack.sm.reportFlood.mapper.ReportFloodHandleMapper;
import cn.gistack.sm.reportFlood.service.IReportFloodHandleService;
import cn.gistack.sm.reportFlood.vo.ReportFloodHandleVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
@Service
@AllArgsConstructor
public class ReportFloodHandleServiceImpl extends BaseServiceImpl<ReportFloodHandleMapper, ReportFloodHandle> implements IReportFloodHandleService {
    private final IFlowClient flowClient;
    @Override
    public IPage<ReportFloodHandle> selectPages(IPage<ReportFloodHandle> page, ReportFloodHandle reportFloodHandle) {
        return page.setRecords(baseMapper.selectPages(page,reportFloodHandle));
    }
    @Override
    @Transactional
    public Boolean completeProcess(ReportFloodHandleVO reportFloodHandleVO) {
        //保存数据
        boolean save = save(reportFloodHandleVO);
        String taskId = reportFloodHandleVO.getTaskId();
        String processInstanceId = reportFloodHandleVO.getProcessInstanceId();
        String comment = "完成";
        // 创建变量
        Map<String, Object> variables = new HashMap<>();
        if (variables == null) {
            variables = Kv.create();
        }
        variables.put("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, reportFloodHandleVO.getTaskUser()));
        variables.put(ProcessConstant.REPORT_KEY,reportFloodHandleVO.getReport());
        variables.put(ProcessConstant.TODEPT_KEY,reportFloodHandleVO.getToDept());
        R r = flowClient.completeTask(taskId, processInstanceId, comment, variables);
        return r.isSuccess() && save;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/service/impl/ReportFloodRecordServiceImpl.java
@@ -50,30 +50,14 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean startProcess(ReportFloodRecord reportFloodRecord) {
    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());
            //无异常/自行解决,把任务指定给自己
            if (Func.equals(1,reportFloodRecord.getStatus())){
                //无异常
                variables.set("taskUser", TaskUtil.getTaskUser(reportFloodRecord.getCreateUser().toString()));
            }else {
                //异常
                if (reportFloodRecord.getSolution().equals("1")) {
                    //自行解决
                    variables.set("taskUser", TaskUtil.getTaskUser(reportFloodRecord.getCreateUser().toString()));
                }else{
                    //上报给技术责任人处理
                    User user = getUser(PersonType.TECH_PERSON, reportFloodRecord.getReservoirId());
                    if (ObjectUtil.isNotEmpty(user)){
                        variables.set("taskUser", TaskUtil.getTaskUser(user.getId().toString()));
                    }
                }
            }
                .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());
@@ -81,21 +65,34 @@
                reportFloodRecord.setProcessInstanceId(result.getData().getProcessInstanceId());
                updateById(reportFloodRecord);
                if (Func.equals(1,reportFloodRecord.getStatus())){
                    //状态正常直接结束任务
                    ReportFloodRecordVO reportFloodRecordVO = new ReportFloodRecordVO();
                    reportFloodRecordVO.setReport(false);
                    reportFloodRecordVO.setToDept(false);
                    reportFloodRecordVO.setProcessInstanceId(reportFloodRecord.getProcessInstanceId());
                    R<BladeFlow> res = flowClient.getBladeFlow(reportFloodRecord.getId().toString(),reportFloodRecord.getCreateUser().toString());
                    if (res.isSuccess()){
                        reportFloodRecordVO.setFlow(res.getData());
                        completeTask(reportFloodRecordVO,reportFloodRecord.getCreateUser().toString(),reportFloodRecord.getCreateUser().toString());
                    }else {
                        throw new ServiceException("完成报汛失败");
//                //状态正常直接结束任务
                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("开启流程失败");
            }
@@ -120,8 +117,6 @@
            variables.put(ProcessConstant.REPORT_KEY,reportFloodRecord.isReport());
            //指定转交人
            variables.put("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser));
            //指定是否上报给部门
            variables.put(ProcessConstant.TODEPT_KEY,reportFloodRecord.isToDept());
            // 完成任务
            flowClient.completeTask(taskId,processInstanceId,comment,variables);
            return true;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodHandleVO.java
New file
@@ -0,0 +1,33 @@
package cn.gistack.sm.reportFlood.vo;
import cn.gistack.sm.reportFlood.entity.ReportFloodHandle;
import lombok.Data;
@Data
public class ReportFloodHandleVO extends ReportFloodHandle {
    /**
     * 流程定义id
     */
    private String processDefinitionId;
    /**
     * 流程实例id
     */
    private String processInstanceId;
    /**
     * 是否上报
     */
    private Boolean report;
    /**
     * 是否上报给部门
     */
    private Boolean toDept;
    /**
     * 指定下一个任务人
     */
    private String taskUser;
    /**
     * 流程任务id
     */
    private String taskId;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodRecordVO.java
@@ -18,4 +18,9 @@
     * 水库名
     */
    private String reservoirName;
    /**
     * 任务人
     */
    private String taskUser;
}
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
@@ -530,7 +530,7 @@
    <!--查询菜单列表(排除 web,app 之外的菜单)-->
    <select id="grantTreeNew" resultMap="treeNodeResultMap">
        select id, parent_id, name as title, id as "value", id as "key" from YWXT.blade_menu
        select id, parent_id, name as title, id as "value", id as "key" from blade_menu
        where is_deleted = 0 start with ( name = 'web' or  name = 'app') CONNECT BY PRIOR id =  parent_id order by sort asc
    </select>