mitao
13 小时以前 d4e4dc4a180cea919dfc86a1a3e5af0abe8b6d36
无形广告资产接口
20个文件已修改
3个文件已添加
326 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java
@@ -1,6 +1,7 @@
package com.ruoyi.web.controller.api;
import cn.idev.excel.FastExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
@@ -31,7 +32,12 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Collections;
import java.util.List;
/**
 * <p>
@@ -79,13 +85,43 @@
    public R<AssetAdDetailVO> getDetail(@ApiParam(name = "id", value = "广告无形资产ID") @PathVariable Integer id) {
        return R.ok(assetAdService.getDetail(id));
    }
    @ApiOperation("下载导入模板")
    @GetMapping("/template")
    public void getTemplate(HttpServletResponse response){
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        String fileName = null;
        try {
            fileName = URLEncoder.encode("广告无形资产导入模板", "UTF-8").replaceAll("\\+", "%20");
            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
            FastExcel.write(response.getOutputStream(), AssetAdDTO.class)
                    .sheet("广告无形资产")
                    .doWrite(Collections.emptyList());
        } catch (IOException e) {
            log.error("下载导入模板异常", e);
        }
    }
    @ApiOperation("导入")
    @Log(title = "导入广告无形资产", businessType = BusinessType.IMPORT)
    @PostMapping("/import")
    public R<?> importAssetAd(@RequestPart("file") MultipartFile file){
        //TODO 待完成
        return R.ok();
        if (file.isEmpty()) {
            return R.fail("请选择一个文件上传!");
        }
        try {
            List<AssetAdDTO> list = FastExcel.read(file.getInputStream()).head(AssetAdDTO.class)
                    .sheet()
                    .doReadSync();
            assetAdService.importAssetAd(list);
            return R.ok();
        } catch (IOException e) {
            log.error("文件处理失败", e);
            return R.fail("文件处理失败!");
        }
    }
    @ApiOperation("删除")
    @Transactional(rollbackFor = Exception.class)
    @DeleteMapping("/{id}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java
New file
@@ -0,0 +1,38 @@
package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.query.ApprovalApplicationAdQuery;
import com.ruoyi.system.service.OaApprovalApplicationAdService;
import com.ruoyi.system.vo.ApprovalApplicationAdVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.validation.annotation.Validated;
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;
/**
 * @author mitao
 * @date 2025/10/20
 */
@Api(tags = {"广告制作申请相关接口"})
@Slf4j
@Validated
@RestController
@RequestMapping("/asset-ad-make")
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class AssetAdMakeController {
    private final OaApprovalApplicationAdService oaApprovalApplicationAdService;
    @PostMapping("/page")
    @ApiOperation("广告制作申请分页列表")
    public R<IPage<ApprovalApplicationAdVO>> getPageList(@RequestBody ApprovalApplicationAdQuery query){
        return R.ok(oaApprovalApplicationAdService.getPageList(query));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java
@@ -45,7 +45,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
@@ -74,7 +74,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java
@@ -55,7 +55,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java
@@ -64,7 +64,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
@@ -154,7 +154,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
@@ -183,7 +183,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java
@@ -64,8 +64,8 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
                    pageQuery.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId()));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java
