zengyf 2 gadi atpakaļ
vecāks
revīzija
ffa8bcd3ab

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

@@ -38,6 +38,8 @@ public interface AmsContractTruckPriceMapper extends IBaseMapper<AmsContractTran
     int updateaddressDeliveryAddress(Map<String,Object> map);
     //更新单价
     int updatePriceValue(Map<String,Object> map);
+    //更新单价(无运输距离)
+    int updatePriceValueNew(Map<String,Object> map);
     //更新单价
     int updateHaulDistance(Map<String,Object> map);
     //获取承运商信息

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IAmsContractTruckPriceService.java

@@ -35,7 +35,7 @@ public interface IAmsContractTruckPriceService {
     List<Map<String, Object>> getCarrierListByAddress(Map<String,Object> map);
     //更新卸货地址
     int updateaddressDeliveryAddress(Map<String,Object> map);
-    //更新卸货地址
+    //更新单价
     int updatePriceValue(Map<String,Object> map);
     //获取汽运单价信息(计费详单专用)
     List<Map<String, Object>> getAmsContractTransportPriceForDetail(Map<String,Object> map);

+ 12 - 8
src/main/java/com/steerinfo/dil/service/impl/AmsContractTransportPriceServiceImpl.java

@@ -130,10 +130,12 @@ public class AmsContractTransportPriceServiceImpl implements IAmsContractTranspo
                 amsContractTransportPrice.setCarrierId(DataChange.dataToBigDecimal(split[i]));
                 //生成主键id
                 amsContractTransportPrice.setPriceId(amsContractTruckPriceMapper.selectMaxId());
-                if(lineId.compareTo(BigDecimal.ZERO)==0){
-                    //计算并插入吨公里
-                    BigDecimal priceTonKilometer = amsContractTruckPriceService.calculationPriceTonKilometerNew(haulDistance, priceValue);
-                    amsContractTransportPrice.setPriceTonKilometer(priceTonKilometer);
+                if (haulDistance!=null){
+                    if(lineId.compareTo(BigDecimal.ZERO)==0){
+                        //计算并插入吨公里
+                        BigDecimal priceTonKilometer = amsContractTruckPriceService.calculationPriceTonKilometerNew(haulDistance, priceValue);
+                        amsContractTransportPrice.setPriceTonKilometer(priceTonKilometer);
+                    }
                 }
                 amsContractTransportPrice.setType(new BigDecimal(1));
                 amsContractTransportPrice.setInsertUsername("admin");
@@ -186,10 +188,12 @@ public class AmsContractTransportPriceServiceImpl implements IAmsContractTranspo
             amsContractTransportPrice.setCarrierId(DataChange.dataToBigDecimal(split[0]));
             //生成主键id
             amsContractTransportPrice.setPriceId(amsContractTruckPriceMapper.selectMaxId());
-            if(lineId.compareTo(BigDecimal.ZERO)==0){
-                //计算并插入吨公里
-                BigDecimal priceTonKilometer = amsContractTruckPriceService.calculationPriceTonKilometerNew(haulDistance, priceValue);
-                amsContractTransportPrice.setPriceTonKilometer(priceTonKilometer);
+            if (haulDistance!=null){
+                if(lineId.compareTo(BigDecimal.ZERO)==0){
+                    //计算并插入吨公里
+                    BigDecimal priceTonKilometer = amsContractTruckPriceService.calculationPriceTonKilometerNew(haulDistance, priceValue);
+                    amsContractTransportPrice.setPriceTonKilometer(priceTonKilometer);
+                }
             }
             amsContractTransportPrice.setType(new BigDecimal(1));
             amsContractTransportPrice.setInsertUsername("admin");

+ 13 - 2
src/main/java/com/steerinfo/dil/service/impl/AmsContractTruckPriceServiceImpl.java

@@ -53,6 +53,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
     @Autowired
     private RmsLineNodePointMapper rmsLineNodePointMapper;
 
+    @Autowired
+    AmsContractTruckPriceServiceImpl amsContractTruckPriceService;
+
     /**
      * 新增汽运单价
      * @Author zzd
@@ -161,9 +164,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
         //修改地址
         amsContractTruckPriceMapper.updateaddressDeliveryAddress(map);
         //修改运价
-        amsContractTruckPriceMapper.updatePriceValue(map);
+        amsContractTruckPriceService.updatePriceValue(map);
         //修改运输距离
-        amsContractTruckPriceMapper.updateHaulDistance(map);
+        //amsContractTruckPriceMapper.updateHaulDistance(map);
         //根据地址查询出单价表大部分值
         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.getOnePriceMap(map);
         //修改的时间
@@ -237,6 +240,14 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
 
     @Override
     public int updatePriceValue(Map<String,Object> map) {
+        BigDecimal haulDistance = DataChange.dataToBigDecimal(map.get("haulDistance"));
+        BigDecimal priceValue = DataChange.dataToBigDecimal(map.get("priceValue"));
+        if (haulDistance!=null&&haulDistance.compareTo(BigDecimal.ZERO)!=0){
+            BigDecimal priceTonKilometer = amsContractTruckPriceService.calculationPriceTonKilometerNew(haulDistance, priceValue);
+            map.put("priceTonKilometer",priceTonKilometer);
+        }else {
+            return amsContractTruckPriceMapper.updatePriceValueNew(map);
+        }
         return amsContractTruckPriceMapper.updatePriceValue(map);
     }
 

+ 21 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsContractTruckPriceMapper.xml

@@ -1002,6 +1002,8 @@
     WHERE RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT||RRA.ADDRESS_TOWN||
     RRP.ADDRESS_DELIVERY_ADDRESS
     =#{addressProvince}||#{addressDistrict}||#{addressTown}||#{addressDeliveryAddress}
+    and ACTP.TYPE=1 AND ACTP.DELETED=0
+    and RC.CARRIER_NAME is not null
   </select>
 
   <!--获取全部承运商的信息-->
@@ -1072,7 +1074,8 @@
   <!--更新运价-->
   <update id="updatePriceValue">
     UPDATE AMS_CONTRACT_TRANSPORT_PRICE ACTP
-    SET ACTP.PRICE_VALUE=#{priceValue}
+    SET ACTP.PRICE_VALUE=#{priceValue},ACTP.HAUL_DISTANCE=#{haulDistance},
+        ACTP.PRICE_TON_KILOMETER=#{priceTonKilometer}
     where ACTP.PRICE_ID IN(
     select
     DISTINCT
@@ -1086,6 +1089,23 @@
     =#{addressProvince}||#{addressDistrict}||#{addressTown}||#{addressDeliveryAddress})
   </update>
 
+  <!--更新运价(无运输距离的)-->
+  <update id="updatePriceValueNew">
+    UPDATE AMS_CONTRACT_TRANSPORT_PRICE ACTP
+    SET ACTP.PRICE_VALUE=#{priceValue},ACTP.HAUL_DISTANCE=#{haulDistance}
+    where ACTP.PRICE_ID IN(
+      select
+        DISTINCT
+        ACTP.PRICE_ID  from RMS_RECEIVE_PLACE RRP
+                              LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+                                        ON RRA.ADDRESS_ID=RRP.ADDRESS_ID
+                              LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE ACTP
+                                        ON ACTP.PLACE_ID=RRP.PLACE_ID
+      WHERE RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT||RRA.ADDRESS_TOWN||
+            RRP.ADDRESS_DELIVERY_ADDRESS
+              =#{addressProvince}||#{addressDistrict}||#{addressTown}||#{addressDeliveryAddress})
+  </update>
+
   <!--更新距离-->
   <update id="updateHaulDistance">
     UPDATE AMS_CONTRACT_TRANSPORT_PRICE ACTP