24 files modified
3 files added
| | |
| | | |
| | | String HISTORY_FLOW_LIST = "/history-flow-list"; |
| | | |
| | | |
| | | |
| | | String GET_MY_TODO_LIST = API_PREFIX + "/getMyToDoList"; |
| | | String GET_MY_DONE_LIST = API_PREFIX + "/getMyDoneList"; |
| | | String GET_MY_DONE_PAGE= API_PREFIX + "/getMyDonePage"; |
| | | |
| | | |
| | | /** |
| | | * 开启流程 |
| | | * |
| | |
| | | @GetMapping(HISTORY_FLOW_LIST) |
| | | R<List<BladeFlow>> historyFlowList(@RequestParam("processInstanceId") String processInstanceId,@RequestParam("startActivityId") String startActivityId,@RequestParam("endActivityId") String endActivityId); |
| | | |
| | | |
| | | @PostMapping(GET_MY_TODO_LIST) |
| | | List<BladeFlow> getMyToDoList(@RequestBody BladeFlow bladeFlow,@RequestParam("currentUserId") String currentUserId); |
| | | |
| | | @PostMapping(GET_MY_DONE_LIST) |
| | | List<BladeFlow> getMyDoneList(@RequestBody BladeFlow bladeFlow,@RequestParam("currentUserId") String currentUserId); |
| | | |
| | | @PostMapping(GET_MY_DONE_PAGE) |
| | | List<BladeFlow> getMyDonePage(@RequestBody BladeFlow bladeFlow, @RequestParam("currentUserId")String currentUserId, @RequestParam("current")Integer current,@RequestParam("size") Integer size); |
| | | } |
| | |
| | | return R.fail("远程调用失败"); |
| | | } |
| | | |
| | | @Override |
| | | public List<BladeFlow> getMyToDoList(BladeFlow bladeFlow,String currentUserId) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<BladeFlow> getMyDoneList(BladeFlow bladeFlow, String currentUserId) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<BladeFlow> getMyDonePage(BladeFlow bladeFlow, String currentUserId, Integer current, Integer size) { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | return R.data(bladeFlows); |
| | | } |
| | | |
| | | @Override |
| | | @PostMapping(GET_MY_TODO_LIST) |
| | | public List<BladeFlow> getMyToDoList(BladeFlow bladeFlow,String currentUserId) { |
| | | List<BladeFlow> myToDoList = flowBusinessService.getMyToDoList(bladeFlow,currentUserId); |
| | | return myToDoList; |
| | | } |
| | | |
| | | @Override |
| | | @PostMapping(GET_MY_DONE_LIST) |
| | | public List<BladeFlow> getMyDoneList(BladeFlow bladeFlow, String currentUserId) { |
| | | List<BladeFlow> myToDoList = flowBusinessService.getMyDoneList(bladeFlow,currentUserId); |
| | | return myToDoList; |
| | | } |
| | | |
| | | @Override |
| | | @PostMapping(GET_MY_DONE_PAGE) |
| | | public List<BladeFlow> getMyDonePage(BladeFlow bladeFlow, String currentUserId, Integer current, Integer size) { |
| | | List<BladeFlow> myToDoList = flowBusinessService.getMyDonePage(bladeFlow,currentUserId,current,size); |
| | | return myToDoList; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import cn.gistack.flow.core.vo.BladeFlowVO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 流程业务类 |
| | | * |
| | |
| | | * @return |
| | | */ |
| | | IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow); |
| | | |
| | | List<BladeFlow> getMyToDoList(BladeFlow bladeFlow,String currentUserId); |
| | | |
| | | /** |
| | | * 流程待办列表 |
| | |
| | | */ |
| | | IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page, BladeFlow bladeFlow); |
| | | |
| | | List<BladeFlow> getMyDoneList(BladeFlow bladeFlow, String currentUserId); |
| | | |
| | | |
| | | |
| | | /** |
| | | * 流程办结列表 |
| | | * |
| | |
| | | boolean completeTask(BladeFlow leave); |
| | | |
| | | BladeFlow getBladeFlowByBusinessId(String businessId,String currentUserId); |
| | | |
| | | |
| | | List<BladeFlow> getMyDonePage(BladeFlow bladeFlow, String currentUserId, Integer current, Integer size); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<BladeFlow> getMyToDoList(BladeFlow bladeFlow,String currentUserId) { |
| | | String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, currentUserId); |
| | | List<BladeFlow> flowList = new LinkedList<>(); |
| | | |
| | | // 已签收的任务 |
| | | TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active() |
| | | .includeProcessVariables().orderByTaskCreateTime().desc(); |
| | | |
| | | // 构建列表数据 |
| | | buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO); |
| | | |
| | | return flowList; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow,String currentUserId) { |
| | | String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, currentUserId); |
| | | List<BladeFlow> flowList = new LinkedList<>(); |
| | |
| | | return page; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<BladeFlow> getMyDoneList(BladeFlow bladeFlow, String currentUserId) { |
| | | |
| | | String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, currentUserId); |
| | | |
| | | List<BladeFlow> flowList = new LinkedList<>(); |
| | | |
| | | |
| | | HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished() |
| | | .includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc(); |
| | | |
| | | if (bladeFlow.getCategory() != null) { |
| | | doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); |
| | | } |
| | | if (bladeFlow.getProcessDefinitionName() != null) { |
| | | doneQuery.processDefinitionName(bladeFlow.getProcessDefinitionName()); |
| | | } |
| | | if (bladeFlow.getBeginDate() != null) { |
| | | doneQuery.taskCompletedAfter(bladeFlow.getBeginDate()); |
| | | } |
| | | if (bladeFlow.getEndDate() != null) { |
| | | doneQuery.taskCompletedBefore(bladeFlow.getEndDate()); |
| | | } |
| | | |
| | | // 查询列表 |
| | | List<HistoricTaskInstance> doneList = doneQuery.list(); |
| | | doneList.forEach(historicTaskInstance -> { |
| | | BladeFlow flow = new BladeFlow(); |
| | | flow.setTaskId(historicTaskInstance.getId()); |
| | | flow.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey()); |
| | | flow.setTaskName(historicTaskInstance.getName()); |
| | | flow.setAssignee(historicTaskInstance.getAssignee()); |
| | | flow.setCreateTime(historicTaskInstance.getCreateTime()); |
| | | flow.setExecutionId(historicTaskInstance.getExecutionId()); |
| | | flow.setHistoryTaskEndTime(historicTaskInstance.getEndTime()); |
| | | flow.setVariables(historicTaskInstance.getProcessVariables()); |
| | | |
| | | FlowProcess processDefinition = FlowCache.getProcessDefinition(historicTaskInstance.getProcessDefinitionId()); |
| | | flow.setProcessDefinitionId(processDefinition.getId()); |
| | | flow.setProcessDefinitionName(processDefinition.getName()); |
| | | flow.setProcessDefinitionKey(processDefinition.getKey()); |
| | | flow.setProcessDefinitionVersion(processDefinition.getVersion()); |
| | | flow.setCategory(processDefinition.getCategory()); |
| | | flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); |
| | | |
| | | flow.setProcessInstanceId(historicTaskInstance.getProcessInstanceId()); |
| | | flow.setHistoryProcessInstanceId(historicTaskInstance.getProcessInstanceId()); |
| | | HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance((historicTaskInstance.getProcessInstanceId())); |
| | | if (Func.isNotEmpty(historicProcessInstance)) { |
| | | String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); |
| | | flow.setBusinessTable(businessKey[0]); |
| | | flow.setBusinessId(businessKey[1]); |
| | | if (historicProcessInstance.getEndActivityId() != null) { |
| | | flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED); |
| | | } else { |
| | | flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED); |
| | | } |
| | | } |
| | | flow.setStatus(FlowEngineConstant.STATUS_FINISH); |
| | | flowList.add(flow); |
| | | }); |
| | | |
| | | |
| | | return flowList; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<BladeFlow> getMyDonePage(BladeFlow bladeFlow, String currentUserId, Integer current, Integer size) { |
| | | |
| | | String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, currentUserId); |
| | | List<BladeFlow> flowList = new LinkedList<>(); |
| | | |
| | | HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished() |
| | | .includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc(); |
| | | |
| | | if (bladeFlow.getCategory() != null) { |
| | | doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); |
| | | } |
| | | if (bladeFlow.getProcessDefinitionName() != null) { |
| | | doneQuery.processDefinitionName(bladeFlow.getProcessDefinitionName()); |
| | | } |
| | | if (bladeFlow.getBeginDate() != null) { |
| | | doneQuery.taskCompletedAfter(bladeFlow.getBeginDate()); |
| | | } |
| | | if (bladeFlow.getEndDate() != null) { |
| | | doneQuery.taskCompletedBefore(bladeFlow.getEndDate()); |
| | | } |
| | | |
| | | // 查询列表 |
| | | List<HistoricTaskInstance> doneList = doneQuery.listPage(Func.toInt((current - 1) * size), Func.toInt(size)); |
| | | doneList.forEach(historicTaskInstance -> { |
| | | BladeFlow flow = new BladeFlow(); |
| | | flow.setTaskId(historicTaskInstance.getId()); |
| | | flow.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey()); |
| | | flow.setTaskName(historicTaskInstance.getName()); |
| | | flow.setAssignee(historicTaskInstance.getAssignee()); |
| | | flow.setCreateTime(historicTaskInstance.getCreateTime()); |
| | | flow.setExecutionId(historicTaskInstance.getExecutionId()); |
| | | flow.setHistoryTaskEndTime(historicTaskInstance.getEndTime()); |
| | | flow.setVariables(historicTaskInstance.getProcessVariables()); |
| | | |
| | | FlowProcess processDefinition = FlowCache.getProcessDefinition(historicTaskInstance.getProcessDefinitionId()); |
| | | flow.setProcessDefinitionId(processDefinition.getId()); |
| | | flow.setProcessDefinitionName(processDefinition.getName()); |
| | | flow.setProcessDefinitionKey(processDefinition.getKey()); |
| | | flow.setProcessDefinitionVersion(processDefinition.getVersion()); |
| | | flow.setCategory(processDefinition.getCategory()); |
| | | flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); |
| | | |
| | | flow.setProcessInstanceId(historicTaskInstance.getProcessInstanceId()); |
| | | flow.setHistoryProcessInstanceId(historicTaskInstance.getProcessInstanceId()); |
| | | HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance((historicTaskInstance.getProcessInstanceId())); |
| | | if (Func.isNotEmpty(historicProcessInstance)) { |
| | | String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); |
| | | flow.setBusinessTable(businessKey[0]); |
| | | flow.setBusinessId(businessKey[1]); |
| | | if (historicProcessInstance.getEndActivityId() != null) { |
| | | flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED); |
| | | } else { |
| | | flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED); |
| | | } |
| | | } |
| | | flow.setStatus(FlowEngineConstant.STATUS_FINISH); |
| | | flowList.add(flow); |
| | | }); |
| | | return flowList; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<BladeFlowVO> selectDonePage(IPage<BladeFlowVO> page, BladeFlow bladeFlow,String currentUserId) { |
| | | String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, currentUserId); |
| | |
| | | return flow; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 构建流程 |
| | | * |
| | |
| | | } |
| | | // 定制流程 |
| | | else if (!AuthUtil.isAdministrator()) { |
| | | processDefinitionQuery.processDefinitionTenantId(AuthUtil.getTenantId()); |
| | | processDefinitionQuery.processDefinitionTenantId("000000"); |
| | | } |
| | | if (StringUtils.isNotEmpty(category)) { |
| | | processDefinitionQuery.processDefinitionCategory(category); |
| | |
| | | */ |
| | | @FeignClient( |
| | | value = "blade-sm", |
| | | fallback = IAttResManagePersonClientFallback.class |
| | | fallback = PatrolTaskClientFallback.class |
| | | ) |
| | | public interface PatrolTaskClient { |
| | | |
| | |
| | | String CREATE_TASK_JOB_BY_CONDITION_HANDLER = API_PREFIX+"/createTaskJobByConditionHandler"; |
| | | |
| | | String CREATE_TASK = API_PREFIX+"/createTask"; |
| | | |
| | | String CREATE_NEW_TASK_JOB_HANDLER = API_PREFIX + "/createNewTaskJobHandler"; |
| | | |
| | | |
| | | /** |
| | | * 给巡查责任人定时创建任务执行器 |
| | |
| | | @RequestParam("title") String title, |
| | | @RequestParam("content") String content, |
| | | @RequestParam("type") int type); |
| | | |
| | | |
| | | /** |
| | | * 给巡查责任人定时创建任务执行器 |
| | | * @param taskType |
| | | * @param title |
| | | * @param content |
| | | * @return |
| | | */ |
| | | @GetMapping(CREATE_NEW_TASK_JOB_HANDLER) |
| | | List<Integer> createNewTaskJobHandler( |
| | | @RequestParam("taskType") String taskType, |
| | | @RequestParam("title") String title, |
| | | @RequestParam("content") String content, |
| | | @RequestParam("type") int type); |
| | | |
| | | |
| | | |
| | | /** |
| | | * 给巡查责任人定时创建任务执行器 |
| | |
| | | @RequestParam("title") String title, |
| | | @RequestParam("content") String content, |
| | | @RequestParam("resCd") String resCd); |
| | | |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Integer> createNewTaskJobHandler(String taskType, String title, String content, int type) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<Integer> createTaskJobByConditionHandler(String processDefinitionId, String taskType, String title, String content) { |
| | | return null; |
| | | } |
| | |
| | | @AllArgsConstructor |
| | | public class MyRabbitReceiver { |
| | | private final IAlarmGetService alarmGetService; |
| | | |
| | | @RabbitListener(queues = "alarm") |
| | | public void processMessage(Message message) { |
| | | System.out.println("收到消息"+new String(message.getBody())); |
| | | AlarmGet alarmGet = JSONObject.parseObject(new String(message.getBody()), AlarmGet.class); |
| | | alarmGetService.save(alarmGet); |
| | | } |
| | | // |
| | | // @RabbitListener(queues = "alarm") |
| | | // public void processMessage(Message message) { |
| | | // System.out.println("收到消息"+new String(message.getBody())); |
| | | // AlarmGet alarmGet = JSONObject.parseObject(new String(message.getBody()), AlarmGet.class); |
| | | // alarmGetService.save(alarmGet); |
| | | // } |
| | | |
| | | } |
| | |
| | | package cn.gistack.sm.patrol.controller; |
| | | |
| | | import cn.gistack.sm.patrol.entity.PatrolGroupItem; |
| | | import cn.gistack.sm.patrol.entity.PatrolRecord; |
| | | import cn.gistack.sm.patrol.entity.PatrolReport; |
| | | import cn.gistack.sm.patrol.entity.PatrolType; |
| | | 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.*; |
| | | import cn.gistack.sm.patrol.service.IPatrolGroupItemService; |
| | | import cn.gistack.sm.patrol.service.IPatrolRecordService; |
| | | import cn.gistack.sm.patrol.vo.PatrolGroupItemVO; |
| | | import cn.gistack.sm.patrol.vo.PatrolRecordVO; |
| | | import cn.gistack.sm.patrol.vo.RecordBatchVO; |
| | | import cn.gistack.sm.patrol.vo.RecordVO; |
| | | import cn.gistack.sm.patrol.vo.*; |
| | | 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 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: 巡查记录 |
| | | */ |
| | | * @Description: 巡查记录 |
| | | */ |
| | | @Slf4j |
| | | @Api(tags="巡查记录") |
| | | @Api(tags = "巡查记录") |
| | | @RestController |
| | | @RequestMapping("/patrol/patrolRecord") |
| | | @AllArgsConstructor |
| | | public class PatrolRecordController extends BladeController { |
| | | private IPatrolRecordService patrolRecordService; |
| | | private IPatrolRecordService patrolRecordService; |
| | | private IFlowClient flowClient; |
| | | |
| | | /** |
| | | * 分页列表查询 |
| | | */ |
| | | @ApiOperation(value="巡查记录-分页列表查询", notes="巡查记录-分页列表查询") |
| | | @GetMapping(value = "/list") |
| | | public R queryPageList(PatrolRecordVO patrolRecord, Query query) { |
| | | IPage<PatrolRecord> pageList = patrolRecordService.selectPatrolRecord(Condition.getPage(query),patrolRecord); |
| | | return R.data(pageList); |
| | | } |
| | | /** |
| | | * 分页列表查询 |
| | | */ |
| | | @ApiOperation(value = "巡查记录-分页列表查询", notes = "巡查记录-分页列表查询") |
| | | @GetMapping(value = "/list") |
| | | public R queryPageList(PatrolRecordVO patrolRecord, Query query) { |
| | | IPage<PatrolRecord> pageList = patrolRecordService.selectPatrolRecord(Condition.getPage(query), patrolRecord); |
| | | return R.data(pageList); |
| | | } |
| | | |
| | | /** |
| | | * 获取所有巡查记录 |
| | | */ |
| | | @ApiOperation(value="获取所有巡查类型", notes="获取所有巡查类型") |
| | | @GetMapping(value = "/all") |
| | | public R getAll(PatrolRecord patrolRecord){ |
| | | List<PatrolRecord> list = patrolRecordService.list(Condition.getQueryWrapper(patrolRecord)); |
| | | return R.data(list); |
| | | } |
| | | /** |
| | | * 获取所有巡查记录 |
| | | */ |
| | | @ApiOperation(value = "获取所有巡查类型", notes = "获取所有巡查类型") |
| | | @GetMapping(value = "/all") |
| | | public R getAll(PatrolRecord patrolRecord) { |
| | | List<PatrolRecord> list = patrolRecordService.list(Condition.getQueryWrapper(patrolRecord)); |
| | | return R.data(list); |
| | | } |
| | | |
| | | /** |
| | | * 添加 |
| | | */ |
| | | @ApiOperation(value="巡查记录-添加", notes="巡查记录-添加") |
| | | @PostMapping(value = "/add") |
| | | public R add(@RequestBody PatrolRecord patrolRecord) { |
| | | return R.data(patrolRecordService.save(patrolRecord)); |
| | | } |
| | | /** |
| | | * 添加 |
| | | */ |
| | | @ApiOperation(value = "巡查记录-添加", notes = "巡查记录-添加") |
| | | @PostMapping(value = "/add") |
| | | public R add(@RequestBody PatrolRecord patrolRecord) { |
| | | return R.data(patrolRecordService.save(patrolRecord)); |
| | | } |
| | | |
| | | /** |
| | | * 编辑 |
| | | */ |
| | | @ApiOperation(value="巡查记录-编辑", notes="巡查记录-编辑") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) |
| | | public R edit(@RequestBody PatrolRecord patrolRecord) { |
| | | return R.data(patrolRecordService.updateById(patrolRecord)); |
| | | } |
| | | /** |
| | | * 编辑 |
| | | */ |
| | | @ApiOperation(value = "巡查记录-编辑", notes = "巡查记录-编辑") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public R edit(@RequestBody PatrolRecord patrolRecord) { |
| | | return R.data(patrolRecordService.updateById(patrolRecord)); |
| | | } |
| | | |
| | | /** |
| | | * 通过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(patrolRecordService.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(patrolRecordService.removeById(id)); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @ApiOperation(value="巡查记录-批量删除", notes="巡查记录-批量删除") |
| | | @PostMapping(value = "/deleteBatch") |
| | | public R deleteBatch(@RequestParam(name="ids",required=true) String ids) { |
| | | return R.data(patrolRecordService.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(patrolRecordService.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) { |
| | | PatrolRecordVO patrolRecordVO = patrolRecordService.getDetail(id); |
| | | return R.data(patrolRecordVO); |
| | | } |
| | | /** |
| | | * 通过id查询 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @ApiOperation(value = "巡查记录-通过id查询", notes = "巡查记录-通过id查询") |
| | | @GetMapping(value = "/queryById") |
| | | public R queryById(@RequestParam(name = "id", required = true) String id) { |
| | | PatrolRecordVO patrolRecordVO = patrolRecordService.getDetail(id); |
| | | return R.data(patrolRecordVO); |
| | | } |
| | | |
| | | /** |
| | | * 通过taskId,itemsIds查询(用来判断是否完成任务) |
| | | * |
| | | * @return |
| | | */ |
| | | @ApiOperation(value="巡查记录-通过taskId,itemsIds查询", notes="巡查记录-通过taskId,itemsIds查询") |
| | | @ApiOperation(value = "巡查记录-通过taskId,itemsIds查询", notes = "巡查记录-通过taskId,itemsIds查询") |
| | | @GetMapping(value = "/getPatrolRecordByTaskId") |
| | | public R getPatrolRecordByTaskId(String taskId,String itemIds) { |
| | | List<PatrolGroupItemVO> list = patrolRecordService.getPatrolRecordByTaskId(taskId,itemIds); |
| | | public R getPatrolRecordByTaskId(String taskId, String itemIds) { |
| | | List<PatrolGroupItemVO> list = patrolRecordService.getPatrolRecordByTaskId(taskId, itemIds); |
| | | return R.data(list); |
| | | } |
| | | |
| | | /** |
| | | * 通过taskId,itemsIds查询(用来查询巡查记录) |
| | | * |
| | | * @return |
| | | */ |
| | | @ApiOperation(value="巡查记录-通过itemId查询", notes="巡查记录-通过itemId查询") |
| | | @ApiOperation(value = "巡查记录-通过itemId查询", notes = "巡查记录-通过itemId查询") |
| | | @GetMapping(value = "/getByTaskIdAndItemId") |
| | | public R getByTaskIdAndItemId(String taskId,String itemIds){ |
| | | List<PatrolRecordVO> list = patrolRecordService.getByTaskIdAndItemId(taskId,itemIds); |
| | | public R getByTaskIdAndItemId(String taskId, String itemIds) { |
| | | List<PatrolRecordVO> list = patrolRecordService.getByTaskIdAndItemId(taskId, itemIds); |
| | | return R.data(list); |
| | | } |
| | | |
| | |
| | | * |
| | | * @return |
| | | */ |
| | | @ApiOperation(value="巡查指标项目-通过itemIds查询", notes="巡查指标项目-通过itemIds查询") |
| | | @ApiOperation(value = "巡查指标项目-通过itemIds查询", notes = "巡查指标项目-通过itemIds查询") |
| | | @GetMapping(value = "/getItemByItemIds") |
| | | public R getItemByItemIds(String itemIds,String groupId,String taskId){ |
| | | List list = patrolRecordService.getItemByItemIds(itemIds,groupId,taskId); |
| | | public R getItemByItemIds(String itemIds, String groupId, String taskId) { |
| | | List list = patrolRecordService.getItemByItemIds(itemIds, groupId, taskId); |
| | | return R.data(list); |
| | | } |
| | | |
| | |
| | | * @return |
| | | */ |
| | | @GetMapping(value = "/getByTaskIdAndGroupId") |
| | | public R getByTaskIdAndGroupId(PatrolRecordVO patrolRecordVO){ |
| | | public R getByTaskIdAndGroupId(PatrolRecordVO patrolRecordVO) { |
| | | List<PatrolRecord> list = patrolRecordService.getByTaskIdAndGroupId(patrolRecordVO); |
| | | return R.data(list); |
| | | } |
| | |
| | | /** |
| | | * 记录更新并且新增数据(适用于app处理) |
| | | */ |
| | | @ApiOperation(value="巡查记录-记录更新并且新增数据", notes="巡查记录-记录更新并且新增数据") |
| | | @RequestMapping(value = "/updateThenSaveBatch", method = {RequestMethod.PUT,RequestMethod.POST}) |
| | | public R updateThenSaveBatch(@RequestBody RecordBatchVO recordBatchVO){ |
| | | @ApiOperation(value = "巡查记录-记录更新并且新增数据", notes = "巡查记录-记录更新并且新增数据") |
| | | @RequestMapping(value = "/updateThenSaveBatch", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public R updateThenSaveBatch(@RequestBody RecordBatchVO recordBatchVO) { |
| | | return R.data(patrolRecordService.updateThenSaveBatch(recordBatchVO)); |
| | | } |
| | | |
| | | /** |
| | | * 获取历史记录 |
| | | */ |
| | | @ApiOperation(value="巡查记录-获取历史记录", notes="巡查记录-获取历史记录") |
| | | @RequestMapping(value = "/getHistoryRecord", method = {RequestMethod.PUT,RequestMethod.POST}) |
| | | public R getHistoryRecord(PatrolRecordVO patrolRecordVO){ |
| | | @ApiOperation(value = "巡查记录-获取历史记录", notes = "巡查记录-获取历史记录") |
| | | @RequestMapping(value = "/getHistoryRecord", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public R getHistoryRecord(PatrolRecordVO patrolRecordVO) { |
| | | return R.data(patrolRecordService.getHistoryRecord(patrolRecordVO)); |
| | | } |
| | | |
| | | @GetMapping("getRecordDetail") |
| | | public R getRecordVO(RecordVO recordVO){ |
| | | public R getRecordVO(RecordVO recordVO) { |
| | | RecordVO detail = patrolRecordService.getRecordVO(recordVO); |
| | | return R.data(detail); |
| | | } |
| | | |
| | | /** |
| | | * 获取处理情况 |
| | | * |
| | | * @param patrolRecord |
| | | * @return |
| | | */ |
| | | @GetMapping("getHandleRecord") |
| | | public R getHandleRecord(PatrolRecord patrolRecord){ |
| | | public R getHandleRecord(PatrolRecord patrolRecord) { |
| | | |
| | | PatrolRecordVO res = patrolRecordService.getHandleRecord(patrolRecord); |
| | | return R.data(res); |
| | | } |
| | | |
| | | /** |
| | | * 获取待办列表 |
| | | * |
| | | * @return |
| | | */ |
| | | @GetMapping("getToDoList") |
| | | public R getToDoList(String currentUserId) { |
| | | BladeFlow bladeFlow = new BladeFlow(); |
| | | //获取我的待办列表 |
| | | List<BladeFlow> toDoList = flowClient.getMyToDoList(bladeFlow,currentUserId); |
| | | List<PatrolRecordVO> result = new ArrayList<>(); |
| | | |
| | | toDoList.forEach(flow -> { |
| | | PatrolRecordVO byId = patrolRecordService.customizeGetById(flow.getBusinessId()); |
| | | if (byId != null) { |
| | | byId.setFlow(flow); |
| | | result.add(byId); |
| | | } |
| | | }); |
| | | |
| | | return R.data(result); |
| | | } |
| | | |
| | | /** |
| | | * 获取已办列表 |
| | | * |
| | | * @return |
| | | */ |
| | | @GetMapping("getDoneList") |
| | | public R getDoneList(String currentUserId) { |
| | | BladeFlow bladeFlow = new BladeFlow(); |
| | | //获取我的已办列表 |
| | | |
| | | List<BladeFlow> doneList = flowClient.getMyDoneList(bladeFlow,currentUserId); |
| | | |
| | | List<PatrolRecordVO> result = new ArrayList<>(); |
| | | |
| | | doneList.forEach(flow -> { |
| | | PatrolRecordVO byId = patrolRecordService.customizeGetById(flow.getBusinessId()); |
| | | if (byId != null) { |
| | | byId.setFlow(flow); |
| | | result.add(byId); |
| | | } |
| | | }); |
| | | |
| | | return R.data(result); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取已办分页 |
| | | * |
| | | * @return |
| | | */ |
| | | @GetMapping("getDonePage") |
| | | public R getDonePage(String currentUserId,Query query) { |
| | | BladeFlow bladeFlow = new BladeFlow(); |
| | | Integer current = query.getCurrent(); |
| | | Integer size = query.getSize(); |
| | | |
| | | //获取我的已办列表 |
| | | List<BladeFlow> doneList = flowClient.getMyDonePage(bladeFlow,currentUserId,current,size); |
| | | |
| | | List<PatrolRecordVO> result = new ArrayList<>(); |
| | | |
| | | doneList.forEach(flow -> { |
| | | PatrolRecordVO byId = patrolRecordService.customizeGetById(flow.getBusinessId()); |
| | | if (byId != null) { |
| | | byId.setFlow(flow); |
| | | result.add(byId); |
| | | } |
| | | }); |
| | | |
| | | IPage<PatrolRecordVO> page = Condition.getPage(query); |
| | | page.setRecords(result); |
| | | page.setSize(size); |
| | | page.setCurrent(current); |
| | | |
| | | return R.data(page); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | 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.*; |
| | | 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; |
| | |
| | | @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); |
| | | 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); |
| | | // 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 下发任务 |
| | | * @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); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | package cn.gistack.sm.patrol.dto; |
| | | |
| | | import cn.gistack.sm.patrol.entity.PatrolGroup; |
| | | import cn.gistack.sm.patrol.entity.PatrolGroupItem; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class PatrolGroupDTOS extends PatrolGroup { |
| | | |
| | | private List<PatrolGroupItem> itemList; |
| | | } |
| New file |
| | |
| | | package cn.gistack.sm.patrol.dto; |
| | | |
| | | import cn.gistack.sm.patrol.entity.PatrolTask; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class PatrolTaskDTO extends PatrolTask { |
| | | |
| | | private List<PatrolGroupDTOS> groupList; |
| | | |
| | | } |
| | |
| | | package cn.gistack.sm.patrol.entity; |
| | | |
| | | import cn.gistack.flow.core.entity.FlowEntity; |
| | | import com.baomidou.mybatisplus.annotation.FieldStrategy; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @ApiModel(value="sm_patrol_type对象", description="巡查类型") |
| | | public class PatrolRecord extends BaseEntity { |
| | | public class PatrolRecord extends FlowEntity { |
| | | /** |
| | | * 任务id |
| | | */ |
| | |
| | | /** |
| | | * 处理状态(1、已解决,2、未解决) |
| | | */ |
| | | @ApiModelProperty("处理状态(1、已解决,2、未解决)") |
| | | @ApiModelProperty("处理状态(1、已解决,0、未解决或无问题)") |
| | | private String state; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty("记录类型") |
| | | private String recordType; |
| | | |
| | | /** |
| | | * 流程定义id |
| | | */ |
| | | private String processDefinitionId; |
| | | /** |
| | | * 流程实例id |
| | | */ |
| | | private String processInstanceId; |
| | | } |
| | |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @ApiModel(value = "sm_patrol_task对象", description = "巡查任务") |
| | | public class PatrolTask extends FlowEntity { |
| | | public class PatrolTask extends BaseEntity { |
| | | /** |
| | | * 标题 |
| | | */ |
| | |
| | | private Integer reportProblemCount; |
| | | |
| | | /** |
| | | * 流程定义id |
| | | * 巡查角色 |
| | | */ |
| | | private String processDefinitionId; |
| | | /** |
| | | * 流程实例id |
| | | */ |
| | | private String processInstanceId; |
| | | private String patrolRole; |
| | | |
| | | // /** |
| | | // * 流程定义id |
| | | // */ |
| | | // private String processDefinitionId; |
| | | // /** |
| | | // * 流程实例id |
| | | // */ |
| | | // private String processInstanceId; |
| | | |
| | | //处理状态,1、巡查;2、处理中;3已处理 |
| | | private String handleStatus; |
| | | |
| | | /** |
| | | * 工作流标识 是否上报 |
| | | */ |
| | | @TableField(exist = false) |
| | | private Boolean report; |
| | | |
| | | /** |
| | | * 工作流标识 是否上报至部门 |
| | | */ |
| | | @TableField(exist = false) |
| | | private Boolean toDept; |
| | | |
| | | /** |
| | | * 工作流标识 是否转送至技术负责人 |
| | | */ |
| | | @TableField(exist = false) |
| | | private Boolean toTech; |
| | | // /** |
| | | // * 工作流标识 是否上报 |
| | | // */ |
| | | // @TableField(exist = false) |
| | | // private Boolean report; |
| | | // |
| | | // /** |
| | | // * 工作流标识 是否上报至部门 |
| | | // */ |
| | | // @TableField(exist = false) |
| | | // private Boolean toDept; |
| | | // |
| | | // /** |
| | | // * 工作流标识 是否转送至技术负责人 |
| | | // */ |
| | | // @TableField(exist = false) |
| | | // private Boolean toTech; |
| | | } |
| | |
| | | |
| | | import cn.gistack.sm.intelligentCall.constant.ZtConstant; |
| | | import cn.gistack.sm.intelligentCall.service.CallService; |
| | | import cn.gistack.sm.patrol.entity.PatrolGroupItem; |
| | | import cn.gistack.sm.patrol.entity.PatrolTask; |
| | | import cn.gistack.sm.patrol.service.IPatrolGroupItemService; |
| | | import cn.gistack.sm.patrol.service.IPatrolTaskService; |
| | | import cn.gistack.sm.sjztmd.entity.AttResBase; |
| | | import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.tenant.annotation.NonDS; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpEntity; |
| | | import org.springframework.http.HttpHeaders; |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @ClassName SM服务Feign实现类 |
| | |
| | | private final IPatrolTaskService patrolTaskService; |
| | | private final IAttResManagePersonService attResManagePersonService; |
| | | private final IAttResBaseService attResBaseService; |
| | | private final IPatrolGroupItemService patrolGroupItemService; |
| | | |
| | | @Autowired |
| | | private RestTemplate restTemplate; |
| | |
| | | List<Integer> taskJob = createTaskJob(processDefinitionId, taskType, title, content, type, patrolResponsiblePersonList); |
| | | return taskJob; |
| | | } |
| | | |
| | | @Override |
| | | public List<Integer> createNewTaskJobHandler(String taskType, String title, String content, int type) { |
| | | List<PatrolResponsiblePerson> patrolResponsiblePersonList = attResManagePersonService.getPatrolResponsiblePersonAll(); |
| | | List<Integer> taskJob = createNewTaskJob(taskType, title, content, type, patrolResponsiblePersonList); |
| | | return taskJob; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @GetMapping(CREATE_TASK_JOB_BY_CONDITION_HANDLER) |
| | |
| | | PatrolResponsiblePerson patrolResponsiblePerson = patrolResponsiblePersonByResCdList.get(0); |
| | | //不确定是否有多个,循环下发 |
| | | PatrolTask patrolTask = new PatrolTask(); |
| | | patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | // patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | patrolTask.setToUserId(patrolResponsiblePerson.getUserId()); |
| | | patrolTask.setProjectId(resCd); |
| | | |
| | |
| | | String taskId = patrolTask.getId().toString(); |
| | | return taskId; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | log.info("当前创建任务对象:" + JSON.toJSONString(item)); |
| | | try { |
| | | PatrolTask patrolTask = new PatrolTask(); |
| | | patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | // patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | patrolTask.setToUserId(item.getUserId()); |
| | | patrolTask.setProjectId(item.getResGuid()); |
| | | patrolTask.setReservoirName(item.getName()); |
| | |
| | | return list; |
| | | } |
| | | |
| | | |
| | | |
| | | private List<Integer> createNewTaskJob(String taskType, String title, String content, int type, List<PatrolResponsiblePerson> patrolResponsiblePersonList) { |
| | | |
| | | AtomicInteger failureCount = new AtomicInteger(); |
| | | //循环责任人给责任人下发任务 |
| | | patrolResponsiblePersonList.forEach(item -> { |
| | | log.info("当前创建任务对象:" + JSON.toJSONString(item)); |
| | | try { |
| | | PatrolTask patrolTask = new PatrolTask(); |
| | | // patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | patrolTask.setToUserId(item.getUserId()); |
| | | //水库id |
| | | patrolTask.setProjectId(item.getResGuid()); |
| | | |
| | | //水库名称 |
| | | patrolTask.setReservoirName(item.getName()); |
| | | // 开始时间-结束时间 |
| | | if (type == 1) { //周任务 |
| | | LocalDate today = LocalDate.now(); |
| | | LocalDate firstDayOfWeek = today.with(ChronoField.DAY_OF_WEEK, 1); |
| | | LocalDate lastDayOfWeek = today.with(ChronoField.DAY_OF_WEEK, 7); |
| | | |
| | | String firstDayOfWeekString = firstDayOfWeek.format(DateTimeFormatter.ofPattern("yyyy-MM-dd 00:00:00")); |
| | | String lastDayOfWeekString = lastDayOfWeek.format(DateTimeFormatter.ofPattern("yyyy-MM-dd 23:59:59")); |
| | | //开始时间,结束时间 |
| | | patrolTask.setStartTime(firstDayOfWeekString); |
| | | patrolTask.setEndTime(lastDayOfWeekString); |
| | | } else { // 默认天任务 |
| | | patrolTask.setStartTime(DateUtil.format(new Date(),"yyyy-MM-dd 00:00:00")); |
| | | patrolTask.setEndTime(DateUtil.format(new Date(),"yyyy-MM-dd 23:59:59")); |
| | | } |
| | | |
| | | // 标题格式 月-日 水库名称 每日巡检任务 |
| | | patrolTask.setTitle(DateUtil.format(new Date(),"MM-dd") + item.getName() + "-" + title); |
| | | |
| | | //内容 |
| | | patrolTask.setContent(DateUtil.format(new Date(),"yyyyMMdd") +content); |
| | | |
| | | //任务类型 |
| | | patrolTask.setTaskType(taskType); |
| | | |
| | | //设置角色为巡查责任人 |
| | | patrolTask.setPatrolRole("5"); |
| | | |
| | | |
| | | //获取巡查项,给任务赋值 |
| | | List<PatrolGroupItem> list = patrolGroupItemService.list(); |
| | | List<String> collect = list.stream().map(groupItem -> groupItem.getId().toString()).collect(Collectors.toList()); |
| | | String itemIds = StringUtil.join(collect, ","); |
| | | patrolTask.setPatrolGroupItemId(itemIds); |
| | | |
| | | // 创建任务 |
| | | patrolTaskService.deliverTask(patrolTask); |
| | | |
| | | |
| | | } catch (Exception e) { |
| | | log.error("创建任务失败:" + e.getMessage()); |
| | | log.error("创建任务失败对象:" + JSON.toJSONString(item)); |
| | | failureCount.getAndIncrement(); |
| | | } |
| | | |
| | | }); |
| | | List<Integer> list = new ArrayList<>(); |
| | | list.add(patrolResponsiblePersonList.size()); |
| | | list.add(failureCount.get()); |
| | | // 返回 |
| | | return list; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public List<Integer> createTaskJob(String processDefinitionId, |
| | | String taskType, |
| | | String title, |
| | |
| | | log.info("当前创建任务对象:" + JSON.toJSONString(item)); |
| | | try { |
| | | PatrolTask patrolTask = new PatrolTask(); |
| | | patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | // patrolTask.setProcessDefinitionId(processDefinitionId); |
| | | patrolTask.setToUserId(item.getUserId()); |
| | | patrolTask.setProjectId(item.getResGuid()); |
| | | patrolTask.setReservoirName(item.getName()); |
| | |
| | | |
| | | <resultMap id="selectPatrolRecordList" type="cn.gistack.sm.patrol.vo.PatrolRecordVO"> |
| | | <result column="id" property="id"/> |
| | | <result column="patrol_type" property="patrolType"/> |
| | | <result column="device_ids" property="deviceIds"/> |
| | | <result column="images" property="images" |
| | | typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/> |
| | | <result column="videos" property="videos" |
| | |
| | | <result column="state" property="state"/> |
| | | <result column="item_id" property="itemId"/> |
| | | <result column="task_id" property="taskId"/> |
| | | <result column="patrol_route" property="patrolRoute"/> |
| | | <result column="taskRoute" property="taskRoute"/> |
| | | <result property="resGuid" column="resGuid"/> |
| | | |
| | | <result property="groupName" column="groupName"/> |
| | | <result property="groupId" column="groupId"/> |
| | | <result property="itemsName" column="itemsName"/> |
| | |
| | | <result property="toUserId" column="create_user"/> |
| | | <result property="toUserName" column="real_name"/> |
| | | <result property="taskName" column="taskName"/> |
| | | <result property="recordType" column="record_type"/> |
| | | |
| | | <result property="processDefinitionId" column="processDefinitionId"/> |
| | | <result property="processInstanceId" column="processInstanceId"/> |
| | | |
| | | |
| | | <result column="create_user" property="createUser"/> |
| | | <result column="create_dept" property="createDept"/> |
| | |
| | | <result column="town_name" property="townName"/> |
| | | <result property="handleUser" column="handleUser"/> |
| | | <result property="handleUserName" column="handleUserName"/> |
| | | |
| | | <result property="taskName" column="taskName"/> |
| | | |
| | | </resultMap> |
| | | |
| | |
| | | </select> |
| | | <select id="getDetail" resultMap="selectPatrolRecordList"> |
| | | SELECT |
| | | record.id,record.patrol_type,record.images,record.videos,record.content,record.status,record.item_id,record.content,record.task_id,record.patrol_route,record.create_user,record.solution, |
| | | task.title taskName, |
| | | task.project_id as resGuid, |
| | | |
| | | record.id, |
| | | record.images, |
| | | record.videos, |
| | | record.content, |
| | | record.status, |
| | | record.item_id, |
| | | record.task_id, |
| | | record.create_user, |
| | | record.solution, |
| | | record.state, |
| | | record.record_type, |
| | | record.process_definition_id as processDefinitionId, |
| | | record.process_instance_id as processInstanceId, |
| | | |
| | | item.description, |
| | | item.items_name as itemsName, |
| | | |
| | | g.name as groupName, |
| | | |
| | | |
| | | u.phone |
| | | 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 |
| | | LEFT JOIN sm_patrol_group_item item ON item.id = record.item_id |
| | | LEFT JOIN sm_patrol_group g ON g.id = item.group_id |
| | | LEFT JOIN BLADE_USER u ON u.id = record.create_user |
| | | WHERE record.is_deleted = 0 |
| | | AND record.id =#{id} |
| | |
| | | <if test="vo.recordType !=null and vo.recordType !=''"> |
| | | AND R.record_type = #{vo.recordType} |
| | | </if> |
| | | <if test="vo.toUserId !=null and vo.toUserId !=''"> |
| | | AND R.create_user = #{vo.toUserId} |
| | | </if> |
| | | <if test="vo.status !=null and vo.status !=''"> |
| | | AND R.status = #{vo.status} |
| | | </if> |
| | |
| | | package cn.gistack.sm.patrol.mapper; |
| | | |
| | | import cn.gistack.sm.patrol.dto.PatrolTaskDTO; |
| | | import cn.gistack.sm.patrol.entity.PatrolTask; |
| | | import cn.gistack.sm.patrol.vo.*; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | |
| | | List<PatrolTaskVO> selectPatrolTaskPage(@Param("current") long current, @Param("size") long size, @Param("patrolTask") PatrolTaskVO patrolTask); |
| | | |
| | | long getPatrolTaskTotal(@Param("patrolTask") PatrolTaskVO patrolTask); |
| | | |
| | | PatrolTaskDTO getTaskDTO(@Param("taskId") String taskId); |
| | | |
| | | List<PatrolTask> getMyTask(@Param("patrolTask") PatrolTask patrolTask,IPage<PatrolTask> page); |
| | | } |
| | |
| | | AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%') |
| | | </if> |
| | | <if test="patrolTask.startTime !=null and patrolTask.startTime !=''"> |
| | | AND spt.start_time >= #{patrolTask.startTime} |
| | | AND spt.create_time >= #{patrolTask.startTime} |
| | | </if> |
| | | <if test="patrolTask.endTime !=null and patrolTask.endTime !=''"> |
| | | AND spt.end_time <= #{patrolTask.endTime} |
| | | AND spt.create_time <= #{patrolTask.endTime} |
| | | </if> |
| | | <if test="patrolTask.projectId !=null and patrolTask.projectId !='' "> |
| | | AND spt.project_id = #{patrolTask.projectId} |
| | |
| | | <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 spt.start_time >= #{patrolTask.startTime}--> |
| | | <!-- </if>--> |
| | | <!-- <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">--> |
| | | <!-- AND spt.end_time <= #{patrolTask.endTime}--> |
| | | <!-- </if>--> |
| | | <if test="patrolTask.startTime !=null and patrolTask.startTime !=''"> |
| | | AND spt.create_time >= #{patrolTask.startTime} |
| | | </if> |
| | |
| | | AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%') |
| | | </if> |
| | | <if test="patrolTask.startTime !=null and patrolTask.startTime !=''"> |
| | | AND spt.start_time >= #{patrolTask.startTime} |
| | | AND spt.create_time >= #{patrolTask.startTime} |
| | | </if> |
| | | <if test="patrolTask.endTime !=null and patrolTask.endTime !=''"> |
| | | AND spt.end_time <= #{patrolTask.endTime} |
| | | AND spt.create_time <= #{patrolTask.endTime} |
| | | </if> |
| | | <if test="patrolTask.projectId !=null and patrolTask.projectId !='' "> |
| | | AND spt.project_id = #{patrolTask.projectId} |
| | |
| | | and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{vo.adCode},'%') |
| | | </if> |
| | | <if test="vo.startTime !=null and vo.startTime !=''"> |
| | | AND T.start_time >= #{vo.startTime} |
| | | AND T.create_time >= #{vo.startTime} |
| | | </if> |
| | | <if test="vo.endTime !=null and vo.endTime !=''"> |
| | | AND T.end_time <= #{vo.endTime} |
| | | AND T.create_time <= #{vo.endTime} |
| | | </if> |
| | | <if test="vo.reservoirName !=null and vo.reservoirName !='' "> |
| | | AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%') |
| | |
| | | and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{vo.adCode},'%') |
| | | </if> |
| | | <if test="vo.startTime !=null and vo.startTime !=''"> |
| | | AND T.start_time >= #{vo.startTime} |
| | | AND T.create_time >= #{vo.startTime} |
| | | </if> |
| | | <if test="vo.endTime !=null and vo.endTime !=''"> |
| | | AND T.end_time <= #{vo.endTime} |
| | | AND T.create_time <= #{vo.endTime} |
| | | </if> |
| | | <if test="vo.reservoirName !=null and vo.reservoirName !='' "> |
| | | AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%') |
| | | </if> |
| | | </select> |
| | | |
| | | <resultMap id="item" type="cn.gistack.sm.patrol.entity.PatrolGroupItem"> |
| | | <result property="id" column="itemId"/> |
| | | <result property="itemsName" column="itemsName"/> |
| | | <result property="groupId" column="groupId"/> |
| | | <result property="description" column="description"/> |
| | | </resultMap> |
| | | |
| | | <resultMap id="groupDTO" type="cn.gistack.sm.patrol.dto.PatrolGroupDTOS"> |
| | | <id property="id" column="groupId"/> |
| | | <result property="name" column="groupName"/> |
| | | <collection property="itemList" resultMap="item"/> |
| | | </resultMap> |
| | | |
| | | <resultMap id="taskDTO" type="cn.gistack.sm.patrol.dto.PatrolTaskDTO"> |
| | | <id property="id" column="taskId"/> |
| | | <result property="projectId" column="projectId"/> |
| | | <result property="state" column="state"/> |
| | | <result property="title" column="title"/> |
| | | <result property="content" column="content"/> |
| | | <collection property="groupList" resultMap="groupDTO"/> |
| | | </resultMap> |
| | | |
| | | <select id="getTaskDTO" resultMap="taskDTO"> |
| | | SELECT |
| | | task.id as taskId, |
| | | task.project_id as projectId, |
| | | task.state as state, |
| | | task.title as title, |
| | | task.content as content, |
| | | |
| | | spg.id as groupId, |
| | | spg.name as groupName, |
| | | |
| | | spgi.id as itemId, |
| | | spgi.items_name as itemsName, |
| | | spgi.description as description |
| | | FROM YWXT.SM_PATROL_TASK TASK |
| | | LEFT JOIN SM_PATROL_GROUP_ITEM SPGI ON task.patrol_group_item_id like CONCAT('%',spgi.id,'%') |
| | | LEFT JOIN SM_PATROL_GROUP SPG ON SPG.ID = SPGI.GROUP_ID |
| | | WHERE task.is_deleted = 0 and TASK.ID = #{taskId} |
| | | </select> |
| | | |
| | | <select id="getMyTask" resultType="cn.gistack.sm.patrol.entity.PatrolTask"> |
| | | SELECT |
| | | id,title,project_id,content,state,to_user_id,real_end_time |
| | | |
| | | from sm_patrol_task spt |
| | | where spt.is_deleted = 0 |
| | | <if test="patrolTask.toUserId != null and patrolTask.toUserId != ''"> |
| | | AND spt.to_user_id LIKE CONCAT('%',#{patrolTask.toUserId},'%') |
| | | </if> |
| | | <if test="patrolTask.state != null and patrolTask.state != ''"> |
| | | AND spt.state = #{patrolTask.state} |
| | | </if> |
| | | order by spt.create_time desc |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| New file |
| | |
| | | package cn.gistack.sm.patrol.params; |
| | | |
| | | import cn.gistack.sm.patrol.entity.PatrolRecord; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class PersonHandleParams { |
| | | |
| | | private PatrolRecord patrolRecord; |
| | | |
| | | private String recordId; |
| | | private String taskId; |
| | | private String flowTaskId; |
| | | private String taskUser; |
| | | private String comment; |
| | | private String processInstanceId; |
| | | } |
| | |
| | | RecordVO getRecordVO(RecordVO recordVO); |
| | | |
| | | PatrolRecordVO getHandleRecord(PatrolRecord patrolRecord); |
| | | |
| | | void startProcess(PatrolRecordVO deliverList,String resId); |
| | | |
| | | PatrolRecordVO customizeGetById(String id); |
| | | } |
| | |
| | | package cn.gistack.sm.patrol.service; |
| | | |
| | | import cn.gistack.flow.core.entity.BladeFlow; |
| | | import cn.gistack.sm.patrol.entity.PatrolReport; |
| | | 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.vo.*; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.springblade.core.mp.base.BaseService; |
| | | |
| | | import java.net.http.HttpRequest; |
| | | import java.util.List; |
| | | |
| | | public interface IPatrolTaskService extends BaseService<PatrolTask> { |
| | |
| | | * @return |
| | | */ |
| | | boolean personCompleteTask(PatrolTaskVO patrolTaskVO, String currentUserId, String taskUser); |
| | | |
| | | List<PatrolTask> deliverTask(PatrolTask patrolTask); |
| | | |
| | | PatrolTask saveTask(PatrolTask patrolTask); |
| | | |
| | | PatrolTaskDTO getTaskDTO(String taskId); |
| | | |
| | | Object getMyTask(PatrolTaskVO patrolTask,IPage<PatrolTask> page); |
| | | |
| | | Boolean finishPatrolTask(PatrolTaskVO patrolTaskVO); |
| | | |
| | | Boolean personHandle(PersonHandleParams personHandleParams); |
| | | } |
| | |
| | | package cn.gistack.sm.patrol.service.impl; |
| | | |
| | | import cn.gistack.flow.core.constant.ProcessConstant; |
| | | import cn.gistack.flow.core.entity.BladeFlow; |
| | | import cn.gistack.flow.core.feign.IFlowClient; |
| | | import cn.gistack.flow.core.utils.FlowUtil; |
| | | import cn.gistack.flow.core.utils.TaskUtil; |
| | | import cn.gistack.sm.patrol.dto.PatrolGroupDTO; |
| | | import cn.gistack.sm.patrol.entity.PatrolGroupItem; |
| | | import cn.gistack.sm.patrol.entity.PatrolRecord; |
| | | import cn.gistack.sm.patrol.entity.PatrolType; |
| | | import cn.gistack.sm.patrol.mapper.PatrolRecordMapper; |
| | | import cn.gistack.sm.patrol.service.IPatrolGroupItemService; |
| | | import cn.gistack.sm.patrol.service.IPatrolRecordService; |
| | |
| | | import cn.gistack.sm.patrol.vo.PatrolRecordVO; |
| | | import cn.gistack.sm.patrol.vo.RecordBatchVO; |
| | | import cn.gistack.sm.patrol.vo.RecordVO; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import cn.gistack.sm.sjztmd.service.IAttResManagePersonService; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.ObjectUtil; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | |
| | | @AllArgsConstructor |
| | | public class PatrolRecordServiceImpl extends BaseServiceImpl<PatrolRecordMapper, PatrolRecord> implements IPatrolRecordService { |
| | | IPatrolGroupItemService patrolGroupItemService; |
| | | |
| | | private final IAttResManagePersonService attResManagePersonService; |
| | | private final IFlowClient flowClient; |
| | | |
| | | @Override |
| | | public IPage<PatrolRecord> selectPatrolRecord(IPage<PatrolRecord> page, PatrolRecordVO patrolRecord) { |
| | |
| | | public PatrolRecordVO getHandleRecord(PatrolRecord patrolRecord) { |
| | | return baseMapper.getHandleRecord(patrolRecord); |
| | | } |
| | | |
| | | @Override |
| | | public void startProcess(PatrolRecordVO record,String resId) { |
| | | |
| | | String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY); |
| | | |
| | | //异常,未解决需要开启流程 |
| | | if (record.getStatus() == 2 && record.getSolution().equals("2")) { |
| | | |
| | | // List<PersonVO> managePersonList = attResManagePersonService.getManagePersonList(resId, "4"); |
| | | //没主键 |
| | | if (Func.isEmpty(record.getId())) { |
| | | save(record); |
| | | |
| | | Kv variables = Kv.create() |
| | | //设置创建人 |
| | | .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId()) |
| | | //指定责任人,因为不一定是巡查责任完成的任务,需要前端传递taskUser |
| | | .set("taskUser", TaskUtil.getTaskUser(record.getTaskUser())); |
| | | R<BladeFlow> result = flowClient.startProcessInstanceById(record.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(record.getId())), variables); |
| | | |
| | | if (result.isSuccess()) { |
| | | log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId()); |
| | | // 返回流程id写入 |
| | | record.setProcessInstanceId(result.getData().getProcessInstanceId()); |
| | | updateById(record); |
| | | } else { |
| | | throw new ServiceException("开启流程失败"); |
| | | } |
| | | } else { |
| | | updateById(record); |
| | | } |
| | | |
| | | } else { |
| | | save(record); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public PatrolRecordVO customizeGetById(String id) { |
| | | return baseMapper.getDetail(id); |
| | | } |
| | | } |
| | |
| | | import cn.gistack.flow.core.constant.ProcessConstant; |
| | | import cn.gistack.flow.core.entity.BladeFlow; |
| | | import cn.gistack.flow.core.feign.IFlowClient; |
| | | import cn.gistack.flow.core.utils.FlowUtil; |
| | | import cn.gistack.flow.core.utils.TaskUtil; |
| | | import cn.gistack.nky.fegin.INkyClient; |
| | | import cn.gistack.sm.patrol.params.PersonHandleParams; |
| | | import cn.gistack.sm.patrol.dto.PatrolTaskDTO; |
| | | import cn.gistack.sm.patrol.entity.PatrolRecord; |
| | | import cn.gistack.sm.patrol.entity.PatrolReport; |
| | | import cn.gistack.sm.patrol.entity.PatrolTask; |
| | |
| | | import cn.gistack.sm.patrol.util.EnhancementServicesTool; |
| | | import cn.gistack.sm.patrol.util.IdWorker; |
| | | import cn.gistack.sm.patrol.vo.*; |
| | | import cn.gistack.sm.sjztmd.service.IAttResManagePersonService; |
| | | import cn.gistack.sm.sjztmd.service.IYwTermitesTaskService; |
| | | import cn.gistack.sm.sjztmd.vo.ChargePersonVO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | | import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | @AllArgsConstructor |
| | |
| | | private final IPatrolReportService patrolReportService; |
| | | private final INkyClient nkyClient; |
| | | private final IYwTermitesTaskService waterDataTermitesService; |
| | | private final IAttResManagePersonService attResManagePersonService; |
| | | |
| | | private final String PATROL_USER = "patrolUser"; |
| | | private final String TECH_USER = "techUser"; |
| | |
| | | */ |
| | | @Override |
| | | public IPage<PatrolTaskVO> selectPatrolTask(IPage<PatrolTaskVO> page, PatrolTaskVO patrolTask) { |
| | | // List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTask(page, patrolTask); |
| | | List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTask(page, patrolTask); |
| | | |
| | | List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTaskPage(page.getCurrent() - 1, page.getSize(), patrolTask); |
| | | long total = baseMapper.getPatrolTaskTotal(patrolTask); |
| | | page.setRecords(patrolTaskList); |
| | | page.setTotal(total); |
| | | // List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTaskPage(page.getCurrent() - 1, page.getSize(), patrolTask); |
| | | // long total = baseMapper.getPatrolTaskTotal(patrolTask); |
| | | // page.setRecords(patrolTaskList); |
| | | // page.setTotal(total); |
| | | |
| | | return page; |
| | | return page.setRecords(patrolTaskList); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public PatrolTask startProcess(PatrolTask patrolTask) { |
| | | String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY); |
| | | if (Func.isEmpty(patrolTask.getId())) { |
| | | save(patrolTask); |
| | | |
| | | |
| | | // 启动流程 |
| | | // String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY); |
| | | // if (Func.isEmpty(patrolTask.getId())) { |
| | | // save(patrolTask); |
| | | // |
| | | // |
| | | // // 启动流程 |
| | | //// Kv variables = Kv.create() |
| | | //// //设置创建人 |
| | | //// .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId()) |
| | | //// //指定任务处理人 |
| | | //// .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId())); |
| | | //// R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables); |
| | | // |
| | | // Kv variables = Kv.create() |
| | | // //设置创建人 |
| | | // .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId()) |
| | | // //指定任务处理人 |
| | | // //指定巡查责任人 |
| | | // .set(PATROL_USER, TaskUtil.getTaskUser(patrolTask.getToUserId())) |
| | | // .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId())); |
| | | // R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables); |
| | | |
| | | Kv variables = Kv.create() |
| | | //设置创建人 |
| | | .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId()) |
| | | //指定巡查责任人 |
| | | .set(PATROL_USER, TaskUtil.getTaskUser(patrolTask.getToUserId())) |
| | | .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId())); |
| | | R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables); |
| | | |
| | | if (result.isSuccess()) { |
| | | log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId()); |
| | | // 返回流程id写入leave |
| | | patrolTask.setProcessInstanceId(result.getData().getProcessInstanceId()); |
| | | updateById(patrolTask); |
| | | } else { |
| | | throw new ServiceException("开启流程失败"); |
| | | } |
| | | } else { |
| | | updateById(patrolTask); |
| | | } |
| | | return patrolTask; |
| | | // |
| | | // if (result.isSuccess()) { |
| | | // log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId()); |
| | | // // 返回流程id写入leave |
| | | // patrolTask.setProcessInstanceId(result.getData().getProcessInstanceId()); |
| | | // updateById(patrolTask); |
| | | // } else { |
| | | // throw new ServiceException("开启流程失败"); |
| | | // } |
| | | // } else { |
| | | // updateById(patrolTask); |
| | | // } |
| | | // return patrolTask; |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public boolean personCompleteTask(PatrolTaskVO patrolTaskVO, String currentUserId, String taskUser) { |
| | | |
| | | String taskId = patrolTaskVO.getFlowTaskId(); |
| | | String processInstanceId = patrolTaskVO.getProcessInstanceId(); |
| | | String comment = patrolTaskVO.getComment(); |
| | | // String taskId = patrolTaskVO.getFlowTaskId(); |
| | | // String processInstanceId = patrolTaskVO.getProcessInstanceId(); |
| | | // String comment = patrolTaskVO.getComment(); |
| | | // |
| | | // //保存巡查记录 |
| | | // if (patrolTaskVO.getPatrolRecordList() != null && patrolTaskVO.getPatrolRecordList().size()>0){ |
| | | // patrolRecordService.saveBatch(patrolTaskVO.getPatrolRecordList()); |
| | | // } |
| | | // |
| | | // // 创建变量 |
| | | // Map<String, Object> variables = new HashMap<>(); |
| | | // if (variables == null) { |
| | | // variables = Kv.create(); |
| | | // } |
| | | // |
| | | // //指定了人就是上报,没指定就表示已经处理了 |
| | | // if (StringUtil.isNotBlank(taskUser)){ |
| | | // variables.put("taskUser",TaskUtil.getTaskUser(taskUser)); |
| | | // variables.put(ProcessConstant.REPORT_KEY,true); |
| | | // }else{ |
| | | // variables.put(ProcessConstant.REPORT_KEY,false); |
| | | // |
| | | // //查监测预警表,看是否有这个任务,有的话修改任务状态 |
| | | // Boolean finishDamTask = nkyClient.finishTask(patrolTaskVO.getId().toString()); |
| | | // if (!finishDamTask){ |
| | | // //查白蚁表,看是否有这个任务,有的话修改任务状态 |
| | | // Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTaskVO.getId().toString()); |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // |
| | | // flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | // return updateById(patrolTaskVO); |
| | | return false; |
| | | } |
| | | |
| | | //保存巡查记录 |
| | | if (patrolTaskVO.getPatrolRecordList() != null && patrolTaskVO.getPatrolRecordList().size()>0){ |
| | | patrolRecordService.saveBatch(patrolTaskVO.getPatrolRecordList()); |
| | | @Override |
| | | public List<PatrolTask> deliverTask(PatrolTask patrolTask) { |
| | | |
| | | String projectIds = patrolTask.getProjectId(); |
| | | String patrolRole = patrolTask.getPatrolRole(); |
| | | String reservoirName = patrolTask.getReservoirName(); |
| | | |
| | | List<String> resList = Arrays.asList(projectIds.split(",")); |
| | | List<String> roleList = Arrays.asList(patrolRole.split(",")); |
| | | List<String> reservoirNameList = Arrays.asList(reservoirName.split(",")); |
| | | |
| | | List<PatrolTask> saveList = new ArrayList<>(); |
| | | //循环水库 |
| | | for (int i = 0; i < resList.size(); i++) { |
| | | String resId = resList.get(i); |
| | | |
| | | for (int j = 0; j < roleList.size(); j++) { |
| | | String role = roleList.get(j); |
| | | |
| | | //获取该类型责任人 |
| | | List<ChargePersonVO> managePersonList = attResManagePersonService.getManagePersonList(resId, role); |
| | | |
| | | PatrolTask saveTask = new PatrolTask(); |
| | | saveTask.setTitle(patrolTask.getTitle()); |
| | | saveTask.setStartTime(patrolTask.getStartTime()); |
| | | saveTask.setEndTime(patrolTask.getEndTime()); |
| | | saveTask.setContent(patrolTask.getContent()); |
| | | |
| | | List<String> collect = managePersonList.stream().map(p -> p.getUserId()).collect(Collectors.toList()); |
| | | |
| | | if (StringUtil.isBlank(patrolTask.getToUserId())) { |
| | | //没传就自己找 |
| | | //有几个就有几个 |
| | | saveTask.setToUserId(StringUtil.join(collect, ",")); |
| | | } else { |
| | | saveTask.setToUserId(patrolTask.getToUserId()); |
| | | } |
| | | saveTask.setProjectId(resId); |
| | | saveTask.setReservoirName(reservoirNameList.get(i)); |
| | | |
| | | saveTask.setTaskType(patrolTask.getTaskType()); |
| | | saveTask.setPatrolGroupItemId(patrolTask.getPatrolGroupItemId()); |
| | | saveTask.setPatrolRole(role); |
| | | |
| | | saveList.add(saveTask); |
| | | } |
| | | } |
| | | |
| | | boolean saveBatch = saveBatch(saveList); |
| | | return saveList; |
| | | } |
| | | |
| | | @Override |
| | | public PatrolTask saveTask(PatrolTask patrolTask) { |
| | | save(patrolTask); |
| | | return patrolTask; |
| | | } |
| | | |
| | | @Override |
| | | public PatrolTaskDTO getTaskDTO(String taskId) { |
| | | return baseMapper.getTaskDTO(taskId); |
| | | } |
| | | |
| | | @Override |
| | | public Object getMyTask(PatrolTaskVO patrolTask, IPage<PatrolTask> page) { |
| | | if (patrolTask.getIsPage()) { |
| | | return page.setRecords(baseMapper.getMyTask(patrolTask, page)); |
| | | } |
| | | |
| | | return baseMapper.getMyTask(patrolTask, null); |
| | | } |
| | | |
| | | @Override |
| | | public Boolean finishPatrolTask(PatrolTaskVO patrolTaskVO) { |
| | | |
| | | //更新任务信息 |
| | | boolean updateTask = updateById(patrolTaskVO); |
| | | |
| | | // 查监测预警表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishDamTask = nkyClient.finishTask(patrolTaskVO.getId().toString()); |
| | | if (!finishDamTask) { |
| | | //查白蚁表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTaskVO.getId().toString()); |
| | | } |
| | | |
| | | List<PatrolRecordVO> patrolRecordList = patrolTaskVO.getPatrolRecordList(); |
| | | |
| | | if (patrolRecordList != null && patrolRecordList.size() > 0) { |
| | | patrolRecordList.forEach(record -> { |
| | | patrolRecordService.startProcess(record, patrolTaskVO.getProjectId()); |
| | | }); |
| | | } |
| | | |
| | | return updateTask; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean personHandle(PersonHandleParams personHandleParams) { |
| | | |
| | | PatrolRecord patrolRecord = personHandleParams.getPatrolRecord(); |
| | | String recordId = personHandleParams.getRecordId(); |
| | | String taskId = personHandleParams.getTaskId(); |
| | | String flowTaskId = personHandleParams.getFlowTaskId(); |
| | | String taskUser = personHandleParams.getTaskUser(); |
| | | String comment = personHandleParams.getComment(); |
| | | String processInstanceId = personHandleParams.getProcessInstanceId(); |
| | | |
| | | |
| | | if (StringUtil.isBlank(recordId)) { |
| | | throw new ServiceException("recordId为空"); |
| | | } |
| | | |
| | | if (StringUtil.isBlank(taskId)) { |
| | | throw new ServiceException("taskId为空"); |
| | | } |
| | | |
| | | if (StringUtil.isBlank(flowTaskId)) { |
| | | throw new ServiceException("flowTaskId为空"); |
| | | } |
| | | |
| | | if (StringUtil.isBlank(processInstanceId)) { |
| | | throw new ServiceException("processInstanceId为空"); |
| | | } |
| | | |
| | | |
| | | //说明处理了问题 |
| | | if (patrolRecord != null) { |
| | | //保存处理记录 |
| | | patrolRecordService.save(patrolRecord); |
| | | |
| | | //修改该任务的处理状态 |
| | | PatrolRecord upRecord = new PatrolRecord(); |
| | | upRecord.setId(Long.parseLong(recordId)); |
| | | upRecord.setState("1"); |
| | | patrolRecordService.updateById(upRecord); |
| | | |
| | | //修改任务的问题数量 |
| | | PatrolTask byId = getById(taskId); |
| | | |
| | | Integer problemCount = byId.getProblemCount(); |
| | | PatrolTask upTask = new PatrolTask(); |
| | | upTask.setId(byId.getId()); |
| | | upTask.setProblemCount(problemCount - 1); |
| | | updateById(upTask); |
| | | |
| | | } |
| | | |
| | | |
| | | // 创建变量 |
| | | Map<String, Object> variables = new HashMap<>(); |
| | |
| | | } |
| | | |
| | | //指定了人就是上报,没指定就表示已经处理了 |
| | | if (StringUtil.isNotBlank(taskUser)){ |
| | | variables.put("taskUser",TaskUtil.getTaskUser(taskUser)); |
| | | variables.put(ProcessConstant.REPORT_KEY,true); |
| | | }else{ |
| | | variables.put(ProcessConstant.REPORT_KEY,false); |
| | | |
| | | //查监测预警表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishDamTask = nkyClient.finishTask(patrolTaskVO.getId().toString()); |
| | | if (!finishDamTask){ |
| | | //查白蚁表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTaskVO.getId().toString()); |
| | | } |
| | | |
| | | |
| | | if (StringUtil.isNotBlank(taskUser)) { |
| | | variables.put("taskUser", TaskUtil.getTaskUser(taskUser)); |
| | | variables.put(ProcessConstant.REPORT_KEY, true); |
| | | } else { |
| | | variables.put(ProcessConstant.REPORT_KEY, false); |
| | | // //查监测预警表,看是否有这个任务,有的话修改任务状态 |
| | | // Boolean finishDamTask = nkyClient.finishTask(patrolTaskVO.getId().toString()); |
| | | // if (!finishDamTask){ |
| | | // //查白蚁表,看是否有这个任务,有的话修改任务状态 |
| | | // Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTaskVO.getId().toString()); |
| | | // } |
| | | } |
| | | |
| | | flowClient.completeTask(flowTaskId, processInstanceId, comment, variables); |
| | | return true; |
| | | |
| | | |
| | | |
| | | flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | return updateById(patrolTaskVO); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @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(); |
| | | String taskId = flow.getTaskId(); |
| | | String processInstanceId = patrolTask.getProcessInstanceId(); |
| | | // String comment = patrolTask.getReport() ? "巡查任务发现问题" : "巡查任务完成,未发现问题"; |
| | | String comment = patrolTask.getComment(); |
| | | // 创建变量 |
| | | Map<String, Object> variables = flow.getVariables(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | //设置是否上报标识 |
| | | variables.put(ProcessConstant.REPORT_KEY, patrolTask.getReport()); |
| | | // variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser)); |
| | | variables.put(TECH_USER, TaskUtil.getTaskUser(taskUser)); |
| | | // 完成任务 |
| | | flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | //保存巡查记录 |
| | | if (patrolTask.getPatrolRecordList() != null && patrolTask.getPatrolRecordList().size() > 0){ |
| | | patrolRecordService.saveBatch(patrolTask.getPatrolRecordList()); |
| | | } |
| | | |
| | | |
| | | |
| | | return baseMapper.updateById(patrolTask) > 0; |
| | | } else { |
| | | return false; |
| | | } |
| | | // R<BladeFlow> res = flowClient.getBladeFlow(patrolTask.getId().toString(), currentUserId); |
| | | // if (res.isSuccess()) { |
| | | // BladeFlow flow = res.getData(); |
| | | // String taskId = flow.getTaskId(); |
| | | // String processInstanceId = patrolTask.getProcessInstanceId(); |
| | | //// String comment = patrolTask.getReport() ? "巡查任务发现问题" : "巡查任务完成,未发现问题"; |
| | | // String comment = patrolTask.getComment(); |
| | | // // 创建变量 |
| | | // Map<String, Object> variables = flow.getVariables(); |
| | | // if (variables == null) { |
| | | // variables = Kv.create(); |
| | | // } |
| | | // //设置是否上报标识 |
| | | // variables.put(ProcessConstant.REPORT_KEY, patrolTask.getReport()); |
| | | //// variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser)); |
| | | // variables.put(TECH_USER, TaskUtil.getTaskUser(taskUser)); |
| | | // // 完成任务 |
| | | // flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | // //保存巡查记录 |
| | | // if (patrolTask.getPatrolRecordList() != null && patrolTask.getPatrolRecordList().size() > 0){ |
| | | // patrolRecordService.saveBatch(patrolTask.getPatrolRecordList()); |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // return baseMapper.updateById(patrolTask) > 0; |
| | | // } else { |
| | | // return false; |
| | | // } |
| | | return false; |
| | | } |
| | | |
| | | @Override |
| | |
| | | // return true; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String taskId = bladeFlowTask.getTaskId(); |
| | | String processInstanceId = bladeFlowTask.getProcessInstanceId(); |
| | | String comment = bladeFlowTask.getComment(); |
| | |
| | | |
| | | switch (currentNode.getHistoryActivityId()) { |
| | | case "techPerson": |
| | | variables.put(bladeFlowTask.getToDept()?DEPT_USER:SUPERVISOR_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | variables.put(bladeFlowTask.getToDept() ? DEPT_USER : SUPERVISOR_USER, TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | break; |
| | | case "supervisorPerson": |
| | | variables.put(bladeFlowTask.getToDept()?DEPT_USER:ADMIN_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | variables.put(bladeFlowTask.getToDept() ? DEPT_USER : ADMIN_USER, TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | break; |
| | | case "adminPerson": |
| | | variables.put(DEPT_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | variables.put(DEPT_USER, TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | break; |
| | | case "department": |
| | | //当前节点为水行政部门,需要指定回复给谁 |
| | |
| | | if (beforeId.equals("techPerson")) { |
| | | //前一个节点是技术责任人 |
| | | variables.put(ProcessConstant.TOTECH_KEY, true); |
| | | }else if (beforeId.equals("supervisorPerson")){ |
| | | } else if (beforeId.equals("supervisorPerson")) { |
| | | variables.put(ProcessConstant.TOSUPERVISOR_KEY, true); |
| | | }else if (beforeId.equals("adminPerson")){ |
| | | } else if (beforeId.equals("adminPerson")) { |
| | | variables.put(ProcessConstant.TOADMIN_KEY, true); |
| | | } |
| | | break; |
| | |
| | | |
| | | private String handleUser; |
| | | private String handleUserName; |
| | | |
| | | private String taskUser; |
| | | } |
| | |
| | | */ |
| | | private String finish; |
| | | |
| | | private List<PatrolRecord> patrolRecordList; |
| | | private List<PatrolRecordVO> patrolRecordList; |
| | | |
| | | private String toUserIdName; |
| | | |
| | |
| | | |
| | | //工作流taskId |
| | | private String flowTaskId; |
| | | |
| | | private Boolean isPage; |
| | | } |
| | |
| | | if (!StringUtil.isBlank(typeStr)) |
| | | type = Integer.parseInt(typeStr); |
| | | // 远程调用 |
| | | List<Integer> taskJobHandler = patrolTasClient.createTaskJobHandler(processDefinitionId, taskType, title, content, type); |
| | | // List<Integer> taskJobHandler = patrolTasClient.createTaskJobHandler(processDefinitionId, taskType, title, content, type); |
| | | |
| | | List<Integer> taskJobHandler = patrolTasClient.createNewTaskJobHandler(taskType,title,content,type); |
| | | |
| | | |
| | | // 打印响应数据 |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | XxlJobLogger.log("总数量:<span style='color:red'>" + taskJobHandler.get(0) + "</span> ... 失败数量:<span style='color:red'>" + taskJobHandler.get(1) + "</span> "); |