guoshilong
2024-03-23 f04487fef5ac47380dfa9670156743c9d273966b
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -1,174 +1,169 @@
package cn.gistack.sm.patrol.controller;
import cn.gistack.flow.core.entity.BladeFlow;
import cn.gistack.flow.core.feign.IFlowClient;
import cn.gistack.flow.core.vo.BladeFlowVO;
import cn.gistack.sm.patrol.entity.PatrolReport;
import cn.gistack.sm.patrol.entity.PatrolTask;
import cn.gistack.sm.patrol.params.PersonHandleParams;
import cn.gistack.sm.patrol.dto.PatrolTaskDTO;
import cn.gistack.sm.patrol.entity.PatrolTask;
import cn.gistack.sm.patrol.service.IPatrolTaskService;
import cn.gistack.sm.patrol.vo.BladeFlowPage;
import cn.gistack.sm.patrol.vo.BladeFlowTask;
import cn.gistack.sm.patrol.vo.PatrolTaskVO;
import cn.gistack.sm.patrol.vo.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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 io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.redisson.executor.TasksService;
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.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import javax.sound.midi.Soundbank;
import java.net.http.HttpRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 巡查任务
*/
 * @Description: 巡查任务
 */
@Slf4j
@Api(tags="巡查任务")
@Api(tags = "巡查任务")
@RestController
@RequestMapping("/patrol/patrolTask")
@AllArgsConstructor
public class PatrolTaskController extends BladeController {
   private IPatrolTaskService patrolTaskService;
   private IFlowClient flowClient;
   private IPatrolTaskService patrolTaskService;
   private IFlowClient flowClient;
   /**
    * 分页列表查询
    * @return
    */
   @ApiOperation(value="巡查任务-分页列表查询", notes="巡查任务-分页列表查询")
   @GetMapping(value = "/list")
   public R queryPageList(PatrolTaskVO patrolTask, Query query) {
       IPage<PatrolTaskVO> pageList = patrolTaskService.selectPatrolTask(Condition.getPage(query),patrolTask);
   /**
    * 分页列表查询
    *
    * @return
    */
   @ApiOperation(value = "巡查任务-分页列表查询", notes = "巡查任务-分页列表查询")
   @GetMapping(value = "/list")
   public R queryPageList(PatrolTaskVO patrolTask, Query query) {
      IPage<PatrolTaskVO> pageList = patrolTaskService.selectPatrolTask(Condition.getPage(query), patrolTask);
//      IPage<PatrolTask> pageList = patrolTaskService.page(Condition.getPage(query), Condition.getQueryWrapper(PatrolTask));
       return R.data(pageList);
   }
      return R.data(pageList);
   }
    /**
     * 获取所有巡查任务
     */
    @ApiOperation(value="获取所有巡查任务", notes="获取所有巡查任务")
    @GetMapping(value = "/all")
   public R getAll(PatrolTaskVO patrolTaskVO){
       List<PatrolTask> list = patrolTaskService.getAll(patrolTaskVO);
   /**
    * 获取所有巡查任务
    */
   @ApiOperation(value = "获取所有巡查任务", notes = "获取所有巡查任务")
   @GetMapping(value = "/all")
   public R getAll(PatrolTaskVO patrolTaskVO) {
      List<PatrolTask> list = patrolTaskService.getAll(patrolTaskVO);
      return R.data(list);
   }
   }
   /**
    * 添加
    */
   @ApiOperation(value="巡查任务-添加", notes="巡查任务-添加")
   @PostMapping(value = "/add")
   public R add(@RequestBody PatrolTask patrolTask) {
       return R.data(patrolTaskService.save(patrolTask));
   }
   /**
    * 添加
    */
   @ApiOperation(value = "巡查任务-添加", notes = "巡查任务-添加")
   @PostMapping(value = "/add")
   public R add(@RequestBody PatrolTask patrolTask) {
      return R.data(patrolTaskService.save(patrolTask));
   }
   /**
    * 自定义添加
    *
    * @param patrolTask
    * @return
    */
   @ApiOperation(value="巡查任务-自定义添加", notes="巡查任务-自定义添加")
   @ApiOperation(value = "巡查任务-自定义添加", notes = "巡查任务-自定义添加")
   @PostMapping(value = "/save")
   public R save(@RequestBody PatrolTask patrolTask) {
      return R.data(patrolTaskService.savePatrolTask(patrolTask));
   }
   /**
    * 编辑
    * @return
    */
   @ApiOperation(value="巡查任务-编辑", notes="巡查任务-编辑")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
   public R edit(@RequestBody PatrolTask patrolTask) {
       return R.data(patrolTaskService.updateById(patrolTask));
   }
   /**
    * 编辑
    *
    * @return
    */
   @ApiOperation(value = "巡查任务-编辑", notes = "巡查任务-编辑")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
   public R edit(@RequestBody PatrolTask patrolTask) {
      return R.data(patrolTaskService.updateById(patrolTask));
   }
   /**
    * 自定义编辑(空间坐标编辑)
   * @param patrolTask
    * @return
    */
   @ApiOperation(value="巡查任务-自定义编辑", notes="巡查任务-自定义编辑")
   @RequestMapping(value = "/update", method = {RequestMethod.PUT,RequestMethod.POST})
   public R update(@RequestBody PatrolTask patrolTask) {
       return R.data(patrolTaskService.updatePatrolTask(patrolTask));
   }
   /**
    * 自定义编辑(空间坐标编辑)
    *
    * @param patrolTask
    * @return
    */
   @ApiOperation(value = "巡查任务-自定义编辑", notes = "巡查任务-自定义编辑")
   @RequestMapping(value = "/update", method = {RequestMethod.PUT, RequestMethod.POST})
   public R update(@RequestBody PatrolTask patrolTask) {
      return R.data(patrolTaskService.updatePatrolTask(patrolTask));
   }
   /**
    * 通过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(patrolTaskService.removeById(id));
   }
   /**
    * 通过id删除
    *
    * @param id
    * @return
    */
   @ApiOperation(value = "巡查任务-通过id删除", notes = "巡查任务-通过id删除")
   @PostMapping(value = "/delete")
   public R delete(@RequestParam(name = "id", required = true) String id) {
      return R.data(patrolTaskService.removeById(id));
   }
   /**
    * 批量删除
    *
    * @param ids
    * @return
    */
   @ApiOperation(value="巡查任务-批量删除", notes="巡查任务-批量删除")
   @DeleteMapping(value = "/deleteBatch")
   public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
       return R.data(patrolTaskService.removeByIds(Arrays.asList(ids.split(","))));
   }
   /**
    * 批量删除
    *
    * @param ids
    * @return
    */
   @ApiOperation(value = "巡查任务-批量删除", notes = "巡查任务-批量删除")
   @PostMapping(value = "/deleteBatch")
   public R deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
      return R.data(patrolTaskService.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) {
       PatrolTask PatrolTask = patrolTaskService.getById(id);
       return R.data(PatrolTask);
   }
   /**
    * 通过id查询
    *
    * @param id
    * @return
    */
   @ApiOperation(value = "巡查任务-通过id查询", notes = "巡查任务-通过id查询")
   @GetMapping(value = "/queryById")
   public R queryById(@RequestParam(name = "id", required = true) String id) {
      PatrolTask PatrolTask = patrolTaskService.getById(id);
      return R.data(PatrolTask);
   }
   /**
    * 自定义通过id查询
    *
    * @param id
    * @return
    */
   @ApiOperation(value="巡查任务-自定义通过id查询", notes="巡查任务-自定义通过id查询")
   @ApiOperation(value = "巡查任务-自定义通过id查询", notes = "巡查任务-自定义通过id查询")
   @GetMapping(value = "/getPatrolTaskById")
   public R getPatrolTaskById(@RequestParam(name="id",required=true) String id) {
      PatrolTask PatrolTask = patrolTaskService.getPatrolTaskById(id);
   public R getPatrolTaskById(@RequestParam(name = "id", required = true) String id) {
      PatrolTask PatrolTask = patrolTaskService.customizeGetById(id);
      return R.data(PatrolTask);
   }
   /**
    * 查询巡查人员统计数据信息
    *
    * @param patrolTask
    * @return
    */
   @ApiOperation(value="查询巡查人员统计数据信息", notes="查询巡查人员统计数据信息")
   @ApiOperation(value = "查询巡查人员统计数据信息", notes = "查询巡查人员统计数据信息")
   @GetMapping(value = "/getPatrolTaskStatistic")
   public R getPatrolTaskStatistic(PatrolTaskVO patrolTask) {
      return R.data(patrolTaskService.getPatrolTaskStatistic(patrolTask));
@@ -182,7 +177,7 @@
    */
   @PostMapping("start-process")
   public R startProcess(@RequestBody PatrolTask patrolTask) {
      return R.status(patrolTaskService.startProcess(patrolTask));
      return R.data(patrolTaskService.startProcess(patrolTask));
   }
   /**
@@ -191,7 +186,7 @@
   @PostMapping("patrol-complete-task")
   @ApiOperation(value = "完成任务", notes = "传入流程信息")
   public R completeTask(@RequestBody PatrolTaskVO patrolTaskVO) {
      return R.status(patrolTaskService.patrolCompleteTask(patrolTaskVO,patrolTaskVO.getCurrentUserId(),patrolTaskVO.getTaskUser()));
      return R.status(patrolTaskService.patrolCompleteTask(patrolTaskVO, patrolTaskVO.getCurrentUserId(), patrolTaskVO.getTaskUser()));
   }
   /**
@@ -204,6 +199,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 任务
@@ -211,34 +218,35 @@
   @PostMapping("patrol-todo-list")
   @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<>();
      if (res.isSuccess()){
         List<Object> data = res.getData().getData();
         data.forEach(obj -> {
            BladeFlow bladeFlow = JSON.parseObject(JSON.toJSONString(obj),BladeFlow.class);
            PatrolTask byId = patrolTaskService.customizeGetById(bladeFlow.getBusinessId());
            if (byId != null){
               byId.setFlow(bladeFlow);
               patrolTaskList.add(byId);
            }
         });
      }
      //设置数据集
      patrolTaskIPage.setRecords(patrolTaskList);
      //设置当前页
      patrolTaskIPage.setCurrent(res.getData().getCurrent());
      //设置页数
      patrolTaskIPage.setSize(res.getData().getSize());
      //设置总数
      patrolTaskIPage.setTotal(res.getData().getTotal());
      return R.data(patrolTaskIPage);
//      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<>();
//
//      if (res.isSuccess()) {
//         List<Object> data = res.getData().getData();
//         data.forEach(obj -> {
//            BladeFlow bladeFlow = JSON.parseObject(JSON.toJSONString(obj), BladeFlow.class);
//            PatrolTaskVO byId = patrolTaskService.customizeGetById(bladeFlow.getBusinessId());
//            if (byId != null) {
//               byId.setFlow(bladeFlow);
//               patrolTaskList.add(byId);
//            }
//         });
//      }
//      //设置数据集
//      patrolTaskIPage.setRecords(patrolTaskList);
//      //设置当前页
//      patrolTaskIPage.setCurrent(res.getData().getCurrent());
//      //设置页数
//      patrolTaskIPage.setSize(res.getData().getSize());
//      //设置总数
//      patrolTaskIPage.setTotal(res.getData().getTotal());
//
//      return R.data(patrolTaskIPage);
      return null;
   }
   /**
@@ -247,23 +255,25 @@
    * @param patrolTask 任务
    */
   @PostMapping("patrol-done-list")
   @ApiOperation(value = "查询待办")
   public R patrolDoneList(PatrolTaskVO patrolTask, Query query){
   @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);
      R<BladeFlowPage> res = flowClient.getDoneBladeFlowList(query.getSize(), query.getCurrent(), patrolTask.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<PatrolTask> bladeFlow = JSON.parseObject(JSON.toJSONString(obj),BladeFlowVO.class);
            PatrolTask byId = patrolTaskService.customizeGetById(bladeFlow.getBusinessId());
            BladeFlowVO<PatrolTask> bladeFlow = JSON.parseObject(JSON.toJSONString(obj), BladeFlowVO.class);
            PatrolTaskVO byId = patrolTaskService.customizeGetById(bladeFlow.getBusinessId());
            bladeFlow.setDetail(byId);
            bladeFlowVOList.add(bladeFlow);
            if (byId != null){
               bladeFlow.setDetail(byId);
               bladeFlowVOList.add(bladeFlow);
            }
         });
      }
      //设置数据集
