HUJIANGUO пре 3 година
родитељ
комит
a78c3c763c

+ 2 - 0
src/main/java/com/steerinfo/dil/controller/AmsDispatchSaleOrderController.java

@@ -11,6 +11,7 @@ import com.steerinfo.framework.service.pagehelper.PageHelper;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import oracle.jdbc.proxy.annotation.Post;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -130,4 +131,5 @@ public class AmsDispatchSaleOrderController extends BaseRESTfulController {
         return success(pageList);
     }
 
+
 }

+ 33 - 30
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -392,36 +392,39 @@ public class AmsSaleOrderController extends BaseRESTfulController {
      */
     @PostMapping("/addAmsDispatchSaleOrder")
     public RESTfulResult addAmsDispatchSaleOrder(@RequestBody(required = false) List<Map<String,Object>> mapValue){
-        if(mapValue==null){
-            return failed();
-        }
-        for (Map<String,Object> m:mapValue
-        ) {
-            Integer id = Integer.parseInt(m.get("saleOrderMaterialId").toString()) ;
-            System.out.println(id);
-            //通过主键Id获取地址id
-            Integer a=amsSaleOrderMaterialService.selectById(new BigDecimal(id));
-            //通过地址id查询承运商id
-            List<Integer> carriers = amsSaleOrderService.getCarrier(a);
-            //判断是否只有一个承运商
-            //如果收货地区为成都重庆,则有多个一个地区对应多个承运商
-            if(carriers.size()==1) {
-                //新增固定派单
-                AmsDispatchSaleOrder ad = new AmsDispatchSaleOrder();
-                ad.setDispatchId(DataChange.dataToBigDecimal(m.get("dispatchId")));
-                ad.setSaleOrderMaterialId(new BigDecimal(id));
-                ad.setCarrierId(new BigDecimal(carriers.get(0)));
-                ad.setDispatchDealTime(new Date());
-                ad.setDispatchTime(new Date());
-                //成交类型(0:定向派单;1:公开抢单)
-                ad.setDispatchType(new BigDecimal(0));
-                //销售订单车序号状态(0:已下发;1:未下发)
-                ad.setDispatchStatus(new BigDecimal(0));
-                int i = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(ad);
-                return success(i);
-            }
-        }
-        return success();
+//        if(mapValue==null){
+//            return failed();
+//        }
+//        for (Map<String,Object> m:mapValue
+//        ) {
+//            Integer id = Integer.parseInt(m.get("saleOrderMaterialId").toString()) ;
+//            System.out.println(id);
+//            //通过主键Id获取地址id
+//            Integer a=amsSaleOrderMaterialService.selectById(new BigDecimal(id));
+//            //通过地址id查询省市县
+//            Map<String,Object> province = amsSaleOrderService.getCarrier(a);
+//            //根据省市县查询承运商
+//            List<Map<String,Object>> carrierList=amsSaleOrderService.selectCarrierIdByprovince(province);
+//            //判断是否只有一个承运商
+//            //如果收货地区为成都重庆,则有多个一个地区对应多个承运商
+//            if(carrierList.size()==1) {
+//                //新增固定派单
+//                AmsDispatchSaleOrder ad = new AmsDispatchSaleOrder();
+//                ad.setDispatchId(DataChange.dataToBigDecimal(m.get("dispatchId")));
+//                ad.setSaleOrderMaterialId(new BigDecimal(id));
+//                ad.setCarrierId(carrierList.get(0));
+//                ad.setDispatchDealTime(new Date());
+//                ad.setDispatchTime(new Date());
+//                //成交类型(0:定向派单;1:公开抢单)
+//                ad.setDispatchType(new BigDecimal(0));
+//                //销售订单车序号状态(0:已下发;1:未下发)
+//                ad.setDispatchStatus(new BigDecimal(0));
+//                int i = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(ad);
+//                return success(i);
+//            }
+//        }
+        int result = amsSaleOrderService.addAmsDispatchSaleOrder(mapValue);
+        return success(result);
     }
     /**
      * 公开派单:查询未分派车辆的销售订单的车序号

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

@@ -36,5 +36,5 @@ public interface AmsDispatchSaleOrderMapper extends IBaseMapper<AmsDispatchSaleO
     List<Map<String, Object>> getPCDispatchSaleOrderList(Map<String, Object> mapValue);
 
     // 空与非空
-    List<BigDecimal> getNullOrNotNull(BigDecimal dispatchId);
+    List<Map<String,Object>> getNullOrNotNull(BigDecimal dispatchId);
 }

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

@@ -50,5 +50,9 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
 
     //根据销售订单id查找车序号id和车序号与物资中间表主键
     List<Map<String,Object>> selectSaleOrderMaterialIdBySaleOrderId(BigDecimal saleOrderId);
+    //根据中标区域省市县查询承运商id
+    BigDecimal selectCarrierIdByprovince(Map<String,Object> map);
+    //根据收货地址id查询省市县
+    Map<String,Object> selectProvince(Integer addressId);
 
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/service/IAmsDispatchSaleOrderService.java

@@ -61,4 +61,11 @@ public interface IAmsDispatchSaleOrderService{
      * @return
      */
     List<Map<String, Object>> getPCDispatchSaleOrderList(Map<String, Object> mapValue);
+
+    /**
+     * 接收订单
+     * @param dispatchId
+     * @return
+     */
+    int receiveDispatchOrder(BigDecimal dispatchId);
 }

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

