Ver Fonte

'销售钢材bug'

HUJIANGUO há 3 anos atrás
pai
commit
ba7915a184

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

@@ -98,4 +98,6 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     List<Map<String, Object>> getHaveCarTruckNoList(Map<String, Object> mapValue);
 
     List<Map<String, Object>> getSaleOrderListByCarrierSsoId(Map<String, Object> map);
+
+    BigDecimal getOrderPrice(Map<String, Object> map);
 }

+ 30 - 20
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -589,9 +589,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             if (amsSaleOrderMaterials == null || amsSaleOrderMaterials.size() == 0) {
                 // 车序号主键
                 BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
-                BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("saleShipperAddressId"));
+                BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
                 String place = (String) (map.get("place"));
-                if (place != null) {
+                if (place != null && !"null".equals(place)) {
                     List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place);
                     if (placeIdList == null || placeIdList.size() == 0) {
                         RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
@@ -604,17 +604,19 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                         amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
                     }
                 }
-                // 自动匹配承运商
-                List<Map<String, Object>> carrierList = getCarrierByPlace(amsSaleOrderMaterial.getSaleShippingAddressId());
-                // 单一承运商才进行匹配
-                if (carrierList != null && carrierList.size() == 1) {
-                    List<Map<String,Object>> list = new ArrayList<>();
-                    Map<String, Object> map1 = carrierList.get(0);
-                    // 传入车序号主键和承运商id
-                    map1.put("saleOrderMaterialId",saleOrderMaterialId);
-                    map1.put("carrierId",map1.get("value"));
-                    list.add(map1);
-                    dispatchToCarrier(list);
+                if (amsSaleOrderMaterial.getSaleShippingAddressId() != null) {
+                    // 自动匹配承运商
+                    List<Map<String, Object>> carrierList = getCarrierByPlace(amsSaleOrderMaterial.getSaleShippingAddressId());
+                    // 单一承运商才进行匹配
+                    if (carrierList != null && carrierList.size() == 1) {
+                        List<Map<String, Object>> list = new ArrayList<>();
+                        Map<String, Object> map1 = carrierList.get(0);
+                        // 传入车序号主键和承运商id
+                        map1.put("saleOrderMaterialId", saleOrderMaterialId);
+                        map1.put("carrierId", map1.get("value"));
+                        list.add(map1);
+                        dispatchToCarrier(list);
+                    }
                 }
                 // 收货方姓名
                 String consigneeName = String.valueOf(map.get("saleOrderConsignee"));
@@ -663,7 +665,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             amsSaleMaterial.setMaterialNumber(materialNumber);
             amsSaleMaterial.setInsertTime(new Date());
             amsSaleMaterial.setUpdateTime(new Date());
-            if (!steelMeters.toString().equals("0")) {
+            if (steelMeters != null && !steelMeters.toString().equals("0")) {
                 amsSaleMaterial.setSteelMeter(steelMeters);
             }
             amsSaleMaterial.setIsPoundSale(isPoundSale);
@@ -697,8 +699,10 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         List<Map<String,Object>> mapList = amsSaleOrderMapper.getTruckNoAndMaterial(saleOrderId);
         for (Map<String,Object> map : mapList) {
             BigDecimal placeId = (BigDecimal) map.get("placeId");
-            List<Map<String,Object>> carrierAndPriceList = getCarrierByPlace(placeId);
-            map.put("carrierAndPriceList",carrierAndPriceList);
+            if (placeId != null) {
+                List<Map<String, Object>> carrierAndPriceList = getCarrierByPlace(placeId);
+                map.put("carrierAndPriceList", carrierAndPriceList);
+            }
         }
         return mapList;
     }
@@ -720,6 +724,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
             // 得到承运商
             BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
+            // 查询到车序号的单价
+            BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map);
             // 运输线路id
             BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
             BigDecimal isSteel = new BigDecimal(1);
@@ -771,9 +777,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setOrderPlanId(saleOrderMaterialId);
                 //添加承运商ID 和 运价ID
 //            Object priceId = map.get("priceId");
-                Object priceId = map.get("priceId");
                 if (priceId != null) {
-                    omstruckOrder.setPriceId(DataChange.dataToBigDecimal(priceId));
+                    omstruckOrder.setPriceId(priceId);
+                }
+                else {
+                    omstruckOrder.setPriceId(new BigDecimal(0));
                 }
                 omstruckOrder.setCarrierId(carrierId);
                 // 运输订单号
@@ -970,8 +978,10 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         List<Map<String,Object>> mapList = amsSaleOrderMapper.getTruckNoMaterialAndCarrier(saleOrderMaterialId);
         for (Map<String,Object> map : mapList) {
             BigDecimal placeId = (BigDecimal) map.get("placeId");
-            List<Map<String,Object>> carrierAndPriceList = getCarrierByPlace(placeId);
-            map.put("carrierAndPriceList",carrierAndPriceList);
+            if (placeId != null) {
+                List<Map<String, Object>> carrierAndPriceList = getCarrierByPlace(placeId);
+                map.put("carrierAndPriceList", carrierAndPriceList);
+            }
         }
         return mapList;
     }

+ 9 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml

@@ -2936,4 +2936,13 @@
     <include refid="orderBy"></include>
 
   </select>
+
+  <select id="getOrderPrice" parameterType="java.util.Map" resultType="DECIMAL" >
+    SELECT ACTP.PRICE_ID AS "priceId"
+    FROM AMS_CONTRACT_TRANSPORT_PRICE ACTP
+           LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                     ON ASOM.SALE_SHIPPING_ADDRESS_ID = ACTP.PLACE_ID
+    WHERE ACTP.CARRIER_ID = #{carrierId}
+      AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+  </select>
 </mapper>