liyg 2 år sedan
förälder
incheckning
f2097c2f56

+ 18 - 0
src/main/java/com/steerinfo/dil/feign/OtmsFeign.java

@@ -0,0 +1,18 @@
+package com.steerinfo.dil.feign;
+
+import com.steerinfo.framework.controller.RESTfulResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@FeignClient(value = "DAL-OTMS-API-DEV", url = "${openfeign.OTMSFeign.url}")
+public interface OtmsFeign {
+
+    @GetMapping("/api/v1/otms/pathDisplay/getCurrentLocation")
+    RESTfulResult getCurrentLocation(@RequestParam("capcityNumber") String capcityNumber) throws Exception;
+
+}

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

@@ -178,4 +178,5 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
 
     int updateSaleOrderStatus(String saleNumber);
 
+    Integer getDispachSwitch();
 }

+ 17 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -4,11 +4,13 @@ import com.alibaba.druid.support.json.JSONUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.feign.JoinFeign;
+import com.steerinfo.dil.feign.OtmsFeign;
 import com.steerinfo.dil.feign.TmsTruckFeign;
 import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.IAmsSaleOrderService;
 import com.steerinfo.dil.util.*;
+import com.steerinfo.framework.controller.RESTfulResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -93,6 +95,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Resource
     EasSaleOrderStatusUtil easSaleOrderStatusUtil;
 
+    @Autowired
+    OtmsFeign otmsFeign;
 
     @Override
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
@@ -817,6 +821,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Override
     public int dispatchSteelOrder(List<Map<String, Object>> mapList) throws Exception {
         Map<String, Object> stringObjectMap = mapList.get(0);
+        Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
         Integer saleStatus = amsSaleOrderMapper.findStatus(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
         String selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
         if (saleStatus == 1) {
@@ -840,6 +845,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 }
                 throw new Exception(capacityNumber+"有未完成的运输订单任务,无法派单");
             }
+            if(isCheckGps!=null && isCheckGps==0){
+                Map<String,Object> locationResult = null;
+                try{
+                    Map<String,Object> data = (Map<String,Object>)otmsFeign.getCurrentLocation(capacityNumber).getData();
+                    locationResult = (Map<String,Object>)data.get("result");
+                }catch (Exception e){
+                  //出现任何异常不抛出,不终止程序
+                }
+                if(locationResult==null || locationResult.get("lon")==null || locationResult.get("lat")==null){
+                    throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
+                }
+            }
             // 得到车序号表主键
             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
             // 得到承运商

+ 2 - 1
src/main/resources/application-prod.yml

@@ -20,7 +20,8 @@ openfeign:
       url: ${IMFEIGN_URL:172.16.33.166:8055}
    JoinFeign:
      url: ${JOINFEIGN_URL:172.16.33.166:8066}
-
+   OTMSFeign:
+     url: ${OTMSFEIGN_URL:172.16.33.166:8038}
  #正式环境端口
 
 server:

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

@@ -4620,4 +4620,8 @@
       set aso.DELETED = 2
       WHERE ASO.SALE_NUMBER = #{saleNumber}
     </update>
+  <select id="getDispachSwitch" resultType="java.lang.Integer">
+    SELECT IS_OK "isOk" FROM AMS_DISPATCH_SWITCH
+    fetch NEXT 1 rows only
+  </select>
 </mapper>