소스 검색

运行记录优化

yuanchao 3 주 전
부모
커밋
15e6e53c95

+ 11 - 8
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -425,21 +425,24 @@ public class IotOpeationFillController {
         fillDO.setDeviceId(vo.getDeviceId());
         fillDO.setCreateTime(vo.getCreateTime().atStartOfDay());
         IotOpeationFillDO fillDO1 = iotOpeationFillService.isReport(fillDO);
-        IotOpeationFillDO fillDO2 = iotOpeationFillService.orderDO(fillDO);
 
-        List<IotOpeationFillDO> reportList = new ArrayList<>();
-        List<IotOpeationFillDO> reportList1 = new ArrayList<>();
-
-        if(fillDO2!=null){
-            reportList = iotOpeationFillService.reportList(fillDO2);
-            reportList1 = iotOpeationFillService.reportList1(fillDO2);
-        }
 
         List<IotModelTemplateAttrsDO1> resut = new ArrayList<>();
         List<IotModelTemplateAttrsDO> list = iotOpeationFillService.getAttrsById(vo );
 
         if(fillDO1.getIsReport()==1){
 
+            IotOpeationFillDO fillDO2 = iotOpeationFillService.orderDO(fillDO);
+
+            List<IotOpeationFillDO> reportList = new ArrayList<>();
+            List<IotOpeationFillDO> reportList1 = new ArrayList<>();
+
+            if(fillDO2!=null){
+                reportList = iotOpeationFillService.reportList(fillDO2);
+                reportList1 = iotOpeationFillService.reportList1(fillDO2);
+            }
+
+
             for (IotModelTemplateAttrsDO attrsDO:list) {
 
 

+ 48 - 10
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/IotOperationPlanJob.java

@@ -361,20 +361,58 @@ public class IotOperationPlanJob implements JobHandler {
 
 
 
-        List<Long> oDeptList = orderList2.stream().map(IotOpeationFillOrderDO::getDeptId).collect(Collectors.toList());
 
-        boolean exist = idList1.containsAll(oDeptList);
+        List<Long> oDeptList = new ArrayList<>();
+
+        if(rpList.size()>0){
+            oDeptList = orderList2.stream().map(IotOpeationFillOrderDO::getDeptId).collect(Collectors.toList());
+
+            // 先判断oDeptList是否为空,如果为空则根据业务需求设置exist的值
+            boolean exist;
+            if (oDeptList.isEmpty()) {
+                // 当oDeptList为空时,这里可以根据实际场景设置默认值
+                // 例如:空列表认为所有元素都被包含,设置为true
+                exist = false;
+                // 或者认为不满足,设置为false
+                // exist = false;
+            } else {
+                exist = idList1.containsAll(oDeptList);
+            }
 
-        if(exist){
-            List <IotOpeationFillDO> devList = new ArrayList<>();
-            if(rpList.size()>0){
-                devList = opeationFillService.reportMethod(orderList2);
-            }else{
-                devList = opeationFillService.reportMethod(orderList1);
+            if(exist){
+                List <IotOpeationFillDO> devList = opeationFillService.reportMethod(orderList2);
+                //插入虚拟设备
+                iotOpeationFillMapper.insertFill(devList);
+            }
+
+
+        }else{
+            oDeptList = orderList1.stream().map(IotOpeationFillOrderDO::getDeptId).collect(Collectors.toList());
+
+            // 先判断oDeptList是否为空,如果为空则根据业务需求设置exist的值
+            boolean exist;
+            if (oDeptList.isEmpty()) {
+                // 当oDeptList为空时,这里可以根据实际场景设置默认值
+                // 例如:空列表认为所有元素都被包含,设置为true
+                exist = false;
+                // 或者认为不满足,设置为false
+                // exist = false;
+            } else {
+                exist = idList1.containsAll(oDeptList);
+            }
+
+            if(exist){
+                List <IotOpeationFillDO> devList = opeationFillService.reportMethod(orderList1);
+                //插入虚拟设备
+                iotOpeationFillMapper.insertFill(devList);
             }
-            //插入虚拟设备
-            iotOpeationFillMapper.insertFill(devList);
         }
 
+
+
+
+
+
+
 }
 }

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -135,7 +135,7 @@
         and
         a.device_category_id = g.id
         and
-        c.device_status in ('sg','dm')
+        c.device_status = 'sg'
         and
         a.deleted = 0
         and
@@ -1012,6 +1012,7 @@
             device_id = #{deviceId}
         and
             DATE(create_time) = #{createTime}
+        LIMIT 1
     </select>
 
     <select id="orderDO" parameterType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO"