luobang 2 роки тому
батько
коміт
1a9aaeaea2

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/AmsSaleOrderMapper.java

@@ -168,4 +168,7 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     BigDecimal getMoreCarrier(String place);
 
     Map<String,Object> getOrderIdByCapacity(Map<String,Object> map);
+
+    Map<String, Object> getOrderMes(Map<String, Object> mapValue);
+
 }

+ 14 - 2
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -3,11 +3,9 @@ package com.steerinfo.dil.mapper;
 import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -30,4 +28,18 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     List<Map<String, Object>> findMaxPriceId(Map<String, Object> priceMap);
 
     String findCarNumberByOrderId(BigDecimal orderId);
+
+    int deleteWeightResult(BigDecimal resultTotalId);
+
+    //删除装货实绩
+    int deleteLoadResult(BigDecimal resultTotalId);
+
+    //删除出厂实绩
+    int deleteLeaveResult(BigDecimal resultTotalId);
+
+    //删除进厂实绩
+    int deleteEnResult(BigDecimal resultTotalId);
+
+    BigDecimal getOldCapacityId(BigDecimal orderId);
+
 }

+ 21 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -1714,8 +1714,29 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     public int updateCapacityNumberInFactory(Map<String, Object> mapValue) {
         Object lineSequence = mapValue.get("lineSequence");
         int result = 0;
+        //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
+        BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+        if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0){
+            return 0;
+        }
         if (lineSequence == null || "0".equals(lineSequence.toString()) || "1".equals(lineSequence.toString()) || "2".equals(lineSequence.toString())) {
+            //这是修改车牌号
             result += amsSaleOrderMapper.updateCapacityNumberInFactory(mapValue);
+            //若是接单之后还需要删除实绩且将状态变为4
+            //查询运输订单的状态和总实绩ID
+            Map<String, Object> orderMesMap = amsSaleOrderMapper.getOrderMes(mapValue);
+            BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMesMap.get("resultTotalId"));
+            if(DataChange.dataToBigDecimal(orderMesMap.get("orderStatus")).intValue() == 5){
+                OmstruckOrder omstruckOrder = new OmstruckOrder();
+                omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                omstruckOrder.setOrderStatus(new BigDecimal(4));
+                omstruckOrder.setOrderLineSequence(new BigDecimal(0));
+                result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                result += omstruckOrderMapper.deleteEnResult(resultTotalId);
+                result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
+                result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
+                result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
+            }
         }
         return result;
     }

+ 18 - 2
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml

@@ -1960,6 +1960,7 @@
     where a_s_order.SALE_ORDER_STATUS in (2,4)
     and a_s_order.CLOSE_STATUS is null
     and ASM.DELETED IS NULL
