This commit is contained in:
2022-07-28 18:38:21 +08:00
5 changed files with 284 additions and 3 deletions

View File

@@ -0,0 +1,46 @@
package org.nl.wms.ext.bigScreen.rest;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.annotation.Log;
import org.nl.wms.ext.bigScreen.service.AgvBigScreenService;
import org.nl.wms.ext.bigScreen.service.BigScreenService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* @author liuxy
* @date 2022-07-27
**/
@RestController
@RequiredArgsConstructor
@Api(tags = "AGV监控中心")
@RequestMapping("/api/agvBigScreen")
@Slf4j
@CrossOrigin
public class AgvBigScreenController {
private final AgvBigScreenService agvBigScreenService;
@PostMapping("/getTask")
@Log("查询任务")
@ApiOperation("查询任务")
public ResponseEntity<Object> getData(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(agvBigScreenService.getTask(whereJson), HttpStatus.OK);
}
@PostMapping("/getAgvMsg")
@Log("查询车辆信息")
@ApiOperation("查询车辆信息")
public ResponseEntity<Object> getAgvMsg(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(agvBigScreenService.getAgvMsg(whereJson), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.ext.bigScreen.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public interface AgvBigScreenService {
JSONObject getTask(JSONObject whereJson);
JSONObject getAgvMsg(JSONObject whereJson);
}

View File

@@ -0,0 +1,114 @@
package org.nl.wms.ext.bigScreen.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.ext.bigScreen.service.AgvBigScreenService;
import org.nl.wql.WQL;
import org.nl.wql.core.bean.WQLObject;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
@Service
@RequiredArgsConstructor
@Slf4j
public class AgvBigScreenServiceImpl implements AgvBigScreenService {
@Override
public JSONObject getTask(JSONObject whereJson) {
JSONObject result = new JSONObject();
try {
JSONObject param = new JSONObject();
// 1.获取总任务数
String today = DateUtil.today();
HashMap<String, String> map = new HashMap<>();
map.put("flag", "1");
map.put("today", "%"+today+"%");
JSONObject jsonAll = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonAll)) {
param.put("all_task_number",jsonAll.getString("jsonAllTsk"));
} else {
param.put("all_task_number","0");
}
// 2.获取已执行任务数 状态 = 99
map.put("flag", "2");
JSONObject jsonFinish = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonFinish)) {
param.put("finish_task_number",jsonFinish.getString("finish_task_number"));
} else {
param.put("finish_task_number","0");
}
// 3.获取取消的任务数 是否删除 = 1
map.put("flag", "3");
JSONObject jsonCancel = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonCancel)) {
param.put("cancel_task_number",jsonCancel.getString("cancel_task_number"));
} else {
param.put("cancel_task_number","0");
}
// 4.获取未执行任务数 状态 <> 99
map.put("flag", "4");
JSONObject jsonNotFinish = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonNotFinish)) {
param.put("not_finish_task_number",jsonNotFinish.getString("not_finish_task_number"));
} else {
param.put("not_finish_task_number","0");
}
result.put("code", "1");
result.put("desc", "查询成功");
result.put("srb", param);
} catch (Exception e) {
result.put("code", "0");
result.put("desc", "查询失败:"+e.getMessage());
}
return result;
}
@Override
public JSONObject getAgvMsg(JSONObject whereJson) {
// 连接到 mongodb 服务并连接到数据库
MongoClient mongoClient = new MongoClient( "47.111.78.178" , 27017 );
MongoDatabase db = mongoClient.getDatabase("device_log");
JSONObject result = new JSONObject();
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject agvTab = WQLObject.getWQLObject("DS_AGV_AgvStatus");
JSONArray agv_info = new JSONArray();
for (int i = 1; i <= 7; i++) {
JSONObject json = new JSONObject();
String agv_code = String.valueOf(i);
JSONObject jsonAgv = agvTab.query("agv_code = '" + agv_code + "'").uniqueResult(0);
// 1.车号
json.put("agv_code", agv_code);
// 2.任务: 0为无任务、1为有任务
json.put("agv_stateType", jsonAgv.getString("agv_stateType"));
// 3.电量
json.put("agv_power", jsonAgv.getString("agv_power"));
// 4.预警: 0为正常1为报警
// 5.预警信息
agv_info.add(json);
}
result.put("agv_info_arr", agv_info);
return result;
}
public static void main(String[] args) {
}
}

View File

@@ -0,0 +1,109 @@
[交易说明]
交易名: AGV监控中心查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.today TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
QUERY
SELECT
count(task.task_id) AS all_task_number
FROM
SCH_BASE_Task task
WHERE
1 = 1
OPTION 输入.today <> ""
task.create_time like 输入.today
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
count(task.task_id) AS finish_task_number
FROM
SCH_BASE_Task task
WHERE
task.task_status = '99'
OPTION 输入.today <> ""
task.create_time like 输入.today
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
count(task.task_id) AS cancel_task_number
FROM
SCH_BASE_Task task
WHERE
task.is_delete = '1'
OPTION 输入.today <> ""
task.create_time like 输入.today
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "4"
QUERY
SELECT
count(task.task_id) AS cancel_task_number
FROM
SCH_BASE_Task task
WHERE
task.task_status <> '99'
OPTION 输入.today <> ""
task.create_time like 输入.today
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -75,8 +75,8 @@ spring:
#数据库索引
database: ${REDIS_DB:1}
#host: ${REDIS_HOST:47.111.78.178}
host: ${REDIS_HOST:localhost}
host: ${REDIS_HOST:47.111.78.178}
# host: ${REDIS_HOST:localhost}
port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:}
#连接超时时间
@@ -173,5 +173,5 @@ jetcache:
maxIdle: 200
maxTotal: 1000
uri:
- redis://localhost:6379
- redis://47.111.78.178:6379