From e3a413d3410621a7abbec52e48b3ff51b89d9cca Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 07 六月 2024 15:08:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/MonitorController.java | 426 +++++++++++++++++++++++++++------------------------- 1 files changed, 220 insertions(+), 206 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java index 2d839dd..a827610 100644 --- a/src/main/java/com/zy/asrs/controller/MonitorController.java +++ b/src/main/java/com/zy/asrs/controller/MonitorController.java @@ -7,13 +7,21 @@ import com.zy.asrs.domain.dto.WorkChartAxis; import com.zy.asrs.domain.vo.LocChartPie; import com.zy.asrs.mapper.ReportQueryMapper; +import com.zy.common.model.MatDto; 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.LedSlave; +import com.zy.core.model.command.LedCommand; import com.zy.core.model.protocol.CrnProtocol; +import com.zy.core.properties.SlaveProperties; +import com.zy.core.thread.LedThread; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +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.text.SimpleDateFormat; import java.util.*; @@ -29,6 +37,8 @@ @Autowired private ReportQueryMapper reportQueryMapper; + @Autowired + private SlaveProperties slaveProperties; /** * 鑾峰彇褰撳墠鏃堕棿 @@ -40,75 +50,15 @@ 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]) + .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("/other") - public R monitorOther(@RequestParam("crnId") Integer crnId) { - Double xSpeed = 0.0D; - Double ySpeed = 0.0D; - Double zSpeed = 0.0D; - Short forkPos = 1; - 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()); - zSpeed = Double.valueOf(crnProtocol.getZSpeed()); - switch (crnProtocol.getForkPos()) { - case 0: - forkPos = 1; - break; - case 1: - forkPos = 0; - break; - case 2: - forkPos = 2; - break; - default: - forkPos = 1; - break; - } - xDistance = Double.valueOf(crnProtocol.getXDistance()); - yDistance = Double.valueOf(crnProtocol.getYDistance()); - xDuration = Double.valueOf(crnProtocol.getXDuration()); - yDuration = Double.valueOf(crnProtocol.getYDuration()); - } - } - } - -// int totalWrk = reportQueryMapper.getTotalWrkByCrnId(crnId); -// int totalLoc = reportQueryMapper.getTotalLocByCrnId(); - - return R.ok( - Cools.add("xSpeed", xSpeed) // 琛岃蛋閫熷害 - .add("ySpeed", ySpeed) // 鍗囬檷閫熷害 - .add("zSpeed", zSpeed) // 鍙夌墮閫熷害 - .add("forkPos", forkPos) // 鍙夌墮閫熷害 -// .add("totalLoc", totalLoc) // 鎬诲簱浣嶆暟 -// .add("totalWrk", totalWrk) // 鎬讳换鍔℃暟 - .add("xDistance", xDistance) // 绱璧拌璺濈km - .add("yDistance", yDistance) // 绱鍗囬檷璺濈km - .add("xDuration", xDuration) // 绱璧拌鏃堕暱h - .add("yDuration", yDuration) // 绱鍗囬檷鏃堕暱h - ); - } /** * 鍏ュ簱鎶ヨ〃 -- 鎶樼嚎鍥� @@ -126,145 +76,6 @@ List<Map<String, Object>> pakoutRep = reportQueryMapper.queryPakinRep(); return R.ok(pakinRep); } - - @GetMapping("/line/charts") - public R locIoLineCharts(){ - Map<String,Object> map=new HashMap<String, Object>(); - List<AxisBean> list = new ArrayList<AxisBean>(); - - List<WorkChartAxis> listChart = reportQueryMapper.getChartAxis(); - - if(listChart!=null) { - ArrayList<Integer> data1 = new ArrayList<Integer>(); - ArrayList<Integer> data2 = new ArrayList<Integer>(); - - SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, -12); - for(int i=0;i<12;i++) { - boolean flag = true; - calendar.add(Calendar.DATE, 1); - String str = sf.format(calendar.getTime()); - for(WorkChartAxis workChart : listChart) { - if(str.equals(workChart.getYmd())) { - data1.add(workChart.getInqty()); - data2.add(workChart.getOutqty()); - flag = false; - break; - } - } - if(flag) { - data1.add(0); - data2.add(0); - } - } - AxisBean inqty = new AxisBean(); - inqty.setName("鍏ュ簱鏁伴噺"); - Integer[] array1 = new Integer[data1.size()]; - inqty.setData(data1.toArray(array1)); - list.add(inqty); - AxisBean outqty = new AxisBean(); - outqty.setName("鍑哄簱鏁伴噺"); - Integer[] array2 = new Integer[data2.size()]; - outqty.setData(data2.toArray(array2)); - list.add(outqty); - } - map.put("rows",list); - return R.ok(map); - } - - - /** - * 搴撲綅浣跨敤鎯呭喌缁熻 - */ - @GetMapping("/loc/rep") - public R monitorLocRep(){ - 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("value", locUseRate.getFqty()); - pie.add(map); - - Map<String, Object> map1 = new HashMap<>(); - map1.put("name", "绌�"); - map1.put("value", locUseRate.getOqty()); - pie.add(map1); - - Map<String, Object> map2 = new HashMap<>(); - map2.put("name", "浣跨敤"); - map2.put("value", locUseRate.getUqty()); - pie.add(map2); - - Map<String, Object> map3 = new HashMap<>(); - map3.put("name", "绂佺敤"); - map3.put("value", locUseRate.getXqty()); - pie.add(map3); - } - - // 鎬诲簱浣嶆暟 - 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) - ); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** * 鑷姩琛ラ浂 @@ -339,6 +150,209 @@ } + /***** 鐢佃APP鐩稿叧鎺ュ彛 ******/ + @GetMapping("/led/error") + public R monitorLedError(@RequestParam("ledId") Integer ledId) { + String errorMsg = ""; + for (LedSlave slave : slaveProperties.getLed()) { + if (slave.getStaArr().contains(ledId)) { + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId()); + if (null != ledThread) { + errorMsg = ledThread.getErrorMsg().toString(); + } + } + } + return R.ok().add(errorMsg); + } + + @GetMapping("/line/charts") + public R locIoLineCharts(){ + Map<String,Object> map=new HashMap<String, Object>(); + List<AxisBean> list = new ArrayList<AxisBean>(); + + List<WorkChartAxis> listChart = reportQueryMapper.getChartAxis(); + + if(listChart!=null) { + ArrayList<Integer> data1 = new ArrayList<Integer>(); + ArrayList<Integer> data2 = new ArrayList<Integer>(); + + SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, -12); + for(int i=0;i<12;i++) { + boolean flag = true; + calendar.add(Calendar.DATE, 1); + String str = sf.format(calendar.getTime()); + for(WorkChartAxis workChart : listChart) { + if(str.equals(workChart.getYmd())) { + data1.add(workChart.getInqty()); + data2.add(workChart.getOutqty()); + flag = false; + break; + } + } + if(flag) { + data1.add(0); + data2.add(0); + } + } + AxisBean inqty = new AxisBean(); + inqty.setName("鍏ュ簱鏁伴噺"); + Integer[] array1 = new Integer[data1.size()]; + inqty.setData(data1.toArray(array1)); + list.add(inqty); + AxisBean outqty = new AxisBean(); + outqty.setName("鍑哄簱鏁伴噺"); + Integer[] array2 = new Integer[data2.size()]; + outqty.setData(data2.toArray(array2)); + list.add(outqty); + } + map.put("rows",list); + return R.ok(map); + } + /** + * 搴撲綅浣跨敤鎯呭喌缁熻 + */ + @GetMapping("/loc/rep") + public R monitorLocRep(){ + 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("value", locUseRate.getFqty()); + pie.add(map); + + Map<String, Object> map1 = new HashMap<>(); + map1.put("name", "绌�"); + map1.put("value", locUseRate.getOqty()); + pie.add(map1); + + Map<String, Object> map2 = new HashMap<>(); + map2.put("name", "浣跨敤"); + map2.put("value", locUseRate.getUqty()); + pie.add(map2); + + Map<String, Object> map3 = new HashMap<>(); + map3.put("name", "绂佺敤"); + map3.put("value", locUseRate.getXqty()); + pie.add(map3); + } + + // 鎬诲簱浣嶆暟 + 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) + ); + } + + /** + * 鑾峰彇鍏朵粬淇℃伅 + */ + @GetMapping("/led") + public R monitorLed(@RequestParam("ledId") Integer ledId) { + String ledContent = ""; + List<LedCommand> commandList = null; + for (LedSlave slave : slaveProperties.getLed()) { + if (slave.getStaArr().contains(ledId)) { + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId()); + if (null != ledThread) { + ledContent = ledThread.getStringBuffer().toString(); + commandList = ledThread.getCommandList(); + } + } + } +// MatDto matDto = new MatDto(); +// matDto.setMatNo("1111"); +// matDto.setCount(100.0); +// matDto.setMaknx("娴嬭瘯鐢ㄦ枡"); +// LedCommand ledCommand = new LedCommand(); +// ledCommand.setStaNo(8); +// ledCommand.setTitle("鍏ュ簱鍚姩"); +// ledCommand.setLocNo("0100101"); +// ledCommand.setWorkNo(9998); +// ledCommand.setEmptyMk(false); +// ledCommand.setIoType(1); +// ledCommand.setSourceStaNo(15); +// ArrayList<MatDto> matDtos = new ArrayList<>(); +// matDtos.add(matDto); +// ledCommand.setMatDtos(matDtos); +// ArrayList<LedCommand> ledCommands = new ArrayList<>(); +// ledCommands.add(ledCommand); +// return R.ok(ledCommands); + return R.ok().add(commandList); + } + /** + * 鑾峰彇鍏朵粬淇℃伅 + */ + @GetMapping("/other") + public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer ledId) { + Double xSpeed = 0.0D; + Double ySpeed = 0.0D; + Double zSpeed = 0.0D; + Short forkPos = 1; + 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()); + zSpeed = Double.valueOf(crnProtocol.getZSpeed()); + switch (crnProtocol.getForkPos()) { + case 0: + forkPos = 1; + break; + case 1: + forkPos = 2; + break; + case 2: + forkPos = 0; + break; + default: + forkPos = 1; + break; + } + xDistance = Double.valueOf(crnProtocol.getXDistance()); + yDistance = Double.valueOf(crnProtocol.getYDistance()); + xDuration = Double.valueOf(crnProtocol.getXDuration()); + yDuration = Double.valueOf(crnProtocol.getYDuration()); + } + } + } + + +// ledContent = "ask鐨勬ā鍧楄惃婊″ぇ绠椾簡钀ㄦ弧澶т簡\n 鏄獦澧冨埌鍩冨強鍡插鍡瞈n 钀ㄨ揪濮嗘墦寮�钀ㄦ弧澶у嚡鎾掗害褰撳姵钀ㄦ弧澶ц�佸笀"; + + return R.ok( + Cools.add("xSpeed", Arith.multiplys(1, Math.abs(xSpeed), 1)) // 琛岃蛋閫熷害 + .add("ySpeed", Arith.multiplys(1, Math.abs(ySpeed), 1)) // 鍗囬檷閫熷害 + .add("zSpeed", Arith.multiplys(1, Math.abs(zSpeed), 1)) // 鍙夌墮閫熷害 + .add("forkPos", forkPos) // 鍙夌墮閫熷害 + .add("xDistance", Arith.multiplys(1, Math.abs(xDistance), 1)) // 绱璧拌璺濈km + .add("yDistance", Arith.multiplys(1, Math.abs(yDistance), 1)) // 绱鍗囬檷璺濈km + .add("xDuration", Arith.multiplys(1, Math.abs(xDuration), 1)) // 绱璧拌鏃堕暱h + .add("yDuration", Arith.multiplys(1, Math.abs(yDuration), 1)) // 绱鍗囬檷鏃堕暱h + ); + } } -- Gitblit v1.9.1