diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/rest/AgvBigScreenController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/rest/AgvBigScreenController.java new file mode 100644 index 00000000..d475c58e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/rest/AgvBigScreenController.java @@ -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 getData(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(agvBigScreenService.getTask(whereJson), HttpStatus.OK); + } + + @PostMapping("/getAgvMsg") + @Log("查询车辆信息") + @ApiOperation("查询车辆信息") + public ResponseEntity getAgvMsg(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(agvBigScreenService.getAgvMsg(whereJson), HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/AgvBigScreenService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/AgvBigScreenService.java new file mode 100644 index 00000000..10e8dffb --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/AgvBigScreenService.java @@ -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); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/AgvBigScreenServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/AgvBigScreenServiceImpl.java new file mode 100644 index 00000000..455d62a9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/AgvBigScreenServiceImpl.java @@ -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 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) { + + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/AGVBIGSCREEN01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/AGVBIGSCREEN01.wql new file mode 100644 index 00000000..5c510db6 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/wql/AGVBIGSCREEN01.wql @@ -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 + + diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml index 34d80e13..155cdf15 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -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