From d4e4dc4a180cea919dfc86a1a3e5af0abe8b6d36 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 20 十月 2025 18:48:14 +0800
Subject: [PATCH] 无形广告资产接口

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java                        |   40 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java              |    2 
 ruoyi-system/pom.xml                                                                                 |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java                                |   12 ++
 ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml                      |   31 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java                              |   13 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java         |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java     |   36 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java   |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java                    |   38 ++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java              |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java      |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java                      |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java          |   18 --
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java    |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java                       |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java                |    6 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java     |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java   |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java                    |   23 +++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java                          |   57 +++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java                     |   12 ++
 23 files changed, 294 insertions(+), 32 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java
index fccb633..44a79ec 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java
+++ b/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}")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java
new file mode 100644
index 0000000..cb4e0b6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java
@@ -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));
+    }
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java
index 4ade46e..58966a1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java
+++ b/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)) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java
index 84275e7..265cead 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java
+++ b/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)) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java
index b684ab7..ff8562e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java
+++ b/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)) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java
index 249a1d9..f360762 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java
+++ b/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()));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java
index d0e754f..8cb3d6d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java
+++ b/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)) {
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 a0c5174..2b3935f 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
@@ -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)) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java
index 6351495..d6ffde2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java
+++ b/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,
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index 6f393c1..e3b68e4 100644
--- a/ruoyi-system/pom.xml
+++ b/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>
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java
index 016eba0..e3ef974 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java
+++ b/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列表(多个使用英文逗号拼接)")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java
index 5812d35..f6c5f90 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java
+++ b/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);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java
index 4e15866..7fddb21 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java
+++ b/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")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java
new file mode 100644
index 0000000..8188db6
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java
@@ -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;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java
index 8b0ebb2..a40fcfa 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java
+++ b/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);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java
index 5a0e824..0bef412 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java
+++ b/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);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java
index 97ed50b..29d748e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java
+++ b/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);
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java
index ba48eb4..cb0c6bb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java
+++ b/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);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java
index 41186fe..78f5c67 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java
+++ b/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);
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java
index b626667..62b6ccb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java
+++ b/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;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java
index 1af869a..ffb53ed 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java
+++ b/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();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java
new file mode 100644
index 0000000..6326d86
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java
@@ -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;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml
index 22e143d..74ea648 100644
--- a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml
+++ b/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>

--
Gitblit v1.7.1