Преглед изворни кода

修改健康公示已经最近14天曲线图

yanliming пре 5 година
родитељ
комит
3c076533d9

+ 2 - 0
common/src/main/java/com/jpsoft/smart/modules/base/dao/PersonDeviceFilterLogDAO.java

@@ -30,6 +30,8 @@ public interface PersonDeviceFilterLogDAO {
 
     List<PersonDeviceFilterLog> findByPersonAndDate(@Param("personId") Long personId, @Param("startDate")String startDate, @Param("endDate")String endDate);
 
+    PersonDeviceFilterLog findByPersonOrderTemperature(@Param("personId") Long personId, @Param("startDate")String startDate, @Param("endDate")String endDate);
+
     List<PersonDeviceFilterLog> temperatureNormalStatistics(String companyCode,BigDecimal temperature, Date startDate, Date endDate);
 
     List<PersonDeviceFilterLog> temperatureUnusualStatistics(String companyCode,BigDecimal temperature,Date startDate,Date endDate);

+ 4 - 0
common/src/main/java/com/jpsoft/smart/modules/base/entity/PersonInfo.java

@@ -142,4 +142,8 @@ public class PersonInfo {
 
     @ApiModelProperty(value="权限(1-个人用户,2-企业管理员)")
     private String popedom;
+
+    private BigDecimal lastTemperatureLog;
+
+    private Boolean isNormal;
 }

+ 2 - 0
common/src/main/java/com/jpsoft/smart/modules/base/service/PersonDeviceFilterLogService.java

@@ -30,6 +30,8 @@ public interface PersonDeviceFilterLogService {
 
     List<PersonDeviceFilterLog> findByPersonAndDate(Long personId,String startDate,String endDate);
 
+    PersonDeviceFilterLog findByPersonOrderTemperature(Long personId,String startDate,String endDate);
+
     List<PersonDeviceFilterLog> list();
 
     List<PersonDeviceFilterLog> temperatureNormalStatistics(String companyCode,BigDecimal temperature,Date startDate,Date endDate);

+ 5 - 0
common/src/main/java/com/jpsoft/smart/modules/base/service/impl/PersonDeviceFilterLogServiceImpl.java

@@ -155,6 +155,11 @@ public class PersonDeviceFilterLogServiceImpl implements PersonDeviceFilterLogSe
         return personDeviceFilterLogDAO.findByPersonAndDate(personId,startDate,endDate);
     }
 
+    @Override
+    public PersonDeviceFilterLog findByPersonOrderTemperature(Long personId,String startDate,String endDate){
+        return personDeviceFilterLogDAO.findByPersonOrderTemperature(personId,startDate,endDate);
+    }
+
     @Override
     public PersonDeviceFilterLog lastPersonLog(Long personId){
         return personDeviceFilterLogDAO.lastPersonLog(personId);

+ 9 - 0
common/src/main/resources/mapper/base/PersonDeviceFilterLog.xml

@@ -134,6 +134,15 @@
         order by record_time desc
 	</select>
 
+    <select id="findByPersonOrderTemperature" resultMap="PersonDeviceFilterLogMap">
+		select * from base_person_device_filter_log where person_id = #{personId}
+		and del_flag=false
+		<![CDATA[
+           and record_time >= #{startDate} and record_time <= #{endDate}
+        ]]>
+        order by temperature_ desc LIMIT 1
+	</select>
+
 
     <select id="search" parameterType="hashmap" resultMap="PersonDeviceFilterLogMap">
         <![CDATA[

+ 43 - 28
web/src/main/java/com/jpsoft/smart/modules/mobile/controller/IndividualLogApiController.java

@@ -12,6 +12,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -53,7 +54,22 @@ public class IndividualLogApiController {
 
             searchParams.put("companyId",companyId);
 
-            Page<PersonInfo> page = personInfoService.pageSearch(searchParams,pageIndex,pageSize,false,sortList);
+            Page<PersonInfo> page = personInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+
+            for (PersonInfo personInfo:page) {
+                PersonDeviceFilterLog personDeviceFilterLog = personDeviceFilterLogService.lastPersonLog(personInfo.getId());
+
+                if(personDeviceFilterLog!=null){
+                    personInfo.setLastTemperatureLog(personDeviceFilterLog.getTemperature());
+                    double temperature = personDeviceFilterLog.getTemperature().doubleValue();
+                    if(temperature>=37){
+                        personInfo.setIsNormal(false);
+                    }
+                    else{
+                        personInfo.setIsNormal(true);
+                    }
+                }
+            }
 
             messageResult.setResult(true);
             messageResult.setData(PojoUtils.pageWrapper(page));
@@ -182,54 +198,53 @@ public class IndividualLogApiController {
         try {
             List<Map<String,Object>> totalList = new ArrayList<>();
 
-            Date now = new Date();
             PersonInfo person = personInfoService.get(Long.valueOf(personId));
 
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-            SimpleDateFormat f = new SimpleDateFormat("HH");
+            SimpleDateFormat f = new SimpleDateFormat("MM-dd");
+
+            for (int j = 0; j < 3;j++) {
 
-            for (int i = 0;i < 14;i++) {
                 Map<String, Object> map = new HashMap<>();
 
-                Calendar rightNow = Calendar.getInstance();
-                rightNow.setTime(now);
-                rightNow.add(Calendar.DATE, -(i + 1));
-                Date dt1 = rightNow.getTime();
-                String startDate = sdf.format(dt1);
+                map.put("startDate", sdf.format(DateTime.now().plusDays(-14-(j*14)).toDate()));
+                map.put("endDate", sdf.format(DateTime.now().plusDays(-(j*14)).toDate()));
 
-                Calendar rightNow2 = Calendar.getInstance();
-                rightNow2.setTime(now);
-                rightNow2.add(Calendar.DATE, -i);
-                Date dt2 = rightNow2.getTime();
-                String endDate = sdf.format(dt2);
+                List<Map<String, Object>> list1 = new ArrayList<>();
+
+                for (int i = 0; i < 14; i++) {
+
+                    Map<String, Object> map1 = new HashMap<>();
 
-                List<PersonDeviceFilterLog> personDeviceLogList = personDeviceFilterLogService.findByPersonAndDate(person.getId(),startDate,endDate);
+                    String startDate = sdf.format(DateTime.now().plusDays( - i-(j*14)).toDate());
 
-                map.put("date",startDate);
+                    String endDate = sdf.format(DateTime.now().plusDays(1 - i-(j*14)).toDate());
 
-                if(personDeviceLogList.size()>0) {
+                    PersonDeviceFilterLog personDeviceFilterLog = personDeviceFilterLogService.findByPersonOrderTemperature(person.getId(), startDate, endDate);
+
+                    if (personDeviceFilterLog != null) {
 
-                    List<Map<String, Object>> list = new ArrayList<>();
-                    boolean isDanger = false;
-                    for (PersonDeviceFilterLog personDeviceFilterLog : personDeviceLogList) {
-                        Map<String, Object> mapChi = new HashMap<>();
                         Date recordTime = personDeviceFilterLog.getRecordTime();
                         String hour = f.format(recordTime);
 
-                        mapChi.put("name", hour + "时");
-                        mapChi.put("value", personDeviceFilterLog.getTemperature());
+                        boolean isDanger = false;
+
+                        map1.put("name", hour);
+                        map1.put("value", personDeviceFilterLog.getTemperature());
                         double temperatureDou = Double.parseDouble(personDeviceFilterLog.getTemperature().toString());
                         if (temperatureDou >= 37) {
                             isDanger = true;
                         }
-                        list.add(mapChi);
-                    }
 
-                    map.put("list", list);
-                    map.put("danger", isDanger);
+                        map1.put("danger", isDanger);
 
-                    totalList.add(map);
+                        list1.add(map1);
+                    }
                 }
+
+                map.put("list", list1);
+
+                totalList.add(map);
             }
 
             messageResult.setData(totalList);