配粉设备大屏
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
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.DeviceScreenService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "设备监控大屏")
|
||||
@RequestMapping("/api/deviceScreen")
|
||||
@Slf4j
|
||||
public class DeviceScreenController {
|
||||
private final DeviceScreenService deviceScreenService;
|
||||
|
||||
@PostMapping("/deviceStatus")
|
||||
@Log("设备实时状态")
|
||||
@ApiOperation("设备实时状态")
|
||||
public ResponseEntity<Object> getData(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceStatus(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/oeeAndTeep")
|
||||
@Log("设备综合效率OEE&产能利用效率TEEP")
|
||||
@ApiOperation("设备综合效率OEE&产能利用效率TEEP")
|
||||
public ResponseEntity<Object> oeeAndTeep(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.oeeAndTeep(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/queryDeviceByWork")
|
||||
@Log("运行设备大类产能比")
|
||||
@ApiOperation("运行设备大类产能比")
|
||||
public ResponseEntity<Object> queryDeviceByWork(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.queryDeviceByWork(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceErrorNum")
|
||||
@Log("设备TOP10故障次数")
|
||||
@ApiOperation("设备TOP10故障次数")
|
||||
public ResponseEntity<Object> deviceErrorNum(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceErrorNum(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceManage")
|
||||
@Log("设备管理")
|
||||
@ApiOperation("设备管理")
|
||||
public ResponseEntity<Object> deviceManage(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceManage(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceCensus")
|
||||
@Log("设备综合统计")
|
||||
@ApiOperation("设备综合统计")
|
||||
public ResponseEntity<Object> deviceCensus(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceCensus(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceErrorInfo")
|
||||
@Log("设备报警信息")
|
||||
@ApiOperation("设备报警信息")
|
||||
public ResponseEntity<Object> deviceErrorInfo(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceErrorInfo(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceUseRate")
|
||||
@Log("设备产能利用")
|
||||
@ApiOperation("设备产能利用")
|
||||
public ResponseEntity<Object> deviceUseRate(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceUseRate(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceStatusList")
|
||||
@Log("设备状态列表")
|
||||
@ApiOperation("设备状态列表")
|
||||
public ResponseEntity<Object> deviceStatusList(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.deviceStatusList(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/errCensus")
|
||||
@Log("近30天设备故障统计")
|
||||
@ApiOperation("近30天设备故障统计")
|
||||
public ResponseEntity<Object> errCensus(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(deviceScreenService.errCensus(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.nl.wms.ext.bigScreen.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
public interface DeviceScreenService {
|
||||
public JSONObject deviceStatus(JSONObject param);
|
||||
|
||||
public JSONObject oeeAndTeep(JSONObject param);
|
||||
|
||||
public JSONObject queryDeviceByWork(JSONObject param);
|
||||
|
||||
public JSONObject deviceErrorNum(JSONObject param);
|
||||
|
||||
public JSONObject deviceManage(JSONObject param);
|
||||
|
||||
public JSONObject deviceCensus(JSONObject param);
|
||||
|
||||
public JSONObject deviceErrorInfo(JSONObject param);
|
||||
|
||||
public JSONObject deviceUseRate(JSONObject param);
|
||||
|
||||
public JSONObject deviceStatusList(JSONObject param);
|
||||
|
||||
public JSONObject errCensus(JSONObject param);
|
||||
}
|
||||
@@ -0,0 +1,330 @@
|
||||
package org.nl.wms.ext.bigScreen.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.ext.bigScreen.service.DeviceScreenService;
|
||||
import org.nl.wql.WQL;
|
||||
import org.nl.wql.core.bean.WQLObject;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class DeviceScreenServiceImpl implements DeviceScreenService {
|
||||
@Override
|
||||
public JSONObject deviceStatus(JSONObject param) {
|
||||
//正常运行:有工单正在工作的;暂未生产:有工单没有在工作的;空闲设备:没有工单的,没故障的;故障设备:状态为故障的
|
||||
JSONArray device_rows = WQLObject.getWQLObject("PDM_BI_Device").query("is_active = '1' AND is_delete = '0'").getResultJSONArray(0);
|
||||
int total_num = device_rows.size();
|
||||
int run_device = 0;
|
||||
int prepare_device = 0;
|
||||
int free_device = 0;
|
||||
int err_device = 0;
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("total_num", total_num);
|
||||
result.put("run_device", run_device);
|
||||
result.put("prepare_device", prepare_device);
|
||||
result.put("free_device", free_device);
|
||||
result.put("err_device", err_device);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject oeeAndTeep(JSONObject param) {
|
||||
JSONObject oee = new JSONObject();
|
||||
JSONObject teep = new JSONObject();
|
||||
//value1:过去一个月;value2:目标;value3:实际
|
||||
oee.put("value1", "78.0%");
|
||||
oee.put("value2", "67.0%");
|
||||
oee.put("value3", "48.0%");
|
||||
teep.put("value1", "46.0%");
|
||||
teep.put("value2", "51.0%");
|
||||
teep.put("value3", "32.0%");
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("oee", oee);
|
||||
result.put("teep", teep);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject queryDeviceByWork(JSONObject param) {
|
||||
JSONArray result = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "1").process().getResultJSONArray(0);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject deviceErrorNum(JSONObject param) {
|
||||
JSONArray result = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "2").process().getResultJSONArray(0);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject deviceManage(JSONObject param) {
|
||||
String today = DateUtil.today()+"%";
|
||||
Date today_begin = DateUtil.beginOfDay(DateUtil.date());
|
||||
//弯头工段
|
||||
JSONObject jo1 = new JSONObject();
|
||||
jo1.put("oee", "45.8%");
|
||||
double wt_mibf = 0;
|
||||
double wt_mttr = 0;
|
||||
//计算mibf
|
||||
JSONArray wt_run_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "3").addParam("worksection_type_scode", "01").addParam("today", today).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < wt_run_rows.size(); i++) {
|
||||
JSONObject device = wt_run_rows.getJSONObject(i);
|
||||
String start_time = device.getString("start_time");
|
||||
String end_time = device.getString("end_time");
|
||||
if (start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
}
|
||||
|
||||
//计算mmttr
|
||||
JSONArray wt_err_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "4").addParam("worksection_type_scode", "01").addParam("today", today).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < wt_err_rows.size(); i++) {
|
||||
JSONObject device = wt_err_rows.getJSONObject(i);
|
||||
String start_time = device.getString("start_time");
|
||||
String end_time = device.getString("end_time");
|
||||
if (start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
}
|
||||
|
||||
jo1.put("MIBF", wt_mibf);
|
||||
jo1.put("MTTR", wt_mttr);
|
||||
jo1.put("err_times", wt_err_rows.size());
|
||||
//综合工段
|
||||
JSONObject jo2 = new JSONObject();
|
||||
jo2.put("oee", "45.8%");
|
||||
double zh_mibf = 0;
|
||||
double zh_mttr = 0;
|
||||
//计算mibf
|
||||
JSONArray zh_run_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "3").addParam("worksection_type_scode", "01").addParam("today", today).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < zh_run_rows.size(); i++) {
|
||||
JSONObject device = zh_run_rows.getJSONObject(i);
|
||||
String start_time = device.getString("start_time");
|
||||
String end_time = device.getString("end_time");
|
||||
if (start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
}
|
||||
|
||||
//计算mmttr
|
||||
JSONArray zh_err_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "4").addParam("worksection_type_scode", "01").addParam("today", today).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < zh_err_rows.size(); i++) {
|
||||
JSONObject device = zh_err_rows.getJSONObject(i);
|
||||
String start_time = device.getString("start_time");
|
||||
String end_time = device.getString("end_time");
|
||||
if (start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
}
|
||||
|
||||
jo2.put("MIBF", zh_mibf);
|
||||
jo2.put("MTTR", zh_mttr);
|
||||
jo2.put("err_times", zh_err_rows.size());
|
||||
//成品工段
|
||||
JSONObject jo3 = new JSONObject();
|
||||
jo3.put("oee", "45.8%");
|
||||
double cp_mibf = 0;
|
||||
double cp_mttr = 0;
|
||||
//计算mibf
|
||||
JSONArray cp_run_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "3").addParam("worksection_type_scode", "01").addParam("today", today).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < cp_run_rows.size(); i++) {
|
||||
JSONObject device = cp_run_rows.getJSONObject(i);
|
||||
String start_time = device.getString("start_time");
|
||||
String end_time = device.getString("end_time");
|
||||
if (start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mibf += between;
|
||||
}
|
||||
}
|
||||
|
||||
//计算mmttr
|
||||
JSONArray cp_err_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "4").addParam("worksection_type_scode", "01").addParam("today", today).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < cp_err_rows.size(); i++) {
|
||||
JSONObject device = cp_err_rows.getJSONObject(i);
|
||||
String start_time = device.getString("start_time");
|
||||
String end_time = device.getString("end_time");
|
||||
if (start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date1 = DateUtil.parse(start_time);
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(date1, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isEmpty(end_time)) {
|
||||
Date date2 = DateUtil.date();
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
if (!start_time.startsWith(today) && StrUtil.isNotEmpty(end_time)) {
|
||||
Date date2 = DateUtil.parse(end_time);
|
||||
long between = DateUtil.between(today_begin, date2, DateUnit.HOUR);
|
||||
wt_mttr += between;
|
||||
}
|
||||
}
|
||||
|
||||
jo3.put("MIBF", cp_mibf);
|
||||
jo3.put("MTTR", cp_mttr);
|
||||
jo3.put("err_times", cp_err_rows.size());
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("jo1",jo1);
|
||||
result.put("jo2",jo2);
|
||||
result.put("jo3",jo3);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject deviceCensus(JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject deviceErrorInfo(JSONObject param) {
|
||||
String today = DateUtil.today()+"%";
|
||||
JSONArray result = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "5").addParam("today",today).process().getResultJSONArray(0);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject deviceUseRate(JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject deviceStatusList(JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject errCensus(JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
[交易说明]
|
||||
交易名: 物料分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.worksection_type_scode TYPEAS s_string
|
||||
输入.today TYPEAS s_string
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
MAX( productivity ) AS max_productivity,
|
||||
MIN( productivity ) AS min_productivity,
|
||||
ROUND( SUM( productivity )/ COUNT( device_id ), 3 ) AS ave_productivity,
|
||||
MAX(pro.workprocedure_name) AS workprocedure_name
|
||||
FROM
|
||||
pdm_bi_device device
|
||||
LEFT JOIN pdm_bi_workprocedure pro ON pro.workprocedure_id = device.workprocedure_id
|
||||
WHERE
|
||||
device.is_active = '1'
|
||||
AND
|
||||
device.is_delete = '0'
|
||||
GROUP BY
|
||||
device.workprocedure_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
COUNT(run.device_id) AS err_num,
|
||||
MAX(device.device_name) AS device_name
|
||||
FROM
|
||||
pdm_bi_devicerunstatusrecord run
|
||||
LEFT JOIN pdm_bi_device device ON device.device_id = run.device_id
|
||||
GROUP BY
|
||||
run.device_id
|
||||
LIMIT 10
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
device.device_id,
|
||||
run.start_time,
|
||||
run.end_time
|
||||
FROM
|
||||
pdm_bi_device device
|
||||
LEFT JOIN pdm_bi_workprocedure pro ON pro.workprocedure_id = device.workprocedure_id
|
||||
INNER JOIN pdm_bi_devicerunstatusrecord run ON run.device_id = device.device_id
|
||||
WHERE
|
||||
pro.worksection_type_scode = 输入.worksection_type_scode
|
||||
AND (
|
||||
run.start_time LIKE 输入.today
|
||||
OR run.end_time LIKE 输入.today
|
||||
OR run.end_time IS NULL
|
||||
OR run.end_time = ''
|
||||
)
|
||||
AND run.status_type = '03'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
device.device_id,
|
||||
run.start_time,
|
||||
run.end_time
|
||||
FROM
|
||||
pdm_bi_device device
|
||||
LEFT JOIN pdm_bi_workprocedure pro ON pro.workprocedure_id = device.workprocedure_id
|
||||
INNER JOIN pdm_bi_devicerunstatusrecord run ON run.device_id = device.device_id
|
||||
WHERE
|
||||
pro.worksection_type_scode = 输入.worksection_type_scode
|
||||
AND (
|
||||
run.start_time LIKE 输入.today
|
||||
OR run.end_time LIKE 输入.today
|
||||
OR run.end_time IS NULL
|
||||
OR run.end_time = ''
|
||||
)
|
||||
AND run.status_type = '05'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "5"
|
||||
QUERY
|
||||
SELECT
|
||||
run.start_time,
|
||||
device.device_code,
|
||||
device.device_name,
|
||||
err.err_name
|
||||
FROM
|
||||
pdm_bi_devicerunstatusrecord run
|
||||
LEFT JOIN pdm_bi_devicerunerrorlink err ON err.err_status_id = run.err_status_id
|
||||
LEFT JOIN pdm_bi_device device ON run.device_id = device.device_id
|
||||
WHERE
|
||||
run.status_type = '05'
|
||||
AND
|
||||
run.start_time like 输入.today
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user