From 48e8e81666b2d0f49b931cb7b93729355758f2ae Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 24 九月 2026 19:24:02 +0800
Subject: [PATCH] fix(aftersalesservice): 解决售后工单查询中的空指针异常

---
 src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesNearExpiryController.java |   69 ++++++++++++++++++++++++++++++----
 1 files changed, 60 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesNearExpiryController.java b/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesNearExpiryController.java
index 69b21c7..5e02aad 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesNearExpiryController.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesNearExpiryController.java
@@ -2,16 +2,25 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.aftersalesservice.dto.AfterSalesNearExpiryExportDto;
+import com.ruoyi.aftersalesservice.dto.AfterSalesNearExpiryImportDto;
 import com.ruoyi.aftersalesservice.pojo.AfterSalesNearExpiry;
 import com.ruoyi.aftersalesservice.service.AfterSalesNearExpiryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <br>
@@ -23,18 +32,18 @@
  * @since 2026/03/02 14:40
  */
 @RestController
-@Api(tags = "涓存湡鍞悗绠$悊")
+@Tag(name = "涓存湡鍞悗绠$悊")
 @RequestMapping("/afterSalesNearExpiryService")
+@AllArgsConstructor
 public class AfterSalesNearExpiryController extends BaseController {
 
-    @Autowired
     private AfterSalesNearExpiryService afterSalesNearExpiryService;
 
     /**
      * 鏂板涓存湡鍞悗
      */
     @PostMapping("/add")
-    @ApiOperation("鏂板涓存湡鍞悗")
+    @Operation(summary = "鏂板涓存湡鍞悗")
     @Log(title = "鏂板涓存湡鍞悗", businessType = BusinessType.INSERT)
     public AjaxResult add(@RequestBody AfterSalesNearExpiry entity) {
         afterSalesNearExpiryService.add(entity);
@@ -45,7 +54,7 @@
      * 鏇存柊涓存湡鍞悗
      */
     @PostMapping("/update")
-    @ApiOperation("鏇存柊涓存湡鍞悗")
+    @Operation(summary = "鏇存柊涓存湡鍞悗")
     @Log(title = "鏇存柊涓存湡鍞悗", businessType = BusinessType.UPDATE)
     public AjaxResult update(@RequestBody AfterSalesNearExpiry entity) {
         afterSalesNearExpiryService.update(entity);
@@ -56,7 +65,7 @@
      * 鍒犻櫎涓存湡鍞悗
      */
     @DeleteMapping("/delete")
-    @ApiOperation("鍒犻櫎涓存湡鍞悗")
+    @Operation(summary = "鍒犻櫎涓存湡鍞悗")
     @Log(title = "鍒犻櫎涓存湡鍞悗", businessType = BusinessType.DELETE)
     public AjaxResult delete(Long[] ids) {
         afterSalesNearExpiryService.delete(ids);
@@ -67,11 +76,53 @@
      * 鍒嗛〉鏌ヨ涓存湡鍞悗
      */
     @GetMapping("/listPage")
-    @ApiOperation("鍒嗛〉鏌ヨ涓存湡鍞悗")
+    @Operation(summary = "鍒嗛〉鏌ヨ涓存湡鍞悗")
     @Log(title = "鍒嗛〉鏌ヨ涓存湡鍞悗", businessType = BusinessType.OTHER)
     public AjaxResult listPage(Page<AfterSalesNearExpiry> page, AfterSalesNearExpiry entity) {
         IPage<AfterSalesNearExpiry> listPage = afterSalesNearExpiryService.listPage(page, entity);
         return AjaxResult.success(listPage);
     }
 
+    /**
+     * 瀵煎叆涓存湡鍞悗
+     */
+    @PostMapping("/import")
+    @Operation(summary = "涓存湡鍞悗绠$悊-瀵煎叆")
+    @Log(title = "涓存湡鍞悗绠$悊-瀵煎叆", businessType = BusinessType.IMPORT)
+    public AjaxResult importData(MultipartFile file) {
+        return afterSalesNearExpiryService.importData(file);
+    }
+
+    /**
+     * 涓嬭浇瀵煎叆妯℃澘
+     */
+    @PostMapping("/importTemplate")
+    @Operation(summary = "涓存湡鍞悗绠$悊-瀵煎叆妯℃澘")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil<AfterSalesNearExpiryImportDto> util = new ExcelUtil<AfterSalesNearExpiryImportDto>(AfterSalesNearExpiryImportDto.class);
+        util.importTemplateExcel(response, "涓存湡鍞悗绠$悊瀵煎叆妯℃澘");
+    }
+
+    /**
+     * 瀵煎嚭涓存湡鍞悗
+     */
+    @PostMapping("/export")
+    @Operation(summary = "涓存湡鍞悗绠$悊-瀵煎嚭")
+    @Log(title = "涓存湡鍞悗绠$悊-瀵煎嚭", businessType = BusinessType.EXPORT)
+    public void export(HttpServletResponse response) {
+        Page<AfterSalesNearExpiry> page = new Page<>(-1, -1);
+        List<AfterSalesNearExpiry> list = afterSalesNearExpiryService.listPage(page, new AfterSalesNearExpiry()).getRecords();
+        List<AfterSalesNearExpiryExportDto> exportList = new ArrayList<>();
+        for (AfterSalesNearExpiry item : list) {
+            AfterSalesNearExpiryExportDto dto = new AfterSalesNearExpiryExportDto();
+            BeanUtils.copyProperties(item, dto);
+            if (item.getStatus() != null) {
+                dto.setStatusName(String.valueOf(item.getStatus()));
+            }
+            exportList.add(dto);
+        }
+        ExcelUtil<AfterSalesNearExpiryExportDto> util = new ExcelUtil<AfterSalesNearExpiryExportDto>(AfterSalesNearExpiryExportDto.class);
+        util.exportExcel(response, exportList, "涓存湡鍞悗绠$悊");
+    }
+
 }

--
Gitblit v1.9.3