@@ -64,7 +64,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java
@@ -136,7 +136,7 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java
@@ -608,7 +608,7 @@
        oaApprovalApplicationAd.setNumber(dto.getNumber());
        oaApprovalApplicationAd.setTotalAmount(dto.getTotalAmount());
        oaApprovalApplicationAd.setSpec(dto.getSpec());
        oaApprovalApplicationAd.setStatus(false);
        oaApprovalApplicationAd.setStatus(0);
        approvalApplicationAdvertisementService.save(oaApprovalApplicationAd);
        // 根据节点类型 生成代办
        oaApprovalTodoService.createApprovalTodos(oaApprovalApplications.getId(), code, approvalFlowNode,
ruoyi-system/pom.xml
@@ -60,11 +60,12 @@
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--集成EasyExcel -->
        <!--集成FastExcel -->
        <!-- https://mvnrepository.com/artifact/cn.idev.excel/fastexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.6</version>
            <groupId>cn.idev.excel</groupId>
            <artifactId>fastexcel</artifactId>
            <version>1.3.0</version>
        </dependency>
ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java
@@ -1,5 +1,8 @@
package com.ruoyi.system.dto.asset;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -10,6 +13,7 @@
 * @author mitao
 * @date 2025/10/17
 */
@ExcelIgnoreUnannotated
@Data
@ApiModel("广告无形资产数据传输对象")
public class AssetAdDTO {
@@ -18,16 +22,24 @@
    private Integer id;
    @ApiModelProperty(value = "资产名称")
    @ExcelProperty("资产名称")
    @ColumnWidth(11)
    @NotBlank(message = "资产名称")
    private String assetName;
    @ApiModelProperty(value = "位置")
    @ExcelProperty("位置")
    @ColumnWidth(6)
    private String location;
    @ApiModelProperty(value = "租赁形式(长期租赁、一次性租赁等)")
    @ExcelProperty("租赁形式")
    @ColumnWidth(11)
    private String rentalType;
    @ApiModelProperty(value = "备注")
    @ExcelProperty("备注")
    @ColumnWidth(6)
    private String remarks;
    @ApiModelProperty(value = "附件URL列表(多个使用英文逗号拼接)")
ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java
@@ -1,7 +1,12 @@
package com.ruoyi.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.model.OaApprovalApplicationAd;
import com.ruoyi.system.query.ApprovalApplicationAdQuery;
import com.ruoyi.system.vo.ApprovalApplicationAdVO;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -13,4 +18,5 @@
 */
public interface OaApprovalApplicationAdMapper extends BaseMapper<OaApprovalApplicationAd> {
    IPage<ApprovalApplicationAdVO> getPageList(Page<ApprovalApplicationAdVO> page, @Param("query") ApprovalApplicationAdQuery query);
}
ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java
@@ -59,7 +59,7 @@
    @ApiModelProperty(value = "处理状态 0-待处理 ,1-已处理")
    @TableField("status")
    private Boolean status;
    private Integer status;
    @ApiModelProperty(value = "接单人员")
    @TableField("order_taker")
ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.system.query;
import com.ruoyi.common.core.domain.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * @author mitao
 * @date 2025/10/20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("广告制作申请查询条件")
public class ApprovalApplicationAdQuery extends BasePage {
    private static final long serialVersionUID = -5492903582651207121L;
    @ApiModelProperty("标题")
    private String title;
    @ApiModelProperty("部门ID,前端不传")
    private Integer deptId;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java
@@ -8,6 +8,8 @@
import com.ruoyi.system.vo.asset.AssetAdDetailVO;
import com.ruoyi.system.vo.asset.AssetAdVO;
import java.util.List;
/**
 * <p>
 * 广告无形资产表 服务类
@@ -36,5 +38,16 @@
     */
    IPage<AssetAdVO> getPageList(AssetAdQuery query);
    /**
     * 获取详情
     * @param id
     * @return
     */
    AssetAdDetailVO getDetail(Integer id);
    /**
     * 导入广告无形资产
     * @param list
     */
    void importAssetAd(List<AssetAdDTO> list);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java
@@ -1,7 +1,10 @@
package com.ruoyi.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.model.OaApprovalApplicationAd;
import com.ruoyi.system.query.ApprovalApplicationAdQuery;
import com.ruoyi.system.vo.ApprovalApplicationAdVO;
/**
 * <p>
@@ -13,4 +16,5 @@
 */
public interface OaApprovalApplicationAdService extends IService<OaApprovalApplicationAd> {
    IPage<ApprovalApplicationAdVO> getPageList(ApprovalApplicationAdQuery query);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java
@@ -181,4 +181,16 @@
        return detailVO;
    }
    @Override
    public void importAssetAd(List<AssetAdDTO> list) {
        List<AssetAd> collect = list.stream().map(item -> {
            AssetAd assetAd = BeanUtil.copyProperties(item, AssetAd.class);
            assetAd.setAssetTypeId(2);
            assetAd.setAssetCode(generateCode());
            assetAd.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
            return assetAd;
        }).collect(Collectors.toList());
        saveBatch(collect);
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java
@@ -198,33 +198,25 @@
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDept().getDeptName();
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_INVENTORY_DEPT_NAMES.contains(deptName)) {
                    hasNoPermission =  true;
                }
            } catch (Exception e) {
                log.error("获取当前登录用户部门信息异常", e);
                // 如果获取部门信息失败
            }
        }
        // 1. 查询所有有效的盘点任务,支持筛选条件
        LambdaQueryWrapper<AssetInventoryTask> taskWrapper = new LambdaQueryWrapper<>();
        taskWrapper.eq(AssetInventoryTask::getDisabled, false)
                .ne(AssetInventoryTask::getStatus, AssetInventoryTaskStatusEnum.CANCELED.getCode())
                   .orderByDesc(AssetInventoryTask::getCreateTime);
        taskWrapper.ne(AssetInventoryTask::getStatus, AssetInventoryTaskStatusEnum.CANCELED.getCode())
                .orderByDesc(AssetInventoryTask::getCreateTime);
        // 按部门筛选
        if (hasNoPermission) {
            //没有权限,根据盘点人查询任务列表
            taskWrapper.apply("EXISTS (SELECT 1 FROM asset_inventory_task_item item WHERE item.inventory_task_id = id AND item.user_id = {0})", Math.toIntExact(userId));
        }
        try {
            SysUser currentUser = SecurityUtils.getLoginUser().getUser();
            taskWrapper.eq(AssetInventoryTask::getUserId, Math.toIntExact(currentUser.getUserId()));
        } catch (Exception e) {
            // 如果获取用户信息失败,不应用筛选条件
            log.warn("获取当前用户信息失败,不应用'我的任务'筛选条件", e);
            taskWrapper.apply("EXISTS (SELECT 1 FROM asset_inventory_task_item item WHERE item.inventory_task_id = asset_inventory_task.id AND item.user_id = {0})", Math.toIntExact(userId));
        }
        List<AssetInventoryTask> tasks = this.list(taskWrapper);
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java
@@ -1,9 +1,18 @@
package com.ruoyi.system.service.impl;
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.constants.AssetDeptConstant;
import com.ruoyi.system.mapper.OaApprovalApplicationAdMapper;
import com.ruoyi.system.model.OaApprovalApplicationAd;
import com.ruoyi.system.query.ApprovalApplicationAdQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.OaApprovalApplicationAdService;
import com.ruoyi.system.vo.ApprovalApplicationAdVO;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
/**
@@ -15,6 +24,33 @@
 * @since 2025-09-15
 */
@Service
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class OaApprovalApplicationAdServiceImpl extends ServiceImpl<OaApprovalApplicationAdMapper, OaApprovalApplicationAd> implements OaApprovalApplicationAdService {
    private final ISysUserService sysUserService;
    @Override
    public IPage<ApprovalApplicationAdVO> getPageList(ApprovalApplicationAdQuery query) {
        // 数据权限:超级管理员/资产管理部查看所有数据,其他部门查看当前及下级部门的数据
        Long userId = SecurityUtils.getUserId();
        boolean isAdmin = SecurityUtils.isAdmin(userId);
        if (!isAdmin) {
            try {
                // 获取当前用户的部门名称
                String deptName = sysUserService.selectUserById(userId).getDeptName();
                // 非超级管理员且非资产管理部,设置部门权限
                if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) {
                    query.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId()));
                }
            } catch (Exception e) {
                // 如果获取部门信息失败,默认设置部门权限
                try {
                    query.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId()));
                } catch (Exception ex) {
                    // ignore parse, leave null if cannot parse
                }
            }
        }
        return baseMapper.getPageList(new Page<>(query.getPageNum(), query.getPageSize()), query);
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java
@@ -162,6 +162,7 @@
        vo.setAddress(detail.getAddress());
        vo.setOwnershipDeptId(detail.getOwnershipDeptId());
        vo.setUserName(detail.getUserName());
        vo.setChangeTime(detail.getChangeTime());
        vo.setItems(assetMainVOS);
        return vo;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java
