Browse Source

Merge branch 'master' of http://116.63.33.55/git/industry-data-platform

ws 11 months ago
parent
commit
de1d1cbc48

+ 1 - 1
industry-system/industry-da/src/main/java/com/example/opc_da/dao/ReportTableDao.java

@@ -172,7 +172,7 @@ public interface ReportTableDao {
 
     Integer setAutoTableTime(ReportTable reportTable);
 
-    Integer logicDeleteReportTable(Integer id, Integer reportTableType, Integer isDelete);
+    Integer logicDeleteReportTable(String reportTableId, Integer isDelete);
 
     //通过传入的点位,查看配置在报表中统计图的点位总数
     List<TableTemplate> getTtciCountByItemId(List<Item> itemList);

+ 4 - 4
industry-system/industry-da/src/main/java/com/example/opc_da/policy/ReportDataPolicyTask.java

@@ -41,13 +41,13 @@ public abstract class ReportDataPolicyTask implements DisposableBean {
         try {
             List<ReportDataPolicyItem> rdpItemByPolicyList = reportDataPolicyDao.getRdpItemByPolicyId(reportDataPolicy.getId());
             this.policyItemList = (List<ReportDataPolicyItem>) queryServiceUtil.exchangeData(rdpItemByPolicyList);
+            this.dataSourceId = this.policyItemList.get(0).getDataSourceId().toString();
+            //因为点位来源同一个数据组,所以肯定是同一数据源
+            this.items = this.policyItemList.stream()
+                    .map(ItemParent::getItemReadName).collect(Collectors.toList());
         }catch (NullPointerException e){
             throw new NullPointerException("策略配置中的点位ID未对应到点位,策略名称为:" + reportDataPolicy.getReportDataPolicyName());
         }
-        this.dataSourceId = this.policyItemList.get(0).getDataSourceId().toString();
-        //因为点位来源同一个数据组,所以肯定是同一数据源
-        this.items = this.policyItemList.stream()
-                .map(ItemParent::getItemReadName).collect(Collectors.toList());
     }
 
     public ScheduledExecutorService getThreadPool() {

+ 4 - 4
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/ReportTableServiceImpl.java

@@ -251,11 +251,11 @@ public class ReportTableServiceImpl implements ReportTableService {
                     reportTableDao.delReportTableIdAndPolicyIdAndItemIdByReportTableId(reportTableId);
                 }
             } else {
-                //将相应的报表变为逻辑删除
-                reportTableDao.logicDeleteReportTable(id, templateType, ConstantStr.PUBLIC_IS_DELETE);
 
                 ReportTable reportTable = reportTableDao.getReportTableByTemplateAndNoData(tableTemplate);
                 String reportTableId = reportTable.getId();
+                //将相应的报表变为逻辑删除
+                reportTableDao.logicDeleteReportTable(reportTableId, ConstantStr.PUBLIC_IS_DELETE);
                 // 删除报表、策略、点位关系
                 if(StrUtil.isNotEmpty(reportTableId)){
                     reportTableDao.delReportTableIdAndPolicyIdAndItemIdByReportTableId(reportTableId);
@@ -276,10 +276,10 @@ public class ReportTableServiceImpl implements ReportTableService {
                     return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "删除报表失败");
                 }
                 reportTableDao.delTableTemplateLogByTtId(id);
-                //将相应的报表变为逻辑删除
-                reportTableDao.logicDeleteReportTable(id, templateType, ConstantStr.PUBLIC_IS_DELETE);
 
                 String reportTableId = reportTable.getId();
+                //将相应的报表变为逻辑删除
+                reportTableDao.logicDeleteReportTable(reportTableId, ConstantStr.PUBLIC_IS_DELETE);
                 // 删除报表、策略、点位关系
                 if(StrUtil.isNotEmpty(reportTableId)){
                     reportTableDao.delReportTableIdAndPolicyIdAndItemIdByReportTableId(reportTableId);

+ 42 - 27
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/AutomaticReportTableValidate.java

@@ -109,8 +109,30 @@ public abstract class AutomaticReportTableValidate implements ReportTableValidat
                 if (Blank.isNotEmpty(rowCol)) {
                     //能解析的数据才赋值
                     try {
+                        String v = rowCol.getString("v");
+                        String regex = "^\\$\\{.*\\}$";
+                        //赋值基础数据项
+                        if (v != null && v.matches(regex)) {
+                            ReportTableBasicItemEnum o = Arrays.stream(ReportTableBasicItemEnum.values())
+                                    .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null);
+                            if (o != null) {
+                                String value = o.getValue();
+                                rowCol.put("v", value);
+                                rowCol.put("m", value);
+                                continue;
+                            }
+                            rowCol.put("v", null);
+                            rowCol.put("m", null);
+                            continue;
+                        }
                         JSONObject rowColJson = JSONObject.parseObject(rowCol.getString("celldata"));
+                        if(Blank.isEmpty(rowColJson)){
+                            continue;
+                        }
                         String type = rowColJson.getString("type");
+                        if(Blank.isEmpty(type)){
+                            continue;
+                        }
                         String tableId = rowColJson.getString("tableId");
                         //如果类型为数据,则存入数据
                         if (type.equals("data")) {
@@ -120,42 +142,35 @@ public abstract class AutomaticReportTableValidate implements ReportTableValidat
                                     || sheetTableDataMap.get(tableId).get(uid).isEmpty()) {
                                 rowCol.put("v", null);
                                 rowCol.put("m", null);
-                            } else {
-                                List<Item> itemList = sheetTableDataMap.get(tableId).get(uid);
-                                String value = itemList.get(0).getValue();
-                                rowCol.put("v", value);
-                                rowCol.put("m", value);
-                                itemList.remove(0);
+                                continue;
                             }
+                            List<Item> itemList = sheetTableDataMap.get(tableId).get(uid);
+                            String value = itemList.get(0).getValue();
+                            rowCol.put("v", value);
+                            rowCol.put("m", value);
+                            itemList.remove(0);
+                            continue;
                             //如果类型为时间,则存入时间
-                        } else if (type.equals("datatime")) {
-                            if (Blank.isEmpty(sheetTableDataMap.get(tableId))
-                                    || sheetTableDataMap.get(tableId).values().stream().findFirst().orElse(new ArrayList<>()).isEmpty()) {
+                        }
+                        if (type.equals("datatime")) {
+                            if (Blank.isEmpty(sheetTableDataMap.get(tableId))) {
                                 rowCol.put("v", null);
                                 rowCol.put("m", null);
-                            } else {
-                                List<Item> itemList = sheetTableDataMap.get(tableId).values().stream().findFirst().orElse(new ArrayList<>());
-                                String time = itemList.get(0).getTime();
-                                rowCol.put("v", time);
-                                rowCol.put("m", time);
+                                continue;
                             }
-                        }
-                    } catch (Exception e) {
-                        String v = rowCol.getString("v");
-                        String regex = "^\\$\\{.*\\}$";
-                        //赋值基础数据项
-                        if (v != null && v.matches(regex)) {
-                            if (Arrays.stream(ReportTableBasicItemEnum.values())
-                                    .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null) != null) {
-                                String value = Objects.requireNonNull(Arrays.stream(ReportTableBasicItemEnum.values())
-                                        .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null)).getValue();
-                                rowCol.put("v", value);
-                                rowCol.put("m", value);
-                            } else {
+
+                            List<Item> itemList = sheetTableDataMap.get(tableId).values().stream().findFirst().orElse(new ArrayList<>());
+                            if (itemList.isEmpty()) {
                                 rowCol.put("v", null);
                                 rowCol.put("m", null);
+                                continue;
                             }
+                            String time = itemList.get(0).getTime();
+                            rowCol.put("v", time);
+                            rowCol.put("m", time);
                         }
+                    } catch (Exception e) {
+                        log.error("自动报表解析数据出错",e);
                     }
                 }
             }

