123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- package com.huaxu.task.controller;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.huaxu.model.AjaxMessage;
- import com.huaxu.model.LoginUser;
- import com.huaxu.model.Pagination;
- import com.huaxu.model.ResultStatus;
- import com.huaxu.process.entity.ProcessDefinition;
- import com.huaxu.process.service.WorkFlowService;
- import com.huaxu.task.dto.PlanManageDto;
- import com.huaxu.task.entity.PlanManage;
- import com.huaxu.task.service.PlanManageService;
- import com.huaxu.util.DatesUtil;
- import com.huaxu.util.UserUtil;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.activiti.engine.task.Task;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.*;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
- @RestController
- @RequestMapping("/workflow/task/")
- @Api(tags = "计划管理")
- public class PlanManageController {
- @Autowired
- PlanManageService planManageService;
- @Autowired
- WorkFlowService workFlowService;
- /**
- * 新增巡检计划
- * @param planName 任务名称
- * @param taskType 任务类型
- * @param planStartDate 计划开始时间
- * @param planEndDate 计划结束时间
- * @param userId 计划巡检人ID
- * @param taskContent 任务内容
- * @param taskAreaShape 任务区域坐标
- * @param taskAreaName 任务区域名称
- * @return
- */
- @PostMapping("/plan/add")
- @ApiOperation(value = "新增巡检计划")
- public AjaxMessage addPlan(@ApiParam(value = "任务名称", required = true) @RequestParam(required = true) String planName,
- @ApiParam(value = "任务类型", required = true) @RequestParam(required = true) Integer taskType,
- @ApiParam(value = "计划开始时间", required = true) @RequestParam(required = true) String planStartDate,
- @ApiParam(value = "计划结束时间", required = true) @RequestParam(required = true) String planEndDate,
- @ApiParam(value = "计划巡检人ID", required = true) @RequestParam(required = true) String userId,
- @ApiParam(value = "任务内容", required = true) @RequestParam(required = true) String taskContent,
- @ApiParam(value = "任务区域坐标", required = true) @RequestParam(required = true) String taskAreaShape,
- @ApiParam(value = "任务区域名称", required = true) @RequestParam(required = true) String taskAreaName) {
- LoginUser loginUser = UserUtil.getCurrentUser();
- String planId=DatesUtil.formatDate(new Date(),"yyyyMMddHHmmss")+String.valueOf((int) (Math.random()*(9999-1000)+1000));
- PlanManage record = new PlanManage();
- record.setUserId(userId);
- record.setPlanId(planId);
- record.setPlanName(planName);
- record.setTaskType(taskType);
- record.setPlanStartDate(DatesUtil.parseDate(planStartDate,"yyyy-MM-dd HH:mm:ss"));
- record.setPlanEndDate(DatesUtil.parseDate(planEndDate,"yyyy-MM-dd HH:mm:ss"));
- record.setUserId(userId);
- record.setTaskContent(taskContent);
- record.setTaskAreaShape(taskAreaShape);
- record.setTaskAreaName(taskAreaName);
- record.setDateCreate(DatesUtil.parseDate(DatesUtil.formatNow(),"yyyy-MM-dd HH:mm:ss"));
- if(loginUser.getId() != null) {
- record.setPlanUserId(loginUser.getId().toString());
- record.setCreateBy(loginUser.getId().toString());
- }
- if(loginUser.getTenantId() != null) {
- record.setTenantId(loginUser.getTenantId());
- }
- int rows = planManageService.insertSelective(record);
- if(rows > 0) {
- return new AjaxMessage(ResultStatus.OK);
- }
- return new AjaxMessage(ResultStatus.ERROR);
- }
- @GetMapping("/plan/select")
- @ApiOperation(value = "查询巡检计划")
- public AjaxMessage<Pagination<PlanManageDto>> selectPlan(
- @ApiParam(value = "页数", required = true)@RequestParam Integer pageNum,
- @ApiParam(value = "条数", required = true)@RequestParam Integer pageSize,
- @ApiParam(value = "计划单号或计划名称", required = true) @RequestParam(required = false) String key,
- @ApiParam(value = "计划安排起始日期", required = true) @RequestParam(required = false) String startDate,
- @ApiParam(value = "计划安排截至日期", required = true) @RequestParam(required = false) String endDate){
- PlanManageDto planManageDto = new PlanManageDto();
- //根据用户编号,获取用户的权限
- LoginUser loginUser = UserUtil.getCurrentUser();
- planManageDto.setKey(key);
- if(!StringUtils.isEmpty(startDate)&& !StringUtils.isEmpty(endDate)) {
- planManageDto.setStartDate(startDate);
- planManageDto.setEndDate(endDate);
- }
- planManageDto.setTenantId(loginUser.getTenantId());
- planManageDto.setProgramItems(loginUser.getProgramItemList());
- planManageDto.setUserType(loginUser.getType());
- //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
- planManageDto.setPermissonType(loginUser.getPermissonType());
- IPage<PlanManageDto> iPage = new Page<>(pageNum, pageSize);
- iPage = planManageService.selectPage(iPage, planManageDto);
- Pagination<PlanManageDto> pages = new Pagination<>(iPage);
- for(PlanManage plan : pages.getList()){
- //plan.setCompanyOrgName(orgInfoUtil.getOrgName(plan.getCompanyOrgId()));
- //plan.setDeptOrgName(orgInfoUtil.getOrgName(plan.getDeptOrgId()));
- }
- return new AjaxMessage<>(ResultStatus.OK, pages);
- }
- @PostMapping("/plan/submit")
- @ApiOperation(value = "提交巡检计划")
- public AjaxMessage submitPlan(
- @ApiParam(value = "计划单号", required = true) @RequestParam(required = false) Integer id){
- LoginUser loginUser = UserUtil.getCurrentUser();
- PlanManage planManage = planManageService.selectByPrimaryKey(id);
- //测试数据 test1 1 1
- // ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
- // loginUser.getTenantId(),
- // loginUser.getCompanyId(),
- // planManage.getTaskType());
- ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
- "test1",
- 1,
- 1);
- Map<String,Object> vars = new HashMap<>();
- vars.put("assineeFormUserId",planManage.getUserId());
- //巡检发送系统消息所需参数
- vars.put("任务类型",planManage.getTaskType());
- vars.put("任务编号",planManage.getPlanId());
- vars.put("templateId",4);
- vars.put("msgType",4);
- String startProcess = workFlowService.startProcess(processDefinition,vars);
- Task task = workFlowService.getProcessRuntimeTask(startProcess).get(0);
- Set<String> taskParticipator = workFlowService.getTaskParticipator(task.getId(),false,null);
- //更新计划表的流程相关字段值。
- planManage.setPlanStatus(1);//已执行
- planManage.setUpdateBy(loginUser.getId().toString());
- planManage.setDateUpdate(new Date());
- planManage.setProcessInstanceId("");
- planManage.setProcessDefId("");
- planManage.setCurrentTaskId("");
- planManage.setCurrentUsers("");
- planManage.setCurrentTaskName("");
- int rows = planManageService.updateByPrimaryKeySelective(planManage);
- if(rows > 0) {
- return new AjaxMessage<>(ResultStatus.OK);
- }
- return new AjaxMessage<>(ResultStatus.ERROR);
- }
- }
|