package com.zy.asrs.controller;
|
|
import com.core.common.Arith;
|
import com.core.common.Cools;
|
import com.core.common.R;
|
import com.zy.asrs.domain.vo.LocChartPie;
|
import com.zy.asrs.mapper.ReportQueryMapper;
|
import com.zy.common.service.CommonService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.*;
|
|
/**
|
* Created by vincent on 2020/11/16
|
*/
|
@RestController
|
@RequestMapping("/monitor")
|
public class MonitorController {
|
|
private static final String[] WEEK = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
|
|
@Autowired
|
private ReportQueryMapper reportQueryMapper;
|
|
/**
|
* 获取当前时间
|
*/
|
@GetMapping("/date")
|
public R monitorDate() {
|
Date now = new Date();
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(now);
|
return R.ok(
|
Cools.add("year", calendar.get(Calendar.YEAR))
|
.add("month", CommonService.zerofill(String.valueOf(calendar.get(Calendar.MONTH)+1), 2))
|
.add("day", CommonService.zerofill(String.valueOf(calendar.get(Calendar.DATE)), 2))
|
.add("hour", CommonService.zerofill(String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)), 2))
|
.add("minute", CommonService.zerofill(String.valueOf(calendar.get(Calendar.MINUTE)), 2))
|
.add("second", CommonService.zerofill(String.valueOf(calendar.get(Calendar.SECOND)) , 2))
|
.add("week", WEEK[calendar.get(Calendar.DAY_OF_WEEK)-1])
|
);
|
}
|
|
/**
|
* 入库报表 -- 折线图
|
*/
|
@GetMapping("/pakin/rep")
|
public R monitorPakinRep(){
|
List<Map<String, Object>> report = reportQueryMapper.queryPakinRep();
|
for (Map<String, Object> map : report) {
|
if (map.get("node")!=null) {
|
map.put("node", String.valueOf(map.get("node")).substring(5, 10));
|
}
|
}
|
return R.ok(report);
|
}
|
|
@GetMapping("/loc/rep")
|
public R monitorLocRep(){
|
List<Map<String, Object>> result = new ArrayList<>();
|
|
LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
|
if(locUseRate!=null) {
|
Map<String, Object> map = new HashMap<>();
|
map.put("name", "在库库位");
|
map.put("value", locUseRate.getFqty());
|
result.add(map);
|
|
Map<String, Object> map1 = new HashMap<>();
|
map1.put("name", "空库位");
|
map1.put("value", locUseRate.getOqty());
|
result.add(map1);
|
|
Map<String, Object> map2 = new HashMap<>();
|
map2.put("name", "使用库位");
|
map2.put("value", locUseRate.getUqty());
|
result.add(map2);
|
|
Map<String, Object> map3 = new HashMap<>();
|
map3.put("name", "禁用库位");
|
map3.put("value", locUseRate.getXqty());
|
result.add(map3);
|
}
|
return R.ok(result);
|
}
|
|
|
|
|
|
/**
|
* 自动补零
|
*/
|
private List<Map<String, Object>> fill(List<Map<String, Object>> list, int start, int end){
|
for (int i = start ; i <= end; i++){
|
boolean exist = false;
|
for (Map seq : list){
|
if (Integer.parseInt(String.valueOf(seq.get("node"))) == i){
|
exist = true;
|
}
|
}
|
if (!exist){
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("node", i);
|
map.put("val", 0);
|
list.add(map);
|
}
|
}
|
list.sort(Comparator.comparingInt(o -> (int) o.get("node")));
|
return list;
|
}
|
|
/**
|
* x轴单位转换
|
* @param dot y轴数值保留小数位
|
*/
|
private List<Map<String, Object>> convert(List<Map<String, Object>> list, StatsType statsType, int dot){
|
for (Map<String, Object> map : list){
|
Object val = map.get("val");
|
map.put("val", Arith.multiplys(dot, 1, (Number) val));
|
Object node = map.get("node");
|
switch (statsType){
|
case MONTH:
|
map.put("node", node + "号");
|
break;
|
case YEAR:
|
map.put("node", node + "月");
|
break;
|
default:
|
break;
|
}
|
}
|
return list;
|
}
|
|
enum StatsType{
|
|
YEAR(1,1, 12),
|
MONTH(2,1, 30),
|
;
|
|
int id;
|
int start;
|
int end;
|
StatsType(int id, int start, int end) {
|
this.id = id;
|
this.start = start;
|
this.end = end;
|
}
|
|
static StatsType get(int id) {
|
StatsType[] values = StatsType.values();
|
for (StatsType statsType : values){
|
if (statsType.id == id){
|
return statsType;
|
}
|
}
|
throw new RuntimeException("找不到StatsType类型");
|
}
|
|
}
|
|
|
|
|
}
|