luobang 2 سال پیش
والد
کامیت
12dd67172d

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -117,4 +117,6 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     int updateOrderLineSqeBySqe(BigDecimal orderId, Integer orderLineSqe);
 
+    BigDecimal getMaterialIdByOrderId(BigDecimal orderId);
+
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -230,6 +230,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         }
         //根据传输过来的物资名称和规格型号
         Object resultNetWeight = map.get("resultNetWeight");
+
         if(resultNetWeight  != null && !"".equals(resultNetWeight)) {
             BigDecimal materialId = tmstruckWeightResultMapper.getMaterialId(map);
             if(materialId == null){
@@ -261,6 +262,12 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             }
             tmstruckWeightResultMapper.updateOrderMaterial(map);
             tmstruckWeightResultMapper.updateSaleMaterialId(saleMaterialId,materialNum,newWeight);
+        }else{
+            //根据运单id查询其中一个物资id,确保报表能有数据
+            BigDecimal materialId = tmstruckWeightResultMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+            if (materialId != null) {
+                tmstruckWeightResult.setMaterialId(materialId);
+            }
         }
         addWeightResult(tmstruckWeightResult, map); //添加计量实绩数据
         // 更新订单中路段顺序号,如果毛重时间为空则为计皮:也就是销售第一次计皮,反之有毛重时间则为计毛

+ 7 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1151,4 +1151,11 @@
         ORDER BY TWR.GROSS_SEGMENT_SQE DESC
         FETCH FIRST 1 ROWS ONLY
     </select>
+    <select id="getMaterialIdByOrderId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT OOM.MATERIAL_ID FROM OMSTRUCK_ORDER_MATERIAL OOM
+        WHERE
+            nvl(OOM.MATERIAL_PRIORITY,0) != 71
+        AND OOM.ORDER_ID = #{orderId}
+        FETCH FIRST 1 row only
+    </select>
 </mapper>