ApplicationProcedureTemporaryController.java 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. package com.template.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.template.api.ApplicationProcedureTemporaryControllerAPI;
  7. import com.template.model.dto.AppletApprovalProcessDto;
  8. import com.template.model.dto.ApplicationProcedureTemporaryDto;
  9. import com.template.model.dto.ApprovalProcessDto;
  10. import com.template.model.pojo.AdminMenu;
  11. import com.template.model.pojo.ApplicationProcedureSetting;
  12. import com.template.model.pojo.ApplicationProcedureTemporary;
  13. import com.template.model.pojo.PermissionSetting;
  14. import com.template.model.result.CommonResult;
  15. import com.template.model.result.PageUtils;
  16. import com.template.model.vo.ApplicationProcedureTemporaryVo;
  17. import com.template.services.AdminMenuService;
  18. import com.template.services.ApplicationProcedureSettingService;
  19. import com.template.services.ApplicationProcedureTemporaryService;
  20. import com.template.services.PermissionSettingService;
  21. import org.springframework.beans.BeanUtils;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.web.bind.annotation.RestController;
  24. import java.time.LocalDateTime;
  25. import java.time.format.DateTimeFormatter;
  26. import java.util.ArrayList;
  27. import java.util.List;
  28. /**
  29. * <p>
  30. * 前端控制器
  31. * </p>
  32. *
  33. * @author ceshi
  34. * @since 2024-03-05
  35. */
  36. @RestController
  37. public class ApplicationProcedureTemporaryController implements ApplicationProcedureTemporaryControllerAPI {
  38. @Autowired
  39. ApplicationProcedureTemporaryService applicationProcedureTemporaryService;
  40. @Autowired
  41. ApplicationProcedureSettingService applicationProcedureSettingService;
  42. @Autowired
  43. PermissionSettingService permissionSettingService;
  44. @Autowired
  45. AdminMenuService adminMenuService;
  46. @Override
  47. public CommonResult save(ApplicationProcedureTemporaryDto applicationProcedureDto) {
  48. if (ObjectUtils.isEmpty(applicationProcedureDto)) {
  49. return CommonResult.fail();
  50. }
  51. Integer usersId = applicationProcedureDto.getUsersId();
  52. // 一个人在一个时间段内只能有一个待审批
  53. LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
  54. wrapper.eq(ApplicationProcedureTemporary::getStatus,1);
  55. applicationProcedureTemporaryService.list(wrapper);
  56. ApplicationProcedureTemporary applicationProcedure = new ApplicationProcedureTemporary();
  57. BeanUtils.copyProperties(applicationProcedureDto, applicationProcedure);
  58. // 待审核
  59. applicationProcedure.setStatus("1");
  60. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  61. // 提交时间
  62. applicationProcedure.setSubmissionTime(LocalDateTime.now().format(dateTimeFormatter1));
  63. boolean save = applicationProcedureTemporaryService.save(applicationProcedure);
  64. if (save) {
  65. return CommonResult.ok();
  66. }
  67. return CommonResult.fail();
  68. }
  69. @Override
  70. public CommonResult list( int adminMenuId, String submissionStartTime, String submissionEndTime, String examineAndApproveStartTime, String examineAndApproveEndTime, String type, String department, String key, int page, int size) {
  71. PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
  72. if (ObjectUtils.isEmpty(permissionSetting)) {
  73. return CommonResult.fail("非法进入");
  74. }
  75. // 判断该用户是否拥有权限
  76. String processManagement = permissionSetting.getProcessManagement();
  77. if (!"0".equals(processManagement) && !processManagement.contains("5")) {
  78. return CommonResult.fail("此账号暂无该权限");
  79. }
  80. if (ObjectUtils.isEmpty(page) || page <= 0) {
  81. page = 1;
  82. }
  83. if (ObjectUtils.isEmpty(size) || size <= 0) {
  84. size = 10;
  85. }
  86. List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
  87. ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
  88. String approverType = applicationProcedureSetting.getApproverType();
  89. Integer adminMenuId1 = permissionSetting.getAdminMenuId();
  90. AdminMenu byId = adminMenuService.getById(adminMenuId1);
  91. Integer parentId = byId.getParentId();
  92. PageUtils<ApplicationProcedureTemporaryVo> pageList=null;
  93. //审批一次,角色等级不为0
  94. if ("1".equals(approverType)) {
  95. if (parentId!=0) {
  96. return CommonResult.ok("无审批权限");
  97. }else {
  98. pageList=applicationProcedureTemporaryService.pageList(submissionStartTime,submissionEndTime,examineAndApproveStartTime,examineAndApproveEndTime,type,department,key,page,size);
  99. return CommonResult.ok(pageList);
  100. }
  101. }
  102. if (parentId==0) {
  103. // 全部则是没有待审批的全部
  104. if (ObjectUtils.isEmpty(type)) {
  105. type="0,2,3";
  106. }
  107. pageList=applicationProcedureTemporaryService.parentPageList(submissionStartTime,submissionEndTime,examineAndApproveStartTime,examineAndApproveEndTime,type,department,key,page,size);
  108. return CommonResult.ok(pageList);
  109. }
  110. pageList=applicationProcedureTemporaryService.pageList(submissionStartTime,submissionEndTime,examineAndApproveStartTime,examineAndApproveEndTime,type,department,key,page,size);
  111. return CommonResult.ok(pageList);
  112. }
  113. @Override
  114. public CommonResult update(ApprovalProcessDto approvalProcessDto) {
  115. int adminMenuId = approvalProcessDto.getAdminMenuId();
  116. PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
  117. if (ObjectUtils.isEmpty(permissionSetting)) {
  118. return CommonResult.fail("非法进入");
  119. }
  120. // 判断该用户是否拥有权限
  121. // 判断该用户是否拥有权限
  122. String processManagement = permissionSetting.getProcessManagement();
  123. if (!"0".equals(processManagement) && !processManagement.contains("3")&& !processManagement.contains("4")) {
  124. return CommonResult.fail("此账号暂无该权限");
  125. }
  126. int id = approvalProcessDto.getId();
  127. String status = approvalProcessDto.getStatus();
  128. String adminId = approvalProcessDto.getAdminId();
  129. String remark = approvalProcessDto.getRemark();
  130. ApplicationProcedureTemporary applicationProcedure = applicationProcedureTemporaryService.getById(id);
  131. if (ObjectUtils.isEmpty(applicationProcedure)) {
  132. return CommonResult.fail("参数异常");
  133. }
  134. String applicationProcedureStatus = applicationProcedure.getStatus();
  135. if ("0".equals(applicationProcedureStatus)||"3".equals(applicationProcedureStatus)) {
  136. return CommonResult.fail("已审批,无需再次审批");
  137. }
  138. // 判断是什么审核模式
  139. List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
  140. ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
  141. String approverType = applicationProcedureSetting.getApproverType();
  142. // 审核人
  143. Integer adminMenuId1 = permissionSetting.getAdminMenuId();
  144. AdminMenu byId = adminMenuService.getById(adminMenuId1);
  145. // 角色等级
  146. Integer parentId = byId.getParentId();
  147. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  148. // 当只需要审核一次
  149. if ("1".equals(approverType)) {
  150. if ("1".equals(status)) {
  151. status="3";
  152. }
  153. applicationProcedure.setStatus(status);
  154. applicationProcedure.setApproverId(adminId);
  155. // 审批时间
  156. applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
  157. // 审批备注
  158. applicationProcedure.setExamineAndApproveRemark(remark);
  159. applicationProcedureTemporaryService.updateById(applicationProcedure);
  160. return CommonResult.ok();
  161. }
  162. // 当为最高审批人
  163. if (parentId==0) {
  164. // 先判断是否已经被审批了
  165. if (!"2".equals(applicationProcedureStatus)) {
  166. // 当不是处理中时则无法审批
  167. return CommonResult.fail("当前无法审批");
  168. }
  169. if ("1".equals(status)) {
  170. status="3";
  171. }
  172. applicationProcedure.setStatus(status);
  173. applicationProcedure.setApproverId(adminId);
  174. // 审批时间
  175. applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
  176. // 审批备注
  177. applicationProcedure.setExamineAndApproveRemark(remark);
  178. applicationProcedureTemporaryService.updateById(applicationProcedure);
  179. return CommonResult.ok();
  180. }
  181. if ("1".equals(status)) {
  182. status="2";
  183. }
  184. applicationProcedure.setStatus(status);
  185. applicationProcedure.setSecondaryApproverId(adminId);
  186. // 审批时间
  187. applicationProcedure.setSecondaryExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
  188. // 审批备注
  189. applicationProcedure.setSecondaryExamineAndApproveRemark(remark);
  190. applicationProcedureTemporaryService.updateById(applicationProcedure);
  191. return CommonResult.ok();
  192. }
  193. @Override
  194. public CommonResult appletUpdate(AppletApprovalProcessDto appletApprovalProcessDto) {
  195. int id = appletApprovalProcessDto.getId();
  196. String status = appletApprovalProcessDto.getStatus();
  197. String adminMenuId = appletApprovalProcessDto.getAdminMenuId();
  198. String remark = appletApprovalProcessDto.getRemark();
  199. String adminId = appletApprovalProcessDto.getAdminId();
  200. // 判断对应的管理端是否有权限
  201. if (ObjectUtils.isEmpty(adminMenuId)&&ObjectUtils.isEmpty(adminId)) {
  202. return CommonResult.fail("无审批权限");
  203. }
  204. PermissionSetting permissionSetting = permissionSettingService.getMenuPermissionSetting(adminMenuId);
  205. if (ObjectUtils.isEmpty(permissionSetting)) {
  206. return CommonResult.fail("无审批权限");
  207. }
  208. String processManagement = permissionSetting.getProcessManagement();
  209. if (!"0".equals(processManagement) && !processManagement.contains("3")&& !processManagement.contains("4")) {
  210. return CommonResult.fail("此账号暂无该权限");
  211. }
  212. ApplicationProcedureTemporary applicationProcedure = applicationProcedureTemporaryService.getById(id);
  213. if (ObjectUtils.isEmpty(applicationProcedure)) {
  214. return CommonResult.fail("参数异常");
  215. }
  216. String applicationProcedureStatus = applicationProcedure.getStatus();
  217. if ("0".equals(applicationProcedureStatus)||"3".equals(applicationProcedureStatus)) {
  218. return CommonResult.fail("已审批,无需再次审批");
  219. }
  220. // 判断是什么审核模式
  221. List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
  222. ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
  223. String approverType = applicationProcedureSetting.getApproverType();
  224. AdminMenu byId = adminMenuService.getById(adminMenuId);
  225. // 角色等级
  226. Integer parentId = byId.getParentId();
  227. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  228. // 当只需要审核一次
  229. if ("1".equals(approverType)) {
  230. if ("1".equals(status)) {
  231. status="3";
  232. }
  233. applicationProcedure.setStatus(status);
  234. applicationProcedure.setApproverId(adminId);
  235. // 审批时间
  236. applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
  237. // 审批备注
  238. applicationProcedure.setExamineAndApproveRemark(remark);
  239. applicationProcedureTemporaryService.updateById(applicationProcedure);
  240. return CommonResult.ok();
  241. }
  242. // 当为最高审批人
  243. if (parentId==0) {
  244. // 先判断是否已经被审批了
  245. if (!"2".equals(applicationProcedureStatus)) {
  246. // 当不是处理中时则无法审批
  247. return CommonResult.fail("当前无法审批");
  248. }
  249. if ("1".equals(status)) {
  250. status="3";
  251. }
  252. applicationProcedure.setStatus(status);
  253. applicationProcedure.setApproverId(adminId);
  254. // 审批时间
  255. applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
  256. // 审批备注
  257. applicationProcedure.setExamineAndApproveRemark(remark);
  258. applicationProcedureTemporaryService.updateById(applicationProcedure);
  259. return CommonResult.ok();
  260. }
  261. if ("1".equals(status)) {
  262. status="2";
  263. }
  264. applicationProcedure.setStatus(status);
  265. applicationProcedure.setSecondaryApproverId(adminId);
  266. // 审批时间
  267. applicationProcedure.setSecondaryExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
  268. // 审批备注
  269. applicationProcedure.setSecondaryExamineAndApproveRemark(remark);
  270. applicationProcedureTemporaryService.updateById(applicationProcedure);
  271. return CommonResult.ok();
  272. }
  273. @Override
  274. public CommonResult appletList(int adminMenuId,String startTime, String endTime, String status,int page, int size) {
  275. if (ObjectUtils.isEmpty(page) || page <= 0) {
  276. page = 1;
  277. }
  278. if (ObjectUtils.isEmpty(size) || size <= 0) {
  279. size = 10;
  280. }
  281. List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
  282. ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
  283. String approverType = applicationProcedureSetting.getApproverType();
  284. AdminMenu byId = adminMenuService.getById(adminMenuId);
  285. Integer parentId = byId.getParentId();
  286. IPage<ApplicationProcedureTemporary> pageList=null;
  287. //审批一次,角色等级不为0
  288. if ("1".equals(approverType)) {
  289. if (parentId!=0) {
  290. return CommonResult.ok("无审批权限");
  291. }else {
  292. LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
  293. wrapper.eq(ObjectUtils.isNotEmpty(status),ApplicationProcedureTemporary::getStatus,status)
  294. .between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),ApplicationProcedureTemporary::getSubmissionTime,startTime,endTime)
  295. .orderByDesc(ApplicationProcedureTemporary::getSubmissionTime);
  296. pageList=applicationProcedureTemporaryService.page(new Page<>(page,size),wrapper);
  297. return CommonResult.ok(pageList);
  298. }
  299. }
  300. if (parentId==0) {
  301. LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
  302. // 全部则是没有待审批的全部
  303. if (ObjectUtils.isEmpty(status)) {
  304. ArrayList<String> strings = new ArrayList<>();
  305. strings.add("0");
  306. strings.add("2");
  307. strings.add("3");
  308. wrapper.in(ApplicationProcedureTemporary::getStatus,strings);
  309. }else {
  310. wrapper.eq(ApplicationProcedureTemporary::getStatus,status);
  311. }
  312. wrapper.between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),ApplicationProcedureTemporary::getSubmissionTime,startTime,endTime)
  313. .orderByDesc(ApplicationProcedureTemporary::getSubmissionTime);
  314. pageList=applicationProcedureTemporaryService.page(new Page<>(page,size),wrapper);
  315. return CommonResult.ok(pageList);
  316. }
  317. LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
  318. wrapper.eq(ObjectUtils.isNotEmpty(status),ApplicationProcedureTemporary::getStatus,status)
  319. .between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),ApplicationProcedureTemporary::getSubmissionTime,startTime,endTime)
  320. .orderByDesc(ApplicationProcedureTemporary::getSubmissionTime);
  321. pageList=applicationProcedureTemporaryService.page(new Page<>(page,size),wrapper);
  322. return CommonResult.ok(pageList);
  323. }
  324. }