| | |
| | | import com.zy.asrs.domain.vo.LocChartPie; |
| | | import com.zy.asrs.mapper.ReportQueryMapper; |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.protocol.CrnProtocol; |
| | | 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.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.*; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取其他信息 |
| | | */ |
| | | @GetMapping("/other") |
| | | public R monitorOther(@RequestParam("crnId") Integer crnId) { |
| | | Double xSpeed = 0.0D; |
| | | Double ySpeed = 0.0D; |
| | | Double xDistance = 0.0D; |
| | | Double yDistance = 0.0D; |
| | | Double xDuration = 0.0D; |
| | | Double yDuration = 0.0D; |
| | | |
| | | if (null != crnId) { |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnId); |
| | | if (crnThread != null) { |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol != null) { |
| | | xSpeed = Double.valueOf(crnProtocol.getXSpeed()); |
| | | ySpeed = Double.valueOf(crnProtocol.getYSpeed()); |
| | | xDistance = Double.valueOf(crnProtocol.getXDistance()); |
| | | yDistance = Double.valueOf(crnProtocol.getYDistance()); |
| | | xDuration = Double.valueOf(crnProtocol.getXDuration()); |
| | | yDuration = Double.valueOf(crnProtocol.getYDuration()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | xSpeed = Double.valueOf(new Random().nextInt(10)); |
| | | ySpeed = Double.valueOf(new Random().nextInt(10)); |
| | | |
| | | // int totalWrk = reportQueryMapper.getTotalWrkByCrnId(crnId); |
| | | // int totalLoc = reportQueryMapper.getTotalLocByCrnId(); |
| | | |
| | | return R.ok( |
| | | Cools.add("xSpeed", xSpeed) // 行走速度 |
| | | .add("ySpeed", ySpeed) // 升降速度 |
| | | // .add("totalLoc", totalLoc) // 总库位数 |
| | | // .add("totalWrk", totalWrk) // 总任务数 |
| | | .add("xDistance", xDistance) // 累计走行距离km |
| | | .add("yDistance", yDistance) // 累计升降距离km |
| | | .add("xDuration", xDuration) // 累计走行时长h |
| | | .add("yDuration", yDuration) // 累计升降时长h |
| | | ); |
| | | } |
| | | |
| | | /** |
| | | * 入库报表 -- 折线图 |
| | | */ |
| | | @GetMapping("/pakin/rep") |
| | |
| | | return R.ok(report); |
| | | } |
| | | |
| | | /** |
| | | * 库位使用情况统计 |
| | | */ |
| | | @GetMapping("/loc/rep") |
| | | public R monitorLocRep(){ |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | List<Map<String, Object>> pie = new ArrayList<>(); |
| | | |
| | | LocChartPie locUseRate = reportQueryMapper.getLocUseRate(); |
| | | if(locUseRate!=null) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("name", "在库库位"); |
| | | map.put("name", "在库"); |
| | | map.put("value", locUseRate.getFqty()); |
| | | result.add(map); |
| | | pie.add(map); |
| | | |
| | | Map<String, Object> map1 = new HashMap<>(); |
| | | map1.put("name", "空库位"); |
| | | map1.put("name", "空"); |
| | | map1.put("value", locUseRate.getOqty()); |
| | | result.add(map1); |
| | | pie.add(map1); |
| | | |
| | | Map<String, Object> map2 = new HashMap<>(); |
| | | map2.put("name", "使用库位"); |
| | | map2.put("name", "使用"); |
| | | map2.put("value", locUseRate.getUqty()); |
| | | result.add(map2); |
| | | pie.add(map2); |
| | | |
| | | Map<String, Object> map3 = new HashMap<>(); |
| | | map3.put("name", "禁用库位"); |
| | | map3.put("name", "禁用"); |
| | | map3.put("value", locUseRate.getXqty()); |
| | | result.add(map3); |
| | | pie.add(map3); |
| | | } |
| | | return R.ok(result); |
| | | |
| | | // 总库位数 |
| | | Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty()); |
| | | // 使用中 |
| | | Integer used = locUseRate.getFqty() + locUseRate.getUqty(); |
| | | // 库位使用率 |
| | | double usedDivides = Arith.divides(3, used, total); |
| | | double usedPr = Arith.multiplys(1, usedDivides, 100); |
| | | |
| | | return R.ok( |
| | | Cools.add("pie", pie) |
| | | .add("stockCunt", locUseRate.getFqty()) |
| | | .add("emptyCount", locUseRate.getOqty()) |
| | | .add("noneCount", locUseRate.getXqty()) |
| | | .add("total", total) |
| | | .add("used", used) |
| | | .add("usedPr", usedPr) |
| | | ); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 自动补零 |
| | | */ |