| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- package com.template.controller;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.template.api.ApplicationProcedureTemporaryControllerAPI;
- import com.template.model.dto.AppletApprovalProcessDto;
- import com.template.model.dto.ApplicationProcedureTemporaryDto;
- import com.template.model.dto.ApprovalProcessDto;
- import com.template.model.pojo.AdminMenu;
- import com.template.model.pojo.ApplicationProcedureSetting;
- import com.template.model.pojo.ApplicationProcedureTemporary;
- import com.template.model.pojo.PermissionSetting;
- import com.template.model.result.CommonResult;
- import com.template.model.result.PageUtils;
- import com.template.model.vo.ApplicationProcedureTemporaryVo;
- import com.template.services.AdminMenuService;
- import com.template.services.ApplicationProcedureSettingService;
- import com.template.services.ApplicationProcedureTemporaryService;
- import com.template.services.PermissionSettingService;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RestController;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author ceshi
- * @since 2024-03-05
- */
- @RestController
- public class ApplicationProcedureTemporaryController implements ApplicationProcedureTemporaryControllerAPI {
- @Autowired
- ApplicationProcedureTemporaryService applicationProcedureTemporaryService;
- @Autowired
- ApplicationProcedureSettingService applicationProcedureSettingService;
- @Autowired
- PermissionSettingService permissionSettingService;
- @Autowired
- AdminMenuService adminMenuService;
- @Override
- public CommonResult save(ApplicationProcedureTemporaryDto applicationProcedureDto) {
- if (ObjectUtils.isEmpty(applicationProcedureDto)) {
- return CommonResult.fail();
- }
- Integer usersId = applicationProcedureDto.getUsersId();
- // 一个人在一个时间段内只能有一个待审批
- LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
- wrapper.eq(ApplicationProcedureTemporary::getStatus,1);
- applicationProcedureTemporaryService.list(wrapper);
- ApplicationProcedureTemporary applicationProcedure = new ApplicationProcedureTemporary();
- BeanUtils.copyProperties(applicationProcedureDto, applicationProcedure);
- // 待审核
- applicationProcedure.setStatus("1");
- DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- // 提交时间
- applicationProcedure.setSubmissionTime(LocalDateTime.now().format(dateTimeFormatter1));
- boolean save = applicationProcedureTemporaryService.save(applicationProcedure);
- if (save) {
- return CommonResult.ok();
- }
- return CommonResult.fail();
- }
- @Override
- public CommonResult list( int adminMenuId, String submissionStartTime, String submissionEndTime, String examineAndApproveStartTime, String examineAndApproveEndTime, String type, String department, String key, int page, int size) {
- PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
- if (ObjectUtils.isEmpty(permissionSetting)) {
- return CommonResult.fail("非法进入");
- }
- // 判断该用户是否拥有权限
- String processManagement = permissionSetting.getProcessManagement();
- if (!"0".equals(processManagement) && !processManagement.contains("5")) {
- return CommonResult.fail("此账号暂无该权限");
- }
- if (ObjectUtils.isEmpty(page) || page <= 0) {
- page = 1;
- }
- if (ObjectUtils.isEmpty(size) || size <= 0) {
- size = 10;
- }
- List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
- ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
- String approverType = applicationProcedureSetting.getApproverType();
- Integer adminMenuId1 = permissionSetting.getAdminMenuId();
- AdminMenu byId = adminMenuService.getById(adminMenuId1);
- Integer parentId = byId.getParentId();
- PageUtils<ApplicationProcedureTemporaryVo> pageList=null;
- //审批一次,角色等级不为0
- if ("1".equals(approverType)) {
- if (parentId!=0) {
- return CommonResult.ok("无审批权限");
- }else {
- pageList=applicationProcedureTemporaryService.pageList(submissionStartTime,submissionEndTime,examineAndApproveStartTime,examineAndApproveEndTime,type,department,key,page,size);
- return CommonResult.ok(pageList);
- }
- }
- if (parentId==0) {
- // 全部则是没有待审批的全部
- if (ObjectUtils.isEmpty(type)) {
- type="0,2,3";
- }
- pageList=applicationProcedureTemporaryService.parentPageList(submissionStartTime,submissionEndTime,examineAndApproveStartTime,examineAndApproveEndTime,type,department,key,page,size);
- return CommonResult.ok(pageList);
- }
- pageList=applicationProcedureTemporaryService.pageList(submissionStartTime,submissionEndTime,examineAndApproveStartTime,examineAndApproveEndTime,type,department,key,page,size);
- return CommonResult.ok(pageList);
- }
- @Override
- public CommonResult update(ApprovalProcessDto approvalProcessDto) {
- int adminMenuId = approvalProcessDto.getAdminMenuId();
- PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
- if (ObjectUtils.isEmpty(permissionSetting)) {
- return CommonResult.fail("非法进入");
- }
- // 判断该用户是否拥有权限
- // 判断该用户是否拥有权限
- String processManagement = permissionSetting.getProcessManagement();
- if (!"0".equals(processManagement) && !processManagement.contains("3")&& !processManagement.contains("4")) {
- return CommonResult.fail("此账号暂无该权限");
- }
- int id = approvalProcessDto.getId();
- String status = approvalProcessDto.getStatus();
- String adminId = approvalProcessDto.getAdminId();
- String remark = approvalProcessDto.getRemark();
- ApplicationProcedureTemporary applicationProcedure = applicationProcedureTemporaryService.getById(id);
- if (ObjectUtils.isEmpty(applicationProcedure)) {
- return CommonResult.fail("参数异常");
- }
- String applicationProcedureStatus = applicationProcedure.getStatus();
- if ("0".equals(applicationProcedureStatus)||"3".equals(applicationProcedureStatus)) {
- return CommonResult.fail("已审批,无需再次审批");
- }
- // 判断是什么审核模式
- List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
- ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
- String approverType = applicationProcedureSetting.getApproverType();
- // 审核人
- Integer adminMenuId1 = permissionSetting.getAdminMenuId();
- AdminMenu byId = adminMenuService.getById(adminMenuId1);
- // 角色等级
- Integer parentId = byId.getParentId();
- DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- // 当只需要审核一次
- if ("1".equals(approverType)) {
- if ("1".equals(status)) {
- status="3";
- }
- applicationProcedure.setStatus(status);
- applicationProcedure.setApproverId(adminId);
- // 审批时间
- applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
- // 审批备注
- applicationProcedure.setExamineAndApproveRemark(remark);
- applicationProcedureTemporaryService.updateById(applicationProcedure);
- return CommonResult.ok();
- }
- // 当为最高审批人
- if (parentId==0) {
- // 先判断是否已经被审批了
- if (!"2".equals(applicationProcedureStatus)) {
- // 当不是处理中时则无法审批
- return CommonResult.fail("当前无法审批");
- }
- if ("1".equals(status)) {
- status="3";
- }
- applicationProcedure.setStatus(status);
- applicationProcedure.setApproverId(adminId);
- // 审批时间
- applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
- // 审批备注
- applicationProcedure.setExamineAndApproveRemark(remark);
- applicationProcedureTemporaryService.updateById(applicationProcedure);
- return CommonResult.ok();
- }
- if ("1".equals(status)) {
- status="2";
- }
- applicationProcedure.setStatus(status);
- applicationProcedure.setSecondaryApproverId(adminId);
- // 审批时间
- applicationProcedure.setSecondaryExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
- // 审批备注
- applicationProcedure.setSecondaryExamineAndApproveRemark(remark);
- applicationProcedureTemporaryService.updateById(applicationProcedure);
- return CommonResult.ok();
- }
- @Override
- public CommonResult appletUpdate(AppletApprovalProcessDto appletApprovalProcessDto) {
- int id = appletApprovalProcessDto.getId();
- String status = appletApprovalProcessDto.getStatus();
- String adminMenuId = appletApprovalProcessDto.getAdminMenuId();
- String remark = appletApprovalProcessDto.getRemark();
- String adminId = appletApprovalProcessDto.getAdminId();
- // 判断对应的管理端是否有权限
- if (ObjectUtils.isEmpty(adminMenuId)&&ObjectUtils.isEmpty(adminId)) {
- return CommonResult.fail("无审批权限");
- }
- PermissionSetting permissionSetting = permissionSettingService.getMenuPermissionSetting(adminMenuId);
- if (ObjectUtils.isEmpty(permissionSetting)) {
- return CommonResult.fail("无审批权限");
- }
- String processManagement = permissionSetting.getProcessManagement();
- if (!"0".equals(processManagement) && !processManagement.contains("3")&& !processManagement.contains("4")) {
- return CommonResult.fail("此账号暂无该权限");
- }
- ApplicationProcedureTemporary applicationProcedure = applicationProcedureTemporaryService.getById(id);
- if (ObjectUtils.isEmpty(applicationProcedure)) {
- return CommonResult.fail("参数异常");
- }
- String applicationProcedureStatus = applicationProcedure.getStatus();
- if ("0".equals(applicationProcedureStatus)||"3".equals(applicationProcedureStatus)) {
- return CommonResult.fail("已审批,无需再次审批");
- }
- // 判断是什么审核模式
- List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
- ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
- String approverType = applicationProcedureSetting.getApproverType();
- AdminMenu byId = adminMenuService.getById(adminMenuId);
- // 角色等级
- Integer parentId = byId.getParentId();
- DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- // 当只需要审核一次
- if ("1".equals(approverType)) {
- if ("1".equals(status)) {
- status="3";
- }
- applicationProcedure.setStatus(status);
- applicationProcedure.setApproverId(adminId);
- // 审批时间
- applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
- // 审批备注
- applicationProcedure.setExamineAndApproveRemark(remark);
- applicationProcedureTemporaryService.updateById(applicationProcedure);
- return CommonResult.ok();
- }
- // 当为最高审批人
- if (parentId==0) {
- // 先判断是否已经被审批了
- if (!"2".equals(applicationProcedureStatus)) {
- // 当不是处理中时则无法审批
- return CommonResult.fail("当前无法审批");
- }
- if ("1".equals(status)) {
- status="3";
- }
- applicationProcedure.setStatus(status);
- applicationProcedure.setApproverId(adminId);
- // 审批时间
- applicationProcedure.setExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
- // 审批备注
- applicationProcedure.setExamineAndApproveRemark(remark);
- applicationProcedureTemporaryService.updateById(applicationProcedure);
- return CommonResult.ok();
- }
- if ("1".equals(status)) {
- status="2";
- }
- applicationProcedure.setStatus(status);
- applicationProcedure.setSecondaryApproverId(adminId);
- // 审批时间
- applicationProcedure.setSecondaryExamineAndApproveTime(LocalDateTime.now().format(dateTimeFormatter1));
- // 审批备注
- applicationProcedure.setSecondaryExamineAndApproveRemark(remark);
- applicationProcedureTemporaryService.updateById(applicationProcedure);
- return CommonResult.ok();
- }
- @Override
- public CommonResult appletList(int adminMenuId,String startTime, String endTime, String status,int page, int size) {
- if (ObjectUtils.isEmpty(page) || page <= 0) {
- page = 1;
- }
- if (ObjectUtils.isEmpty(size) || size <= 0) {
- size = 10;
- }
- List<ApplicationProcedureSetting> list = applicationProcedureSettingService.list(new LambdaQueryWrapper<>());
- ApplicationProcedureSetting applicationProcedureSetting = list.get(0);
- String approverType = applicationProcedureSetting.getApproverType();
- AdminMenu byId = adminMenuService.getById(adminMenuId);
- Integer parentId = byId.getParentId();
- IPage<ApplicationProcedureTemporary> pageList=null;
- //审批一次,角色等级不为0
- if ("1".equals(approverType)) {
- if (parentId!=0) {
- return CommonResult.ok("无审批权限");
- }else {
- LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
- wrapper.eq(ObjectUtils.isNotEmpty(status),ApplicationProcedureTemporary::getStatus,status)
- .between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),ApplicationProcedureTemporary::getSubmissionTime,startTime,endTime)
- .orderByDesc(ApplicationProcedureTemporary::getSubmissionTime);
- pageList=applicationProcedureTemporaryService.page(new Page<>(page,size),wrapper);
- return CommonResult.ok(pageList);
- }
- }
- if (parentId==0) {
- LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
- // 全部则是没有待审批的全部
- if (ObjectUtils.isEmpty(status)) {
- ArrayList<String> strings = new ArrayList<>();
- strings.add("0");
- strings.add("2");
- strings.add("3");
- wrapper.in(ApplicationProcedureTemporary::getStatus,strings);
- }else {
- wrapper.eq(ApplicationProcedureTemporary::getStatus,status);
- }
- wrapper.between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),ApplicationProcedureTemporary::getSubmissionTime,startTime,endTime)
- .orderByDesc(ApplicationProcedureTemporary::getSubmissionTime);
- pageList=applicationProcedureTemporaryService.page(new Page<>(page,size),wrapper);
- return CommonResult.ok(pageList);
- }
- LambdaQueryWrapper<ApplicationProcedureTemporary> wrapper=new LambdaQueryWrapper<>();
- wrapper.eq(ObjectUtils.isNotEmpty(status),ApplicationProcedureTemporary::getStatus,status)
- .between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),ApplicationProcedureTemporary::getSubmissionTime,startTime,endTime)
- .orderByDesc(ApplicationProcedureTemporary::getSubmissionTime);
- pageList=applicationProcedureTemporaryService.page(new Page<>(page,size),wrapper);
- return CommonResult.ok(pageList);
- }
- }
|