Browse Source

数据检测,列表查询返回 周信息

xgb 2 days ago
parent
commit
1b5b6e562c

+ 14 - 0
fs-common/src/main/java/com/fs/common/utils/DateUtils.java

@@ -299,4 +299,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
         return calendar.getTime();
     }
+
+    /**
+     * @Description: 根据日期获取星期 1-星期一 2-星期二 。。。6-星期六 0-星期日
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2025/9/5 14:04
+     */
+
+    public static int getWeek(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return calendar.get(Calendar.DAY_OF_WEEK)-1;
+    }
 }

+ 2 - 36
fs-company-app/src/main/java/com/fs/app/controller/FsUserHealthDataController.java

@@ -8,6 +8,7 @@ import com.fs.common.utils.StringUtils;
 import com.fs.his.config.HealthIndicatorConfig;
 import com.fs.his.domain.FsUserHealthData;
 import com.fs.his.service.IFsUserHealthDataService;
+import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -42,42 +43,7 @@ public class FsUserHealthDataController extends AppBaseController {
                   @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                   @RequestParam(required = false, defaultValue = "1000") Integer pageSize
     ) {
-        // 时间格式字段处理
-        if (StringUtils.isNotEmpty(fsUserHealthData.getTimeSearch())) {
-            Map<String, Object> timeMap = new HashMap<>();
-            // 时间格式处理 2025-01-21 2025-01-01;2025-01-12 2025-01
-            if (fsUserHealthData.getTimeSearch().contains(";")) {
-                String[] timeArr = fsUserHealthData.getTimeSearch().split(";");
-                timeMap.put("beginTime", timeArr[0]);
-                timeMap.put("endTime", timeArr[1]);
-            } else if (fsUserHealthData.getTimeSearch().length() == 10) {
-                fsUserHealthData.setMeasurementDate(DateUtils.parseDate(fsUserHealthData.getTimeSearch()));
-            } else if (fsUserHealthData.getTimeSearch().length() == 7) {
-                // 按月 取当月第一个和最后一天
-                timeMap.put("beginTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getStartOfMonth(DateUtils.parseDate(fsUserHealthData.getTimeSearch()))));
-                timeMap.put("endTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getEndOfMonth(DateUtils.parseDate(fsUserHealthData.getTimeSearch()))));
-            }
-            fsUserHealthData.setParams(timeMap);
-        }
-
-
-        List<FsUserHealthData> list = fsUserHealthDataService.selectFsUserHealthDataList(fsUserHealthData);
-
-        Map<String, Object> data = new HashMap<>();
-        data.put("data", new PageInfo<>(list));
-
-
-        // 如果测量类型是空 需要查询各等级(无-0,轻微-1,严重-2) 数量
-        if (fsUserHealthData.getLevel() == null) {
-            for (int i = 0; i < 3; i++) {
-                fsUserHealthData.setLevel(i);
-                int num = fsUserHealthDataService.selectFsUserHealthDataListCount(fsUserHealthData);
-                data.put("count" + i, num);
-            }
-        }
-
-
-        return R.ok(data);
+        return R.ok(fsUserHealthDataService.selectFsUserHealthDataListInfo(fsUserHealthData, pageNum, pageSize));
     }
 
     /**

+ 4 - 0
fs-service/src/main/java/com/fs/his/domain/FsUserHealthData.java

@@ -51,6 +51,10 @@ public class FsUserHealthData extends BaseEntity{
     @ApiModelProperty("测量时间")
     private Date measurementTime;
 
+    /** 星期 */
+    @ApiModelProperty("星期")
+    private Integer week;
+
     /** 等级(无-0,轻微-1,严重-2) */
     @ApiModelProperty("等级(无-0,轻微-1,严重-2)")
     private Integer level;

+ 5 - 4
fs-service/src/main/java/com/fs/his/domain/FsUserItinerary.java

@@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import com.fs.common.core.domain.BaseEntity;
 import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 用户日期行程对象 fs_user_itinerary
@@ -33,14 +34,14 @@ public class FsUserItinerary extends BaseEntity{
 
     /** 行程日期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @ApiModelProperty("行程日期")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date itineraryDate;
 
-    /** 行程类型 0-今天 1-行程开始 2-行程结束 3-待完成*/
-    private Integer status;
+    /** 行程标记 */
+    private String mark;
 
     /** 行程时间 */
-    @JsonFormat(pattern = "HH:mm:ss")
+    @JsonFormat(pattern = "HH:mm")
     @ApiModelProperty("行程时间")
     private Date itineraryTime;
 

+ 3 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserHealthDataService.java

@@ -2,6 +2,7 @@ package com.fs.his.service;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.his.config.HealthIndicatorConfig;
@@ -96,4 +97,6 @@ public interface IFsUserHealthDataService extends IService<FsUserHealthData>{
     void updateFsUserHealthDataAndLevel(FsUserHealthData fsUserHealthData);
 
     int selectFsUserHealthDataListCount(FsUserHealthData fsUserHealthData);
+
+    Map<String,Object> selectFsUserHealthDataListInfo(FsUserHealthData fsUserHealthData, Integer pageNum, Integer pageSize);
 }

+ 50 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserHealthDataServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.constant.Constants;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.exception.ServiceException;
+import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.his.config.HealthIndicatorConfig;
 import com.fs.his.domain.FsUserHealthData;
@@ -17,11 +18,15 @@ import com.fs.his.service.IFsUserHealthProfileService;
 import com.fs.his.service.IFsUserInfoService;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.service.ISysConfigService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -73,6 +78,51 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap
         return baseMapper.selectFsUserHealthDataListCount(fsUserHealthData);
     }
 
+    @Override
+    public Map<String, Object> selectFsUserHealthDataListInfo(FsUserHealthData fsUserHealthData, Integer pageNum, Integer pageSize) {
+        // 时间格式字段处理
+        if (StringUtils.isNotEmpty(fsUserHealthData.getTimeSearch())) {
+            Map<String, Object> timeMap = new HashMap<>();
+            // 时间格式处理 2025-01-21 2025-01-01;2025-01-12 2025-01
+            if (fsUserHealthData.getTimeSearch().contains(";")) {
+                String[] timeArr = fsUserHealthData.getTimeSearch().split(";");
+                timeMap.put("beginTime", timeArr[0]);
+                timeMap.put("endTime", timeArr[1]);
+            } else if (fsUserHealthData.getTimeSearch().length() == 10) {
+                fsUserHealthData.setMeasurementDate(DateUtils.parseDate(fsUserHealthData.getTimeSearch()));
+            } else if (fsUserHealthData.getTimeSearch().length() == 7) {
+                // 按月 取当月第一个和最后一天
+                timeMap.put("beginTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getStartOfMonth(DateUtils.parseDate(fsUserHealthData.getTimeSearch()))));
+                timeMap.put("endTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getEndOfMonth(DateUtils.parseDate(fsUserHealthData.getTimeSearch()))));
+            }
+            fsUserHealthData.setParams(timeMap);
+        }
+
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<FsUserHealthData> list = selectFsUserHealthDataList(fsUserHealthData);
+        if(list!=null && !list.isEmpty() && fsUserHealthData.getTimeSearch().contains(";")){// 加工数据,返回星期
+            list.forEach(item -> {
+                item.setWeek(DateUtils.getWeek(item.getMeasurementDate()));
+            });
+
+        }
+
+        Map<String, Object> data = new HashMap<>();
+        data.put("data", new PageInfo<>(list));
+
+
+        // 如果测量类型是空 需要查询各等级(无-0,轻微-1,严重-2) 数量
+        if (fsUserHealthData.getLevel() == null) {
+            for (int i = 0; i < 3; i++) {
+                fsUserHealthData.setLevel(i);
+                int num = selectFsUserHealthDataListCount(fsUserHealthData);
+                data.put("count" + i, num);
+            }
+        }
+        return data;
+    }
+
     /**
      * 新增用户身体检测数据
      *

+ 15 - 20
fs-service/src/main/java/com/fs/his/service/impl/FsUserItineraryServiceImpl.java

@@ -2,6 +2,7 @@ package com.fs.his.service.impl;
 
 import java.text.ParseException;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -44,34 +45,28 @@ public class FsUserItineraryServiceImpl extends ServiceImpl<FsUserItineraryMappe
         List<FsUserItinerary> list =baseMapper.selectFsUserItineraryList(fsUserItinerary);
         // 状态处理
         list.forEach(item -> {
-            // 如果时间在今天之前
-            // 行程类型 0-今天 1-行程开始 2-行程结束 3-待完成
-            try {
-                if(DateUtils.truncatedCompareTo(DateUtils.parseDate("2025-09-06", "yyyy-MM-dd"), DateUtils.getNowDate(), Calendar.DATE) < 0){
-                    item.setStatus(2); // 已结束
-                }else if (DateUtils.truncatedCompareTo(item.getItineraryDate(), DateUtils.getNowDate(), Calendar.DATE) == 0){
-                    // 判断时间
-                    if(DateUtils.truncatedCompareTo(item.getItineraryTime(), DateUtils.getNowDate(), Calendar.SECOND) < 0){}
+            // 行程标记 今天返回今天(已开始返回) 今天以前返回已结束 明天返回日期
+            if(DateUtils.truncatedCompareTo(item.getItineraryDate(), DateUtils.getNowDate(), Calendar.DATE) < 0){
+                item.setMark("已结束"); // 已结束
+            }else if (DateUtils.truncatedCompareTo(item.getItineraryDate(), DateUtils.getNowDate(), Calendar.DATE) == 0){
+                // 判断时间
+                Date itineraryTime=DateUtils.parseDate(DateUtils.parseDateToStr("yyyy-MM-dd", item.getItineraryDate())+" "+DateUtils.parseDateToStr("HH:mm",item.getItineraryTime()));
+                if(DateUtils.truncatedCompareTo(itineraryTime, DateUtils.getNowDate(), Calendar.SECOND) <= 0){
+                    item.setMark("已开始");
+                }else {
+                    item.setMark("今天");
                 }
-            } catch (ParseException e) {
-                throw new RuntimeException(e);
+            }else{
+                item.setMark(DateUtils.parseDateToStr("MM-dd", item.getItineraryDate()));
             }
         });
         return list;
     }
 
     public static void main(String[] args) {
-        try {
-            System.out.println(DateUtils.parseDate("24:59:00", "HH:mm:ss"));
-            System.out.println(DateUtils.getNowDate());
-            String currentDate = DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.getNowDate());
 
-            // 拼接完整日期时间字符串
-            String dateTimeStr = currentDate + " " + "17:15:00";
-            System.out.println(DateUtils.truncatedCompareTo(DateUtils.parseDate(dateTimeStr, "yyyy-MM-dd HH:mm:ss"), DateUtils.getNowDate(), Calendar.MINUTE));
-        } catch (ParseException e) {
-            throw new RuntimeException(e);
-        }
+            System.out.println(DateUtils.parseDate("2025-09-04 09:00"));
+
     }
 
     /**

+ 1 - 0
fs-service/src/main/resources/mapper/his/FsUserItineraryMapper.xml

@@ -28,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="itineraryTime != null "> and itinerary_time = #{itineraryTime}</if>
             <if test="reservedField != null  and reservedField != ''"> and reserved_field = #{reservedField}</if>
         </where>
+         order by itinerary_date,itinerary_time
     </select>
     
     <select id="selectFsUserItineraryById" parameterType="Long" resultMap="FsUserItineraryResult">

+ 2 - 36
fs-user-app/src/main/java/com/fs/app/controller/FsUserHealthDataController.java

@@ -7,6 +7,7 @@ import com.fs.common.utils.StringUtils;
 import com.fs.his.config.HealthIndicatorConfig;
 import com.fs.his.domain.FsUserHealthData;
 import com.fs.his.service.IFsUserHealthDataService;
+import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -41,42 +42,7 @@ public class FsUserHealthDataController extends AppBaseController {
                   @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                   @RequestParam(required = false, defaultValue = "1000") Integer pageSize
     ) {
-        // 时间格式字段处理
-        if (StringUtils.isNotEmpty(fsUserHealthData.getTimeSearch())) {
-            Map<String, Object> timeMap = new HashMap<>();
-            // 时间格式处理 2025-01-21 2025-01-01;2025-01-12 2025-01
-            if (fsUserHealthData.getTimeSearch().contains(";")) {
-                String[] timeArr = fsUserHealthData.getTimeSearch().split(";");
-                timeMap.put("beginTime", timeArr[0]);
-                timeMap.put("endTime", timeArr[1]);
-            } else if (fsUserHealthData.getTimeSearch().length() == 10) {
-                fsUserHealthData.setMeasurementDate(DateUtils.parseDate(fsUserHealthData.getTimeSearch()));
-            } else if (fsUserHealthData.getTimeSearch().length() == 7) {
-                // 按月 取当月第一个和最后一天
-                timeMap.put("beginTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getStartOfMonth(DateUtils.parseDate(fsUserHealthData.getTimeSearch()))));
-                timeMap.put("endTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.getEndOfMonth(DateUtils.parseDate(fsUserHealthData.getTimeSearch()))));
-            }
-            fsUserHealthData.setParams(timeMap);
-        }
-
-
-        List<FsUserHealthData> list = fsUserHealthDataService.selectFsUserHealthDataList(fsUserHealthData);
-
-        Map<String, Object> data = new HashMap<>();
-        data.put("data", new PageInfo<>(list));
-
-
-        // 如果测量类型是空 需要查询各等级(无-0,轻微-1,严重-2) 数量
-        if (fsUserHealthData.getLevel() == null) {
-            for (int i = 0; i < 3; i++) {
-                fsUserHealthData.setLevel(i);
-                int num = fsUserHealthDataService.selectFsUserHealthDataListCount(fsUserHealthData);
-                data.put("count" + i, num);
-            }
-        }
-
-
-        return R.ok(data);
+        return R.ok(fsUserHealthDataService.selectFsUserHealthDataListInfo(fsUserHealthData, pageNum, pageSize));
     }
 
     /**

+ 0 - 9
fs-user-app/src/main/java/com/fs/app/controller/FsUserItineraryController.java

@@ -12,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.ParseException;
-import java.time.LocalDate;
 import java.util.Calendar;
 import java.util.List;
 
@@ -42,14 +41,6 @@ public class FsUserItineraryController extends AppBaseController {
         return R.ok().put("data", new PageInfo<>(list));
     }
 
-    public static void main(String[] args) {
-        try {
-            System.out.println(DateUtils.truncatedCompareTo(DateUtils.parseDate("2025-09-06", "yyyy-MM-dd"), DateUtils.getNowDate(), Calendar.DATE));
-        } catch (ParseException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
     /**
      * 获取用户日期行程详细信息
      */