From ecb58a0996cfc4aab911425ba1cea2ba28cc2661 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 07 三月 2024 16:13:33 +0800
Subject: [PATCH] 设备消息上报及处理接口

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java         |    8 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java |   25 ++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java    |   67 +++++++++++++++++++++-
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml         |   17 +++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java                  |   14 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java            |    8 ++
 6 files changed, 134 insertions(+), 5 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java
index 55f7553..951b653 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java
@@ -1,15 +1,18 @@
 package org.jeecg.modules.mdc.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.dto.message.MessageDTO;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.mdc.constant.MdcConstant;
 import org.jeecg.modules.mdc.entity.MdcMessageApproval;
 import org.jeecg.modules.mdc.service.IMdcMessageApprovalService;
 import org.springframework.web.bind.annotation.*;
@@ -19,6 +22,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * @Description: mdc娑堟伅纭琛�
@@ -34,6 +38,9 @@
 
     @Resource
     private IMdcMessageApprovalService mdcMessageApprovalService;
+
+    @Resource
+    private ISysBaseAPI sysBaseApi;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -51,9 +58,10 @@
                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                    HttpServletRequest req) {
-        QueryWrapper<MdcMessageApproval> queryWrapper = QueryGenerator.initQueryWrapper(mdcMessageApproval, req.getParameterMap());
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = user.getId();
         Page<MdcMessageApproval> page = new Page<MdcMessageApproval>(pageNo, pageSize);
-        IPage<MdcMessageApproval> pageList = mdcMessageApprovalService.page(page, queryWrapper);
+        IPage<MdcMessageApproval> pageList = mdcMessageApprovalService.pageList(userId, page, mdcMessageApproval, req);
         return Result.OK(pageList);
     }
 
@@ -150,4 +158,55 @@
         return super.importExcel(request, response, MdcMessageApproval.class);
     }
 
