diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/autoTask/AutoAgvStatus.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/autoTask/AutoAgvStatus.java new file mode 100644 index 00000000..d689b2ec --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/autoTask/AutoAgvStatus.java @@ -0,0 +1,97 @@ +package org.nl.wms.ext.bigScreen.autoTask; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.wql.core.bean.WQLObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Component; + +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +@Slf4j +@Component +public class AutoAgvStatus { + + @Autowired + private MongoTemplate mongoTemplate; + + public void run() { + + WQLObject agv_status = WQLObject.getWQLObject("DS_AGV_AgvStatus"); + WQLObject agv_point = WQLObject.getWQLObject("DS_AGV_PointCoordinateRelate"); + + for (int i = 1; i <= 7; i++) { + String device_code = String.valueOf(i); + + Query query = new Query(); + query.addCriteria(Criteria.where("device_code").is(device_code)); + List avg_all = mongoTemplate.find(query, JSONObject.class, "agv_test"); + + JSONObject jsonAgv = agv_status.query("agv_code = '" + device_code + "'").uniqueResult(0); + String real_x_coor = ""; + String real_y_coor = ""; + for (JSONObject json : avg_all) { + String key = json.getString("key"); + + switch (key) { + case "pic_name" : + jsonAgv.put("pic_name",json.getString("value")); + break; + case "agv_power" : + jsonAgv.put("agv_power",json.getString("value")); + break; + case "agv_stateType" : + jsonAgv.put("agv_statetype",json.getString("value")); + break; + case "x_coordinate" : + String value = NumberUtil.div(json.getString("value"), "100").toString(); + real_x_coor = NumberUtil.round(value, 0).toString(); + break; + case "y_coordinate" : + String value2 = NumberUtil.div(json.getString("value"), "100").toString(); + real_y_coor = NumberUtil.round(value2, 0).toString(); + break; + case "error_status" : + jsonAgv.put("error_status",json.getString("value")); + break; + case "error_info" : + jsonAgv.put("error_info",json.getString("value")); + break; + case "direction_type" : + jsonAgv.put("direction_type",json.getString("value")); + break; + } + } + JSONObject jsonPoint = agv_point.query("real_x_coor = '" + real_x_coor + "' and real_y_coor = '" + real_y_coor + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonPoint)) { + jsonAgv.put("x_coordinate", jsonPoint.getString("web_x_coor")); + jsonAgv.put("y_coordinate", jsonPoint.getString("web_y_coor")); + } + jsonAgv.put("update_datetime", DateUtil.now()); + agv_status.update(jsonAgv); + } + } + + public static void main(String[] args) { + + ArrayList objects = new ArrayList<>(); + objects.add(null); + LinkedList objects1 = new LinkedList<>(); + objects1.add(4); + objects1.add(4.4); + objects1.add(null); + + ArrayDeque objects2 = new ArrayDeque<>(); + System.out.println(objects1); + } +} 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 index 455d62a9..adb6af2c 100644 --- 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 @@ -2,6 +2,7 @@ package org.nl.wms.ext.bigScreen.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.mongodb.MongoClient; @@ -14,6 +15,7 @@ import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; @Service @@ -33,7 +35,7 @@ public class AgvBigScreenServiceImpl implements AgvBigScreenService { 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")); + param.put("all_task_number",jsonAll.getString("all_task_number")); } else { param.put("all_task_number","0"); } @@ -77,38 +79,53 @@ public class AgvBigScreenServiceImpl implements AgvBigScreenService { @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"); + try { + WQLObject agvTab = WQLObject.getWQLObject("DS_AGV_AgvStatus"); + JSONObject srb = new JSONObject(); + JSONArray errorArr = new JSONArray(); - 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.预警信息 + 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为报警 + String error_status = jsonAgv.getString("error_status"); + if (StrUtil.equals(error_status,"1")) { + // 只要有一辆车有报警信息 状态则为1 + srb.put("error_status", "1"); + // 5.预警信息 + errorArr.add(jsonAgv.getString("error_info")); + } + // 6.agv名称 + json.put("agv_name", jsonAgv.getString("agv_name")); + // 7.x坐标 + json.put("x_coordinate", jsonAgv.getString("x_coordinate")); + // 8.y坐标 + json.put("y_coordinate", jsonAgv.getString("y_coordinate")); + // 9.方向类型 + json.put("direction_type", jsonAgv.getString("direction_type")); - agv_info.add(json); + agv_info.add(json); + } + srb.put("agv_info_arr", agv_info); + srb.put("agv_error_arr", errorArr); + + result.put("srb", srb); + result.put("code", "1"); + result.put("desc", "查询成功"); + } catch (Exception e) { + result.put("code", "0"); + result.put("desc", "查询失败:"+e.getMessage()); } - - 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 index 5c510db6..6acd1de4 100644 --- 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 @@ -92,7 +92,7 @@ IF 输入.flag = "4" QUERY SELECT - count(task.task_id) AS cancel_task_number + count(task.task_id) AS not_finish_task_number FROM SCH_BASE_Task task WHERE