From 2b82b1e1d31671b8581d2e463ad762bdf63dad30 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 17 十月 2025 16:43:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java | 136 ++++++++++++++++++-------------------------- 1 files changed, 56 insertions(+), 80 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java index 549aa10..6f23f78 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java @@ -11,47 +11,10 @@ import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AuditDTO; import com.ruoyi.system.emums.ApprovalTypeEnum; -import com.ruoyi.system.model.AssetMain; -import com.ruoyi.system.model.AssetType; -import com.ruoyi.system.model.OaApproval; -import com.ruoyi.system.model.OaApprovalApplicationAdvertisement; -import com.ruoyi.system.model.OaApprovalApplicationAsset; -import com.ruoyi.system.model.OaApprovalApplicationAssetItem; -import com.ruoyi.system.model.OaApprovalApplicationAttendance; -import com.ruoyi.system.model.OaApprovalApplicationChange; -import com.ruoyi.system.model.OaApprovalApplicationContract; -import com.ruoyi.system.model.OaApprovalApplicationDispose; -import com.ruoyi.system.model.OaApprovalApplicationMoney; -import com.ruoyi.system.model.OaApprovalApplicationPayment; -import com.ruoyi.system.model.OaApprovalApplicationPurchase; -import com.ruoyi.system.model.OaApprovalApplicationReimbursement; -import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem; -import com.ruoyi.system.model.OaApprovalApplicationStorage; -import com.ruoyi.system.model.OaApprovalApplications; -import com.ruoyi.system.model.OaApprovalFlowAudit; -import com.ruoyi.system.model.OaApprovalFlowNode; -import com.ruoyi.system.model.OaApprovalTodo; -import com.ruoyi.system.query.ApprovalDetailQuery; +import com.ruoyi.system.model.*; import com.ruoyi.system.query.ApprovalTodoListQuery; -import com.ruoyi.system.service.AssetMainService; -import com.ruoyi.system.service.AssetTypeService; -import com.ruoyi.system.service.ISysUserService; -import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService; -import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; -import com.ruoyi.system.service.OaApprovalApplicationAssetService; -import com.ruoyi.system.service.OaApprovalApplicationAttendanceService; -import com.ruoyi.system.service.OaApprovalApplicationChangeService; -import com.ruoyi.system.service.OaApprovalApplicationContactService; -import com.ruoyi.system.service.OaApprovalApplicationContractService; -import com.ruoyi.system.service.OaApprovalApplicationDisposeService; -import com.ruoyi.system.service.OaApprovalApplicationMoneyService; -import com.ruoyi.system.service.OaApprovalApplicationPaymentService; -import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService; -import com.ruoyi.system.service.OaApprovalApplicationPurchaseService; -import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService; -import com.ruoyi.system.service.OaApprovalApplicationReimbursementService; -import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; -import com.ruoyi.system.service.OaApprovalApplicationStorageService; +import com.ruoyi.system.service.*; + import com.ruoyi.system.service.OaApprovalApplicationsService; import com.ruoyi.system.service.OaApprovalFlowAuditService; import com.ruoyi.system.service.OaApprovalFlowNodeService; @@ -59,35 +22,12 @@ import com.ruoyi.system.service.OaApprovalService; import com.ruoyi.system.service.OaApprovalTodoService; import com.ruoyi.system.service.TDeptService; -import com.ruoyi.system.vo.AdvertisementDetailVO; -import com.ruoyi.system.vo.ApprovalFlowNodeListVO; import com.ruoyi.system.vo.ApprovalTodoVO; -import com.ruoyi.system.vo.BackDetailVO; -import com.ruoyi.system.vo.BorrowDetailVO; -import com.ruoyi.system.vo.BusinessTripDetailVO; -import com.ruoyi.system.vo.ChangeDetailVO; -import com.ruoyi.system.vo.ContactDetailVO; -import com.ruoyi.system.vo.ContractDetailVO; -import com.ruoyi.system.vo.DisposeDetailVO; -import com.ruoyi.system.vo.GrabDetailVO; -import com.ruoyi.system.vo.GrabListVO; -import com.ruoyi.system.vo.LeaveDestroyDetailVO; -import com.ruoyi.system.vo.LeaveDetailVO; -import com.ruoyi.system.vo.MoneyDetailVO; -import com.ruoyi.system.vo.OutDetailVO; -import com.ruoyi.system.vo.PaymentDetailVO; -import com.ruoyi.system.vo.PurchaseDetailVO; -import com.ruoyi.system.vo.PurchaseListVO; -import com.ruoyi.system.vo.ReimbursementDetailVO; -import com.ruoyi.system.vo.StorageDetailVO; -import com.ruoyi.system.vo.StorageListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -133,7 +73,7 @@ @Resource private OaApprovalApplicationsService approvalApplicationsService; @Resource - private OaApprovalApplicationAdvertisementService approvalApplicationAdvertisementService; + private OaApprovalApplicationAdService approvalApplicationAdvertisementService; @Resource private OaApprovalApplicationContactService approvalApplicationContactService; @Resource @@ -144,6 +84,9 @@ private OaApprovalApplicationMoneyService approvalApplicationMoneyService; @Resource private AssetMainService assetMainService; + @Resource + + private AssetInventoryRecordService assetInventoryRecordService; @Resource private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; @Resource @@ -215,9 +158,9 @@ Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery() .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list() .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId)); - Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery() - .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list() - .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery() + .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e)); Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery() .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list() .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e)); @@ -229,6 +172,7 @@ List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); for (OaApprovalApplications approvalApplication : approvalApplications) { ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); + approvalTodoVO.setReason(approvalApplication.getReason()); approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); @@ -360,11 +304,11 @@ } break; case 17: - OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); - if (oaApprovalApplicationAdvertisement!=null){ - approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); - approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); - approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); + OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAd !=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle()); + approvalTodoVO.setContent(oaApprovalApplicationAd.getContent()); + approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount()); } break; } @@ -416,9 +360,9 @@ Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery() .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list() .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId)); - Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery() - .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list() - .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery() + .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e)); Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery() .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list() .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e)); @@ -430,6 +374,7 @@ List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); for (OaApprovalApplications approvalApplication : approvalApplications) { ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); + approvalTodoVO.setReason(approvalApplication.getReason()); approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); @@ -561,11 +506,11 @@ } break; case 17: - OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); - if (oaApprovalApplicationAdvertisement!=null){ - approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); - approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); - approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); + OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAd !=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle()); + approvalTodoVO.setContent(oaApprovalApplicationAd.getContent()); + approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount()); } break; } @@ -601,6 +546,7 @@ if (dto.getApprovalStatus() == 0) { // 中断审批流程 approvalApplications.setApprovalStatus(3); + approvalApplications.setReason(dto.getReason()); approvalApplicationsService.updateById(approvalApplications); // 删除除当前审批人该申请单的未处理的所有待办 approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>() @@ -655,20 +601,29 @@ borrowApplications.setReturnStatus(0); } approvalApplicationAssetService.updateById(borrowApplications); + saveAssetRecord(0,ApprovalTypeEnum.RETURN.getDesc(),back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId) + .collect(Collectors.toList())); + case 10: assetMains.forEach(assetMain -> { assetMain.setDisposed(1); }); + saveAssetRecord(null,ApprovalTypeEnum.ASSET_DISPOSE.getDesc(),assetMains + .stream().map(AssetMain::getId).collect(Collectors.toList())); break; case 7: assetMains.forEach(assetMain -> { assetMain.setInUse(1); }); + saveAssetRecord(1,ApprovalTypeEnum.GRAB.getDesc(),assetMains + .stream().map(AssetMain::getId).collect(Collectors.toList())); break; default: assetMains.forEach(assetMain -> { assetMain.setBorrowed(1); }); + saveAssetRecord(1,ApprovalTypeEnum.BORROW.getDesc(),assetMains + .stream().map(AssetMain::getId).collect(Collectors.toList())); break; } assetMainService.updateBatchById(assetMains); @@ -677,6 +632,14 @@ if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) { assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId()); } + // 资产变更 + if (approval.getApprovalCategory().equals(ApprovalTypeEnum.ASSET_CHANGE.getCode())) { + List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery() + .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list(); + List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); + saveAssetRecord(1,ApprovalTypeEnum.ASSET_CHANGE.getDesc(),AssetMainIds); + } + } else { log.info("不为最后一个审批节点"); // 生成下一个节点的待办事项 @@ -695,6 +658,19 @@ } } return R.ok(); + } + private void saveAssetRecord(Integer type, String approvalType,List<Integer> assetMainIds) { + List<AssetInventoryRecord> res = new ArrayList<>(); + Map<Integer, Integer> warehouseMap = assetMainService.lambdaQuery().isNotNull(AssetMain::getWarehouseId).list().stream().collect(Collectors.toMap(AssetMain::getId, AssetMain::getWarehouseId)); + for (Integer assetMainId : assetMainIds) { + AssetInventoryRecord assetInventoryRecord = new AssetInventoryRecord(); + assetInventoryRecord.setAssetMainId(assetMainId); + assetInventoryRecord.setWarehouseId(warehouseMap.get(assetMainId)); + assetInventoryRecord.setType(type); + assetInventoryRecord.setRemarks(approvalType); + res.add(assetInventoryRecord); + } + assetInventoryRecordService.saveBatch(res); } } -- Gitblit v1.7.1