| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | |
| | | 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()); |
| | |
| | | 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 |