TApproveMaintenanceController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. package com.ruoyi.project.intact.controller;
  2. import java.text.SimpleDateFormat;
  3. import java.util.*;
  4. import com.alibaba.fastjson.JSON;
  5. import com.ruoyi.project.approve.damain.DevTask;
  6. import com.ruoyi.project.intact.domain.TIntactGyl;
  7. import com.ruoyi.project.intact.domain.TIntactYsj;
  8. import com.ruoyi.project.intact.service.*;
  9. import com.ruoyi.project.sems.domain.*;
  10. import com.ruoyi.project.sems.his.domain.*;
  11. import org.activiti.engine.*;
  12. import org.activiti.engine.impl.identity.Authentication;
  13. import org.activiti.engine.runtime.ProcessInstance;
  14. import org.activiti.engine.task.Task;
  15. import org.apache.poi.ss.formula.functions.T;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.GetMapping;
  19. import org.springframework.web.bind.annotation.PostMapping;
  20. import org.springframework.web.bind.annotation.PutMapping;
  21. import org.springframework.web.bind.annotation.DeleteMapping;
  22. import org.springframework.web.bind.annotation.PathVariable;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import com.ruoyi.framework.aspectj.lang.annotation.Log;
  27. import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  28. import com.ruoyi.project.intact.domain.TApproveMaintenance;
  29. import com.ruoyi.framework.web.controller.BaseController;
  30. import com.ruoyi.framework.web.domain.AjaxResult;
  31. import com.ruoyi.common.utils.poi.ExcelUtil;
  32. import com.ruoyi.framework.web.page.TableDataInfo;
  33. /**
  34. * 设备完整性维修申请Controller
  35. *
  36. * @author ruoyi
  37. * @date 2022-06-27
  38. */
  39. @RestController
  40. @RequestMapping("/intact/maintenance")
  41. public class TApproveMaintenanceController extends BaseController
  42. {
  43. @Autowired
  44. private ITApproveMaintenanceService tApproveMaintenanceService;
  45. @Autowired
  46. private RuntimeService runtimeService;
  47. @Autowired
  48. private HistoryService historyService;
  49. @Autowired
  50. private TaskService taskService;
  51. @Autowired
  52. private ITIntactGylService gylService;
  53. @Autowired
  54. private ITIntactYsjService ysjService;
  55. @Autowired
  56. private ITIntactGjService gjService;
  57. @Autowired
  58. private ITIntactPumpService pumpService;
  59. /**
  60. * 查询设备完整性维修申请列表
  61. */
  62. @PreAuthorize("@ss.hasPermi('intact:maintenance:list')")
  63. @GetMapping("/list")
  64. public TableDataInfo list(TApproveMaintenance tApproveMaintenance)
  65. {
  66. startPage();
  67. List<TApproveMaintenance> list = tApproveMaintenanceService.selectTApproveMaintenanceList(tApproveMaintenance);
  68. return getDataTable(list);
  69. }
  70. /**
  71. * 导出设备完整性维修申请列表
  72. */
  73. @PreAuthorize("@ss.hasPermi('intact:maintenance:export')")
  74. @Log(title = "设备完整性维修申请", businessType = BusinessType.EXPORT)
  75. @GetMapping("/export")
  76. public AjaxResult export(TApproveMaintenance tApproveMaintenance)
  77. {
  78. List<TApproveMaintenance> list = tApproveMaintenanceService.selectTApproveMaintenanceList(tApproveMaintenance);
  79. ExcelUtil<TApproveMaintenance> util = new ExcelUtil<TApproveMaintenance>(TApproveMaintenance.class);
  80. return util.exportExcel(list, "maintenance");
  81. }
  82. /**
  83. * 获取设备完整性维修申请详细信息
  84. */
  85. @PreAuthorize("@ss.hasPermi('intact:maintenance:query')")
  86. @GetMapping(value = "/{id}")
  87. public AjaxResult getInfo(@PathVariable("id") Long id)
  88. {
  89. return AjaxResult.success(tApproveMaintenanceService.selectTApproveMaintenanceById(id));
  90. }
  91. /**
  92. * 获取特种设备变更申请详细信息
  93. */
  94. @GetMapping(value = "info/{id}")
  95. public AjaxResult info(@PathVariable("id") Long id)
  96. {
  97. TApproveMaintenance tApprove = tApproveMaintenanceService.selectTApproveMaintenanceById(id);
  98. String[] ids;
  99. ids = tApprove.getDevId().split(",");
  100. List<Object> devList = new ArrayList<>();
  101. switch (Integer.parseInt(tApprove.getDevType().toString())) {
  102. case 1:
  103. for (String i : ids
  104. ) {
  105. TIntactGyl gylEntity = gylService.getById(i);
  106. devList.add(gylEntity);
  107. }
  108. break;
  109. case 2:
  110. for (String i : ids
  111. ) {
  112. TIntactYsj ysjEntity = ysjService.getById(i);
  113. devList.add(ysjEntity);
  114. }
  115. break;
  116. // case 3:
  117. // for (String i : ids
  118. // ) {
  119. // TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
  120. // devList.add(dzsbEntity);
  121. // }
  122. // break;
  123. // case 4:
  124. // for (String i : ids
  125. // ) {
  126. // TSpecdevGl glEntity = tSpecdevGlService.getById(i);
  127. // devList.add(glEntity);
  128. // }
  129. // break;
  130. default:
  131. break;
  132. }
  133. tApprove.setDevList(devList);
  134. return AjaxResult.success(tApprove);
  135. }
  136. /**
  137. * 新增设备完整性维修申请
  138. */
  139. // @PreAuthorize("@ss.hasPermi('intact:maintenance:add')")
  140. @Log(title = "设备完整性维修申请", businessType = BusinessType.INSERT)
  141. @PostMapping
  142. public AjaxResult add(@RequestBody TApproveMaintenance tApproveMaintenance)
  143. {
  144. Long userid = getUserId();
  145. tApproveMaintenance.setUserId(userid);
  146. // tApproveSpecModify.setApNo(tApproveSpecModify.getHisId().toString());
  147. //审批编号
  148. Date dt = new Date();
  149. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
  150. String data = sdf.format(dt) + userid;
  151. tApproveMaintenance.setApNo(data);
  152. //
  153. Authentication.setAuthenticatedUserId(userid.toString());
  154. tApproveMaintenanceService.insertTApproveMaintenance(tApproveMaintenance);
  155. long bussniseeKey = tApproveMaintenance.getId();
  156. String[] ids;
  157. ids = tApproveMaintenance.getDevId().split(",");
  158. switch (Integer.parseInt(tApproveMaintenance.getDevType().toString())){
  159. case 1:
  160. for (String i : ids
  161. ) {
  162. TIntactGyl gylEntity = gylService.getById(i);
  163. // gylEntity.setApproveStatus(tApproveMaintenance.getApproveType()+ 19);
  164. gylEntity.setApproveTime(new Date());
  165. gylService.updateById(gylEntity);
  166. }
  167. break;
  168. case 2:
  169. for (String i : ids
  170. ) {
  171. TIntactYsj ysjEntity = ysjService.getById(i);
  172. // ylgdEntity.setApproveStatus(tApproveSpecModify.getApproveType() + 19);
  173. ysjEntity.setApproveTime(new Date());
  174. ysjService.updateById(ysjEntity);
  175. }
  176. break;
  177. // case 3:
  178. // for (String i : ids
  179. // ) {
  180. // TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
  181. // dzsbEntity.setApproveStatus(tApproveSpecModify.getApproveType()+ 19);
  182. // dzsbEntity.setApproveTime(new Date());
  183. // tSpecdevDzsbService.updateById(dzsbEntity);
  184. // }
  185. // break;
  186. // case 4:
  187. // for (String i : ids
  188. // ) {
  189. // TSpecdevGl glEntity = tSpecdevGlService.getById(i);
  190. // glEntity.setApproveStatus(tApproveSpecModify.getApproveType()+ 19);
  191. // glEntity.setApproveTime(new Date());
  192. // tSpecdevGlService.updateById(glEntity);
  193. // }
  194. // break;
  195. default:
  196. break;
  197. }
  198. //开始工作流、监听
  199. Map<String, Object> variables = new HashMap<>();
  200. variables.put("applyUser", userid.toString());
  201. variables.put("wxjlusers", tApproveMaintenance.getWxjl());
  202. //采用key来启动流程定义并设置流程变量,返回流程实例
  203. ProcessInstance pi = runtimeService.startProcessInstanceByKey("maintenance", String.valueOf(bussniseeKey), variables);
  204. logger.info("流程部署id:" + pi.getDeploymentId());
  205. logger.info("流程定义id:" + pi.getProcessDefinitionId());
  206. logger.info("流程实例id:" + pi.getProcessInstanceId());
  207. tApproveMaintenance.setProcessId(pi.getProcessInstanceId());
  208. tApproveMaintenanceService.updateTApproveMaintenance(tApproveMaintenance);
  209. return AjaxResult.success();
  210. }
  211. @Log(title = "设备完整性维修审核处理", businessType = BusinessType.UPDATE)
  212. @PutMapping("/handle")
  213. public AjaxResult handle(@RequestBody DevTask devTask) {
  214. //流程审批意见
  215. String symbol= "";
  216. if (devTask.getComment() != "") {
  217. symbol = ",";
  218. }
  219. //使用任务服务完成任务(提交任务)
  220. String taskId = devTask.getTaskId();
  221. // 使用任务id,获取任务对象,获取流程实例id
  222. Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
  223. //利用任务对象,获取流程实例id
  224. String processInstancesId = task.getProcessInstanceId();
  225. TApproveMaintenance tApproveMaintenance = tApproveMaintenanceService.selectTApproveMaintenanceById(Long.parseLong(devTask.getBusinessKey()));
  226. if (devTask.getCondition().equals("1")) {
  227. devTask.setComment("通过" + symbol + devTask.getComment());
  228. tApproveMaintenance.setStatus(1L);
  229. }else if (devTask.getCondition().equals("0")) {
  230. devTask.setComment("未通过" + symbol + devTask.getComment());
  231. tApproveMaintenance.setStatus(2L);
  232. }
  233. String[] ids;
  234. ids = tApproveMaintenance.getDevId().split(",");
  235. switch (Integer.parseInt(tApproveMaintenance.getDevType().toString())){
  236. case 1://修改工业炉台账
  237. for (String i : ids
  238. ) {
  239. TIntactGyl gylEntity = gylService.getById(i);
  240. gylEntity.setApproveStatus(0L);
  241. gylService.updateById(gylEntity);
  242. tApproveMaintenanceService.updateTApproveMaintenance(tApproveMaintenance);
  243. }
  244. break;
  245. // case 2://修改压力管道台账
  246. // for (String i : ids
  247. // ) {
  248. //
  249. // }
  250. // break;
  251. // case 3:
  252. // for (String i : ids
  253. // ) {
  254. //
  255. // }
  256. // break;
  257. // case 4:
  258. // for (String i : ids
  259. // ) {
  260. //
  261. // }
  262. // break;
  263. default:
  264. break;
  265. }
  266. Map<String, Object> param = new HashMap<>();
  267. param.put("condition", devTask.getCondition());
  268. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  269. TaskService taskService = processEngine.getTaskService();
  270. //认领任务
  271. processEngine.getTaskService()
  272. .claim(taskId, getUserId().toString());
  273. taskService.addComment(taskId, processInstancesId, devTask.getComment());
  274. taskService.complete(taskId, param);
  275. return AjaxResult.success();
  276. }
  277. /**
  278. * 修改设备完整性维修申请
  279. */
  280. @PreAuthorize("@ss.hasPermi('intact:maintenance:edit')")
  281. @Log(title = "设备完整性维修申请", businessType = BusinessType.UPDATE)
  282. @PutMapping
  283. public AjaxResult edit(@RequestBody TApproveMaintenance tApproveMaintenance)
  284. {
  285. return toAjax(tApproveMaintenanceService.updateTApproveMaintenance(tApproveMaintenance));
  286. }
  287. /**
  288. * 删除设备完整性维修申请
  289. */
  290. @PreAuthorize("@ss.hasPermi('intact:maintenance:remove')")
  291. @Log(title = "设备完整性维修申请", businessType = BusinessType.DELETE)
  292. @DeleteMapping("/{ids}")
  293. public AjaxResult remove(@PathVariable Long[] ids)
  294. {
  295. return toAjax(tApproveMaintenanceService.deleteTApproveMaintenanceByIds(ids));
  296. }
  297. }