txf 3 anni fa
parent
commit
1514c27666

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

@@ -87,7 +87,7 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
     TangXiaoFeng
      */
     //通过物资ID和总实绩Id查询唯一的装车实绩Id
-    Map<String, Object> getLoadResultIdByMIdAndTotalId(@Param("resultTotalId") Integer resultTotalId, @Param("materialId") Integer materialId);
+    Map<String, Object> getLoadResultIdByMIdAndTotalId(Map<String, Object> map);
 
     //通过物资ID和订单Id查询唯一的装车实绩Id
     Integer getLoadIdByOrderIdAndMId(Map<String, Object> map);

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

@@ -32,7 +32,7 @@ public interface TmstruckUnloadResultMapper extends IBaseMapper<TmstruckUnloadRe
     BigDecimal getResultIdByTotalId(BigDecimal totalId);
 
     //通过运输订单号查询 实绩Id 和总实绩Id
-    Map<String, Object> selectTotalIdByOrderNo(String orderNumber);
+    Map<String, Object> selectUnloadMesByOrderNo(Map<String, Object> map);
 
     //通过卸货地点查询仓库Id
     BigDecimal getWarehouseIdByWName(String warehouseName);

+ 8 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -152,7 +152,7 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
         map.put("resultTotalId", resultTotalId.intValue());
         //通过总实绩ID与物资ID查找 装车实绩主键ID
-        Map<String, Object> resultIdMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), materialId.intValue());
+        Map<String, Object> resultIdMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(null);
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
         tmstruckLoadResult.setStatus(new BigDecimal(0)); // 添加状态0:正常
         //编辑装车实绩主键ID对应的各个字段
@@ -222,13 +222,19 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         }
         //如果是零星多拼订单 需要查询这个物资是否已经装过了
         if(orderType == 12 || orderType == 13){
+            mesMap.put("updateUnloadResult", 1);
             Integer checkMaterial = tmstruckLoadResultMapper.checkMaterialIdLoad(resultTotalId, DataChange.dataToBigDecimal(map.get("materialId")));
             if(checkMaterial != null){
                 return -2;
             }
         }
+        Map<String, Object> dataMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(mesMap);
+        if(dataMap == null){
+            mesMap.put("updateUnloadResult", 1);
+            dataMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(mesMap);
+        }
         //查询装车实绩ID
-        map.putAll(tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), null));
+        map.putAll(dataMap);
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
         tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
         tmstruckLoadResult.setStatus(new BigDecimal(0));

+ 7 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -167,12 +167,18 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         }
         //如果是零星多拼订单 需要查询这个物资是否已经卸过了
         if(orderType == 12 || orderType == 13){
+            map.put("updateLoadResult", 1); //需要路段顺序号查询
             Integer checkMaterial = tmstruckUnloadResultMapper.checkMaterialIdUnload(DataChange.dataToBigDecimal(mesMap.get("totalId")), DataChange.dataToBigDecimal(map.get("materialId")));
             if(checkMaterial != null){
                 return -2;
             }
         }
-        map.putAll(tmstruckUnloadResultMapper.selectTotalIdByOrderNo((String) map.get("orderNumber")));
+        Map<String, Object> dataMap = tmstruckUnloadResultMapper.selectUnloadMesByOrderNo(map);
+        if(dataMap == null){
+            map.put("updateLoadResult", 1); //二次重复装货
+            dataMap = tmstruckUnloadResultMapper.selectUnloadMesByOrderNo(map);
+        }
+        map.putAll(dataMap);
         updateUnloadResultBy(map); //更新卸货实绩
         //路段顺序号 + 1
         utilsService.updateOrderLineSequence(map);

+ 5 - 2
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -1116,14 +1116,17 @@
   </select>
 
   <!--  通过物资ID和总实绩Id查询唯一的装车实绩Id  -->
-  <select id="getLoadResultIdByMIdAndTotalId" parameterType="int" resultType="java.util.Map">
+  <select id="getLoadResultIdByMIdAndTotalId" parameterType="java.util.Map" resultType="java.util.Map">
     select
     *
     from(
     select TLR.RESULT_ID "resultId",
     TLR.SEGMENT_SQE "segmentSqe"
     from TMSTRUCK_LOAD_RESULT TLR
-    where TLR.RESULT_TOTAL_ID = #{resultTotalId} and TLR.RESULT_LOAD_END_TIME is null
+    where TLR.RESULT_TOTAL_ID = #{resultTotalId}
+      <if test="updateUnloadResult != null">
+        and TLR.RESULT_LOAD_END_TIME is null
+      </if>
      order by TLR.SEGMENT_SQE
     )
     where rownum = 1

+ 4 - 2
src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml

@@ -655,7 +655,7 @@
     </select>
 
     <!--  通过运输订单号 查询实绩Id、总实绩ID -->
-    <select id="selectTotalIdByOrderNo" parameterType="java.lang.String" resultType="java.util.Map">
+    <select id="selectUnloadMesByOrderNo" parameterType="java.util.Map" resultType="java.util.Map">
         select *
         from (
                  select OO.ORDER_ID         "orderId",
@@ -673,7 +673,9 @@
                           left join RMS_CAPACITY RC
                                     on RC.CAPACITY_ID = OO.CAPACITY_ID
                  where OO.ORDER_NUMBER = #{orderNumber}
-                   and TUR.RESULT_END_TIME is null
+                   <if test="updateLoadResult != null">
+                       and TUR.RESULT_END_TIME is null
+                   </if>
                  order by TUR.SEGMENT_SQE
              )
         where rownum = 1