Pārlūkot izejas kodu

LastCost字段类型变更 PengDi@2021/3/16

pengdi@zoniot.com 4 gadi atpakaļ
vecāks
revīzija
ef39628ff9

+ 5 - 4
meter-reading-common/pom.xml

@@ -42,6 +42,11 @@
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-pool2</artifactId>
         </dependency>
+        <dependency>
+            <groupId>commons-collections</groupId>
+            <artifactId>commons-collections</artifactId>
+            <version>3.2.2</version>
+        </dependency>
         <!-- 糊涂工具包 -->
         <dependency>
             <groupId>cn.hutool</groupId>
@@ -79,10 +84,6 @@
             <groupId>javax.validation</groupId>
             <artifactId>validation-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>javax.validation</groupId>
-            <artifactId>validation-api</artifactId>
-        </dependency>
         <!-- httpclient -->
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>

+ 1 - 1
meter-reading-common/src/main/java/com/huaxu/zoniot/entity/MeterReadRecord.java

@@ -133,7 +133,7 @@ public class MeterReadRecord implements Serializable {
     /**
     * 距离上次的消耗
     */
-    private BigDecimal lastCost;
+    private Double lastCost;
 
     /**
     * 状态

+ 16 - 9
meter-reading-common/src/main/java/com/huaxu/zoniot/service/impl/MeterReadRecordServiceImpl.java

@@ -190,7 +190,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
         meterReadRecord.setDeviceNo(waterMeter.getDeviceNo());
         meterReadRecord.setDeviceTypeId(waterMeter.getDeviceTypeId());
         meterReadRecord.setId(snowflakeIdWorker.nextId());
-        meterReadRecord.setLastCost(new BigDecimal(0));
+        meterReadRecord.setLastCost(new Double(0));
         meterReadRecord.setLocation(waterMeter.getLocation());
         meterReadRecord.setMeterFileNo(waterMeter.getMeterFileNo());
         meterReadRecord.setMeterNo(waterMeter.getMeterNo());
@@ -276,8 +276,15 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
         Map<String, MeasuringData> meterLastData = getMeterLastDataFromCache(waterMeter.getDeviceId());
         if(meterLastData != null){
             MeasuringData measuringData = meterLastData.get(waterMeter.getReadingMeasuringCode());
-            if(StringUtils.isNotBlank(measuringData.getMeasuringVaule())){
-                lastValid = measuringData.getMeasuringVaule();
+            if(measuringData == null){
+                log.error("Device measuring code get null value ? " +
+                        "device Id ={},measuring code ={} ,meterLastData = {}",waterMeter.getDeviceId(),
+                        waterMeter.getReadingMeasuringCode(),JSON.toJSONString(meterLastData));
+            }
+            else{
+                if(StringUtils.isNotBlank(measuringData.getMeasuringVaule())){
+                    lastValid = measuringData.getMeasuringVaule();
+                }
             }
         }
         return lastValid ;
@@ -383,8 +390,8 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
                 throw new ServiceException(ResultStatus.READING_ERROR_4);
             }
             // 计算今日用水量
-            BigDecimal todayCost = calculateTodayCost(currentReading,
-                    new BigDecimal(getMeterLastValid(waterMeter,readDay)),
+            Double todayCost = calculateTodayCost(currentReading,
+                    new Double(getMeterLastValid(waterMeter,readDay)),
                     record);
             MeterReadRecord update = new MeterReadRecord();
             update.setId(record.getId());
@@ -487,11 +494,11 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService {
         }
         return readingValue ;
     }
-    protected  BigDecimal calculateTodayCost(String currentReading,BigDecimal lastValid,MeterReadRecord record){
-        BigDecimal lastCost = record.getLastCost();
+    protected  Double calculateTodayCost(String currentReading,Double lastValid,MeterReadRecord record){
+        Double lastCost = record.getLastCost();
 //        BigDecimal lastValid = new BigDecimal(record.getLastValid());
-        BigDecimal currentValid = new BigDecimal(currentReading);
-        BigDecimal  cost = currentValid.subtract(lastValid).add(lastCost) ;
+        Double currentValid = new Double(currentReading);
+        Double  cost = currentValid-lastValid+lastCost;
         return cost ;
     }
 

+ 118 - 92
meter-reading-common/src/test/java/MainTest.java

@@ -3,6 +3,8 @@ import com.alibaba.fastjson.JSON;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * <p></p>
@@ -13,100 +15,124 @@ import java.util.Map;
  */
 public class MainTest {
     public static void main(String[] args){
-        String test="customerNo=0100066431, registNo=1156, smallZone=景明花园, addr=景明花园21-5-301, location=楼梯间, \n" +
-                "imei=862458040177864, apiKey=hauxureadmeter";
-        Map<String,Object> m = new HashMap<>();
-        String[] ts=test.replaceAll(" ","").split(",");
-        for(String tt : ts){
-            m.put(tt.split("=")[0],tt.split("=")[1]);
+
+//        String test="customerNo=0100066431, registNo=1156, smallZone=景明花园, addr=景明花园21-5-301, location=楼梯间, \n" +
+//                "imei=862458040177864, apiKey=hauxureadmeter";
+//        Map<String,Object> m = new HashMap<>();
+//        String[] ts=test.replaceAll(" ","").split(",");
+//        for(String tt : ts){
+//            m.put(tt.split("=")[0],tt.split("=")[1]);
+//        }
+//        m.put("meterType",2);
+//        System.out.println(JSON.toJSONString(m));
+        String data = "http://api.weibo.cn/2/users/show?networktype=wifi&c=android&i=bed3255&s=2fb406c6&ua=HUAWEI-H60-L11__weibo__6.1.0__android__android4.4.2&wm=4209_8001&aid=01AolXNOHsD2r4khHZSr94oPsUW0TZZoM_e1fc_xKkO7KW3rI.&uid=2474568923&v_f=2&from=1061095010&gsid=4uDB49ee3MGABMuW8JOGhanKoeT&l";
+        String regexp = "(i=.*?)(\\;|$|&)|(s=.*?)(\\;|$|&)|(ua=.*?)(\\;|$|&)|(aid=.*?)(\\;|$|&)|(uid=.*?)(\\;|$|&)|(gsid=.*?)(\\;|$|&)";
+        Pattern pattern = Pattern.compile(regexp);
+        Matcher matcher = pattern.matcher(data);
+        System.out.println(matcher.groupCount());
+//        if(matcher.find()){
+//            System.out.println(matcher.groupCount());
+//            for(int i=0;i<matcher.groupCount();i++) {
+//                System.out.println(i);
+//                System.out.printf(matcher.group(i));
+//                System.out.println(); }}
+//        while(matcher.find()){
+//            System.out.println(matcher.group(0));
+//        }
+
+        Pattern p = Pattern.compile("(ca)(t)|(t)(h)");
+        Matcher m = p.matcher("one cat,two cats in the yard");
+        StringBuffer sb = new StringBuffer();
+        boolean result = m.find();
+        System.out.println("该次查找获得匹配组的数量为:"+m.groupCount()); //2
+        for(int i=0;i<=m.groupCount();i++) {
+            System.out.println("第" + i + "组的子串内容为:" + m.group(i));
         }
-        m.put("meterType",2);
-        System.out.println(JSON.toJSONString(m));
     }
     public static void test1(String[] args) {
-        String str ="[SSBF]CSLLJ_1:1期出水瞬时流量" +
-                ",[SSBF]CSLLJ_1_LJ:1期出水累计流量" +
-                ",[SSBF]CSYL_1:1期出水压力" +
-                ",[SSBF]QSKYW_1:1期清水库液位" +
-                ",[SSBF]CSLLJ2:2期出水瞬时流量" +
-                ",[SSBF]CSYL:2期出水压力" +
-                ",[SSBF]QSKYW:2期清水库液位" +
-                ",[SSBF]CSDZD:出水低浊度" +
-                ",[SSBF]CSYLFX:出水余氯" +
-                ",[SSBF]JJDY_A:送水泵房进线A相电压" +
-                ",[SSBF]JJDY_B:送水泵房进线B相电压" +
-                ",[SSBF]JJDY_C:送水泵房进线C相电压" +
-                ",[SSBF]SSB1.DL:1#送水泵运行电流" +
-                ",[SSBF]SSB2.DL:2#送水泵运行电流" +
-                ",[SSBF]SSB3.DL:3#送水泵运行电流" +
-                ",[SSBF]SSB4.DL:4#送水泵运行电流" +
-                ",[SSBF]SSB5.DL:5#送水泵运行电流" +
-                ",[SSBF]SSB6.DL:6#送水泵运行电流" +
-                ",[SSBF]SSB1.Run:1#送水泵运行状态" +
-                ",[SSBF]SSB1.Fault:1#送水泵故障状态" +
-                ",[SSBF]SSB2.Run:2#送水泵运行状态" +
-                ",[SSBF]SSB2.Fault:2#送水泵故障状态" +
-                ",[SSBF]SSB2.Run:2#送水泵运行状态" +
-                ",[SSBF]SSB2.Fault:2#送水泵故障状态" +
-                ",[SSBF]SSB3.Run:3#送水泵运行状态" +
-                ",[SSBF]SSB3.Fault:3#送水泵故障状态" +
-                ",[SSBF]SSB3.Run:3#送水泵运行状态" +
-                ",[SSBF]SSB3.Fault:3#送水泵故障状态" +
-                ",[SSBF]SSB4.Run:4#送水泵运行状态" +
-                ",[SSBF]SSB4.Fault:4#送水泵故障状态" +
-                ",[SSBF]SSB4.Run:4#送水泵运行状态" +
-                ",[SSBF]SSB4.Fault:4#送水泵故障状态" +
-                ",[SSBF]SSB5.Run:5#送水泵运行状态" +
-                ",[SSBF]SSB5.Fault:5#送水泵故障状态" +
-                ",[SSBF]SSB5.Run:5#送水泵运行状态" +
-                ",[SSBF]SSB5.Fault:5#送水泵故障状态" +
-                ",[SSBF]SSB6.Run:6#送水泵运行状态" +
-                ",[SSBF]SSB6.Fault:6#送水泵故障状态" +
-                ",[JLSC]dss:滤前低浊度" +
-                ",[JLSC]LG1_SW:1#滤格水位" +
-                ",[JLSC]LG2_SW:2#滤格水位" +
-                ",[JLSC]LG3_SW:3#滤格水位" +
-                ",[JLSC]LG4_SW:4#滤格水位" +
-                ",[JLSC]LG5_SW:5#滤格水位" +
-                ",[JLSC]LG6_SW:6#滤格水位" +
-                ",[JLSC]LG7_SW:7#滤格水位" +
-                ",[JLSC]LG8_SW:8#滤格水位" +
-                ",[JLSC]LG9_SW:9#滤格水位" +
-                ",[JLSC]LG10_SW:10#滤格水位" +
-                ",[JLSC]LG11_SW:11#滤格水位" +
-                ",[JLSC]LG12_SW:12#滤格水位" +
-                ",[JLSC]GFJ1.Run:1#鼓风机运行状态" +
-                ",[JLSC]GFJ1.Fault:1#鼓风机故障状态" +
-                ",[JLSC]GFJ2.Run:2#鼓风机运行状态" +
-                ",[JLSC]GFJ2.Fault:2#鼓风机故障状态" +
-                ",[JLSC]GFJ3.Run:3#鼓风机运行状态" +
-                ",[JLSC]GFJ3.Fault:3#鼓风机故障状态" +
-                ",[JLSC]FCB1.Run:1#反冲泵运行状态" +
-                ",[JLSC]FCB1.Fault:1#反冲泵故障状态" +
-                ",[JLSC]FCB2.Run:2#反冲泵运行状态" +
-                ",[JLSC]FCB2.Fault:2#反冲泵故障状态" +
-                ",[JLSC]FCB3.Run:3#反冲泵运行状态" +
-                ",[JLSC]FCB3.Fault:3#反冲泵故障状态" +
-                ",[JYJ]JSLLJ:进水流量" +
-                ",[JYJ]YSGZD:进水高浊度分析仪" +
-                ",[JYJ]YSPH:进水PH" +
-                ",[JYJ]YSYL:进水压力" +
-                ",[JYJ]JLJ1.Kaidu_FK:加氯机1开度反馈" +
-                ",[JYJ]JLJ2.Kaidu_FK:加氯机2开度反馈" +
-                ",[JYJ]JLJ3.Kaidu_FK:加氯机3开度反馈" +
-                ",[JYJ]JLJ4.Kaidu_FK:加氯机4开度反馈";
-        String tpl = "{" +
-                "      \"identifier\": \"{}\",\n" +
-                "      \"name\": \"{}\",\n" +
-                "      \"required\": true,\n" +
-                "      \"dataType\": \"double\" ,\n" +
-                "      \"description\": \"{}\"\n" +
-                "    },";
-        String[] items = str.split(",");
-        for(String item : items){
-            String[] kv = item.split(":");
-            String result1 = StrFormatter.format(tpl, kv[0], kv[1],kv[1]);
-            System.out.println(result1);
-        }
+//        String str ="[SSBF]CSLLJ_1:1期出水瞬时流量" +
+//                ",[SSBF]CSLLJ_1_LJ:1期出水累计流量" +
+//                ",[SSBF]CSYL_1:1期出水压力" +
+//                ",[SSBF]QSKYW_1:1期清水库液位" +
+//                ",[SSBF]CSLLJ2:2期出水瞬时流量" +
+//                ",[SSBF]CSYL:2期出水压力" +
+//                ",[SSBF]QSKYW:2期清水库液位" +
+//                ",[SSBF]CSDZD:出水低浊度" +
+//                ",[SSBF]CSYLFX:出水余氯" +
+//                ",[SSBF]JJDY_A:送水泵房进线A相电压" +
+//                ",[SSBF]JJDY_B:送水泵房进线B相电压" +
+//                ",[SSBF]JJDY_C:送水泵房进线C相电压" +
+//                ",[SSBF]SSB1.DL:1#送水泵运行电流" +
+//                ",[SSBF]SSB2.DL:2#送水泵运行电流" +
+//                ",[SSBF]SSB3.DL:3#送水泵运行电流" +
+//                ",[SSBF]SSB4.DL:4#送水泵运行电流" +
+//                ",[SSBF]SSB5.DL:5#送水泵运行电流" +
+//                ",[SSBF]SSB6.DL:6#送水泵运行电流" +
+//                ",[SSBF]SSB1.Run:1#送水泵运行状态" +
+//                ",[SSBF]SSB1.Fault:1#送水泵故障状态" +
+//                ",[SSBF]SSB2.Run:2#送水泵运行状态" +
+//                ",[SSBF]SSB2.Fault:2#送水泵故障状态" +
+//                ",[SSBF]SSB2.Run:2#送水泵运行状态" +
+//                ",[SSBF]SSB2.Fault:2#送水泵故障状态" +
+//                ",[SSBF]SSB3.Run:3#送水泵运行状态" +
+//                ",[SSBF]SSB3.Fault:3#送水泵故障状态" +
+//                ",[SSBF]SSB3.Run:3#送水泵运行状态" +
+//                ",[SSBF]SSB3.Fault:3#送水泵故障状态" +
+//                ",[SSBF]SSB4.Run:4#送水泵运行状态" +
+//                ",[SSBF]SSB4.Fault:4#送水泵故障状态" +
+//                ",[SSBF]SSB4.Run:4#送水泵运行状态" +
+//                ",[SSBF]SSB4.Fault:4#送水泵故障状态" +
+//                ",[SSBF]SSB5.Run:5#送水泵运行状态" +
+//                ",[SSBF]SSB5.Fault:5#送水泵故障状态" +
+//                ",[SSBF]SSB5.Run:5#送水泵运行状态" +
+//                ",[SSBF]SSB5.Fault:5#送水泵故障状态" +
+//                ",[SSBF]SSB6.Run:6#送水泵运行状态" +
+//                ",[SSBF]SSB6.Fault:6#送水泵故障状态" +
+//                ",[JLSC]dss:滤前低浊度" +
+//                ",[JLSC]LG1_SW:1#滤格水位" +
+//                ",[JLSC]LG2_SW:2#滤格水位" +
+//                ",[JLSC]LG3_SW:3#滤格水位" +
+//                ",[JLSC]LG4_SW:4#滤格水位" +
+//                ",[JLSC]LG5_SW:5#滤格水位" +
+//                ",[JLSC]LG6_SW:6#滤格水位" +
+//                ",[JLSC]LG7_SW:7#滤格水位" +
+//                ",[JLSC]LG8_SW:8#滤格水位" +
+//                ",[JLSC]LG9_SW:9#滤格水位" +
+//                ",[JLSC]LG10_SW:10#滤格水位" +
+//                ",[JLSC]LG11_SW:11#滤格水位" +
+//                ",[JLSC]LG12_SW:12#滤格水位" +
+//                ",[JLSC]GFJ1.Run:1#鼓风机运行状态" +
+//                ",[JLSC]GFJ1.Fault:1#鼓风机故障状态" +
+//                ",[JLSC]GFJ2.Run:2#鼓风机运行状态" +
+//                ",[JLSC]GFJ2.Fault:2#鼓风机故障状态" +
+//                ",[JLSC]GFJ3.Run:3#鼓风机运行状态" +
+//                ",[JLSC]GFJ3.Fault:3#鼓风机故障状态" +
+//                ",[JLSC]FCB1.Run:1#反冲泵运行状态" +
+//                ",[JLSC]FCB1.Fault:1#反冲泵故障状态" +
+//                ",[JLSC]FCB2.Run:2#反冲泵运行状态" +
+//                ",[JLSC]FCB2.Fault:2#反冲泵故障状态" +
+//                ",[JLSC]FCB3.Run:3#反冲泵运行状态" +
+//                ",[JLSC]FCB3.Fault:3#反冲泵故障状态" +
+//                ",[JYJ]JSLLJ:进水流量" +
+//                ",[JYJ]YSGZD:进水高浊度分析仪" +
+//                ",[JYJ]YSPH:进水PH" +
+//                ",[JYJ]YSYL:进水压力" +
+//                ",[JYJ]JLJ1.Kaidu_FK:加氯机1开度反馈" +
+//                ",[JYJ]JLJ2.Kaidu_FK:加氯机2开度反馈" +
+//                ",[JYJ]JLJ3.Kaidu_FK:加氯机3开度反馈" +
+//                ",[JYJ]JLJ4.Kaidu_FK:加氯机4开度反馈";
+//        String tpl = "{" +
+//                "      \"identifier\": \"{}\",\n" +
+//                "      \"name\": \"{}\",\n" +
+//                "      \"required\": true,\n" +
+//                "      \"dataType\": \"double\" ,\n" +
+//                "      \"description\": \"{}\"\n" +
+//                "    },";
+//        String[] items = str.split(",");
+//        for(String item : items){
+//            String[] kv = item.split(":");
+//            String result1 = StrFormatter.format(tpl, kv[0], kv[1],kv[1]);
+//            System.out.println(result1);
+//        }
     }
 }