HUJIANGUO преди 3 години
родител
ревизия
fb9345fc80

+ 60 - 61
src/main/java/com/steerinfo/dil/service/impl/AmsDispatchSaleOrderServiceImpl.java

@@ -252,73 +252,72 @@ public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatch
         }
         for (Map<String, Object> map : mapList) {
             BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
-//            List<Map<String,Object>> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
-//            if (orderIdList != null || orderIdList.size() != 0) {
-//                mapList.remove(map);
-//            }
-            List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
-            String allMaterialName = "";
-            String allMaterialNumber = "";
-            String allMaterialTheoreticalWeight = "";
-            String allMaterialSpecificationModel = "";
-            if (materialMessages != null) {
-                for (Map<String, Object> materialMap : materialMessages) {
-                    if (materialMap != null) {
-                        String materialName = (String) materialMap.get("materialName");
-                        allMaterialName += materialName + "/";
-                        BigDecimal materialTheoreticalWeight = (BigDecimal) materialMap.get("materialTheoreticalWeight");
-                        if (materialTheoreticalWeight != null) {
-                            allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
-                        }
-                        BigDecimal saleOrderMaterialNumber = (BigDecimal) materialMap.get("saleOrderMaterialNumber");
-                        allMaterialNumber += saleOrderMaterialNumber + "/";
-                        String specificationModel = (String) materialMap.get("specificationModel");
-                        if (specificationModel != null) {
-                            allMaterialSpecificationModel += specificationModel + "/";
+            BigDecimal orderId = (BigDecimal) map.get("orderId");
+            if (orderId == null) {
+                List<Map<String, Object>> materialMessages = amsDispatchSaleOrderMapper.getMaterialMessages(dispatchId);
+                String allMaterialName = "";
+                String allMaterialNumber = "";
+                String allMaterialTheoreticalWeight = "";
+                String allMaterialSpecificationModel = "";
+                if (materialMessages != null) {
+                    for (Map<String, Object> materialMap : materialMessages) {
+                        if (materialMap != null) {
+                            String materialName = (String) materialMap.get("materialName");
+                            allMaterialName += materialName + "/";
+                            BigDecimal materialTheoreticalWeight = (BigDecimal) materialMap.get("materialTheoreticalWeight");
+                            if (materialTheoreticalWeight != null) {
+                                allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
+                            }
+                            BigDecimal saleOrderMaterialNumber = (BigDecimal) materialMap.get("saleOrderMaterialNumber");
+                            allMaterialNumber += saleOrderMaterialNumber + "/";
+                            String specificationModel = (String) materialMap.get("specificationModel");
+                            if (specificationModel != null) {
+                                allMaterialSpecificationModel += specificationModel + "/";
+                            }
                         }
                     }
+                    String subMaterialName = null;
+                    String subMaterialNumber = null;
+                    String subMaterialTheoreticalWeight = null;
+                    String subMaterialSpecificationModel = null;
+                    if (allMaterialName.length() >= 2) {
+                        subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 1);
+                    }
+                    if (allMaterialName.length() < 2) {
+                        subMaterialName = allMaterialName;
+                    }
+                    if (allMaterialNumber.length() >= 2) {
+                        subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 1);
+                    }
+                    if (allMaterialNumber.length() < 2) {
+                        subMaterialNumber = allMaterialNumber;
+                    }
+                    if (allMaterialTheoreticalWeight.length() >= 2) {
+                        subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 1);
+                    }
+                    if (allMaterialTheoreticalWeight.length() < 2) {
+                        subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
+                    }
+                    if (allMaterialSpecificationModel.length() >= 2) {
+                        subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 1);
+                    }
+                    if (allMaterialSpecificationModel.length() < 2) {
+                        subMaterialSpecificationModel = allMaterialSpecificationModel;
+                    }
+                    map.put("allMaterialName", subMaterialName);
+                    map.put("allMaterialNumber", subMaterialNumber);
+                    map.put("allMaterialTheoreticalWeight", subMaterialTheoreticalWeight);
+                    map.put("allMaterialSpecificationModel", subMaterialSpecificationModel);
                 }
-                String subMaterialName = null;
-                String subMaterialNumber = null;
-                String subMaterialTheoreticalWeight = null;
-                String subMaterialSpecificationModel = null;
-                if (allMaterialName.length() >= 2) {
-                    subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 1);
-                }
-                if (allMaterialName.length() < 2) {
-                    subMaterialName = allMaterialName;
-                }
-                if (allMaterialNumber.length() >= 2) {
-                    subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 1);
-                }
-                if (allMaterialNumber.length() < 2) {
-                    subMaterialNumber = allMaterialNumber;
-                }
-                if (allMaterialTheoreticalWeight.length() >= 2) {
-                    subMaterialTheoreticalWeight = allMaterialTheoreticalWeight.substring(0, allMaterialTheoreticalWeight.length() - 1);
-                }
-                if (allMaterialTheoreticalWeight.length() < 2) {
-                    subMaterialTheoreticalWeight = allMaterialTheoreticalWeight;
-                }
-                if (allMaterialSpecificationModel.length() >= 2) {
-                    subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 1);
-                }
-                if (allMaterialSpecificationModel.length() < 2) {
-                    subMaterialSpecificationModel = allMaterialSpecificationModel;
-                }
-                map.put("allMaterialName",subMaterialName);
-                map.put("allMaterialNumber",subMaterialNumber);
-                map.put("allMaterialTheoreticalWeight",subMaterialTheoreticalWeight);
-                map.put("allMaterialSpecificationModel",subMaterialSpecificationModel);
-            }
 //            // 将已经清空的map里面put进一个map和一个list<Map>
 //            map.put("materialMessages",materialMessages);
 //            map.put("saleMap",saleMap);