@@ -277,4 +287,115 @@
      return R.data(bladeFlowVOIPage);
   }
   /**
    * 巡查任务报表 分页
    */
   @GetMapping("getTaskReportPage")
   @ApiOperation(value = "巡查任务报表")
   public R getTaskReportPage( PatrolTaskReport patrolTaskReport , Query query) {
      IPage<PatrolTaskReport> pageList = patrolTaskService.getTaskReportPage(Condition.getPage(query),patrolTaskReport);
      return R.data(pageList);
   }
   /**
    * 巡查任务报表列表
    */
   @GetMapping("getTaskReportList")
   @ApiOperation(value = "巡查任务报表")
   public R getTaskReportList( PatrolTaskReport patrolTaskReport ) {
      List<PatrolTaskReport> list = patrolTaskService.getTaskReportList(patrolTaskReport);
      return R.data(list);
   }
   /**
    * 巡查任务报表详情
    */
   @GetMapping("getTaskReportDetail")
   @ApiOperation(value = "巡查任务详情")
   public R getTaskReportDetail( PatrolTaskReport patrolTaskReport , Query query) {
      IPage<PatrolTaskReport> pageList = patrolTaskService.getTaskReportDetail(Condition.getPage(query),patrolTaskReport);
      return R.data(pageList);
   }
   @GetMapping("getTaskStatusCount")
   public R getTaskStatusCount(PatrolTaskVO patrolTaskVO){
//      List<TaskStatusCount> list = patrolTaskService.getTaskStatusCount(patrolTaskVO);
      List<TaskStatusCount> list = patrolTaskService.getTaskStatusCountOptimize(patrolTaskVO);
      return R.data(list);
   }
   @GetMapping("getTaskStatus")
   public R getTaskStatus(PatrolTaskVO patrolTaskVO){
      TaskStatus taskStatus = patrolTaskService.getTaskStatus(patrolTaskVO);
      return R.data(taskStatus);
   }
   @GetMapping("getTaskStatusCountOptimize")
   public R getTaskStatusCountOptimize(PatrolTaskVO patrolTaskVO){
      List<TaskStatusCount> list = patrolTaskService.getTaskStatusCountOptimize(patrolTaskVO);
      return R.data(list);
   }
   @GetMapping("getTaskTypeCount")
   public R getTaskTypeCount(PatrolTaskVO patrolTaskVO){
      List<TaskStatusCount> list = patrolTaskService.getTaskTypeCount(patrolTaskVO);
      return R.data(list);
   }
   /**
    * 下发任务
    * @param patrolTask
    * @return
    */
   @PostMapping("deliverTask")
   public R deliverTask(@RequestBody PatrolTask patrolTask){
      List<PatrolTask> saveList = patrolTaskService.deliverTask(patrolTask);
      return R.data(saveList);
   }
   /**
    * 获取巡查项
    * @param taskId
    * @return
    */
   @GetMapping("getTaskDTO")
   public R getTaskDTO(String taskId){
      PatrolTaskDTO result =  patrolTaskService.getTaskDTO(taskId);
      return R.data(result);
   }
   /**
    * 获取我的巡查任务
    * @param patrolTask
    * @return
    */
   @GetMapping("getMyTask")
   public R getMyTask(PatrolTaskVO patrolTask,Query query){
      Object result = patrolTaskService.getMyTask(patrolTask,Condition.getPage(query));
      return R.data(result);
   }
   /**
    * 结束任务
    * @param patrolTaskVO
    * @return
    */
   @PostMapping("finishPatrolTask")
   public R finishPatrolTask(@RequestBody PatrolTaskVO patrolTaskVO){
      Boolean result = patrolTaskService.finishPatrolTask(patrolTaskVO);
      return R.data(result);
   }
   /**
    * 处理
    */
   @PostMapping("personHandle")
   public R personHandle(@RequestBody PersonHandleParams personHandleParams){
      Boolean res = patrolTaskService.personHandle(personHandleParams);
      return R.data(res);
   }
}