mitao
昨天 4ad572c4e51e44e3134def3c70879b3a698ab1d8
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java
@@ -1,6 +1,7 @@
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;
@@ -38,10 +39,13 @@
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;
@@ -211,16 +215,9 @@
     * 构建通用资产主表数据
     */
    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()
@@ -230,19 +227,9 @@
                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;
    }
@@ -250,16 +237,9 @@
     * 构建房产资产主表数据
     */
    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())
@@ -268,18 +248,8 @@
                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;
    }
@@ -287,16 +257,9 @@
     * 构建车辆资产主表数据
     */
    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())
@@ -305,18 +268,8 @@
                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;
    }
@@ -366,25 +319,8 @@
     * 构建房产资产扩展数据
     */
    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;
    }
@@ -392,17 +328,8 @@
     * 构建车辆资产扩展数据
     */
    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;
    }
@@ -429,39 +356,20 @@
     */
    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.setApprovalId(ApprovalTypeEnum.IN_STOCK.getCode());
        applications.setApplicationDate(LocalDate.now());
        applications.setApplicationCode(generateApplicationCode());
        applications.setDisabled(0);
        applications.setApprovalStatus(ApprovalStatusEnum.PENDING.getCode());
        return applications;
    }
@@ -471,26 +379,17 @@
     */
    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;
