luobang 2 lat temu
rodzic
commit
313b5c55f8

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

@@ -147,4 +147,6 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     Map<String,Object> getWeightAndSaleMaterialId(Map<String, Object> map);
 
+    BigDecimal getWeightTaskIdCopy(BigDecimal resultTotalId);
+
 }

+ 10 - 3
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -284,10 +284,17 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             tmstruckWeightResultMapper.updateSaleMaterialId(saleMaterialId,materialNum,newWeight);
         }else{
             //根据运单id查询其中一个物资id,确保报表能有数据
-            BigDecimal materialId = tmstruckWeightResultMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-            if (materialId != null) {
-                tmstruckWeightResult.setMaterialId(materialId);
+            //查询没有净重的,不影响之前代码
+            BigDecimal weightTaskIdCopy = tmstruckWeightResultMapper.getWeightTaskIdCopy(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+            if(weightTaskIdCopy == null) {
+                BigDecimal saleMaterialIds = tmstruckWeightResultMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+                if (saleMaterialIds != null) {
+                    tmstruckWeightResult.setSaleMaterialId(saleMaterialIds);
+                }
+            }else{
+                tmstruckWeightResult.setWeightTaskResultId(weightTaskIdCopy);
             }
+
         }
         addWeightResult(tmstruckWeightResult, map); //添加计量实绩数据
         // 更新订单中路段顺序号,如果毛重时间为空则为计皮:也就是销售第一次计皮,反之有毛重时间则为计毛

+ 12 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1194,14 +1194,15 @@
         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
+        SELECT OOM.SALE_MATERIAL_ID FROM OMSTRUCK_ORDER_MATERIAL OOM
         WHERE
             nvl(OOM.MATERIAL_PRIORITY,0) != 71
         AND OOM.ORDER_ID = #{orderId}
-        AND OOM.MATERIAL_ID NOT IN (SELECT nvl(TWR.MATERIAL_ID,0) FROM TMSTRUCK_TOTAL_RESULT TTR
+        AND OOM.SALE_MATERIAL_ID NOT IN (SELECT nvl(TWR.SALE_MATERIAL_ID,0) FROM TMSTRUCK_TOTAL_RESULT TTR
             LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
             ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-            WHERE TTR.ORDER_ID = #{orderId})
+            WHERE TTR.ORDER_ID = #{orderId}
+            AND TWR.RESULT_NET_WEIGHT IS NULL)
         FETCH FIRST 1 row only
     </select>
     <select id="getIsSelfMention" resultType="java.lang.String" parameterType="map">
@@ -1300,4 +1301,12 @@
         AND TWR.RESULT_NET_WEIGHT IS NULL
         AND TWR.SALE_MATERIAL_ID IS NOT NULL
     </select>
+    <select id="getWeightTaskIdCopy" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT TWR.WEIGHT_TASK_RESULT_ID FROM TMSTRUCK_WEIGHT_RESULT TWR
+        WHERE TWR.RESULT_TOTAL_ID = #{resultTotalId}
+        AND TWR.RESULT_NET_WEIGHT IS NULL
+        AND TWR.SALE_MATERIAL_ID IS NOT NULL
+        ORDER BY TWR.WEIGHT_TASK_RESULT_ID
+        FETCH FIRST 1 ROW ONLY
+    </select>
 </mapper>