ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetInventoryTaskController.java
@@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.dto.asset.AssetInventoryTaskDTO; import com.ruoyi.system.dto.asset.AssetInventoryTaskItemDTO; import com.ruoyi.system.dto.asset.AssetInventoryTaskItemUpdateDTO; import com.ruoyi.system.dto.asset.AssetInventoryUserUpdateDTO; import com.ruoyi.system.query.AssertInventoryQuery; import com.ruoyi.system.query.InventoryTaskQuery; @@ -114,7 +115,7 @@ @ApiOperation("开始盘点") @GetMapping("/start/{id}") public R<?> start( @ApiParam(name = "id", value = "盘点任务ID", required = true) public R<?> start(@ApiParam(name = "id", value = "盘点任务ID", required = true) @PathVariable Integer id){ assetInventoryTaskService.start(id); return R.ok(); @@ -132,9 +133,27 @@ @ApiOperation("盘点结果处理") @PostMapping("/result") public R<?> handleResult(@RequestBody List<AssetInventoryTaskItemDTO> dtoList) { public R<?> handleResult(@Valid @RequestBody List<AssetInventoryTaskItemDTO> dtoList) { assetInventoryTaskService.handleResult(dtoList); return R.ok(); } @ApiOperation("取消盘点") @PostMapping("/cancel/{id}") public R<?> cancel (@ApiParam(name = "id", value = "盘点任务ID", required = true) @PathVariable Integer id){ if (assetInventoryTaskService.cancel(id)) { return R.ok(); } else { return R.fail("取消失败"); } } @ApiOperation("保存盘点") @PostMapping("/save") public R<?> saveInventory(@Valid @RequestBody List<AssetInventoryTaskItemUpdateDTO> dtoList) { assetInventoryTaskService.saveInventory(dtoList); return R.ok(); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java
@@ -5,7 +5,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.constants.AssetDeptConstant; import com.ruoyi.system.dto.AssetRepairRecordAddDTO; import com.ruoyi.system.dto.asset.AssetRepairRecordAddDTO; import com.ruoyi.system.dto.asset.AssetRepairCompleteDTO; import com.ruoyi.system.query.AssetRepairRecordPageQuery; import com.ruoyi.system.service.AssetRepairRecordService; ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetInventoryTaskItemUpdateDTO.java
New file @@ -0,0 +1,32 @@ package com.ruoyi.system.dto.asset; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; /** * @author mitao * @date 2025/10/13 */ @Data @ApiModel("保存盘点数据传输对象") public class AssetInventoryTaskItemUpdateDTO { @ApiModelProperty("盘点任务关联表ID") @NotNull(message = "盘点任务关联表ID不能为空") private Integer assetInventoryTaskItemId; @ApiModelProperty(value = "盘点结果 0-未盘点,1-正常,2-异常") private Integer resultStatus; @ApiModelProperty(value = "实存部门名称") private String realDeptName; @ApiModelProperty(value = "实存使用人") private String realUserName; @ApiModelProperty(value = "异常说明") private String exceptionExplain; } ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetInventoryUserUpdateDTO.java
@@ -4,8 +4,10 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; /** * 修改盘点人DTO @@ -24,8 +26,8 @@ private Integer taskId; @ApiModelProperty("资产ID") @NotNull(message = "资产ID不能为空") private Integer assetId; @NotEmpty(message = "资产ID列表不能为空") private List<Integer> assetIds; @ApiModelProperty("用户ID") @NotNull(message = "用户ID不能为空") ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetRepairRecordAddDTO.java
File was renamed from ruoyi-system/src/main/java/com/ruoyi/system/dto/AssetRepairRecordAddDTO.java @@ -1,4 +1,4 @@ package com.ruoyi.system.dto; package com.ruoyi.system.dto.asset; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; ruoyi-system/src/main/java/com/ruoyi/system/emums/AssetInventoryTaskStatusEnum.java
New file @@ -0,0 +1,24 @@ package com.ruoyi.system.emums; import lombok.Getter; import lombok.AllArgsConstructor; @Getter @AllArgsConstructor public enum AssetInventoryTaskStatusEnum { NOT_STARTED(0, "未开始"), IN_PROGRESS(1, "进行中"), COMPLETED(2, "已完成"), CANCELED(3, "已取消"); private final Integer code; private final String desc; public static AssetInventoryTaskStatusEnum getEnumByCode(Integer code) { for (AssetInventoryTaskStatusEnum e : AssetInventoryTaskStatusEnum.values()) { if (e.code.equals(code)) { return e; } } return null; } } ruoyi-system/src/main/java/com/ruoyi/system/model/AssetInventoryTask.java
@@ -49,8 +49,8 @@ @ApiModelProperty(value = "盘点日期") @TableField("execute_date") private LocalDate executeDate; @ApiModelProperty(value = "盘点状态 0-未开始,1-进行中,2-已完成") //0:未开始;1:进行中;2:已完成;3:已取消; @ApiModelProperty(value = "盘点状态 0-未开始,1-进行中,2-已完成, 3-已取消") @TableField("status") private Integer status; ruoyi-system/src/main/java/com/ruoyi/system/model/AssetInventoryTaskItem.java
@@ -50,9 +50,13 @@ @TableField("real_dept_id") private Integer realDeptId; @ApiModelProperty(value = "实存部门名称") @TableField("real_dept_name") private String realDeptName; @ApiModelProperty(value = "实存使用人") @TableField("real_user_id") private Integer realUserId; @TableField("real_user_name") private String realUserName; @ApiModelProperty(value = "异常说明") @TableField("exception_explain") ruoyi-system/src/main/java/com/ruoyi/system/query/InventoryTaskQuery.java
@@ -14,7 +14,7 @@ */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel("资产盘点分页列表query") @ApiModel("资产盘点任务分页列表query") public class InventoryTaskQuery extends BasePage { private static final long serialVersionUID = 5972537443752522968L; ruoyi-system/src/main/java/com/ruoyi/system/service/AssetInventoryTaskService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.dto.asset.AssetInventoryTaskDTO; import com.ruoyi.system.dto.asset.AssetInventoryTaskItemDTO; import com.ruoyi.system.dto.asset.AssetInventoryTaskItemUpdateDTO; import com.ruoyi.system.dto.asset.AssetInventoryUserUpdateDTO; import com.ruoyi.system.model.AssetInventoryTask; import com.ruoyi.system.query.AssertInventoryQuery; @@ -86,4 +87,16 @@ * @param dtoList */ void handleResult(List<AssetInventoryTaskItemDTO> dtoList); /** * 取消盘点 * @param id */ boolean cancel(Integer id); /** * 保存盘点 * @param dtoList */ void saveInventory(List<AssetInventoryTaskItemUpdateDTO> dtoList); } ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.dto.AssetRepairRecordAddDTO; import com.ruoyi.system.dto.asset.AssetRepairRecordAddDTO; import com.ruoyi.system.dto.asset.AssetRepairCompleteDTO; import com.ruoyi.system.model.AssetRepairRecord; import com.ruoyi.system.query.AssetRepairRecordPageQuery; ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.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.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,7 +13,9 @@ import com.ruoyi.system.constants.AssetDeptConstant; import com.ruoyi.system.dto.asset.AssetInventoryTaskDTO; import com.ruoyi.system.dto.asset.AssetInventoryTaskItemDTO; import com.ruoyi.system.dto.asset.AssetInventoryTaskItemUpdateDTO; import com.ruoyi.system.dto.asset.AssetInventoryUserUpdateDTO; import com.ruoyi.system.emums.AssetInventoryTaskStatusEnum; import com.ruoyi.system.mapper.AssetInventoryTaskMapper; import com.ruoyi.system.model.AssetInventoryRecord; import com.ruoyi.system.model.AssetInventoryTask; @@ -208,6 +211,7 @@ // 1. 查询所有有效的盘点任务,支持筛选条件 LambdaQueryWrapper<AssetInventoryTask> taskWrapper = new LambdaQueryWrapper<>(); taskWrapper.eq(AssetInventoryTask::getDisabled, false) .ne(AssetInventoryTask::getStatus, AssetInventoryTaskStatusEnum.CANCELED.getCode()) .orderByDesc(AssetInventoryTask::getCreateTime); // 按部门筛选 if (hasNoPermission) { @@ -399,24 +403,24 @@ // 3. 查询并更新对应的资产盘点项 LambdaQueryWrapper<AssetInventoryTaskItem> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(AssetInventoryTaskItem::getInventoryTaskId, dto.getTaskId()) .eq(AssetInventoryTaskItem::getAssetMainId, dto.getAssetId()); .in(AssetInventoryTaskItem::getAssetMainId, dto.getAssetIds()); AssetInventoryTaskItem taskItem = assetInventoryTaskItemService.getOne(wrapper); if (taskItem == null) { List<AssetInventoryTaskItem> taskItems = assetInventoryTaskItemService.list(wrapper); if (CollUtil.isEmpty(taskItems)) { throw new ServiceException("未找到对应的盘点资产项"); } // 4. 更新盘点人 String currentUserName = SecurityUtils.getLoginUser().getUser().getNickName(); taskItem.setUserId(dto.getUserId()); boolean updated = assetInventoryTaskItemService.updateById(taskItem); taskItems.forEach(item->item.setUserId(dto.getUserId())); boolean updated = assetInventoryTaskItemService.updateBatchById(taskItems); if (!updated) { throw new ServiceException("修改盘点人失败"); } log.info("成功修改盘点人,任务ID:{},资产ID:{},新盘点人ID:{},操作人:{}", dto.getTaskId(), dto.getAssetId(), dto.getUserId(), currentUserName); dto.getTaskId(), dto.getAssetIds(), dto.getUserId(), currentUserName); } /** @@ -456,6 +460,7 @@ } @Override @Transactional(rollbackFor = Exception.class) public void handleResult(List<AssetInventoryTaskItemDTO> dtoList) { Map<Integer, Integer> taskItemMap = dtoList.stream() .collect(Collectors.toMap(AssetInventoryTaskItemDTO::getAssetInventoryTaskItemId, AssetInventoryTaskItemDTO::getDeal)); @@ -471,5 +476,128 @@ } } assetInventoryTaskItemService.updateBatchById(assetInventoryTaskItems); // 更新任务状态为已完成(盘点结果处理完成) if (CollUtil.isNotEmpty(dtoList) && CollUtil.isNotEmpty(assetInventoryTaskItems)) { // 获取任务ID(从第一个盘点项获取) Integer taskId = assetInventoryTaskItems.get(0).getInventoryTaskId(); updateTaskStatusToCompleted(taskId); } } /** * 直接更新任务状态为已完成 * * @param taskId 盘点任务ID */ private void updateTaskStatusToCompleted(Integer taskId) { // 参数验证 if (taskId == null) { log.warn("任务ID为空,无法更新任务状态"); return; } // 检查任务是否存在 AssetInventoryTask task = this.getById(taskId); if (task == null) { log.warn("任务不存在,任务ID:{}", taskId); return; } // 检查任务是否已经是已完成状态 if (task.getStatus() != null && task.getStatus().equals(AssetInventoryTaskStatusEnum.COMPLETED.getCode())) { log.debug("任务已经是已完成状态,任务ID:{}", taskId); return; } // 更新任务状态为已完成 task.setStatus(AssetInventoryTaskStatusEnum.COMPLETED.getCode()); task.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); this.updateById(task); log.info("盘点任务状态更新为已完成,任务ID:{},任务名称:{},操作人:{}", taskId, task.getTaskName(), task.getUpdateBy()); } @Override public boolean cancel(Integer id) { AssetInventoryTask assetInventoryTask = this.getById(id); if (Objects.nonNull(assetInventoryTask) && !assetInventoryTask.getStatus() .equals(AssetInventoryTaskStatusEnum.COMPLETED.getCode())) { assetInventoryTask.setStatus(AssetInventoryTaskStatusEnum.CANCELED.getCode()); //已取消 assetInventoryTask.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); return this.updateById(assetInventoryTask); } return false; } @Override @Transactional(rollbackFor = Exception.class) public void saveInventory(List<AssetInventoryTaskItemUpdateDTO> dtoList) { Map<Integer, AssetInventoryTaskItemUpdateDTO> dtoMap = dtoList.stream() .collect(Collectors.toMap(AssetInventoryTaskItemUpdateDTO::getAssetInventoryTaskItemId, dto -> dto)); List<AssetInventoryTaskItem> assetInventoryTaskItems = assetInventoryTaskItemService.listByIds(dtoMap.keySet()); for (AssetInventoryTaskItem assetInventoryTaskItem : assetInventoryTaskItems) { AssetInventoryTaskItemUpdateDTO dto = dtoMap.get(assetInventoryTaskItem.getId()); assetInventoryTaskItem.setResultStatus(dto.getResultStatus()); assetInventoryTaskItem.setRealDeptName(dto.getRealDeptName()); assetInventoryTaskItem.setRealUserName(dto.getRealUserName()); assetInventoryTaskItem.setExceptionExplain(dto.getExceptionExplain()); } assetInventoryTaskItemService.updateBatchById(assetInventoryTaskItems); // 检查并更新任务状态(保存盘点数据完成) if (CollUtil.isNotEmpty(dtoList) && CollUtil.isNotEmpty(assetInventoryTaskItems)) { // 获取任务ID(从第一个盘点项获取) Integer taskId = assetInventoryTaskItems.get(0).getInventoryTaskId(); checkAndUpdateTaskCompletionStatus(taskId); } } /** * 检查并更新任务完成状态 * 如果任务的所有盘点项都为正常状态,则将任务状态更新为已完成 * * @param taskId 盘点任务ID */ private void checkAndUpdateTaskCompletionStatus(Integer taskId) { // 参数验证 if (taskId == null) { log.warn("任务ID为空,无法检查任务完成状态"); return; } // 1. 检查任务是否存在 AssetInventoryTask task = this.getById(taskId); if (task == null) { log.warn("任务不存在,任务ID:{}", taskId); return; } // 2. 查询任务的所有盘点项 LambdaQueryWrapper<AssetInventoryTaskItem> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(AssetInventoryTaskItem::getInventoryTaskId, taskId); List<AssetInventoryTaskItem> allTaskItems = assetInventoryTaskItemService.list(wrapper); // 3. 检查是否所有项都已完成且为正常状态(resultStatus = 1) boolean allNormal = !allTaskItems.isEmpty() && allTaskItems.stream() .allMatch(item -> item.getResultStatus() != null && item.getResultStatus() == 1); // 4. 如果都正常,更新任务状态为已完成 if (allNormal) { // 检查任务是否已经是已完成状态 if (task.getStatus() != null && !task.getStatus().equals(AssetInventoryTaskStatusEnum.COMPLETED.getCode())) { task.setStatus(AssetInventoryTaskStatusEnum.COMPLETED.getCode()); task.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); this.updateById(task); log.info("盘点任务已完成,任务ID:{},任务名称:{},操作人:{}", taskId, task.getTaskName(), task.getUpdateBy()); } else { log.debug("任务已经是已完成状态,任务ID:{}", taskId); } } else { log.debug("任务未完全完成,跳过状态更新,任务ID:{},盘点项总数:{}", taskId, allTaskItems.size()); } } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java
@@ -8,7 +8,7 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.constants.ApprovalApplicationCodePrefix; import com.ruoyi.system.dto.AssetRepairRecordAddDTO; import com.ruoyi.system.dto.asset.AssetRepairRecordAddDTO; import com.ruoyi.system.dto.asset.AssetRepairCompleteDTO; import com.ruoyi.system.mapper.AssetRepairRecordMapper; import com.ruoyi.system.model.AssetRepairRecord; ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetMainInventoryVO.java
@@ -20,9 +20,11 @@ @ApiModelProperty(value = "资产ID") private Integer id; @ApiModelProperty(value = "盘点任务关联表ID") private Integer assetInventoryTaskItemId; @ApiModelProperty(value = "资产编码") private String assetCode; @ApiModelProperty(value = "资产名称") private String assetName; @@ -85,8 +87,23 @@ @ApiModelProperty(value = "使用部门") private String useDeptName; @ApiModelProperty(value = "盘点人") @ApiModelProperty(value = "使用部门/位置ID") private Integer useDeptId; @ApiModelProperty(value = "仓库ID,关联warehouse表") private Integer warehouseId; @ApiModelProperty(value = "仓库名称(冗余字段)") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "使用人") private String userName; @ApiModelProperty(value = "盘点人") private String checkUserName; @ApiModelProperty(value = "盘点状态 盘点结果 0-未盘点,1-正常,2-异常 未找到资产") private Integer inventoryStatus; @@ -96,5 +113,8 @@ @ApiModelProperty(value = "实存使用人") private String realUserName; @ApiModelProperty(value = "异常说明") private String exceptionExplain; } ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetMainPageVO.java
@@ -6,6 +6,7 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; /** @@ -40,5 +41,93 @@ @ApiModelProperty(value = "使用部门/位置") private String useDeptOrLocation; @ApiModelProperty(value = "审批申请记录ID") private Integer approvalApplicationId; @ApiModelProperty(value = "资产原编码") private String assetOriginalCode; @ApiModelProperty(value = "规格型号") private String specificationModel; @ApiModelProperty(value = "类别") private String category; @ApiModelProperty(value = "资产类别ID,关联asset_type表") private Integer assetTypeId; @ApiModelProperty(value = "类别名称(冗余字段)") private String assetCategory; @ApiModelProperty(value = "资产主类型:0-通用资产,1-房产资产,2-车辆资产") private Integer assetMainType; @ApiModelProperty(value = "计量单位") private String measurementUnit; @ApiModelProperty(value = "数量") private Integer quantity; @ApiModelProperty(value = "单价") private BigDecimal unitPrice; @ApiModelProperty(value = "总价值(数量*单价)") private BigDecimal totalValue; @ApiModelProperty(value = "使用年限(年)") private Integer usefulLife; @ApiModelProperty(value = "权属单位/部门ID") private Integer ownershipDeptId; @ApiModelProperty(value = "使用人") private String userName; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置ID") private Integer useDeptId; @ApiModelProperty(value = "仓库ID,关联warehouse表") private Integer warehouseId; @ApiModelProperty(value = "仓库名称(冗余字段)") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "备注") private String remarks; @ApiModelProperty(value = "入账状态") private String accountingStatus; @ApiModelProperty(value = "入账时间") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate accountingDate; @ApiModelProperty(value = "会计凭证号") private String accountingVoucherNo; @ApiModelProperty(value = "会计科目") private String accountingSubject; @ApiModelProperty(value = "入账金额") private BigDecimal accountingAmount; @ApiModelProperty(value = "附件URL列表(多个附件使用英文逗号拼接)") private String attachmentUrls; @ApiModelProperty(value = "是否被处置") private Integer disposed; @ApiModelProperty(value = "是否借用未归还") private Integer borrowed; @ApiModelProperty(value = "是否被领用") private Integer inUse; } ruoyi-system/src/main/resources/mapper/system/AssetInventoryTaskMapper.xml
@@ -36,37 +36,45 @@ am.measurement_unit, am.quantity, am.unit_price, ( am.quantity * am.unit_price ) AS total_value, am.total_value, am.accounting_voucher_no, am.accounting_subject, am.accounting_status, am.accounting_amount, am.accounting_date, am.asset_status, od.dept_name AS ownership_dept_name, td.dept_name AS ownership_dept_name, am.ownership_dept_id, am.asset_type_id, am.address_type, am.address, am.use_dept_id, am.warehouse_id, od2.dept_name AS use_dept_name, su.nick_name AS user_name, am.user_name, aw.warehouse_name, td2.dept_name AS use_dept_name, su.nick_name AS check_user_name, aiti.result_status AS inventory_status, aiti.real_dept_name, aiti.real_user_name aiti.real_user_name, aiti.id AS asset_inventory_task_item_id, aiti.exception_explain FROM asset_inventory_task_item aiti INNER JOIN asset_main am ON aiti.asset_main_id = am.id LEFT JOIN asset_type at2 ON am.asset_type_id = at.id asset_type at2 ON am.asset_type_id = at2.id LEFT JOIN asset_type at1 ON at1.id = (CASE WHEN at2.level = 2 THEN at2.parent_id ELSE at2.id END) LEFT JOIN sys_dept od ON am.ownership_dept_id = od.dept_id t_dept td ON am.ownership_dept_id = td.id LEFT JOIN sys_user su ON aiti.user_id = su.user_id LEFT JOIN sys_dept od2 ON am.address_type = 0 AND am.use_dept_id = od2.id LEFT JOIN t_dept td2 ON am.address_type = 0 AND am.use_dept_id = td2.id LEFT JOIN asset_warehouse aw ON am.address_type = 1 AND am.warehouse_id = aw.id WHERE aiti.inventory_task_id = #{taskId} ORDER BY @@ -99,24 +107,29 @@ am.measurement_unit, am.quantity, am.unit_price, ( am.quantity * am.unit_price ) AS total_value, am.total_value, am.accounting_voucher_no, am.accounting_subject, am.accounting_status, am.accounting_amount, am.accounting_date, am.asset_status, od.dept_name AS ownership_dept_name, td.dept_name AS ownership_dept_name, am.ownership_dept_id, am.asset_type_id, am.address_type, am.address, am.use_dept_id, am.warehouse_id, od2.dept_name AS use_dept_name, su.nick_name AS user_name, am.user_name, aw.warehouse_name, td2.dept_name AS use_dept_name, su.nick_name AS check_user_name, aiti.result_status AS inventory_status, aiti.real_dept_name, aiti.real_user_name aiti.real_user_name, aiti.id AS asset_inventory_task_item_id, aiti.exception_explain FROM asset_inventory_task_item aiti INNER JOIN @@ -124,10 +137,13 @@ LEFT JOIN asset_type at ON am.asset_type_id = at.id LEFT JOIN sys_dept od ON am.ownership_dept_id = od.dept_id t_dept td ON am.ownership_dept_id = td.id LEFT JOIN sys_user su ON aiti.user_id = su.user_id LEFT JOIN sys_dept od2 ON am.address_type = 0 AND am.use_dept_id = od2.id LEFT JOIN t_dept td2 ON am.address_type = 0 AND am.use_dept_id = td2.id LEFT JOIN asset_warehouse aw ON am.address_type = 1 AND am.warehouse_id = aw.id <where> aiti.inventory_task_id = #{query.id} <if test="query.keyword != null and query.keyword != ''"> ruoyi-system/src/main/resources/mapper/system/AssetMainMapper.xml
@@ -100,9 +100,7 @@ </select> <select id="getAssetPageList" resultType="com.ruoyi.system.vo.asset.AssetMainPageVO"> SELECT am.id AS id, am.asset_code AS assetCode, am.asset_name AS assetName, am.*, at.type_name AS assetTypeName, od.dept_name AS ownershipDeptName, am.asset_status AS assetStatus,