| | |
| | | package com.zy.asrs.wms.asrs.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.framework.common.DateUtils; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.wms.asrs.entity.Loc; |
| | | import com.zy.asrs.wms.asrs.entity.TaskLog; |
| | | import com.zy.asrs.wms.asrs.entity.echart.EChartLineBean; |
| | | import com.zy.asrs.wms.asrs.entity.echart.EChartPieBean; |
| | | import com.zy.asrs.wms.asrs.entity.enums.LocStsType; |
| | | import com.zy.asrs.wms.asrs.entity.statistics.InformationTop; |
| | | import com.zy.asrs.wms.asrs.entity.statistics.ViewInOut; |
| | | import com.zy.asrs.wms.asrs.mapper.statistics.ViewInOutMapper; |
| | | import com.zy.asrs.wms.asrs.service.LocService; |
| | | import com.zy.asrs.wms.asrs.service.MatService; |
| | | import com.zy.asrs.wms.asrs.service.TaskDetlLogService; |
| | | import com.zy.asrs.wms.asrs.service.TaskLogService; |
| | | import com.zy.asrs.wms.common.annotation.CacheData; |
| | | import com.zy.asrs.wms.system.controller.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | | @RequestMapping("/api") |
| | | public class EChartController extends BaseController { |
| | | |
| | | @Autowired |
| | | private LocService locService; |
| | | @Autowired |
| | | private TaskLogService taskLogService; |
| | | @Autowired |
| | | private TaskDetlLogService taskDetlLogService; |
| | | @Autowired |
| | | private ViewInOutMapper viewInOutMapper; |
| | | @Autowired |
| | | private MatService matService; |
| | | |
| | | @PostMapping("/charts/loc/use") |
| | | @CacheData(tableName = {"man_loc"}) |
| | | public R locUse(){ |
| | | List<EChartPieBean> list = new ArrayList<>(); |
| | | |
| | | long fqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.F.val(), LocStsType.D.val())); |
| | | long oqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.O.val())); |
| | | long uqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.S.val(), LocStsType.R.val())); |
| | | long xqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.X.val())); |
| | | |
| | | EChartPieBean fbean = new EChartPieBean(); |
| | | fbean.setName("在库库位"); |
| | | fbean.setValue(fqty); |
| | | list.add(fbean); |
| | | |
| | | EChartPieBean obean = new EChartPieBean(); |
| | | obean.setName("空库位"); |
| | | obean.setValue(oqty); |
| | | list.add(obean); |
| | | |
| | | EChartPieBean ubean = new EChartPieBean(); |
| | | ubean.setName("使用库位"); |
| | | ubean.setValue(uqty); |
| | | list.add(ubean); |
| | | |
| | | EChartPieBean xbean = new EChartPieBean(); |
| | | xbean.setName("禁用库位"); |
| | | xbean.setValue(xqty); |
| | | list.add(xbean); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | @PostMapping("/charts/loc/line") |
| | | @CacheData(tableName = {"man_task_log"}) |
| | | public R locIoLineCharts(){ |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.add(Calendar.DATE, -12); |
| | | |
| | | ArrayList<String> days = new ArrayList<>(); |
| | | ArrayList<Long> inData = new ArrayList<>(); |
| | | ArrayList<Long> outData = new ArrayList<>(); |
| | | for (int i = 0; i < 12; i++) { |
| | | calendar.add(Calendar.DATE, 1); |
| | | Date time = calendar.getTime(); |
| | | days.add(sf.format(time)); |
| | | |
| | | Date startOfDay = DateUtils.getStartOfDay(time); |
| | | Date endOfDay = DateUtils.getEndOfDay(time); |
| | | |
| | | LambdaQueryWrapper<TaskLog> inWrapper = new LambdaQueryWrapper<TaskLog>() |
| | | .ge(TaskLog::getCreateTime, startOfDay) |
| | | .le(TaskLog::getCreateTime, endOfDay) |
| | | .eq(TaskLog::getTaskSts, 100) |
| | | .in(TaskLog::getTaskType, 1, 53, 57); |
| | | |
| | | LambdaQueryWrapper<TaskLog> outWrapper = new LambdaQueryWrapper<TaskLog>() |
| | | .ge(TaskLog::getCreateTime, startOfDay) |
| | | .le(TaskLog::getCreateTime, endOfDay) |
| | | .eq(TaskLog::getTaskSts, 200) |
| | | .in(TaskLog::getTaskType, 101, 103, 107); |
| | | |
| | | long inCount = taskLogService.count(inWrapper); |
| | | long outCount = taskLogService.count(outWrapper); |
| | | |
| | | inData.add(inCount); |
| | | outData.add(outCount); |
| | | } |
| | | |
| | | EChartLineBean inBean = new EChartLineBean(); |
| | | inBean.setName("入库数量"); |
| | | inBean.setValue(inData); |
| | | |
| | | EChartLineBean outBean = new EChartLineBean(); |
| | | outBean.setName("出库数量"); |
| | | outBean.setValue(outData); |
| | | |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("in", inBean); |
| | | map.put("out", outBean); |
| | | map.put("days", days); |
| | | |
| | | return R.ok().add(map); |
| | | } |
| | | |
| | | @PostMapping("/charts/information") |
| | | @CacheData(tableName = {"man_mat", "man_task", "man_task_log"}) |
| | | public R information() { |
| | | HashMap<String, Object> data = new HashMap<>(); |
| | | long matCount = matService.count(); |
| | | Long inQty = 0L; |
| | | Long outQty = 0L; |
| | | Long totalQty = 0L; |
| | | |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
| | | ViewInOut viewInOut = viewInOutMapper.selectOne(new LambdaQueryWrapper<ViewInOut>().eq(ViewInOut::getYmd, format.format(new Date())).orderByDesc(ViewInOut::getYmd).last("limit 0,1")); |
| | | if (viewInOut != null) { |
| | | inQty = viewInOut.getInQty(); |
| | | outQty = viewInOut.getOutQty(); |
| | | totalQty = viewInOut.getTotalQty(); |
| | | } |
| | | |
| | | data.put("inCount", inQty); |
| | | data.put("outCount", outQty); |
| | | data.put("totalCount", totalQty); |
| | | data.put("matCount", matCount); |
| | | return R.ok().add(data); |
| | | } |
| | | |
| | | @PostMapping("/charts/information/top") |
| | | @CacheData(tableName = {"man_task_detl_log"}) |
| | | public R informationTop() { |
| | | List<InformationTop> topIn = taskDetlLogService.getInformationTopIn(10); |
| | | List<InformationTop> topOut = taskDetlLogService.getInformationTopOut(10); |
| | | |
| | | HashMap<String, Object> data = new HashMap<>(); |
| | | data.put("topIn", topIn); |
| | | data.put("topOut", topOut); |
| | | return R.ok().add(data); |
| | | } |
| | | |
| | | } |
| | | package com.zy.asrs.wms.asrs.controller;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
| | | import com.zy.asrs.framework.common.DateUtils;
|
| | | import com.zy.asrs.framework.common.R;
|
| | | import com.zy.asrs.wms.asrs.entity.Loc;
|
| | | import com.zy.asrs.wms.asrs.entity.TaskLog;
|
| | | import com.zy.asrs.wms.asrs.entity.echart.EChartLineBean;
|
| | | import com.zy.asrs.wms.asrs.entity.echart.EChartPieBean;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
|
| | | import com.zy.asrs.wms.asrs.entity.statistics.InformationTop;
|
| | | import com.zy.asrs.wms.asrs.entity.statistics.ViewInOut;
|
| | | import com.zy.asrs.wms.asrs.mapper.statistics.ViewInOutMapper;
|
| | | import com.zy.asrs.wms.asrs.service.LocService;
|
| | | import com.zy.asrs.wms.asrs.service.MatService;
|
| | | import com.zy.asrs.wms.asrs.service.TaskDetlLogService;
|
| | | import com.zy.asrs.wms.asrs.service.TaskLogService;
|
| | | import com.zy.asrs.wms.common.annotation.CacheData;
|
| | | import com.zy.asrs.wms.system.controller.BaseController;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.web.bind.annotation.PostMapping;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RestController;
|
| | |
|
| | | import java.text.SimpleDateFormat;
|
| | | import java.util.*;
|
| | |
|
| | | @RestController
|
| | | @RequestMapping("/api")
|
| | | public class EChartController extends BaseController {
|
| | |
|
| | | @Autowired
|
| | | private LocService locService;
|
| | | @Autowired
|
| | | private TaskLogService taskLogService;
|
| | | @Autowired
|
| | | private TaskDetlLogService taskDetlLogService;
|
| | | @Autowired
|
| | | private ViewInOutMapper viewInOutMapper;
|
| | | @Autowired
|
| | | private MatService matService;
|
| | |
|
| | | @PostMapping("/charts/loc/use")
|
| | | @CacheData(tableName = {"man_loc"})
|
| | | public R locUse(){
|
| | | List<EChartPieBean> list = new ArrayList<>();
|
| | |
|
| | | long fqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.F.val(), LocStsType.D.val()));
|
| | | long oqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.O.val()));
|
| | | long uqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.S.val(), LocStsType.R.val()));
|
| | | long xqty = locService.count(new LambdaQueryWrapper<Loc>().in(Loc::getLocStsId, LocStsType.X.val()));
|
| | |
|
| | | EChartPieBean fbean = new EChartPieBean();
|
| | | fbean.setName("在库库位");
|
| | | fbean.setValue(fqty);
|
| | | list.add(fbean);
|
| | |
|
| | | EChartPieBean obean = new EChartPieBean();
|
| | | obean.setName("空库位");
|
| | | obean.setValue(oqty);
|
| | | list.add(obean);
|
| | |
|
| | | EChartPieBean ubean = new EChartPieBean();
|
| | | ubean.setName("使用库位");
|
| | | ubean.setValue(uqty);
|
| | | list.add(ubean);
|
| | |
|
| | | EChartPieBean xbean = new EChartPieBean();
|
| | | xbean.setName("禁用库位");
|
| | | xbean.setValue(xqty);
|
| | | list.add(xbean);
|
| | | return R.ok(list);
|
| | | }
|
| | |
|
| | | @PostMapping("/charts/loc/line")
|
| | | @CacheData(tableName = {"man_task_log"})
|
| | | public R locIoLineCharts(){
|
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
| | | Calendar calendar = Calendar.getInstance();
|
| | | calendar.add(Calendar.DATE, -12);
|
| | |
|
| | | ArrayList<String> days = new ArrayList<>();
|
| | | ArrayList<Long> inData = new ArrayList<>();
|
| | | ArrayList<Long> outData = new ArrayList<>();
|
| | | for (int i = 0; i < 12; i++) {
|
| | | calendar.add(Calendar.DATE, 1);
|
| | | Date time = calendar.getTime();
|
| | | days.add(sf.format(time));
|
| | |
|
| | | Date startOfDay = DateUtils.getStartOfDay(time);
|
| | | Date endOfDay = DateUtils.getEndOfDay(time);
|
| | |
|
| | | LambdaQueryWrapper<TaskLog> inWrapper = new LambdaQueryWrapper<TaskLog>()
|
| | | .ge(TaskLog::getCreateTime, startOfDay)
|
| | | .le(TaskLog::getCreateTime, endOfDay)
|
| | | .eq(TaskLog::getTaskSts, 100)
|
| | | .in(TaskLog::getTaskType, 1, 53, 57);
|
| | |
|
| | | LambdaQueryWrapper<TaskLog> outWrapper = new LambdaQueryWrapper<TaskLog>()
|
| | | .ge(TaskLog::getCreateTime, startOfDay)
|
| | | .le(TaskLog::getCreateTime, endOfDay)
|
| | | .eq(TaskLog::getTaskSts, 200)
|
| | | .in(TaskLog::getTaskType, 101, 103, 107);
|
| | |
|
| | | long inCount = taskLogService.count(inWrapper);
|
| | | long outCount = taskLogService.count(outWrapper);
|
| | |
|
| | | inData.add(inCount);
|
| | | outData.add(outCount);
|
| | | }
|
| | |
|
| | | EChartLineBean inBean = new EChartLineBean();
|
| | | inBean.setName("入库数量");
|
| | | inBean.setValue(inData);
|
| | |
|
| | | EChartLineBean outBean = new EChartLineBean();
|
| | | outBean.setName("出库数量");
|
| | | outBean.setValue(outData);
|
| | |
|
| | | HashMap<String, Object> map = new HashMap<>();
|
| | | map.put("in", inBean);
|
| | | map.put("out", outBean);
|
| | | map.put("days", days);
|
| | |
|
| | | return R.ok().add(map);
|
| | | }
|
| | |
|
| | | @PostMapping("/charts/information")
|
| | | @CacheData(tableName = {"man_mat", "man_task", "man_task_log"})
|
| | | public R information() {
|
| | | HashMap<String, Object> data = new HashMap<>();
|
| | | long matCount = matService.count();
|
| | | Long inQty = 0L;
|
| | | Long outQty = 0L;
|
| | | Long totalQty = 0L;
|
| | |
|
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
| | | ViewInOut viewInOut = viewInOutMapper.selectOne(new LambdaQueryWrapper<ViewInOut>().eq(ViewInOut::getYmd, format.format(new Date())).orderByDesc(ViewInOut::getYmd).last("limit 0,1"));
|
| | | if (viewInOut != null) {
|
| | | inQty = viewInOut.getInQty();
|
| | | outQty = viewInOut.getOutQty();
|
| | | totalQty = viewInOut.getTotalQty();
|
| | | }
|
| | |
|
| | | data.put("inCount", inQty);
|
| | | data.put("outCount", outQty);
|
| | | data.put("totalCount", totalQty);
|
| | | data.put("matCount", matCount);
|
| | | return R.ok().add(data);
|
| | | }
|
| | |
|
| | | @PostMapping("/charts/information/top")
|
| | | @CacheData(tableName = {"man_task_detl_log"})
|
| | | public R informationTop() {
|
| | | List<InformationTop> topIn = taskDetlLogService.getInformationTopIn(10);
|
| | | List<InformationTop> topOut = taskDetlLogService.getInformationTopOut(10);
|
| | |
|
| | | HashMap<String, Object> data = new HashMap<>();
|
| | | data.put("topIn", topIn);
|
| | | data.put("topOut", topOut);
|
| | | return R.ok().add(data);
|
| | | }
|
| | |
|
| | | }
|