From c76a3b1194f320bf84061676d14200f7e78f044e Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 29 八月 2025 17:51:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java             |   27 ++++
 src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeController.java    |   63 ++++++++++
 src/main/java/com/ruoyi/collaborativeApproval/dto/NoticeDTO.java                  |   11 +
 src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java                     |    4 
 src/main/java/com/ruoyi/collaborativeApproval/pojo/Notice.java                    |   78 +++++++++++++
 src/main/java/com/ruoyi/collaborativeApproval/service/impl/NoticeServiceImpl.java |   45 +++++++
 src/main/resources/mapper/device/DeviceMaintenanceMapper.xml                      |   35 +++--
 src/main/java/com/ruoyi/collaborativeApproval/mapper/NoticeMapper.java            |   20 +++
 src/main/resources/mapper/device/DeviceLedgerMapper.xml                           |    9 +
 src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java                |    6 +
 src/main/java/com/ruoyi/collaborativeApproval/service/NoticeService.java          |   17 ++
 src/main/resources/mapper/collaborativeApproval/NoticeMapper.xml                  |   21 +++
 12 files changed, 319 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeController.java
new file mode 100644
index 0000000..df8e248
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.collaborativeApproval.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.dto.NoticeDTO;
+import com.ruoyi.collaborativeApproval.service.NoticeService;
+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 lombok.AllArgsConstructor;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+@Api(tags = "閫氱煡鍏憡")
+@RequestMapping("/collaborativeApproval/notice")
+public class NoticeController extends BaseController {
+
+    private final NoticeService noticeService;
+
+    @GetMapping("/page")
+    @Log(title = "鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    public AjaxResult listPage(Page page, NoticeDTO noticeDTO){
+        return AjaxResult.success(noticeService.listPage(page, noticeDTO));
+    }
+
+    @PostMapping("/add")
+    @Log(title = "鏂板", businessType = BusinessType.INSERT)
+    @ApiOperation("鏂板")
+    public AjaxResult add(@RequestBody NoticeDTO noticeDTO){
+        return AjaxResult.success(noticeService.save(noticeDTO));
+    }
+
+    @PutMapping("/update")
+    @Log(title = "淇敼", businessType = BusinessType.UPDATE)
+    @ApiOperation("淇敼")
+    public AjaxResult update(@RequestBody NoticeDTO noticeDTO){
+        return AjaxResult.success(noticeService.updateById(noticeDTO));
+    }
+
+    @DeleteMapping("/{ids}")
+    @Log(title = "鍒犻櫎", businessType = BusinessType.DELETE)
+    @ApiOperation("鍒犻櫎")
+    public AjaxResult delete(@PathVariable("ids") List<Long> ids){
+        if (CollectionUtils.isEmpty(ids)) {
+            throw new RuntimeException("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        }
+        return AjaxResult.success(noticeService.removeBatchByIds(ids));
+    }
+
+    @GetMapping("/count")
+    @Log(title = "鑾峰彇鍏憡鏁伴噺", businessType = BusinessType.OTHER)
+    @ApiOperation("鑾峰彇鍏憡鏁伴噺")
+    public AjaxResult count(){
+        return AjaxResult.success(noticeService.selectCount());
+    }
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/dto/NoticeDTO.java b/src/main/java/com/ruoyi/collaborativeApproval/dto/NoticeDTO.java
new file mode 100644
index 0000000..ade8acb
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/dto/NoticeDTO.java
@@ -0,0 +1,11 @@
+package com.ruoyi.collaborativeApproval.dto;
+
+import com.ruoyi.collaborativeApproval.pojo.Notice;
+import lombok.Data;
+
+@Data
+public class NoticeDTO extends Notice {
+    private String CreateUserName;
+
+    private Long count;
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/mapper/NoticeMapper.java b/src/main/java/com/ruoyi/collaborativeApproval/mapper/NoticeMapper.java
new file mode 100644
index 0000000..1b6d67d
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/mapper/NoticeMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.collaborativeApproval.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.collaborativeApproval.dto.NoticeDTO;
+import com.ruoyi.collaborativeApproval.pojo.Notice;
+import org.apache.ibatis.annotations.Param;
+
+public interface NoticeMapper extends BaseMapper<Notice> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param page
+     * @param noticeDTO
+     * @return
+     */
+    IPage<NoticeDTO> listPage(Page page, @Param("ew") NoticeDTO noticeDTO);
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/pojo/Notice.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/Notice.java
new file mode 100644
index 0000000..ef046ac
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/Notice.java
@@ -0,0 +1,78 @@
+package com.ruoyi.collaborativeApproval.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鍏憡琛�
+ *
+ */
+@Data
+@TableName("notice")
+@ApiModel
+public class Notice {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 鍏憡鏍囬
+     */
+    @ApiModelProperty("鍏憡鏍囬")
+    private String title;
+
+    /**
+     * 鍏憡绫诲瀷锛�1鏀惧亣閫氱煡 2璁惧缁翠慨閫氱煡锛�
+     */
+    @ApiModelProperty("鍏憡绫诲瀷锛�1鏀惧亣閫氱煡 2璁惧缁翠慨閫氱煡锛�")
+        private Integer type;
+
+    /**
+     * 鐘舵�侊紙0鑽夌 1鍙戝竷 2宸蹭笅绾匡級
+     */
+    @ApiModelProperty("鐘舵�侊紙0鑽夌 1鍙戝竷 2宸蹭笅绾匡級")
+    private Integer status;
+
+    /**
+     * 鍏憡鍐呭
+     */
+    @ApiModelProperty("鍏憡鍐呭")
+    private String content;
+
+    /**
+     * 浼樺厛绾�(1鏅�� 2閲嶈 3绱ф��)
+     */
+    @ApiModelProperty("浼樺厛绾�(1鏅�� 2閲嶈 3绱ф��)")
+    private Integer priority;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/NoticeService.java b/src/main/java/com/ruoyi/collaborativeApproval/service/NoticeService.java
new file mode 100644
index 0000000..31ded68
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/NoticeService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.collaborativeApproval.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.collaborativeApproval.dto.NoticeDTO;
+import com.ruoyi.collaborativeApproval.pojo.Notice;
+
+import java.util.List;
+
+
+public interface NoticeService extends IService<Notice> {
+
+    IPage<NoticeDTO> listPage(Page page, NoticeDTO noticeDTO);
+
+    List<NoticeDTO> selectCount();
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/NoticeServiceImpl.java b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/NoticeServiceImpl.java
new file mode 100644
index 0000000..8f2216b
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/NoticeServiceImpl.java
@@ -0,0 +1,45 @@
+package com.ruoyi.collaborativeApproval.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.collaborativeApproval.dto.NoticeDTO;
+import com.ruoyi.collaborativeApproval.mapper.NoticeMapper;
+import com.ruoyi.collaborativeApproval.pojo.Notice;
+import com.ruoyi.collaborativeApproval.service.NoticeService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Slf4j
+@AllArgsConstructor
+public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements NoticeService {
+
+    private final NoticeMapper noticeMapper;
+
+    @Override
+    public IPage<NoticeDTO> listPage(Page page, NoticeDTO noticeDTO) {
+        return noticeMapper.listPage(page, noticeDTO);
+    }
+
+    @Override
+    public List<NoticeDTO> selectCount() {
+        List<NoticeDTO> result = new ArrayList<>();
+        NoticeDTO notice = new NoticeDTO();
+        notice.setType(1);
+        notice.setCount(noticeMapper.selectCount(new LambdaQueryWrapper<Notice>().eq(Notice::getType, 1)));
+        result.add(notice);
+
+        NoticeDTO notice1 = new NoticeDTO();
+        notice1.setType(2);
+        notice1.setCount(noticeMapper.selectCount(new LambdaQueryWrapper<Notice>().eq(Notice::getType, 2)));
+        result.add(notice1);
+
+        return result;
+    }
+}
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
index abac6a7..264f23a 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -2,14 +2,21 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.device.dto.DeviceLedgerDto;
+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.device.service.IDeviceMaintenanceService;
+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.ehcache.spi.service.MaintainableService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -18,6 +25,7 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 @Api(tags = "璁惧鍙拌处绠$悊")
 @RequestMapping("/device/ledger")
@@ -26,6 +34,12 @@
 
     @Autowired
     private IDeviceLedgerService deviceLedgerService;
+
+    @Autowired
+    private DeviceLedgerMapper deviceLedgerMapper;
+
+    @Autowired
+    private DeviceMaintenanceMapper deviceMaintenanceMapper;
 
     @ApiModelProperty("璁惧鍙拌处鍒楄〃")
     @GetMapping("/page")
@@ -85,4 +99,17 @@
         return AjaxResult.success(deviceLedgerService.list(new QueryWrapper<DeviceLedger>().lambda()
                 .select(DeviceLedger::getId, DeviceLedger::getDeviceName,DeviceLedger::getDeviceModel)));
     }
+
+    @GetMapping("scanDevice")
+    @ApiModelProperty("鑾峰彇璁惧鍙拌处")
+    @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);
+    }
 }
diff --git a/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java b/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java
index 558b55b..17683d4 100644
--- a/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java
+++ b/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java
@@ -1,5 +1,6 @@
 package com.ruoyi.device.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,4 +18,7 @@
     IPage<DeviceLedgerDto> queryPage(Page page, @Param("deviceLedger") DeviceLedgerDto deviceLedgerDto);
 
     List<DeviceLedgerExeclDto> deviceLedgerExportList(DeviceLedger deviceLedger);
+
+    @InterceptorIgnore(tenantLine = "true")
+    DeviceLedger selectById1(Long id);
 }
diff --git a/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java b/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java
index 5fde866..86c726b 100644
--- a/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java
+++ b/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java
@@ -1,6 +1,7 @@
 package com.ruoyi.device.mapper;
 
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,10 +10,15 @@
 import com.ruoyi.device.pojo.DeviceMaintenance;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 @Mapper
 public interface DeviceMaintenanceMapper extends BaseMapper<DeviceMaintenance> {
 
     IPage<DeviceMaintenanceDto> queryPage(Page page, DeviceMaintenanceDto deviceMaintenanceDto);
 
     DeviceMaintenanceDto detailById(Long id);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<DeviceMaintenance> list1(Long id);
 }
diff --git a/src/main/resources/mapper/collaborativeApproval/NoticeMapper.xml b/src/main/resources/mapper/collaborativeApproval/NoticeMapper.xml
new file mode 100644
index 0000000..5f646ad
--- /dev/null
+++ b/src/main/resources/mapper/collaborativeApproval/NoticeMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.collaborativeApproval.mapper.NoticeMapper">
+
+    <select id="listPage" resultType="com.ruoyi.collaborativeApproval.dto.NoticeDTO">
+        select n.*, su.user_name as create_user_name
+        from notice n
+        left join sys_user su on n.create_user = su.user_id
+        <where>
+            <if test="ew.title != null and ew.title != ''">
+                and n.title like concat('%',#{ew.title},'%')
+            </if>
+            <if test="ew.type != null">
+                and n.type = #{ew.type}
+            </if>
+            <if test="ew.status != null">
+                and n.status = #{ew.status}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/device/DeviceLedgerMapper.xml b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
index 4a8f435..b2a849f 100644
--- a/src/main/resources/mapper/device/DeviceLedgerMapper.xml
+++ b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
@@ -23,7 +23,7 @@
         dl.update_user,
         dl.tenant_id
         FROM device_ledger dl
-        left join  sys_user  su on dl.create_user = su.user_id
+        left join sys_user su on dl.create_user = su.user_id
         <where>
             <!-- 璁惧鍚嶇О -->
             <if test="deviceLedger.deviceName != null and deviceLedger.deviceName != ''">
@@ -59,7 +59,7 @@
                 AND dl.create_time &gt;= DATE_FORMAT(#{deviceLedger.entryDateStart},'%Y-%m-%d')
             </if>
             <if test="deviceLedger.entryDateEnd != null and deviceLedger.entryDateEnd != '' ">
-                AND  dl.create_time &lt;= DATE_FORMAT(#{deviceLedger.entryDateEnd},'%Y-%m-%d')
+                AND dl.create_time &lt;= DATE_FORMAT(#{deviceLedger.entryDateEnd},'%Y-%m-%d')
             </if>
 
             <!-- 绉熸埛ID -->
@@ -72,5 +72,10 @@
     <select id="deviceLedgerExportList" resultType="com.ruoyi.device.execl.DeviceLedgerExeclDto">
 
     </select>
+    <select id="selectById1" resultType="com.ruoyi.device.pojo.DeviceLedger">
+        select *
+        from device_ledger
+        where id = #{id}
+    </select>
 
 </mapper>
diff --git a/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml b/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
index 468198e..9917ce2 100644
--- a/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
+++ b/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
@@ -7,19 +7,19 @@
 
     <select id="queryPage" resultType="com.ruoyi.device.dto.DeviceMaintenanceDto">
         select dm.id,
-               dm.device_ledger_id,
-               dm.maintenance_plan_time,
-                dm.maintenance_actually_time,
-                dm.maintenance_result,
-                dm.status,
-                dm.create_time,
-                dm.update_time,
-                dm.create_user,
-                dm.update_user,
-                dm.tenant_id,
-                dm.maintenance_actually_name,
-               dl.device_name,
-               dl.device_model,
+        dm.device_ledger_id,
+        dm.maintenance_plan_time,
+        dm.maintenance_actually_time,
+        dm.maintenance_result,
+        dm.status,
+        dm.create_time,
+        dm.update_time,
+        dm.create_user,
+        dm.update_user,
+        dm.tenant_id,
+        dm.maintenance_actually_name,
+        dl.device_name,
+        dl.device_model,
         su.user_name as create_user_name
         from device_maintenance dm
         left join device_ledger dl on dm.device_ledger_id = dl.id
@@ -60,9 +60,14 @@
                dl.device_model,
                su.user_name as create_user_name
         from device_maintenance dm
-        left join device_ledger dl on dm.device_ledger_id = dl.id
-        left join sys_user su on dm.create_user = su.user_id
+                 left join device_ledger dl on dm.device_ledger_id = dl.id
+                 left join sys_user su on dm.create_user = su.user_id
         where dm.id = #{id}
     </select>
+    <select id="list1" resultType="com.ruoyi.device.pojo.DeviceMaintenance">
+        select *
+        from device_maintenance
+        where device_ledger_id = #{id}
+    </select>
 
 </mapper>

--
Gitblit v1.9.3