@@ -69,7 +69,9 @@ public interface IAmsSaleOrderService {
     List<Map<String, Object>> getSaleOrderList(Map<String, Object> mapValue);
 
     //获得承运商
-    List<Integer> getCarrier(Integer integer);
+    Map<String,Object> getCarrier(Integer addressId);
+
+
 
     //根据销售订单id查找基础信息,渲染数据
     Map<String, Object> selectInfoBySaleOrderId(BigDecimal saleOrderId);
@@ -77,4 +79,5 @@ public interface IAmsSaleOrderService {
     //根据销售订单id查找物资信息,渲染数据
     List<Map<String,Object>> selectMaterialInfoBySaleOrderId(BigDecimal saleOrderId);
 
+    int addAmsDispatchSaleOrder(List<Map<String, Object>> mapValue);
 }

+ 18 - 8
src/main/java/com/steerinfo/dil/service/impl/AmsDispatchSaleOrderServiceImpl.java

@@ -167,7 +167,7 @@ public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatch
         }
         for (Map<String, Object> map : mapList) {
             BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
-            List<BigDecimal> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
+            List<Map<String,Object>> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
             if (orderIdList != null || orderIdList.size() != 0) {
                 mapList.remove(map);
             }
@@ -252,7 +252,7 @@ public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatch
         }
         for (Map<String, Object> map : mapList) {
             BigDecimal dispatchId = (BigDecimal) map.get("dispatchId");
-            List<BigDecimal> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
+            List<Map<String,Object>> orderIdList = amsDispatchSaleOrderMapper.getNullOrNotNull(dispatchId);
             if (orderIdList != null || orderIdList.size() != 0) {
                 mapList.remove(map);
             }
@@ -266,13 +266,13 @@ public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatch
                     if (materialMap != null) {
                         String materialName = (String) materialMap.get("materialName");
                         allMaterialName += materialName + "/";
-                        String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
+                        BigDecimal materialTheoreticalWeight = (BigDecimal) materialMap.get("materialTheoreticalWeight");
                         if (materialTheoreticalWeight != null) {
                             allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
                         }
-                        String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
+                        BigDecimal saleOrderMaterialNumber = (BigDecimal) materialMap.get("saleOrderMaterialNumber");
                         allMaterialNumber += saleOrderMaterialNumber + "/";
-                        String specificationModel = materialMap.get("specificationModel").toString();
+                        String specificationModel = (String) materialMap.get("specificationModel");
                         if (specificationModel != null) {
                             allMaterialSpecificationModel += specificationModel + "/";
                         }
@@ -357,13 +357,13 @@ public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatch
                 if (materialMap != null) {
                     String materialName = (String) materialMap.get("materialName");
                     allMaterialName += materialName + "/";
-                    String materialTheoreticalWeight = materialMap.get("materialTheoreticalWeight").toString();
+                    BigDecimal materialTheoreticalWeight = (BigDecimal)materialMap.get("materialTheoreticalWeight");
                     if (materialTheoreticalWeight != null) {
                         allMaterialTheoreticalWeight += materialTheoreticalWeight + "/";
                     }
-                    String saleOrderMaterialNumber = materialMap.get("saleOrderMaterialNumber").toString();
+                    BigDecimal saleOrderMaterialNumber = (BigDecimal) materialMap.get("saleOrderMaterialNumber");
                     allMaterialNumber += saleOrderMaterialNumber + "/";
-                    String specificationModel = materialMap.get("specificationModel").toString();
+                    String specificationModel = (String) materialMap.get("specificationModel");
                     if (specificationModel != null) {
                         allMaterialSpecificationModel += specificationModel + "/";
                     }
@@ -404,4 +404,14 @@ public class AmsDispatchSaleOrderServiceImpl extends BaseServiceImpl<AmsDispatch
         }
         return dispatchSaleOrderList;
     }
+
+    /**
+     * 接收定向派单
+     * @param dispatchId
+     * @return
+     */
+    @Override
+    public int receiveDispatchOrder(BigDecimal dispatchId) {
+        return 0;
+    }
 }

