From 9d1a18030d8f82aa264d1378186eb00c31c9af20 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 25 九月 2025 09:36:47 +0800 Subject: [PATCH] 审批流程bug修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java | 95 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 83 insertions(+), 12 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java index 78be207..42d146d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java @@ -6,21 +6,50 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.dto.*; -import com.ruoyi.system.emums.ApprovalFlowNodeEnum; +import com.ruoyi.system.dto.AddAdvertisementDTO; +import com.ruoyi.system.dto.AddBusinessTripDTO; +import com.ruoyi.system.dto.AddContactDTO; +import com.ruoyi.system.dto.AddContractDTO; +import com.ruoyi.system.dto.AddLeaveDTO; +import com.ruoyi.system.dto.AddLeaveDestroyDTO; +import com.ruoyi.system.dto.AddMoneyDTO; +import com.ruoyi.system.dto.AddOutDTO; +import com.ruoyi.system.dto.AddPaymentDTO; +import com.ruoyi.system.dto.AddReimbursementDTO; +import com.ruoyi.system.emums.ApprovalStatusEnum; import com.ruoyi.system.emums.ApprovalTypeEnum; -import com.ruoyi.system.model.*; -import com.ruoyi.system.service.*; +import com.ruoyi.system.model.OaApprovalApplicationAdvertisement; +import com.ruoyi.system.model.OaApprovalApplicationAttendance; +import com.ruoyi.system.model.OaApprovalApplicationContact; +import com.ruoyi.system.model.OaApprovalApplicationContract; +import com.ruoyi.system.model.OaApprovalApplicationMoney; +import com.ruoyi.system.model.OaApprovalApplicationPayment; +import com.ruoyi.system.model.OaApprovalApplicationReimbursement; +import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem; +import com.ruoyi.system.model.OaApprovalApplications; +import com.ruoyi.system.model.OaApprovalFlowNode; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService; +import com.ruoyi.system.service.OaApprovalApplicationAttendanceService; +import com.ruoyi.system.service.OaApprovalApplicationContactService; +import com.ruoyi.system.service.OaApprovalApplicationContractService; +import com.ruoyi.system.service.OaApprovalApplicationMoneyService; +import com.ruoyi.system.service.OaApprovalApplicationPaymentService; +import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService; +import com.ruoyi.system.service.OaApprovalApplicationReimbursementService; +import com.ruoyi.system.service.OaApprovalApplicationsService; +import com.ruoyi.system.service.OaApprovalFlowNodeService; +import com.ruoyi.system.service.OaApprovalService; +import com.ruoyi.system.service.OaApprovalTodoService; +import com.ruoyi.system.service.TDeptService; import com.ruoyi.system.utils.UUIDUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import oshi.driver.mac.net.NetStat; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; @@ -75,6 +104,7 @@ @Resource private OaApprovalTodoService oaApprovalTodoService; @Log(title = "审批-发起请假", businessType = BusinessType.INSERT) + @Transactional @ApiOperation(value = "发起请假") @PostMapping(value = "/addLeave") public R addLeave(@RequestBody AddLeaveDTO dto) { @@ -143,6 +173,7 @@ @Log(title = "审批-发起外出申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起外出申请") @PostMapping(value = "/addOut") + @Transactional public R addOut(@RequestBody AddOutDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String code = "Out-"+sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); @@ -207,6 +238,7 @@ } @Log(title = "审批-发起出差申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起出差申请") + @Transactional @PostMapping(value = "/addBusinessTrip") public R addBusinessTrip(@RequestBody AddBusinessTripDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -271,6 +303,7 @@ } @Log(title = "审批-发起销假申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起销假申请") + @Transactional @PostMapping(value = "/addLeaveDestroy") public R addLeaveDestroy(@RequestBody AddLeaveDestroyDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -311,8 +344,8 @@ // 根据请假时间 查询请假申请记录 OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() .in(OaApprovalApplicationAttendance::getApprovalApplicationId,approvalIds) - .ge(OaApprovalApplicationAttendance::getStartTime, dto.getStartTime()) - .le(OaApprovalApplicationAttendance::getEndTime, dto.getEndTime()) + .le(OaApprovalApplicationAttendance::getStartTime, dto.getStartTime()) + .ge(OaApprovalApplicationAttendance::getEndTime, dto.getEndTime()) .eq(OaApprovalApplicationAttendance::getIsLeave, 1) .orderByDesc(OaApprovalApplicationAttendance::getId) .last("limit 1").one(); @@ -332,9 +365,24 @@ Integer.valueOf(sysUser.getDeptId())); return R.ok(); } - + @ApiOperation(value = "查询当前用户审批通过且未销假的请假单") + @GetMapping(value = "/listLeaveApplications") + public R<List<OaApprovalApplicationAttendance>> listLeaveApplications() { + List<Integer> applicationsIds = approvalApplicationsService.lambdaQuery() + .eq(OaApprovalApplications::getApprovalId, ApprovalTypeEnum.LEAVE.getCode()) + .eq(OaApprovalApplications::getApplicantUserId, tokenService.getLoginUser().getUserId()) + .eq(OaApprovalApplications::getApprovalStatus, 2) + .list().stream().map(OaApprovalApplications::getId).collect(Collectors.toList()); + if (applicationsIds.isEmpty()){ + return R.ok(new ArrayList<>()); + } + List<OaApprovalApplicationAttendance> list = approvalApplicationAttendanceService.lambdaQuery() + .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationsIds).list(); + return R.ok(list); + } @Log(title = "审批-发起报销申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起报销申请") + @Transactional @PostMapping(value = "/addReimbursement") public R addReimbursement(@RequestBody AddReimbursementDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -378,6 +426,7 @@ } @Log(title = "审批-发起款项申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起款项申请") + @Transactional @PostMapping(value = "/addMoney") public R addMoney(@RequestBody AddMoneyDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -413,6 +462,7 @@ @Log(title = "审批-发起合同文件申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起合同文件申请") @PostMapping(value = "/addContract") + @Transactional public R addContract(@RequestBody AddContractDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String code = "Contract-"+sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); @@ -449,6 +499,7 @@ } @Log(title = "审批-发起进度款支付申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起进度款支付申请") + @Transactional @PostMapping(value = "/addPayment") public R addPayment(@RequestBody AddPaymentDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -487,6 +538,7 @@ } @Log(title = "审批-发起内部联系单申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起内部联系单申请") + @Transactional @PostMapping(value = "/addContact") public R addContact(@RequestBody AddContactDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -522,6 +574,7 @@ } @Log(title = "审批-发起广告制作申请", businessType = BusinessType.INSERT) @ApiOperation(value = "发起广告制作申请") + @Transactional @PostMapping(value = "/addAdvertisement") public R addAdvertisement(@RequestBody AddAdvertisementDTO dto) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -561,5 +614,23 @@ Integer.valueOf(sysUser.getDeptId())); return R.ok(); } + + @Log(title = "审批-撤回通用审批单", businessType = BusinessType.UPDATE) + @ApiOperation(value = "撤回审批单(通用接口)") + @PutMapping(value = "/withdraw/{id}") + public R<?> withdraw(@PathVariable Integer id) { + OaApprovalApplications current = approvalApplicationsService.getById(id); + if (current == null) { + throw new ServiceException("审批单不存在"); + } + if (!ApprovalStatusEnum.PENDING.getCode().equals(current.getApprovalStatus())) { + throw new ServiceException("仅待审批状态可撤回"); + } + OaApprovalApplications update = new OaApprovalApplications(); + update.setId(id); + update.setApprovalStatus(ApprovalStatusEnum.CANCELED.getCode()); + approvalApplicationsService.updateById(update); + return R.ok(); + } } -- Gitblit v1.7.1