From f2f7b16dc78070bc37ad1a0d0ec3157c62287606 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 17 十月 2025 14:12:04 +0800
Subject: [PATCH] 项目管理代码生成,案件分类
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationDisposeServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 38 insertions(+), 20 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationDisposeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationDisposeServiceImpl.java
index edd5be5..d0c21e9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationDisposeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationDisposeServiceImpl.java
@@ -1,12 +1,12 @@
package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.system.dto.dispose.OaApprovalApplicationDisposeDTO;
+import com.ruoyi.system.constants.ApprovalApplicationCodePrefix;
+import com.ruoyi.system.dto.asset.OaApprovalApplicationDisposeDTO;
import com.ruoyi.system.emums.ApprovalStatusEnum;
import com.ruoyi.system.emums.ApprovalTypeEnum;
import com.ruoyi.system.mapper.OaApprovalApplicationDisposeMapper;
@@ -15,19 +15,22 @@
import com.ruoyi.system.model.OaApprovalApplications;
import com.ruoyi.system.model.OaApprovalFlowNode;
import com.ruoyi.system.query.OaApprovalApplicationDisposePageQuery;
+import com.ruoyi.system.service.AssetMainService;
import com.ruoyi.system.service.OaApprovalApplicationAssetItemService;
import com.ruoyi.system.service.OaApprovalApplicationDisposeService;
import com.ruoyi.system.service.OaApprovalApplicationsService;
import com.ruoyi.system.service.OaApprovalFlowNodeService;
import com.ruoyi.system.service.OaApprovalTodoService;
-import com.ruoyi.system.vo.dispose.OaApprovalApplicationDisposePageVO;
+import com.ruoyi.system.vo.asset.AssetMainVO;
+import com.ruoyi.system.vo.asset.OaApprovalApplicationDisposeDetailVO;
+import com.ruoyi.system.vo.asset.OaApprovalApplicationDisposePageVO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
+import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -47,6 +50,7 @@
private final OaApprovalFlowNodeService oaApprovalFlowNodeService;
private final OaApprovalTodoService oaApprovalTodoService;
private final OaApprovalApplicationAssetItemService oaApprovalApplicationAssetItemService;
+ private final AssetMainService assetMainService;
@Override
public IPage<OaApprovalApplicationDisposePageVO> getDisposePageList(OaApprovalApplicationDisposePageQuery pageQuery) {
@@ -57,9 +61,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void submitDispose(OaApprovalApplicationDisposeDTO dto) {
- if (CollUtil.isEmpty(dto.getAssetMainIds())) {
- throw new ServiceException("资产ID列表不能为空");
- }
+ //校验资产状态
+ oaApprovalApplicationAssetItemService.validateAssetStatus(dto.getAssetMainIds());
// 1. 构建并保存审批主表
OaApprovalApplications applications = buildOaApprovalApplications(dto);
@@ -90,7 +93,7 @@
private OaApprovalApplications buildOaApprovalApplications(OaApprovalApplicationDisposeDTO dto) {
OaApprovalApplications applications = BeanUtil.copyProperties(dto, OaApprovalApplications.class);
- applications.setApplicationCode(generateApplicationCode("CZ"));
+ applications.setApplicationCode(oaApprovalApplicationsService.generateApplicationCode(ApprovalApplicationCodePrefix.ASSET_DISPOSE));
applications.setApprovalId(ApprovalTypeEnum.ASSET_DISPOSE.getCode());
applications.setApplicationDate(LocalDate.now());
applications.setApprovalStatus(ApprovalStatusEnum.PENDING.getCode());
@@ -115,22 +118,37 @@
return flowNodes.get(0);
}
- /**
- * 生成申请单号:CZ + yyyyMMdd + 3位序号
- */
- private String generateApplicationCode(String prefix) {
- String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
- prefix = prefix + dateStr;
- Long count = oaApprovalApplicationsService.lambdaQuery()
- .like(OaApprovalApplications::getApplicationCode, prefix)
- .count();
- return prefix + String.format("%03d", count + 1);
- }
-
@Override
public void deleteByApplicationId(Integer applicationId) {
this.lambdaUpdate().eq(OaApprovalApplicationDispose::getApprovalApplicationId, applicationId).remove();
oaApprovalApplicationAssetItemService.lambdaUpdate().eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationId).remove();
oaApprovalApplicationsService.removeById(applicationId);
}
+
+ @Override
+ public OaApprovalApplicationDisposeDetailVO getDisposeDetail(Integer id) {
+ OaApprovalApplications app = oaApprovalApplicationsService.getById(id);
+ if (app == null) {
+ throw new ServiceException("审批主记录不存在");
+ }
+ OaApprovalApplicationDispose detail = this.lambdaQuery().eq(OaApprovalApplicationDispose::getApprovalApplicationId, app.getId()).one();
+ if (detail == null) {
+ throw new ServiceException("记录不存在");
+ }
+ oaApprovalApplicationsService.assembleApplicationDetail(app);
+ List<Integer> assetMainIds = oaApprovalApplicationAssetItemService.lambdaQuery()
+ .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, app.getId())
+ .list().stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+ .distinct().collect(Collectors.toList());
+
+ List<AssetMainVO> assetMainVOS = assetMainIds.isEmpty() ? Collections.emptyList() : assetMainService.getListByIds(assetMainIds);
+ OaApprovalApplicationDisposeDetailVO vo = BeanUtil.copyProperties(app, OaApprovalApplicationDisposeDetailVO.class);
+ vo.setTitle(detail.getTitle());
+ vo.setAssetTypeId(detail.getAssetTypeId());
+ vo.setDisposeTime(detail.getDisposeTime());
+ vo.setDisposeType(detail.getDisposeType());
+ vo.setDisposeTotalAmount(detail.getDisposeTotalAmount());
+ vo.setItems(assetMainVOS);
+ return vo;
+ }
}
--
Gitblit v1.7.1