+    and ASM.SALE_MATERIAL_ID IS NOT NULL
     <if test="con != null">
       and (instr(r_consignee.CONSIGNEE_COMPANY_NAME, #{con}) > 0 or instr(a_s_order.SALE_NUMBER, #{con}) > 0)
     </if>
@@ -2514,6 +2515,7 @@
     AND OO.ORDER_ID IS NULL
     AND ADSO.DISPATCH_ID IS NOT NULL
     AND ASM.DELETED IS NULL
+    AND ASM.SALE_MATERIAL_ID IS NOT NULL
     ORDER BY ASOM.SALE_ORDER_MATERIAL_TRUCK_NO ASC
   </select>
 
@@ -2601,6 +2603,7 @@
     and ADSO.DISPATCH_TYPE = 2
     and OO.ORDER_ID IS NULL
     AND ASM.DELETED IS NULL
+    AND ASM.SALE_MATERIAL_ID IS NOT NULL
     <if test="oneDate != null">
       and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = a_s_order.INSERT_TIME
     </if>
@@ -2908,6 +2911,7 @@
     AND ADSO.CARRIER_ID IS NULL
     AND ASO.DELETED = 0
     AND ASM.DELETED IS NULL
+    AND ASM.SALE_MATERIAL_ID IS NOT NULL
     <if test="oneDate != null">
       and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = ASO.INSERT_TIME
     </if>
@@ -3067,6 +3071,7 @@
     AND OO.ORDER_ID IS NULL
     AND ASO.DELETED = 0
     AND ASM.DELETED IS NULL
+    AND ASM.SALE_MATERIAL_ID IS NOT NULL
     <if test="oneDate != null">
       and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = ASO.INSERT_TIME
     </if>
@@ -3201,6 +3206,7 @@
            LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
                      ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
     WHERE ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    and ASM.SALE_MATERIAL_ID IS NOT NULL
     ORDER BY ASOM.SALE_ORDER_MATERIAL_TRUCK_NO ASC
   </select>
 
@@ -3442,7 +3448,8 @@
                      ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
            LEFT JOIN RMS_RECEIVE_ADDRESS RRA
                      ON RRA.ADDRESS_ID = RRP.ADDRESS_ID
-    WHERE ASO.SALE_ORDER_ID = #{saleOrderId}
+    WHERE asm.SALE_MATERIAL_ID is not null
+    and   ASO.SALE_ORDER_ID = #{saleOrderId}
   </select>
 
   <select id="matchingAddressRecently" parameterType="DECIMAL" resultType="java.util.LinkedHashMap" >
@@ -4206,7 +4213,8 @@
   <!-- 修改厂内未装货车辆的运单车牌号 -->
   <update id="updateCapacityNumberInFactory" parameterType="java.util.Map" >
     UPDATE OMSTRUCK_ORDER OO
-    SET OO.CAPACITY_ID = #{capacityId}
+    SET OO.CAPACITY_ID = #{capacityId},
+        OO.insert_update_remark = '修改车牌号'
     WHERE OO.ORDER_ID = #{orderId}
   </update>
   <update id="bindSaleArea">
@@ -4566,4 +4574,12 @@
     where RC.CAPACITY_NUMBER=#{capacityNumber} and OO.order_status=5
       fetch next 1 rows only
   </select>
+  <select id="getOrderMes" resultType="java.util.Map" parameterType="java.util.Map">
+    SELECT TTR.RESULT_TOTAL_ID "resultTotalId",
+           OO.ORDER_STATUS "orderStatus"
+           FROM OMSTRUCK_ORDER OO
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.ORDER_ID = OO.ORDER_ID
+    WHERE OO.ORDER_ID = #{orderId}
+  </select>
 </mapper>

+ 1 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -827,6 +827,7 @@
            LEFT JOIN AMS_SALE_MATERIAL ASM
                      ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
     WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+            AND ASM.SALE_MATERIAL_ID IS NOT NULL
   </select>
 
   <update id="updateSendStation">

+ 26 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -864,4 +864,30 @@
                            ON RC.CAPACITY_ID = OO.CAPACITY_ID
         WHERE OO.ORDER_ID = #{orderId}
     </select>
+    <select id="getOldCapacityId" resultType="java.math.BigDecimal" parameterType="decimal">
+        SELECT OO.CAPACITY_ID FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+
+    <delete id="deleteWeightResult" parameterType="java.math.BigDecimal">
+        delete from TMSTRUCK_WEIGHT_RESULT
+        where RESULT_TOTAL_ID = #{resultTotalId}
+    </delete>
+    <!-- 删除装车实绩   -->
+    <delete id="deleteLoadResult" parameterType="java.math.BigDecimal">
+        delete from TMSTRUCK_LOAD_RESULT
+        where RESULT_TOTAL_ID = #{resultTotalId}
+    </delete>
+
+    <!--  删除出厂实绩-->
+    <delete id="deleteLeaveResult" parameterType="java.math.BigDecimal">
+        delete from TMSTRUCK_LEAVE_FACTORY_RESULT
+        where RESULT_TOTAL_ID = #{resultTotalId}
+    </delete>
+
+    <!--删除进厂实绩-->
+    <delete id="deleteEnResult" parameterType="java.math.BigDecimal">
+        delete from TMSTRUCK_ENFACTORY_RESULT
+        where RESULT_TOTAL_ID = #{resultTotalId}
+    </delete>
 </mapper>