6 files modified
7 files added
| | |
| | | @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<>(); |
| | |
| | | @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<>(); |
| New file |
| | |
| | | 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)); |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | @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)); |
| | | } |
| | | |
| | |
| | | @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<>(); |
| | |
| | | @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<>(); |
| New file |
| | |
| | | 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; |
| | | |
| | | } |
| New file |
| | |
| | | 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); |
| | | } |
| New file |
| | |
| | | <?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> |
| New file |
| | |
| | | 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); |
| | | } |
| | |
| | | |
| | | IPage<ReportFloodRecord> selectReportFloodRecordPages(IPage<ReportFloodRecord> page, ReportFloodRecord reportFloodRecord); |
| | | |
| | | boolean startProcess(ReportFloodRecord reportFloodRecord); |
| | | boolean startProcess(ReportFloodRecordVO reportFloodRecord); |
| | | |
| | | boolean completeTask(ReportFloodRecordVO reportFloodRecord, String taskUser, String currentUser); |
| | | |
| New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | |
| | | @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()); |
| | |
| | | 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()); |
| | | //业务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()); |
| | | completeTask(reportFloodRecordVO,reportFloodRecord.getCreateUser().toString(),reportFloodRecord.getCreateUser().toString()); |
| | | if (Func.equals(reportFloodRecord.getStatus(),1)){ |
| | | //状态正常结束任务 |
| | | reportFloodRecordVO.setReport(false); |
| | | }else { |
| | | throw new ServiceException("完成报汛失败"); |
| | | //异常 |
| | | if (Func.equals(reportFloodRecord.getSolution(),"1")){ |
| | | //自行处理 |
| | | return true; |
| | | }else { |
| | | //上报给技术责任人 |
| | | reportFloodRecordVO.setReport(true); |
| | | } |
| | | } |
| | | |
| | | } |
| | | completeTask(reportFloodRecordVO,taskUser,currentUserId); |
| | | } else { |
| | | throw new ServiceException("开启流程失败"); |
| | | } |
| | |
| | | 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; |
| New file |
| | |
| | | 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; |
| | | } |
| | |
| | | * 水库名 |
| | | */ |
| | | private String reservoirName; |
| | | |
| | | /** |
| | | * 任务人 |
| | | */ |
| | | private String taskUser; |
| | | } |
| | |
| | | |
| | | <!--查询菜单列表(排除 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> |
| | | |