TPssrOverhaulPipeController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. package com.ruoyi.project.pssr.controller;
  2. import com.ruoyi.common.utils.StringUtils;
  3. import com.ruoyi.common.utils.poi.ExcelUtil;
  4. import com.ruoyi.framework.aspectj.lang.annotation.Log;
  5. import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  6. import com.ruoyi.framework.web.controller.BaseController;
  7. import com.ruoyi.framework.web.domain.AjaxResult;
  8. import com.ruoyi.framework.web.page.TableDataInfo;
  9. import com.ruoyi.project.pssr.domain.TPssrApprove;
  10. import com.ruoyi.project.pssr.domain.TPssrOverhaulExchanger;
  11. import com.ruoyi.project.pssr.domain.TPssrOverhaulPipe;
  12. import com.ruoyi.project.pssr.domain.TPssrSubcontent;
  13. import com.ruoyi.project.pssr.service.ITPssrApproveService;
  14. import com.ruoyi.project.pssr.service.ITPssrOverhaulExchangerService;
  15. import com.ruoyi.project.pssr.service.ITPssrOverhaulPipeService;
  16. import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
  17. import org.activiti.engine.HistoryService;
  18. import org.activiti.engine.RuntimeService;
  19. import org.activiti.engine.impl.identity.Authentication;
  20. import org.activiti.engine.runtime.ProcessInstance;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.security.access.prepost.PreAuthorize;
  23. import org.springframework.web.bind.annotation.*;
  24. import java.util.*;
  25. /**
  26. * 检修项目-管线Controller
  27. *
  28. * @author ssy
  29. * @date 2024-09-18
  30. */
  31. @RestController
  32. @RequestMapping("/pssr/overhaulPipe")
  33. public class TPssrOverhaulPipeController extends BaseController {
  34. @Autowired
  35. private ITPssrOverhaulPipeService tPssrOverhaulPipeService;
  36. @Autowired
  37. private ITPssrOverhaulExchangerService tPssrOverhaulExchangerService;
  38. @Autowired
  39. private ITPssrApproveService tPssrApproveService;
  40. @Autowired
  41. private RuntimeService runtimeService;
  42. @Autowired
  43. private HistoryService historyService;
  44. @Autowired
  45. private ITPssrSubcontentService tPssrSubcontentService;
  46. @PutMapping("/turnDownPipe")
  47. public AjaxResult turnDownPipe(@RequestBody TPssrOverhaulPipe tPssrOverhaulPipe) {
  48. if (tPssrOverhaulPipe.getIds() != null) {
  49. String userId = getUserId().toString();
  50. // 修改已选择数据的状态
  51. for (Long id : tPssrOverhaulPipe.getIds()) {
  52. TPssrOverhaulPipe blind = new TPssrOverhaulPipe();
  53. blind.setId(id);
  54. blind.setApproveStatus(1L);
  55. blind.setUpdatedate(new Date());
  56. blind.setUpdaterCode(getUserId().toString());
  57. tPssrOverhaulPipeService.updateTPssrOverhaulPipe(blind);
  58. }
  59. // 查询当前流程
  60. TPssrApprove approve = tPssrApproveService.selectTPssrApproveBySubId(tPssrOverhaulPipe.getSubId());
  61. try {
  62. runtimeService.deleteProcessInstance(approve.getProcessId(), "pssr1confirm");
  63. historyService.deleteHistoricProcessInstance(approve.getProcessId());
  64. } catch (Exception e) {
  65. logger.info("无运行时流程");
  66. }
  67. // 驳回 查询所有待审批的人员
  68. //查询所有确认人
  69. TPssrOverhaulExchanger exchanger = new TPssrOverhaulExchanger();
  70. exchanger.setSubId(approve.getSubId());
  71. exchanger.setApproveStatus(1L);
  72. TPssrOverhaulExchanger overhaul = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(exchanger);
  73. String confirmers = null;
  74. if (overhaul != null) {
  75. confirmers = overhaul.getConfirmedPerson();
  76. }
  77. logger.info("=======================confirmers:{}", confirmers);
  78. Set<String> confirmUsers1 = new HashSet<>();
  79. if (StringUtils.isNotEmpty(confirmers)) {
  80. confirmUsers1.addAll(Arrays.asList(confirmers.split(",")));
  81. }
  82. // 开始申请流程
  83. long businessKey = approve.getApproveId();
  84. //开始工作流、监听
  85. Authentication.setAuthenticatedUserId(userId);//设置当前申请人
  86. Map<String, Object> variables = new HashMap<>();
  87. variables.put("applyUser", userId);
  88. variables.put("confirmUsers", new ArrayList<>(confirmUsers1));
  89. variables.put("chargePerson", approve.getSubCharge());
  90. //采用key来启动流程定义并设置流程变量,返回流程实例
  91. ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr1confirm", String.valueOf(businessKey), variables);
  92. // 修改审批表和sub表
  93. approve.setProcessId(pi.getProcessInstanceId());
  94. approve.setApproveStatus(1L);
  95. approve.setUpdatedate(new Date());
  96. approve.setUpdaterCode(getUserId().toString());
  97. tPssrApproveService.updateTPssrApprove(approve);
  98. TPssrSubcontent subcontent = new TPssrSubcontent();
  99. subcontent.setId(approve.getSubId());
  100. subcontent.setApproveStatus(1L);
  101. subcontent.setUpdatedate(new Date());
  102. subcontent.setUpdaterCode(getUserId().toString());
  103. tPssrSubcontentService.updateTPssrSubcontent(subcontent);
  104. return AjaxResult.success();
  105. }
  106. return AjaxResult.error();
  107. }
  108. /**
  109. * 查询检修项目-管线列表
  110. */
  111. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:list')")
  112. @GetMapping("/list")
  113. public TableDataInfo list(TPssrOverhaulPipe tPssrOverhaulPipe) {
  114. if ("1".equals(tPssrOverhaulPipe.getConfirmer())) {
  115. tPssrOverhaulPipe.setConfirmer(getUserId().toString());
  116. }
  117. startPage();
  118. List<TPssrOverhaulPipe> list = tPssrOverhaulPipeService.selectTPssrOverhaulPipeList(tPssrOverhaulPipe);
  119. return getDataTable(list);
  120. }
  121. /**
  122. * 导出检修项目-管线列表
  123. */
  124. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:export')")
  125. @Log(title = "检修项目-管线", businessType = BusinessType.EXPORT)
  126. @GetMapping("/export")
  127. public AjaxResult export(TPssrOverhaulPipe tPssrOverhaulPipe) {
  128. List<TPssrOverhaulPipe> list = tPssrOverhaulPipeService.selectTPssrOverhaulPipeList(tPssrOverhaulPipe);
  129. ExcelUtil<TPssrOverhaulPipe> util = new ExcelUtil<TPssrOverhaulPipe>(TPssrOverhaulPipe.class);
  130. return util.exportExcel(list, "overhaulPipe");
  131. }
  132. /**
  133. * 获取检修项目-管线详细信息
  134. */
  135. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:query')")
  136. @GetMapping(value = "/{id}")
  137. public AjaxResult getInfo(@PathVariable("id") Long id) {
  138. return AjaxResult.success(tPssrOverhaulPipeService.selectTPssrOverhaulPipeById(id));
  139. }
  140. /**
  141. * 新增检修项目-管线
  142. */
  143. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:add')")
  144. @Log(title = "检修项目-管线", businessType = BusinessType.INSERT)
  145. @PostMapping
  146. public AjaxResult add(@RequestBody TPssrOverhaulPipe tPssrOverhaulPipe) {
  147. tPssrOverhaulPipe.setApproveStatus(0L);
  148. return toAjax(tPssrOverhaulPipeService.insertTPssrOverhaulPipe(tPssrOverhaulPipe));
  149. }
  150. /**
  151. * 修改检修项目-管线
  152. */
  153. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:edit')")
  154. @Log(title = "检修项目-管线", businessType = BusinessType.UPDATE)
  155. @PutMapping
  156. public AjaxResult edit(@RequestBody TPssrOverhaulPipe tPssrOverhaulPipe) {
  157. return toAjax(tPssrOverhaulPipeService.updateTPssrOverhaulPipe(tPssrOverhaulPipe));
  158. }
  159. /**
  160. * 删除检修项目-管线
  161. */
  162. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:remove')")
  163. @Log(title = "检修项目-管线", businessType = BusinessType.DELETE)
  164. @DeleteMapping("/{ids}")
  165. public AjaxResult remove(@PathVariable Long[] ids) {
  166. return toAjax(tPssrOverhaulPipeService.deleteTPssrOverhaulPipeByIds(ids));
  167. }
  168. @PreAuthorize("@ss.hasPermi('pssr:overhaulPipe:edit')")
  169. @Log(title = "检修项目-管线", businessType = BusinessType.UPDATE)
  170. @PutMapping("/confirmPipe")
  171. public AjaxResult confirmPipe(@RequestBody TPssrOverhaulPipe tPssrOverhaulPipe) {
  172. if (tPssrOverhaulPipe.getIds() != null && tPssrOverhaulPipe.getIds().length > 0) {
  173. for (Long id : tPssrOverhaulPipe.getIds()) {
  174. TPssrOverhaulPipe pipe = tPssrOverhaulPipeService.selectTPssrOverhaulPipeById(id);
  175. if (pipe.getConfirmationDate() == null) {
  176. pipe.setConfirmationDate(new Date());
  177. }
  178. pipe.setApproveStatus(2L);
  179. pipe.setUpdatedate(new Date());
  180. pipe.setUpdaterCode(String.valueOf(getUserId()));
  181. tPssrOverhaulPipeService.updateTPssrOverhaulPipe(pipe);
  182. }
  183. } else {
  184. TPssrOverhaulPipe pipe = new TPssrOverhaulPipe();
  185. pipe.setSubId(tPssrOverhaulPipe.getSubId());
  186. pipe.setConfirmer(getUserId().toString());
  187. pipe.setApproveStatus(1L);
  188. for (TPssrOverhaulPipe overhaulPipe : tPssrOverhaulPipeService.selectTPssrOverhaulPipeList(pipe)) {
  189. if (overhaulPipe.getConfirmationDate() == null) {
  190. overhaulPipe.setConfirmationDate(new Date());
  191. }
  192. overhaulPipe.setApproveStatus(2L);
  193. overhaulPipe.setUpdatedate(new Date());
  194. overhaulPipe.setUpdaterCode(String.valueOf(getUserId()));
  195. tPssrOverhaulPipeService.updateTPssrOverhaulPipe(overhaulPipe);
  196. }
  197. }
  198. //查询当前待审批的确认人
  199. TPssrOverhaulExchanger entity = new TPssrOverhaulExchanger();
  200. entity.setSubId(tPssrOverhaulPipe.getSubId());
  201. entity.setApproveStatus(1L);
  202. TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
  203. if (exchanger != null) {
  204. String confirmedPerson = exchanger.getConfirmedPerson();
  205. logger.info("===========confirmedPerson:{}", confirmedPerson);
  206. //如果当前用户还有待审批任务
  207. if (confirmedPerson.contains(getUserId().toString())) {
  208. return AjaxResult.success();
  209. }
  210. }
  211. //无待审批任务结束当前用户流程
  212. TPssrApprove approve = new TPssrApprove();
  213. approve.setSubId(tPssrOverhaulPipe.getSubId());
  214. // 因为流程关系所以approve一定会有且只有一条数据
  215. TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
  216. TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
  217. return AjaxResult.success();
  218. }
  219. }