Browse Source

修改停机统计算法

wukai 6 tháng trước cách đây
mục cha
commit
543a7dc5a8

+ 45 - 42
ruoyi-admin/src/main/java/com/ruoyi/biz/controller/ApiController.java

@@ -727,8 +727,8 @@ public class ApiController extends BaseController {
         if (d != null) {
             List<StopDetailVO> stopList = (List<StopDetailVO>) d;
             stopList.sort(Comparator.comparing(StopDetailVO::getDeviceId));
-            int[] nums = new int[10];
-            String[] devices = new String[10];
+            int[] nums = new int[7];
+            String[] devices = new String[7];
             try (FileInputStream inputStream = new FileInputStream(stopDetailExcelTemplate); Workbook wb = new XSSFWorkbook(inputStream); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream())) {
                 CellStyle p2 = wb.createCellStyle();
                 p2.setDataFormat(wb.createDataFormat().getFormat("0.00"));
@@ -739,36 +739,39 @@ public class ApiController extends BaseController {
                         combo(6, nums, devices, vo.getDeviceId());
                         continue;
                     }
-                    if (vo.getSpeed() > 0) {
+//                    if (vo.getSpeed() > 0) {
+//                        combo(0, nums, devices, vo.getDeviceId());
+//                        if (vo.getStop() != 0) {
+//                            combo(8, nums, devices, vo.getDeviceId());
+//                        }
+//                    }
+                    if (vo.getSpeed() > 0f || vo.getStop() == 0) {
                         combo(0, nums, devices, vo.getDeviceId());
-                        if (vo.getStop() != 0) {
-                            combo(8, nums, devices, vo.getDeviceId());
+                    } else {
+                        switch (vo.getStop()) {
+                            case 0:
+//                            combo(9, nums, devices, vo.getDeviceId());
+//                            if (vo.getSpeed() == 0f) {
+//                                combo(7, nums, devices, vo.getDeviceId());
+//                            }
+                                break;
+                            case 1:
+                                combo(1, nums, devices, vo.getDeviceId());
+                                break;
+                            case 2:
+                                combo(2, nums, devices, vo.getDeviceId());
+                                break;
+                            case 6:
+                                combo(3, nums, devices, vo.getDeviceId());
+                                break;
+                            case 7:
+                                combo(4, nums, devices, vo.getDeviceId());
+                                break;
+                            default:
+                                combo(5, nums, devices, vo.getDeviceId());
                         }
                     }
 
-                    switch (vo.getStop()) {
-                        case 0:
-                            combo(9, nums, devices, vo.getDeviceId());
-                            if (vo.getSpeed() == 0f) {
-                                combo(7, nums, devices, vo.getDeviceId());
-                            }
-                            break;
-                        case 1:
-                            combo(1, nums, devices, vo.getDeviceId());
-                            break;
-                        case 2:
-                            combo(2, nums, devices, vo.getDeviceId());
-                            break;
-                        case 6:
-                            combo(3, nums, devices, vo.getDeviceId());
-                            break;
-                        case 7:
-                            combo(4, nums, devices, vo.getDeviceId());
-                            break;
-                        default:
-                            combo(5, nums, devices, vo.getDeviceId());
-                    }
-
 
                     Row row = sheet2.createRow(rowNum++);
                     Cell[] cells = new Cell[4];
@@ -820,20 +823,20 @@ public class ApiController extends BaseController {
                 cell = sheet1.getRow(9).getCell(4);
                 cell.setCellValue(devices[6]);
 
-                cell = sheet1.getRow(14).getCell(2);
-                cell.setCellValue(nums[7]);
-                cell = sheet1.getRow(14).getCell(4);
-                cell.setCellValue(devices[7]);
-
-                cell = sheet1.getRow(15).getCell(2);
-                cell.setCellValue(nums[8]);
-                cell = sheet1.getRow(15).getCell(4);
-                cell.setCellValue(devices[8]);
-
-                cell = sheet1.getRow(16).getCell(2);
-                cell.setCellValue(nums[9]);
-                cell = sheet1.getRow(16).getCell(4);
-                cell.setCellValue(devices[9]);
+//                cell = sheet1.getRow(14).getCell(2);
+//                cell.setCellValue(nums[7]);
+//                cell = sheet1.getRow(14).getCell(4);
+//                cell.setCellValue(devices[7]);
+//
+//                cell = sheet1.getRow(15).getCell(2);
+//                cell.setCellValue(nums[8]);
+//                cell = sheet1.getRow(15).getCell(4);
+//                cell.setCellValue(devices[8]);
+//
+//                cell = sheet1.getRow(16).getCell(2);
+//                cell.setCellValue(nums[9]);
+//                cell = sheet1.getRow(16).getCell(4);
+//                cell.setCellValue(devices[9]);
                 // 清空response
                 response.reset();
                 // 设置response的Header

+ 29 - 31
ruoyi-admin/src/main/java/com/ruoyi/biz/service/impl/ApiServiceImpl.java

@@ -114,7 +114,6 @@ public class ApiServiceImpl implements IApiService {
         //平方米克重明细数据
         List<GramMassDetail> gramMassDetails = new ArrayList<>();
 
-        int stop1 = 0, stop2 = 0, stop6 = 0, stop8 = 0;
         iotService.getToken();
         TwinDevice searchDevice = new TwinDevice();
         searchDevice.setOnline("1");
@@ -129,8 +128,7 @@ public class ApiServiceImpl implements IApiService {
             TwinDevice twinDevice = list.get(i);
             futureList.add(asyncService.currData(twinDevice));
         }
-        int onlineNum = 0;
-        int otherStop = 0;
+        int stop1 = 0, stop2 = 0, stop6 = 0, stop8 = 0, onlineNum = 0, otherStop = 0;
         //停机明细
         List<StopDetailVO> stopList = new ArrayList<>();
         try {
@@ -146,17 +144,14 @@ public class ApiServiceImpl implements IApiService {
                     //可能会出现接口返回无数据的情况,需要设置设备状态为离线
                     sdVO.setHasData(false);
                     stopList.add(sdVO);
+                    otherStop++;
                     continue;
                 }
-                float cd1 = (float) map.get("Capacity_data_1");
+                float speed = (float) map.get("Capacity_data_1");
                 int stopStatus = (int) map.get("Capacity_data_48");
                 sdVO.setStop(stopStatus);
-                sdVO.setSpeed(cd1);
+                sdVO.setSpeed(speed);
                 stopList.add(sdVO);
-                if (cd1 != 0f && stopStatus == 0) {
-                    //主轴运行转速(转/分钟) 为0时,表示未开机
-                    onlineNum++;
-                }
                 //处理配方明细数据
                 FormulaDetail detail = new FormulaDetail(map);
                 formulaDetail.add(detail);
@@ -201,30 +196,33 @@ public class ApiServiceImpl implements IApiService {
                 indexAlarm.setCode(device.getDeviceCode());
                 indexAlarm.setName(device.getDeviceName());
                 int alarmType = 0;
-                switch (stopStatus) {
-                    case 0:
-                        break;
-                    case 1:
-                        stop1++;
-                        alarmType = 10001;
-                        break;
-                    case 2:
-                        stop2++;
-                        alarmType = 10002;
-                        break;
-                    case 6:
-                        stop6++;
-                        alarmType = 10006;
-                        break;
-                    case 7:
-                        //7-盘头剩余圈数达到停机,表示停机叫料
-                        stop8++;
-                        alarmType = 10008;
-                    default:
-                        if (cd1 == 0f) {
+                if (speed > 0f || stopStatus == 0) {
+                    onlineNum++;
+                } else {
+                    switch (stopStatus) {
+                        case 1:
+                            stop1++;
+                            alarmType = 10001;
+                            break;
+                        case 2:
+                            stop2++;
+                            alarmType = 10002;
+                            break;
+                        case 6:
+                            stop6++;
+                            alarmType = 10006;
+                            break;
+                        case 7:
+                            //7-盘头剩余圈数达到停机,表示停机叫料
+                            stop8++;
+                            alarmType = 10008;
+                            break;
+                        default:
                             otherStop++;
-                        }
+
+                    }
                 }
+
                 if (alarmType != 0) {
                     indexAlarm.setType(alarmType);
                     alarmList.add(indexAlarm);