|
@@ -1,12 +1,18 @@
|
|
|
package com.sky.ioc.service.meeting.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.sky.ioc.config.RestTemplateConfig;
|
|
|
+import com.sky.ioc.entity.Indeicator;
|
|
|
+import com.sky.ioc.entity.Label;
|
|
|
import com.sky.ioc.entity.domain.meeting.MeetingRecord;
|
|
|
import com.sky.ioc.entity.params.IocParam;
|
|
|
+import com.sky.ioc.entity.params.IocTimeRange;
|
|
|
import com.sky.ioc.mapper.job.TokenMapper;
|
|
|
import com.sky.ioc.mapper.meeting.MeetingRecordMapper;
|
|
|
import com.sky.ioc.service.meeting.MeetingRecordService;
|
|
|
+import com.sky.ioc.tool.DateUtil;
|
|
|
+import com.sky.ioc.tool.MathUtils;
|
|
|
import com.sky.ioc.tool.ReturnMsg;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -15,6 +21,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.text.ParseException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
@@ -99,4 +107,117 @@ public class MeetingRecordServiceImpl implements MeetingRecordService {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ReturnMsg getMeetingRecordTotal(IocTimeRange timeRange) {
|
|
|
+ Indeicator indeicator = new Indeicator();
|
|
|
+ List<JSONObject> objects = new ArrayList<>();
|
|
|
+ objects.add(new JSONObject());
|
|
|
+ objects.add(new JSONObject());
|
|
|
+ objects.add(new JSONObject());
|
|
|
+ objects.add(new JSONObject());
|
|
|
+ objects.add(new JSONObject());
|
|
|
+ objects.add(new JSONObject());
|
|
|
+ Integer days = 0;
|
|
|
+ try {
|
|
|
+ days = DateUtil.daysBetween(timeRange.getStartDate(),timeRange.getEndDate());
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ //总会议数
|
|
|
+ Long totalMeeting = meetingRecordMapper.countByTime(timeRange);
|
|
|
+ //总会议人次
|
|
|
+ Long totalPerson = meetingRecordMapper.totalPersonByTime(timeRange);
|
|
|
+ //总会议时长
|
|
|
+ Long totalMinutes = 0l;
|
|
|
+ //meetingRecordMapper.totalMinutesByTime(timeRange);
|
|
|
+ double avgMeeting = MathUtils.division(totalMeeting,days,2);
|
|
|
+ double avgPerson = MathUtils.division(totalMeeting,totalPerson,2);
|
|
|
+ double avgMinutes = MathUtils.division(totalMinutes,totalMeeting,2);
|
|
|
+ objects.get(0).put("value", totalMeeting);
|
|
|
+ objects.get(1).put("value", avgMeeting);
|
|
|
+ objects.get(2).put("value", totalPerson);
|
|
|
+ objects.get(3).put("value", avgPerson);
|
|
|
+ objects.get(4).put("value", totalMinutes);
|
|
|
+ objects.get(5).put("value", avgMinutes);
|
|
|
+ indeicator.setList(objects);
|
|
|
+ return ReturnMsg.ok(indeicator);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 统计总次数
|
|
|
+ * */
|
|
|
+ @Override
|
|
|
+ public ReturnMsg getMeetingAnalysissTimes(IocTimeRange iocTimeRange) {
|
|
|
+ String[] param = {"times"};
|
|
|
+ String startStr = iocTimeRange.getStartDate();
|
|
|
+ String endStr = iocTimeRange.getEndDate();
|
|
|
+ List<String> list = DateUtil.getBetweenDays(startStr, endStr);
|
|
|
+ String[] labKey = list.toArray(new String[0]);
|
|
|
+ List<Label> labels1 = new ArrayList<>();
|
|
|
+ for (int i = 0; i < labKey.length; i++) {
|
|
|
+ Label label = new Label();
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ IocTimeRange iocTimeRange1 = new IocTimeRange();
|
|
|
+ iocTimeRange1.setStartDate(labKey[i]+" 00:00:00");
|
|
|
+ iocTimeRange1.setEndDate(labKey[i]+" 23:59:00");
|
|
|
+ long times = meetingRecordMapper.countByTime(iocTimeRange1);
|
|
|
+ jsonObject.put(param[0],times);
|
|
|
+ label.setJsonObject(jsonObject);
|
|
|
+ label.setLabel(labKey[i]);
|
|
|
+ labels1.add(label);
|
|
|
+ }
|
|
|
+ return ReturnMsg.ok(labels1);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 统计总人次
|
|
|
+ * */
|
|
|
+ @Override
|
|
|
+ public ReturnMsg getMeetingAnalysissPerson(IocTimeRange iocTimeRange) {
|
|
|
+ String[] param = {"person"};
|
|
|
+ String startStr = iocTimeRange.getStartDate();
|
|
|
+ String endStr = iocTimeRange.getEndDate();
|
|
|
+ List<String> list = DateUtil.getBetweenDays(startStr, endStr);
|
|
|
+ String[] labKey = list.toArray(new String[0]);
|
|
|
+ List<Label> labels1 = new ArrayList<>();
|
|
|
+ for (int i = 0; i < labKey.length; i++) {
|
|
|
+ Label label = new Label();
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ IocTimeRange iocTimeRange1 = new IocTimeRange();
|
|
|
+ iocTimeRange1.setStartDate(labKey[i]+" 00:00:00");
|
|
|
+ iocTimeRange1.setEndDate(labKey[i]+" 23:59:00");
|
|
|
+ long person = meetingRecordMapper.totalPersonByTime(iocTimeRange1);
|
|
|
+ jsonObject.put(param[0],person);
|
|
|
+ label.setJsonObject(jsonObject);
|
|
|
+ label.setLabel(labKey[i]);
|
|
|
+ labels1.add(label);
|
|
|
+ }
|
|
|
+ return ReturnMsg.ok(labels1);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 统计总时长
|
|
|
+ * */
|
|
|
+ @Override
|
|
|
+ public ReturnMsg getMeetingAnalysissMinutes(IocTimeRange iocTimeRange) {
|
|
|
+ String[] param = {"minutes"};
|
|
|
+ String startStr = iocTimeRange.getStartDate();
|
|
|
+ String endStr = iocTimeRange.getEndDate();
|
|
|
+ List<String> list = DateUtil.getBetweenDays(startStr, endStr);
|
|
|
+ String[] labKey = list.toArray(new String[0]);
|
|
|
+ List<Label> labels1 = new ArrayList<>();
|
|
|
+ for (int i = 0; i < labKey.length; i++) {
|
|
|
+ Label label = new Label();
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ IocTimeRange iocTimeRange1 = new IocTimeRange();
|
|
|
+ iocTimeRange1.setStartDate(labKey[i]+" 00:00:00");
|
|
|
+ iocTimeRange1.setEndDate(labKey[i]+" 23:59:00");
|
|
|
+ long minutes = 0;
|
|
|
+ //meetingRecordMapper.totalMinutesByTime(iocTimeRange1);
|
|
|
+ jsonObject.put(param[0],minutes);
|
|
|
+ label.setJsonObject(jsonObject);
|
|
|
+ label.setLabel(labKey[i]);
|
|
|
+ labels1.add(label);
|
|
|
+ }
|
|
|
+ return ReturnMsg.ok(labels1);
|
|
|
+ }
|
|
|
}
|