luobang 2 лет назад
Родитель
Сommit
b5849eb919

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

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

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

@@ -55,4 +55,6 @@ public interface AmsDispatchSaleOrderMapper extends IBaseMapper<AmsDispatchSaleO
 
     List<BigDecimal> getDispatchCarriers(BigDecimal saleOrderMaterialId);
 
+    List<BigDecimal> selectDispatchIdsBySale(BigDecimal toSplitSaleOrderMaterialID);
+
 }

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

@@ -42,4 +42,6 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     BigDecimal selectTransPortOrderId(BigDecimal closeWlEntryId);
 
+    List<BigDecimal> getSaleMaterialIds(BigDecimal saleOrderMaterialId);
+
 }

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

@@ -73,4 +73,6 @@ public interface IAmsSaleOrderMaterialService{
     Map<String, Object> getBenPrice(Map<String, Object> map);
 
     int mergeOrder(Map<String, Object> map);
+
+    int splitOrder(Map<String, Object> map);
 }

+ 29 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -49,6 +49,8 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
     AmsContractTransportPriceMapper amsContractTransportPriceMapper;
     @Autowired
     RmsReceivePlaceMapper rmsReceivePlaceMapper;
+    @Autowired
+    AmsSaleMaterialMapper amsSaleMaterialMapper;
 
     @Override
     public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
@@ -998,6 +1000,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         int i = 0 ;
         List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
         BigDecimal toMergeSaleOrderMaterialID = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderMaterialId"));
+        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderId"));
         for (Map<String,Object> map1 : mapList) {
             //获取车序号ID
             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map1.get("saleOrderMaterialId"));
@@ -1008,6 +1011,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             }
             //找出该车序号的物资子表ID
             List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(saleOrderMaterialId);
+            List<BigDecimal> saleMaterialIds = amsSaleMaterialMapper.getSaleMaterialIds(saleOrderMaterialId);
             for (BigDecimal truckNoMaterialId : truckNoMaterialIds) {
                 AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
                 amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
@@ -1015,7 +1019,32 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
                 amsSaleTrucknoMaterial.setInsertUpdateRemark("执行合并操作,原车序号ID为" + saleOrderMaterialId);
                 i += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
             }
+            for (BigDecimal saleMaterialId : saleMaterialIds) {
+                AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
+                amsSaleMaterial.setSaleMaterialId(saleMaterialId);
+                amsSaleMaterial.setSaleOrderId(saleOrderId);
+                amsSaleMaterial.setInsertUpdateRemark("执行合并操作,原销售订单号为" + saleOrderId);
+                i += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
+            }
+        }
+        return i;
+    }
+
+
+    @Override
+    public int splitOrder(Map<String, Object> map) {
+        int i = 0;
+        List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
+        BigDecimal toSplitSaleOrderMaterialID = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderMaterialId"));
+        //先做异常处理.如果该车序号对应多条授权承运商实绩
+        List<BigDecimal> dispatchIds = amsDispatchSaleOrderMapper.selectDispatchIdsBySale(toSplitSaleOrderMaterialID);
+        if(dispatchIds != null && dispatchIds.size() > 1) {
+            //删除所有已授权,
         }
+        //根据主键ID查询车序号子表主键id
+        List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(toSplitSaleOrderMaterialID);
+        //首先根据车序号主键id查询车序号实体类
+
         return i;
     }
 }

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

@@ -703,4 +703,8 @@
         SELECT ADSO.DISPATCH_ID "dispatchId" FROM AMS_DISPATCH_SALE_ORDER ADSO
         WHERE ADSO.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
     </select>
+    <select id="selectDispatchIdsBySale" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT ADSO.DISPATCH_ID FROM AMS_DISPATCH_SALE_ORDER ADSO
+        WHERE ADSO.SALE_ORDER_MATERIAL_ID = #{toSplitSaleOrderMaterialID}
+    </select>
 </mapper>

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

@@ -855,6 +855,10 @@
       ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
       WHERE ASM.SALE_MATERIAL_ID = #{closeWlEntryId}
     </select>
+    <select id="getSaleMaterialIds" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+      SELECT ASTM.MATERIAL_ID FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+      WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </select>
     <update id="updateSaleMaterialMakeDate">
     update AMS_SALE_MATERIAL ASM
     SET ASM.SALE_MAKE_DATE = #{easprimaryIdMakeDate}

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

@@ -4708,7 +4708,7 @@
     fetch first 1 row only
   </select>
   <select id="getPriceIdByPlaceId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
-    SELECT * FROM AMS_CONTRACT_TRANSPORT_PRICE ACTP
+    SELECT ACTP.PRICE_ID FROM AMS_CONTRACT_TRANSPORT_PRICE ACTP
     WHERE ACTP.TYPE = 1
     and ACTP.DELETED = 0
     AND ACTP.PLACE_ID = #{placeId}