From 56b8b84689ccf5389ee02814bcb8bfe407f05a87 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 28 四月 2026 11:09:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro

---
 src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java |   72 ++++++++++++++++++++++++++++-------
 1 files changed, 57 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
index e39c658..f4b807d 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -3,55 +3,66 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.device.dto.DeviceLedgerDto;
+import com.ruoyi.device.execl.DeviceLedgerExeclDto;
+import com.ruoyi.device.mapper.DeviceLedgerMapper;
+import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
 import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.device.pojo.DeviceMaintenance;
 import com.ruoyi.device.service.IDeviceLedgerService;
+import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.ArrayUtils;
-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.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.List;
 
-@Api(tags = "璁惧鍙拌处绠$悊")
+@Tag(name = "璁惧鍙拌处绠$悊")
 @RequestMapping("/device/ledger")
 @RestController
+@AllArgsConstructor
 public class DeviceLedgerController {
 
-    @Autowired
     private IDeviceLedgerService deviceLedgerService;
+    private DeviceLedgerMapper deviceLedgerMapper;
+    private DeviceMaintenanceMapper deviceMaintenanceMapper;
 
-    @ApiModelProperty("璁惧鍙拌处鍒楄〃")
+
+
+    @Operation(summary = "璁惧鍙拌处鍒楄〃")
     @GetMapping("/page")
     public AjaxResult page(Page page , DeviceLedgerDto deviceLedger) {
         return AjaxResult.success(deviceLedgerService.queryPage(page,deviceLedger));
     }
 
     @PostMapping()
-    @ApiModelProperty("娣诲姞璁惧鍙拌处")
+    @Operation(summary = "娣诲姞璁惧鍙拌处")
     public AjaxResult add(@RequestBody DeviceLedger deviceLedger) {
 
         return deviceLedgerService.saveDeviceLedger(deviceLedger);
     }
 
-    @ApiModelProperty("鏍规嵁id鏌ヨ璁惧鍙拌处")
+    @Operation(summary = "鏍规嵁id鏌ヨ璁惧鍙拌处")
     @GetMapping("/{id}")
     public AjaxResult detail(@PathVariable Long id) {
         return AjaxResult.success(deviceLedgerService.getById(id));
     }
 
     @PutMapping ()
-    @ApiModelProperty("淇敼璁惧鍙拌处")
+    @Operation(summary = "淇敼璁惧鍙拌处")
     public AjaxResult update(@RequestBody DeviceLedger deviceLedger) {
         return deviceLedgerService.updateDeviceLedger(deviceLedger);
     }
 
     @DeleteMapping("/{ids}")
-    @ApiModelProperty("鍒犻櫎璁惧鍙拌处")
+    @Operation(summary = "鍒犻櫎璁惧鍙拌处")
     public AjaxResult delete(@PathVariable("ids") ArrayList<Long> ids) {
         boolean b = deviceLedgerService.removeBatchByIds(ids);
         if (!b) {
@@ -61,15 +72,46 @@
     }
 
     @PostMapping("export")
-    @ApiModelProperty("瀵煎嚭璁惧鍙拌处")
+    @Operation(summary = "瀵煎嚭璁惧鍙拌处")
     public void export(HttpServletResponse response, Long[] ids) {
          deviceLedgerService.export(response, ids);
     }
 
+    @Operation(summary = "涓嬭浇妯℃澘")
+    @PostMapping("/downloadTemplate")
+    public void downloadTemplate(HttpServletResponse response) {
+        ExcelUtil<DeviceLedgerExeclDto> util = new ExcelUtil<>(DeviceLedgerExeclDto.class);
+        util.importTemplateExcel(response, "璁惧瀵煎叆妯℃澘");
+    }
+
+    @PostMapping("/import")
+    @Operation(summary = "瀵煎叆璁惧鍙拌处")
+    public AjaxResult importData(MultipartFile file) throws IOException {
+        Boolean b = deviceLedgerService.importData(file);
+        if (b) {
+            return AjaxResult.success("瀵煎叆鎴愬姛");
+        }
+        return AjaxResult.error("瀵煎叆澶辫触");
+    }
+
+
     @GetMapping("getDeviceLedger")
-    @ApiModelProperty("鑾峰彇璁惧鍙拌处")
+    @Operation(summary = "鑾峰彇璁惧鍙拌处")
     public AjaxResult getDeviceLedger( ) {
         return AjaxResult.success(deviceLedgerService.list(new QueryWrapper<DeviceLedger>().lambda()
                 .select(DeviceLedger::getId, DeviceLedger::getDeviceName,DeviceLedger::getDeviceModel)));
     }
+
+    @GetMapping("scanDevice")
+    @Operation(summary = "鑾峰彇璁惧鍙拌处")
+    @Anonymous
+    public AjaxResult scanDevice(Long id) {
+        List<DeviceMaintenance> list = deviceMaintenanceMapper.list1(id);
+        DeviceLedger deviceLedger = deviceLedgerMapper.selectById1(id);
+        if (list.size()>0){
+            deviceLedger.setUpdateTime(list.get(0).getMaintenanceActuallyTime());//鏈�鍚庣淮鎶ゆ椂闂�
+        }
+        deviceLedger.setCreateTime(deviceLedger.getUpdateTime().plusMonths(1));//涓嬫缁存姢鏃堕棿
+        return AjaxResult.success(deviceLedger);
+    }
 }

--
Gitblit v1.9.3