luobang 2 years ago
parent
commit
542ee663b7

+ 8 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -1707,4 +1707,12 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
 
     }
 
+    @ApiOperation("执行合并操作")
+    @PostMapping("mergeOrder")
+    public RESTfulResult mergeOrder(@RequestBody(required = false) Map<String,Object> map) {
+        int i = 0 ;
+        i = amsSaleOrderMaterialService.mergeOrder(map);
+        return success(i);
+    }
+
 }

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

@@ -205,4 +205,6 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
 
     List<Map<String, Object>> getNextCarrier(BigDecimal addressId);
 
+    BigDecimal getPriceIdByPlaceId(BigDecimal placeId);
+
 }

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

@@ -71,4 +71,6 @@ public interface AmsSaleOrderMaterialMapper extends IBaseMapper<AmsSaleOrderMate
 
     int updateTransportOrderStatus(@Param("orderId") BigDecimal orderId, @Param("orderStatus") Integer orderStatus);
 
+    int deleteToMergeOrder(BigDecimal orderId);
+
 }

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

@@ -24,4 +24,7 @@ public interface AmsSaleTrucknoMaterialMapper extends IBaseMapper<AmsSaleTruckno
     BigDecimal getSalePalnIdBySaleOrderMaterialId(BigDecimal saleOrderMaterialId);
     //查询当前该销售计划下已有的销售订单中该物资件数的总和
     BigDecimal getAllSaleOrderMaterialNumber(Map<String,Object> map);
+
+    List<BigDecimal> getTruckNoMaterialIds(BigDecimal saleOrderMaterialId);
+
 }

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

@@ -72,4 +72,5 @@ public interface IAmsSaleOrderMaterialService{
     // 得到单价和单价id
     Map<String, Object> getBenPrice(Map<String, Object> map);
 
+    int mergeOrder(Map<String, Object> map);
 }

+ 25 - 1
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -993,5 +993,29 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
     }
 
 
-
+    @Override
+    public int mergeOrder(Map<String, Object> map) {
+        int i = 0 ;
+        List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
+        BigDecimal toMergeSaleOrderMaterialID = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderMaterialId"));
+        for (Map<String,Object> map1 : mapList) {
+            //获取车序号ID
+            BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map1.get("saleOrderMaterialId"));
+            //判断该车序号下有没有运单,如果有,直接删除
+            BigDecimal orderId = DataChange.dataToBigDecimal(map1.get("orderId"));
+            if(orderId != null && orderId.intValue() != 0) {
+                i += amsSaleOrderMaterialMapper.deleteToMergeOrder(orderId);
+            }
+            //找出该车序号的物资子表ID
+            List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(saleOrderMaterialId);
+            for (BigDecimal truckNoMaterialId : truckNoMaterialIds) {
+                AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
+                amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
+                amsSaleTrucknoMaterial.setSaleOrderMaterialId(toMergeSaleOrderMaterialID);
+                amsSaleTrucknoMaterial.setInsertUpdateRemark("执行合并操作,原车序号ID为" + saleOrderMaterialId);
+                i += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
+            }
+        }
+        return i;
+    }
 }

+ 4 - 16
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -899,25 +899,13 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             // 得到承运商
             BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
             // 查询到车序号的单价
-            BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map);
+            //BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map);
             // 得到详细地址id
             BigDecimal placeId = amsSaleOrderMapper.getPlaceId(saleOrderMaterialId);
+            BigDecimal priceId = null;
             // 如果详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配)
-            if (priceId == null && selfMention.equals("否")) {
-                // 找到详细地址下的省市县id
-                BigDecimal addressId = amsSaleOrderMapper.getAddressByPlace(placeId);
-                // 根据省市县匹配出省市县下的所有单价
-                Map<String, Object> hashMap = new HashMap<>();
-                hashMap.put("addressId", addressId);
-                hashMap.put("carrierId", carrierId);
-                List<Map<String, Object>> priceList = amsSaleOrderMapper.getAddressPriceList(hashMap);
-                // 如果长度为0,说明此地址所在省市县内也无单价
-                if (priceList != null && priceList.size() != 0) {
-                    Map<String, Object> priceMap = priceList.get(0);
-                    priceId = (BigDecimal) priceMap.get("priceId");
-                } else {
-                    priceId = new BigDecimal(2400);
-                }
+            if (placeId != null && selfMention.equals("否")) {
+                 priceId = amsSaleOrderMapper.getPriceIdByPlaceId(placeId);
             }
             // 运输线路id
             BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));

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

@@ -4707,5 +4707,12 @@
     order by asom.SALE_ORDER_MATERIAL_ID desc
     fetch first 1 row only
   </select>
+  <select id="getPriceIdByPlaceId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+    SELECT * FROM AMS_CONTRACT_TRANSPORT_PRICE ACTP
+    WHERE ACTP.TYPE = 1
+    and ACTP.DELETED = 0
+    AND ACTP.PLACE_ID = #{placeId}
+    fetch first 1 row only
+  </select>
 
 </mapper>

+ 5 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -628,6 +628,7 @@
       #{id}
     </foreach>
   </delete>
+
   <!-- 友情提示!!!-->
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
@@ -944,4 +945,8 @@
           OO.INSERT_UPDATE_REMARK = '关闭金蝶分录,改变运单状态'
       where OO.ORDER_ID = #{orderId}
   </update>
+  <delete id="deleteToMergeOrder" parameterType="java.math.BigDecimal">
+    delete from OMSTRUCK_ORDER OO
+    where oo.ORDER_ID = #{orderId}
+  </delete>
 </mapper>

+ 4 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleTrucknoMaterialMapper.xml

@@ -422,5 +422,9 @@
     group by
     truckno_material.MATERIAL_ID
   </select>
+    <select id="getTruckNoMaterialIds" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+      SELECT ASTM.TRUCKNO_MATERIAL_ID FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+      WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </select>
 
 </mapper>