package cn.exrick.xboot.your.controller.pc; import cn.exrick.xboot.core.common.redis.RedisTemplateHelper; import cn.exrick.xboot.core.common.utils.PageUtil; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.core.common.vo.PageVo; import cn.exrick.xboot.core.common.vo.Result; import cn.exrick.xboot.your.entity.*; import cn.exrick.xboot.your.service.*; import cn.exrick.xboot.your.util.HaiKangPost; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.*; /** * @author whj */ @Slf4j @RestController @Api(tags = "大屏统计接口") @RequestMapping("/xboot/pcStatistic") @Transactional public class StatisticController { @Autowired private RedisTemplateHelper redisTemplateHelper; @Autowired private IOrderTaskService iOrderTaskService; @Autowired private IEventLogService iEventLogService; @Autowired private ICarService iCarService; @Autowired private HaiKangPost haiKangPost; @Autowired private IAreaService iAreaService; @Autowired private IAreaSectionService iAreaSectionService; @RequestMapping(value = "/getIndex1", method = RequestMethod.GET) @ApiOperation(value = "获取首页数据") public Result getIndex1() { Map map = new HashMap<>(); Set scan = redisTemplateHelper.scan("*statistic1::*"); for (String str : scan) { map.put(str.substring(12),redisTemplateHelper.get(str)); } return new ResultUtil().setData(map); } @RequestMapping(value = "/getTodayTask", method = RequestMethod.GET) @ApiOperation(value = "获取今日配送任务") public Result getTodayTask() { QueryWrapper wrapper2 = new QueryWrapper(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("a.send_date",format); // wrapper2.orderByAsc("a.seq"); List list = iOrderTaskService.list3(format); return new ResultUtil().setData(list); } @RequestMapping(value = "/getEventLog", method = RequestMethod.GET) @ApiOperation(value = "获取事件日志") public Result getEventLog() { QueryWrapper wrapper2 = new QueryWrapper(); PageVo page = new PageVo(); page.setPageNumber(1); page.setPageSize(20); page.setOrder("desc"); page.setSort("createTime"); IPage data = iEventLogService.page(PageUtil.initMpPage(page),wrapper2); return new ResultUtil().setData(data.getRecords()); } @RequestMapping(value = "/getCars", method = RequestMethod.GET) @ApiOperation(value = "获取车辆定位信息") public Result getCars() { List list = iCarService.list(); String codes[] = new String[list.size()]; for(int i=0;i().setData(JSONUtil.parseObj(latestGps)); } @RequestMapping(value = "/getAnalysis", method = RequestMethod.GET) @ApiOperation(value = "获取配送分析") public Result getAnalysis() { List list = iAreaService.list2(); for(Area area:list){ double sum = 0; int flag = 0; for(AreaSection areaSection: area.getChildren()){ sum+=areaSection.getStability(); flag++; } if(flag>0){ double v = sum / flag; area.setVariance(trans2(v)); } } return new ResultUtil().setData(list); } @RequestMapping(value = "/getAnalysisDetail", method = RequestMethod.GET) @ApiOperation(value = "获取配送分析详情") public Result getAnalysisDetail(String areaName,String selectName) { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("name",areaName); Area one = iAreaService.getOne(wrapper); QueryWrapper wrapper2 = new QueryWrapper(); wrapper2.eq("area_id",one.getId()); wrapper2.eq("name",selectName); AreaSection one1 = iAreaSectionService.getOne(wrapper2); List list = iOrderTaskService.groupByTime(one.getId(),one1.getId()); List list1 = new ArrayList<>(); List list2 = new ArrayList<>(); List list3 = new ArrayList<>(); List list4 = new ArrayList<>(); for(OrderTask obj:list){ list1.add(obj.getCustomerName()); list2.add(Integer.valueOf(obj.getTime()/60000)); list3.add(Integer.valueOf(obj.getNum()/60000)); list4.add(Integer.valueOf(obj.getLevel()/60000)); } Map map = new HashMap<>(); map.put("name",list1); map.put("avg",list2); map.put("min",list3); map.put("max",list4); return new ResultUtil().setData(map); } public double trans2(double v2){ return (double) Math.round(v2 * 100) / 100; } }