From 2dc478231fd09a88a4d86d44388ae807aca08bc5 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 01 一月 2025 10:14:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 57 insertions(+), 1 deletions(-)

diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java
index 4246a9c..7c9d579 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningRecordServiceImpl.java
@@ -1,10 +1,24 @@
 package com.sinata.system.service.impl;
 
+import cn.idev.excel.FastExcel;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sinata.common.entity.PageDTO;
+import com.sinata.common.utils.StringUtils;
 import com.sinata.system.domain.MwWarningRecord;
+import com.sinata.system.domain.query.MwWarningRecordQuery;
+import com.sinata.system.domain.vo.MwWarningRecordVO;
+import com.sinata.system.enums.WarningStatusEnum;
 import com.sinata.system.mapper.MwWarningRecordMapper;
 import com.sinata.system.service.MwWarningRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sinata.system.service.SysDepartmentService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
 
 /**
  * <p>
@@ -15,6 +29,48 @@
  * @since 2024-12-02
  */
 @Service
+@RequiredArgsConstructor
 public class MwWarningRecordServiceImpl extends ServiceImpl<MwWarningRecordMapper, MwWarningRecord> implements MwWarningRecordService {
+    private final SysDepartmentService sysDepartmentService;
+    private final HttpServletResponse response;
 
+    /**
+     * 预警信息分页列表
+     *
+     * @param query
+     * @return
+     */
+    @Override
+    public PageDTO<MwWarningRecordVO> pageList(MwWarningRecordQuery query) {
+        String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId());
+        Page<MwWarningRecordVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
+        return PageDTO.of(page);
+    }
+
+    /**
+     * 解除预警
+     *
+     * @param id
+     */
+    @Override
+    public void relieve(Long id) {
+        lambdaUpdate().set(MwWarningRecord::getStatus, WarningStatusEnum.RESOLVED.getCode()).eq(MwWarningRecord::getId, id).update();
+    }
+
+    @Override
+    public void export(MwWarningRecordQuery query) throws IOException {
+        String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId());
+        if (StringUtils.isBlank(treeCode)) {
+            return;
+        }
+        List<MwWarningRecordVO> list = baseMapper.queryList(new Page<>(query.getPageCurr(), query.getPageSize()), query, treeCode);
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        String fileName = URLEncoder.encode("预警信息", "UTF-8").replaceAll("\\+", "%20");
+        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+
+        FastExcel.write(response.getOutputStream(), MwWarningRecordVO.class)
+                .sheet("预警信息")
+                .doWrite(list);
+    }
 }

--
Gitblit v1.7.1