yourName hace 1 año
padre
commit
754affe850

+ 1 - 1
src/main/java/com/steerinfo/baseinfo/meterbasehistaredetail/mapper/MeterBaseHisTareDetailMapper.xml

@@ -349,7 +349,7 @@
         <include refid="where"></include>
         order by t.meter_time desc
         FETCH NEXT 7 ROWS ONLY
-      ) order by METER_WEIGHT desc
+      )
     </select>
 
 </mapper>

+ 2 - 0
src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredata/mapper/MeterBaseRailwayHisTareDataMapper.java

@@ -1,5 +1,6 @@
 package com.steerinfo.baseinfo.meterbaserailwayhistaredata.mapper;
 
+import com.steerinfo.baseinfo.meterbasehistaredetail.model.MeterBaseHisTareDetail;
 import com.steerinfo.baseinfo.meterbaserailwayhistaredata.model.MeterBaseRailwayHisTareData;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -7,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Mapper
 public interface MeterBaseRailwayHisTareDataMapper extends IBaseMapper<MeterBaseRailwayHisTareData, String> {

+ 3 - 0
src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredetail/mapper/MeterBaseRailwayHisTareDetailMapper.java

@@ -1,5 +1,6 @@
 package com.steerinfo.baseinfo.meterbaserailwayhistaredetail.mapper;
 
+import com.steerinfo.baseinfo.meterbasehistaredetail.model.MeterBaseHisTareDetail;
 import com.steerinfo.baseinfo.meterbaserailwayhistaredetail.model.MeterBaseRailwayHisTareDetail;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -12,4 +13,6 @@ import java.util.Map;
 public interface MeterBaseRailwayHisTareDetailMapper extends IBaseMapper<MeterBaseRailwayHisTareDetail, String> {
     String getNewID(@Param(value="afl")String afl);
     List<MeterBaseRailwayHisTareDetail> selectByParameter(Map<String, Object> parameters);
+
+    List<MeterBaseRailwayHisTareDetail> selectByParametersTop(Map<String, Object> map1);
 }

+ 9 - 0
src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredetail/mapper/MeterBaseRailwayHisTareDetailMapper.xml

@@ -348,4 +348,13 @@
     <include refid="where"/>
     order by meter_time desc
   </select>
+    <select id="selectByParametersTop"
+            resultMap="BaseResultMap">
+      select * from (
+        select * from METER_BASE_RAILWAY_HIS_TARE_DETAIL t
+        <include refid="where"></include>
+        order by t.meter_time desc
+        FETCH NEXT 3 ROWS ONLY
+      )
+    </select>
 </mapper>

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

@@ -445,7 +445,7 @@
     select
     A.base_spot_name baseSpotName,
             A.car_no carNo,
-           case when abs(round((A.meter_weight - B.avg_weight)/1000, 2)) >= (select to_number(BASE_NAME)/1000 from com_base_info where BASE_CODE = '001067001' ) then '皮重超过偏差'
+           case when abs(round((A.meter_weight - B.avg_weight)/1000, 2)) > (select to_number(BASE_NAME)/1000 from com_base_info where BASE_CODE = '001067001' ) then '皮重超过偏差'
                 else '正常皮重' end alarmType,
            round(A.meter_weight/1000, 2) meterWeight,
            round(B.avg_weight/1000, 2) avgWeight,
@@ -486,10 +486,10 @@
         </if>
         <if test="alarmType != null and alarmType != ''">
             <if test="alarmType == 0">
-                and  abs(round((A.meter_weight - B.avg_weight)/1000, 2)) >= 0.5
+                and  abs(round((A.meter_weight - B.avg_weight)/1000, 2)) > (select to_number(BASE_NAME)/1000 from com_base_info where BASE_CODE = '001067001' )
             </if>
             <if test="alarmType == 1">
-                and  abs(round((A.meter_weight - B.avg_weight)/1000, 2)) &lt; 0.5
+                and  abs(round((A.meter_weight - B.avg_weight)/1000, 2)) &lt;= (select to_number(BASE_NAME)/1000 from com_base_info where BASE_CODE = '001067001' )
             </if>
         </if>
         <if test="carNo != null and carNo != ''">

+ 45 - 4
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java

@@ -1,6 +1,7 @@
 package com.steerinfo.meterwork.meterworkrailwayactfirst.service.impl;
 
 import com.steerinfo.baseinfo.combaseinfo.mapper.ComBaseInfoMapper;
+import com.steerinfo.baseinfo.meterbasehistaredetail.model.MeterBaseHisTareDetail;
 import com.steerinfo.baseinfo.meterbasematterunitmixedloadunloadtime.mapper.MeterBaseMatterUnitMixedLoadUnloadTimeMapper;
 import com.steerinfo.baseinfo.meterbasematterunitmixedloadunloadtime.model.MeterBaseMatterUnitMixedLoadUnloadTime;
 import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
@@ -30,6 +31,7 @@ import com.steerinfo.meterwork.dto.CommonCombination;
 import com.steerinfo.meterwork.dto.StaffPerformanceAnalysis;
 import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
+import com.steerinfo.meterwork.meterworkcaractualfirst.service.impl.MeterWorkCarActualFirstServiceImpl;
 import com.steerinfo.meterwork.meterworkimage.mapper.MeterWorkImageMapper;
 import com.steerinfo.meterwork.meterworkimage.model.MeterWorkImage;
 import com.steerinfo.meterwork.meterworkrailwayactfirst.mapper.MeterWorkRailwayActFirstMapper;
@@ -50,6 +52,8 @@ import com.steerinfo.pretrack.prerailwayscale.model.PreRailwayScale;
 import com.steerinfo.util.FieldsCollector;
 import com.steerinfo.util.PublicMethod;
 import com.steerinfo.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -134,6 +138,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
     @Resource
     private MeterBaseRailwayHisTareDetailMapper meterBaseRailwayHisTareDetailMapper;
 
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkRailwayActFirstServiceImpl.class );
+
+
     @Override
     protected IBaseMapper<MeterWorkRailwayActFirst, String> getMapper() {
         return meterWorkRailwayActFirstMapper;
@@ -5154,9 +5161,26 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             hisTareData.setUpdateManName(model.getCreateManName());
             hisTareData.setUpdateManNo(model.getCreateManNo());
             hisTareData.setUpdateTime(model.getCreateTime());
-            hisTareData.setTareType("1");
+            //hisTareData.setTareType("1");
+            //查询前几次皮重
+            double meterWeight = 0.0;
+            try {
+                MeterBaseRailwayHisTareDetail mbhtd = new MeterBaseRailwayHisTareDetail();
+                mbhtd.setCarNo(model.getRailwayNo());
+                Map<String, Object> map1 = FieldsCollector.beanToMap(mbhtd);
+                List<MeterBaseRailwayHisTareDetail> lmd = meterBaseRailwayHisTareDetailMapper.selectByParametersTop(map1);
+                if(lmd!=null&&lmd.size()!=0){
+                    double sum = 0.0;
+                    for (MeterBaseRailwayHisTareDetail meterBaseRailwayHisTareDetail : lmd) {
+                        sum+=meterBaseRailwayHisTareDetail.getMeterWeight();
+                    }
+                    meterWeight = sum / lmd.size();
+                }
+            } catch (Exception e) {
+                logger.error("计算平均皮重出错", e);
+            }
             //  (之前的重量*次数)/(次数+1)
-            double meterWeight = (tareOne.get(0).getAvgWeight() * tareOne.get(0).getMeterNum() + model.getMeterWeight().longValue()) / (tareOne.get(0).getMeterNum() + 1);
+            //double meterWeight = (tareOne.get(0).getAvgWeight() * tareOne.get(0).getMeterNum() + model.getMeterWeight().longValue()) / (tareOne.get(0).getMeterNum() + 1);
             hisTareData.setAvgWeight(Math.round(meterWeight));//平均皮重
             hisTareData.setMeterNum(tareOne.get(0).getMeterNum() + 1);
             meterBaseRailwayHisTareDataMapper.updateByPrimaryKeySelective(hisTareData);
@@ -5206,7 +5230,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         hisTareData.setValueFlag("0");
         hisTareData.setTareType(tareType);
         Map<String, Object> map = FieldsCollector.beanToMap(hisTareData);
-        List<MeterBaseRailwayHisTareData> tareOne = meterBaseRailwayHisTareDataMapper.selectByParameters(map);
+        List<MeterBaseRailwayHisTareData> tareOne = meterBaseRailwayHisTareDataMapper   .selectByParameters(map);
         if (tareOne.size() >= 1) {   //已有历史皮重
             hisTareData.setDataNo(tareOne.get(0).getDataNo());
             hisTareData.setBaseSpotNo(model.getBaseSpotNo());
@@ -5218,8 +5242,25 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             hisTareData.setUpdateManName(model.getCreateManName());
             hisTareData.setUpdateManNo(model.getCreateManNo());
             hisTareData.setUpdateTime(model.getCreateTime());
+            //查询前几次皮重
+            double meterWeight = 0.0;
+            try {
+                MeterBaseRailwayHisTareDetail mbhtd = new MeterBaseRailwayHisTareDetail();
+                mbhtd.setCarNo(model.getRailwayNo());
+                Map<String, Object> map1 = FieldsCollector.beanToMap(mbhtd);
+                List<MeterBaseRailwayHisTareDetail> lmd = meterBaseRailwayHisTareDetailMapper.selectByParametersTop(map1);
+                if(lmd!=null&&lmd.size()!=0){
+                    double sum = 0.0;
+                    for (MeterBaseRailwayHisTareDetail meterBaseRailwayHisTareDetail : lmd) {
+                        sum+=meterBaseRailwayHisTareDetail.getMeterWeight();
+                    }
+                    meterWeight = sum / lmd.size();
+                }
+            } catch (Exception e) {
+                logger.error("计算平均皮重出错", e);
+            }
             //  (之前的重量*次数)/(次数+1)
-            double meterWeight = (tareOne.get(0).getAvgWeight() * tareOne.get(0).getMeterNum() + model.getMeterWeight().longValue()) / (tareOne.get(0).getMeterNum() + 1);
+            //double meterWeight = (tareOne.get(0).getAvgWeight() * tareOne.get(0).getMeterNum() + model.getMeterWeight().longValue()) / (tareOne.get(0).getMeterNum() + 1);
             hisTareData.setAvgWeight(Math.round(meterWeight));//平均皮重
             hisTareData.setMeterNum(tareOne.get(0).getMeterNum() + 1);
             hisTareData.setTareType(tareType);