无关风月
2 天以前 60afc1c228318d136a273cd0b389217f87583277
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationDisposeServiceImpl.java
@@ -1,11 +1,11 @@
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.constants.ApprovalApplicationCodePrefix;
import com.ruoyi.system.dto.asset.OaApprovalApplicationDisposeDTO;
import com.ruoyi.system.emums.ApprovalStatusEnum;
import com.ruoyi.system.emums.ApprovalTypeEnum;
@@ -30,7 +30,6 @@
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;
@@ -62,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);
@@ -95,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());
@@ -118,18 +116,6 @@
            throw new ServiceException("未找到有效的审批流程配置");
        }
        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