@@ -523,14 +422,15 @@
    }
    @Override
    public OaApprovalApplicationStorageGeneralDetailVO getGeneralDetail(Integer storageId) {
        OaApprovalApplicationStorage storage = this.getById(storageId);
        if (storage == null) {
            throw new ServiceException("入库申请不存在");
        }
        OaApprovalApplications app = oaApprovalApplicationsService.getById(storage.getApprovalApplicationId());
    public OaApprovalApplicationStorageGeneralDetailVO getGeneralDetail(Integer approvalApplicationId) {
        OaApprovalApplications app = oaApprovalApplicationsService.getById(approvalApplicationId);
        if (app == null) {
            throw new ServiceException("审批主记录不存在");
        }
        OaApprovalApplicationStorage storage = this.lambdaQuery()
                .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplicationId).one();
        if (storage == null) {
            throw new ServiceException("入库申请不存在");
        }
        OaApprovalApplicationStorageGeneralDetailVO vo = new OaApprovalApplicationStorageGeneralDetailVO();
@@ -549,18 +449,18 @@
            // 批量查询使用部门
            List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId)
                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
            Map<Integer, TDept> useDeptMap = ownerIds.isEmpty() ? Collections.emptyMap()
            Map<Integer, TDept> useDeptMap = useDeptIds.isEmpty() ? Collections.emptyMap()
                    : tDeptService.listByIds(useDeptIds).stream().collect(Collectors.toMap(TDept::getId, d -> d));
            // 批量查询仓库
            List<Integer> warehouseIds = mains.stream().map(OaApprovalApplicationStorageAsset::getWarehouseId)
                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
            Map<Integer, AssetWarehouse> warehouseMap = warehouseIds.isEmpty() ? Collections.emptyMap()
                    : assetWarehouseService.listByIds(useDeptIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d));
                    : assetWarehouseService.listByIds(warehouseIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d));
            List<OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO> items = mains.stream().map(m -> {
                OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO item = BeanUtil.copyProperties(m, OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO.class);
                if (m.getOwnershipDeptId() != null) {
                    TDept dept = ownerDeptMap.get(m.getOwnershipDeptId());
                    item.setOwnerShipDeptName(dept != null ? dept.getDeptName() : null);
                    item.setOwnershipDeptName(dept != null ? dept.getDeptName() : null);
                }
                if (m.getAddressType().equals(0) && m.getUseDeptId() != null) {
                    TDept dept = useDeptMap.get(m.getUseDeptId());
@@ -577,14 +477,15 @@
    }
    @Override
    public OaApprovalApplicationStoragePropertyDetailVO getPropertyDetail(Integer storageId) {
        OaApprovalApplicationStorage storage = this.getById(storageId);
        if (storage == null) {
            throw new ServiceException("入库申请不存在");
        }
        OaApprovalApplications app = oaApprovalApplicationsService.getById(storage.getApprovalApplicationId());
    public OaApprovalApplicationStoragePropertyDetailVO getPropertyDetail(Integer approvalApplicationId) {
        OaApprovalApplications app = oaApprovalApplicationsService.getById(approvalApplicationId);
        if (app == null) {
            throw new ServiceException("审批主记录不存在");
        }
        OaApprovalApplicationStorage storage = this.lambdaQuery()
                .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplicationId).one();
        if (storage == null) {
            throw new ServiceException("入库申请不存在");
        }
        OaApprovalApplicationStoragePropertyDetailVO vo = new OaApprovalApplicationStoragePropertyDetailVO();
@@ -607,19 +508,19 @@
            // 批量查询使用部门
            List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId)
                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
            Map<Integer, TDept> useDeptMap = ownerIds.isEmpty() ? Collections.emptyMap()
            Map<Integer, TDept> useDeptMap = useDeptIds.isEmpty() ? Collections.emptyMap()
                    : tDeptService.listByIds(useDeptIds).stream().collect(Collectors.toMap(TDept::getId, d -> d));
            // 批量查询仓库
            List<Integer> warehouseIds = mains.stream().map(OaApprovalApplicationStorageAsset::getWarehouseId)
                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
            Map<Integer, AssetWarehouse> warehouseMap = warehouseIds.isEmpty() ? Collections.emptyMap()
                    : assetWarehouseService.listByIds(useDeptIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d));
                    : assetWarehouseService.listByIds(warehouseIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d));
            List<OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO> items = mains.stream().map(m -> {
                OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO item = BeanUtil.copyProperties(m, OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO.class);
                if (m.getOwnershipDeptId() != null) {
                    TDept dept = ownerDeptMap.get(m.getOwnershipDeptId());
                    item.setOwnerShipDeptName(dept != null ? dept.getDeptName() : null);
                    item.setOwnershipDeptName(dept != null ? dept.getDeptName() : null);
                }
                if (m.getAddressType().equals(0) && m.getUseDeptId() != null) {
                    TDept dept = useDeptMap.get(m.getUseDeptId());
@@ -655,14 +556,15 @@
    }
    @Override
    public OaApprovalApplicationStorageVehicleDetailVO getVehicleDetail(Integer storageId) {
        OaApprovalApplicationStorage storage = this.getById(storageId);
        if (storage == null) {
            throw new ServiceException("入库申请不存在");
        }
        OaApprovalApplications app = oaApprovalApplicationsService.getById(storage.getApprovalApplicationId());
    public OaApprovalApplicationStorageVehicleDetailVO getVehicleDetail(Integer approvalApplicationId) {
        OaApprovalApplications app = oaApprovalApplicationsService.getById(approvalApplicationId);
        if (app == null) {
            throw new ServiceException("审批主记录不存在");
        }
        OaApprovalApplicationStorage storage = this.lambdaQuery()
                .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplicationId).one();
        if (storage == null) {
            throw new ServiceException("入库申请不存在");
        }
        OaApprovalApplicationStorageVehicleDetailVO vo = new OaApprovalApplicationStorageVehicleDetailVO();
@@ -685,18 +587,18 @@
            // 批量查询使用部门
            List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId)
                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
            Map<Integer, TDept> useDeptMap = ownerIds.isEmpty() ? Collections.emptyMap()
            Map<Integer, TDept> useDeptMap = useDeptIds.isEmpty() ? Collections.emptyMap()
                    : tDeptService.listByIds(useDeptIds).stream().collect(Collectors.toMap(TDept::getId, d -> d));
            // 批量查询仓库
            List<Integer> warehouseIds = mains.stream().map(OaApprovalApplicationStorageAsset::getWarehouseId)
                    .filter(Objects::nonNull).distinct().collect(Collectors.toList());
            Map<Integer, AssetWarehouse> warehouseMap = warehouseIds.isEmpty() ? Collections.emptyMap()
                    : assetWarehouseService.listByIds(useDeptIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d));
                    : assetWarehouseService.listByIds(warehouseIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d));
            List<OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO> items = mains.stream().map(m -> {
                OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO item = BeanUtil.copyProperties(m, OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO.class);
                if (m.getOwnershipDeptId() != null) {
                    TDept dept = ownerDeptMap.get(m.getOwnershipDeptId());
                    item.setOwnerShipDeptName(dept != null ? dept.getDeptName() : null);
                    item.setOwnershipDeptName(dept != null ? dept.getDeptName() : null);
                }
                if (m.getAddressType().equals(0) && m.getUseDeptId() != null) {
                    TDept dept = useDeptMap.get(m.getUseDeptId());
@@ -730,6 +632,7 @@
            v.setDeptName(app.getDeptName());
            v.setApplicantUserId(app.getApplicantUserId());
            v.setApplicantName(app.getApplicantName());
            v.setApprovalStatus(app.getApprovalStatus());
            v.setApplicationDate(app.getApplicationDate());
            v.setApplicationReason(app.getApplicationReason());
            v.setAttachmentUrl(app.getAttachmentUrl());
@@ -743,6 +646,7 @@
            v.setDeptName(app.getDeptName());
            v.setApplicantUserId(app.getApplicantUserId());
            v.setApplicantName(app.getApplicantName());
            v.setApprovalStatus(app.getApprovalStatus());
            v.setApplicationDate(app.getApplicationDate());
            v.setApplicationReason(app.getApplicationReason());
            v.setAttachmentUrl(app.getAttachmentUrl());
@@ -756,6 +660,7 @@
            v.setDeptName(app.getDeptName());
            v.setApplicantUserId(app.getApplicantUserId());
            v.setApplicantName(app.getApplicantName());
            v.setApprovalStatus(app.getApprovalStatus());
            v.setApplicationDate(app.getApplicationDate());
            v.setApplicationReason(app.getApplicationReason());
            v.setAttachmentUrl(app.getAttachmentUrl());
@@ -770,7 +675,38 @@
    public PageInfo<StorageListVO> pageList(ApprovalDetailQuery query) {
        PageInfo<StorageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<StorageListVO> list = this.baseMapper.pageList(query,pageInfo);
        for (StorageListVO storageListVO : list) {
            BigDecimal value = new BigDecimal(storageListVO.getQuantity()).multiply(storageListVO.getUnitPrice()).setScale(2, RoundingMode.HALF_UP);
            storageListVO.setTotalValue(value);
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Transactional(rollbackFor = Exception.class)
    @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);
    }
}