+ 56 - 3
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -1,8 +1,10 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.mapper.AmsDispatchSaleOrderMapper;
 import com.steerinfo.dil.mapper.AmsSaleOrderMapper;
 import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
 import com.steerinfo.dil.mapper.AmsSaleTrucknoMaterialMapper;
+import com.steerinfo.dil.model.AmsDispatchSaleOrder;
 import com.steerinfo.dil.model.AmsSaleOrder;
 import com.steerinfo.dil.model.AmsSaleOrderMaterial;
 import com.steerinfo.dil.model.AmsSaleTrucknoMaterial;
@@ -40,6 +42,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     private AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
     @Autowired
     private AmsSaleTrucknoMaterialMapper trucknoMaterialMapper;
+    @Autowired
+    AmsDispatchSaleOrderMapper amsDispatchSaleOrderMapper;
 
     @Override
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
@@ -121,11 +125,26 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             //生成主键
             amsSaleOrderMaterial.setSaleOrderMaterialId(amsSaleOrderMaterialMapper.selectMaxId());
             amsSaleOrderMaterial.setSaleOrderId(amsSaleOrder.getSaleOrderId());
+            // 生成定向派单
+            AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
+            amsDispatchSaleOrder.setDispatchId(amsDispatchSaleOrderMapper.selectOtherId());
+            amsDispatchSaleOrder.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
             //获取收货地址
             Integer saleShipperAddressId =(Integer) map2.get("saleShipperAddressId");
             amsSaleOrderMaterial.setSaleShippingAddressId(new BigDecimal(saleShipperAddressId));
+            //根据收货地址查询承运商
+            Map<String,Object> map4 = amsSaleOrderMapper.selectProvince(saleShipperAddressId);
+            BigDecimal carrierId = amsSaleOrderMapper.selectCarrierIdByprovince(map4);
             //获取收货方电话号码
-
+            amsDispatchSaleOrder.setCarrierId(carrierId);
+            amsDispatchSaleOrder.setDispatchTime(new Date());
+            //设置成交类型
+            amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
+            //设置下发状态为未下发
+            amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
+            amsDispatchSaleOrder.setInsertTime(new Date());
+            amsDispatchSaleOrder.setInsertUsername("admin");
+            amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
             amsSaleOrderMaterial.setSaleOrderConsigneeTel(map2.get("saleOrderConsigneeTel").toString());
             //获取收货日期
             String saleDateOfReceipt =(String) map2.get("saleDateOfReceipt");
