luobang il y a 1 an
Parent
commit
a39f4abe82

+ 3 - 1
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -134,7 +134,7 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     int updateOrderPlanId(BigDecimal jlOrderId, BigDecimal wlSaleOrderMaterialId);
 
-    int updateOrderMaterialId(BigDecimal jlOrderId);
+    int updateOrderMaterialId(BigDecimal jlOrderId,BigDecimal saleMaterialId);
 
     BigDecimal selectNewPlanId(Map<String, Object> mesMap);
 
@@ -184,4 +184,6 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     int updateWeightResultToNull(BigDecimal weightBatchId);
 
+    BigDecimal getSaleMaterialIdByAId(BigDecimal jlSaleOrderMaterialId);
+
 }

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

@@ -1019,12 +1019,15 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                         BigDecimal jlSaleOrderMaterialId = tmstruckWeightResultMapper.getJlSaleOrderMaterialId(map);
                         BigDecimal wlSaleOrderMaterialId = tmstruckWeightResultMapper.getWlSaleOrderMaterialId(map);
                         BigDecimal wlOrderId = tmstruckWeightResultMapper.getJlOrderId(wlSaleOrderMaterialId);
-                        if(jlSaleOrderMaterialId != null) {
+                        if(jlSaleOrderMaterialId != null && wlSaleOrderMaterialId != null && jlSaleOrderMaterialId.compareTo(wlSaleOrderMaterialId) != 0) {
                             //如果车序号子表存在,判断拼数是否相同
                             BigDecimal jlSpell = tmstruckWeightResultMapper.getJlSpell(jlSaleOrderMaterialId);
                             BigDecimal wlSpell = tmstruckWeightResultMapper.getWlSpell(map);
                             //如果拼数相同,则继续更换运单,否则返回
-                            if (jlSpell.compareTo(wlSpell) == 0) {
+                            if (jlSpell.intValue() == 1 && jlSpell.compareTo(wlSpell) == 0) {
+                                //查询计量对应的物流分录ID
+                                BigDecimal jlSaleMaterialId = tmstruckWeightResultMapper.getSaleMaterialIdByAId(jlSaleOrderMaterialId);
+                                BigDecimal wlSaleMaterialId = tmstruckWeightResultMapper.getSaleMaterialIdByAId(wlSaleOrderMaterialId);
                                //判断正确的车序号主键有没有派车
                                 BigDecimal jlOrderId = tmstruckWeightResultMapper.getJlOrderId(jlSaleOrderMaterialId);
                                 if(jlOrderId != null) {
@@ -1032,16 +1035,17 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                                     tmstruckWeightResultMapper.updateOrderPlanId(jlOrderId,wlSaleOrderMaterialId);
                                     tmstruckWeightResultMapper.updateOrderPlanId(wlOrderId,jlSaleOrderMaterialId);
                                     //清空运输订单子表的某个数据
-                                    tmstruckWeightResultMapper.updateOrderMaterialId(jlOrderId);
-                                    tmstruckWeightResultMapper.updateOrderMaterialId(wlOrderId);
+                                    tmstruckWeightResultMapper.updateOrderMaterialId(jlOrderId,wlSaleMaterialId);
+                                    tmstruckWeightResultMapper.updateOrderMaterialId(wlOrderId,jlSaleMaterialId);
                                 }else{
                                     tmstruckWeightResultMapper.updateOrderPlanId(wlOrderId,jlSaleOrderMaterialId);
-                                    tmstruckWeightResultMapper.updateOrderMaterialId(wlOrderId);
+                                    tmstruckWeightResultMapper.updateOrderMaterialId(wlOrderId,jlSaleMaterialId);
                                 }
                             }
                         }else {
                             //如果对不上,那么就将运输订单里面的状态变一下
-                            tmstruckWeightResultMapper.updateOmsRedQrCode(map);
+                            //tmstruckWeightResultMapper.updateOmsRedQrCode(map);
+                            return true;
                         }
                         //根据分录ID查询车序号
                         utilsService.pushMesToWebsocket((String) map.get("carNo"), "计量");

+ 9 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1107,7 +1107,10 @@
         ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
         LEFT JOIN AMS_SALE_MATERIAL ASM
         ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN AMS_SALE_ORDER ASO
+        ON ASO.SALE_ORDER_ID = ASM.SALE_ORDER_ID
         WHERE OO.ORDER_STATUS = 5
+        AND ASO.SALE_ORDER_ISSELF_MENTION = '是'
         AND OO.ORDER_NUMBER = #{orderNumber}
         AND ASM.EAS_PRIMARY_ID = #{flId}
     </select>
@@ -1254,7 +1257,7 @@
     </update>
     <update id="updateOrderMaterialId">
         UPDATE OMSTRUCK_ORDER_MATERIAL OOM
-        SET OOM.SALE_MATERIAL_ID = null
+        SET OOM.SALE_MATERIAL_ID = #{saleMaterialId}
         WHERE OOM.ORDER_ID = #{jlOrderId}
     </update>
 
@@ -1534,6 +1537,7 @@
              )
         where rownum = 1
     </select>
+
     <update id="updateQuitSaleMaterialId">
         UPDATE TMSTRUCK_WEIGHT_RESULT TWR
         SET TWR.SALE_MATERIAL_ID = NULL
@@ -1562,4 +1566,8 @@
         WHERE TWR.SALE_MATERIAL_ID IN (select asm.SALE_MATERIAL_ID from AMS_SALE_MATERIAL ASM
             where asm.WEIGHT_BATCH_ID = #{weightBatchId})
     </update>
+    <select id="getSaleMaterialIdByAId" resultType="java.math.BigDecimal">
+        SELECT ASTM.MATERIAL_ID FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+        WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{jlSaleOrderMaterialId}
+    </select>
 </mapper>