zengyf 2 anni fa
parent
commit
520af79fed

+ 3 - 0
src/main/java/com/steerinfo/dil/controller/BmstruckDetailsOrderController.java

@@ -331,6 +331,9 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         int code = 0;
         try{
             for (Map<String,Object> map :mapList) {
+                if (map.get("orderId")==null){
+                    return failed("订单未派车,不允许修改单价!");
+                }
                 if(bmstruckDetailsOrderService.getSaleOrderStatus(DataChange.dataToBigDecimal(map.get("orderId")))!=4){
                     return failed("存在未审核的订单,不允许修改单价!");
                 }

+ 3 - 1
src/main/java/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.java

@@ -188,7 +188,9 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
 
     int updatePlace(Map<String, Object> mapValue);
 
-    BigDecimal getsaleShippingAddressId(Map<String, Object> mapValue);
+    int updatePlaceNew(Map<String, Object> mapValue);
+
+    Map<String, Object> getsaleShippingAddressId(Map<String, Object> mapValue);
 
     int updateDetailsStatus(Integer orderId);
 

+ 10 - 7
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -570,14 +570,17 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
             e.printStackTrace();
         }
         if(DataChange.dataToBigDecimal(mapValue.get("updatePlace")).intValue() == 1) {
-            BigDecimal bigDecimal = bmstruckDetailsOrderMapper.getsaleShippingAddressId(mapValue);
-            if (bigDecimal!=null){
-                mapValue.put("historyPlaceId",bigDecimal);
-            }else {
-                mapValue.put("historyPlaceId",0);
+            Map<String, Object> stringObjectMap = bmstruckDetailsOrderMapper.getsaleShippingAddressId(mapValue);
+            BigDecimal saleShippingAddressId = (BigDecimal) stringObjectMap.get("saleShippingAddressId");
+            BigDecimal historyShippingAddressId = (BigDecimal) stringObjectMap.get("historyShippingAddressId");
+            if (historyShippingAddressId!=null){
+                //修改地址(不修改历史地址)
+                bmstruckDetailsOrderMapper.updatePlaceNew(mapValue);
+            }else if (historyShippingAddressId==null ) {
+                mapValue.put("historyPlaceId", saleShippingAddressId);
+                //修改地址(不修改历史地址)
+                bmstruckDetailsOrderMapper.updatePlace(mapValue);
             }
-            //修改地址
-            bmstruckDetailsOrderMapper.updatePlace(mapValue);
         }
         return result;
     }

+ 12 - 3
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -2331,8 +2331,17 @@
         WHERE OO.ORDER_ID = #{orderId}
         )
     </update>
-    <select id="getsaleShippingAddressId" resultType="java.math.BigDecimal">
-        select asom.SALE_SHIPPING_ADDRESS_ID from AMS_SALE_ORDER_MATERIAL ASOM
+    <update id="updatePlaceNew" parameterType="map">
+        update AMS_SALE_ORDER_MATERIAL ASOM
+        set asom.SALE_SHIPPING_ADDRESS_ID = #{placeId}
+        where ASOM.SALE_ORDER_MATERIAL_ID = (SELECT oo.order_plan_id FROM
+            OMSTRUCK_ORDER OO
+                                             WHERE OO.ORDER_ID = #{orderId}
+        )
+    </update>
+    <select id="getsaleShippingAddressId" resultType="java.util.Map">
+        select asom.SALE_SHIPPING_ADDRESS_ID "saleShippingAddressId",asom.HISTORY_SHIPPING_ADDRESS_ID "historyShippingAddressId"
+        from AMS_SALE_ORDER_MATERIAL ASOM
         where ASOM.SALE_ORDER_MATERIAL_ID = (SELECT oo.order_plan_id FROM
             OMSTRUCK_ORDER OO
                                              WHERE OO.ORDER_ID = #{orderId}
@@ -2345,7 +2354,7 @@
         WHERE BDO.ORDER_ID = #{orderId}
     </update>
     <select id="getSaleOrderStatus" resultType="java.lang.Integer">
-        SELECT ASO.SALE_ORDER_STATUS
+        SELECT nvl(ASO.SALE_ORDER_STATUS,0)
         FROM AMS_SALE_ORDER ASO
                  LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
                  LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID AND NVL(OO.ORDER_TYPE,0) in (0,1)