@@ -60,7 +60,7 @@
        // 查询当天已生成的申请单号数量
        Long count = this.lambdaQuery()
                .likeLeft(OaApprovalApplications::getApplicationCode, prefix)
                .likeRight(OaApprovalApplications::getApplicationCode, prefix)
                .ge(OaApprovalApplications::getCreateTime, LocalDate.now().atStartOfDay())
                .lt(OaApprovalApplications::getCreateTime, LocalDate.now().plusDays(1).atStartOfDay())
                .count();
ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java
New file
@@ -0,0 +1,57 @@
package com.ruoyi.system.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * @author mitao
 * @date 2025/10/20
 */
@Data
@ApiModel("广告制作申请视图对象")
public class ApprovalApplicationAdVO {
    @ApiModelProperty(value = "广告制作申请关联表主键")
    private Integer id;
    @ApiModelProperty(value = "事项标题")
    private String title;
    @ApiModelProperty(value = "申请日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "申请人")
    private String applicantName;
    @ApiModelProperty(value = "申请人部门")
    private String deptName;
    @ApiModelProperty(value = "内容")
    private String content;
    @ApiModelProperty(value = "数量")
    private Integer number;
    @ApiModelProperty(value = "总金额")
    private BigDecimal totalAmount;
    @ApiModelProperty(value = "规格")
    private String spec;
    @ApiModelProperty(value = "处理状态 0-待处理 ,1-已处理")
    private Integer status;
    @ApiModelProperty(value = "接单人员")
    private String orderTaker;
    @ApiModelProperty(value = "处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime handleTime;
}
ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml
@@ -21,5 +21,36 @@
    <sql id="Base_Column_List">
        id, approval_application_id, title, content, number, total_amount, spec, status, order_taker, file_url, handle_time
    </sql>
    <select id="getPageList" resultType="com.ruoyi.system.vo.ApprovalApplicationAdVO">
        SELECT oaaa.id,
               oaaa.approval_application_id,
               oaaa.title,
               oaaa.content,
               oaaa.number,
               oaaa.total_amount,
               oaaa.spec,
               oaaa.status,
               oaaa.order_taker,
               oaaa.file_url,
               oaaa.handle_time,
               su.nick_name as applicant_name,
               td.dept_name,
               oaa.create_time
        FROM oa_approval_applications oaa
                 LEFT JOIN oa_approval_application_ad oaaa ON oaaa.approval_application_id = oaa.id
                 LEFT JOIN sys_user su ON oaa.applicant_user_id = su.user_id
                 LEFT JOIN t_dept td ON oaa.dept_id = td.id
        <where>
            oaa.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
            oaa.approval_id = ${@com.ruoyi.system.emums.ApprovalTypeEnum@ASSET_CHANGE.getCode()}
            AND oaa.approval_status = ${@com.ruoyi.system.emums.ApprovalStatusEnum@PASSED.getCode()}
        <if test="query.title != null and query.title != ''">
            AND oaaa.title LIKE CONCAT('%', #{query.title}, '%')
        </if>
        <if test="query.deptId != null">
            AND (od.id = #{query.deptId} OR FIND_IN_SET(#{query.deptId}, od.parent_id))
        </if>
        </where>
    </select>
</mapper>