| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- package com.template.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.Wrapper;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.template.annotation.DESRespondSecret;
- import com.template.annotation.PassToken;
- import com.template.api.DriverStockControllerAPI;
- import com.template.common.utils.TimeExchange;
- import com.template.model.pojo.SmartClass;
- import com.template.model.pojo.SmartUser;
- import com.template.model.pojo.SmartWarning;
- import com.template.model.result.CommonResult;
- import com.template.model.result.PageUtils;
- import com.template.model.tongji.*;
- import com.template.model.vo.VisitorTjVo;
- import com.template.services.DriverStockService;
- import com.template.services.SmartClassService;
- import com.template.services.SmartUserService;
- import com.template.services.SmartWarningService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import java.math.BigDecimal;
- import java.sql.Time;
- import java.text.SimpleDateFormat;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.List;
- import java.util.stream.Collectors;
- @Controller
- public class DriverStockController implements DriverStockControllerAPI {
- @Autowired
- public DriverStockService driverStockService;
- @Autowired
- public SmartWarningService smartWarningService;
- @Autowired
- public SmartUserService smartUserService;
- @Autowired
- public SmartClassService smartClassService;
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getClassTj() {
- List<Tj> list = driverStockService.getClassTj();
- BigDecimal num = new BigDecimal(0.0);
- for (Tj teacherData:list) {
- if (teacherData.getName().contains("老师") || teacherData.getName().contains("班主任") || teacherData.getName().contains("年级主任") || teacherData.getName().contains("超级管理员") || teacherData.getName().contains("其他")) {
- num = num.add(new BigDecimal(teacherData.getNum()));
- }
- }
- Tj teacher = new Tj();
- teacher.setName("教师");
- teacher.setNum(num.doubleValue());
- list = list.stream().filter(e -> !e.name.contains("老师") && !e.name.contains("家长")&& !e.name.contains("未分组")).collect(Collectors.toList());
- list.add(teacher);
- // 去掉班主任
- ArrayList<Tj> vos = new ArrayList<>();
- for (Tj tj : list) {
- if (!tj.getName().contains("班主任") && !tj.getName().contains("年级主任") && !tj.getName().contains("超级管理员") && !tj.getName().contains("其他")) {
- vos.add(tj);
- }
- }
- return CommonResult.ok(vos);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getVisitorTj() {
- DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
- ArrayList<VisitorTjVo> visitorTjVos = new ArrayList<>();
- // 近1年数据
- LocalDateTime localDateTime = LocalDateTime.now().withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).plusMonths(1);
- ArrayList<Tj> tjs = new ArrayList<>();
- Tj tj2 = new Tj();
- tj2.setName("家长");
- tj2.setNum(0.0);
- tjs.add(tj2);
- Tj tj3 = new Tj();
- tj3.setName("其他");
- tj3.setNum(0.0);
- tjs.add(tj3);
- for (int i = 0; i < 12; i++) {
- VisitorTjVo visitorTjVo = new VisitorTjVo();
- LocalDateTime start = localDateTime.minusMonths(i + 1);
- LocalDateTime end = localDateTime.minusMonths(i);
- String dataTime = start.format(dateTimeFormatter);
- List<Tj> list = driverStockService.getVisitorTj(start, end);
- if (ObjectUtils.isNotEmpty(list) && list.size() > 0) {
- if (list.size()<2) {
- ArrayList<Tj> tjs2 = new ArrayList<>();
- for (Tj tj : list) {
- tjs2.add(tj);
- String name = tj.getName();
- if ("家长".equals(name)) {
- tjs2.add(tj3);
- }else {
- tjs2.add(tj2);
- }
- }
- visitorTjVo.setTjs(tjs2);
- }else {
- visitorTjVo.setTjs(list);
- }
- } else {
- visitorTjVo.setTjs(tjs);
- }
- visitorTjVo.setDataTime(dataTime);
- visitorTjVos.add(visitorTjVo);
- }
- return CommonResult.ok(visitorTjVos);
- }
- public static void main(String[] args) {
- LocalDateTime start = LocalDateTime.now().withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0);
- int year = start.getYear();
- System.out.println("year = " + year);
- int monthValue = start.getMonthValue();
- System.out.println("monthValue = " + monthValue);
- DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM");
- String format = start.format(dateTimeFormatter2);
- System.out.println("format = " + format);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult queryPageSmartWarning(int currentPage, int pageCount, String name, String state) {
- PageUtils<SmartWarning> result = smartWarningService.queryPageSmartWarnings(currentPage, pageCount, name, state);
- return CommonResult.ok(result);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getEnergyTj() {
- List<TjFloat> list = driverStockService.getEnergyTj();
- for (int i = 0; i < list.size(); i++) {
- TjFloat tjFloat = list.get(i);
- String name = tjFloat.getName();
- if ("用电量".equals(name)) {
- Double num = tjFloat.getNum();
- BigDecimal bigDecimal = new BigDecimal(num);
- double v = bigDecimal.multiply(new BigDecimal(80)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
- tjFloat.setNum(v);
- }
- }
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getEnergyTjAvg() {
- List<TjFloat> list = driverStockService.getEnergyTj();
- QueryWrapper<SmartUser> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("deleted", 0);
- queryWrapper.eq("identity_id",2)
- .or()
- .eq("identity_id",3);
- Integer userNum = smartUserService.list(queryWrapper).size();
- for (int i = 0; i < list.size(); i++) {
- list.get(i).setNum(list.get(i).getNum() / userNum);
- }
- for (int j = 0; j < list.size(); j++) {
- TjFloat tjFloat = list.get(j);
- String name = tjFloat.getName();
- if ("用电量".equals(name)) {
- Double num = tjFloat.getNum();
- BigDecimal bigDecimal = new BigDecimal(num);
- double v = bigDecimal.multiply(new BigDecimal(80)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
- tjFloat.setNum(v);
- }
- }
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getEnergyMonth(Integer type) {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
- List<JSONObject> jList = new ArrayList<>();
- for (int i = -5; i <= 0; i++) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MONTH, i);
- String date = simpleDateFormat.format(calendar.getTime());
- List<TjFloat> list = driverStockService.getEnergyMonth(date, type);
- if (type==1) {
- for (int i1 = 0; i1 < list.size(); i1++) {
- TjFloat tj = list.get(i1);
- Double num = tj.getNum();
- BigDecimal bigDecimal = new BigDecimal(num);
- if (ObjectUtils.isNotEmpty(num)) {
- BigDecimal multiply = bigDecimal.multiply(new BigDecimal(80)).setScale(2,BigDecimal.ROUND_HALF_UP);
- num=multiply.doubleValue();
- }
- tj.setNum(num);
- }
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("month", date);
- jsonObject.put("data", list);
- jList.add(jsonObject);
- }
- return CommonResult.ok(jList);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getEnergyDay(Integer type) {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
- List<JSONObject> jList = new ArrayList<>();
- for (int i = -11; i <= 0; i++) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.DATE, i);
- String date = simpleDateFormat.format(calendar.getTime());
- List<TjFloat> list = driverStockService.getEnergyDay(date, type);
- if (type==1) {
- for (int i1 = 0; i1 < list.size(); i1++) {
- TjFloat tj = list.get(i1);
- Double num = tj.getNum();
- BigDecimal bigDecimal = new BigDecimal(num);
- if (ObjectUtils.isNotEmpty(num)) {
- BigDecimal multiply = bigDecimal.multiply(new BigDecimal(80)).setScale(2,BigDecimal.ROUND_HALF_UP);
- num=multiply.doubleValue();
- }
- tj.setNum(num);
- }
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("date", date);
- jsonObject.put("data", list);
- jList.add(jsonObject);
- }
- return CommonResult.ok(jList);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getDeviceT() {
- List<JSONObject> list = new ArrayList<>();
- JSONObject jsonObject1 = new JSONObject();
- List<TjFloat> allList = driverStockService.getTotalDevice();
- jsonObject1.put("name", "总设备数");
- jsonObject1.put("data", allList);
- list.add(jsonObject1);
- List<TjFloat> onlineList = driverStockService.getOnlineDevice(TimeExchange.getDate());
- JSONObject jsonObject2 = new JSONObject();
- jsonObject2.put("name", "在线设备数");
- jsonObject2.put("data", onlineList);
- list.add(jsonObject2);
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getMeterPage(int currentPage, int pageCount, Integer meterType) {
- PageHelper.startPage(currentPage, pageCount);
- PageInfo<MeterPage> list = driverStockService.getMeterDetail(meterType);
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getUserComp() {
- List<Tj> list = driverStockService.getUserComp();
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getUserPage(int currentPage, int pageCount, String key, Integer identityId,Integer graderId,Integer classId) {
- // 当班级和年级为空时则不要毕业的班级
- List<SmartClass> smartClasses=new ArrayList<>();
- if (ObjectUtils.isEmpty(graderId)||ObjectUtils.isEmpty(classId)) {
- // 获取未毕业的班级
- List<Integer> grades=smartUserService.getNotGraduateGrade();
- LambdaQueryWrapper<SmartClass> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(SmartClass::getGradeId,grades);
- smartClasses = smartClassService.list(wrapper);
- }else {
- // 查询对应的班级
- LambdaQueryWrapper<SmartClass> wrapper=new LambdaQueryWrapper<>();
- wrapper.eq(ObjectUtils.isNotEmpty(graderId),SmartClass::getGradeId,graderId)
- .eq(ObjectUtils.isNotEmpty(classId),SmartClass::getId,classId);
- smartClasses = smartClassService.list(wrapper);
- }
- // 组合班级id
- String classIds="";
- for (int i = 0; i < smartClasses.size(); i++) {
- SmartClass smartClass = smartClasses.get(i);
- String id = smartClass.getId()+"";
- if (0==i) {
- classIds=id;
- }else {
- classIds=classIds+","+id;
- }
- }
- PageHelper.startPage(currentPage, pageCount);
- PageInfo<userPage> list = driverStockService.getUserPage(key, identityId,classIds);
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getScorePer(String examName, String updateUser) {
- List<Tj> list = driverStockService.getScorePer(examName, updateUser);
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getExamName() {
- List<Tj> list = driverStockService.getExamName();
- return CommonResult.ok(list);
- }
- @Override
- @PassToken
- @DESRespondSecret(validated = false)
- public CommonResult getTeacherExam(String cardNo) {
- Tj list = driverStockService.getTeacherExam(cardNo);
- return CommonResult.ok(list);
- }
- }
|