+    /**
+     * 涓婃姤鍘熷洜
+     */
+    @AutoLog(value = "mdc娑堟伅纭琛�-涓婃姤鍘熷洜")
+    @ApiOperation(value = "mdc娑堟伅纭琛�-涓婃姤鍘熷洜", notes = "mdc娑堟伅纭琛�-涓婃姤鍘熷洜")
+    @RequestMapping(value = "/reportReason", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<?> reportReason(@RequestBody MdcMessageApproval mdcMessageApproval) {
+        mdcMessageApproval.setMsgStatus(MdcConstant.MSG_STATUS_1);
+        mdcMessageApprovalService.updateById(mdcMessageApproval);
+        List<String> approverIdList = Arrays.asList(mdcMessageApproval.getApproverIds().split(","));
+        for (String approverId : approverIdList) {
+            //涓婃姤鍘熷洜鍙戦�佹秷鎭粰纭浜�
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle("璁惧鐘舵�侀暱鏃堕棿鏈彉鍖栧師鍥犱笂鎶ョ‘璁わ紒");
+            messageDTO.setCategory("娑堟伅");
+            LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            messageDTO.setFromUser(user.getUsername());
+            LoginUser userById = sysBaseApi.getUserById(approverId);
+            messageDTO.setToUser(userById.getUsername());
+            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcMessageApproval.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏃堕棿鏈彉鍖栧師鍥犱笂鎶ュ緟纭锛�");
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+
+        return Result.OK("涓婃姤鎴愬姛锛�");
+    }
+
+    /**
+     * 澶勭悊纭
+     */
+    @AutoLog(value = "mdc娑堟伅纭琛�-澶勭悊纭")
+    @ApiOperation(value = "mdc娑堟伅纭琛�-澶勭悊纭", notes = "mdc娑堟伅纭琛�-澶勭悊纭")
+    @RequestMapping(value = "/handleConfirm", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<?> handleConfirm(@RequestBody MdcMessageApproval mdcMessageApproval) {
+        if (mdcMessageApproval.getMsgStatus().equals(MdcConstant.MSG_STATUS_3)) {
+            //澶勭悊琚嫆缁濓紝闇�閲嶆柊涓婃姤鍘熷洜
+            //涓婃姤鍘熷洜鍙戦�佹秷鎭粰纭浜�
+            MessageDTO messageDTO = new MessageDTO();
+            messageDTO.setTitle("璁惧鐘舵�佹秷鎭紒");
+            messageDTO.setCategory("娑堟伅");
+            messageDTO.setFromUser("admin");
+            messageDTO.setToUser(mdcMessageApproval.getUpdateBy());
+            messageDTO.setContent("鎮ㄧ殑璁惧缂栧彿涓� [" + mdcMessageApproval.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏃堕棿鏈彉鍖栦笂鎶ュ凡琚澶囪秴绾х鐞嗗憳鎷掔粷锛岃閲嶆柊濉啓涓婃姤鍘熷洜锛�");
+            sysBaseApi.sendSysAnnouncement(messageDTO);
+        }
+        mdcMessageApprovalService.updateById(mdcMessageApproval);
+
+        return Result.OK("鎴愬姛锛�");
+    }
+
+
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java
index c76b286..1ac751e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.mdc.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -81,5 +82,16 @@
     @Excel(name = "涓婃姤鍐呭", width = 15)
     @ApiModelProperty(value = "涓婃姤鍐呭")
     private String reportContent;
-
+    /**
+     * 澶勭悊鎸夐挳
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "澶勭悊鎸夐挳")
+    private Boolean hasProcess = false;
+    /**
+     * 纭鎸夐挳
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "纭鎸夐挳")
+    private Boolean hasConfirm = false;
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java
index 00ba35e..d5fae4d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java
@@ -1,6 +1,9 @@
 package org.jeecg.modules.mdc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.mdc.entity.MdcMessageApproval;
 
 /**
@@ -11,4 +14,9 @@
  */
 public interface MdcMessageApprovalMapper extends BaseMapper<MdcMessageApproval> {
 
+    /**
+     * 鍒楄〃鏌ヨ
+     */
+    IPage<MdcMessageApproval> pageList(@Param("userId") String userId, Page<MdcMessageApproval> page, @Param("mdcMessageApproval") MdcMessageApproval mdcMessageApproval);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml
index 39169e2..e2b4aa5 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml
@@ -2,4 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.mdc.mapper.MdcMessageApprovalMapper">
 
+    <!--鍒楄〃鏌ヨ-->
+    <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcMessageApproval">
+        SELECT
+            *
+        FROM
+            mdc_message_approval
+        <where>
+            (sender_ids LIKE CONCAT(CONCAT('%',#{userId}),'%') OR approver_ids LIKE CONCAT(CONCAT('%',#{userId}),'%'))
+            <if test="mdcMessageApproval.equipmentId != null and mdcMessageApproval.equipmentId != ''">
+                AND equipment_id = #{mdcMessageApproval.equipmentId}
+            </if>
+            <if test="mdcMessageApproval.msgStatus != null and mdcMessageApproval.msgStatus != ''">
+                AND msg_status = #{msgStatus}
+            </if>
+        </where>
+        ORDER BY create_time DESC
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java
index 71dbfb7..aa7cb03 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java
@@ -1,7 +1,11 @@
 package org.jeecg.modules.mdc.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.mdc.entity.MdcMessageApproval;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * @Description: mdc娑堟伅纭琛�
@@ -11,4 +15,8 @@
  */
 public interface IMdcMessageApprovalService extends IService<MdcMessageApproval> {
 
+    /**
+     * 鍒楄〃鏌ヨ
+     */
+    IPage<MdcMessageApproval> pageList(String userId, Page<MdcMessageApproval> page, MdcMessageApproval mdcMessageApproval, HttpServletRequest req);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java
index 0beff04..8c3565a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java
@@ -1,10 +1,16 @@
 package org.jeecg.modules.mdc.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 org.jeecg.modules.mdc.constant.MdcConstant;
 import org.jeecg.modules.mdc.entity.MdcMessageApproval;
 import org.jeecg.modules.mdc.mapper.MdcMessageApprovalMapper;
 import org.jeecg.modules.mdc.service.IMdcMessageApprovalService;
 import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * @Description: mdc娑堟伅纭琛�
@@ -15,4 +21,23 @@
 @Service
 public class MdcMessageApprovalServiceImpl extends ServiceImpl<MdcMessageApprovalMapper, MdcMessageApproval> implements IMdcMessageApprovalService {
 
+    /**
+     * 鍒〃鏌ヨ
+     */
+    @Override
+    public IPage<MdcMessageApproval> pageList(String userId, Page<MdcMessageApproval> page, MdcMessageApproval mdcMessageApproval, HttpServletRequest req) {
+        IPage<MdcMessageApproval> pageList = this.baseMapper.pageList(userId, page, mdcMessageApproval);
+        List<MdcMessageApproval> mdcMessageApprovalList = pageList.getRecords();
+        if (mdcMessageApprovalList != null && !mdcMessageApprovalList.isEmpty()) {
+            pageList.getRecords().forEach(item -> {
+                if (item.getSenderIds().contains(userId) && (item.getMsgStatus().equals(MdcConstant.MSG_STATUS_0) || item.getMsgStatus().equals(MdcConstant.MSG_STATUS_3))) {
+                    item.setHasProcess(true);
+                }
+                if (item.getSenderIds().contains(userId) && item.getMsgStatus().equals(MdcConstant.MSG_STATUS_1)) {
+                    item.setHasConfirm(true);
+                }
+            });
+        }
+        return pageList;
+    }
 }

--
Gitblit v1.9.3