From d44379b135aee3a068edec5c28d57cdb6cec14c6 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Wed, 15 Jan 2025 16:04:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mine/MineHealthController.java | 2 +- .../mine/MineWarningController.java | 18 +++++- .../main/java/yq/common/annotation/Excel.java | 4 +- .../main/java/yq/system/domain/MineFace.java | 21 +++---- .../java/yq/system/domain/MineHealth.java | 17 ++--- .../java/yq/system/domain/MineWarning.java | 63 +++++++++---------- .../mapper/system/MineFaceMapper.xml | 17 ++++- .../mapper/system/MineHealthMapper.xml | 14 ++++- .../mapper/system/MineWarningMapper.xml | 35 ++++++++++- 9 files changed, 123 insertions(+), 68 deletions(-) diff --git a/yq-admin/src/main/java/yq/web/controller/mine/MineHealthController.java b/yq-admin/src/main/java/yq/web/controller/mine/MineHealthController.java index e1cf45f..13149d1 100644 --- a/yq-admin/src/main/java/yq/web/controller/mine/MineHealthController.java +++ b/yq-admin/src/main/java/yq/web/controller/mine/MineHealthController.java @@ -119,8 +119,8 @@ public class MineHealthController extends BaseController // 获取当前的用户 LoginUser loginUser = SecurityUtils.getLoginUser(); mineHealth.setUserId(loginUser.getUserId()); + mineHealth.setUserName(loginUser.getUser().getNickName()); if(ObjectUtil.isNotNull(mineHealth.getIsWork())&&mineHealth.getIsWork()==1){ - MineFace mineFace=new MineFace(); mineFace.setId(mineHealth.getFaceId()); mineFace.setIsWork(1); diff --git a/yq-admin/src/main/java/yq/web/controller/mine/MineWarningController.java b/yq-admin/src/main/java/yq/web/controller/mine/MineWarningController.java index 0075685..ccdfaf6 100644 --- a/yq-admin/src/main/java/yq/web/controller/mine/MineWarningController.java +++ b/yq-admin/src/main/java/yq/web/controller/mine/MineWarningController.java @@ -2,6 +2,8 @@ package yq.web.controller.mine; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.util.ObjectUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -25,6 +27,7 @@ import yq.system.domain.vo.StatisticVo; import yq.system.service.IMineWarningService; import yq.common.utils.poi.ExcelUtil; import yq.common.core.page.TableDataInfo; +import yq.system.service.ISysDeptService; /** * @@ -39,6 +42,9 @@ public class MineWarningController extends BaseController @Autowired private IMineWarningService mineWarningService; + @Autowired + private ISysDeptService deptService; + /** */ @PreAuthorize("@ss.hasPermi('system:warning:list')") @@ -103,8 +109,15 @@ public class MineWarningController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, MineWarning mineWarning){ List list = mineWarningService.selectMineWarningList(mineWarning); + String title=""; + if(ObjectUtil.isNotNull(mineWarning.getDeptId())){ + title=deptService.selectDeptById(mineWarning.getDeptId()).getDeptName(); + }else { + title="职工"; + } + title=title+"健康汇总报告"; ExcelUtil util = new ExcelUtil(MineWarning.class); - util.exportExcel(response, list, "健康数据"); + util.exportExcel(response, list, "健康数据",title); } @@ -116,8 +129,9 @@ public class MineWarningController extends BaseController @PostMapping("/medicalExport") public void medicalExport(HttpServletResponse response, MineWarning mineWarning){ List list = mineWarningService.selectMineWarningmedicalList(mineWarning); + String title="新预警"; ExcelUtil util = new ExcelUtil(MineWarning.class); - util.exportExcel(response, list, "预警处理列表数据"); + util.exportExcel(response, list, "预警处理",title); } diff --git a/yq-common/src/main/java/yq/common/annotation/Excel.java b/yq-common/src/main/java/yq/common/annotation/Excel.java index 98ae657..ea83a8c 100644 --- a/yq-common/src/main/java/yq/common/annotation/Excel.java +++ b/yq-common/src/main/java/yq/common/annotation/Excel.java @@ -61,12 +61,12 @@ public @interface Excel /** * 导出时在excel中每个列的高度 */ - public double height() default 14; + public double height() default 16; /** * 导出时在excel中每个列的宽度 */ - public double width() default 16; + public double width() default 8; /** * 文字后缀,如% 90 变成90% diff --git a/yq-system/src/main/java/yq/system/domain/MineFace.java b/yq-system/src/main/java/yq/system/domain/MineFace.java index 8239b0a..db5ddc8 100644 --- a/yq-system/src/main/java/yq/system/domain/MineFace.java +++ b/yq-system/src/main/java/yq/system/domain/MineFace.java @@ -37,9 +37,8 @@ public class MineFace private String faceName; - @Excel(name = "出生年月") - @NotBlank(message = "出生年月不能为空") - @Pattern(regexp = "/^\\d{4}-\\d{2}-\\d{2}$/", message = "出生年月格式不对(2000-01-01)") + @NotBlank(message = "身份证不能为空") + @Pattern(regexp = "^\\d{6}(\\d{2}|\\d{4})(\\d{2})(\\d{2})\\d{3}[0-9Xx]$\n", message = "身份证格式不正确") private String birthDate; @Excel(name = "年龄") @@ -54,7 +53,7 @@ public class MineFace @Excel(name = "图片", cellType= Excel.ColumnType.IMAGE, type = Excel.Type.IMPORT) private String faceUrl; - @Excel(name = "备注") + private String remark; @Range(min = 0, max = 1, message = "是否允许上岗的值必须是 0 或 1") @@ -77,24 +76,20 @@ public class MineFace private String deptIdStr; - @Excel(name = "高压") - @NotNull(message = "高压不能为空") + + @NotNull(message = "收缩压不能为空") private Integer bpHigh; - @NotNull(message = "低压不能为空") - @Excel(name = "低压") + @NotNull(message = "舒张压不能为空") + private Integer bpLow; @NotNull(message = "呼吸频率不能为空") - @Excel(name = "呼吸频率") private Integer br; @NotNull(message = "心跳不能为空") - @Excel(name = "心跳") private Integer hr; @NotNull(message = "心跳变异率不能为空") - @Excel(name = "心跳变异率") private Integer hrv; - @NotNull(message = "温度不能为空") - @Excel(name = "温度") + @NotNull(message = "体温不能为空") private double temperature; } diff --git a/yq-system/src/main/java/yq/system/domain/MineHealth.java b/yq-system/src/main/java/yq/system/domain/MineHealth.java index 2ba969d..da0e404 100644 --- a/yq-system/src/main/java/yq/system/domain/MineHealth.java +++ b/yq-system/src/main/java/yq/system/domain/MineHealth.java @@ -20,33 +20,26 @@ public class MineHealth { private Long faceId; /** 组名 */ - @Excel(name = "所属部门") private String deptName; @Excel(name = "姓名") private String faceName; - @Excel(name = "年龄") private Long age; - - /** 手机号 */ - @Excel(name = "手机号") private String facePhone; - - @Excel(name = "高压") + @Excel(name = "收缩压") private Integer bpHigh; - @Excel(name = "低压") + @Excel(name = "舒张压") private Integer bpLow; @Excel(name = "心跳") private Integer br; @Excel(name = "呼吸频率") private Integer hr; - @Excel(name = "心跳变异率") private Integer hrv; - @Excel(name = "温度") + @Excel(name = "体温") private Integer temperature; - @Excel(name = "是否允许上岗 0:否 1:是") + @Excel(name = "是否允许上岗",width = 12,readConverterExp = "0=否,1=是") private Integer isWork; @Excel(name = "处理时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @@ -55,7 +48,7 @@ public class MineHealth { private Long userId; - @Excel(name = "处理人") + private String userName; private Long warningId; diff --git a/yq-system/src/main/java/yq/system/domain/MineWarning.java b/yq-system/src/main/java/yq/system/domain/MineWarning.java index 9c425e0..2696a6a 100644 --- a/yq-system/src/main/java/yq/system/domain/MineWarning.java +++ b/yq-system/src/main/java/yq/system/domain/MineWarning.java @@ -9,9 +9,9 @@ import org.hibernate.validator.constraints.Range; import org.springframework.format.annotation.DateTimeFormat; import yq.common.annotation.Excel; -import javax.validation.constraints.NotBlank; + import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; + import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -24,34 +24,45 @@ import java.util.Map; public class MineWarning { private Long id; - - @NotNull(message = "faceId不能为空") private Long faceId; + private String deptName; + @Excel(name = "姓名",width = 8) + private String faceName; + + private Long age; + private String facePhone; + private Long deptId; - @Excel(name = "高压") - @NotNull(message = "高压不能为空") + @Excel(name = "收缩压",width = 6) private Integer bpHigh; - @NotNull(message = "低压不能为空") - @Excel(name = "低压") + + @Excel(name = "舒张压",width =6) private Integer bpLow; - @NotNull(message = "呼吸频率不能为空") - @Excel(name = "呼吸频率") + + + @Excel(name = "呼吸频率",width = 8) private Integer br; - @NotNull(message = "心跳不能为空") - @Excel(name = "心跳") + + @Excel(name = "心跳",width =6) private Integer hr; - @NotNull(message = "心跳变异率不能为空") - @Excel(name = "心跳变异率") + private Integer hrv; - @NotNull(message = "温度不能为空") - @Excel(name = "温度") + + @Excel(name = "体温",width = 6) private double temperature; + @NotNull(message = "血氧不能为空") + private double spo2; + + @Excel(name = "劳累指标",width =8,suffix = "%") + private double hd; + + @Range(min = 0, max = 1, message = "是否适合上岗的值必须是 0 或 1") - @Excel(name = "是否适合上岗 0:否 1:是") + @Excel(name = "是否适宜上岗",width = 12,readConverterExp = "0=否,1=是") private Integer isWork; @Excel(name = "创建时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") @@ -63,24 +74,6 @@ public class MineWarning { @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map params = new HashMap<>(); - - @Excel(name = "姓名") - private String faceName; - - @Excel(name = "年龄") - private Long age; - - /** 手机号 */ - @Excel(name = "手机号") - private String facePhone; - - - private Long deptId; - - /** 组名 */ - @Excel(name = "所属部门") - private String deptName; - private String deptIdStr; private Long userId; private String search; diff --git a/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml b/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml index 1857f34..3773eea 100644 --- a/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml +++ b/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml @@ -27,13 +27,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select mf.id, mf.face_name, mf.birth_date, FLOOR(TIMESTAMPDIFF(MONTH,mf.birth_date , SYSDATE()) / 12) AS age, mf.face_phone, mf.face_url, + select mf.id, mf.face_name, mf.birth_date, + CASE + WHEN LENGTH(birth_date) = 15 THEN + -- 15位身份证号,提取出生年份、月份、日期并计算年龄 + FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(CONCAT('19', SUBSTRING(birth_date, 7, 6)), '%Y%m%d')) / 365.25) + WHEN LENGTH(birth_date) = 18 THEN + -- 18位身份证号,提取出生年份、月份、日期并计算年龄 + FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(SUBSTRING(birth_date, 7, 8), '%Y%m%d')) / 365.25) + ELSE + NULL + END AS age, + mf.face_phone, mf.face_url, mf.is_work, mf.remark, mf.create_time,mf.use_time,mf.dept_id,d.dept_name, mf.bp_high, mf.bp_low, mf.br, mf.hr, mf.hrv, + mf.spo2, + mf.hd, mf.temperature from mine_face mf inner join sys_dept d on mf.dept_id = d.dept_id @@ -128,6 +141,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" br = #{br}, hr = #{hr}, hrv = #{hrv}, + hd = #{hd}, + spo2 = #{spo2}, temperature = #{temperature}, where id = #{id} diff --git a/yq-system/src/main/resources/mapper/system/MineHealthMapper.xml b/yq-system/src/main/resources/mapper/system/MineHealthMapper.xml index 734c4ec..3f3200d 100644 --- a/yq-system/src/main/resources/mapper/system/MineHealthMapper.xml +++ b/yq-system/src/main/resources/mapper/system/MineHealthMapper.xml @@ -40,7 +40,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mh.warning_id, mf.face_name, mf.face_phone , - FLOOR(TIMESTAMPDIFF(MONTH,mf.birth_date , SYSDATE()) / 12) AS age , + CASE + WHEN LENGTH(birth_date) = 15 THEN + -- 15位身份证号,提取出生年份、月份、日期并计算年龄 + FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(CONCAT('19', SUBSTRING(birth_date, 7, 6)), '%Y%m%d')) / 365.25) + WHEN LENGTH(birth_date) = 18 THEN + -- 18位身份证号,提取出生年份、月份、日期并计算年龄 + FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(SUBSTRING(birth_date, 7, 8), '%Y%m%d')) / 365.25) + ELSE + NULL + END AS age, mf.dept_id, d.dept_name FROM @@ -85,6 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mh.hr = #{hr} and mh.hrv = #{hrv} and mh.user_id = #{userId} + and mh.user_name = #{userName} and mh.waring_id = #{warningId} and mh.temperature = #{temperature} and mf.is_work = #{isWork} @@ -100,6 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" br, hr, user_id, + user_name, face_id, warning_id, hrv, @@ -113,6 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{br}, #{hr}, #{userId}, + #{userName}, #{faceId}, #{warningId}, #{hrv}, diff --git a/yq-system/src/main/resources/mapper/system/MineWarningMapper.xml b/yq-system/src/main/resources/mapper/system/MineWarningMapper.xml index 20fb976..819333c 100644 --- a/yq-system/src/main/resources/mapper/system/MineWarningMapper.xml +++ b/yq-system/src/main/resources/mapper/system/MineWarningMapper.xml @@ -18,6 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -28,6 +30,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -48,11 +52,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mw.br, mw.hr, mw.hrv, + mw.spo2, + mw.hd, mw.temperature, mw.is_work, mw.create_time, mf.face_name, - FLOOR(TIMESTAMPDIFF(MONTH,mf.birth_date , SYSDATE()) / 12) AS age, + CASE + WHEN LENGTH(birth_date) = 15 THEN + -- 15位身份证号,提取出生年份、月份、日期并计算年龄 + FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(CONCAT('19', SUBSTRING(birth_date, 7, 6)), '%Y%m%d')) / 365.25) + WHEN LENGTH(birth_date) = 18 THEN + -- 18位身份证号,提取出生年份、月份、日期并计算年龄 + FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(SUBSTRING(birth_date, 7, 8), '%Y%m%d')) / 365.25) + ELSE + NULL + END AS age, mf.face_phone, mf.dept_id, d.dept_name @@ -71,6 +86,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mw.br, mw.hr, mw.hrv, + mw.spo2, + mw.hd, mw.temperature, mf.is_work, mw.create_time, @@ -91,6 +108,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mw.face_id, mw.hr, mw.hrv, + mw.spo2, + mw.hd, mw.temperature, mw.is_work, mw.create_time, @@ -132,6 +151,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mw.br, mw.hr, mw.hrv, + mw.spo2, + mw.hd, mw.temperature, mw.is_work, mw.create_time, @@ -161,6 +182,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mw.br, mw.hr, mw.hrv, + mw.spo2, + mw.hd, mw.temperature, mf.is_work, mw.create_time, @@ -198,6 +221,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" br, hr, hrv, + spo2, + hd, temperature, is_work as isWork, create_time as createTime, @@ -235,6 +260,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mw.br, mw.hr, mw.hrv, + mw.spo2, + mw.hd, mw.temperature, mw.is_work, mw.create_time, @@ -288,6 +315,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" br, hr, hrv, + hd, + spo2, temperature, is_work, create_time, @@ -299,6 +328,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{br}, #{hr}, #{hrv}, + #{hd}, + #{spo2}, #{temperature}, #{isWork}, #{createTime}, @@ -313,6 +344,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" br = #{br}, hr = #{hr}, hrv = #{hrv}, + hd = #{hd}, + spo2 = #{spo2}, temperature = #{temperature}, is_work = #{isWork}, create_time = #{createTime},