PlanManageController.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package com.huaxu.task.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.huaxu.model.AjaxMessage;
  5. import com.huaxu.model.LoginUser;
  6. import com.huaxu.model.Pagination;
  7. import com.huaxu.model.ResultStatus;
  8. import com.huaxu.process.entity.ProcessDefinition;
  9. import com.huaxu.process.service.WorkFlowService;
  10. import com.huaxu.task.dto.PlanManageDto;
  11. import com.huaxu.task.entity.PlanManage;
  12. import com.huaxu.task.service.PlanManageService;
  13. import com.huaxu.util.DatesUtil;
  14. import com.huaxu.util.UserUtil;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import io.swagger.annotations.ApiParam;
  18. import org.activiti.engine.task.Task;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.util.StringUtils;
  21. import org.springframework.web.bind.annotation.*;
  22. import java.util.Date;
  23. import java.util.HashMap;
  24. import java.util.Map;
  25. import java.util.Set;
  26. @RestController
  27. @RequestMapping("/workflow/task/")
  28. @Api(tags = "计划管理")
  29. public class PlanManageController {
  30. @Autowired
  31. PlanManageService planManageService;
  32. @Autowired
  33. WorkFlowService workFlowService;
  34. /**
  35. * 新增巡检计划
  36. * @param planName 任务名称
  37. * @param taskType 任务类型
  38. * @param planStartDate 计划开始时间
  39. * @param planEndDate 计划结束时间
  40. * @param userId 计划巡检人ID
  41. * @param taskContent 任务内容
  42. * @param taskAreaShape 任务区域坐标
  43. * @param taskAreaName 任务区域名称
  44. * @return
  45. */
  46. @PostMapping("/plan/add")
  47. @ApiOperation(value = "新增巡检计划")
  48. public AjaxMessage addPlan(@ApiParam(value = "任务名称", required = true) @RequestParam(required = true) String planName,
  49. @ApiParam(value = "任务类型", required = true) @RequestParam(required = true) Integer taskType,
  50. @ApiParam(value = "计划开始时间", required = true) @RequestParam(required = true) String planStartDate,
  51. @ApiParam(value = "计划结束时间", required = true) @RequestParam(required = true) String planEndDate,
  52. @ApiParam(value = "计划巡检人ID", required = true) @RequestParam(required = true) String userId,
  53. @ApiParam(value = "任务内容", required = true) @RequestParam(required = true) String taskContent,
  54. @ApiParam(value = "任务区域坐标", required = true) @RequestParam(required = true) String taskAreaShape,
  55. @ApiParam(value = "任务区域名称", required = true) @RequestParam(required = true) String taskAreaName) {
  56. LoginUser loginUser = UserUtil.getCurrentUser();
  57. String planId=DatesUtil.formatDate(new Date(),"yyyyMMddHHmmss")+String.valueOf((int) (Math.random()*(9999-1000)+1000));
  58. PlanManage record = new PlanManage();
  59. record.setUserId(userId);
  60. record.setPlanId(planId);
  61. record.setPlanName(planName);
  62. record.setTaskType(taskType);
  63. record.setPlanStartDate(DatesUtil.parseDate(planStartDate,"yyyy-MM-dd HH:mm:ss"));
  64. record.setPlanEndDate(DatesUtil.parseDate(planEndDate,"yyyy-MM-dd HH:mm:ss"));
  65. record.setUserId(userId);
  66. record.setTaskContent(taskContent);
  67. record.setTaskAreaShape(taskAreaShape);
  68. record.setTaskAreaName(taskAreaName);
  69. record.setDateCreate(DatesUtil.parseDate(DatesUtil.formatNow(),"yyyy-MM-dd HH:mm:ss"));
  70. if(loginUser.getId() != null) {
  71. record.setPlanUserId(loginUser.getId().toString());
  72. record.setCreateBy(loginUser.getId().toString());
  73. }
  74. if(loginUser.getTenantId() != null) {
  75. record.setTenantId(loginUser.getTenantId());
  76. }
  77. int rows = planManageService.insertSelective(record);
  78. if(rows > 0) {
  79. return new AjaxMessage(ResultStatus.OK);
  80. }
  81. return new AjaxMessage(ResultStatus.ERROR);
  82. }
  83. @GetMapping("/plan/select")
  84. @ApiOperation(value = "查询巡检计划")
  85. public AjaxMessage<Pagination<PlanManageDto>> selectPlan(
  86. @ApiParam(value = "页数", required = true)@RequestParam Integer pageNum,
  87. @ApiParam(value = "条数", required = true)@RequestParam Integer pageSize,
  88. @ApiParam(value = "计划单号或计划名称", required = true) @RequestParam(required = false) String key,
  89. @ApiParam(value = "计划安排起始日期", required = true) @RequestParam(required = false) String startDate,
  90. @ApiParam(value = "计划安排截至日期", required = true) @RequestParam(required = false) String endDate){
  91. PlanManageDto planManageDto = new PlanManageDto();
  92. //根据用户编号,获取用户的权限
  93. LoginUser loginUser = UserUtil.getCurrentUser();
  94. planManageDto.setKey(key);
  95. if(!StringUtils.isEmpty(startDate)&& !StringUtils.isEmpty(endDate)) {
  96. planManageDto.setStartDate(startDate);
  97. planManageDto.setEndDate(endDate);
  98. }
  99. planManageDto.setTenantId(loginUser.getTenantId());
  100. planManageDto.setProgramItems(loginUser.getProgramItemList());
  101. planManageDto.setUserType(loginUser.getType());
  102. //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
  103. planManageDto.setPermissonType(loginUser.getPermissonType());
  104. IPage<PlanManageDto> iPage = new Page<>(pageNum, pageSize);
  105. iPage = planManageService.selectPage(iPage, planManageDto);
  106. Pagination<PlanManageDto> pages = new Pagination<>(iPage);
  107. for(PlanManage plan : pages.getList()){
  108. //plan.setCompanyOrgName(orgInfoUtil.getOrgName(plan.getCompanyOrgId()));
  109. //plan.setDeptOrgName(orgInfoUtil.getOrgName(plan.getDeptOrgId()));
  110. }
  111. return new AjaxMessage<>(ResultStatus.OK, pages);
  112. }
  113. @PostMapping("/plan/submit")
  114. @ApiOperation(value = "提交巡检计划")
  115. public AjaxMessage submitPlan(
  116. @ApiParam(value = "计划单号", required = true) @RequestParam(required = false) Integer id){
  117. LoginUser loginUser = UserUtil.getCurrentUser();
  118. PlanManage planManage = planManageService.selectByPrimaryKey(id);
  119. //测试数据 test1 1 1
  120. // ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
  121. // loginUser.getTenantId(),
  122. // loginUser.getCompanyId(),
  123. // planManage.getTaskType());
  124. ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
  125. "test1",
  126. 1,
  127. 1);
  128. Map<String,Object> vars = new HashMap<>();
  129. vars.put("assineeFormUserId",planManage.getUserId());
  130. //巡检发送系统消息所需参数
  131. vars.put("任务类型",planManage.getTaskType());
  132. vars.put("任务编号",planManage.getPlanId());
  133. vars.put("templateId",4);
  134. vars.put("msgType",4);
  135. String startProcess = workFlowService.startProcess(processDefinition,vars);
  136. Task task = workFlowService.getProcessRuntimeTask(startProcess).get(0);
  137. Set<String> taskParticipator = workFlowService.getTaskParticipator(task.getId(),false,null);
  138. //更新计划表的流程相关字段值。
  139. planManage.setPlanStatus(1);//已执行
  140. planManage.setUpdateBy(loginUser.getId().toString());
  141. planManage.setDateUpdate(new Date());
  142. planManage.setProcessInstanceId("");
  143. planManage.setProcessDefId("");
  144. planManage.setCurrentTaskId("");
  145. planManage.setCurrentUsers("");
  146. planManage.setCurrentTaskName("");
  147. int rows = planManageService.updateByPrimaryKeySelective(planManage);
  148. if(rows > 0) {
  149. return new AjaxMessage<>(ResultStatus.OK);
  150. }
  151. return new AjaxMessage<>(ResultStatus.ERROR);
  152. }
  153. }