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.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 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: 巡查任务 */ @Slf4j @Api(tags="巡查任务") @RestController @RequestMapping("/patrol/patrolTask") @AllArgsConstructor public class PatrolTaskController extends BladeController { private IPatrolTaskService patrolTaskService; private IFlowClient flowClient; /** * 分页列表查询 * @return */ @ApiOperation(value="巡查任务-分页列表查询", notes="巡查任务-分页列表查询") @GetMapping(value = "/list") public R queryPageList(PatrolTaskVO patrolTask, Query query) { IPage pageList = patrolTaskService.selectPatrolTask(Condition.getPage(query),patrolTask); // IPage pageList = patrolTaskService.page(Condition.getPage(query), Condition.getQueryWrapper(PatrolTask)); return R.data(pageList); } /** * 获取所有巡查任务 */ @ApiOperation(value="获取所有巡查任务", notes="获取所有巡查任务") @GetMapping(value = "/all") public R getAll(PatrolTaskVO patrolTaskVO){ List 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)); } /** * 自定义添加 * @param patrolTask * @return */ @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)); } /** * 自定义编辑(空间坐标编辑) * @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)); } /** * 批量删除 * * @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(",")))); } /** * 通过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 = "/getPatrolTaskById") public R getPatrolTaskById(@RequestParam(name="id",required=true) String id) { PatrolTask PatrolTask = patrolTaskService.getPatrolTaskById(id); return R.data(PatrolTask); } /** * 查询巡查人员统计数据信息 * @param patrolTask * @return */ @ApiOperation(value="查询巡查人员统计数据信息", notes="查询巡查人员统计数据信息") @GetMapping(value = "/getPatrolTaskStatistic") public R getPatrolTaskStatistic(PatrolTaskVO patrolTask) { return R.data(patrolTaskService.getPatrolTaskStatistic(patrolTask)); } /**====================工作流==========================**/ /** * 新增或修改 * * @param patrolTask 任务 */ @PostMapping("start-process") public R startProcess(@RequestBody PatrolTask patrolTask) { return R.status(patrolTaskService.startProcess(patrolTask)); } /** * 巡查人员完成任务 */ @PostMapping("patrol-complete-task") @ApiOperation(value = "完成任务", notes = "传入流程信息") public R completeTask(@RequestBody PatrolTaskVO patrolTaskVO) { return R.status(patrolTaskService.patrolCompleteTask(patrolTaskVO,patrolTaskVO.getCurrentUserId(),patrolTaskVO.getTaskUser())); } /** * 责任人完成任务 */ @PostMapping("charge-complete-task") @ApiOperation(value = "完成任务", notes = "传入流程信息") public R chargeCompletePerson(@RequestBody BladeFlowTask bladeFlowTask) { return R.status(patrolTaskService.chargeCompletePerson(bladeFlowTask)); } /** * 查询待办 * * @param patrolTask 任务 */ @PostMapping("patrol-todo-list") @ApiOperation(value = "查询待办") public R patrolTodoList(PatrolTaskVO patrolTask, Query query) { BladeFlow bladeFlow2 = new BladeFlow(); //设置流程类型 bladeFlow2.setCategory("flow_3"); R res = flowClient.getTodoBladeFlowList(query.getSize(),query.getCurrent(),patrolTask.getCurrentUserId(), bladeFlow2); IPage patrolTaskIPage = new Page<>(); List patrolTaskList = new ArrayList<>(); if (res.isSuccess()){ List 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); } /** * 查询已办 * * @param patrolTask 任务 */ @PostMapping("patrol-done-list") @ApiOperation(value = "查询待办") public R patrolDoneList(PatrolTaskVO patrolTask, Query query){ BladeFlowVO bladeFlow2 = new BladeFlowVO(); //设置流程类型 bladeFlow2.setCategory("flow_3"); R res = flowClient.getDoneBladeFlowList(query.getSize(),query.getCurrent(),patrolTask.getCurrentUserId(), bladeFlow2); IPage bladeFlowVOIPage = new Page<>(); List bladeFlowVOList = new ArrayList<>(); if (res.isSuccess()){ List data = res.getData().getData(); data.forEach(obj -> { BladeFlowVO bladeFlow = JSON.parseObject(JSON.toJSONString(obj),BladeFlowVO.class); PatrolTask byId = patrolTaskService.customizeGetById(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); } }