From 60afc1c228318d136a273cd0b389217f87583277 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 11 十月 2025 11:29:33 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java | 141 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 102 insertions(+), 39 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 cd68061..192d1eb 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,11 @@ 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.model.*; import com.ruoyi.system.query.ApprovalDetailQuery; 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; @@ -145,6 +109,9 @@ @Resource private AssetMainService assetMainService; @Resource + + private AssetInventoryRecordService assetInventoryRecordService; + @Resource private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; @Resource private OaApprovalApplicationReimbursementService approvalApplicationReimbursementService; @@ -229,6 +196,8 @@ List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); for (OaApprovalApplications approvalApplication : approvalApplications) { ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); + approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); + approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); switch (approvalTodoVO.getApprovalCategory()){ case 1: @@ -260,17 +229,25 @@ case 5: OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId()); if (oaApprovalApplicationPurchase!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationPurchase.getTitle()); + approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount()); } break; case 6: OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId()); if (oaApprovalApplicationStorage!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationStorage.getTitle()); + approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType()); } break; case 7: StringBuilder temp = new StringBuilder(); + OaApprovalApplicationAsset oaApprovalApplicationAsset = approvalApplicationAssetMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAsset!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAsset.getTitle()); + } List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId()); if (oaApprovalApplicationAssetItems!=null){ for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) { @@ -290,24 +267,32 @@ case 8: OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId()); if (oaApprovalApplicationAssetOut!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAssetOut.getTitle()); + approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime()); } break; case 9: OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId()); if (oaApprovalApplicationAssetBack!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle()); + approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate()); } break; case 10: OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId()); if (oaApprovalApplicationDispose!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationDispose.getTitle()); + approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType()); } break; case 11: OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId()); if (oaApprovalApplicationChange!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationChange.getTitle()); + Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId(); TDept tDept = deptMap.get(ownershipDeptId); if (tDept!=null){ @@ -318,12 +303,14 @@ case 12: OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId()); if (oaApprovalApplicationReimbursement!=null){ + approvalTodoVO.setType(oaApprovalApplicationReimbursement.getType()); approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount()); } break; case 13: OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId()); if (oaApprovalApplicationMoney!=null){ + approvalTodoVO.setProjectName(oaApprovalApplicationMoney.getProjectName()); approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount()); approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription()); @@ -332,6 +319,8 @@ case 15: OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId()); if (oaApprovalApplicationPayment!=null){ + // todo 当前阶段没有项目id 后续完善 + approvalTodoVO.setProjectName("项目名称"); approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount()); approvalTodoVO.setDescription(approvalApplication.getApplicationReason()); @@ -340,6 +329,7 @@ case 17: OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); if (oaApprovalApplicationAdvertisement!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); } @@ -407,6 +397,8 @@ List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); for (OaApprovalApplications approvalApplication : approvalApplications) { ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); + approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); + approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); switch (approvalTodoVO.getApprovalCategory()){ case 1: @@ -438,17 +430,25 @@ case 5: OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId()); if (oaApprovalApplicationPurchase!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationPurchase.getTitle()); + approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount()); } break; case 6: OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId()); if (oaApprovalApplicationStorage!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationStorage.getTitle()); + approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType()); } break; case 7: StringBuilder temp = new StringBuilder(); + OaApprovalApplicationAsset oaApprovalApplicationAsset = approvalApplicationAssetMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAsset!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAsset.getTitle()); + } List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId()); if (oaApprovalApplicationAssetItems!=null){ for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) { @@ -468,24 +468,32 @@ case 8: OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId()); if (oaApprovalApplicationAssetOut!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAssetOut.getTitle()); + approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime()); } break; case 9: OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId()); if (oaApprovalApplicationAssetBack!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle()); + approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate()); } break; case 10: OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId()); if (oaApprovalApplicationDispose!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationDispose.getTitle()); + approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType()); } break; case 11: OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId()); if (oaApprovalApplicationChange!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationChange.getTitle()); + Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId(); TDept tDept = deptMap.get(ownershipDeptId); if (tDept!=null){ @@ -496,12 +504,14 @@ case 12: OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId()); if (oaApprovalApplicationReimbursement!=null){ + approvalTodoVO.setType(oaApprovalApplicationReimbursement.getType()); approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount()); } break; case 13: OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId()); if (oaApprovalApplicationMoney!=null){ + approvalTodoVO.setProjectName(oaApprovalApplicationMoney.getProjectName()); approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount()); approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription()); @@ -510,6 +520,8 @@ case 15: OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId()); if (oaApprovalApplicationPayment!=null){ + // todo 当前阶段没有项目id 后续完善 + approvalTodoVO.setProjectName("项目名称"); approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount()); approvalTodoVO.setDescription(approvalApplication.getApplicationReason()); @@ -518,6 +530,7 @@ case 17: OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); if (oaApprovalApplicationAdvertisement!=null){ + approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); } @@ -589,20 +602,49 @@ List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list(); switch (approval.getApprovalCategory()) { + case 9: + // 借用归还资产条数 + List<OaApprovalApplicationAssetItem> back = approvalApplicationAssetItemService.lambdaQuery() + .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()) + .list(); + // 借用资产条数 + OaApprovalApplicationAsset borrowApplications = approvalApplicationAssetService.lambdaQuery() + .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalApplicationAssetItem> borrow = approvalApplicationAssetItemService.lambdaQuery() + .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, borrowApplications.getId()) + .list(); + if (back.size()==borrow.size()){ + borrowApplications.setReturnStatus(2); + }else if (!back.isEmpty()){ + borrowApplications.setReturnStatus(1); + }else{ + 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); @@ -611,6 +653,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("不为最后一个审批节点"); // 生成下一个节点的待办事项 @@ -629,6 +679,19 @@ } } return R.ok(); + } + private void saveAssetRecord(Integer type, String approvalType,List<Integer> assetMainIds) { + List<AssetInventoryRecord> res = new ArrayList<>(); + Map<Integer, Integer> warehouseMap = assetMainService.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