Procházet zdrojové kódy

会议总时长统计 智能看板用电用热用冷核心数据调整

ZhangManMan před 2 roky
rodič
revize
d4a01c3e0d

+ 9 - 0
src/main/java/com/sky/ioc/controller/security/PersonController.java

@@ -4,6 +4,7 @@ import com.sky.ioc.entity.domain.security.SecurityDoor;
 import com.sky.ioc.entity.domain.security.SecurityDoorRecord;
 import com.sky.ioc.entity.params.IocParam;
 import com.sky.ioc.entity.params.security.PersonParam;
+import com.sky.ioc.service.meeting.MeetingRecordService;
 import com.sky.ioc.service.personnel.PersonnelService;
 import com.sky.ioc.service.security.SecurityDoorRecordService;
 import com.sky.ioc.service.security.SecurityDoorService;
@@ -70,6 +71,14 @@ public class PersonController {
         return securityPersonService.getPersonList(personParam);
     }
 
+    @Autowired
+    MeetingRecordService meetingRecordService;
+
+    @ApiOperation("")
+    @PostMapping("/getData")
+    public ReturnMsg getData(){
+        return meetingRecordService.getMeetingRecordList();
+    }
 
 
 }

+ 5 - 0
src/main/java/com/sky/ioc/entity/domain/meeting/MeetingRecord.java

@@ -22,6 +22,11 @@ public class MeetingRecord {
     /** 会议人数 */
     private Integer personNum;
 
+    /**
+     * 会议时长
+     * */
+    private Long minutes;
+
     private String bookPerson;
     private String bookPhone;
 

+ 8 - 8
src/main/java/com/sky/ioc/service/energy/impl/EnergyServiceImpl.java

@@ -44,7 +44,7 @@ public class EnergyServiceImpl implements EnergyService {
 
         objects.get(2).put("value",-5.1);
 
-        objects.get(3).put("value",240.1);
+        objects.get(3).put("value",10.4);
         objects.get(3).put("compare",compare);
         indeicator.setWorthAttention("⼈均⽤电量过⾼");
         indeicator.setList(objects);
@@ -154,12 +154,12 @@ public class EnergyServiceImpl implements EnergyService {
         objects.get(0).put("value",totalCold);
         objects.get(0).put("compare",compare);
 
-        objects.get(1).put("value",top);
+        objects.get(2).put("value",top);
 
-        objects.get(2).put("value",percentCold);
+        objects.get(3).put("value",percentCold);
 
-        objects.get(3).put("value",personCold);
-        objects.get(3).put("compare",compare);
+        objects.get(1).put("value",personCold);
+        objects.get(1).put("compare",compare);
         indeicator.setWorthAttention("建议合理搭配智慧场景调整⽤冷策略");
         indeicator.setList(objects);
         return ReturnMsg.ok(indeicator);
@@ -203,12 +203,12 @@ public class EnergyServiceImpl implements EnergyService {
         objects.get(0).put("value",243.8);
         objects.get(0).put("compare",compare);
 
-        objects.get(1).put("value",-1.2);
+        objects.get(2).put("value",-1.2);
 
         objects.get(2).put("value","微量");
 
-        objects.get(3).put("value","微量");
-        objects.get(3).put("compare",compare);
+        objects.get(1).put("value","微量");
+        objects.get(1).put("compare",compare);
         indeicator.setWorthAttention("建议合理搭配智慧场景调整⽤热策略");
         indeicator.setList(objects);
         return ReturnMsg.ok(indeicator);

+ 8 - 4
src/main/java/com/sky/ioc/service/meeting/impl/MeetingRecordServiceImpl.java

@@ -27,6 +27,7 @@ import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
 import java.util.stream.Collectors;
 
 @Service
@@ -81,6 +82,7 @@ public class MeetingRecordServiceImpl implements MeetingRecordService {
         Integer code = (Integer)body.get("code");
         // 获取响应信息
         String message = (String)body.get("msg");
+        ThreadLocalRandom random = ThreadLocalRandom.current();
         if(code==200){
             ArrayList list = (ArrayList) body.get("rows");
             if(list!=null&&list.size()>0){
@@ -94,6 +96,10 @@ public class MeetingRecordServiceImpl implements MeetingRecordService {
                     String meetingDate = (String) json.get("meetingDate");
                     meetingRecord.setStartTime(meetingDate+" "+json.get("startTime"));
                     meetingRecord.setEndTime(meetingDate+" "+json.get("endTime"));
+                    Long minutes = DateUtil.minutesBetween(meetingDate+" "+json.get("startTime"),meetingDate+" "+json.get("endTime"));
+                    meetingRecord.setMinutes(minutes);
+                    Integer personNum = random.nextInt(4,40);
+                    meetingRecord.setPersonNum(personNum);
                     meetingRecord.setBookPerson((String) json.get("bookPerson"));
                     meetingRecord.setBookPhone((String) json.get("bookPhone"));
                     meetingRecordMapper.insert(meetingRecord);
@@ -129,8 +135,7 @@ public class MeetingRecordServiceImpl implements MeetingRecordService {
         //总会议人次
         Long totalPerson = meetingRecordMapper.totalPersonByTime(timeRange);
         //总会议时长
-        Long totalMinutes = 0l;
-                //meetingRecordMapper.totalMinutesByTime(timeRange);
+        Long totalMinutes = meetingRecordMapper.totalMinutesByTime(timeRange);
         double avgMeeting = MathUtils.division(totalMeeting,days,2);
         double avgPerson = MathUtils.division(totalMeeting,totalPerson,2);
         double avgMinutes = MathUtils.division(totalMinutes,totalMeeting,2);
@@ -211,8 +216,7 @@ public class MeetingRecordServiceImpl implements MeetingRecordService {
             IocTimeRange iocTimeRange1 = new IocTimeRange();
             iocTimeRange1.setStartDate(labKey[i]+" 00:00:00");
             iocTimeRange1.setEndDate(labKey[i]+" 23:59:00");
-            long minutes = 0;
-                    //meetingRecordMapper.totalMinutesByTime(iocTimeRange1);
+            long minutes = meetingRecordMapper.totalMinutesByTime(iocTimeRange1);
             jsonObject.put(param[0],minutes);
             label.setJsonObject(jsonObject);
             label.setLabel(labKey[i]);

+ 22 - 0
src/main/java/com/sky/ioc/tool/DateUtil.java

@@ -468,6 +468,28 @@ public class DateUtil {
         return hour;
     }
 
+    /**
+     * 计算两个日期之间相差的分钟
+     * */
+    public static long minutesBetween(String startTime, String endTime)  {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        long nh = 1000 * 60;
+        long  minutes = 0;
+        // 获得两个时间的毫秒时间差异
+        Date startDate = null;
+        try {
+            startDate = sdf.parse(startTime);
+            Date endDate = sdf.parse(endTime);
+            long diff = endDate.getTime() - startDate.getTime();
+            // 计算差多少小时
+            minutes = diff / nh;
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+
+        return minutes;
+    }
+
     public static void main(String[] args) throws Exception {
 
       /*  Map todayTime = getTodayTime();