From 236fb6ff1f6a955db5f78560204e042e977e2167 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 22 九月 2025 20:47:52 +0800 Subject: [PATCH] 资产入库审批通过保存资产数据 --- ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageVehicleDetailVO.java | 25 +- ruoyi-system/src/main/java/com/ruoyi/system/service/AssetMainService.java | 15 + ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java | 250 +++++++++------------- ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml | 7 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java | 24 +- ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePageVO.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java | 85 +++++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java | 10 ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetVehicleExtService.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetMainServiceImpl.java | 165 ++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePropertyDetailVO.java | 24 +- ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAsset.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/model/AssetPropertyExt.java | 4 15 files changed, 418 insertions(+), 205 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java index c81a991..a390c76 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java @@ -24,6 +24,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -43,6 +44,7 @@ * @author CodeBuddy * @since 2025-09-17 */ +@Slf4j @Api(tags = {"OA审批-资产入库申请相关接口"}) @Validated @RestController @@ -122,7 +124,13 @@ @ApiOperation("获取资产入库申请分页列表") @PostMapping("/page-list") public R<IPage<OaApprovalApplicationStoragePageVO>> getPageList(@RequestBody OaApprovalApplicationStoragePageQuery pageQuery) { - IPage<OaApprovalApplicationStoragePageVO> page = oaApprovalApplicationStorageService.getPageList(pageQuery); + IPage<OaApprovalApplicationStoragePageVO> page = null; + try { + page = oaApprovalApplicationStorageService.getPageList(pageQuery); + } catch (Exception e) { + log.error("获取资产入库申请分页列表失败", e); + return R.fail("服务器开小差啦"); + } return R.ok(page); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java index 098995e..215f41e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java @@ -7,22 +7,89 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.TDept; -import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.dto.AddLeaveDTO; import com.ruoyi.system.dto.AuditDTO; import com.ruoyi.system.emums.ApprovalTypeEnum; -import com.ruoyi.system.model.*; +import com.ruoyi.system.model.AssetMain; +import com.ruoyi.system.model.AssetType; +import com.ruoyi.system.model.OaApproval; +import com.ruoyi.system.model.OaApprovalApplicationAdvertisement; +import com.ruoyi.system.model.OaApprovalApplicationAsset; +import com.ruoyi.system.model.OaApprovalApplicationAssetItem; +import com.ruoyi.system.model.OaApprovalApplicationAttendance; +import com.ruoyi.system.model.OaApprovalApplicationChange; +import com.ruoyi.system.model.OaApprovalApplicationContract; +import com.ruoyi.system.model.OaApprovalApplicationDispose; +import com.ruoyi.system.model.OaApprovalApplicationMoney; +import com.ruoyi.system.model.OaApprovalApplicationPayment; +import com.ruoyi.system.model.OaApprovalApplicationPurchase; +import com.ruoyi.system.model.OaApprovalApplicationReimbursement; +import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem; +import com.ruoyi.system.model.OaApprovalApplicationStorage; +import com.ruoyi.system.model.OaApprovalApplications; +import com.ruoyi.system.model.OaApprovalFlowAudit; +import com.ruoyi.system.model.OaApprovalFlowNode; +import com.ruoyi.system.model.OaApprovalTodo; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.query.ApprovalTodoListQuery; -import com.ruoyi.system.service.*; -import com.ruoyi.system.vo.*; +import com.ruoyi.system.service.AssetMainService; +import com.ruoyi.system.service.AssetTypeService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService; +import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; +import com.ruoyi.system.service.OaApprovalApplicationAssetService; +import com.ruoyi.system.service.OaApprovalApplicationAttendanceService; +import com.ruoyi.system.service.OaApprovalApplicationChangeService; +import com.ruoyi.system.service.OaApprovalApplicationContactService; +import com.ruoyi.system.service.OaApprovalApplicationContractService; +import com.ruoyi.system.service.OaApprovalApplicationDisposeService; +import com.ruoyi.system.service.OaApprovalApplicationMoneyService; +import com.ruoyi.system.service.OaApprovalApplicationPaymentService; +import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService; +import com.ruoyi.system.service.OaApprovalApplicationPurchaseService; +import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService; +import com.ruoyi.system.service.OaApprovalApplicationReimbursementService; +import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; +import com.ruoyi.system.service.OaApprovalApplicationStorageService; +import com.ruoyi.system.service.OaApprovalApplicationsService; +import com.ruoyi.system.service.OaApprovalFlowAuditService; +import com.ruoyi.system.service.OaApprovalFlowNodeService; +import com.ruoyi.system.service.OaApprovalFlowService; +import com.ruoyi.system.service.OaApprovalService; +import com.ruoyi.system.service.OaApprovalTodoService; +import com.ruoyi.system.service.TDeptService; +import com.ruoyi.system.vo.AdvertisementDetailVO; +import com.ruoyi.system.vo.ApprovalFlowNodeListVO; +import com.ruoyi.system.vo.ApprovalTodoVO; +import com.ruoyi.system.vo.BackDetailVO; +import com.ruoyi.system.vo.BorrowDetailVO; +import com.ruoyi.system.vo.BusinessTripDetailVO; +import com.ruoyi.system.vo.ChangeDetailVO; +import com.ruoyi.system.vo.ContactDetailVO; +import com.ruoyi.system.vo.ContractDetailVO; +import com.ruoyi.system.vo.DisposeDetailVO; +import com.ruoyi.system.vo.GrabDetailVO; +import com.ruoyi.system.vo.GrabListVO; +import com.ruoyi.system.vo.LeaveDestroyDetailVO; +import com.ruoyi.system.vo.LeaveDetailVO; +import com.ruoyi.system.vo.MoneyDetailVO; +import com.ruoyi.system.vo.OutDetailVO; +import com.ruoyi.system.vo.PaymentDetailVO; +import com.ruoyi.system.vo.PurchaseDetailVO; +import com.ruoyi.system.vo.PurchaseListVO; +import com.ruoyi.system.vo.ReimbursementDetailVO; +import com.ruoyi.system.vo.StorageDetailVO; +import com.ruoyi.system.vo.StorageListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -74,6 +141,8 @@ private OaApprovalApplicationMoneyService approvalApplicationMoneyService; @Resource private AssetMainService assetMainService; + @Resource + private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; @Resource private OaApprovalApplicationReimbursementService approvalApplicationReimbursementService; @Resource @@ -1076,6 +1145,10 @@ } assetMainService.updateBatchById(assetMains); } + //如果为资产入库审批,处理审批通过逻辑,创建该审批的资产信息 + if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) { + assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId()); + } }else{ // 生成下一个节点的待办事项 for (int i = 0; i < approvalFlowNodes.size(); i++) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetPropertyExt.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetPropertyExt.java index 74c5526..5da51a5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetPropertyExt.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetPropertyExt.java @@ -82,9 +82,9 @@ @TableField("resettlement_situation") private String resettlementSituation; - @ApiModelProperty(value = "是否抵押:0-否,1-是") + @ApiModelProperty(value = "是否抵押:否,是") @TableField("is_mortgaged") - private Integer mortgaged; + private String mortgaged; @ApiModelProperty(value = "承租方") @TableField("tenant_name") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAsset.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAsset.java index eb9af8a..dac7d99 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAsset.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAsset.java @@ -81,9 +81,6 @@ @ApiModelProperty(value = "使用人") private String userName; - @ApiModelProperty(value = "使用类型") - private String useType; - @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetMainService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetMainService.java index 143d07a..bf213e6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetMainService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetMainService.java @@ -6,6 +6,8 @@ import com.ruoyi.system.query.AssetMainPageQuery; import com.ruoyi.system.vo.asset.AssetMainPageVO; +import java.time.LocalDate; + /** * 资产主表 服务类 */ @@ -18,4 +20,17 @@ */ IPage<AssetMainPageVO> getApprovedPageList(AssetMainPageQuery pageQuery); + /** + * 生成资产编码 + * @param assetTypeId + * @param storageDate + * @return + */ + String generateAssetCode(Integer assetTypeId, LocalDate storageDate); + + /** + * 根据审批单ID保存资产信息 + * @param id + */ + void saveAssetByApprovalApplicationId(Integer id); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetVehicleExtService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetVehicleExtService.java index 78ca6ab..cc92cd9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetVehicleExtService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetVehicleExtService.java @@ -1,7 +1,7 @@ package com.ruoyi.system.service; -import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; /** * <p> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetMainServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetMainServiceImpl.java index cc1dd58..055b0e6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetMainServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetMainServiceImpl.java @@ -1,24 +1,187 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.bean.BeanUtil; +import org.springframework.util.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.utils.SecurityUtils; import com.ruoyi.system.mapper.AssetMainMapper; +import com.ruoyi.system.mapper.AssetPropertyExtMapper; +import com.ruoyi.system.mapper.AssetVehicleExtMapper; +import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetMapper; +import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetPropertyExtMapper; +import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetVehicleExtMapper; import com.ruoyi.system.model.AssetMain; +import com.ruoyi.system.model.AssetPropertyExt; +import com.ruoyi.system.model.AssetVehicleExt; +import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; +import com.ruoyi.system.model.OaApprovalApplicationStorageAssetPropertyExt; +import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; import com.ruoyi.system.query.AssetMainPageQuery; import com.ruoyi.system.service.AssetMainService; +import com.ruoyi.system.service.AssetPropertyExtService; +import com.ruoyi.system.service.AssetTypeService; +import com.ruoyi.system.service.AssetVehicleExtService; +import com.ruoyi.system.service.OaApprovalApplicationStorageAssetPropertyExtService; +import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; +import com.ruoyi.system.service.OaApprovalApplicationStorageAssetVehicleExtService; import com.ruoyi.system.vo.asset.AssetMainPageVO; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; /** * 资产主表 服务实现类 */ @Service +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class AssetMainServiceImpl extends ServiceImpl<AssetMainMapper, AssetMain> implements AssetMainService { - + private final AssetTypeService assetTypeService; + private final OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; + private final OaApprovalApplicationStorageAssetPropertyExtService oaApprovalApplicationStorageAssetPropertyExtService; + private final OaApprovalApplicationStorageAssetVehicleExtService oaApprovalApplicationStorageAssetVehicleExtService; + private final AssetVehicleExtService assetVehicleExtService; + private final AssetPropertyExtService assetPropertyExtService; + + private final AssetMainMapper assetMainMapper; + private final OaApprovalApplicationStorageAssetMapper oaApprovalApplicationStorageAssetMapper; + private final OaApprovalApplicationStorageAssetPropertyExtMapper oaApprovalApplicationStorageAssetPropertyExtMapper; + private final OaApprovalApplicationStorageAssetVehicleExtMapper oaApprovalApplicationStorageAssetVehicleExtMapper; + private final AssetPropertyExtMapper assetPropertyExtMapper; + private final AssetVehicleExtMapper assetVehicleExtMapper; @Override public IPage<AssetMainPageVO> getApprovedPageList(AssetMainPageQuery pageQuery) { Page<AssetMainPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); return this.baseMapper.selectApprovedAssetPage(page, pageQuery); } + /** + * 生成资产编码 + * 格式:资产类型一级分类简写+资产类型子类简写+入库日期+【-】+数量顺序编号(4位) + * 例如:GDFC20250917-0001 + */ + @Override + public String generateAssetCode(Integer assetTypeId, LocalDate storageDate) { + // 根据资产类型ID获取资产编码前缀 + String typeCodePrefix = assetTypeService.getAssetCodePrefix(assetTypeId); + + String dateStr = storageDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); + String prefix = typeCodePrefix + dateStr + "-"; + + // 查询当天该类型资产的数量 + Long count = this.lambdaQuery() + .like(AssetMain::getAssetCode, prefix) + .ge(AssetMain::getCreateTime, storageDate.atStartOfDay()) + .lt(AssetMain::getCreateTime, storageDate.plusDays(1).atStartOfDay()) + .count(); + + int sequence = (count != null ? count.intValue() : 0) + 1; + String sequenceStr = String.format("%04d", sequence); + + return prefix + sequenceStr; + } + + @Override + public void saveAssetByApprovalApplicationId(Integer approvalApplicationId) { + // 1. 根据approvalApplicationId查询审批通过的资产列表 + List<OaApprovalApplicationStorageAsset> storageAssets = oaApprovalApplicationStorageAssetMapper + .selectList(new QueryWrapper<OaApprovalApplicationStorageAsset>() + .eq("approval_application_id", approvalApplicationId)); + + if (CollectionUtils.isEmpty(storageAssets)) { + return; + } + + for (OaApprovalApplicationStorageAsset storageAsset : storageAssets) { + Integer assetMainType = storageAsset.getAssetMainType(); + BigDecimal quantity = storageAsset.getQuantity(); + + // 根据数量生成对应条数的资产记录 + int assetCount = quantity != null ? quantity.intValue() : 1; + + for (int i = 0; i < assetCount; i++) { + // 创建资产主表记录 + AssetMain assetMain = new AssetMain(); + BeanUtil.copyProperties(storageAsset, assetMain); + + // 为每个资产生成编码 + String assetCode = generateAssetCode(storageAsset.getAssetTypeId(), LocalDate.now()); + assetMain.setAssetCode(assetCode); + + // 单个资产的数量设为1 + assetMain.setQuantity(BigDecimal.ONE); + // 单个资产的总价值等于单价 + assetMain.setTotalValue(storageAsset.getUnitPrice()); + + // 设置创建信息 + assetMain.setCreateTime(LocalDateTime.now()); + assetMain.setCreateBy(SecurityUtils.getUsername()); + assetMain.setDisabled(false); + + // 保存资产主表 + assetMainMapper.insert(assetMain); + + // 2. 根据资产类型保存扩展信息 + if (assetMainType != null) { + if (assetMainType == 1) { + // 房产资产 - 保存房产扩展信息 + savePropertyExtension(storageAsset.getId(), assetMain.getId()); + } else if (assetMainType == 2) { + // 车辆资产 - 保存车辆扩展信息 + saveVehicleExtension(storageAsset.getId(), assetMain.getId()); + } + // assetMainType == 0 为通用资产,无需保存扩展信息 + } + } + } + } + + /** + * 保存房产资产扩展信息 + */ + private void savePropertyExtension(Integer storageAssetId, Integer assetMainId) { + // 查询房产扩展信息 + OaApprovalApplicationStorageAssetPropertyExt propertyExt = oaApprovalApplicationStorageAssetPropertyExtMapper + .selectOne(new QueryWrapper<OaApprovalApplicationStorageAssetPropertyExt>() + .eq("storage_asset_id", storageAssetId)); + + if (propertyExt != null) { + AssetPropertyExt assetPropertyExt = new AssetPropertyExt(); + BeanUtil.copyProperties(propertyExt, assetPropertyExt); + assetPropertyExt.setAssetMainId(assetMainId); + assetPropertyExt.setCreateTime(LocalDateTime.now()); + assetPropertyExt.setCreateBy(SecurityUtils.getUsername()); + assetPropertyExt.setDisabled(false); + + assetPropertyExtMapper.insert(assetPropertyExt); + } + } + + /** + * 保存车辆资产扩展信息 + */ + private void saveVehicleExtension(Integer storageAssetId, Integer assetMainId) { + // 查询车辆扩展信息 + OaApprovalApplicationStorageAssetVehicleExt vehicleExt = oaApprovalApplicationStorageAssetVehicleExtMapper + .selectOne(new QueryWrapper<OaApprovalApplicationStorageAssetVehicleExt>() + .eq("storage_asset_id", storageAssetId)); + + if (vehicleExt != null) { + AssetVehicleExt assetVehicleExt = new AssetVehicleExt(); + BeanUtil.copyProperties(vehicleExt, assetVehicleExt); + assetVehicleExt.setAssetMainId(assetMainId); + assetVehicleExt.setCreateTime(LocalDateTime.now()); + assetVehicleExt.setCreateBy(SecurityUtils.getUsername()); + assetVehicleExt.setDisabled(false); + + assetVehicleExtMapper.insert(assetVehicleExt); + } + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java index f69ae9b..786edc5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.system.service.AssetTypeService; import com.ruoyi.system.vo.asset.AssetTypeTreeVO; import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,7 +35,7 @@ * @since 2025-09-15 */ @Service -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class AssetTypeServiceImpl extends ServiceImpl<AssetTypeMapper, AssetType> implements AssetTypeService { private final AssetMainService assetMainService; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java index 5bfb9d1..5c9f687 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -13,7 +14,6 @@ import com.ruoyi.system.emums.ApprovalTypeEnum; import com.ruoyi.system.emums.AssetTypeEnum; import com.ruoyi.system.mapper.OaApprovalApplicationStorageMapper; -import com.ruoyi.system.model.AssetMain; import com.ruoyi.system.model.AssetWarehouse; import com.ruoyi.system.model.OaApprovalApplicationStorage; import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; @@ -23,10 +23,6 @@ import com.ruoyi.system.model.OaApprovalFlowNode; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.query.OaApprovalApplicationStoragePageQuery; -import com.ruoyi.system.service.AssetMainService; -import com.ruoyi.system.service.AssetPropertyExtService; -import com.ruoyi.system.service.AssetTypeService; -import com.ruoyi.system.service.AssetVehicleExtService; import com.ruoyi.system.service.AssetWarehouseService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetPropertyExtService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; @@ -36,7 +32,6 @@ import com.ruoyi.system.service.OaApprovalFlowNodeService; import com.ruoyi.system.service.OaApprovalTodoService; import com.ruoyi.system.service.TDeptService; -import com.ruoyi.system.vo.PurchaseListVO; import com.ruoyi.system.vo.StorageListVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageGeneralDetailVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; @@ -50,8 +45,10 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -70,10 +67,6 @@ private final OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; private final OaApprovalApplicationStorageAssetPropertyExtService oaApprovalApplicationStorageAssetPropertyExtService; private final OaApprovalApplicationStorageAssetVehicleExtService oaApprovalApplicationStorageAssetVehicleExtService; - private final AssetMainService assetMainService; - private final AssetPropertyExtService assetPropertyExtService; - private final AssetVehicleExtService assetVehicleExtService; - private final AssetTypeService assetTypeService; private final OaApprovalFlowNodeService oaApprovalFlowNodeService; private final OaApprovalTodoService oaApprovalTodoService; private final TDeptService tDeptService; @@ -239,7 +232,8 @@ } assetMain.setUserName(item.getUserName()); // 根据整单 addressType 写入使用部门ID或仓库ID - applyUseDeptInfoToAssetMain(assetMain, baseDto.getUseDeptName()); + 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()); @@ -275,7 +269,8 @@ } } assetMain.setUserName(item.getUserName()); - applyUseDeptInfoToAssetMain(assetMain, baseDto.getUseDeptName()); + 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()); @@ -311,7 +306,8 @@ } } assetMain.setUserName(item.getUserName()); - applyUseDeptInfoToAssetMain(assetMain, baseDto.getUseDeptName()); + 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()); @@ -327,17 +323,43 @@ /** * 按整单地址类型设置资产主表位置信息(使用部门ID或仓库ID或地址) */ - private void applyUseDeptInfoToAssetMain(OaApprovalApplicationStorageAsset assetMain, String useDeptName) { - // 使用部门 - if (useDeptName != null && !useDeptName.isEmpty()) { - TDept dept = tDeptService.lambdaQuery() - .eq(TDept::getDeptName, useDeptName) - .one(); - if (dept != null) { - assetMain.setUseDeptId(dept.getId()); - } + private void applyAddressToAssetMain(OaApprovalApplicationStorageAsset assetMain, Integer addressType, String useDeptName, String warehouseName, String address) { + if (addressType == null) { + return; + } + switch (addressType) { + case 0: + // 使用部门 + if (useDeptName != null && !useDeptName.isEmpty()) { + TDept dept = tDeptService.lambdaQuery() + .eq(TDept::getDeptName, useDeptName) + .one(); + if (dept != null) { + assetMain.setUseDeptId(dept.getId()); + } + } + break; + case 1: + if (warehouseName != null && !warehouseName.isEmpty()) { + AssetWarehouse warehouse = assetWarehouseService.lambdaQuery() + .eq(AssetWarehouse::getWarehouseName, warehouseName) + .one(); + if (warehouse != null) { + assetMain.setWarehouseId(warehouse.getId()); + assetMain.setWarehouseName(warehouse.getWarehouseName()); + } + } + break; + case 2: + if (address != null && !address.isEmpty()) { + assetMain.setAddress(address); + } + break; + default: + // ignore } } + /** @@ -494,31 +516,6 @@ return prefix + sequenceStr; } - /** - * 生成资产编码 - * 格式:资产类型一级分类简写+资产类型子类简写+入库日期+【-】+数量顺序编号(4位) - * 例如:GDFC20250917-0001 - */ - private String generateAssetCode(Integer assetTypeId, LocalDate storageDate) { - // 根据资产类型ID获取资产编码前缀 - String typeCodePrefix = assetTypeService.getAssetCodePrefix(assetTypeId); - - String dateStr = storageDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); - String prefix = typeCodePrefix + dateStr + "-"; - - // 查询当天该类型资产的数量 - Long count = assetMainService.lambdaQuery() - .like(AssetMain::getAssetCode, prefix) - .ge(AssetMain::getCreateTime, storageDate.atStartOfDay()) - .lt(AssetMain::getCreateTime, storageDate.plusDays(1).atStartOfDay()) - .count(); - - int sequence = (count != null ? count.intValue() : 0) + 1; - String sequenceStr = String.format("%04d", sequence); - - return prefix + sequenceStr; - } - @Override public IPage<OaApprovalApplicationStoragePageVO> getPageList(OaApprovalApplicationStoragePageQuery pageQuery) { Page<OaApprovalApplicationStoragePageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); @@ -543,36 +540,35 @@ .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, app.getId()) .eq(OaApprovalApplicationStorageAsset::getAssetTypeId, storage.getAssetTypeId()) .list(); - setAddressInfo(vo, mains); - if (!CollectionUtils.isEmpty(mains)) { - // 批量查询权属部门,避免循环内查询 + // 批量查询权属部门 List<Integer> ownerIds = mains.stream().map(OaApprovalApplicationStorageAsset::getOwnershipDeptId) - .filter(id -> id != null).distinct().collect(Collectors.toList()); - Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? java.util.Collections.emptyMap() + .filter(Objects::nonNull).distinct().collect(Collectors.toList()); + Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? Collections.emptyMap() : tDeptService.listByIds(ownerIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); - + // 批量查询使用部门 + List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId) + .filter(Objects::nonNull).distinct().collect(Collectors.toList()); + Map<Integer, TDept> useDeptMap = ownerIds.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)); List<OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO> items = mains.stream().map(m -> { - OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO item = new OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO(); - item.setAssetOriginalCode(m.getAssetOriginalCode()); - item.setAssetName(m.getAssetName()); - item.setSpecificationModel(m.getSpecificationModel()); - item.setMeasurementUnit(m.getMeasurementUnit()); - item.setQuantity(m.getQuantity()); - item.setUnitPrice(m.getUnitPrice()); - item.setUsefulLife(m.getUsefulLife()); + 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.setUserName(m.getUserName()); - item.setAssetStatus(m.getAssetStatus()); - item.setRemarks(m.getRemarks()); - item.setAccountingStatus(m.getAccountingStatus()); - item.setAccountingDate(m.getAccountingDate()); - item.setAccountingVoucherNo(m.getAccountingVoucherNo()); - item.setAccountingSubject(m.getAccountingSubject()); - item.setAccountingAmount(m.getAccountingAmount()); + if (m.getAddressType().equals(0) && m.getUseDeptId() != null) { + TDept dept = useDeptMap.get(m.getUseDeptId()); + item.setUseDeptName(dept != null ? dept.getDeptName() : null); + } else if (m.getAddressType().equals(1) && m.getWarehouseId() != null){ + AssetWarehouse assetWarehouse = warehouseMap.get(m.getWarehouseId()); + item.setWarehouseName(assetWarehouse != null ? assetWarehouse.getWarehouseName() : null); + } return item; }).collect(Collectors.toList()); vo.setAssetItems(items); @@ -598,7 +594,6 @@ .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, app.getId()) .eq(OaApprovalApplicationStorageAsset::getAssetTypeId, storage.getAssetTypeId()) .list(); - setAddressInfo(vo, mains); if (!CollectionUtils.isEmpty(mains)) { List<Integer> mainIds = mains.stream().map(OaApprovalApplicationStorageAsset::getId).collect(Collectors.toList()); @@ -609,28 +604,30 @@ .filter(id -> id != null).distinct().collect(Collectors.toList()); Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? java.util.Collections.emptyMap() : tDeptService.listByIds(ownerIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); + // 批量查询使用部门 + List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId) + .filter(Objects::nonNull).distinct().collect(Collectors.toList()); + Map<Integer, TDept> useDeptMap = ownerIds.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)); List<OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO> items = mains.stream().map(m -> { - OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO item = new OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO(); - item.setAssetOriginalCode(m.getAssetOriginalCode()); - item.setAssetName(m.getAssetName()); - item.setSpecificationModel(m.getSpecificationModel()); - item.setMeasurementUnit(m.getMeasurementUnit()); - item.setQuantity(m.getQuantity()); - item.setUnitPrice(m.getUnitPrice()); - item.setUsefulLife(m.getUsefulLife()); + 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.setUserName(m.getUserName()); - item.setAssetStatus(m.getAssetStatus()); - item.setRemarks(m.getRemarks()); - item.setAccountingStatus(m.getAccountingStatus()); - item.setAccountingDate(m.getAccountingDate()); - item.setAccountingVoucherNo(m.getAccountingVoucherNo()); - item.setAccountingSubject(m.getAccountingSubject()); - item.setAccountingAmount(m.getAccountingAmount()); + if (m.getAddressType().equals(0) && m.getUseDeptId() != null) { + TDept dept = useDeptMap.get(m.getUseDeptId()); + item.setUseDeptName(dept != null ? dept.getDeptName() : null); + } else if (m.getAddressType().equals(1) && m.getWarehouseId() != null){ + AssetWarehouse assetWarehouse = warehouseMap.get(m.getWarehouseId()); + item.setWarehouseName(assetWarehouse != null ? assetWarehouse.getWarehouseName() : null); + } OaApprovalApplicationStorageAssetPropertyExt ext = extMap.get(m.getId()); if (ext != null) { item.setRegion(ext.getRegion()); @@ -675,7 +672,6 @@ .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, app.getId()) .eq(OaApprovalApplicationStorageAsset::getAssetTypeId, storage.getAssetTypeId()) .list(); - setAddressInfo(vo, mains); if (!CollectionUtils.isEmpty(mains)) { List<Integer> mainIds = mains.stream().map(OaApprovalApplicationStorageAsset::getId).collect(Collectors.toList()); @@ -686,28 +682,29 @@ .filter(id -> id != null).distinct().collect(Collectors.toList()); Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? java.util.Collections.emptyMap() : tDeptService.listByIds(ownerIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); - + // 批量查询使用部门 + List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId) + .filter(Objects::nonNull).distinct().collect(Collectors.toList()); + Map<Integer, TDept> useDeptMap = ownerIds.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)); List<OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO> items = mains.stream().map(m -> { - OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO item = new OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO(); - item.setAssetOriginalCode(m.getAssetOriginalCode()); - item.setAssetName(m.getAssetName()); - item.setSpecificationModel(m.getSpecificationModel()); - item.setMeasurementUnit(m.getMeasurementUnit()); - item.setQuantity(m.getQuantity()); - item.setUnitPrice(m.getUnitPrice()); - item.setUsefulLife(m.getUsefulLife()); + 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.setUserName(m.getUserName()); - item.setAssetStatus(m.getAssetStatus()); - item.setRemarks(m.getRemarks()); - item.setAccountingStatus(m.getAccountingStatus()); - item.setAccountingDate(m.getAccountingDate()); - item.setAccountingVoucherNo(m.getAccountingVoucherNo()); - item.setAccountingSubject(m.getAccountingSubject()); - item.setAccountingAmount(m.getAccountingAmount()); + if (m.getAddressType().equals(0) && m.getUseDeptId() != null) { + TDept dept = useDeptMap.get(m.getUseDeptId()); + item.setUseDeptName(dept != null ? dept.getDeptName() : null); + } else if (m.getAddressType().equals(1) && m.getWarehouseId() != null){ + AssetWarehouse assetWarehouse = warehouseMap.get(m.getWarehouseId()); + item.setWarehouseName(assetWarehouse != null ? assetWarehouse.getWarehouseName() : null); + } OaApprovalApplicationStorageAssetVehicleExt ext = extMap.get(m.getId()); if (ext != null) { item.setLicensePlate(ext.getLicensePlate()); @@ -766,51 +763,6 @@ v.setAssetTypeId(storage.getAssetTypeId()); v.setStorageType(storage.getStorageType()); v.setStorageTime(storage.getStorageTime()); - } - } - - private void setAddressInfo(Object vo, List<OaApprovalApplicationStorageAsset> mains) { - if (CollectionUtils.isEmpty(mains)) { - return; - } - OaApprovalApplicationStorageAsset sample = mains.get(0); - Integer addressType = null; - String useDeptName = null; - String warehouseName = null; - String address = null; - switch (sample.getAddressType()) { - case 0: - TDept dept = tDeptService.getById(sample.getUseDeptId()); - useDeptName = dept != null ? dept.getDeptName() : null; - break; - case 1: - AssetWarehouse wh = assetWarehouseService.getById(sample.getWarehouseId()); - warehouseName = wh != null ? wh.getWarehouseName() : null; - break; - case 2: - break; - default: - return; - } - - if (vo instanceof OaApprovalApplicationStorageGeneralDetailVO) { - OaApprovalApplicationStorageGeneralDetailVO v = (OaApprovalApplicationStorageGeneralDetailVO) vo; - v.setAddressType(sample.getAddressType()); - v.setUseDeptName(useDeptName); - v.setWarehouseName(warehouseName); - v.setAddress(sample.getAddress()); - } else if (vo instanceof OaApprovalApplicationStoragePropertyDetailVO) { - OaApprovalApplicationStoragePropertyDetailVO v = (OaApprovalApplicationStoragePropertyDetailVO) vo; - v.setAddressType(sample.getAddressType()); - v.setUseDeptName(useDeptName); - v.setWarehouseName(warehouseName); - v.setAddress(sample.getAddress()); - } else if (vo instanceof OaApprovalApplicationStorageVehicleDetailVO) { - OaApprovalApplicationStorageVehicleDetailVO v = (OaApprovalApplicationStorageVehicleDetailVO) vo; - v.setAddressType(sample.getAddressType()); - v.setUseDeptName(useDeptName); - v.setWarehouseName(warehouseName); - v.setAddress(sample.getAddress()); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java index 651ec43..4d853b7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java @@ -8,7 +8,6 @@ import java.io.Serializable; import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.List; @Data @@ -24,7 +23,7 @@ @ApiModelProperty(value = "标题") private String title; @ApiModelProperty(value = "入库类型 0-正常入库") - private Boolean storageType; + private Integer storageType; @ApiModelProperty(value = "入库日期") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDate storageTime; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java index bf8ec9c..291c6e8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java @@ -52,18 +52,6 @@ @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; - @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") - private Integer addressType; - - @ApiModelProperty(value = "使用部门/位置名称") - private String useDeptName; - - @ApiModelProperty(value = "仓库名称") - private String warehouseName; - - @ApiModelProperty(value = "所在位置") - private String address; - @ApiModelProperty(value = "通用资产明细列表(按保存展开后的一条资产记录对应一条明细)") private List<GeneralAssetItemVO> assetItems; @@ -117,5 +105,17 @@ @ApiModelProperty(value = "入账金额") private BigDecimal accountingAmount; + + @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") + private Integer addressType; + + @ApiModelProperty(value = "使用部门/位置名称") + private String useDeptName; + + @ApiModelProperty(value = "仓库名称") + private String warehouseName; + + @ApiModelProperty(value = "所在位置") + private String address; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePageVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePageVO.java index d174a7a..8de36fc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePageVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePageVO.java @@ -19,6 +19,9 @@ @ApiModelProperty("主键ID") private Integer id; + @ApiModelProperty("资产类型ID") + private Integer assetTypeId; + @ApiModelProperty("所属部门") private String deptName; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePropertyDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePropertyDetailVO.java index 22421c0..04b89c9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePropertyDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePropertyDetailVO.java @@ -52,18 +52,6 @@ @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; - @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") - private Integer addressType; - - @ApiModelProperty(value = "使用部门/位置名称") - private String useDeptName; - - @ApiModelProperty(value = "仓库名称") - private String warehouseName; - - @ApiModelProperty(value = "所在位置") - private String address; - @ApiModelProperty(value = "房产资产明细列表(按保存展开后的一条资产记录对应一条明细)") private List<PropertyAssetItemVO> assetItems; @@ -168,5 +156,17 @@ @ApiModelProperty(value = "租赁期限止") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate leaseEndDate; + + @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") + private Integer addressType; + + @ApiModelProperty(value = "使用部门/位置名称") + private String useDeptName; + + @ApiModelProperty(value = "仓库名称") + private String warehouseName; + + @ApiModelProperty(value = "所在位置") + private String address; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageVehicleDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageVehicleDetailVO.java index e91df3e..c1a2fbf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageVehicleDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageVehicleDetailVO.java @@ -52,18 +52,6 @@ @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; - @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") - private Integer addressType; - - @ApiModelProperty(value = "使用部门/位置名称") - private String useDeptName; - - @ApiModelProperty(value = "仓库名称") - private String warehouseName; - - @ApiModelProperty(value = "所在位置") - private String address; - @ApiModelProperty(value = "车辆资产明细列表(按保存展开后的一条资产记录对应一条明细)") private List<VehicleAssetItemVO> assetItems; @@ -142,5 +130,18 @@ @ApiModelProperty(value = "产权形式") private String propertyRightForm; + + @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") + private Integer addressType; + + @ApiModelProperty(value = "使用部门/位置名称") + private String useDeptName; + + @ApiModelProperty(value = "仓库名称") + private String warehouseName; + + @ApiModelProperty(value = "所在位置") + private String address; + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml index be9dd4f..94db2a5 100644 --- a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml @@ -21,6 +21,7 @@ <select id="selectApplicationStoragePage" resultType="com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO"> SELECT oas.id AS id, + oas.asset_type_id AS assetTypeId, aaa.dept_name AS deptName, aaa.application_code AS applicationCode, oas.title AS title, @@ -56,9 +57,9 @@ end as useName - from asset_main t1 - left join asset_type t2 on t3.id = t1.asset_type_id - left join t_dept t3 on t4.id = t3.ownership_dept_id + from oa_approval_application_storage_asset t1 + left join asset_type t2 on t2.id = t1.asset_type_id + left join t_dept t3 on t3.id = t1.ownership_dept_id where t1.approval_application_id = #{query.approvalApplicationId} order by t1.create_time desc -- Gitblit v1.7.1