opt:优化数字孪生大屏相关接口。
This commit is contained in:
@@ -129,6 +129,7 @@ public class GuhuashiSiteDeviceDriver extends AbstractOpcDeviceDriver implements
|
|||||||
public void execute() {
|
public void execute() {
|
||||||
String message = null;
|
String message = null;
|
||||||
try {
|
try {
|
||||||
|
//todo 错误码转换
|
||||||
devicecode = this.getDeviceCode();
|
devicecode = this.getDeviceCode();
|
||||||
VW7010 = this.itemProtocol.getVW7010();
|
VW7010 = this.itemProtocol.getVW7010();
|
||||||
VW7012 = this.itemProtocol.getVW7012();
|
VW7012 = this.itemProtocol.getVW7012();
|
||||||
@@ -179,18 +180,19 @@ public class GuhuashiSiteDeviceDriver extends AbstractOpcDeviceDriver implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//现场要测水分,手动更改
|
//现场要测水分,手动更改
|
||||||
// if (VW70002 != last_VW70002 && VW70002 == 1) {
|
// if (VW70002 != last_VW70002 && VW70002 == 1) {
|
||||||
// log.info("固化室{}反馈工艺运行结束,开始通知lms", devicecode);
|
// log.info("固化室{}反馈工艺运行结束,开始通知lms", devicecode);
|
||||||
// FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
// FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
// request.setDevice_code(this.devicecode);
|
// request.setDevice_code(this.devicecode);
|
||||||
// request.setType("1");
|
// request.setType("1");
|
||||||
// request.setState("5");
|
// request.setState("5");
|
||||||
// acsToWmsService.notify(request);
|
// acsToWmsService.notify(request);
|
||||||
// }
|
// }
|
||||||
if (VD7046 != last_VD7046 && VD7046 == 0) {
|
if (VD7046 != last_VD7046 && VD7046 == 0) {
|
||||||
log.info("固化室{}反馈固化室恢复正常,开始通知lms", devicecode);
|
log.info("固化室{}反馈固化室恢复正常,开始通知lms", devicecode);
|
||||||
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
request.setDevice_code(this.devicecode);
|
request.setDevice_code(this.devicecode);
|
||||||
|
//todo 错误码转换
|
||||||
request.setType("3");
|
request.setType("3");
|
||||||
request.setState(String.valueOf(VD7046));
|
request.setState(String.valueOf(VD7046));
|
||||||
acsToWmsService.notify(request);
|
acsToWmsService.notify(request);
|
||||||
@@ -198,6 +200,7 @@ public class GuhuashiSiteDeviceDriver extends AbstractOpcDeviceDriver implements
|
|||||||
log.info("固化室{}反馈固化室发生异常,开始通知lms", devicecode);
|
log.info("固化室{}反馈固化室发生异常,开始通知lms", devicecode);
|
||||||
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
request.setDevice_code(this.devicecode);
|
request.setDevice_code(this.devicecode);
|
||||||
|
//todo 错误码转换
|
||||||
request.setType("3");
|
request.setType("3");
|
||||||
request.setState(String.valueOf(VD7046));
|
request.setState(String.valueOf(VD7046));
|
||||||
acsToWmsService.notify(request);
|
acsToWmsService.notify(request);
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ public class SiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceD
|
|||||||
acsToWmsService.notify(request);
|
acsToWmsService.notify(request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//todo 错误码转换
|
||||||
if (error != last_error ) {
|
if (error != last_error ) {
|
||||||
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
request.setDevice_code(this.device_code);
|
request.setDevice_code(this.device_code);
|
||||||
|
|||||||
@@ -68,6 +68,13 @@ public class CockpitController {
|
|||||||
return new ResponseEntity<>(cockpitService.getHomeInfo(), HttpStatus.OK);
|
return new ResponseEntity<>(cockpitService.getHomeInfo(), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getHandlingInfo")
|
||||||
|
@Log("获取搬运信息")
|
||||||
|
@ApiOperation("获取搬运信息")
|
||||||
|
public ResponseEntity<Object> getHandlingInfo() {
|
||||||
|
return new ResponseEntity<>(cockpitService.getHandlingInfo(), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/getTbxInfo")
|
@PostMapping("/getTbxInfo")
|
||||||
@Log("获取涂板线信息")
|
@Log("获取涂板线信息")
|
||||||
@ApiOperation("获取涂板线信息")
|
@ApiOperation("获取涂板线信息")
|
||||||
@@ -90,4 +97,6 @@ public class CockpitController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ public interface CockpitService {
|
|||||||
|
|
||||||
JSONObject getHomeInfo();
|
JSONObject getHomeInfo();
|
||||||
|
|
||||||
|
JSONObject getHandlingInfo();
|
||||||
|
|
||||||
|
|
||||||
JSONObject getGhsInfo();
|
JSONObject getGhsInfo();
|
||||||
|
|
||||||
JSONObject getTbxInfo();
|
JSONObject getTbxInfo();
|
||||||
|
|||||||
@@ -37,14 +37,14 @@ import java.math.RoundingMode;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static org.nl.common.utils.DateUtil.localDateTimeFormatyMdHms;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description:
|
* @Description:
|
||||||
@@ -78,7 +78,8 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisUtils redisUtils;
|
private RedisUtils redisUtils;
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd");
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总览
|
* 总览
|
||||||
@@ -87,8 +88,9 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
public JSONObject getHomeInfo() {
|
public JSONObject getHomeInfo() {
|
||||||
JSONObject getHomeInfo = new JSONObject();
|
JSONObject getHomeInfo = new JSONObject();
|
||||||
//生产任务目标达成
|
//生产任务目标达成
|
||||||
JSONObject target_achievement = new JSONObject();
|
JSONObject target_achievement = cockpitMapper.getProductTarget();
|
||||||
target_achievement = cockpitMapper.getProductTarget();
|
|
||||||
|
|
||||||
//固化汇总
|
//固化汇总
|
||||||
CompletableFuture<List<DayData>> task2 = CompletableFuture.supplyAsync(() -> {
|
CompletableFuture<List<DayData>> task2 = CompletableFuture.supplyAsync(() -> {
|
||||||
List<DayData> dayDataList = new ArrayList<>();
|
List<DayData> dayDataList = new ArrayList<>();
|
||||||
@@ -101,81 +103,151 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
}
|
}
|
||||||
return dayDataList;
|
return dayDataList;
|
||||||
}, pool);
|
}, pool);
|
||||||
|
|
||||||
|
|
||||||
//暂存库库存结构
|
//暂存库库存结构
|
||||||
JSONObject zc_storage_info = new JSONObject();
|
JSONObject zc_storage_info = new JSONObject();
|
||||||
JSONArray material_info;
|
List<Map<String, Object>> material_info = cockpitMapper.getZcMaterialmsg();
|
||||||
material_info=cockpitMapper.getZcMaterialmsg();
|
zc_storage_info.put("material_info", material_info);
|
||||||
//库位使用占比
|
//库位使用占比
|
||||||
String percent=cockpitMapper.percent();
|
String percent = cockpitMapper.percent();
|
||||||
zc_storage_info.put("material_info",material_info);
|
zc_storage_info.put("percent", percent);
|
||||||
zc_storage_info.put("percent",percent);
|
|
||||||
//今日生产任务
|
//今日生产任务
|
||||||
JSONArray today_work = new JSONArray();
|
List<Map<String, Object>> today_work = cockpitMapper.getTdWorkmsg();
|
||||||
today_work=cockpitMapper.getTdWorkmsg();
|
if (ObjectUtil.isEmpty(today_work)) {
|
||||||
// 7天生产统计
|
Map<String, Object> item1 = new HashMap<>();
|
||||||
JSONArray tb_real_qty=new JSONArray();
|
item1.put("workorder_code", "240712001");
|
||||||
JSONArray gh_real_qty=new JSONArray();
|
item1.put("material_name", "13.2正");
|
||||||
tb_real_qty=cockpitMapper.getTxQty();
|
item1.put("plan_qty", "100");
|
||||||
gh_real_qty=cockpitMapper.getGhsQty();
|
item1.put("real_qty", "0");
|
||||||
|
item1.put("point_name", "普涂线01");
|
||||||
|
item1.put("workorder_status", "生产中");
|
||||||
|
today_work.add(item1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// todo 7天生产统计
|
||||||
|
List<Map<String, Object>> tb_real_qty = cockpitMapper.getTxQty("7");
|
||||||
|
List<Map<String, Object>> gh_real_qty = cockpitMapper.getGhsQty("7");
|
||||||
|
if (ObjectUtil.isEmpty(tb_real_qty)) {
|
||||||
|
for (int i = 0; i < 7; i++) {
|
||||||
|
Map<String, Object> item = new HashMap<>();
|
||||||
|
item.put("region_name", "TBX");
|
||||||
|
item.put("total_qty", "0");
|
||||||
|
item.put("date", today.minusDays(i).format(formatter));
|
||||||
|
tb_real_qty.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(gh_real_qty)) {
|
||||||
|
for (int i = 0; i < 7; i++) {
|
||||||
|
Map<String, Object> item = new HashMap<>();
|
||||||
|
item.put("region_name", "GHS");
|
||||||
|
item.put("total_qty", "0");
|
||||||
|
item.put("date", today.minusDays(i).format(formatter));
|
||||||
|
tb_real_qty.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
//设备运行状态
|
//设备运行状态
|
||||||
JSONObject device_status=new JSONObject();
|
JSONObject device_status = new JSONObject();
|
||||||
//状态信息
|
//状态信息
|
||||||
JSONArray status_info=new JSONArray();
|
List<Map<String, Object>> status_info = cockpitMapper.statusInfo();
|
||||||
status_info=cockpitMapper.statusInfo();
|
|
||||||
//固化架信息
|
//固化架信息
|
||||||
JSONArray storage_info=new JSONArray();
|
List<Map<String, Object>> storage_info = cockpitMapper.storageInfo();
|
||||||
storage_info=cockpitMapper.storageInfo();
|
device_status.put("status_info", status_info);
|
||||||
device_status.put("status_info",status_info);
|
device_status.put("storage_info", storage_info);
|
||||||
device_status.put("storage_info",storage_info);
|
|
||||||
//实时故障告警
|
//实时故障告警
|
||||||
JSONArray fault_alarm=new JSONArray();
|
List<Map<String, Object>> fault_alarm = cockpitMapper.faultAlarm();
|
||||||
fault_alarm=cockpitMapper.faultAlarm();
|
faultAlarmDefault(fault_alarm, "GHS02");
|
||||||
//进30日故障统计
|
//近30日故障统计
|
||||||
JSONArray monthly_fault_statistics=new JSONArray();
|
JSONArray monthly_fault_statistics = cockpitMapper.monthlyFaultStatistics();
|
||||||
monthly_fault_statistics=cockpitMapper.monthlyFaultStatistics();
|
monthlyFaultStatisticsDefault(monthly_fault_statistics, "GHS02");
|
||||||
//设备报警前十
|
//设备报警前十
|
||||||
JSONArray gh_statistics=new JSONArray();
|
List<Map<String, Object>> gh_statistics = cockpitMapper.ghStatistics();
|
||||||
gh_statistics=cockpitMapper.ghStatistics();
|
|
||||||
getHomeInfo.put("target_achievement", target_achievement);
|
getHomeInfo.put("target_achievement", target_achievement);
|
||||||
getHomeInfo.put("zc_storage_info", zc_storage_info);
|
getHomeInfo.put("zc_storage_info", zc_storage_info);
|
||||||
getHomeInfo.put("today_work", today_work);
|
getHomeInfo.put("today_work", today_work);
|
||||||
getHomeInfo.put("tbx_produce", tb_real_qty);
|
getHomeInfo.put("tbx_produce", tb_real_qty);
|
||||||
getHomeInfo.put("ghs_produce", gh_real_qty);
|
getHomeInfo.put("ghs_produce", gh_real_qty);
|
||||||
getHomeInfo.put("device_status",device_status);
|
getHomeInfo.put("device_status", device_status);
|
||||||
getHomeInfo.put("fault_alarm",fault_alarm);
|
getHomeInfo.put("fault_alarm", fault_alarm);
|
||||||
getHomeInfo.put("monthly_fault_statistics",monthly_fault_statistics);
|
getHomeInfo.put("monthly_fault_statistics", monthly_fault_statistics);
|
||||||
getHomeInfo.put("gh_statistics",gh_statistics);
|
getHomeInfo.put("gh_statistics", gh_statistics);
|
||||||
return getHomeInfo;
|
return getHomeInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 涂板线
|
* 涂板线
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getTbxInfo() {
|
public JSONObject getTbxInfo() {
|
||||||
JSONObject getTbxInfo=new JSONObject();
|
JSONObject getTbxInfo = new JSONObject();
|
||||||
//今日生产
|
//今日生产
|
||||||
JSONObject target_achievement=new JSONObject();
|
JSONObject target_achievement = new JSONObject();
|
||||||
JSONObject lt_production=new JSONObject();
|
JSONObject lt_production = cockpitMapper.ltProduction();
|
||||||
JSONObject pt_production=new JSONObject();
|
JSONObject pt_production = cockpitMapper.ptProduction();
|
||||||
lt_production=cockpitMapper.ltProduction();
|
if (ObjectUtil.isEmpty(lt_production)) {
|
||||||
pt_production=cockpitMapper.ptProduction();
|
lt_production = new JSONObject();
|
||||||
target_achievement.put("lt_production",lt_production);
|
lt_production.put("plan_production", "0");
|
||||||
target_achievement.put("pt_production",pt_production);
|
lt_production.put("actual_production", "0");
|
||||||
|
lt_production.put("percentage", "0");
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(pt_production)) {
|
||||||
|
pt_production = new JSONObject();
|
||||||
|
pt_production.put("plan_production", "0");
|
||||||
|
pt_production.put("actual_production", "0");
|
||||||
|
pt_production.put("percentage", "0");
|
||||||
|
}
|
||||||
|
target_achievement.put("lt_production", lt_production);
|
||||||
|
target_achievement.put("pt_production", pt_production);
|
||||||
//今日涂板任务
|
//今日涂板任务
|
||||||
JSONArray today_work=new JSONArray();
|
JSONArray today_work = cockpitMapper.todayTbTask();
|
||||||
today_work=cockpitMapper.todayTbTask();
|
if (ObjectUtil.isEmpty(today_work)) {
|
||||||
|
JSONObject item1 = new JSONObject();
|
||||||
|
item1.put("workorder_code", "240712002");
|
||||||
|
item1.put("material_name", "13.2正");
|
||||||
|
item1.put("plan_qty", "100");
|
||||||
|
item1.put("real_qty", "0");
|
||||||
|
item1.put("point_name", "连涂线01");
|
||||||
|
item1.put("workorder_status", "生产中");
|
||||||
|
today_work.add(item1);
|
||||||
|
}
|
||||||
//实时故障告警
|
//实时故障告警
|
||||||
JSONArray fault_alarm=new JSONArray();
|
List<Map<String, Object>> fault_alarm = cockpitMapper.FaultTime("TBX");
|
||||||
fault_alarm=cockpitMapper.FaultTime("TBX");
|
faultAlarmDefault(fault_alarm, "LTX02");
|
||||||
//进30日故障统计
|
//近30日故障统计
|
||||||
JSONArray monthly_fault_statistics=new JSONArray();
|
JSONArray monthly_fault_statistics = cockpitMapper.FaultTotal("TBX");
|
||||||
monthly_fault_statistics=cockpitMapper.FaultTotal("TBX");
|
monthlyFaultStatisticsDefault(monthly_fault_statistics, "LTX02");
|
||||||
getTbxInfo.put("target_achievement",target_achievement);
|
|
||||||
getTbxInfo.put("today_work",today_work);
|
//todo 近30日生产
|
||||||
getTbxInfo.put("fault_alarm",fault_alarm);
|
// JSONArray monthly_produce_statistics = cockpitMapper.FaultTotal("TBX");
|
||||||
getTbxInfo.put("monthly_fault_statistics",monthly_fault_statistics);
|
List<Map<String, Object>> monthly_produce_statistics = new ArrayList<>();
|
||||||
|
if (ObjectUtil.isEmpty(monthly_produce_statistics)) {
|
||||||
|
for (int i = 0; i < 30; i++) {
|
||||||
|
Map<String, Object> item1 = new HashMap<>();
|
||||||
|
item1.put("region_name", "LT");
|
||||||
|
item1.put("total_qty", "0");
|
||||||
|
item1.put("date", today.minusDays(i).format(formatter));
|
||||||
|
Map<String, Object> item2 = new HashMap<>();
|
||||||
|
item2.put("region_name", "PT");
|
||||||
|
item2.put("total_qty", "0");
|
||||||
|
item2.put("date", today.minusDays(i).format(formatter));
|
||||||
|
Map<String, Object> item3 = new HashMap<>();
|
||||||
|
item3.put("region_name", "total");
|
||||||
|
item3.put("total_qty", "0");
|
||||||
|
item3.put("date", today.minusDays(i).format(formatter));
|
||||||
|
monthly_produce_statistics.add(item1);
|
||||||
|
monthly_produce_statistics.add(item2);
|
||||||
|
monthly_produce_statistics.add(item3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getTbxInfo.put("target_achievement", target_achievement);
|
||||||
|
getTbxInfo.put("today_work", today_work);
|
||||||
|
getTbxInfo.put("fault_alarm", fault_alarm);
|
||||||
|
getTbxInfo.put("monthly_fault_statistics", monthly_fault_statistics);
|
||||||
|
getTbxInfo.put("monthly_produce_statistics", monthly_produce_statistics);
|
||||||
return getTbxInfo;
|
return getTbxInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,23 +257,53 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getGhsInfo() {
|
public JSONObject getGhsInfo() {
|
||||||
JSONObject getGhsInfo=new JSONObject();
|
JSONObject getGhsInfo = new JSONObject();
|
||||||
//固化汇总
|
//固化汇总
|
||||||
JSONArray curing_summary=new JSONArray();
|
JSONArray curing_summary = cockpitMapper.curingSummary();
|
||||||
curing_summary=cockpitMapper.curingSummary();
|
//todo 近30天固化数据
|
||||||
|
List<Map<String, Object>> monthly_gh_qty = cockpitMapper.getGhsQty("30");
|
||||||
|
if (ObjectUtil.isEmpty(monthly_gh_qty)) {
|
||||||
|
for (int i = 0; i < 30; i++) {
|
||||||
|
Map<String, Object> item = new HashMap<>();
|
||||||
|
item.put("region_name", "GH");
|
||||||
|
item.put("total_qty", "0");
|
||||||
|
item.put("date", today.minusDays(i).format(formatter));
|
||||||
|
monthly_gh_qty.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//todo 近固化物料汇总
|
||||||
|
List<Map<String, Object>> gh_material_summary = new ArrayList<>();
|
||||||
|
if (ObjectUtil.isEmpty(gh_material_summary)) {
|
||||||
|
Map<String, Object> item1 = new HashMap<>();
|
||||||
|
item1.put("material_name", "1.9A正");
|
||||||
|
item1.put("material_spec", "正涂片极板/1.9A/大片");
|
||||||
|
item1.put("qty", "2000");
|
||||||
|
item1.put("type", "入库");
|
||||||
|
Map<String, Object> item2 = new HashMap<>();
|
||||||
|
item2.put("material_name", "15A负");
|
||||||
|
item2.put("material_spec", "负涂片极板/15A/大片");
|
||||||
|
item2.put("qty", "3000");
|
||||||
|
item2.put("type", "出库");
|
||||||
|
gh_material_summary.add(item1);
|
||||||
|
gh_material_summary.add(item2);
|
||||||
|
}
|
||||||
//实时故障告警
|
//实时故障告警
|
||||||
JSONArray fault_alarm=new JSONArray();
|
List<Map<String, Object>> fault_alarm = cockpitMapper.FaultTime("GH");
|
||||||
fault_alarm=cockpitMapper.FaultTime("GH");
|
faultAlarmDefault(fault_alarm,"GHS02");
|
||||||
//进30日故障统计
|
//近30日故障统计
|
||||||
JSONArray monthly_fault_statistics=new JSONArray();
|
JSONArray monthly_fault_statistics = cockpitMapper.FaultTotal("GH");
|
||||||
monthly_fault_statistics=cockpitMapper.FaultTotal("GH");
|
monthlyFaultStatisticsDefault(monthly_fault_statistics, "GHS02");
|
||||||
getGhsInfo.put("curing_summary",curing_summary);
|
getGhsInfo.put("curing_summary", curing_summary);
|
||||||
getGhsInfo.put("fault_alarm",fault_alarm);
|
getGhsInfo.put("monthly_gh_qty", monthly_gh_qty);
|
||||||
getGhsInfo.put("monthly_fault_statistics",monthly_fault_statistics);
|
getGhsInfo.put("gh_material_summary", gh_material_summary);
|
||||||
return getGhsInfo;
|
getGhsInfo.put("fault_alarm", fault_alarm);
|
||||||
|
getGhsInfo.put("monthly_fault_statistics", monthly_fault_statistics);
|
||||||
|
return getGhsInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 暂存区
|
* 暂存区
|
||||||
* @return
|
* @return
|
||||||
@@ -210,27 +312,86 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
public JSONObject getZcqInfo() {
|
public JSONObject getZcqInfo() {
|
||||||
JSONObject getZcqInfo = new JSONObject();
|
JSONObject getZcqInfo = new JSONObject();
|
||||||
//暂存库
|
//暂存库
|
||||||
JSONObject temporary_storage = new JSONObject();
|
JSONObject temporary_storage = cockpitMapper.temporaryStorage();
|
||||||
temporary_storage = cockpitMapper.temporaryStorage();
|
|
||||||
//暂存区库存
|
//暂存区库存
|
||||||
JSONArray inventory = new JSONArray();
|
JSONArray inventory =cockpitMapper.inventory();
|
||||||
inventory=cockpitMapper.inventory();
|
|
||||||
//货位货位信息
|
//货位货位信息
|
||||||
JSONArray task_info=new JSONArray();
|
JSONArray task_info=cockpitMapper.taskInfo();
|
||||||
task_info=cockpitMapper.taskInfo();
|
|
||||||
getZcqInfo.put("temporary_storage",temporary_storage);
|
getZcqInfo.put("temporary_storage",temporary_storage);
|
||||||
getZcqInfo.put("inventory",inventory);
|
getZcqInfo.put("inventory",inventory);
|
||||||
getZcqInfo.put("task_info",task_info);
|
getZcqInfo.put("task_info",task_info);
|
||||||
return getZcqInfo;
|
return getZcqInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取搬运信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public JSONObject getHandlingInfo() {
|
||||||
|
JSONObject getHandlingInfo = new JSONObject();
|
||||||
|
//设备运行状态
|
||||||
|
JSONObject device_status = new JSONObject();
|
||||||
|
// //状态信息
|
||||||
|
// List<Map<String, Object>> agv_info = cockpitMapper.statusInfo();
|
||||||
|
// //状态信息
|
||||||
|
// List<Map<String, Object>> rgv_info = cockpitMapper.statusInfo();
|
||||||
|
// //状态信息
|
||||||
|
// List<Map<String, Object>> conveyor_info = cockpitMapper.statusInfo();
|
||||||
|
List<Map<String, Object>> agv_info = new ArrayList<>();
|
||||||
|
List<Map<String, Object>> rgv_info = new ArrayList<>();
|
||||||
|
List<Map<String, Object>> conveyor_info = new ArrayList<>();
|
||||||
|
if (ObjectUtil.isEmpty(agv_info) || ObjectUtil.isEmpty(rgv_info)) {
|
||||||
|
Map<String, Object> item1 = new HashMap<>();
|
||||||
|
item1.put("item_name", "0");
|
||||||
|
item1.put("item_qty", "5");
|
||||||
|
Map<String, Object> item2 = new HashMap<>();
|
||||||
|
item2.put("item_name", "1");
|
||||||
|
item2.put("item_qty", "8");
|
||||||
|
if (ObjectUtil.isEmpty(agv_info)) {
|
||||||
|
agv_info.add(item1);
|
||||||
|
agv_info.add(item2);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(rgv_info)) {
|
||||||
|
rgv_info.add(item1);
|
||||||
|
rgv_info.add(item2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(conveyor_info)) {
|
||||||
|
Map<String, Object> item1 = new HashMap<>();
|
||||||
|
item1.put("item_name", "1");
|
||||||
|
item1.put("item_qty", "10");
|
||||||
|
Map<String, Object> item2 = new HashMap<>();
|
||||||
|
item2.put("item_name", "2");
|
||||||
|
item2.put("item_qty", "8");
|
||||||
|
Map<String, Object> item3 = new HashMap<>();
|
||||||
|
item3.put("item_name", "3");
|
||||||
|
item3.put("item_qty", "5");
|
||||||
|
conveyor_info.add(item1);
|
||||||
|
conveyor_info.add(item2);
|
||||||
|
conveyor_info.add(item3);
|
||||||
|
}
|
||||||
|
device_status.put("status_info", agv_info);
|
||||||
|
device_status.put("status_info", rgv_info);
|
||||||
|
device_status.put("status_info", conveyor_info);
|
||||||
|
//实时故障告警
|
||||||
|
List<Map<String, Object>> fault_alarm = cockpitMapper.faultAlarm();
|
||||||
|
faultAlarmDefault(fault_alarm, "RGV02");
|
||||||
|
//近30日故障统计
|
||||||
|
//JSONArray monthly_fault_statistics = cockpitMapper.monthlyFaultStatistics();
|
||||||
|
JSONArray monthly_fault_statistics = new JSONArray();
|
||||||
|
monthlyFaultStatisticsDefault(monthly_fault_statistics, "RGV01");
|
||||||
|
getHandlingInfo.put("device_status", device_status);
|
||||||
|
getHandlingInfo.put("fault_alarm", fault_alarm);
|
||||||
|
getHandlingInfo.put("monthly_fault_statistics", monthly_fault_statistics);
|
||||||
|
return getHandlingInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备ui
|
* 设备ui
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public JSONObject equipmentInfo(String deviceCode) {
|
public JSONObject equipmentInfo(String deviceCode) {
|
||||||
|
|
||||||
JSONObject res = new JSONObject();
|
JSONObject res = new JSONObject();
|
||||||
SchBasePoint point = pointService.getById(deviceCode);
|
SchBasePoint point = pointService.getById(deviceCode);
|
||||||
List<SchBasePoint> points;
|
List<SchBasePoint> points;
|
||||||
@@ -408,10 +569,10 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
//
|
//
|
||||||
JSONArray RGV = (JSONArray) redisUtils.get("RGV");
|
JSONArray RGV = (JSONArray) redisUtils.get("RGV");
|
||||||
JSONArray site = (JSONArray) redisUtils.get("site");
|
JSONArray site = (JSONArray) redisUtils.get("site");
|
||||||
// array.add(baoshijian);
|
// array.add(baoshijian);
|
||||||
// array.add(guhuashi);
|
// array.add(guhuashi);
|
||||||
// array.add(AGV);
|
// array.add(AGV);
|
||||||
// array.add(RGV);
|
// array.add(RGV);
|
||||||
|
|
||||||
// 固化室详情
|
// 固化室详情
|
||||||
JSONArray ghsInteriorList = cockpitMapper.getGHSInteriorList();
|
JSONArray ghsInteriorList = cockpitMapper.getGHSInteriorList();
|
||||||
@@ -685,7 +846,24 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
// 返回包含故障数和故障率的对象
|
// 返回包含故障数和故障率的对象
|
||||||
return new DeviceFaultStatistics(totalFaults, faultRate);
|
return new DeviceFaultStatistics(totalFaults, faultRate);
|
||||||
}
|
}
|
||||||
|
private static void faultAlarmDefault( List<Map<String, Object>> fault_alarm,String device_name) {
|
||||||
|
if (ObjectUtil.isEmpty(fault_alarm)) {
|
||||||
|
Map<String, Object> item1 = new HashMap<>();
|
||||||
|
item1.put("device_name", device_name);
|
||||||
|
item1.put("fault_cause", "过载");
|
||||||
|
item1.put("alarm_time", localDateTimeFormatyMdHms(LocalDateTime.now()));
|
||||||
|
fault_alarm.add(item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void monthlyFaultStatisticsDefault(JSONArray monthly_fault_statistics, String deviceCode) {
|
||||||
|
if (ObjectUtil.isEmpty(monthly_fault_statistics)) {
|
||||||
|
JSONObject item = new JSONObject();
|
||||||
|
item.put("device_code", deviceCode);
|
||||||
|
item.put("alarm_qty", "1");
|
||||||
|
monthly_fault_statistics.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 定时统计近七天数据
|
* 定时统计近七天数据
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.nl.wms.cockpit.service.dao.zcq.TaskInfo;
|
|||||||
import org.nl.wms.cockpit.service.dao.zcq.ZcqInfo;
|
import org.nl.wms.cockpit.service.dao.zcq.ZcqInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -82,15 +83,15 @@ public interface CockpitMapper {
|
|||||||
//获取生产中的工单数据
|
//获取生产中的工单数据
|
||||||
JSONObject getProductTarget();
|
JSONObject getProductTarget();
|
||||||
//获取暂存库库存信息
|
//获取暂存库库存信息
|
||||||
JSONArray getZcMaterialmsg();
|
List<Map<String, Object>> getZcMaterialmsg();
|
||||||
//库位使用占比
|
//库位使用占比
|
||||||
String percent();
|
String percent();
|
||||||
//获取今日创建的每一条工单的信息
|
//获取今日创建的每一条工单的信息
|
||||||
JSONArray getTdWorkmsg();
|
List<Map<String, Object>> getTdWorkmsg();
|
||||||
//7天涂板实际生产
|
//7天涂板实际生产
|
||||||
JSONArray getTxQty();
|
List<Map<String, Object>> getTxQty(String days);
|
||||||
//7天固化室实际生产
|
//7天固化室实际生产
|
||||||
JSONArray getGhsQty();
|
List<Map<String, Object>> getGhsQty(String days);
|
||||||
//查询所传设备当前生产的工单信息
|
//查询所传设备当前生产的工单信息
|
||||||
JSONObject getDeviceWorker(String devicecode);
|
JSONObject getDeviceWorker(String devicecode);
|
||||||
//根据所传的物料id获取物料名称
|
//根据所传的物料id获取物料名称
|
||||||
@@ -108,7 +109,7 @@ public interface CockpitMapper {
|
|||||||
//今日涂板任务
|
//今日涂板任务
|
||||||
JSONArray todayTbTask();
|
JSONArray todayTbTask();
|
||||||
//实时故障告警
|
//实时故障告警
|
||||||
JSONArray FaultTime(String region_code);
|
List<Map<String, Object>> FaultTime(String region_code);
|
||||||
//进30日故障统计
|
//进30日故障统计
|
||||||
JSONArray FaultTotal(String region_code);
|
JSONArray FaultTotal(String region_code);
|
||||||
//固化汇总
|
//固化汇总
|
||||||
@@ -118,15 +119,15 @@ public interface CockpitMapper {
|
|||||||
//暂存区库存
|
//暂存区库存
|
||||||
JSONArray inventory();
|
JSONArray inventory();
|
||||||
//状态信息
|
//状态信息
|
||||||
JSONArray statusInfo();
|
List<Map<String, Object>> statusInfo();
|
||||||
//固化架信息
|
//固化架信息
|
||||||
JSONArray storageInfo();
|
List<Map<String, Object>> storageInfo();
|
||||||
//实时故障告警
|
//实时故障告警
|
||||||
JSONArray faultAlarm();
|
List<Map<String, Object>> faultAlarm();
|
||||||
//进30日故障统计
|
//进30日故障统计
|
||||||
JSONArray monthlyFaultStatistics();
|
JSONArray monthlyFaultStatistics();
|
||||||
//设备报警前十
|
//设备报警前十
|
||||||
JSONArray ghStatistics();
|
List<Map<String, Object>> ghStatistics();
|
||||||
//货位货位信息
|
//货位货位信息
|
||||||
JSONArray taskInfo();
|
JSONArray taskInfo();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,14 +219,17 @@
|
|||||||
WHERE failure_time LIKE CONCAT(CURDATE(), '%');
|
WHERE failure_time LIKE CONCAT(CURDATE(), '%');
|
||||||
</select>
|
</select>
|
||||||
<select id="getProductTarget" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="getProductTarget" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT COUNT(*) AS await_curing,
|
SELECT
|
||||||
SUM( plan_qty ) AS expected_production,
|
COUNT(*) AS await_curing,
|
||||||
SUM( real_qty ) AS actual_production,
|
SUM(plan_qty) AS expected_production,
|
||||||
(SUM( real_qty )/SUM( plan_qty ))AS percentage
|
SUM(real_qty) AS actual_production,
|
||||||
FROM pdm_bd_workorder
|
ROUND(SUM(real_qty) * 1.0 / NULLIF(SUM(plan_qty), 0)) AS percentage
|
||||||
WHERE workorder_status=3
|
FROM
|
||||||
|
pdm_bd_workorder
|
||||||
|
WHERE
|
||||||
|
workorder_status = 3;
|
||||||
</select>
|
</select>
|
||||||
<select id="getZcMaterialmsg" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="getZcMaterialmsg" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
m.material_name AS item_name,
|
m.material_name AS item_name,
|
||||||
m.standard_qty AS item_qty
|
m.standard_qty AS item_qty
|
||||||
@@ -236,7 +239,7 @@
|
|||||||
WHERE p.region_code = 'ZC'
|
WHERE p.region_code = 'ZC'
|
||||||
AND p.vehicle_code IS NOT NULL
|
AND p.vehicle_code IS NOT NULL
|
||||||
</select>
|
</select>
|
||||||
<select id="getTdWorkmsg" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="getTdWorkmsg" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
w.workorder_code,
|
w.workorder_code,
|
||||||
m.material_name AS material_name,
|
m.material_name AS material_name,
|
||||||
@@ -248,33 +251,35 @@
|
|||||||
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||||
WHERE DATE(w.update_time) = CURDATE()
|
WHERE DATE(w.update_time) = CURDATE()
|
||||||
</select>
|
</select>
|
||||||
<select id="getTxQty" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="getTxQty" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
DATE_FORMAT(create_time,'%Y-%m-%d') AS date,
|
DATE_FORMAT(create_time,'%Y-%m-%d') AS date,
|
||||||
SUM(real_qty) AS total_qty,
|
SUM(real_qty) AS total_qty,
|
||||||
'TBX' AS region_name
|
'TBX' AS region_name
|
||||||
FROM
|
FROM
|
||||||
pdm_bd_workorder
|
pdm_bd_workorder
|
||||||
WHERE
|
WHERE
|
||||||
create_time >= CURDATE() - INTERVAL 7 DAY
|
create_time >= CURDATE() - INTERVAL #{days} DAY
|
||||||
GROUP BY
|
AND region_code='TBX'
|
||||||
DATE_FORMAT(create_time,'%Y-%m-%d')
|
GROUP BY
|
||||||
ORDER BY
|
DATE_FORMAT(create_time,'%Y-%m-%d')
|
||||||
date;
|
ORDER BY
|
||||||
|
date;
|
||||||
</select>
|
</select>
|
||||||
<select id="getGhsQty" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="getGhsQty" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
DATE_FORMAT(create_time,'%Y-%m-%d') AS date,
|
DATE_FORMAT(create_time,'%Y-%m-%d') AS date,
|
||||||
SUM(material_qty) AS total_qty,
|
SUM(material_qty) AS total_qty,
|
||||||
'GHS' AS region_name
|
'GHS' AS region_name
|
||||||
FROM
|
FROM
|
||||||
sch_base_vehiclematerialgroup
|
sch_base_vehiclematerialgroup
|
||||||
WHERE
|
WHERE
|
||||||
create_time >= CURDATE() - INTERVAL 7 DAY
|
create_time >= CURDATE() - INTERVAL #{days} DAY
|
||||||
GROUP BY
|
AND region_code='GH'
|
||||||
DATE_FORMAT(create_time,'%Y-%m-%d')
|
GROUP BY
|
||||||
ORDER BY
|
DATE_FORMAT(create_time,'%Y-%m-%d')
|
||||||
date;
|
ORDER BY
|
||||||
|
date;
|
||||||
</select>
|
</select>
|
||||||
<select id="getDeviceWorker" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="getDeviceWorker" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT *
|
SELECT *
|
||||||
@@ -333,26 +338,28 @@
|
|||||||
DATE_FORMAT(w.create_time, '%Y-%m-%d');
|
DATE_FORMAT(w.create_time, '%Y-%m-%d');
|
||||||
</select>
|
</select>
|
||||||
<select id="ltProduction" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="ltProduction" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
SUM(w.plan_qty) AS plan_production,
|
SUM(w.plan_qty) AS plan_production,
|
||||||
SUM(w.real_qty) AS actual_production,
|
SUM(w.real_qty) AS actual_production,
|
||||||
SUM(w.real_qty)/SUM(w.plan_qty)*100 AS percentage
|
ROUND(SUM(w.real_qty) / SUM(w.plan_qty) * 100) AS percentage
|
||||||
FROM
|
FROM
|
||||||
`pdm_bd_workorder` w
|
`pdm_bd_workorder` w
|
||||||
WHERE
|
WHERE
|
||||||
w.workorder_status=3
|
w.workorder_status = 3
|
||||||
And DATE(w.create_time)=CURDATE()
|
AND DATE(w.create_time) = CURDATE()
|
||||||
And point_code LIKE 'LT%'
|
AND point_code LIKE 'LT%';
|
||||||
</select>
|
</select>
|
||||||
<select id="ptProduction" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="ptProduction" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
SUM(w.plan_qty) AS plan_production
|
SUM(w.plan_qty) AS plan_production,
|
||||||
FROM
|
SUM(w.real_qty) AS actual_production,
|
||||||
`pdm_bd_workorder` w
|
ROUND(SUM(w.real_qty) / SUM(w.plan_qty) * 100) AS percentage
|
||||||
WHERE
|
FROM
|
||||||
w.workorder_status=3
|
`pdm_bd_workorder` w
|
||||||
And DATE(w.create_time)=CURDATE()
|
WHERE
|
||||||
And point_code LIKE 'PT%'
|
w.workorder_status=3
|
||||||
|
And DATE(w.create_time)=CURDATE()
|
||||||
|
And point_code LIKE 'PT%'
|
||||||
</select>
|
</select>
|
||||||
<select id="todayTbTask" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="todayTbTask" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
@@ -369,7 +376,7 @@
|
|||||||
w.workorder_status=3
|
w.workorder_status=3
|
||||||
And DATE(w.create_time)=CURDATE()
|
And DATE(w.create_time)=CURDATE()
|
||||||
</select>
|
</select>
|
||||||
<select id="FaultTime" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="FaultTime" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
d1.device_code,
|
d1.device_code,
|
||||||
d1.failure_info AS fault_cause,
|
d1.failure_info AS fault_cause,
|
||||||
@@ -387,57 +394,72 @@
|
|||||||
And d1.current_status=1
|
And d1.current_status=1
|
||||||
</select>
|
</select>
|
||||||
<select id="FaultTotal" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="FaultTotal" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
device_code,
|
device_code,
|
||||||
COUNT(*) AS alarm_qty
|
COUNT(*) AS alarm_qty
|
||||||
FROM
|
FROM
|
||||||
das_device_fault
|
das_device_fault
|
||||||
WHERE
|
WHERE
|
||||||
region_code = #{region_code}
|
region_code = #{region_code}
|
||||||
And current_status=1
|
And current_status=1
|
||||||
GROUP BY
|
GROUP BY
|
||||||
device_code;
|
device_code;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="curingSummary" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="curingSummary" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
p.point_status,
|
CASE
|
||||||
|
WHEN p.point_status = 1 THEN '待机'
|
||||||
|
WHEN p.point_status = 2 THEN '工艺进行中'
|
||||||
|
WHEN p.point_status = 3 THEN '进板中'
|
||||||
|
WHEN p.point_status = 4 THEN '出板中'
|
||||||
|
WHEN p.point_status = 5 THEN '故障'
|
||||||
|
END AS item_name,
|
||||||
COUNT(*) AS item_qty
|
COUNT(*) AS item_qty
|
||||||
FROM `sch_base_point` p
|
FROM
|
||||||
WHERE p.region_code = 'GH'
|
`sch_base_point` p
|
||||||
AND p.point_type =1
|
WHERE
|
||||||
GROUP BY
|
p.region_code = 'GH'
|
||||||
point_status;
|
AND p.point_type = 1
|
||||||
|
GROUP BY
|
||||||
|
p.point_status;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="temporaryStorage" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="temporaryStorage" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
SUM(CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END) AS total,
|
SUM( CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END ) AS total,
|
||||||
SUM(CASE WHEN point_status = 2 THEN 1 ELSE 0 END) AS free,
|
SUM( CASE WHEN point_status = 2 THEN 1 ELSE 0 END ) AS free,
|
||||||
SUM(CASE WHEN point_status = 2 THEN 1 ELSE 0 END) * 1.0 /
|
SUM( CASE WHEN region_code = 'KJW' AND point_status = 0 THEN 1 ELSE 0 END ) AS empty_num,
|
||||||
NULLIF(SUM(CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END), 0)*100 AS percentage
|
ROUND( SUM( CASE WHEN point_status = 2 THEN 1 ELSE 0 END ) * 1.0 / NULLIF( SUM( CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END ), 0 ) * 100, 0)
|
||||||
FROM
|
AS percentage
|
||||||
sch_base_point
|
FROM
|
||||||
WHERE
|
sch_base_point
|
||||||
region_code = 'ZC';
|
WHERE
|
||||||
|
region_code = 'ZC'
|
||||||
|
OR region_code = 'KJW';
|
||||||
</select>
|
</select>
|
||||||
<select id="percent" resultType="java.lang.String">
|
<select id="percent" resultType="java.lang.String">
|
||||||
SELECT
|
SELECT
|
||||||
SUM(CASE WHEN point_status = 2 THEN 1 ELSE 0 END) * 1.0 /
|
ROUND(SUM(CASE WHEN point_status = 2 THEN 1 ELSE 0 END) * 1.0 /
|
||||||
NULLIF(SUM(CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END), 0)*100 AS percentage
|
NULLIF(SUM(CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END), 0) * 100, 0) AS percentage
|
||||||
FROM
|
FROM
|
||||||
sch_base_point
|
sch_base_point
|
||||||
WHERE
|
WHERE
|
||||||
region_code = 'ZC';
|
region_code = 'ZC';
|
||||||
</select>
|
</select>
|
||||||
<select id="statusInfo" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="statusInfo" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
p.is_used AS item_name,
|
CASE
|
||||||
COUNT(*) AS item_qty
|
WHEN p.is_used = true THEN 1
|
||||||
FROM
|
ELSE 0
|
||||||
`sch_base_point` p
|
END AS item_name,
|
||||||
GROUP BY
|
COUNT(*) AS item_qty
|
||||||
p.is_used;
|
FROM
|
||||||
|
`sch_base_point` p
|
||||||
|
GROUP BY
|
||||||
|
item_name;
|
||||||
</select>
|
</select>
|
||||||
<select id="storageInfo" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="storageInfo" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
p.point_status AS item_name,
|
p.point_status AS item_name,
|
||||||
COUNT(*) AS item_qty
|
COUNT(*) AS item_qty
|
||||||
@@ -448,48 +470,72 @@ FROM
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
p.point_status;
|
p.point_status;
|
||||||
</select>
|
</select>
|
||||||
<select id="faultAlarm" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="faultAlarm1" resultType="java.util.HashMap">
|
||||||
WITH RankedFaults AS (
|
WITH RankedFaults AS (
|
||||||
SELECT
|
SELECT
|
||||||
device_code AS device_name,
|
device_code AS device_name,
|
||||||
failure_info AS fault_cause,
|
failure_info AS fault_cause,
|
||||||
failure_time AS alarm_time,
|
failure_time AS alarm_time,
|
||||||
ROW_NUMBER() OVER (PARTITION BY device_code ORDER BY failure_time DESC) AS rn
|
ROW_NUMBER() OVER (PARTITION BY device_code ORDER BY failure_time DESC) AS rn
|
||||||
FROM das_device_fault
|
FROM das_device_fault
|
||||||
WHERE current_status = 1
|
WHERE current_status = 1
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
device_name,
|
device_name,
|
||||||
fault_cause,
|
fault_cause,
|
||||||
alarm_time
|
alarm_time
|
||||||
FROM RankedFaults
|
FROM RankedFaults
|
||||||
WHERE rn = 1;
|
WHERE rn = 1;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="faultAlarm" resultType="java.util.HashMap">
|
||||||
|
SELECT
|
||||||
|
d.device_code AS device_name,
|
||||||
|
d.failure_info AS fault_cause,
|
||||||
|
d.failure_time AS alarm_time
|
||||||
|
FROM
|
||||||
|
das_device_fault d
|
||||||
|
INNER JOIN (
|
||||||
|
SELECT
|
||||||
|
device_code,
|
||||||
|
MAX(failure_time) AS max_time
|
||||||
|
FROM
|
||||||
|
das_device_fault
|
||||||
|
WHERE
|
||||||
|
current_status = 1
|
||||||
|
GROUP BY
|
||||||
|
device_code
|
||||||
|
) m ON d.device_code = m.device_code
|
||||||
|
AND d.failure_time = m.max_time
|
||||||
|
WHERE
|
||||||
|
d.current_status = 1;
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="monthlyFaultStatistics" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="monthlyFaultStatistics" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
SELECT
|
SELECT
|
||||||
region_code AS region_name,
|
region_code AS region_name,
|
||||||
COUNT(*) AS alarm_qty
|
COUNT(*) AS alarm_qty
|
||||||
FROM
|
FROM
|
||||||
das_device_fault
|
das_device_fault
|
||||||
GROUP BY
|
GROUP BY
|
||||||
region_code;
|
region_code;
|
||||||
</select>
|
</select>
|
||||||
<select id="ghStatistics" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="ghStatistics" resultType="java.util.HashMap">
|
||||||
SELECT
|
SELECT
|
||||||
device_name,
|
device_name,
|
||||||
error_number
|
error_number
|
||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
device_code AS device_name,
|
device_code AS device_name,
|
||||||
COUNT(*) AS error_number
|
COUNT(*) AS error_number
|
||||||
FROM
|
FROM
|
||||||
das_device_fault
|
das_device_fault
|
||||||
GROUP BY
|
GROUP BY
|
||||||
device_code
|
device_code
|
||||||
) AS device_errors
|
) AS device_errors
|
||||||
ORDER BY
|
ORDER BY
|
||||||
error_number DESC
|
error_number DESC
|
||||||
LIMIT 10;
|
LIMIT 10;
|
||||||
</select>
|
</select>
|
||||||
<select id="inventory" resultType="com.alibaba.fastjson.JSONObject">
|
<select id="inventory" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
@@ -514,6 +560,7 @@ LIMIT 10;
|
|||||||
SELECT
|
SELECT
|
||||||
p.point_code AS device_code,
|
p.point_code AS device_code,
|
||||||
m.material_name AS material_name,
|
m.material_name AS material_name,
|
||||||
|
m.material_spec AS material_spec,
|
||||||
p.vehicle_type,
|
p.vehicle_type,
|
||||||
p.vehicle_code,
|
p.vehicle_code,
|
||||||
m.standard_qty AS qty,
|
m.standard_qty AS qty,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ spring:
|
|||||||
druid:
|
druid:
|
||||||
db-type: com.alibaba.druid.pool.DruidDataSource
|
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3307}/${DB_NAME:lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:stand_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
# url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:stand_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
username: ${DB_USER:root}
|
username: ${DB_USER:root}
|
||||||
password: ${DB_PWD:123456}
|
password: ${DB_PWD:123456}
|
||||||
|
|||||||
Reference in New Issue
Block a user