From d3f3d4b309cfb285fcbbc48b91c4046111c7e9cd Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 02 七月 2025 13:45:54 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/ConsoleController.java | 302 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 299 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java index ea2657a..d382695 100644 --- a/src/main/java/com/zy/asrs/controller/ConsoleController.java +++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java @@ -7,38 +7,48 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; +import com.zy.asrs.domain.dto.AxisBean; +import com.zy.asrs.domain.dto.WorkChartAxis; import com.zy.asrs.domain.enums.CrnStatusType; import com.zy.asrs.domain.enums.SiteStatusType; import com.zy.asrs.domain.param.SystemSwitchParam; import com.zy.asrs.domain.vo.*; -import com.zy.asrs.entity.BasCrnError; -import com.zy.asrs.entity.BasDevp; -import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.LocMastMapper; +import com.zy.asrs.mapper.ReportQueryMapper; +import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.BasDevpService; +import com.zy.asrs.service.DeviceErrorService; import com.zy.asrs.service.WrkMastService; import com.zy.common.CodeRes; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.Slave; +import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.CrnModeType; import com.zy.core.enums.SlaveType; import com.zy.core.model.CrnSlave; import com.zy.core.model.DevpSlave; +import com.zy.core.model.RgvSlave; +import com.zy.core.model.Task; +import com.zy.core.model.command.CrnCommand; import com.zy.core.model.protocol.CrnProtocol; +import com.zy.core.model.protocol.RgvProtocol; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.properties.SystemProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.ScaleThread; import com.zy.core.thread.SiemensCrnThread; +import com.zy.core.thread.SiemensRgvThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -60,6 +70,64 @@ private LocMastMapper locMastMapper; @Autowired private BasCrnErrorMapper basCrnErrorMapper; + @Autowired + private ReportQueryMapper reportQueryMapper; + @Autowired + private DeviceErrorService deviceErrorService; + @Autowired + private BasCrnpService basCrnpService; + + @PostMapping("/system/running/error") + @ManagerAuth(memo = "绯荤粺杩愯鐘舵��") + public R systemRunningError(){ + StringBuilder msg = new StringBuilder(); + for (CrnSlave crn : slaveProperties.getCrn()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + if (crnThread == null) { + continue; + } + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + if (crnProtocol.getStatus() == 99){ + msg.append("<span style=\"color: red\">").append(crn.getId()).append("鍙峰爢鍨涙満鎶ヨ<span><br>"); + } + } + for (RgvSlave rgv : slaveProperties.getRgv()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); + if (rgvThread == null) { + continue; + } + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (rgvProtocol == null) { + continue; + } + if (rgvProtocol.getAlarm() > 0){ + msg.append("<span style=\"color: red\">").append(rgv.getId()).append("鍙稲gv鎶ヨ<span><br>"); + } + } + for (DevpSlave devp : slaveProperties.getDevp()) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + Map<Integer, StaProtocol> station = devpThread.getStation(); + + for(Map.Entry<Integer, StaProtocol> entry : station.entrySet()) { + if (entry.getKey() == 302 || entry.getKey() == 303 || entry.getKey() == 304 || entry.getKey() == 305) { + if (!Cools.isEmpty(staPlcErr(entry))){ + msg.append("<span style=\"color: red\">").append(staPlcErr(entry).get(0).getNo()).append("鍙锋彁鍗囨満鎶ヨ<span><br>"); + } + } + + + } + } + if (!Cools.isEmpty(msg.toString())){ + return R.error().add(msg.toString()); + } + return R.ok(); + } @PostMapping("/system/running/status") @ManagerAuth(memo = "绯荤粺杩愯鐘舵��") @@ -108,6 +176,28 @@ vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙� vo.setSiteStatus(SiteStatusType.process(staProtocol)); // 鐘舵�� vo.setNearbySta(staProtocol.getNearbySta()); //RGV浣嶇疆 + vos.add(vo); + } + return R.ok().add(vos); + } + + + @PostMapping("/latest/data/hoist") + @ManagerAuth(memo = "鎻愬崌鏈哄疄鏃舵暟鎹�") + public R hoistLatestData(){ + List<HoistDataVo> vos = new ArrayList<>(); + Map<Integer, StaProtocol> stations = new HashMap<>(); + for (DevpSlave devp : slaveProperties.getDevp()) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + if (null != devpThread) { + stations.putAll(devpThread.getStation()); + } + } + for (Map.Entry<Integer, StaProtocol> entry : stations.entrySet()) { + HoistDataVo vo = new HoistDataVo(); + StaProtocol staProtocol = entry.getValue(); + vo.setHoistId(String.valueOf(entry.getKey())); + vo.setPlace(staProtocol.getPlace()); vos.add(vo); } return R.ok().add(vos); @@ -191,6 +281,60 @@ return R.ok().add(list); } + /** + * 鑾峰彇璁惧璇︽儏 + */ + @GetMapping("/deviceInfo") + @ManagerAuth + public R getDeviceInfo() { + ArrayList<HashMap<String, Object>> list = new ArrayList<>(); + for (CrnSlave crn : slaveProperties.getCrn()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + if (crnThread == null) { + continue; + } + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + + HashMap<String, Object> map = new HashMap<>(); + map.put("device", "鍫嗗灈鏈�"); + map.put("deviceId", crn.getId()); + map.put("battery", ""); + map.put("error", crnProtocol.getFault()); + map.put("status", crnProtocol.getStatusType().desc); + list.add(map); + } + + for (DevpSlave devp : slaveProperties.getDevp()) { + DeviceError deviceError = deviceErrorService.selectByDeviceAndDeviceId("devp", devp.getId()); + HashMap<String, Object> map = new HashMap<>(); + map.put("device", "杈撻�佺嚎"); + map.put("deviceId", devp.getId()); + map.put("battery", ""); + map.put("error", deviceError != null); + map.put("status", deviceError == null ? "" : deviceError.getMsg()); + list.add(map); + } + + for (Slave scale : slaveProperties.getScale()) { + DeviceError deviceError = deviceErrorService.selectByDeviceAndDeviceId("scale", scale.getId()); + HashMap<String, Object> map = new HashMap<>(); + map.put("device", "纾呯Г"); + map.put("deviceId", scale.getId()); + map.put("battery", ""); + map.put("error", deviceError != null); + map.put("status", deviceError == null ? "" : deviceError.getMsg()); + list.add(map); + } + + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("records", list); + return R.ok().add(hashMap); + } + /****************************************************************/ /************************** 璇︽儏鎿嶄綔 ******************************/ /****************************************************************/ @@ -249,6 +393,11 @@ CrnDetailVo vo = new CrnDetailVo(); for (CrnSlave crnSlave : slaveProperties.getCrn()) { if (crnSlave.getId().equals(crnNo)) { + BasCrnp basCrnp = basCrnpService.selectById(crnNo); + if (basCrnp == null) { + return R.error("鏁版嵁搴撶淮鎶ゅ紓甯�"); + } + SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); vo.setCrnNo(crnNo); @@ -273,6 +422,8 @@ vo.setError(""); // todo } } + vo.setInEnable(basCrnp.getInEnable());//鍙叆 + vo.setOutEnable(basCrnp.getOutEnable());//鍙嚭 return R.ok().add(vo); } } @@ -307,4 +458,149 @@ return R.ok().add(JSON.toJSONString(jsonObjects)); } + @PostMapping("loc/pie/charts") + public R dsa(){ + Map<String,Object> map=new HashMap<String, Object>(); + List<ChartBean> list = new ArrayList<ChartBean>(); + + LocChartPie locUseRate = reportQueryMapper.getLocUseRate(); + if(locUseRate!=null) { + ChartBean fqty = new ChartBean(); + fqty.setName("鍦ㄥ簱搴撲綅"); + fqty.setY(locUseRate.getFqty()); + list.add(fqty); + + ChartBean oqty = new ChartBean(); + oqty.setName("绌哄簱浣�"); + oqty.setY(locUseRate.getOqty()); + list.add(oqty); + + ChartBean uqty = new ChartBean(); + uqty.setName("浣跨敤搴撲綅"); + uqty.setY(locUseRate.getUqty()); + list.add(uqty); + + ChartBean xqty = new ChartBean(); + xqty.setName("绂佺敤搴撲綅"); + xqty.setY(locUseRate.getXqty()); + list.add(xqty); + } + map.put("rows",list); + return R.ok(map); + } + + @PostMapping("locIo/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); + } + + public List<PlcErrorTableVo> staPlcErr(Map.Entry<Integer, StaProtocol> entry){ + List<PlcErrorTableVo> list = new ArrayList<>(); + StaProtocol staProtocol = entry.getValue(); + if (staProtocol.getBreakerErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + vo.setPlcDesc("鏂矾鍣ㄦ晠闅�"); + vo.setError("鏂矾鍣ㄦ晠闅�"); + list.add(vo); + } + if (staProtocol.getInfraredErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + vo.setPlcDesc("鍏夌數寮傚父"); + vo.setError("鍏夌數寮傚父"); + list.add(vo); + } + if (staProtocol.getOutTimeErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("杩愯瓒呮椂"); + vo.setError("杩愯瓒呮椂"); + list.add(vo); + } + if (staProtocol.getSeizeSeatErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鍗犱綅瓒呮椂"); + vo.setError("鍗犱綅瓒呮椂"); + list.add(vo); + } + if (staProtocol.getWrkYgoodsN()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鏈変换鍔℃棤璐ф晠闅�"); + vo.setError("鏈変换鍔℃棤璐ф晠闅�"); + list.add(vo); + } + if (staProtocol.getInverterErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鍙橀鍣ㄦ晠闅�"); + vo.setError("鍙橀鍣ㄦ晠闅�"); + list.add(vo); + } + if (staProtocol.getContactErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + vo.setError("鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + list.add(vo); + } + if (staProtocol.getUpcontactErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + vo.setError("椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + list.add(vo); + } + return list; + } + } -- Gitblit v1.9.1