数字孪生优化
This commit is contained in:
@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.ColaBeanUtils;
|
||||
import org.nl.common.utils.RedisUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.cockpit.service.CockpitService;
|
||||
import org.nl.wms.cockpit.service.dao.CommonData;
|
||||
@@ -88,6 +89,9 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
@Autowired
|
||||
PdmBdSolidifyPlanServiceImpl pdmBdSolidifyPlanServiceImpl;
|
||||
|
||||
@Autowired
|
||||
private RedisUtils redisUtils;
|
||||
|
||||
|
||||
/**
|
||||
* 总览
|
||||
@@ -313,48 +317,69 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
switch (point.getRegion_code()) {
|
||||
case RegionCodeConstant.COATED_PLATE_LINE_AREA:
|
||||
// hint: 涂板线是作为一整台设备显示。point:设备点
|
||||
JSONArray baoshijian= (JSONArray) redisUtils.get("baoshijian");
|
||||
points = pointService.getSubSites(deviceCode);
|
||||
res.put("device_code", deviceCode);
|
||||
res.put("device_name", point.getPoint_name());
|
||||
res.put("mode", "2");
|
||||
res.put("status", "1");
|
||||
res.put("error", "0");
|
||||
res.put("open_time", DateUtil.now());
|
||||
res.put("standby_time", 20);
|
||||
res.put("production_time", 20);
|
||||
res.put("error_time", 0);
|
||||
res.put("material", "01200000");
|
||||
// res.put("mode", "2");
|
||||
// res.put("status", "1");
|
||||
// res.put("error", "0");
|
||||
// res.put("open_time", DateUtil.now());
|
||||
// res.put("standby_time", 20);
|
||||
// res.put("production_time", 20);
|
||||
// res.put("error_time", 0);
|
||||
// res.put("material", "01200000");
|
||||
JSONArray array = new JSONArray();
|
||||
// 获取最近3条工单数据
|
||||
List<TargetAchievement> targetAchievementList = cockpitMapper.getDeviceLimitOrders(deviceCode, 3);
|
||||
JSONArray productionTask = JSONArray.parseArray(JSON.toJSONString(targetAchievementList));
|
||||
res.put("production_tasks", productionTask);
|
||||
for (int i = 0; i < points.size(); i++) {
|
||||
SchBasePoint pointObj = points.get(i);
|
||||
JSONObject one = new JSONObject();
|
||||
one.put("device_code", pointObj.getPoint_code());
|
||||
one.put("device_name", pointObj.getPoint_name());
|
||||
one.put("mode", "2");
|
||||
one.put("move", "0");
|
||||
one.put("material_type", pointObj.getCan_vehicle_type());
|
||||
one.put("error", "0");
|
||||
// one.put("mode", "2");
|
||||
for(Object object:baoshijian){
|
||||
JSONObject jsonObject= (JSONObject) object;
|
||||
if(pointObj.getPoint_code().equals(jsonObject.getString("device_code"))){
|
||||
one.put("move",jsonObject.getString("move")==null?"0":jsonObject.getString("move"));
|
||||
}
|
||||
}
|
||||
// one.put("move", "0");
|
||||
one.put("material_name", targetAchievementList.size()!=0?targetAchievementList.get(0).getMaterial_name():null);
|
||||
// one.put("error", "0");
|
||||
array.add(one);
|
||||
}
|
||||
res.put("details", array);
|
||||
// 获取最近3条工单数据
|
||||
List<TargetAchievement> targetAchievementList = cockpitMapper.getDeviceLimitOrders(deviceCode, 3);
|
||||
JSONArray productionTask = JSONArray.parseArray(JSON.toJSONString(targetAchievementList));
|
||||
res.put("production_tasks", productionTask);
|
||||
break;
|
||||
case RegionCodeConstant.CURING_ZONE:
|
||||
// hint: 固化室,需要显示整个设备+内部位置明细
|
||||
points = pointService.getSubSites(deviceCode); // 小固化位置以及进出口(入口是不管的)
|
||||
JSONArray guhuashi= (JSONArray) redisUtils.get("guhuashi");
|
||||
for(Object object:guhuashi){
|
||||
JSONObject jsonObject= (JSONObject) object;
|
||||
if(deviceCode.equals(jsonObject.getString("device_code"))){
|
||||
res.put("temperature_setting", jsonObject.getString("temperature_setting"));
|
||||
res.put("temperature", jsonObject.getString("temperature"));
|
||||
res.put("humidity_setting", jsonObject.getString("humidity_setting"));
|
||||
res.put("humidity", jsonObject.getString("humidity"));
|
||||
res.put("total_running_time", jsonObject.getString("total_running_time"));
|
||||
res.put("current_stage", jsonObject.getString("current_stage"));
|
||||
res.put("executing_stage_num", jsonObject.getString("executing_stage_num"));
|
||||
res.put("device_statue", jsonObject.getString("device_statue"));
|
||||
}
|
||||
}
|
||||
res.put("device_code", deviceCode);
|
||||
res.put("device_name", point.getPoint_name());
|
||||
res.put("temperature_setting", 50);
|
||||
res.put("temperature", 20);
|
||||
res.put("humidity_setting", 20);
|
||||
res.put("humidity", 10);
|
||||
res.put("total_running_time", 8);
|
||||
res.put("current_stage", 0);
|
||||
res.put("executing_stage_num", 1);
|
||||
res.put("device_statue", 1);
|
||||
// res.put("temperature_setting", 50);
|
||||
// res.put("temperature", 20);
|
||||
// res.put("humidity_setting", 20);
|
||||
// res.put("humidity", 10);
|
||||
// res.put("total_running_time", 8);
|
||||
// res.put("current_stage", 0);
|
||||
// res.put("executing_stage_num", 1);
|
||||
// res.put("device_statue", 1);
|
||||
JSONArray ghsArray = new JSONArray();
|
||||
for (int i = 0; i < points.size(); i++) {
|
||||
SchBasePoint pointObj = points.get(i);
|
||||
@@ -375,11 +400,11 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
points = pointService.getSubSites(deviceCode);
|
||||
res.put("device_code", deviceCode);
|
||||
res.put("device_name", point.getPoint_name());
|
||||
res.put("mode", 0);
|
||||
res.put("open_time", DateUtil.now());
|
||||
res.put("standby_time", 20);
|
||||
res.put("production_time", 10);
|
||||
res.put("error_time", 8);
|
||||
// res.put("mode", 0);
|
||||
// res.put("open_time", DateUtil.now());
|
||||
// res.put("standby_time", 20);
|
||||
// res.put("production_time", 10);
|
||||
// res.put("error_time", 8);
|
||||
res.put("material_type", ObjectUtil.isNotEmpty(point.getVehicle_type()) ? point.getVehicle_type() : "-");
|
||||
res.put("end_time", "-");
|
||||
JSONArray ssxArray = new JSONArray();
|
||||
@@ -404,7 +429,7 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
// 货位直接显示,获取组盘信息,组装数据反馈
|
||||
res.put("device_code", deviceCode);
|
||||
res.put("device_name", point.getPoint_name());
|
||||
res.put("vehicle_code", ObjectUtil.isNotEmpty(point.getVehicle_code()) ? point.getPoint_code() : "-");
|
||||
res.put("vehicle_code", ObjectUtil.isNotEmpty(point.getVehicle_code()) ? point.getVehicle_code() : "-");
|
||||
res.put("vehicle_type", ObjectUtil.isNotEmpty(point.getVehicle_type()) ? point.getVehicle_type() : "-");
|
||||
if (ObjectUtil.isNotEmpty(point.getVehicle_type()) && ObjectUtil.isNotEmpty(point.getVehicle_code())) {
|
||||
JSONObject groupInfo = cockpitMapper.getVehicleGroupInfo(point.getVehicle_code(), point.getVehicle_type());
|
||||
@@ -456,119 +481,85 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
Random random = new Random();
|
||||
int lowerBound = 10000;
|
||||
int upperBound = 18000;
|
||||
for (int i = 1; i <= 4; i++) {
|
||||
JSONObject agv = new JSONObject();
|
||||
agv.put("device_name", "AGV" + i);
|
||||
agv.put("device_code", i);
|
||||
agv.put("device_status", "IDLE");
|
||||
agv.put("energyLevel", 80);
|
||||
agv.put("transportOrder", null);
|
||||
agv.put("positionX", random.nextInt(upperBound - lowerBound + 1) + lowerBound);
|
||||
agv.put("positionY", random.nextInt(upperBound - lowerBound + 1) + lowerBound);
|
||||
agv.put("positionAngle", 90);
|
||||
array.add(agv);
|
||||
}
|
||||
for (int i = 1; i <= 7; i++) {
|
||||
JSONObject rgv_z = new JSONObject();
|
||||
rgv_z.put("vehicle", "RGV-Z-" + i);
|
||||
rgv_z.put("energyLevel", 80);
|
||||
rgv_z.put("status", "IDLE");
|
||||
rgv_z.put("task_code", null);
|
||||
rgv_z.put("angle", 90);
|
||||
rgv_z.put("rfid", "1-" + i + "-2");
|
||||
rgv_z.put("Relation_vehicle", null);
|
||||
rgv_z.put("end_time", null);
|
||||
rgv_z.put("open_time", DateUtil.now());
|
||||
rgv_z.put("standby_time", 0);
|
||||
rgv_z.put("production_time", 0);
|
||||
rgv_z.put("error_time", 0);
|
||||
array.add(rgv_z);
|
||||
}
|
||||
for (int i = 1; i <= 13; i++) {
|
||||
JSONObject rgv_m = new JSONObject();
|
||||
rgv_m.put("vehicle", "RGV-M-" + i);
|
||||
rgv_m.put("energyLevel", 80);
|
||||
rgv_m.put("status", "IDLE");
|
||||
rgv_m.put("angle", 90);
|
||||
rgv_m.put("rfid", "2-" + i + "-2");
|
||||
rgv_m.put("Relation_vehicle", null);
|
||||
rgv_m.put("end_time", null);
|
||||
rgv_m.put("open_time", DateUtil.now());
|
||||
rgv_m.put("standby_time", 0);
|
||||
rgv_m.put("production_time", 0);
|
||||
rgv_m.put("error_time", 0);
|
||||
array.add(rgv_m);
|
||||
}
|
||||
List<SchBasePoint> tbx = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "1").eq(SchBasePoint::getRegion_code, "TBX"));
|
||||
List<String> tbxList = tbx.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
tbxList.forEach(s -> {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("device_code", s);
|
||||
object.put("device_name", s);
|
||||
object.put("mode", "2");
|
||||
object.put("status", "1");
|
||||
object.put("error", "0");
|
||||
object.put("open_time", DateUtil.now());
|
||||
object.put("standby_time", 20);
|
||||
object.put("production_time", 20);
|
||||
object.put("error_time", 0);
|
||||
object.put("material", "01200000");
|
||||
array.add(object);
|
||||
});
|
||||
List<SchBasePoint> tbxDjw = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "2").eq(SchBasePoint::getRegion_code, "TBX"));
|
||||
List<String> tbxDjwList = tbxDjw.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
tbxDjwList.forEach(s -> {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("device_code", s);
|
||||
object.put("device_name", s);
|
||||
object.put("mode", "2");
|
||||
object.put("move", "0");
|
||||
object.put("error", 0);
|
||||
array.add(object);
|
||||
});
|
||||
JSONArray baoshijian= (JSONArray) redisUtils.get("baoshijian");
|
||||
JSONArray guhuashi= (JSONArray) redisUtils.get("guhuashi");
|
||||
JSONArray AGV= (JSONArray) redisUtils.get("AGV");
|
||||
JSONArray RGV= (JSONArray) redisUtils.get("RGV");
|
||||
JSONArray site= (JSONArray) redisUtils.get("site");
|
||||
array.add(baoshijian);
|
||||
array.add(guhuashi);
|
||||
array.add(AGV);
|
||||
array.add(RGV);
|
||||
// List<SchBasePoint> tbx = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "1").eq(SchBasePoint::getRegion_code, "TBX"));
|
||||
// List<String> tbxList = tbx.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
// tbxList.forEach(s -> {
|
||||
// JSONObject object = new JSONObject();
|
||||
// object.put("device_code", s);
|
||||
// object.put("device_name", s);
|
||||
// object.put("mode", "2");
|
||||
// object.put("status", "1");
|
||||
// object.put("error", "0");
|
||||
// object.put("open_time", DateUtil.now());
|
||||
// object.put("standby_time", 20);
|
||||
// object.put("production_time", 20);
|
||||
// object.put("error_time", 0);
|
||||
// object.put("material", "01200000");
|
||||
// array.add(object);
|
||||
// });
|
||||
// List<SchBasePoint> tbxDjw = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "2").eq(SchBasePoint::getRegion_code, "TBX"));
|
||||
// List<String> tbxDjwList = tbxDjw.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
// tbxDjwList.forEach(s -> {
|
||||
// JSONObject object = new JSONObject();
|
||||
// object.put("device_code", s);
|
||||
// object.put("device_name", s);
|
||||
// object.put("mode", "2");
|
||||
// object.put("move", "0");
|
||||
// object.put("error", 0);
|
||||
// array.add(object);
|
||||
// });
|
||||
// 缓存位
|
||||
List<SchBasePoint> hcx = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "3").eq(SchBasePoint::getRegion_code, "TBX"));
|
||||
List<String> hcxList = hcx.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
hcxList.forEach(s -> {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("device_code", s);
|
||||
object.put("device_name", s);
|
||||
object.put("move", "0");
|
||||
array.add(object);
|
||||
});
|
||||
List<SchBasePoint> gh = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "1").eq(SchBasePoint::getRegion_code, "GH"));
|
||||
List<String> ghList = gh.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
ghList.forEach(s -> {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("device_code", s);
|
||||
object.put("device_name", s);
|
||||
object.put("temperature_setting", 50);
|
||||
object.put("temperature", 20);
|
||||
object.put("humidity_setting", 20);
|
||||
object.put("humidity", 10);
|
||||
object.put("total_running_time", 8);
|
||||
object.put("current_stage", 0);
|
||||
object.put("executing_stage_num", 1);
|
||||
object.put("device_statue", 1);
|
||||
object.put("front_door", 1);
|
||||
object.put("back_door", 0);
|
||||
array.add(object);
|
||||
});
|
||||
// List<SchBasePoint> hcx = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "3").eq(SchBasePoint::getRegion_code, "TBX"));
|
||||
// List<String> hcxList = hcx.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
// hcxList.forEach(s -> {
|
||||
// JSONObject object = new JSONObject();
|
||||
// object.put("device_code", s);
|
||||
// object.put("device_name", s);
|
||||
// object.put("move", "0");
|
||||
// array.add(object);
|
||||
// });
|
||||
// List<SchBasePoint> gh = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "1").eq(SchBasePoint::getRegion_code, "GH"));
|
||||
// List<String> ghList = gh.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
// ghList.forEach(s -> {
|
||||
// JSONObject object = new JSONObject();
|
||||
// object.put("device_code", s);
|
||||
// object.put("device_name", s);
|
||||
// object.put("temperature_setting", 50);
|
||||
// object.put("temperature", 20);
|
||||
// object.put("humidity_setting", 20);
|
||||
// object.put("humidity", 10);
|
||||
// object.put("total_running_time", 8);
|
||||
// object.put("current_stage", 0);
|
||||
// object.put("executing_stage_num", 1);
|
||||
// object.put("device_statue", 1);
|
||||
// object.put("front_door", 1);
|
||||
// object.put("back_door", 0);
|
||||
// array.add(object);
|
||||
// });
|
||||
// 整体
|
||||
List<SchBasePoint> kjzc = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "5").eq(SchBasePoint::getRegion_code, "KJZC"));
|
||||
List<String> kjzcList = kjzc.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
kjzcList.forEach(s -> {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("device_code", s);
|
||||
object.put("device_name", s);
|
||||
object.put("mode", 0);
|
||||
object.put("open_time", DateUtil.now());
|
||||
object.put("standby_time", 20);
|
||||
object.put("production_time", 10);
|
||||
object.put("error_time", 8);
|
||||
object.put("material_type", "1");
|
||||
array.add(object);
|
||||
});
|
||||
// List<SchBasePoint> kjzc = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "5").eq(SchBasePoint::getRegion_code, "KJZC"));
|
||||
// List<String> kjzcList = kjzc.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
// kjzcList.forEach(s -> {
|
||||
// JSONObject object = new JSONObject();
|
||||
// object.put("device_code", s);
|
||||
// object.put("device_name", s);
|
||||
// object.put("mode", 0);
|
||||
// object.put("open_time", DateUtil.now());
|
||||
// object.put("standby_time", 20);
|
||||
// object.put("production_time", 10);
|
||||
// object.put("error_time", 8);
|
||||
// object.put("material_type", "1");
|
||||
// array.add(object);
|
||||
// });
|
||||
// 固化室详情
|
||||
JSONArray ghsInteriorList = cockpitMapper.getGHSInteriorList();
|
||||
JSONObject ghsDetail = new JSONObject();
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<if test="deviceCode != null and deviceCode != ''">
|
||||
AND w.point_code = #{deviceCode}
|
||||
</if>
|
||||
order by w.create_time desc
|
||||
<if test="number != 0 ">
|
||||
LIMIT #{number}
|
||||
</if>
|
||||
@@ -166,11 +167,11 @@
|
||||
FROM sch_base_vehiclematerialgroup vg
|
||||
LEFT JOIN md_base_material ma ON vg.material_id = ma.material_id
|
||||
WHERE 1 = 1
|
||||
<if test="vehicle_code != null">
|
||||
AND vg.vehicle_code = #{vehicle_code}
|
||||
<if test="vehicleCode != null">
|
||||
AND vg.vehicle_code = #{vehicleCode}
|
||||
</if>
|
||||
<if test="vehicle_type != null">
|
||||
AND vg.vehicle_type = #{vehicle_type}
|
||||
<if test="vehicleType != null">
|
||||
AND vg.vehicle_type = #{vehicleType}
|
||||
</if>
|
||||
AND vg.is_delete = '0'
|
||||
</select>
|
||||
|
||||
@@ -61,8 +61,7 @@
|
||||
AND p4.point_type = '2' AND p4.is_used = TRUE)
|
||||
AND #{materialId} IN (
|
||||
SELECT vg.material_id FROM sch_base_point p2
|
||||
LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = p2.vehicle_code AND vg.vehicle_type =
|
||||
p2.vehicle_type AND vg.is_delete = '0' AND vg.group_bind_material_status = '2'
|
||||
LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = p2.vehicle_code AND vg.is_delete = '0' AND vg.group_bind_material_status = '2'
|
||||
WHERE p2.parent_point_code = p.point_code AND p2.point_type = '2' AND p2.point_status = '2'
|
||||
)
|
||||
AND p.region_code IN
|
||||
|
||||
Reference in New Issue
Block a user