@@ -233,6 +252,25 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             //设置删除状态
             amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
             i += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
+            // 生成定向派单
+            AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
+            amsDispatchSaleOrder.setDispatchId(amsDispatchSaleOrderMapper.selectOtherId());
+            amsDispatchSaleOrder.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
+            //获取收货地址
+            Integer saleShipperAddressId =(Integer) map3.get("saleShipperAddressId");
+            amsSaleOrderMaterial.setSaleShippingAddressId(new BigDecimal(saleShipperAddressId));
+            //根据收货地址查询承运商
+            Map<String,Object> map4 = amsSaleOrderMapper.selectProvince(saleShipperAddressId);
+            BigDecimal carrierId = amsSaleOrderMapper.selectCarrierIdByprovince(map4);
+            //获取收货方电话号码
+            amsDispatchSaleOrder.setCarrierId(carrierId);
+            amsDispatchSaleOrder.setDispatchTime(new Date());
+            //设置成交类型
+            amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
+            //设置下发状态为已下发
+            amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
+            amsDispatchSaleOrder.setInsertTime(new Date());
+            amsDispatchSaleOrder.setInsertUsername("admin");
             //新增车序号与物资中间表
             AmsSaleTrucknoMaterial trucknoMaterial = new AmsSaleTrucknoMaterial();
             trucknoMaterial.setTrucknoMaterialId(trucknoMaterialMapper.selectMaxId());
@@ -320,10 +358,12 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return amsSaleOrderMapper.getSaleOrderList(mapValue);
     }
 
-    public List<Integer> getCarrier(Integer integer) {
-        return amsSaleOrderMapper.getCarrier(integer);
+    public Map<String, Object> getCarrier(Integer addressId) {
+        return amsSaleOrderMapper.selectProvince(addressId);
     }
 
+
+
     /**
      * 根据销售订单id查找信息
      */
@@ -342,4 +382,17 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     public List<Map<String, Object>> selectMaterialInfoBySaleOrderId(BigDecimal saleOrderId) {
         return amsSaleOrderMapper.selectMaterialInfoBySaleOrderId(saleOrderId);
     }
+
+
+    @Override
+    public int addAmsDispatchSaleOrder(List<Map<String, Object>> mapValue) {
+        int result = 0;
+        for (Map<String,Object> map : mapValue) {
+            Integer dispatchId = (Integer)map.get("dispatchId");
+            AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(new BigDecimal(dispatchId));
+            amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(1));
+            result = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
+        }
+        return result;
+    }
 }

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

@@ -476,7 +476,6 @@
                aaaa.SALE_ORDER_CONSIGNEE         AS "saleOrderConsignee",
                aaaa.SALE_ORDER_CONSIGNEE_TEL     AS "saleOrderConsigneeTel",
                RCA.CARRIER_NAME                  AS "carrierName"
