|  |  |  | 
|---|
|  |  |  | 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.basic.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.common.core.domain.entity.TDept; | 
|---|
|  |  |  | import com.ruoyi.common.exception.ServiceException; | 
|---|
|  |  |  | import com.ruoyi.system.constants.ApprovalApplicationCodePrefix; | 
|---|
|  |  |  | import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageGeneralDTO; | 
|---|
|  |  |  | import com.ruoyi.system.dto.asset.OaApprovalApplicationStoragePropertyDTO; | 
|---|
|  |  |  | import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageVehicleDTO; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePropertyDetailVO; | 
|---|
|  |  |  | import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageVehicleDetailVO; | 
|---|
|  |  |  | import lombok.RequiredArgsConstructor; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.math.RoundingMode; | 
|---|
|  |  |  | import java.time.LocalDate; | 
|---|
|  |  |  | import java.time.format.DateTimeFormatter; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.Collections; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | 
|---|
|  |  |  | * 构建通用资产主表数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplicationStorageAsset buildAssetMain(OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageGeneralDTO baseDto) { | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset assetMain = new OaApprovalApplicationStorageAsset(); | 
|---|
|  |  |  | assetMain.setApprovalApplicationId(applicationId.intValue()); | 
|---|
|  |  |  | assetMain.setAssetOriginalCode(item.getAssetOriginalCode()); | 
|---|
|  |  |  | assetMain.setAssetName(item.getAssetName()); | 
|---|
|  |  |  | assetMain.setCategory(item.getCategory()); | 
|---|
|  |  |  | assetMain.setSpecificationModel(item.getSpecificationModel()); | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset assetMain = BeanUtil.copyProperties(item, OaApprovalApplicationStorageAsset.class); | 
|---|
|  |  |  | assetMain.setApprovalApplicationId(applicationId); | 
|---|
|  |  |  | assetMain.setAssetTypeId(assetTypeId); | 
|---|
|  |  |  | assetMain.setMeasurementUnit(item.getMeasurementUnit()); | 
|---|
|  |  |  | assetMain.setUnitPrice(item.getUnitPrice()); | 
|---|
|  |  |  | assetMain.setUsefulLife(item.getUsefulLife()); | 
|---|
|  |  |  | // 根据权属单位/部门名称填充ID | 
|---|
|  |  |  | if (item.getOwnershipDeptName() != null && !item.getOwnershipDeptName().isEmpty()) { | 
|---|
|  |  |  | TDept ownerDept = tDeptService.lambdaQuery() | 
|---|
|  |  |  | 
|---|
|  |  |  | assetMain.setOwnershipDeptId(ownerDept.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | assetMain.setUserName(item.getUserName()); | 
|---|
|  |  |  | // 根据整单 addressType 写入使用部门ID或仓库ID | 
|---|
|  |  |  | applyAddressToAssetMain(assetMain, item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); | 
|---|
|  |  |  | assetMain.setAddressType(item.getAddressType()); | 
|---|
|  |  |  | assetMain.setAssetMainType(AssetTypeEnum.GENERAL.getCode()); | 
|---|
|  |  |  | assetMain.setAssetStatus(item.getAssetStatus()); | 
|---|
|  |  |  | assetMain.setRemarks(item.getRemarks()); | 
|---|
|  |  |  | assetMain.setAccountingStatus(item.getAccountingStatus()); | 
|---|
|  |  |  | assetMain.setAccountingDate(item.getAccountingDate()); | 
|---|
|  |  |  | assetMain.setAccountingVoucherNo(item.getAccountingVoucherNo()); | 
|---|
|  |  |  | assetMain.setAccountingSubject(item.getAccountingSubject()); | 
|---|
|  |  |  | assetMain.setAccountingAmount(item.getAccountingAmount()); | 
|---|
|  |  |  | assetMain.setDisabled(false); | 
|---|
|  |  |  | return assetMain; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 构建房产资产主表数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplicationStorageAsset buildAssetMainFromProperty(OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStoragePropertyDTO baseDto) { | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset assetMain = new OaApprovalApplicationStorageAsset(); | 
|---|
|  |  |  | assetMain.setApprovalApplicationId(applicationId.intValue()); | 
|---|
|  |  |  | assetMain.setAssetOriginalCode(item.getAssetOriginalCode()); | 
|---|
|  |  |  | assetMain.setAssetName(item.getAssetName()); | 
|---|
|  |  |  | assetMain.setCategory(item.getCategory()); | 
|---|
|  |  |  | assetMain.setSpecificationModel(item.getSpecificationModel()); | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset assetMain = BeanUtil.copyProperties(item, OaApprovalApplicationStorageAsset.class); | 
|---|
|  |  |  | assetMain.setApprovalApplicationId(applicationId); | 
|---|
|  |  |  | assetMain.setAssetTypeId(assetTypeId); | 
|---|
|  |  |  | assetMain.setMeasurementUnit(item.getMeasurementUnit()); | 
|---|
|  |  |  | assetMain.setUnitPrice(item.getUnitPrice()); | 
|---|
|  |  |  | assetMain.setUsefulLife(item.getUsefulLife()); | 
|---|
|  |  |  | if (item.getOwnershipDeptName() != null && !item.getOwnershipDeptName().isEmpty()) { | 
|---|
|  |  |  | TDept ownerDept = tDeptService.lambdaQuery() | 
|---|
|  |  |  | .eq(TDept::getDeptName, item.getOwnershipDeptName()) | 
|---|
|  |  |  | 
|---|
|  |  |  | assetMain.setOwnershipDeptId(ownerDept.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | assetMain.setUserName(item.getUserName()); | 
|---|
|  |  |  | applyAddressToAssetMain(assetMain, item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); | 
|---|
|  |  |  | assetMain.setAddressType(item.getAddressType()); | 
|---|
|  |  |  | assetMain.setAssetMainType(AssetTypeEnum.HOUSE.getCode()); | 
|---|
|  |  |  | assetMain.setAssetStatus(item.getAssetStatus()); | 
|---|
|  |  |  | assetMain.setRemarks(item.getRemarks()); | 
|---|
|  |  |  | assetMain.setAccountingStatus(item.getAccountingStatus()); | 
|---|
|  |  |  | assetMain.setAccountingDate(item.getAccountingDate()); | 
|---|
|  |  |  | assetMain.setAccountingVoucherNo(item.getAccountingVoucherNo()); | 
|---|
|  |  |  | assetMain.setAccountingSubject(item.getAccountingSubject()); | 
|---|
|  |  |  | assetMain.setAccountingAmount(item.getAccountingAmount()); | 
|---|
|  |  |  | assetMain.setDisabled(false); | 
|---|
|  |  |  | return assetMain; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 构建车辆资产主表数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplicationStorageAsset buildAssetMainFromVehicle(OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageVehicleDTO baseDto) { | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset assetMain = new OaApprovalApplicationStorageAsset(); | 
|---|
|  |  |  | assetMain.setApprovalApplicationId(applicationId.intValue()); | 
|---|
|  |  |  | assetMain.setAssetOriginalCode(item.getAssetOriginalCode()); | 
|---|
|  |  |  | assetMain.setAssetName(item.getAssetName()); | 
|---|
|  |  |  | assetMain.setCategory(item.getCategory()); | 
|---|
|  |  |  | assetMain.setSpecificationModel(item.getSpecificationModel()); | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset assetMain = BeanUtil.copyProperties(item, OaApprovalApplicationStorageAsset.class); | 
|---|
|  |  |  | assetMain.setApprovalApplicationId(applicationId); | 
|---|
|  |  |  | assetMain.setAssetTypeId(assetTypeId); | 
|---|
|  |  |  | assetMain.setMeasurementUnit(item.getMeasurementUnit()); | 
|---|
|  |  |  | assetMain.setUnitPrice(item.getUnitPrice()); | 
|---|
|  |  |  | assetMain.setUsefulLife(item.getUsefulLife()); | 
|---|
|  |  |  | if (item.getOwnershipDeptName() != null && !item.getOwnershipDeptName().isEmpty()) { | 
|---|
|  |  |  | TDept ownerDept = tDeptService.lambdaQuery() | 
|---|
|  |  |  | .eq(TDept::getDeptName, item.getOwnershipDeptName()) | 
|---|
|  |  |  | 
|---|
|  |  |  | assetMain.setOwnershipDeptId(ownerDept.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | assetMain.setUserName(item.getUserName()); | 
|---|
|  |  |  | applyAddressToAssetMain(assetMain, item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); | 
|---|
|  |  |  | assetMain.setAddressType(item.getAddressType()); | 
|---|
|  |  |  | assetMain.setAssetMainType(AssetTypeEnum.VEHICLE.getCode()); | 
|---|
|  |  |  | assetMain.setAssetStatus(item.getAssetStatus()); | 
|---|
|  |  |  | assetMain.setRemarks(item.getRemarks()); | 
|---|
|  |  |  | assetMain.setAccountingStatus(item.getAccountingStatus()); | 
|---|
|  |  |  | assetMain.setAccountingDate(item.getAccountingDate()); | 
|---|
|  |  |  | assetMain.setAccountingVoucherNo(item.getAccountingVoucherNo()); | 
|---|
|  |  |  | assetMain.setAccountingSubject(item.getAccountingSubject()); | 
|---|
|  |  |  | assetMain.setAccountingAmount(item.getAccountingAmount()); | 
|---|
|  |  |  | assetMain.setDisabled(false); | 
|---|
|  |  |  | return assetMain; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 构建房产资产扩展数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplicationStorageAssetPropertyExt buildAssetPropertyExt(OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item, Integer assetMainId) { | 
|---|
|  |  |  | OaApprovalApplicationStorageAssetPropertyExt propertyExt = new OaApprovalApplicationStorageAssetPropertyExt(); | 
|---|
|  |  |  | OaApprovalApplicationStorageAssetPropertyExt propertyExt = BeanUtil.copyProperties(item, OaApprovalApplicationStorageAssetPropertyExt.class); | 
|---|
|  |  |  | propertyExt.setStorageAssetId(assetMainId); | 
|---|
|  |  |  | propertyExt.setRegion(item.getRegion()); | 
|---|
|  |  |  | propertyExt.setDesignPurpose(item.getDesignPurpose()); | 
|---|
|  |  |  | propertyExt.setBuilding(item.getBuilding()); | 
|---|
|  |  |  | propertyExt.setRoomNumber(item.getRoomNumber()); | 
|---|
|  |  |  | propertyExt.setConstructionArea(item.getConstructionArea()); | 
|---|
|  |  |  | propertyExt.setStructureType(item.getStructureType()); | 
|---|
|  |  |  | propertyExt.setCertificateNumber(item.getCertificateNumber()); | 
|---|
|  |  |  | propertyExt.setCompletionDate(item.getCompletionDate()); | 
|---|
|  |  |  | propertyExt.setDetailedLocation(item.getDetailedLocation()); | 
|---|
|  |  |  | propertyExt.setProvincialPlatformValue(item.getProvincialPlatformValue()); | 
|---|
|  |  |  | propertyExt.setResettlementSituation(item.getResettlementSituation()); | 
|---|
|  |  |  | propertyExt.setMortgaged(item.getMortgaged()); | 
|---|
|  |  |  | propertyExt.setTenantName(item.getTenantName()); | 
|---|
|  |  |  | propertyExt.setRentalAmount(item.getRentalAmount()); | 
|---|
|  |  |  | propertyExt.setLeaseStartDate(item.getLeaseStartDate()); | 
|---|
|  |  |  | propertyExt.setLeaseEndDate(item.getLeaseEndDate()); | 
|---|
|  |  |  | propertyExt.setDisabled(false); | 
|---|
|  |  |  | return propertyExt; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 构建车辆资产扩展数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplicationStorageAssetVehicleExt buildAssetVehicleExt(OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item, Integer assetMainId) { | 
|---|
|  |  |  | OaApprovalApplicationStorageAssetVehicleExt vehicleExt = new OaApprovalApplicationStorageAssetVehicleExt(); | 
|---|
|  |  |  | OaApprovalApplicationStorageAssetVehicleExt vehicleExt = BeanUtil.copyProperties(item, OaApprovalApplicationStorageAssetVehicleExt.class); | 
|---|
|  |  |  | vehicleExt.setStorageAssetId(assetMainId); | 
|---|
|  |  |  | vehicleExt.setLicensePlate(item.getLicensePlate()); | 
|---|
|  |  |  | vehicleExt.setVinCode(item.getVinCode()); | 
|---|
|  |  |  | vehicleExt.setEngineNumber(item.getEngineNumber()); | 
|---|
|  |  |  | vehicleExt.setDisplacement(item.getDisplacement()); | 
|---|
|  |  |  | vehicleExt.setStaffingSituation(item.getStaffingSituation()); | 
|---|
|  |  |  | vehicleExt.setOrigin(item.getOrigin()); | 
|---|
|  |  |  | vehicleExt.setAcquisitionDate(item.getAcquisitionDate()); | 
|---|
|  |  |  | vehicleExt.setPropertyRightForm(item.getPropertyRightForm()); | 
|---|
|  |  |  | vehicleExt.setDisabled(false); | 
|---|
|  |  |  | return vehicleExt; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplications buildOaApprovalApplications(Object dto) { | 
|---|
|  |  |  | OaApprovalApplications applications = new OaApprovalApplications(); | 
|---|
|  |  |  | applications.setApprovalId(ApprovalTypeEnum.IN_STOCK.getCode()); | 
|---|
|  |  |  | applications.setApplicationDate(LocalDate.now()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (dto instanceof OaApprovalApplicationStorageGeneralDTO) { | 
|---|
|  |  |  | OaApprovalApplicationStorageGeneralDTO generalDTO = (OaApprovalApplicationStorageGeneralDTO) dto; | 
|---|
|  |  |  | applications.setApplicantUserId(generalDTO.getApplicantUserId()); | 
|---|
|  |  |  | applications.setApplicantName(generalDTO.getApplicantName()); | 
|---|
|  |  |  | applications.setDeptId(generalDTO.getDeptId()); | 
|---|
|  |  |  | applications.setDeptName(generalDTO.getDeptName()); | 
|---|
|  |  |  | applications.setApplicationDate(LocalDate.now()); | 
|---|
|  |  |  | applications.setApplicationReason(generalDTO.getApplicationReason()); | 
|---|
|  |  |  | applications.setAttachmentUrl(generalDTO.getAttachmentUrl()); | 
|---|
|  |  |  | BeanUtils.copyProperties(generalDTO, applications); | 
|---|
|  |  |  | } else if (dto instanceof OaApprovalApplicationStoragePropertyDTO) { | 
|---|
|  |  |  | OaApprovalApplicationStoragePropertyDTO propertyDTO = (OaApprovalApplicationStoragePropertyDTO) dto; | 
|---|
|  |  |  | applications.setApplicantUserId(propertyDTO.getApplicantUserId()); | 
|---|
|  |  |  | applications.setApplicantName(propertyDTO.getApplicantName()); | 
|---|
|  |  |  | applications.setDeptId(propertyDTO.getDeptId()); | 
|---|
|  |  |  | applications.setDeptName(propertyDTO.getDeptName()); | 
|---|
|  |  |  | applications.setApplicationDate(LocalDate.now()); | 
|---|
|  |  |  | applications.setApplicationReason(propertyDTO.getApplicationReason()); | 
|---|
|  |  |  | applications.setAttachmentUrl(propertyDTO.getAttachmentUrl()); | 
|---|
|  |  |  | BeanUtils.copyProperties(propertyDTO, applications); | 
|---|
|  |  |  | } else if (dto instanceof OaApprovalApplicationStorageVehicleDTO) { | 
|---|
|  |  |  | OaApprovalApplicationStorageVehicleDTO vehicleDTO = (OaApprovalApplicationStorageVehicleDTO) dto; | 
|---|
|  |  |  | applications.setApplicantUserId(vehicleDTO.getApplicantUserId()); | 
|---|
|  |  |  | applications.setApplicantName(vehicleDTO.getApplicantName()); | 
|---|
|  |  |  | applications.setDeptId(vehicleDTO.getDeptId()); | 
|---|
|  |  |  | applications.setDeptName(vehicleDTO.getDeptName()); | 
|---|
|  |  |  | applications.setApplicationDate(LocalDate.now()); | 
|---|
|  |  |  | applications.setApplicationReason(vehicleDTO.getApplicationReason()); | 
|---|
|  |  |  | applications.setAttachmentUrl(vehicleDTO.getAttachmentUrl()); | 
|---|
|  |  |  | BeanUtils.copyProperties(vehicleDTO, applications); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | applications.setApplicationCode(generateApplicationCode()); | 
|---|
|  |  |  | applications.setDisabled(0); | 
|---|
|  |  |  | applications.setApprovalId(ApprovalTypeEnum.IN_STOCK.getCode()); | 
|---|
|  |  |  | applications.setApplicationDate(LocalDate.now()); | 
|---|
|  |  |  | applications.setApplicationCode(oaApprovalApplicationsService.generateApplicationCode(ApprovalApplicationCodePrefix.ASSET_STOCK_IN)); | 
|---|
|  |  |  | applications.setApprovalStatus(ApprovalStatusEnum.PENDING.getCode()); | 
|---|
|  |  |  | return applications; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private OaApprovalApplicationStorage buildOaApprovalApplicationStorage(Object dto, Integer applicationId) { | 
|---|
|  |  |  | OaApprovalApplicationStorage storage = new OaApprovalApplicationStorage(); | 
|---|
|  |  |  | storage.setApprovalApplicationId(applicationId.intValue()); | 
|---|
|  |  |  | storage.setApprovalApplicationId(applicationId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (dto instanceof OaApprovalApplicationStorageGeneralDTO) { | 
|---|
|  |  |  | OaApprovalApplicationStorageGeneralDTO generalDTO = (OaApprovalApplicationStorageGeneralDTO) dto; | 
|---|
|  |  |  | storage.setTitle(generalDTO.getTitle()); | 
|---|
|  |  |  | storage.setAssetTypeId(generalDTO.getAssetTypeId()); | 
|---|
|  |  |  | storage.setStorageType(generalDTO.getStorageType()); | 
|---|
|  |  |  | storage.setStorageTime(generalDTO.getStorageTime()); | 
|---|
|  |  |  | BeanUtils.copyProperties(generalDTO, storage); | 
|---|
|  |  |  | } else if (dto instanceof OaApprovalApplicationStoragePropertyDTO) { | 
|---|
|  |  |  | OaApprovalApplicationStoragePropertyDTO propertyDTO = (OaApprovalApplicationStoragePropertyDTO) dto; | 
|---|
|  |  |  | storage.setTitle(propertyDTO.getTitle()); | 
|---|
|  |  |  | storage.setAssetTypeId(propertyDTO.getAssetTypeId()); | 
|---|
|  |  |  | storage.setStorageType(propertyDTO.getStorageType()); | 
|---|
|  |  |  | storage.setStorageTime(propertyDTO.getStorageTime()); | 
|---|
|  |  |  | BeanUtils.copyProperties(propertyDTO, storage); | 
|---|
|  |  |  | } else if (dto instanceof OaApprovalApplicationStorageVehicleDTO) { | 
|---|
|  |  |  | OaApprovalApplicationStorageVehicleDTO vehicleDTO = (OaApprovalApplicationStorageVehicleDTO) dto; | 
|---|
|  |  |  | storage.setTitle(vehicleDTO.getTitle()); | 
|---|
|  |  |  | storage.setAssetTypeId(vehicleDTO.getAssetTypeId()); | 
|---|
|  |  |  | storage.setStorageType(vehicleDTO.getStorageType()); | 
|---|
|  |  |  | storage.setStorageTime(vehicleDTO.getStorageTime()); | 
|---|
|  |  |  | BeanUtils.copyProperties(vehicleDTO, storage); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return storage; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 生成申请单号 | 
|---|
|  |  |  | * 格式:RK + 年月日 + 3位序号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String generateApplicationCode() { | 
|---|
|  |  |  | String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); | 
|---|
|  |  |  | String prefix = "RK" + dateStr; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long count = oaApprovalApplicationsService.lambdaQuery() | 
|---|
|  |  |  | .like(OaApprovalApplications::getApplicationCode, prefix) | 
|---|
|  |  |  | .ge(OaApprovalApplications::getCreateTime, LocalDate.now().atStartOfDay()) | 
|---|
|  |  |  | .lt(OaApprovalApplications::getCreateTime, LocalDate.now().plusDays(1).atStartOfDay()) | 
|---|
|  |  |  | .count(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int sequence = (count != null ? count.intValue() : 0) + 1; | 
|---|
|  |  |  | String sequenceStr = String.format("%03d", sequence); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return prefix + sequenceStr; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | public void removeByApplicationId(Integer id) { | 
|---|
|  |  |  | //删除入库申请相关数据 | 
|---|
|  |  |  | this.lambdaUpdate().eq(OaApprovalApplicationStorage::getApprovalApplicationId, id).remove(); | 
|---|
|  |  |  | List<OaApprovalApplicationStorageAsset> list = oaApprovalApplicationStorageAssetService.lambdaQuery() | 
|---|
|  |  |  | .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, id).list(); | 
|---|
|  |  |  | List<Integer> storageAssetIds = list.stream().map(OaApprovalApplicationStorageAsset::getId).collect(Collectors.toList()); | 
|---|
|  |  |  | if (CollUtil.isNotEmpty(storageAssetIds)) { | 
|---|
|  |  |  | //删除资产申请扩展表数据 | 
|---|
|  |  |  | OaApprovalApplicationStorageAsset oaApprovalApplicationStorageAsset = list.get(0); | 
|---|
|  |  |  | if (oaApprovalApplicationStorageAsset.getAssetMainType().equals(AssetTypeEnum.HOUSE.getCode())) { | 
|---|
|  |  |  | oaApprovalApplicationStorageAssetPropertyExtService.lambdaUpdate() | 
|---|
|  |  |  | .in(OaApprovalApplicationStorageAssetPropertyExt::getStorageAssetId, storageAssetIds).remove(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else if (oaApprovalApplicationStorageAsset.getAssetMainType().equals(AssetTypeEnum.VEHICLE.getCode())) { | 
|---|
|  |  |  | oaApprovalApplicationStorageAssetVehicleExtService.lambdaUpdate() | 
|---|
|  |  |  | .in(OaApprovalApplicationStorageAssetVehicleExt::getStorageAssetId, storageAssetIds).remove(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //删除资产申请主表数据 | 
|---|
|  |  |  | oaApprovalApplicationStorageAssetService.lambdaUpdate() | 
|---|
|  |  |  | .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, id).remove(); | 
|---|
|  |  |  | //删除入库申请单 | 
|---|
|  |  |  | oaApprovalApplicationsService.removeById(id); | 
|---|
|  |  |  | } | 
|---|