-            else {
-                map.put("allMaterialName",allMaterialName);
-                map.put("allMaterialNumber",allMaterialNumber);
-                map.put("allMaterialTheoreticalWeight",allMaterialTheoreticalWeight);
-                map.put("allMaterialSpecificationModel",allMaterialSpecificationModel);
+                else {
+                    map.put("allMaterialName", allMaterialName);
+                    map.put("allMaterialNumber", allMaterialNumber);
+                    map.put("allMaterialTheoreticalWeight", allMaterialTheoreticalWeight);
+                    map.put("allMaterialSpecificationModel", allMaterialSpecificationModel);
+                }
             }
         }
         return mapList;

+ 15 - 12
src/main/resources/com/steerinfo/dil/mapper/AmsDispatchSaleOrderMapper.xml

@@ -467,28 +467,27 @@
     <!-- 查询app端已抢的销售订单 -->
     <select id="getLockDispatchSaleOrderList" parameterType="DECIMAL" resultType="java.util.Map">
         SELECT ADSO.DISPATCH_ID                  AS "dispatchId",
-               aaaa.SALE_ORDER_MATERIAL_TRUCK_NO AS "saleOrderMaterialTruckNo",
+               ASOM.SALE_ORDER_MATERIAL_TRUCK_NO AS "saleOrderMaterialTruckNo",
                ASO.SALE_NUMBER                   AS "saleNumber",
                ADSO.DISPATCH_DEAL_TIME           AS "dispatchDealTime",
                RSH.SHIPPER_NAME                  AS "shipperName",
                RC.CONSIGNEE_COMPANY_NAME         AS "consigneeCompanyName",
                RRA.ADDRESS_DELIVERY_ADDRESS      AS "addressDeliveryAddress",
-               aaaa.SALE_ORDER_CONSIGNEE         AS "saleOrderConsignee",
-               aaaa.SALE_ORDER_CONSIGNEE_TEL     AS "saleOrderConsigneeTel",
-               RCA.CARRIER_NAME                  AS "carrierName"
+               ASOM.SALE_ORDER_CONSIGNEE         AS "saleOrderConsignee",
+               ASOM.SALE_ORDER_CONSIGNEE_TEL     AS "saleOrderConsigneeTel",
+               RCA.CARRIER_NAME                  AS "carrierName",
+               OO.ORDER_ID                       AS "orderId"
         FROM AMS_DISPATCH_SALE_ORDER ADSO
-                 LEFT JOIN (SELECT *
-                            FROM AMS_SALE_ORDER_MATERIAL asom
-                                     LEFT JOIN OMSTRUCK_ORDER oo ON asom.SALE_ORDER_MATERIAL_ID = oo.ORDER_PLAN_ID
-                            WHERE oo.ORDER_PLAN_ID IS NULL) aaaa
-                           ON ADSO.SALE_ORDER_MATERIAL_ID = aaaa.SALE_ORDER_MATERIAL_ID
-                 LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = aaaa.SALE_ORDER_ID
+                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_MATERIAL_ID = ADSO.SALE_ORDER_MATERIAL_ID
+                 LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
                  LEFT JOIN RMS_SHIPPER RSH ON RSH.SHIPPER_ID = ASO.SHIPPER_ID
                  LEFT JOIN RMS_CONSIGNEE RC ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
-                 LEFT JOIN RMS_RECEIVE_ADDRESS RRA ON aaaa.SALE_SHIPPING_ADDRESS_ID = RRA.ADDRESS_ID
+                 LEFT JOIN RMS_RECEIVE_ADDRESS RRA ON ASOM.SALE_SHIPPING_ADDRESS_ID = RRA.ADDRESS_ID
                  LEFT JOIN RMS_CARRIER RCA ON RCA.CARRIER_ID = ADSO.CARRIER_ID
+                 LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
         WHERE ADSO.DISPATCH_STATUS = 0
           AND ADSO.CARRIER_ID = #{carrierId}
+          AND OO.ORDER_ID IS NULL
     </select>
     <!-- 展示已经接收到了承运商的订单   -->
     <select id="getLockDispatchSaleOrderListForPc" parameterType="DECIMAL" resultType="java.util.Map">
@@ -501,10 +500,13 @@
                RRA.ADDRESS_DELIVERY_ADDRESS      AS "addressDeliveryAddress",
                ASOM.SALE_ORDER_CONSIGNEE         AS "saleOrderConsignee",
                ASOM.SALE_ORDER_CONSIGNEE_TEL     AS "saleOrderConsigneeTel",
-               RCA.CARRIER_NAME                  AS "carrierName"
+               RCA.CARRIER_NAME                  AS "carrierName",
+               OO.ORDER_ID                       AS "orderId"
         FROM AMS_DISPATCH_SALE_ORDER ADSO
                  LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
                            ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                 LEFT JOIN OMSTRUCK_ORDER OO
+                           ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
                  LEFT JOIN AMS_SALE_ORDER ASO
                            ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
                  LEFT JOIN RMS_SHIPPER RSH
@@ -517,6 +519,7 @@
                            ON RCA.CARRIER_ID = ADSO.CARRIER_ID
         WHERE ADSO.DISPATCH_STATUS = 0
           AND ADSO.CARRIER_ID = #{carrierId}
+          AND OO.ORDER_ID IS NULL
     </select>
 
     <select id="getNullOrNotNull" parameterType="DECIMAL" resultType="java.util.Map">