+ 23 - 15
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceReportTableValidate.java

@@ -117,8 +117,30 @@ public abstract class DeviceReportTableValidate implements ReportTableValidate {
                 if (Blank.isNotEmpty(rowCol)) {
                     //能解析的数据才赋值
                     try {
+                        String v = rowCol.getString("v");
+                        String regex = "^\\$\\{.*\\}$";
+                        //赋值基础数据项
+                        if (v != null && v.matches(regex)) {
+                            ReportTableBasicItemEnum o = Arrays.stream(ReportTableBasicItemEnum.values())
+                                    .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null);
+                            if (o != null) {
+                                String value = o.getValue();
+                                rowCol.put("v", value);
+                                rowCol.put("m", value);
+                                continue;
+                            }
+                            rowCol.put("v", null);
+                            rowCol.put("m", null);
+                            continue;
+                        }
                         JSONObject rowColJson = JSONObject.parseObject(rowCol.getString("celldata"));
+                        if(Blank.isEmpty(rowColJson)){
+                            continue;
+                        }
                         String type = rowColJson.getString("type");
+                        if(Blank.isEmpty(type)){
+                            continue;
+                        }
                         String tableId = rowColJson.getString("tableId");
                         List<Map<String, String>> itemList = sheetTableDataMap.get(tableId);
 
@@ -160,21 +182,7 @@ public abstract class DeviceReportTableValidate implements ReportTableValidate {
                             rowCol.put("m", item.get("countTime"));
                         }
                     } catch (Exception e) {
-                        String v = rowCol.getString("v");
-                        String regex = "^\\$\\{.*\\}$";
-                        //赋值基础数据项
-                        if (v != null && v.matches(regex)) {
-                            if (Arrays.stream(ReportTableBasicItemEnum.values())
-                                    .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null) != null) {
-                                String value = Objects.requireNonNull(Arrays.stream(ReportTableBasicItemEnum.values())
-                                        .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null)).getValue();
-                                rowCol.put("v", value);
-                                rowCol.put("m", value);
-                            } else {
-                                rowCol.put("v", null);
-                                rowCol.put("m", null);
-                            }
-                        }
+                        log.error("设备报表解析数据出错",e);
                     }
                 }
             }

+ 6 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventReportTableValidate.java

