dengyj 3 năm trước cách đây
mục cha
commit
61b9dfdc63

+ 37 - 4
src/main/java/com/steerinfo/meterwork/meterworkdatacount/controller/MeterWorkDataCountController.java

@@ -6,10 +6,7 @@ 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.HookTareWeightAndTheoryAmount;
-import com.steerinfo.meterwork.meterworkdatacount.model.MeasurementAccuracyAnalysis;
-import com.steerinfo.meterwork.meterworkdatacount.model.TruckHisTareComparison;
-import com.steerinfo.meterwork.meterworkdatacount.model.TwoMillionTareWeightComparison;
+import com.steerinfo.meterwork.meterworkdatacount.model.*;
 import com.steerinfo.meterwork.meterworkdatacount.service.IMeterWorkDataCountService;
 import com.steerinfo.meterwork.meterworkdatacount.service.impl.MeterWorkDataCountServiceImpl;
 import com.steerinfo.meterwork.meterworkrailwayactual.mapper.MeterWorkRailwayActualMapper;
@@ -378,4 +375,40 @@ public class MeterWorkDataCountController extends BaseRESTfulController {
             throw new MarkerMetException(500, "操作异常!!");
         }
     }
+
+    @ApiOperation(value = "静态轨道衡同车号当日异地计量结净净重核查报表-获取列表", notes = "分页模糊查询")
+    @PostMapping(value = "/staticRailwayRemoteComparison")
+    public RESTfulResult staticRailwayRemoteComparison(@RequestBody HashMap parmas) {
+        try {
+            PageList<StaticRailwayRemoteComparison> list = meterWorkDataCountService.staticRailwayRemoteComparison(parmas);
+            return success(list);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
+
+    @ApiOperation(value = "Rfid识别率分析汇总统计-获取列表", notes = "不分页模糊查询")
+    @PostMapping(value = "/rfidIdentifyAnalysisSummary")
+    public RESTfulResult rfidIdentifyAnalysisSummary(@RequestBody HashMap parmas) {
+        try {
+            List<HashMap> list = meterWorkDataCountService.rfidIdentifyAnalysisSummary(parmas);
+            return success(list);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
+
+    @ApiOperation(value = "Rfid识别率分析明细-获取列表", notes = "分页模糊查询")
+    @PostMapping(value = "/rfidIdentifyAnalysisDetail")
+    public RESTfulResult rfidIdentifyAnalysisDetail(@RequestBody HashMap parmas) {
+        try {
+            PageList<RfidIdentifyAnalysis> list = meterWorkDataCountService.rfidIdentifyAnalysisDetail(parmas);
+            return success(list);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
 }

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

@@ -1,7 +1,9 @@
 package com.steerinfo.meterwork.meterworkdatacount.mapper;
 
+import com.steerinfo.baseinfo.meterbasespotinfo.model.MeterBaseSpotInfo;
 import com.steerinfo.meterwork.meterworkdatacount.model.*;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.shiro.crypto.hash.Hash;
 
 import java.util.HashMap;
 import java.util.List;
@@ -18,4 +20,7 @@ public interface MeterWorkDataCountMapper {
     List<MeasurementAccuracyAnalysis> measurementAccuracyAnalysis(HashMap<String, Object> param);
     List<HookTareWeightAndTheoryAmount> hookTareWeightAndTheoryAmount(HashMap<String, Object> param);
     List<TwoMillionTareWeightComparison> twoMillionTareWeightComparison(HashMap<String, Object> param);
+    List<StaticRailwayRemoteComparison> staticRailwayRemoteComparison(HashMap<String, Object> param);
+    List<MeterBaseSpotInfo> rfidIdentifyAnalysisSummarySpot(HashMap<String, Object> param);
+    List<RfidIdentifyAnalysis> rfidIdentifyAnalysisSummary(HashMap<String, Object> param);
 }

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

@@ -770,4 +770,106 @@
             </if>
         order by A.net_time desc
     </select>
+
+    <select id="staticRailwayRemoteComparison" parameterType="java.util.HashMap"
+            resultType="com.steerinfo.meterwork.meterworkdatacount.model.StaticRailwayRemoteComparison">
+        select A.actual_no actualNo,
+               A.railway_no railwayNo,
+               A.lc_no lcNo,
+               A.prediction_no predictionNo,
+               A.matter_no matterNo,
+               A.matter_name matterName,
+               A.forwarding_unit_name forwardingUnitName,
+               A.receiving_uint_name receivingUintName,
+               to_char(round(A.gross_Weight/1000, 2),'FM9999999999999999.00') grossWegiht,
+               to_char(round(A.tare_weight/1000, 2),'FM9999999999999999.00') tareWeight,
+               to_char(round(A.net_weight/1000, 2),'FM9999999999999999.00') netWeight,
+               to_char(round(to_number(B.theory_amount), 2),'FM9999999999999999.00') theoryAmount,
+               A.meter_type_no meterTypeNo,
+               A.meter_type_name meterTypeName,
+               A.sender_remark senderRemark,
+               A.gross_time grossTime,
+               A.base_spot1_name baseSpot1Name,
+               case when A.gross_mode = '1' then '远程计量'
+                    when A.gross_mode = '2' then '智能计量'
+                    when A.gross_mode = '3' then '手工计量'
+                    else null end grossMode,
+               A.gross_man_name grossManName,
+               A.tare_time tareTime,
+               A.base_spot2_name baseSpot2Name,
+               case when A.tare_mode = '1' then '远程计量'
+                    when A.tare_mode = '2' then '智能计量'
+                    when A.tare_mode = '3' then '手工计量'
+                    else null end tareMode,
+               A.tare_man_name tareManName,
+               A.net_time netTime,
+               A.net_spot3_name netSpot3Name,
+               A.net_man_name netManName,
+               case when A.value_flag = '0' then '作废'
+                    when A.value_flag = '1' then '有效-未发布'
+                    when A.value_flag = '2' then '有效-已发布'
+                    else null end valueFlag,
+               case when A.upload_flag = '1' then '未同步'
+                    when A.upload_flag = '2' then '已同步'
+                    else null end uploadFlag,
+               A.check_man_no checkManNo,
+               A.check_man_name checkManName,
+               A.check_time checkTime,
+               A.memo memo
+        from meter_work_railway_actual A
+             left join pre_railway_scale B on A.prediction_no = B.prediction_no
+         where A.railway_type_no in ('001019001')
+               and A.base_spot1_no != base_spot2_no
+        <if test="startTime != null and endTime != null and startTime != '' and endTime != ''">
+            and  A.net_time  >= TO_DATE(#{startTime}, 'yyyy-MM-dd HH24:mi:ss')
+            and A.net_time  &lt;=  TO_DATE(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
+        </if>
+        <if test="railwayNo != null and railwayNo != ''">
+            and A.railway_no like '%${railwayNo}%'
+        </if>
+    </select>
+
+    <select id="rfidIdentifyAnalysisSummarySpot" parameterType="java.util.HashMap"
+            resultType="com.steerinfo.baseinfo.meterbasespotinfo.model.MeterBaseSpotInfo">
+        select C.base_spot_no baseSpotNo, C.base_spot_name baseSpotName
+            from meter_work_carno_identify A
+          left join meter_base_rfid_info B
+            on A.rfid_car_no = B.rfid_code
+          left join meter_work_car_actual_first C
+            on A.actual_first_no = C.actual_first_no
+         where A.car_no_type = '2'
+            <if test="startTime != null and endTime != null and startTime != '' and endTime != ''">
+                and  C.create_time  >= TO_DATE(#{startTime}, 'yyyy-MM-dd HH24:mi:ss')
+                and C.create_time  &lt;=  TO_DATE(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
+            </if>
+         group by C.base_spot_no, C.base_spot_name
+    </select>
+
+    <select id="rfidIdentifyAnalysisSummary" parameterType="java.util.HashMap"
+            resultType="com.steerinfo.meterwork.meterworkdatacount.model.RfidIdentifyAnalysis">
+        select C.base_spot_no baseSpotNo,
+                C.base_spot_name baseSpotName,
+                C.actual_first_no actualFirstNo,
+                C.car_no firstCarNo,
+                C.create_time firstCreateTime,
+                B.car_no rfidInfoCarNo,
+                A.rfid_car_no rfidIdentifyRfidCarNo,
+                A.car_no rfidIdentifyCarNo
+            from meter_work_carno_identify A
+          left join meter_base_rfid_info B
+            on A.rfid_car_no = B.rfid_code
+          left join meter_work_car_actual_first C
+            on A.actual_first_no = C.actual_first_no
+         where A.car_no_type = '2'
+            <if test="startTime != null and endTime != null and startTime != '' and endTime != ''">
+                and  C.create_time  >= TO_DATE(#{startTime}, 'yyyy-MM-dd HH24:mi:ss')
+                and C.create_time  &lt;=  TO_DATE(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
+            </if>
+            <if test="baseSpotNo != null and baseSpotNo != ''">
+                and C.base_spot_no like '%${baseSpotNo}%'
+            </if>
+            <if test="baseSpotName != null and baseSpotName != ''">
+                and C.base_spot_name like '%${baseSpotName}%'
+            </if>
+    </select>
 </mapper>

+ 79 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/model/RfidIdentifyAnalysis.java

@@ -0,0 +1,79 @@
+package com.steerinfo.meterwork.meterworkdatacount.model;
+
+import java.util.Date;
+
+//Rfid识别率统计分析
+public class RfidIdentifyAnalysis {
+    private String baseSpotNo;
+    private String baseSpotName;
+    private String actualFirstNo;
+    private String firstCarNo;
+    private Date firstCreateTime;
+    private String rfidInfoCarNo;
+    private String rfidIdentifyRfidCarNo;
+    private String rfidIdentifyCarNo;
+
+    public String getBaseSpotNo() {
+        return baseSpotNo;
+    }
+
+    public void setBaseSpotNo(String baseSpotNo) {
+        this.baseSpotNo = baseSpotNo;
+    }
+
+    public String getBaseSpotName() {
+        return baseSpotName;
+    }
+
+    public void setBaseSpotName(String baseSpotName) {
+        this.baseSpotName = baseSpotName;
+    }
+
+    public String getActualFirstNo() {
+        return actualFirstNo;
+    }
+
+    public void setActualFirstNo(String actualFirstNo) {
+        this.actualFirstNo = actualFirstNo;
+    }
+
+    public String getFirstCarNo() {
+        return firstCarNo;
+    }
+
+    public void setFirstCarNo(String firstCarNo) {
+        this.firstCarNo = firstCarNo;
+    }
+
+    public Date getFirstCreateTime() {
+        return firstCreateTime;
+    }
+
+    public void setFirstCreateTime(Date firstCreateTime) {
+        this.firstCreateTime = firstCreateTime;
+    }
+
+    public String getRfidInfoCarNo() {
+        return rfidInfoCarNo;
+    }
+
+    public void setRfidInfoCarNo(String rfidInfoCarNo) {
+        this.rfidInfoCarNo = rfidInfoCarNo;
+    }
+
+    public String getRfidIdentifyRfidCarNo() {
+        return rfidIdentifyRfidCarNo;
+    }
+
+    public void setRfidIdentifyRfidCarNo(String rfidIdentifyRfidCarNo) {
+        this.rfidIdentifyRfidCarNo = rfidIdentifyRfidCarNo;
+    }
+
+    public String getRfidIdentifyCarNo() {
+        return rfidIdentifyCarNo;
+    }
+
+    public void setRfidIdentifyCarNo(String rfidIdentifyCarNo) {
+        this.rfidIdentifyCarNo = rfidIdentifyCarNo;
+    }
+}

+ 298 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/model/StaticRailwayRemoteComparison.java

@@ -0,0 +1,298 @@
+package com.steerinfo.meterwork.meterworkdatacount.model;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/*
+    报表:静态轨道衡同车号当日异地计量结净净重核查报表
+ */
+public class StaticRailwayRemoteComparison {
+    private String actualNo;
+    private String railwayNo;
+    private String lcNo;
+    private String predictionNo;
+    private String matterNo;
+    private String matterName;
+    private String forwardingUnitName;
+    private String receivingUintName;
+    private BigDecimal grossWeight;
+    private BigDecimal tareWeight;
+    private BigDecimal netWeight;
+    private BigDecimal theoryAmount;
+    private String meterTypeNo;
+    private String meterTypeName;
+    private String senderRemark;
+    private Date grossTime;
+    private String baseSpot1Name;
+    private String grossMode;
+    private String grossManName;
+    private Date tareTime;
+    private String baseSpot2Name;
+    private String tareMode;
+    private String tareManName;
+    private Date netTime;
+    private String netSpot3Name;
+    private String netManName;
+    private String valueFlag;
+    private String uploadFlag;
+    private String checkManNo;
+    private String checkManName;
+    private Date checkTime;
+    private String memo;
+
+    public String getActualNo() {
+        return actualNo;
+    }
+
+    public void setActualNo(String actualNo) {
+        this.actualNo = actualNo;
+    }
+
+    public String getRailwayNo() {
+        return railwayNo;
+    }
+
+    public void setRailwayNo(String railwayNo) {
+        this.railwayNo = railwayNo;
+    }
+
+    public String getLcNo() {
+        return lcNo;
+    }
+
+    public void setLcNo(String lcNo) {
+        this.lcNo = lcNo;
+    }
+
+    public String getPredictionNo() {
+        return predictionNo;
+    }
+
+    public void setPredictionNo(String predictionNo) {
+        this.predictionNo = predictionNo;
+    }
+
+    public String getMatterNo() {
+        return matterNo;
+    }
+
+    public void setMatterNo(String matterNo) {
+        this.matterNo = matterNo;
+    }
+
+    public String getMatterName() {
+        return matterName;
+    }
+
+    public void setMatterName(String matterName) {
+        this.matterName = matterName;
+    }
+
+    public String getForwardingUnitName() {
+        return forwardingUnitName;
+    }
+
+    public void setForwardingUnitName(String forwardingUnitName) {
+        this.forwardingUnitName = forwardingUnitName;
+    }
+
+    public String getReceivingUintName() {
+        return receivingUintName;
+    }
+
+    public void setReceivingUintName(String receivingUintName) {
+        this.receivingUintName = receivingUintName;
+    }
+
+    public BigDecimal getGrossWeight() {
+        return grossWeight;
+    }
+
+    public void setGrossWeight(BigDecimal grossWeight) {
+        this.grossWeight = grossWeight;
+    }
+
+    public BigDecimal getTareWeight() {
+        return tareWeight;
+    }
+
+    public void setTareWeight(BigDecimal tareWeight) {
+        this.tareWeight = tareWeight;
+    }
+
+    public BigDecimal getNetWeight() {
+        return netWeight;
+    }
+
+    public void setNetWeight(BigDecimal netWeight) {
+        this.netWeight = netWeight;
+    }
+
+    public BigDecimal getTheoryAmount() {
+        return theoryAmount;
+    }
+
+    public void setTheoryAmount(BigDecimal theoryAmount) {
+        this.theoryAmount = theoryAmount;
+    }
+
+    public String getMeterTypeNo() {
+        return meterTypeNo;
+    }
+
+    public void setMeterTypeNo(String meterTypeNo) {
+        this.meterTypeNo = meterTypeNo;
+    }
+
+    public String getMeterTypeName() {
+        return meterTypeName;
+    }
+
+    public void setMeterTypeName(String meterTypeName) {
+        this.meterTypeName = meterTypeName;
+    }
+
+    public String getSenderRemark() {
+        return senderRemark;
+    }
+
+    public void setSenderRemark(String senderRemark) {
+        this.senderRemark = senderRemark;
+    }
+
+    public Date getGrossTime() {
+        return grossTime;
+    }
+
+    public void setGrossTime(Date grossTime) {
+        this.grossTime = grossTime;
+    }
+
+    public String getBaseSpot1Name() {
+        return baseSpot1Name;
+    }
+
+    public void setBaseSpot1Name(String baseSpot1Name) {
+        this.baseSpot1Name = baseSpot1Name;
+    }
+
+    public String getGrossMode() {
+        return grossMode;
+    }
+
+    public void setGrossMode(String grossMode) {
+        this.grossMode = grossMode;
+    }
+
+    public String getGrossManName() {
+        return grossManName;
+    }
+
+    public void setGrossManName(String grossManName) {
+        this.grossManName = grossManName;
+    }
+
+    public Date getTareTime() {
+        return tareTime;
+    }
+
+    public void setTareTime(Date tareTime) {
+        this.tareTime = tareTime;
+    }
+
+    public String getBaseSpot2Name() {
+        return baseSpot2Name;
+    }
+
+    public void setBaseSpot2Name(String baseSpot2Name) {
+        this.baseSpot2Name = baseSpot2Name;
+    }
+
+    public String getTareMode() {
+        return tareMode;
+    }
+
+    public void setTareMode(String tareMode) {
+        this.tareMode = tareMode;
+    }
+
+    public String getTareManName() {
+        return tareManName;
+    }
+
+    public void setTareManName(String tareManName) {
+        this.tareManName = tareManName;
+    }
+
+    public Date getNetTime() {
+        return netTime;
+    }
+
+    public void setNetTime(Date netTime) {
+        this.netTime = netTime;
+    }
+
+    public String getNetSpot3Name() {
+        return netSpot3Name;
+    }
+
+    public void setNetSpot3Name(String netSpot3Name) {
+        this.netSpot3Name = netSpot3Name;
+    }
+
+    public String getNetManName() {
+        return netManName;
+    }
+
+    public void setNetManName(String netManName) {
+        this.netManName = netManName;
+    }
+
+    public String getValueFlag() {
+        return valueFlag;
+    }
+
+    public void setValueFlag(String valueFlag) {
+        this.valueFlag = valueFlag;
+    }
+
+    public String getUploadFlag() {
+        return uploadFlag;
+    }
+
+    public void setUploadFlag(String uploadFlag) {
+        this.uploadFlag = uploadFlag;
+    }
+
+    public String getCheckManNo() {
+        return checkManNo;
+    }
+
+    public void setCheckManNo(String checkManNo) {
+        this.checkManNo = checkManNo;
+    }
+
+    public String getCheckManName() {
+        return checkManName;
+    }
+
+    public void setCheckManName(String checkManName) {
+        this.checkManName = checkManName;
+    }
+
+    public Date getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(Date checkTime) {
+        this.checkTime = checkTime;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+}

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

@@ -17,4 +17,7 @@ public interface IMeterWorkDataCountService{
     PageList<MeasurementAccuracyAnalysis> measurementAccuracyAnalysis(HashMap<String, Object> params);
     PageList<HookTareWeightAndTheoryAmount> hookTareWeightAndTheoryAmount(HashMap<String, Object> params);
     PageList<TwoMillionTareWeightComparison> twoMillionTareWeightComparison(HashMap<String, Object> params);
+    PageList<StaticRailwayRemoteComparison> staticRailwayRemoteComparison(HashMap<String, Object> params);
+    List<HashMap> rfidIdentifyAnalysisSummary(HashMap<String, Object> params);
+    PageList<RfidIdentifyAnalysis> rfidIdentifyAnalysisDetail(HashMap<String, Object> params);
 }

+ 52 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/service/impl/MeterWorkDataCountServiceImpl.java

@@ -925,4 +925,56 @@ public class MeterWorkDataCountServiceImpl implements IMeterWorkDataCountService
         PageList pageInfo = new PageList(rows);
         return pageInfo;
     }
+
+    @Override
+    public PageList<StaticRailwayRemoteComparison> staticRailwayRemoteComparison(HashMap<String, Object> params) {
+        PageHelper.startPage(Integer.parseInt(params.get("pageNum").toString()), Integer.parseInt(params.get("pageSize").toString()));
+        List<StaticRailwayRemoteComparison> rows = meterWorkDataCountMapper.staticRailwayRemoteComparison(params);
+        PageList pageInfo = new PageList(rows);
+        return pageInfo;
+    }
+
+    @Override
+    public List<HashMap> rfidIdentifyAnalysisSummary(HashMap<String, Object> params) {
+        List<MeterBaseSpotInfo> spotModels = meterWorkDataCountMapper.rfidIdentifyAnalysisSummarySpot(params);
+        List<RfidIdentifyAnalysis> rfidIdentifyList = meterWorkDataCountMapper.rfidIdentifyAnalysisSummary(params);
+        List<HashMap> mapList = new ArrayList<>();
+        if(spotModels.size() >= 1) {
+            for(MeterBaseSpotInfo spotModel: spotModels) {
+                long countFirst = 0L;
+                long countIdentifyYes = 0L;
+                long countIdentifyNo = 0L;
+                if(rfidIdentifyList.size() >= 1) {
+                    //一次计量数据总数
+                    countFirst = rfidIdentifyList.stream().filter(item -> item.getBaseSpotNo().equals(spotModel.getBaseSpotNo())
+                            && item.getBaseSpotName().equals(spotModel.getBaseSpotName())
+                            && StringUtils.isNotEmpty(item.getActualFirstNo())).count();
+                    //Rfid识别总数
+                    countIdentifyYes = rfidIdentifyList.stream().filter(item -> item.getBaseSpotNo().equals(spotModel.getBaseSpotNo())
+                            && item.getBaseSpotName().equals(spotModel.getBaseSpotName())
+                            && StringUtils.isNotEmpty(item.getRfidIdentifyRfidCarNo())).count();
+                    //Rfid未识别总数
+                    countIdentifyNo = rfidIdentifyList.stream().filter(item -> item.getBaseSpotNo().equals(spotModel.getBaseSpotNo())
+                            && item.getBaseSpotName().equals(spotModel.getBaseSpotName())
+                            && StringUtils.isEmpty(item.getRfidIdentifyRfidCarNo())).count();
+                }
+                HashMap<String, Object> map = new HashMap<>();
+                map.put("baseSpotNo", spotModel.getBaseSpotNo());
+                map.put("baseSpotName", spotModel.getBaseSpotName());
+                map.put("countFirst", countFirst);
+                map.put("countIdentifyYes", countIdentifyYes);
+                map.put("countIdentifyNo", countIdentifyNo);
+                mapList.add(map);
+            }
+        }
+        return mapList;
+    }
+
+    @Override
+    public PageList<RfidIdentifyAnalysis> rfidIdentifyAnalysisDetail(HashMap<String, Object> params) {
+        PageHelper.startPage(Integer.parseInt(params.get("pageNum").toString()), Integer.parseInt(params.get("pageSize").toString()));
+        List<RfidIdentifyAnalysis> rows = meterWorkDataCountMapper.rfidIdentifyAnalysisSummary(params);
+        PageList pageInfo = new PageList(rows);
+        return pageInfo;
+    }
 }