dengyj před 3 roky
rodič
revize
db5cb07712

+ 27 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/controller/MeterWorkDataCountController.java

@@ -2,9 +2,12 @@ package com.steerinfo.meterwork.meterworkdatacount.controller;
 
 import com.steerinfo.framework.controller.BaseRESTfulController;
 import com.steerinfo.framework.controller.RESTfulResult;
+import com.steerinfo.framework.service.pagehelper.PageList;
 import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.meterworkcaractual.mapper.MeterWorkCarActualMapper;
 import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
+import com.steerinfo.meterwork.meterworkdatacount.model.MeasurementAccuracyAnalysis;
+import com.steerinfo.meterwork.meterworkdatacount.model.TruckHisTareComparison;
 import com.steerinfo.meterwork.meterworkdatacount.service.IMeterWorkDataCountService;
 import com.steerinfo.meterwork.meterworkdatacount.service.impl.MeterWorkDataCountServiceImpl;
 import com.steerinfo.meterwork.meterworkrailwayactual.mapper.MeterWorkRailwayActualMapper;
@@ -325,4 +328,28 @@ public class MeterWorkDataCountController extends BaseRESTfulController {
             throw new MarkerMetException(500, "操作异常!!");
         }
     }
+
+    @ApiOperation(value = "汽车衡同车号历史皮重比对核查", notes = "根据计量时间、车号查询")
+    @PostMapping(value = "/truckHisTareComparison")
+    public RESTfulResult truckHisTareComparison(@RequestBody(required = false) HashMap params) {
+        try {
+            PageList<TruckHisTareComparison> list = meterWorkDataCountService.truckHisTareComparison(params);
+            return success(list);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
+
+    @ApiOperation(value = "汽车衡同车号历史皮重比对核查", notes = "根据计量时间、车号查询")
+    @PostMapping(value = "/measurementAccuracyAnalysis")
+    public RESTfulResult measurementAccuracyAnalysis(@RequestBody(required = false) HashMap params) {
+        try {
+            PageList<MeasurementAccuracyAnalysis> list = meterWorkDataCountService.measurementAccuracyAnalysis(params);
+            return success(list);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
 }

+ 4 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/mapper/MeterWorkDataCountMapper.java

@@ -1,6 +1,8 @@
 package com.steerinfo.meterwork.meterworkdatacount.mapper;
 
 import com.steerinfo.meterwork.meterworkdatacount.model.CarRegularComparison;
+import com.steerinfo.meterwork.meterworkdatacount.model.MeasurementAccuracyAnalysis;
+import com.steerinfo.meterwork.meterworkdatacount.model.TruckHisTareComparison;
 import com.steerinfo.meterwork.meterworkdatacount.model.WorkLoadReportInfo;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -15,4 +17,6 @@ public interface MeterWorkDataCountMapper {
     List<CarRegularComparison> carRegularComparisonB(HashMap<String, Object> param);
     List<WorkLoadReportInfo> groupByDayCarReportInfo(HashMap<String, Object> param);
     List<WorkLoadReportInfo> groupByDayStaticReportInfo(HashMap<String, Object> param);
+    List<TruckHisTareComparison> truckHisTareComparison(HashMap<String, Object> param);
+    List<MeasurementAccuracyAnalysis> measurementAccuracyAnalysis(HashMap<String, Object> param);
 }

+ 89 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/mapper/MeterWorkDataCountMapper.xml

@@ -413,4 +413,93 @@
                 meter_type_no,
                 meter_type_name
     </select>
+
+    <select id="truckHisTareComparison" parameterType="java.util.HashMap"
+            resultType="com.steerinfo.meterwork.meterworkdatacount.model.TruckHisTareComparison">
+    select A.car_no carNo,
+           case when abs(round((A.meter_weight - B.avg_weight)/1000, 2)) >= 0.5 then '皮重超过偏差'
+                else '正常皮重' end alarmType,
+           round(A.meter_weight/1000, 2) meterWeight,
+           round(B.avg_weight/1000, 2) avgWeight,
+           round((A.meter_weight - B.avg_weight)/1000, 2) absoluteError,
+           round((A.meter_weight / (A.meter_weight + B.avg_weight))*100, 2) relativeError,
+           case when A.value_flag = '0' then '作废'
+                when A.value_flag = '1' then '有效'
+                when A.value_flag = '2' then '结净'
+                else null end valueFlag,
+           A.create_man_no createManNo,
+           A.create_man_name createManName,
+           A.create_time createTime,
+           A.update_man_no updateManNo,
+           A.update_man_name updateManName,
+           A.update_time updateTime,
+           case when A.meter_mode = '1' then '远程计量'
+                when A.meter_mode = '2' then '智能计量'
+                when A.meter_mode = '3' then '手工计量'
+                else null end meterMode,
+           case when A.meter_type_Name = 'SendToOutTms' then '外发'
+                when A.meter_type_Name = 'GM2GM' then '厂内转储'
+                when A.meter_type_Name = 'PO2GM' then '外进'
+                else null end meterTypeName,
+           A.note
+      from meter_work_car_actual_first A
+      left join meter_base_his_tare_data B
+        on A.car_no = B.Car_No
+     where A.weight_type = '1'
+        <if test="startTime != null and endTime != null and startTime != '' and endTime != ''">
+            and  A.create_time  >= TO_DATE(#{startTime}, 'yyyy-MM-dd HH24:mi:ss')
+            and A.create_time  &lt;=  TO_DATE(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
+        </if>
+        <if test="alarmType != null and alarmType != ''">
+            <if test="alarmType == 0">
+                and  abs(round((A.meter_weight - B.avg_weight)/1000, 2)) >= 0.5
+            </if>
+            <if test="alarmType == 1">
+                and  abs(round((A.meter_weight - B.avg_weight)/1000, 2)) &lt; 0.5
+            </if>
+        </if>
+        <if test="createManNo != null and createManNo != ''">
+            and  A.create_man_no = #{createManNo}
+        </if>
+        <if test="updateManNo != null and updateManNo != ''">
+            and  A.update_man_no = #{updateManNo}
+        </if>
+        <if test="meterMode != null and meterMode != ''">
+            and  A.meter_mode = #{meterMode}
+        </if>
+        <if test="meterTypeNo != null and meterTypeNo != ''">
+            and  A.meter_type_no = #{meterTypeNo}
+        </if>
+     order by A.create_time desc
+    </select>
+
+    <select id="measurementAccuracyAnalysis" parameterType="java.util.HashMap"
+            resultType="com.steerinfo.meterwork.meterworkdatacount.model.MeasurementAccuracyAnalysis">
+    select A.operation_carn_no carNo,
+           A.operation_id actualFirstNo,
+           A.operation_prediction_no predictionNo,
+           A.operation_function operationFunction,
+           A.operation_page operationPage,
+           case when B.value_flag != '0' then '继续'
+                else '停止' end valueFlag,
+           A.Create_Man_No createManNo,
+           A.create_man_name createManName,
+           A.create_time createTime,
+           case when B.meter_mode = '1' then '远程计量'
+                when B.meter_mode = '2' then '智能计量'
+                when B.meter_mode = '3' then '手工计量'
+                else null end meterMode,
+           A.operation_before_fix beforeFix,
+           A.operation_after_fix afterFix,
+           B.note note
+      from meter_base_operation_log A
+      left join meter_work_car_actual_first B
+           on A.operation_id = B.actual_first_no
+      where 1 = 1
+        <if test="startTime != null and endTime != null and startTime != '' and endTime != ''">
+            and  A.create_time  >= TO_DATE(#{startTime}, 'yyyy-MM-dd HH24:mi:ss')
+            and A.create_time  &lt;=  TO_DATE(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
+        </if>
+     order by A.create_time desc
+    </select>
 </mapper>

+ 132 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/model/MeasurementAccuracyAnalysis.java

@@ -0,0 +1,132 @@
+package com.steerinfo.meterwork.meterworkdatacount.model;
+
+import java.util.Date;
+
+public class MeasurementAccuracyAnalysis {
+    private String carNo;
+    private String actualFirstNo;
+    private String predictionNo;
+    private String operationFunction;
+    private String operationPage;
+    private String alarmInfo;
+    private String valueFlag;
+    private String createManNo;
+    private String createManName;
+    private Date createTime;
+    private String meterMode;
+    private String beforeFix;
+    private String afterFix;
+    private String note;
+
+    public String getCarNo() {
+        return carNo;
+    }
+
+    public void setCarNo(String carNo) {
+        this.carNo = carNo;
+    }
+
+    public String getActualFirstNo() {
+        return actualFirstNo;
+    }
+
+    public void setActualFirstNo(String actualFirstNo) {
+        this.actualFirstNo = actualFirstNo;
+    }
+
+    public String getPredictionNo() {
+        return predictionNo;
+    }
+
+    public void setPredictionNo(String predictionNo) {
+        this.predictionNo = predictionNo;
+    }
+
+    public String getOperationFunction() {
+        return operationFunction;
+    }
+
+    public void setOperationFunction(String operationFunction) {
+        this.operationFunction = operationFunction;
+    }
+
+    public String getOperationPage() {
+        return operationPage;
+    }
+
+    public void setOperationPage(String operationPage) {
+        this.operationPage = operationPage;
+    }
+
+    public String getAlarmInfo() {
+        return alarmInfo;
+    }
+
+    public void setAlarmInfo(String alarmInfo) {
+        this.alarmInfo = alarmInfo;
+    }
+
+    public String getValueFlag() {
+        return valueFlag;
+    }
+
+    public void setValueFlag(String valueFlag) {
+        this.valueFlag = valueFlag;
+    }
+
+    public String getCreateManNo() {
+        return createManNo;
+    }
+
+    public void setCreateManNo(String createManNo) {
+        this.createManNo = createManNo;
+    }
+
+    public String getCreateManName() {
+        return createManName;
+    }
+
+    public void setCreateManName(String createManName) {
+        this.createManName = createManName;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getMeterMode() {
+        return meterMode;
+    }
+
+    public void setMeterMode(String meterMode) {
+        this.meterMode = meterMode;
+    }
+
+    public String getBeforeFix() {
+        return beforeFix;
+    }
+
+    public void setBeforeFix(String beforeFix) {
+        this.beforeFix = beforeFix;
+    }
+
+    public String getAfterFix() {
+        return afterFix;
+    }
+
+    public void setAfterFix(String afterFix) {
+        this.afterFix = afterFix;
+    }
+
+    public String getNote() {
+        return note;
+    }
+
+    public void setNote(String note) {
+        this.note = note;
+    }
+}

+ 151 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/model/TruckHisTareComparison.java

@@ -0,0 +1,151 @@
+package com.steerinfo.meterwork.meterworkdatacount.model;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TruckHisTareComparison {
+    private String carNo;
+    private String alarmType;
+    private double meterWeight;
+    private double avgWeight;
+    private double absoluteError;
+    private double relativeError;
+    private String valueFlag;
+    private String createManNo;
+    private String createManName;
+    private Date createTime;
+    private String updateManNo;
+    private String updateManName;
+    private Date updateTime;
+    private String meterMode;
+    private String meterTypeName;
+    private String note;
+
+    public String getCarNo() {
+        return carNo;
+    }
+
+    public void setCarNo(String carNo) {
+        this.carNo = carNo;
+    }
+
+    public String getAlarmType() {
+        return alarmType;
+    }
+
+    public void setAlarmType(String alarmType) {
+        this.alarmType = alarmType;
+    }
+
+    public double getMeterWeight() {
+        return meterWeight;
+    }
+
+    public void setMeterWeight(double meterWeight) {
+        this.meterWeight = meterWeight;
+    }
+
+    public double getAvgWeight() {
+        return avgWeight;
+    }
+
+    public void setAvgWeight(double avgWeight) {
+        this.avgWeight = avgWeight;
+    }
+
+    public double getAbsoluteError() {
+        return absoluteError;
+    }
+
+    public void setAbsoluteError(double absoluteError) {
+        this.absoluteError = absoluteError;
+    }
+
+    public double getRelativeError() {
+        return relativeError;
+    }
+
+    public void setRelativeError(double relativeError) {
+        this.relativeError = relativeError;
+    }
+
+    public String getValueFlag() {
+        return valueFlag;
+    }
+
+    public void setValueFlag(String valueFlag) {
+        this.valueFlag = valueFlag;
+    }
+
+    public String getCreateManNo() {
+        return createManNo;
+    }
+
+    public void setCreateManNo(String createManNo) {
+        this.createManNo = createManNo;
+    }
+
+    public String getCreateManName() {
+        return createManName;
+    }
+
+    public void setCreateManName(String createManName) {
+        this.createManName = createManName;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateManNo() {
+        return updateManNo;
+    }
+
+    public void setUpdateManNo(String updateManNo) {
+        this.updateManNo = updateManNo;
+    }
+
+    public String getUpdateManName() {
+        return updateManName;
+    }
+
+    public void setUpdateManName(String updateManName) {
+        this.updateManName = updateManName;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getMeterMode() {
+        return meterMode;
+    }
+
+    public void setMeterMode(String meterMode) {
+        this.meterMode = meterMode;
+    }
+
+    public String getMeterTypeName() {
+        return meterTypeName;
+    }
+
+    public void setMeterTypeName(String meterTypeName) {
+        this.meterTypeName = meterTypeName;
+    }
+
+    public String getNote() {
+        return note;
+    }
+
+    public void setNote(String note) {
+        this.note = note;
+    }
+}

+ 5 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/service/IMeterWorkDataCountService.java

@@ -1,7 +1,10 @@
 package com.steerinfo.meterwork.meterworkdatacount.service;
 
 import com.steerinfo.framework.controller.RESTfulResult;
+import com.steerinfo.framework.service.pagehelper.PageList;
 import com.steerinfo.meterwork.meterworkdatacount.model.CarRegularComparison;
+import com.steerinfo.meterwork.meterworkdatacount.model.MeasurementAccuracyAnalysis;
+import com.steerinfo.meterwork.meterworkdatacount.model.TruckHisTareComparison;
 
 import java.text.ParseException;
 import java.util.HashMap;
@@ -12,4 +15,6 @@ public interface IMeterWorkDataCountService{
     HashMap productionAndOperationDaily(HashMap<String, Object> params) throws ParseException;
     RESTfulResult carRegularComparison(HashMap<String, Object> params);
     List<HashMap> countDayAllSpot(HashMap<String, Object> params);
+    PageList<TruckHisTareComparison> truckHisTareComparison(HashMap<String, Object> params);
+    PageList<MeasurementAccuracyAnalysis> measurementAccuracyAnalysis(HashMap<String, Object> params);
 }

+ 143 - 113
src/main/java/com/steerinfo/meterwork/meterworkdatacount/service/impl/MeterWorkDataCountServiceImpl.java

@@ -4,11 +4,15 @@ import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLog
 import com.steerinfo.baseinfo.meterbasespotinfo.mapper.MeterBaseSpotInfoMapper;
 import com.steerinfo.baseinfo.meterbasespotinfo.model.MeterBaseSpotInfo;
 import com.steerinfo.framework.controller.RESTfulResult;
+import com.steerinfo.framework.service.pagehelper.PageHelper;
+import com.steerinfo.framework.service.pagehelper.PageList;
 import com.steerinfo.framework.user.UserPayload;
 import com.steerinfo.meterwork.meterworkcaractual.mapper.MeterWorkCarActualMapper;
 import com.steerinfo.meterwork.meterworkcaractualfirst.mapper.MeterWorkCarActualFirstMapper;
 import com.steerinfo.meterwork.meterworkdatacount.mapper.MeterWorkDataCountMapper;
 import com.steerinfo.meterwork.meterworkdatacount.model.CarRegularComparison;
+import com.steerinfo.meterwork.meterworkdatacount.model.MeasurementAccuracyAnalysis;
+import com.steerinfo.meterwork.meterworkdatacount.model.TruckHisTareComparison;
 import com.steerinfo.meterwork.meterworkdatacount.model.WorkLoadReportInfo;
 import com.steerinfo.meterwork.meterworkdatacount.service.IMeterWorkDataCountService;
 import com.steerinfo.meterwork.meterworkrailwayactfirst.mapper.MeterWorkRailwayActFirstMapper;
@@ -65,19 +69,19 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
         String userName = payload.getUserName();
         models.put("userId", userId);
         models.put("userName", userName);
-        models.put("myDate", str[0] + '年' + str[1] + '月'+ str[2] + '日');
+        models.put("myDate", str[0] + '年' + str[1] + '月' + str[2] + '日');
         return models;
     }
 
     @Override
-    public RESTfulResult carRegularComparison(HashMap<String, Object> params){
+    public RESTfulResult carRegularComparison(HashMap<String, Object> params) {
         RESTfulResult rm = new RESTfulResult();
         rm.setFailed();
-        try{
+        try {
             List<CarRegularComparison> models = new ArrayList<>();
             List<CarRegularComparison> modelsA = meterWorkDataCountMapper.carRegularComparisonA(params);
-            if(modelsA.size() >= 1) {
-                for(CarRegularComparison model: modelsA) {
+            if (modelsA.size() >= 1) {
+                for (CarRegularComparison model : modelsA) {
                     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     Calendar beforeTime = Calendar.getInstance();
                     Calendar afterTime = Calendar.getInstance();
@@ -102,50 +106,50 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                     && s.getCreateTime().getTime() >= beforeD.getTime()
                                     && s.getCreateTime().getTime() <= afterD.getTime()).collect(Collectors.toList());
 //                    List<CarRegularComparison> modelsB = meterWorkDataCountMapper.carRegularComparisonB(map);
-                    if(modelsB.size() >= 1) {
+                    if (modelsB.size() >= 1) {
                         //去重
                         long count = models.stream().filter(item -> item.getActualFirstNo().equals(modelsB.get(0).getActualFirstNo())).count();
                         //一次作业编号不存在,则添加,否者,跳过
-                        if(count < 1) {
-                                SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                                Date timeDate1 = simpleFormat.parse(sdf.format(modelsB.get(0).getCreateTime()));
-                                Date timeDate2 = simpleFormat.parse(sdf.format(model.getCreateTime()));
-                                long time1 = timeDate1.getTime();
-                                long time2 = timeDate2.getTime();
-                                int minutes = Math.abs((int) ((time1 - time2) / (1000 * 60)));
-                                if(StringUtils.isEmpty(model.getWeightType()) ||  StringUtils.isEmpty(modelsB.get(0).getWeightType())){
-                                    if(modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
-                                            && minutes <= 20) {
-                                        model.setMemo("双秤比对");
-                                        model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
-                                        models.add(model);
-                                        models.add(modelsB.get(0));
-                                    }else if(!modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
-                                            && minutes >= 30 && minutes <= 60){
-                                        model.setMemo("异地比对");
-                                        model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
-                                        models.add(model);
-                                        models.add(modelsB.get(0));
-                                    }
-                                }else if(StringUtils.isNotEmpty(model.getWeightType()) && StringUtils.isNotEmpty(modelsB.get(0).getWeightType())
-                                        && !(modelsB.get(0).getWeightType().equals("0") && model.getWeightType().equals("1"))
-                                        && !(modelsB.get(0).getWeightType().equals("1") && model.getWeightType().equals("0"))
-                                        && !(modelsB.get(0).getWeightType().equals("0") && model.getWeightType().equals("2"))
-                                        && !(modelsB.get(0).getWeightType().equals("2") && model.getWeightType().equals("0"))) {
-                                    if(modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
-                                            && minutes <= 20) {
-                                        model.setMemo("双秤比对");
-                                        model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
-                                        models.add(model);
-                                        models.add(modelsB.get(0));
-                                    }else if(!modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
-                                            && minutes >= 30 && minutes <= 60){
-                                        model.setMemo("异地比对");
-                                        model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
-                                        models.add(model);
-                                        models.add(modelsB.get(0));
-                                    }
+                        if (count < 1) {
+                            SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                            Date timeDate1 = simpleFormat.parse(sdf.format(modelsB.get(0).getCreateTime()));
+                            Date timeDate2 = simpleFormat.parse(sdf.format(model.getCreateTime()));
+                            long time1 = timeDate1.getTime();
+                            long time2 = timeDate2.getTime();
+                            int minutes = Math.abs((int) ((time1 - time2) / (1000 * 60)));
+                            if (StringUtils.isEmpty(model.getWeightType()) || StringUtils.isEmpty(modelsB.get(0).getWeightType())) {
+                                if (modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
+                                        && minutes <= 20) {
+                                    model.setMemo("双秤比对");
+                                    model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
+                                    models.add(model);
+                                    models.add(modelsB.get(0));
+                                } else if (!modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
+                                        && minutes >= 30 && minutes <= 60) {
+                                    model.setMemo("异地比对");
+                                    model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
+                                    models.add(model);
+                                    models.add(modelsB.get(0));
+                                }
+                            } else if (StringUtils.isNotEmpty(model.getWeightType()) && StringUtils.isNotEmpty(modelsB.get(0).getWeightType())
+                                    && !(modelsB.get(0).getWeightType().equals("0") && model.getWeightType().equals("1"))
+                                    && !(modelsB.get(0).getWeightType().equals("1") && model.getWeightType().equals("0"))
+                                    && !(modelsB.get(0).getWeightType().equals("0") && model.getWeightType().equals("2"))
+                                    && !(modelsB.get(0).getWeightType().equals("2") && model.getWeightType().equals("0"))) {
+                                if (modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
+                                        && minutes <= 20) {
+                                    model.setMemo("双秤比对");
+                                    model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
+                                    models.add(model);
+                                    models.add(modelsB.get(0));
+                                } else if (!modelsB.get(0).getSpotAreaNo().equals(model.getSpotAreaNo())
+                                        && minutes >= 30 && minutes <= 60) {
+                                    model.setMemo("异地比对");
+                                    model.setSubstract(model.getMeterWeight().subtract(modelsB.get(0).getMeterWeight()));
+                                    models.add(model);
+                                    models.add(modelsB.get(0));
                                 }
+                            }
 
                         }
                     }
@@ -154,7 +158,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             rm.setSucceed(true);
             rm.setData(models);
             rm.setMessage("操作成功!!");
-        }catch(Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             rm.setMessage("操作失败:>>>" + e.getMessage());
         }
@@ -164,7 +168,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
     @Override
     public List<HashMap> countDayAllSpot(HashMap<String, Object> params) {
 
-        if(params.get("netSpot3NoStr") != null) {
+        if (params.get("netSpot3NoStr") != null) {
             String[] spotNoStr = params.get("netSpot3NoStr").toString().split(",");
             params.put("spotNoStr", spotNoStr);
         }
@@ -186,14 +190,14 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             HashMap<String, Object> actualMap = new HashMap<>();
             actualMap.put("startTime", params.get("startTime"));
             actualMap.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 actualMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 actualMap.put("spotNoStr", params.get("spotNoStr"));
             }
             actualMap.put("validFlag", "1");
             List<HashMap> carActualTotal = meterWorkCarActualMapper.countDayAllState(actualMap);
-            if(carActualTotal.size() >= 1) {
-                for(HashMap modelTemp: carActualTotal) {
+            if (carActualTotal.size() >= 1) {
+                for (HashMap modelTemp : carActualTotal) {
                     countActualTemp += Long.parseLong(modelTemp.get("COUNT_ACTUAL").toString());
                 }
             }
@@ -201,7 +205,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             HashMap<String, Object> actualVoidMap = new HashMap<>();
             actualVoidMap.put("startTime", params.get("startTime"));
             actualVoidMap.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 actualVoidMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 actualVoidMap.put("spotNoStr", params.get("spotNoStr"));
             }
@@ -211,15 +215,15 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             HashMap<String, Object> actualNotMatchScaleMap = new HashMap<>();
             actualNotMatchScaleMap.put("startTime", params.get("startTime"));
             actualNotMatchScaleMap.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 actualNotMatchScaleMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 actualNotMatchScaleMap.put("spotNoStr", params.get("spotNoStr"));
             }
             actualNotMatchScaleMap.put("isPreScale", "0");
             actualNotMatchScaleMap.put("validFlag", "1");
             List<HashMap> carActualNotMatchTotal = meterWorkCarActualMapper.countDayAllState(actualNotMatchScaleMap);
-            if(carActualNotMatchTotal.size() >= 1) {
-                for(HashMap modelTemp: carActualNotMatchTotal) {
+            if (carActualNotMatchTotal.size() >= 1) {
+                for (HashMap modelTemp : carActualNotMatchTotal) {
                     countActualValidTemp += Long.parseLong(modelTemp.get("COUNT_ACTUAL").toString());
                 }
             }
@@ -227,14 +231,14 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             HashMap<String, Object> firstMap = new HashMap<>();
             firstMap.put("startTime", params.get("startTime"));
             firstMap.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 firstMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 firstMap.put("spotNoStr", params.get("spotNoStr"));
             }
             firstMap.put("validFlag", "1");
             List<HashMap> carFirstTotal = meterWorkCarActualFirstMaper.countDayAllState(firstMap);
-            if(carFirstTotal.size() >= 1) {
-                for(HashMap modelTemp: carFirstTotal) {
+            if (carFirstTotal.size() >= 1) {
+                for (HashMap modelTemp : carFirstTotal) {
                     countFirstTemp += Long.parseLong(modelTemp.get("COUNT_FIRST").toString());
                 }
             }
@@ -242,21 +246,21 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             HashMap<String, Object> firstNotNetMap = new HashMap<>();
             firstNotNetMap.put("startTime", params.get("startTime"));
             firstNotNetMap.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 firstNotNetMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 firstNotNetMap.put("spotNoStr", params.get("spotNoStr"));
             }
             firstNotNetMap.put("valueFlag", "1");
             List<HashMap> carFirst = meterWorkCarActualFirstMaper.countDayAllState(firstNotNetMap);
-            if(carFirst.size() >= 1) {
-                for(HashMap modelTemp: carFirst) {
+            if (carFirst.size() >= 1) {
+                for (HashMap modelTemp : carFirst) {
                     countFirstValidTemp += Long.parseLong(modelTemp.get("COUNT_FIRST").toString());
                 }
             }
             HashMap<String, Object> firstResetMap = new HashMap<>();
             firstResetMap.put("startTime", params.get("startTime"));
             firstResetMap.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 firstResetMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 firstResetMap.put("spotNoStr", params.get("spotNoStr"));
             }
@@ -265,7 +269,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
             HashMap<String, Object> obj = new HashMap<>();
             obj.put("startTime", params.get("startTime"));
             obj.put("endTime", params.get("endTime"));
-            if(params.get("netSpot3NoStr") != null) {
+            if (params.get("netSpot3NoStr") != null) {
                 obj.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                 obj.put("spotNoStr", params.get("spotNoStr"));
             }
@@ -286,19 +290,19 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                         //总结净数
                         List<HashMap> carActualTotalTemp01 = carActualTotal.stream().filter(item ->
                                 item.get("NET_SPOT3_NO").equals(spotModel.getBaseSpotNo())
-                                && item.get("NET_SPOT3_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
+                                        && item.get("NET_SPOT3_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
                         //作废结净总数
                         List<HashMap> carActualVoidTotalTemp01 = carActualVoidTotal.stream().filter(item ->
                                 item.get("NET_SPOT3_NO").equals(spotModel.getBaseSpotNo())
-                                && item.get("NET_SPOT3_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
+                                        && item.get("NET_SPOT3_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
                         //一次计量总数
                         List<HashMap> carFirstTotalTemp01 = carFirstTotal.stream().filter(item ->
                                 item.get("BASE_SPOT_NO").equals(spotModel.getBaseSpotNo())
-                                && item.get("BASE_SPOT_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
+                                        && item.get("BASE_SPOT_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
                         //修改车号总数
                         List<HashMap> carFirstLogTemp01 = carFirstLog.stream().filter(item ->
                                 item.get("BASE_SPOT_NO").equals(spotModel.getBaseSpotNo())
-                                && item.get("BASE_SPOT_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
+                                        && item.get("BASE_SPOT_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
 
                         for (WorkLoadReportInfo model : modelTemp) {
                             HashMap<String, Object> carMap = new HashMap<>();
@@ -326,7 +330,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                                 || StringUtils.isEmpty(model.getCreateManNo()) || item.get("NET_MAN_NO").equals(model.getCreateManNo()))
                                                 && (item.get("NET_MAN_NAME") == null || StringUtils.isEmpty(item.get("NET_MAN_NAME").toString())
                                                 || StringUtils.isEmpty(model.getCreateManName()) || item.get("NET_MAN_NAME").equals(model.getCreateManName()))).collect(Collectors.toList());
-                                if(carActualTotalTemp02 != null && carActualTotalTemp02.size() >= 1) {
+                                if (carActualTotalTemp02 != null && carActualTotalTemp02.size() >= 1) {
                                     countActualSum = Long.parseLong(carActualTotalTemp02.get(0).get("COUNT_ACTUAL").toString());
                                 }
                             }
@@ -342,7 +346,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                                 || StringUtils.isEmpty(model.getCreateManNo()) || item.get("NET_MAN_NO").equals(model.getCreateManNo()))
                                                 && (item.get("NET_MAN_NAME") == null || StringUtils.isEmpty(item.get("NET_MAN_NAME").toString())
                                                 || StringUtils.isEmpty(model.getCreateManName()) || item.get("NET_MAN_NAME").equals(model.getCreateManName()))).collect(Collectors.toList());
-                                if(carActualVoidTotalTemp02 != null && carActualVoidTotalTemp02.size() >= 1) {
+                                if (carActualVoidTotalTemp02 != null && carActualVoidTotalTemp02.size() >= 1) {
                                     countActualValidSum = Long.parseLong(carActualVoidTotalTemp02.get(0).get("COUNT_ACTUAL").toString());
                                 }
                             }
@@ -358,7 +362,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                                 || StringUtils.isEmpty(model.getCreateManNo()) || item.get("CREATE_MAN_NO").equals(model.getCreateManNo()))
                                                 && (item.get("CREATE_MAN_NAME") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NAME").toString())
                                                 || StringUtils.isEmpty(model.getCreateManName()) || item.get("CREATE_MAN_NAME").equals(model.getCreateManName()))).collect(Collectors.toList());
-                                if(carFirstTotalTemp02 != null && carFirstTotalTemp02.size() >= 1) {
+                                if (carFirstTotalTemp02 != null && carFirstTotalTemp02.size() >= 1) {
                                     countFirstSum = Long.parseLong(carFirstTotalTemp02.get(0).get("COUNT_FIRST").toString());
                                 }
                             }
@@ -366,14 +370,14 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                 List<HashMap> carFirstLogTemp02 = carFirstLogTemp01.stream().filter(item ->
                                         (item.get("METER_MODE") == null || StringUtils.isEmpty(item.get("METER_MODE").toString())
                                                 || StringUtils.isEmpty(model.getMeterMode()) || item.get("METER_MODE").toString().equals(model.getMeterMode()))
-                                        && (item.get("METER_TYPE_NO") == null || StringUtils.isEmpty(item.get("METER_TYPE_NO").toString())
-                                                ||StringUtils.isEmpty(model.getMeterTypeNo()) || item.get("METER_TYPE_NO").toString().equals(model.getMeterTypeNo()))
-                                        && (item.get("METER_TYPE_NAME") == null || StringUtils.isEmpty(item.get("METER_TYPE_NAME").toString())
-                                                ||StringUtils.isEmpty(model.getMeterTypeName()) || item.get("METER_TYPE_NAME").toString().equals(model.getMeterTypeName()))
-                                        && (item.get("CREATE_MAN_NO") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NO").toString())
-                                                ||StringUtils.isEmpty(model.getCreateManNo()) || item.get("CREATE_MAN_NO").toString().equals(model.getCreateManNo()))
-                                        && (item.get("CREATE_MAN_NAME") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NAME").toString())
-                                                ||StringUtils.isEmpty(model.getCreateManName()) || item.get("CREATE_MAN_NAME").toString().equals(model.getCreateManName()))).collect(Collectors.toList());
+                                                && (item.get("METER_TYPE_NO") == null || StringUtils.isEmpty(item.get("METER_TYPE_NO").toString())
+                                                || StringUtils.isEmpty(model.getMeterTypeNo()) || item.get("METER_TYPE_NO").toString().equals(model.getMeterTypeNo()))
+                                                && (item.get("METER_TYPE_NAME") == null || StringUtils.isEmpty(item.get("METER_TYPE_NAME").toString())
+                                                || StringUtils.isEmpty(model.getMeterTypeName()) || item.get("METER_TYPE_NAME").toString().equals(model.getMeterTypeName()))
+                                                && (item.get("CREATE_MAN_NO") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NO").toString())
+                                                || StringUtils.isEmpty(model.getCreateManNo()) || item.get("CREATE_MAN_NO").toString().equals(model.getCreateManNo()))
+                                                && (item.get("CREATE_MAN_NAME") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NAME").toString())
+                                                || StringUtils.isEmpty(model.getCreateManName()) || item.get("CREATE_MAN_NAME").toString().equals(model.getCreateManName()))).collect(Collectors.toList());
                                 if (carFirstLogTemp02 != null && carFirstLogTemp02.size() >= 1) {
                                     carFirstLogSum = Long.parseLong(carFirstLogTemp02.get(0).get("COUNT_RESETCAR").toString());
                                 }
@@ -389,7 +393,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
 //                            countFirstValidTemp += countFirsValidtSum;
                         }
                         params02.put("childrenBase", carMap02List);
-                    }else {
+                    } else {
                         HashMap<String, Object> carMap = new HashMap<>();
                         carMap.put("meterMode", null);
                         carMap.put("meterTypeNo", null);
@@ -415,8 +419,8 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
         }
 
         {
-            String[][] railwayTypeNoList = new String[][]{{"001019001"},{"001019002"}, {"001019003", "001019004"}, {"001019005"}};
-            for(int i = 0; i <= railwayTypeNoList.length-1; i++) {
+            String[][] railwayTypeNoList = new String[][]{{"001019001"}, {"001019002"}, {"001019003", "001019004"}, {"001019005"}};
+            for (int i = 0; i <= railwayTypeNoList.length - 1; i++) {
                 String[] railwayTypeNo = railwayTypeNoList[i];
                 HashMap params01 = new HashMap();
                 List<HashMap> paramsList02 = new ArrayList<>();
@@ -434,7 +438,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 spotModelMap.put("startTime", params.get("startTime"));
                 spotModelMap.put("endTime", params.get("endTime"));
                 spotModelMap.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     spotModelMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     spotModelMap.put("spotNoStr", params.get("spotNoStr"));
                 }
@@ -445,14 +449,14 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 actualMap.put("startTime", params.get("startTime"));
                 actualMap.put("endTime", params.get("endTime"));
                 actualMap.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     actualMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     actualMap.put("spotNoStr", params.get("spotNoStr"));
                 }
                 actualMap.put("validFlag", "1");
                 List<HashMap> carActualTotal = meterWorkRailwayActualMapper.countDayAllState(actualMap);
-                if(carActualTotal.size() >= 1) {
-                    for(HashMap modelTemp: carActualTotal) {
+                if (carActualTotal.size() >= 1) {
+                    for (HashMap modelTemp : carActualTotal) {
                         countActualTemp += Long.parseLong(modelTemp.get("COUNT_ACTUAL").toString());
                     }
                 }
@@ -461,7 +465,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 actualVoidMap.put("startTime", params.get("startTime"));
                 actualVoidMap.put("endTime", params.get("endTime"));
                 actualVoidMap.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     actualVoidMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     actualVoidMap.put("spotNoStr", params.get("spotNoStr"));
                 }
@@ -472,15 +476,15 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 actualNotMatchScaleMap.put("startTime", params.get("startTime"));
                 actualNotMatchScaleMap.put("endTime", params.get("endTime"));
                 actualNotMatchScaleMap.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     actualNotMatchScaleMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     actualNotMatchScaleMap.put("spotNoStr", params.get("spotNoStr"));
                 }
                 actualNotMatchScaleMap.put("isPreSacale", "0");
                 actualNotMatchScaleMap.put("validFlag", "1");
                 List<HashMap> carActualNotMatchTotal = meterWorkRailwayActualMapper.countDayAllState(actualNotMatchScaleMap);
-                if(carActualNotMatchTotal.size() >= 1) {
-                    for(HashMap modelTemp: carActualNotMatchTotal) {
+                if (carActualNotMatchTotal.size() >= 1) {
+                    for (HashMap modelTemp : carActualNotMatchTotal) {
                         countActualValidTemp += Long.parseLong(modelTemp.get("COUNT_ACTUAL").toString());
                     }
                 }
@@ -488,15 +492,15 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 HashMap<String, Object> firstMap = new HashMap<>();
                 firstMap.put("startTime", params.get("startTime"));
                 firstMap.put("endTime", params.get("endTime"));
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     firstMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     firstMap.put("spotNoStr", params.get("spotNoStr"));
                 }
                 firstMap.put("railwayTypeNo", railwayTypeNo);
                 firstMap.put("validFlag", "1");
                 List<HashMap> carFirstTotal = meterWorkRailwayActFirstMapper.countDayAllState(firstMap);
-                if(carFirstTotal.size() >= 1) {
-                    for(HashMap modelTemp: carFirstTotal) {
+                if (carFirstTotal.size() >= 1) {
+                    for (HashMap modelTemp : carFirstTotal) {
                         countFirstTemp += Long.parseLong(modelTemp.get("COUNT_FIRST").toString());
                     }
                 }
@@ -505,14 +509,14 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 firstNotNetMap.put("startTime", params.get("startTime"));
                 firstNotNetMap.put("endTime", params.get("endTime"));
                 firstNotNetMap.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     firstNotNetMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     firstNotNetMap.put("spotNoStr", params.get("spotNoStr"));
                 }
                 firstNotNetMap.put("valueFlag", "1");
                 List<HashMap> carFirst = meterWorkRailwayActFirstMapper.countDayAllState(firstNotNetMap);
-                if(carFirst.size() >= 1) {
-                    for(HashMap modelTemp: carFirst) {
+                if (carFirst.size() >= 1) {
+                    for (HashMap modelTemp : carFirst) {
                         countFirstValidTemp += Long.parseLong(modelTemp.get("COUNT_FIRST").toString());
                     }
                 }
@@ -520,7 +524,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 firstResetMap.put("startTime", params.get("startTime"));
                 firstResetMap.put("endTime", params.get("endTime"));
                 firstResetMap.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     firstResetMap.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     firstResetMap.put("spotNoStr", params.get("spotNoStr"));
                 }
@@ -530,13 +534,13 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                 obj.put("startTime", params.get("startTime"));
                 obj.put("endTime", params.get("endTime"));
                 obj.put("railwayTypeNo", railwayTypeNo);
-                if(params.get("netSpot3NoStr") != null) {
+                if (params.get("netSpot3NoStr") != null) {
                     obj.put("netSpot3NoStr", params.get("netSpot3NoStr"));
                     obj.put("spotNoStr", params.get("spotNoStr"));
                 }
                 List<WorkLoadReportInfo> models = meterWorkDataCountMapper.groupByDayStaticReportInfo(obj);
-                if(spotModelList.size() >= 1) {
-                    for(MeterBaseSpotInfo spotModel: spotModelList) {
+                if (spotModelList.size() >= 1) {
+                    for (MeterBaseSpotInfo spotModel : spotModelList) {
                         //写入返回值
                         HashMap<String, Object> params02 = new HashMap<>();
                         params02.put("baseSpotNo", spotModel.getBaseSpotNo());
@@ -546,7 +550,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                         List<WorkLoadReportInfo> modelTemp = models.stream()
                                 .filter(item -> item.getBaseSpotNo().equals(spotModel.getBaseSpotNo())
                                         && item.getBaseSpotName().equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
-                        if(modelTemp.size() >= 1) {
+                        if (modelTemp.size() >= 1) {
                             //总结净数
                             List<HashMap> carActualTotalTemp01 = carActualTotal.stream().filter(item ->
                                     item.get("NET_SPOT3_NO").equals(spotModel.getBaseSpotNo())
@@ -563,7 +567,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                             List<HashMap> carFirstLogTemp01 = carFirstLog.stream().filter(item ->
                                     item.get("BASE_SPOT_NO").equals(spotModel.getBaseSpotNo())
                                             && item.get("BASE_SPOT_NAME").equals(spotModel.getBaseSpotName())).collect(Collectors.toList());
-                            for(WorkLoadReportInfo model: modelTemp) {
+                            for (WorkLoadReportInfo model : modelTemp) {
                                 HashMap<String, Object> carMap = new HashMap<>();
                                 carMap.put("meterMode", model.getMeterMode());
                                 carMap.put("meterTypeNo", model.getMeterTypeNo());
@@ -589,7 +593,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                                     || StringUtils.isEmpty(model.getCreateManNo()) || item.get("NET_MAN_NO").equals(model.getCreateManNo()))
                                                     && (item.get("NET_MAN_NAME") == null || StringUtils.isEmpty(item.get("NET_MAN_NAME").toString())
                                                     || StringUtils.isEmpty(model.getCreateManName()) || item.get("NET_MAN_NAME").equals(model.getCreateManName()))).collect(Collectors.toList());
-                                    if(carActualTotalTemp02 != null && carActualTotalTemp02.size() >= 1) {
+                                    if (carActualTotalTemp02 != null && carActualTotalTemp02.size() >= 1) {
                                         countActualSum = Long.parseLong(carActualTotalTemp02.get(0).get("COUNT_ACTUAL").toString());
                                     }
                                 }
@@ -605,7 +609,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                                     || StringUtils.isEmpty(model.getCreateManNo()) || item.get("NET_MAN_NO").equals(model.getCreateManNo()))
                                                     && (item.get("NET_MAN_NAME") == null || StringUtils.isEmpty(item.get("NET_MAN_NAME").toString())
                                                     || StringUtils.isEmpty(model.getCreateManName()) || item.get("NET_MAN_NAME").equals(model.getCreateManName()))).collect(Collectors.toList());
-                                    if(carActualVoidTotalTemp02 != null && carActualVoidTotalTemp02.size() >= 1) {
+                                    if (carActualVoidTotalTemp02 != null && carActualVoidTotalTemp02.size() >= 1) {
                                         countActualValidSum = Long.parseLong(carActualVoidTotalTemp02.get(0).get("COUNT_ACTUAL").toString());
                                     }
                                 }
@@ -621,7 +625,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                                     || StringUtils.isEmpty(model.getCreateManNo()) || item.get("CREATE_MAN_NO").equals(model.getCreateManNo()))
                                                     && (item.get("CREATE_MAN_NAME") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NAME").toString())
                                                     || StringUtils.isEmpty(model.getCreateManName()) || item.get("CREATE_MAN_NAME").equals(model.getCreateManName()))).collect(Collectors.toList());
-                                    if(carFirstTotalTemp02 != null && carFirstTotalTemp02.size() >= 1) {
+                                    if (carFirstTotalTemp02 != null && carFirstTotalTemp02.size() >= 1) {
                                         countFirstSum = Long.parseLong(carFirstTotalTemp02.get(0).get("COUNT_FIRST").toString());
                                     }
                                 }
@@ -630,13 +634,13 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                                             (item.get("METER_MODE") == null || StringUtils.isEmpty(item.get("METER_MODE").toString())
                                                     || StringUtils.isEmpty(model.getMeterMode()) || item.get("METER_MODE").toString().equals(model.getMeterMode()))
                                                     && (item.get("METER_TYPE_NO") == null || StringUtils.isEmpty(item.get("METER_TYPE_NO").toString())
-                                                    ||StringUtils.isEmpty(model.getMeterTypeNo()) || item.get("METER_TYPE_NO").toString().equals(model.getMeterTypeNo()))
+                                                    || StringUtils.isEmpty(model.getMeterTypeNo()) || item.get("METER_TYPE_NO").toString().equals(model.getMeterTypeNo()))
                                                     && (item.get("METER_TYPE_NAME") == null || StringUtils.isEmpty(item.get("METER_TYPE_NAME").toString())
-                                                    ||StringUtils.isEmpty(model.getMeterTypeName()) || item.get("METER_TYPE_NAME").toString().equals(model.getMeterTypeName()))
+                                                    || StringUtils.isEmpty(model.getMeterTypeName()) || item.get("METER_TYPE_NAME").toString().equals(model.getMeterTypeName()))
                                                     && (item.get("CREATE_MAN_NO") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NO").toString())
-                                                    ||StringUtils.isEmpty(model.getCreateManNo()) || item.get("CREATE_MAN_NO").toString().equals(model.getCreateManNo()))
+                                                    || StringUtils.isEmpty(model.getCreateManNo()) || item.get("CREATE_MAN_NO").toString().equals(model.getCreateManNo()))
                                                     && (item.get("CREATE_MAN_NAME") == null || StringUtils.isEmpty(item.get("CREATE_MAN_NAME").toString())
-                                                    ||StringUtils.isEmpty(model.getCreateManName()) || item.get("CREATE_MAN_NAME").toString().equals(model.getCreateManName()))).collect(Collectors.toList());
+                                                    || StringUtils.isEmpty(model.getCreateManName()) || item.get("CREATE_MAN_NAME").toString().equals(model.getCreateManName()))).collect(Collectors.toList());
                                     if (carFirstLogTemp02 != null && carFirstLogTemp02.size() >= 1) {
                                         carFirstLogSum = Long.parseLong(carFirstLogTemp02.get(0).get("COUNT_RESETCAR").toString());
                                     }
@@ -652,7 +656,7 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
 //                            countFirstValidTemp += countFirsValidtSum;
                             }
                             params02.put("childrenBase", carMap02List);
-                        }else {
+                        } else {
                             HashMap<String, Object> carMap = new HashMap<>();
                             carMap.put("meterMode", null);
                             carMap.put("meterTypeNo", null);
@@ -669,13 +673,13 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
                     }
                     params01.put("countActualTemp", countActualValidTemp);
                     params01.put("countFirstTemp", countFirstValidTemp);
-                    if(i == 0) {
+                    if (i == 0) {
                         params01.put("type", "静态轨轨道衡");
-                    }else if(i == 1){
+                    } else if (i == 1) {
                         params01.put("type", "动态轨轨道衡");
-                    }else if(i == 2){
+                    } else if (i == 2) {
                         params01.put("type", "铁水衡");
-                    }else if(i == 3){
+                    } else if (i == 3) {
                         params01.put("type", "吊钩秤");
                     }
                     params01.put("countFirst", countFirstTemp);
@@ -687,4 +691,30 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
         }
         return paramsList;
     }
-}
+
+    @Override
+    public PageList<TruckHisTareComparison> truckHisTareComparison(HashMap<String, Object> params) {
+        PageHelper.startPage(Integer.parseInt(params.get("pageNum").toString()), Integer.parseInt(params.get("pageSize").toString()));
+        List<TruckHisTareComparison> models = meterWorkDataCountMapper.truckHisTareComparison(params);
+        PageList<TruckHisTareComparison> rows = new PageList<>(models);
+        return rows;
+    }
+
+    @Override
+    public PageList<MeasurementAccuracyAnalysis> measurementAccuracyAnalysis(HashMap<String, Object> params) {
+        PageHelper.startPage(Integer.parseInt(params.get("pageNum").toString()), Integer.parseInt(params.get("pageSize").toString()));
+        List<MeasurementAccuracyAnalysis> models = meterWorkDataCountMapper.measurementAccuracyAnalysis(params);
+        if (models.size() >= 1) {
+            for (MeasurementAccuracyAnalysis model : models) {
+                if (StringUtils.isNotEmpty(model.getBeforeFix())) {
+                    String str = model.getBeforeFix();
+                }
+                if (StringUtils.isNotEmpty(model.getAfterFix())) {
+
+                }
+            }
+        }
+        PageList<MeasurementAccuracyAnalysis> rows = new PageList<>(models);
+        return rows;
+    }
+}