ApplicationProcedureController.java 17 KB

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