Parcourir la source

修改字段格式,添加对接测试代码

zhifei il y a 1 an
Parent
commit
ac35f18c72

+ 16 - 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/tianao/TianaoApiContoller.java

@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.warewms.tianao;
 
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.ams.agv.ndc.entity.CarStatus;
+import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.tianao.domian.TianaoTask;
 import com.ruoyi.tianao.service.TianaoService;
@@ -8,10 +10,7 @@ import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * Created with IntelliJ IDEA.
@@ -38,17 +37,27 @@ public class TianaoApiContoller extends BaseController {
     @PostMapping(value = "/taskManage")
     public JSONObject taskManage(@Validated @RequestBody TianaoTask tianaoTask) {
         //新增任务
-        if ("0".equals(tianaoTask.getTaskType())){
+        if ("0".equals(tianaoTask.getTask_type())){
             return  tianaoService.addTask(tianaoTask);
         }
         //修改任务目标卸货点
-        if ("5".equals(tianaoTask.getTaskType())){
+        if ("5".equals(tianaoTask.getTask_type())){
             return  tianaoService.updateTask(tianaoTask);
         }
-        if ("10".equals(tianaoTask.getTaskType())){
+        if ("10".equals(tianaoTask.getTask_type())){
             return  tianaoService.cancelTask(tianaoTask);
         }
         return tianaoService.returnJson("e0001","任务取消出错","fail");
     }
 
+    @GetMapping(value = "/testTask")
+    public String testTask( WcsTask wcsTask) {
+        return tianaoService.testTask(wcsTask);
+    }
+
+    @GetMapping(value = "/testAgvAddress")
+    public String testAgvAddress(CarStatus car) {
+        return tianaoService.testAgvAddress(car);
+    }
+
 }

+ 12 - 12
ruoyi-admin/src/main/resources/application-prod.yml

@@ -6,7 +6,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://localhost:3306/warewms-hualan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+                url: jdbc:mysql://localhost:3306/warewms-tianao?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
                 username: warewms
                 password: warewms123
             # 从库数据源
@@ -64,50 +64,50 @@ logging:
 
 # 是否开启服务
 init-task:
-    autosend: true # 自动下发任务
-    aciservice: true # ndc通讯
+    autosend: false # 自动下发任务
+    aciservice: false # ndc通讯
 
 modbus:
     tcp-master:
         first: # 自动门(靠马路)
-            open: true
+            open: false
             host: 192.168.42.201
             port: 9000
         second: # 自动门(靠里面)
-            open: true
+            open: false
             host: 192.168.42.202
             port: 9000
         sixth: # 自动门(靠马路-第二层)
-            open: true
+            open: false
             host: 192.168.42.210
             port: 9000
         seventh: # 卷帘门
-            open: true
+            open: false
             host: 192.168.42.211
             port: 9000
         third: # 按钮盒
-            open: true
+            open: false
             host: 192.168.42.205
             port: 9000
         fourth: # 充电机(三向车)
-            open: true
+            open: false
             host: 192.168.42.208
             port: 8899
         fifth: # 充电机(迷你堆垛)
-            open: true
+            open: false
             host: 192.168.42.209
             port: 8899
 
 
 rfid:
     first: # 靠马路
-        open: true
+        open: false
         host: 192.168.42.203
         port: 5084
         number-of-tags: 3 # 一次读取标签的数量
         timeout-milliseconds: 5000
     second: # 靠里面
-        open: true
+        open: false
         host: 192.168.42.204
         port: 5084
         number-of-tags: 3 # 一次读取标签的数量

+ 7 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -32,12 +32,12 @@ server:
 
 # Spring配置
 spring:
-  # 资源信息
+  # 资源信息x
   messages:
     # 国际化资源文件路径
     basename: i18n/messages
   profiles:
-    active: dev
+    active: prod
   # 文件上传
   servlet:
     multipart:
@@ -118,3 +118,8 @@ xss:
   excludes: /system/notice
   # 匹配链接
   urlPatterns: /system/*,/monitor/*,/tool/*
+
+tianao:
+  address: http://61.169.55.83:7225
+  taskBackUrl: http://61.169.55.83:7225/Api_Changlian/ForksUpdateTask
+  AGVStatusBackUrl: http://61.169.55.83:7225/Api_Changlian/ForksUpdateAgvAxis

+ 10 - 10
warewms-tianao/src/main/java/com/ruoyi/tianao/domian/TianaoTask.java

@@ -23,56 +23,56 @@ public class TianaoTask{
      * LCS任务编码
      */
     @NotEmpty(message = "LCS任务编码不能为空")
-    private  String lcsTaskId;
+    private  String lcs_task_id;
 
     /**
      * 托盘号
      */
     @NotEmpty(message = "托盘号不能为空")
-    private  String containerNo;
+    private  String container_no;
 
     /**
      * 任务类型
      */
     @NotEmpty(message = "任务类型不能为空")
-    private  String taskType;
+    private  String task_type;
 
     /**
      * 起始位置
      */
     @NotEmpty(message = "起始位置不能为空")
-    private  String fromLocation;
+    private  String from_location;
 
     /**
      *  目标位置
      */
     @NotEmpty(message = "目标位置不能为空")
-    private  String toLocation;
+    private  String to_location;
 
     /**
      *
      */
-    private  String reservedField01;
+    private  String reserved_field01;
 
     /**
      *
      */
-    private  String reservedField02;
+    private  String reserved_field02;
 
     /**
      *
      */
-    private  String reservedField03;
+    private  String reserved_field03;
 
     /**
      *
      */
-    private  String reservedField04;
+    private  String reserved_field04;
 
     /**
      *
      */
-    private  String reservedField05;
+    private  String reserved_field05;
 
     /**
      * 任务下发时间

+ 6 - 0
warewms-tianao/src/main/java/com/ruoyi/tianao/service/TianaoService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.tianao.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.ams.agv.ndc.entity.CarStatus;
+import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.tianao.domian.TianaoTask;
 
 /**
@@ -21,4 +23,8 @@ public interface TianaoService {
     JSONObject updateTask(TianaoTask tianaoTask);
 
     JSONObject returnJson(String code, String msg, String state);
+
+    String testTask(WcsTask wcsTask);
+
+    String testAgvAddress(CarStatus car);
 }

+ 61 - 39
warewms-tianao/src/main/java/com/ruoyi/tianao/service/impl/TianaoServiceImpl.java

@@ -13,7 +13,6 @@ import com.ruoyi.ams.task.service.IWcsTaskService;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseLocationInfo;
 import com.ruoyi.base.service.IBaseLocationInfoService;
-import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.DateUtils;
@@ -22,6 +21,7 @@ import com.ruoyi.tianao.domian.TianaoTask;
 import com.ruoyi.tianao.service.TianaoService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.event.EventListener;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -61,9 +61,10 @@ public class TianaoServiceImpl implements TianaoService {
     @Autowired
     private IAmsTaskService amsTaskService;
 
-    private final String  taskBackUrl = "" ;
-
-    private final String  AGVStatusBackUrl = "" ;
+    @Value("${tianao.taskBackUrl}")
+    private String  taskBackUrl;
+    @Value("${tianao.AGVStatusBackUrl}")
+    private String  AGVStatusBackUrl ;
 
     private final List<Long> statusLsit = Arrays.asList(11L,12L,5L,6L,7L);
 
@@ -73,37 +74,40 @@ public class TianaoServiceImpl implements TianaoService {
 
     @Override
     public JSONObject addTask(TianaoTask tianaoTask) {
-        if (redisCache.checkIsLock(tianaoTask.getLcsTaskId())){
+        if (redisCache.checkIsLock(tianaoTask.getLcs_task_id())){
             return returnJson("e0001","任务Id已重复","fail");
         }
-        if (tianaoTask.getFromLocation().equals(tianaoTask.getToLocation())) {
-            throw new BaseException("起始库位与目标库位不能相同");
+        if (tianaoTask.getFrom_location().equals(tianaoTask.getTo_location())) {
+            return returnJson("e0001","起始库位与目标库位不能相同","fail");
         }
-        BaseLocationInfo formAddress = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getFromLocation(), Constant.WAREHOUSE_ID);
+        BaseLocationInfo formAddress = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getFrom_location(), Constant.WAREHOUSE_ID);
         if(ObjectUtil.isNull(formAddress)){
-            throw new BaseException("起始位置不存在,请联系管理员");
+            return returnJson("e0001","起始位置不存在","fail");
         }
-        BaseLocationInfo toAddress = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getToLocation(), Constant.WAREHOUSE_ID);
-        if(ObjectUtil.isNull(formAddress)){
-            throw new BaseException("目标位置不存在,请联系管理员");
+        BaseLocationInfo toAddress = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getTo_location(), Constant.WAREHOUSE_ID);
+        if(ObjectUtil.isNull(toAddress)){
+            return returnJson("e0001","目标位置不存在","fail");
+        }
+        if("N".equals(toAddress.getIsEmpty())){
+            return returnJson("e0001","目标位置库存不为空","fail");
         }
         WcsTask wcsTask = new WcsTask();
         wcsTask.setTaskNo(System.currentTimeMillis() + "");
         wcsTask.setState(9L);
         wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
-        wcsTask.setBusinessType(tianaoTask.getTaskType());
+        wcsTask.setBusinessType(tianaoTask.getTask_type());
         wcsTask.setAreaFrom(formAddress.getZoneId().toString());
-        wcsTask.setLocationFrom(tianaoTask.getFromLocation());
+        wcsTask.setLocationFrom(formAddress.getId().toString());
         wcsTask.setAreaTo(toAddress.getZoneId().toString());
-        wcsTask.setLocationTo(tianaoTask.getToLocation());
+        wcsTask.setLocationTo(toAddress.getId().toString());
         wcsTask.setCreateTime(tianaoTask.getTime());
         wcsTask.setCreateBy("上层调用");
         wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
         wcsTask.setPriority(10L);
-        wcsTask.setExt7(tianaoTask.getLcsTaskId());
-        wcsTask.setExt8(tianaoTask.getContainerNo());
+        wcsTask.setExt7(tianaoTask.getLcs_task_id());
+        wcsTask.setExt5(tianaoTask.getContainer_no());
         if (wcsTaskService.insertWcsTask(wcsTask) ==1){
-            redisCache.setCacheObject(tianaoTask.getLcsTaskId(),tianaoTask.getLcsTaskId(),30,TimeUnit.SECONDS);
+            redisCache.setCacheObject(tianaoTask.getLcs_task_id(),tianaoTask.getLcs_task_id(),30,TimeUnit.SECONDS);
             return returnJson("00000","任务发起成功","ok");
         }
         return returnJson("e0001","任务发起出错","fail");
@@ -111,7 +115,7 @@ public class TianaoServiceImpl implements TianaoService {
 
     @Override
     public JSONObject cancelTask(TianaoTask tianaoTask) {
-        WcsTask wcsTask = wcsTaskMapper.selectWcsTaskByLcsTaskId(tianaoTask.getLcsTaskId());
+        WcsTask wcsTask = wcsTaskMapper.selectWcsTaskByLcsTaskId(tianaoTask.getLcs_task_id());
         log.info(wcsTask.toString());
         if (ObjectUtil.isNull(wcsTask)) {
           return  returnJson("e0001","任务查询不存在","fail");
@@ -125,14 +129,14 @@ public class TianaoServiceImpl implements TianaoService {
     @Override
     @Transactional
     public JSONObject updateTask(TianaoTask tianaoTask) {
-        WcsTask wcsTask = wcsTaskMapper.selectWcsTaskByLcsTaskId(tianaoTask.getLcsTaskId());
+        WcsTask wcsTask = wcsTaskMapper.selectWcsTaskByLcsTaskId(tianaoTask.getLcs_task_id());
         if (ObjectUtil.isNull(wcsTask)) {
             return returnJson("e0001","任务查询不存在","fail");
         }
         if (statusLsit.contains(wcsTask.getState())){
             return returnJson("e0001","当前任务无法修改卸货点","fail");
         }
-        if("N".equals( iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getToLocation(), Constant.WAREHOUSE_ID).getIsEmpty())){
+        if("N".equals( iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getTo_location(), Constant.WAREHOUSE_ID).getIsEmpty())){
             return returnJson("e0001","目标卸货点不为空","fail");
         }
         if (wcsTask.getState()!=9) {
@@ -144,7 +148,7 @@ public class TianaoServiceImpl implements TianaoService {
                 if (ObjectUtil.isNotNull(carNo)){
                     //修改AGV任务目标地址
                     statusUpdateService.confirmAnalysis(wcsTask.getTaskNo(), amsTask.getAciIndex(),carNo
-                            , "02", tianaoTask.getToLocation());
+                            , "02", tianaoTask.getTo_location());
                     Thread.sleep(1000);
                     statusUpdateService.confirmAnalysis(wcsTask.getTaskNo(),  amsTask.getAciIndex(), carNo
                             , "10", "1");
@@ -155,9 +159,9 @@ public class TianaoServiceImpl implements TianaoService {
                 return returnJson("e0001","任务修改卸货点失败","fail");
             }
         }
-        BaseLocationInfo toAddress = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getToLocation(), Constant.WAREHOUSE_ID);
+        BaseLocationInfo toAddress = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(tianaoTask.getTo_location(), Constant.WAREHOUSE_ID);
         wcsTask.setAreaTo(toAddress.getZoneId().toString());
-        wcsTask.setLocationTo(tianaoTask.getToLocation());
+        wcsTask.setLocationTo(tianaoTask.getTo_location());
         if(wcsTaskService.updateWcsTask(wcsTask)==1){
             return returnJson("00000","卸货点修改成功","ok");
         }
@@ -167,34 +171,42 @@ public class TianaoServiceImpl implements TianaoService {
     @EventListener
     @Async
     public String getAGVCoordinate(CarStatus car) {
-        System.out.println(String.format("叉车信息:%s", car));
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("carNo",car.getCarNo());
-        jsonObject.put("y",car.getY());
-        jsonObject.put("x",car.getX());
+        JSONObject jsonObject1 = new JSONObject();
+        jsonObject1.put("carNo",car.getCarNo());
+        jsonObject1.put("y",car.getY());
+        jsonObject1.put("x",car.getX());
+        jsonObject1.put("time",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,new Date()));
+        jsonObject.put("HEADER",jsonObject1);
+        log.info("反馈AGV坐标请求参数:{}",jsonObject);
         String body = HttpRequest.post(AGVStatusBackUrl)
-                .form(jsonObject)
+                .body(jsonObject.toString())
                 .contentType("application/json").execute().body();
-        System.out.println(String.format("回调结果:%s", body));
+        log.info("反馈AGV坐标回调结果:{}",body);
         return body;
     }
 
     @EventListener
     @Async
-    public void tianaoCallBack(WcsTask wcsTask){
+    public String tianaoCallBack(WcsTask wcsTask){
         if (StringUtils.isNotEmpty(wcsTask.getExt7())){
             JSONObject jsonObject = new JSONObject();
-            jsonObject.put("lcsTaskId", wcsTask.getExt7());
-            jsonObject.put("containerNo", wcsTask.getExt8());
-            jsonObject.put("taskType", wcsTask.getBusinessType());
-            jsonObject.put("taskStatus", wcsTask.getState());
-            jsonObject.put("agvNo", wcsTask.getAgvNo());
-            jsonObject.put("time", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,new Date()));
+            JSONObject jsonObject1 = new JSONObject();
+            jsonObject1.put("lcs_task_id", wcsTask.getExt7());
+            jsonObject1.put("container_no", wcsTask.getExt5());
+            jsonObject1.put("task_type", wcsTask.getBusinessType());
+            jsonObject1.put("task_status", wcsTask.getState());
+            jsonObject1.put("agv_no", wcsTask.getAgvNo());
+            jsonObject1.put("time", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,new Date()));
+            jsonObject.put("HEADER",jsonObject1);
+            log.info("反馈任务状态请求参数:{}",jsonObject);
             String body = HttpRequest.post(taskBackUrl)
-                    .form(jsonObject)
+                    .body(jsonObject.toString())
                     .contentType("application/json").execute().body();
-            System.out.println(String.format("回调结果:%s", body));
+            log.info("反馈任务状态回调结果:{}", body);
+            return body;
         }
+        return null;
     }
 
     @Override
@@ -205,4 +217,14 @@ public class TianaoServiceImpl implements TianaoService {
         jsonObject.put("state",state);
         return jsonObject;
     }
+
+    @Override
+    public String testTask(WcsTask wcsTask) {
+        return tianaoCallBack(wcsTask);
+    }
+
+    @Override
+    public String testAgvAddress(CarStatus car) {
+        return getAGVCoordinate(car);
+    }
 }