luobang vor 2 Jahren
Ursprung
Commit
d5f1522672

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

@@ -164,4 +164,7 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     BigDecimal selectSaleAreaIdByName(String saleArea);
 
     int bindSaleArea(@Param("receiveId") BigDecimal receiveId, @Param("saleAreaId") BigDecimal saleAreaId);
+
+    BigDecimal getMoreCarrier(String place);
+
 }

+ 5 - 1
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -647,8 +647,12 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 if (amsSaleOrderMaterial.getSaleShippingAddressId() != null && isSelfMention.equals("否")) {
                     // 自动匹配承运商
                     List<Map<String, Object>> carrierList = getCarrierByAddress(amsSaleOrderMaterial.getSaleShippingAddressId());
+                    BigDecimal carrierCount = null;
+                    if(place != null && !"null".equals(place)){
+                        carrierCount = amsSaleOrderMapper.getMoreCarrier("%" + place + "%");
+                    }
                     // 单一承运商才进行匹配
-                    if (carrierList != null && carrierList.size() == 1) {
+                    if (carrierList != null && carrierList.size() == 1 && carrierCount == null) {
                         List<Map<String, Object>> list = new ArrayList<>();
                         Map<String, Object> map1 = carrierList.get(0);
                         // 传入车序号主键和承运商id

+ 103 - 68
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml

@@ -2218,80 +2218,111 @@
   <select id="getSaleOrderAndMaterialById" resultType="java.util.Map" parameterType="java.util.Map">
     SELECT *
     FROM (
-    select ASO.SALE_ORDER_ID as "saleOrderId",
-    ASM.SALE_MATERIAL_ID as "saleMaterialId",
-    RM.MATERIAL_ID as "materialId",
-    ASO.SALE_NUMBER as "saleNumber",
-    ASO.SALE_ORDER_ISSELF_MENTION as "saleOrderIsselfMention",
-    ASO.SALE_REMARK as "saleRemark",
-    RS.SHIPPER_NAME as "shipperName",
-    RC.CONSIGNEE_COMPANY_NAME as "consigneeCompanyName",
-    RM.MATERIAL_NAME as "materialName",
-    ASM.MATERIAL_NUMBER as "materialNumber",
-    ASM.MATERIAL_WEIGHT as "materialWeight",
-    ASM.SALE_WAREHOUSE as "saleWareHouse",
-    RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL as "specificationModel",
-    RM.MATERIAL_CODE as "materialCode",
-    nvl(sumWeight.weight,0)+nvl(sumWeight2.weight,0) as "totalWeight",
-    nvl(sumWeight.weight ,0) as "netWeight",
-    nvl(sumWeight2.weight ,0) as "weight",
-    nvl(carCount.coun ,0) as "carCount"
-    from AMS_SALE_ORDER ASO
-    left join RMS_SHIPPER RS
-    on ASO.SHIPPER_ID = RS.SHIPPER_ID
-    left join RMS_CONSIGNEE RC
-    on ASO.RECEIVE_ID = RC.CONSIGNEE_ID
-    left join AMS_SALE_MATERIAL ASM
-    on ASM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-    left join RMS_MATERIAL RM
-    on RM.MATERIAL_ID = ASM.MATERIAL_ID
-    left join (
-    select sum( t_w_result.RESULT_NET_WEIGHT) weight,a_s_o_material.SALE_ORDER_ID SALE_ORDER_ID
-    from AMS_SALE_ORDER_MATERIAL a_s_o_material
-    left join Omstruck_Order o_order
-    on a_s_o_material.SALE_ORDER_MATERIAL_ID=o_order.order_plan_id
-    left join Tmstruck_Total_Result t_t_result
-    on o_order.order_id=t_t_result.order_id
-    left join Tmstruck_Weight_Result t_w_result
-    on t_t_result.result_total_id=t_w_result.result_total_id
-    where o_order.ORDER_TYPE=2
+    SELECT
+    ASO.SALE_ORDER_ID AS "saleOrderId",
+    ASM.SALE_MATERIAL_ID AS "saleMaterialId",
+    RM.MATERIAL_ID AS "materialId",
+    ASO.SALE_NUMBER AS "saleNumber",
+    ASO.SALE_ORDER_ISSELF_MENTION AS "saleOrderIsselfMention",
+    ASO.SALE_REMARK AS "saleRemark",
+    RS.SHIPPER_NAME AS "shipperName",
+    RC.CONSIGNEE_COMPANY_NAME AS "consigneeCompanyName",
+    RM.MATERIAL_NAME AS "materialName",
+    ASM.MATERIAL_NUMBER AS "materialNumber",
+    ASM.MATERIAL_WEIGHT AS "materialWeight",
+    ASM.SALE_WAREHOUSE AS "saleWareHouse",
+    RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL AS "specificationModel",
+    RM.MATERIAL_CODE AS "materialCode",
+    nvl( sumWeight.weight, 0 ) + nvl( sumWeight2.weight, 0 ) +  + nvl( sumWeight3.weight, 0 ) AS "totalWeight",
+    nvl( sumWeight.weight, 0 ) AS "netWeight",
+    nvl( sumWeight2.weight, 0 ) AS "weight",
+    nvl( carCount.coun, 0 ) + nvl( carCount1.coun, 0 ) AS "carCount"
+    FROM
+    AMS_SALE_ORDER ASO
+    LEFT JOIN RMS_SHIPPER RS ON ASO.SHIPPER_ID = RS.SHIPPER_ID
+    LEFT JOIN RMS_CONSIGNEE RC ON ASO.RECEIVE_ID = RC.CONSIGNEE_ID
+    LEFT JOIN AMS_SALE_MATERIAL ASM ON ASM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+    LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = ASM.MATERIAL_ID
+    LEFT JOIN (
+    SELECT
+    sum( t_w_result.RESULT_NET_WEIGHT ) weight,
+    a_s_o_material.SALE_ORDER_ID SALE_ORDER_ID
+    FROM
+    AMS_SALE_ORDER_MATERIAL a_s_o_material
+    LEFT JOIN Omstruck_Order o_order ON a_s_o_material.SALE_ORDER_MATERIAL_ID = o_order.order_plan_id
+    LEFT JOIN Tmstruck_Total_Result t_t_result ON o_order.order_id = t_t_result.order_id
+    LEFT JOIN Tmstruck_Weight_Result t_w_result ON t_t_result.result_total_id = t_w_result.result_total_id
+    WHERE
+    o_order.ORDER_TYPE = 2
     GROUP BY
     a_s_o_Material.SALE_ORDER_ID
-    ) sumWeight
-    on sumWeight.SALE_ORDER_ID=ASO.SALE_ORDER_ID
-    left join (
-    select sum( o_o_material.ORDER_MATERIAL_WEIGHT) weight,a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
-    from AMS_SALE_ORDER_MATERIAL a_s_o_material
-    left join Omstruck_Order o_order
-    on a_s_o_material.SALE_ORDER_MATERIAL_ID=o_order.order_plan_id
-    left join Tmstruck_Total_Result t_t_result
-    on o_order.order_id=t_t_result.order_id
-    left join Tmstruck_Weight_Result t_w_result
-    on t_t_result.result_total_id=t_w_result.result_total_id
-    left join OMSTRUCK_ORDER_MATERIAL o_o_material
-    on o_order.order_id=o_o_material.ORDER_ID
-    where t_w_result.RESULT_NET_WEIGHT is null and o_order.order_status in (2,4,5)
-    AND o_order.ORDER_TYPE=2
+    ) sumWeight ON sumWeight.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+    LEFT JOIN (
+    SELECT
+    sum( o_o_material.ORDER_MATERIAL_WEIGHT ) weight,
+    a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
+    FROM
+    AMS_SALE_ORDER_MATERIAL a_s_o_material
+    LEFT JOIN Omstruck_Order o_order ON a_s_o_material.SALE_ORDER_MATERIAL_ID = o_order.order_plan_id
+    LEFT JOIN Tmstruck_Total_Result t_t_result ON o_order.order_id = t_t_result.order_id
+    LEFT JOIN Tmstruck_Weight_Result t_w_result ON t_t_result.result_total_id = t_w_result.result_total_id
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL o_o_material ON o_order.order_id = o_o_material.ORDER_ID
+    WHERE
+    t_w_result.RESULT_NET_WEIGHT IS NULL
+    AND o_order.order_status IN ( 2, 5 )
+    AND o_order.ORDER_TYPE = 2
     GROUP BY
     a_s_o_Material.SALE_ORDER_ID
-    ) sumWeight2
-    on sumWeight2.SALE_ORDER_ID=ASO.SALE_ORDER_ID
-    left join (
-    select count(o_order.order_id) coun ,a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
-    from AMS_SALE_ORDER_MATERIAL a_s_o_material
-    left join Omstruck_Order o_order
-    on a_s_o_material.SALE_ORDER_MATERIAL_ID=o_order.order_plan_id
-    left join Tmstruck_Total_Result t_t_result
-    on o_order.order_id=t_t_result.order_id
-    left join Tmstruck_Weight_Result t_w_result
-    on t_t_result.result_total_id=t_w_result.result_total_id
-    where o_order.order_status in (2,4,5)
-    AND o_order.ORDER_TYPE=2
+    ) sumWeight2 ON sumWeight2.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+    LEFT JOIN (
+    SELECT
+    sum( o_o_material.ORDER_MATERIAL_WEIGHT ) weight,
+    a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
+    FROM
+    AMS_SALE_ORDER_MATERIAL a_s_o_material
+    LEFT JOIN Omstruck_Order o_order ON a_s_o_material.SALE_ORDER_MATERIAL_ID = o_order.order_plan_id
+    LEFT JOIN Tmstruck_Total_Result t_t_result ON o_order.order_id = t_t_result.order_id
+    LEFT JOIN Tmstruck_Weight_Result t_w_result ON t_t_result.result_total_id = t_w_result.result_total_id
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL o_o_material ON o_order.order_id = o_o_material.ORDER_ID
+    WHERE
+    t_w_result.RESULT_NET_WEIGHT IS NULL
+    AND o_order.order_status = 4
+    AND o_order.ORDER_TYPE = 2
+    AND a_s_o_material.SALE_DATE_OF_RECEIPT  &lt; SYSDATE
     GROUP BY
     a_s_o_Material.SALE_ORDER_ID
-
-    ) carCount
-    on carCount.SALE_ORDER_ID=ASO.SALE_ORDER_ID
+    ) sumWeight3 ON sumWeight3.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+    LEFT JOIN (
+    SELECT
+    count( o_order.order_id ) coun,
+    a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
+    FROM
+    AMS_SALE_ORDER_MATERIAL a_s_o_material
+    LEFT JOIN Omstruck_Order o_order ON a_s_o_material.SALE_ORDER_MATERIAL_ID = o_order.order_plan_id
+    LEFT JOIN Tmstruck_Total_Result t_t_result ON o_order.order_id = t_t_result.order_id
+    LEFT JOIN Tmstruck_Weight_Result t_w_result ON t_t_result.result_total_id = t_w_result.result_total_id
+    WHERE
+    o_order.order_status IN ( 2, 5 )
+    AND o_order.ORDER_TYPE = 2
+    GROUP BY
+    a_s_o_Material.SALE_ORDER_ID
+    ) carCount ON carCount.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+    LEFT JOIN (
+    SELECT
+    count( o_order.order_id ) coun,
+    a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
+    FROM
+    AMS_SALE_ORDER_MATERIAL a_s_o_material
+    LEFT JOIN Omstruck_Order o_order ON a_s_o_material.SALE_ORDER_MATERIAL_ID = o_order.order_plan_id
+    LEFT JOIN Tmstruck_Total_Result t_t_result ON o_order.order_id = t_t_result.order_id
+    LEFT JOIN Tmstruck_Weight_Result t_w_result ON t_t_result.result_total_id = t_w_result.result_total_id
+    WHERE
+    o_order.order_status = 4
+    AND o_order.ORDER_TYPE = 2
+    AND a_s_o_material.SALE_DATE_OF_RECEIPT  &lt; SYSDATE
+    GROUP BY
+    a_s_o_Material.SALE_ORDER_ID
+    ) carCount1 ON carCount1.SALE_ORDER_ID = ASO.SALE_ORDER_ID
     where ASO.SALE_ORDER_ID = #{saleOrderId}
     )
     <where>
@@ -4517,4 +4548,8 @@
         SELECT RSA.AREA_ID FROM RMS_SALE_AREA RSA
         WHERE RSA.AREA_NAME = #{saleAreaName}
   </select>
+  <select id="getMoreCarrier" resultType="java.math.BigDecimal" parameterType="string">
+    SELECT count(RMCP.CARRIER_PLACE_ID) FROM RMS_MORE_CARRIER_PLACE RMCP
+    WHERE RMCP.CARRIER_PLACE_VALUE LIKE #{place}
+  </select>
 </mapper>