-
         FROM AMS_DISPATCH_SALE_ORDER ADSO
                  LEFT JOIN (SELECT *
                             FROM AMS_SALE_ORDER_MATERIAL asom
@@ -520,7 +519,7 @@
           AND ADSO.CARRIER_ID = #{carrierId}
     </select>
 
-    <select id="getNullOrNotNull" parameterType="DECIMAL" resultType="java.util.List">
+    <select id="getNullOrNotNull" parameterType="DECIMAL" resultType="java.util.Map">
         SELECT OO.ORDER_ID AS "orderId"
         FROM AMS_DISPATCH_SALE_ORDER ADSO
                  LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM

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

@@ -24,13 +24,13 @@
     <result column="DELETED" jdbcType="DECIMAL" property="deleted" />
   </resultMap>
   <sql id="columns">
-    SALE_ORDER_ID, PLAN_ID, SALE_NUMBER, SHIPPER_ID, RECEIVE_ID, SALE_ACCOUNT_BALANCE, 
+    SALE_ORDER_ID, PLAN_ID, SALE_NUMBER, SHIPPER_ID, RECEIVE_ID, SALE_ACCOUNT_BALANCE,
     SALE_CURRENT_ORDER_AMOUNT, SALE_HISTORICAL_ORDER_AMOUNT, SALE_ORDER_STATUS, SALE_ORDER_RECEIVE_CUSTOMER, 
     SALE_ORDER_ISSELF_MENTION, SALE_UNIT_PRICE, SALE_ORDER_TAX, SALE_REMARK, INSERT_USERNAME, 
     INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED
   </sql>
   <sql id="columns_alias">
-    t.SALE_ORDER_ID, t.PLAN_ID, t.SALE_NUMBER, t.SHIPPER_ID, t.RECEIVE_ID, t.SALE_ACCOUNT_BALANCE, 
+    t.SALE_ORDER_ID, t.PLAN_ID, t.SALE_NUMBER, t.SHIPPER_ID, t.RECEIVE_ID, t.SALE_ACCOUNT_BALANCE,
     t.SALE_CURRENT_ORDER_AMOUNT, t.SALE_HISTORICAL_ORDER_AMOUNT, t.SALE_ORDER_STATUS, 
     t.SALE_ORDER_RECEIVE_CUSTOMER, t.SALE_ORDER_ISSELF_MENTION, t.SALE_UNIT_PRICE, t.SALE_ORDER_TAX, 
     t.SALE_REMARK, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, 
@@ -1193,7 +1193,8 @@
                     ORDER BY ASTM.TRUCKNO_MATERIAL_ID
                   )
              WHERE ROWNUM = 1
-             ) "weight"
+             ) "weight",
+           ADSO.INSERT_TIME AS "insertTime"
     FROM AMS_SALE_ORDER ASO
            JOIN AMS_SALE_ORDER_MATERIAL ASOM
                 ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
@@ -1208,6 +1209,21 @@
     WHERE ASO.SALE_ORDER_STATUS IN (2, 4)
       AND ADSO.DISPATCH_STATUS = #{status}
       AND ADSO.DISPATCH_TYPE = 0
+    order by ADSO.INSERT_TIME DESC
+  </select>
+  <select id="selectCarrierIdByprovince" resultType="java.math.BigDecimal" parameterType="java.util.Map">
+    SELECT RC.CARRIER_ID "carrierId"
+    FROM RMS_BID_AREA RBA
+    LEFT JOIN RMS_CARRIER RC
+    ON RBA.BID_AREA_ID=RC.CARRIER_BID_AREA_ID
+    WHERE RBA.BID_AREA_PROVINCE=#{province} AND RBA.BID_AREA_CITY=#{ditrict} AND RBA.BID_AREA_COUNTY=#{addressTown}
+  </select>
+  <select id="selectProvince" resultType="java.util.Map" parameterType="java.lang.Integer">
+    SELECT RRA.ADDRESS_PROVINCE "province",
+           RRA.ADDRESS_DISTRICT  "ditrict",
+           RRA.ADDRESS_TOWN "addressTown"
+    FROM RMS_RECEIVE_ADDRESS RRA
+    WHERE RRA.ADDRESS_ID=#{addressId}
   </select>
 <!-- 销售公司查询已审核的销售订单 -->
   <select id="getSaleOrderListBySaleCompany" parameterType="java.util.Map" resultType="java.util.Map">
@@ -1347,7 +1363,7 @@
 
   <!-- 通过收货地址,匹配对应的承运商-->
   <select id="getCarrier" parameterType="java.lang.Integer" resultType="java.lang.Integer">
-    select rc.carrier_id from rms_receive_address rra join rms_carrier rc on rra.address_town = rc.carrier_bid_area
+    select rc.carrier_id from rms_receive_address rra LEFT join rms_carrier rc on rra.ADDRESS_ID = rc.CARRIER_BID_AREA_ID
     WHERE rra.address_id = #{param}
   </select>