@@ -104,7 +104,13 @@ public abstract class EventReportTableValidate implements ReportTableValidate {
                             continue;
                         }
                         JSONObject rowColJson = JSONObject.parseObject(rowCol.getString("celldata"));
+                        if(Blank.isEmpty(rowColJson)){
+                            continue;
+                        }
                         String type = rowColJson.getString("type");
+                        if(Blank.isEmpty(type)){
+                            continue;
+                        }
                         //如果类型为数据,则存入数据
                         if (type.equals("data")) {
                             JSONObject rowColData = rowColJson.getJSONObject("data");

+ 44 - 28
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/ManualReportTableValidate.java

@@ -558,8 +558,30 @@ public class ManualReportTableValidate implements ReportTableValidate {
                 if (Blank.isNotEmpty(rowCol)) {
                     //能解析的数据才赋值
                     try {
+                        String v = rowCol.getString("v");
+                        String regex = "^\\$\\{.*\\}$";
+                        //赋值基础数据项
+                        if (v != null && v.matches(regex)) {
+                            ReportTableBasicItemEnum o = Arrays.stream(ReportTableBasicItemEnum.values())
+                                    .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null);
+                            if (o != null) {
+                                String value = o.getValue();
+                                rowCol.put("v", value);
+                                rowCol.put("m", value);
+                                continue;
+                            }
+                            rowCol.put("v", null);
+                            rowCol.put("m", null);
+                            continue;
+                        }
                         JSONObject rowColJson = JSONObject.parseObject(rowCol.getString("celldata"));
+                        if(Blank.isEmpty(rowColJson)){
+                            continue;
+                        }
                         String type = rowColJson.getString("type");
+                        if(Blank.isEmpty(type)){
+                            continue;
+                        }
                         String tableId = rowColJson.getString("tableId");
                         //如果类型为数据,则存入数据
                         if (type.equals("data")) {
@@ -569,42 +591,36 @@ public class ManualReportTableValidate implements ReportTableValidate {
                                     || sheetTableDataMap.get(tableId).get(uid).isEmpty()) {
                                 rowCol.put("v", null);
                                 rowCol.put("m", null);
-                            } else {
-                                List<Item> itemList = sheetTableDataMap.get(tableId).get(uid);
-                                String value = itemList.get(0).getValue();
-                                rowCol.put("v", value);
-                                rowCol.put("m", value);
-                                itemList.remove(0);
+                                continue;
                             }
-                            //如果类型为时间,则存入时间
-                        } else if (type.equals("datatime")) {
-                            if (Blank.isEmpty(sheetTableDataMap.get(tableId))
-                                    || sheetTableDataMap.get(tableId).values().stream().findFirst().orElse(new ArrayList<>()).isEmpty()) {
+                            List<Item> itemList = sheetTableDataMap.get(tableId).get(uid);
+                            String value = itemList.get(0).getValue();
+                            rowCol.put("v", value);
+                            rowCol.put("m", value);
+                            itemList.remove(0);
+                            continue;
+
+                        }
+                        //如果类型为时间,则存入时间
+                        if (type.equals("datatime")) {
+                            if (Blank.isEmpty(sheetTableDataMap.get(tableId))) {
                                 rowCol.put("v", null);
                                 rowCol.put("m", null);
-                            } else {
-                                List<Item> itemList = sheetTableDataMap.get(tableId).values().stream().findFirst().orElse(new ArrayList<>());
-                                String time = itemList.get(0).getTime();
-                                rowCol.put("v", time);
-                                rowCol.put("m", time);
+                                continue;
                             }
-                        }
-                    } catch (Exception e) {
-                        String v = rowCol.getString("v");
-                        String regex = "^\\$\\{.*\\}$";
-                        //赋值基础数据项
-                        if (v != null && v.matches(regex)) {
-                            if (Arrays.stream(ReportTableBasicItemEnum.values())
-                                    .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null) != null) {
-                                String value = Objects.requireNonNull(Arrays.stream(ReportTableBasicItemEnum.values())
-                                        .filter(b -> b.name().equals(v.substring(2, v.length() - 1))).findFirst().orElse(null)).getValue();
-                                rowCol.put("v", value);
-                                rowCol.put("m", value);
-                            } else {
+
+                            List<Item> itemList = sheetTableDataMap.get(tableId).values().stream().findFirst().orElse(new ArrayList<>());
+                            if (itemList.isEmpty()) {
                                 rowCol.put("v", null);
                                 rowCol.put("m", null);
+                                continue;
                             }
+                            String time = itemList.get(0).getTime();
+                            rowCol.put("v", time);
+                            rowCol.put("m", time);
                         }
+                    } catch (Exception e) {
+                        log.error("手动报表解析数据出错",e);
                     }
                 }
             }

+ 1 - 2
industry-system/industry-da/src/main/resources/mapper/ReportTableDao.xml

@@ -291,8 +291,7 @@
     <update id="logicDeleteReportTable">
         update t_report_table
         set is_delete=#{isDelete}
-        where table_template_id = #{id}
-          and report_table_type = #{reportTableType}
+        where id = #{reportTableId}
     </update>
 
     <delete id="delTableTemplateById">