设备大屏
This commit is contained in:
@@ -0,0 +1,72 @@
|
|||||||
|
package org.nl.wms.sb.bigscreen.rest;
|
||||||
|
|
||||||
|
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.sb.bigscreen.service.DeviceBigScreenService;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "设备管理综合查询")
|
||||||
|
@RequestMapping("/api/deviceBigScreen")
|
||||||
|
@Slf4j
|
||||||
|
public class DeviceBigScreenController {
|
||||||
|
|
||||||
|
private final DeviceBigScreenService deviceBigScreenService;
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceTime")
|
||||||
|
@Log("设备每日开机时长")
|
||||||
|
@ApiOperation("设备每日开机时长")
|
||||||
|
public ResponseEntity<Object> getDeviceTime(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceTime(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceNumber")
|
||||||
|
@Log("设备数量")
|
||||||
|
@ApiOperation("设备数量")
|
||||||
|
public ResponseEntity<Object> getDeviceNumber(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceNumber(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceFault")
|
||||||
|
@Log("年故障类别")
|
||||||
|
@ApiOperation("年故障类别")
|
||||||
|
public ResponseEntity<Object> getDeviceFault(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceFault(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceRunStatus")
|
||||||
|
@Log("设备运行状态")
|
||||||
|
@ApiOperation("设备运行状态")
|
||||||
|
public ResponseEntity<Object> getDeviceRunStatus(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceRunStatus(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceYearStatus")
|
||||||
|
@Log("设备年计划保养状态")
|
||||||
|
@ApiOperation("设备年计划保养状态")
|
||||||
|
public ResponseEntity<Object> getDeviceYearStatus(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceYearStatus(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceYearMainPlan")
|
||||||
|
@Log("设备年保养计划监控")
|
||||||
|
@ApiOperation("设备年保养计划监控")
|
||||||
|
public ResponseEntity<Object> getDeviceYearMainPlan(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceYearMainPlan(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getDeviceGroupStatus")
|
||||||
|
@Log("近30天班组情况")
|
||||||
|
@ApiOperation("近30天班组情况")
|
||||||
|
public ResponseEntity<Object> getDeviceGroupStatus(){
|
||||||
|
return new ResponseEntity<>(deviceBigScreenService.getDeviceGroupStatus(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package org.nl.wms.sb.bigscreen.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
public interface DeviceBigScreenService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备每日开机时长
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceTime();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备数量
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceNumber();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年故障类别
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceFault();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备运行状态
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceRunStatus();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备年计划保养状态
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceYearStatus();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备年保养计划监控
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceYearMainPlan();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 近30天班组情况
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject getDeviceGroupStatus();
|
||||||
|
}
|
||||||
@@ -0,0 +1,469 @@
|
|||||||
|
package org.nl.wms.sb.bigscreen.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUnit;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.wms.sb.bigscreen.service.DeviceBigScreenService;
|
||||||
|
import org.nl.wql.WQL;
|
||||||
|
import org.nl.wql.core.bean.WQLObject;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class DeviceBigScreenServiceImpl implements DeviceBigScreenService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceTime() {
|
||||||
|
/* 查询设备运行记录表
|
||||||
|
* 1.获取当前日期 - 前14天的日期
|
||||||
|
* 2.根据日期查询每个部门当前日期的总时长
|
||||||
|
*/
|
||||||
|
JSONObject map = new JSONObject();
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
JSONArray resultArr = new JSONArray();
|
||||||
|
|
||||||
|
// 1.1获取当前日期 - 前14天的日期
|
||||||
|
String now = DateUtil.now();
|
||||||
|
for (int i = 0; i < 14; i++) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
String run_date = DateUtil.offsetDay(DateUtil.parse(now), -i).toString().substring(0, 10);
|
||||||
|
// 棒料事业部:H900000 矿用合金事业部:H800000 型材事业部:H400000 混合料厂:H1300000 武汉运营保障部:H1200200 精密零件事业部:H1000000
|
||||||
|
map.put("flag", "1");
|
||||||
|
map.put("run_date", run_date);
|
||||||
|
map.put("dept_code", "H900000");
|
||||||
|
// 1.2查询棒料事业部总时长
|
||||||
|
JSONObject json_bl = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(json_bl)) {
|
||||||
|
json.put("dept_name_bl", NumberUtil.round(NumberUtil.div(json_bl.getString("run_times"), "60"), 1).toString());
|
||||||
|
} else {
|
||||||
|
json.put("dept_name_bl", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1.3查询矿用合金事业部总时长
|
||||||
|
map.put("dept_code", "H800000");
|
||||||
|
JSONObject json_ky = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(json_ky)) {
|
||||||
|
json.put("dept_name_ky", NumberUtil.round(NumberUtil.div(json_ky.getString("run_times"), "60"), 1).toString());
|
||||||
|
} else {
|
||||||
|
json.put("dept_name_ky", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1.4查询型材事业部总时长
|
||||||
|
map.put("dept_code", "H400000");
|
||||||
|
JSONObject json_xc = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(json_xc)) {
|
||||||
|
json.put("dept_name_xc", NumberUtil.round(NumberUtil.div(json_xc.getString("run_times"), "60"), 1).toString());
|
||||||
|
} else {
|
||||||
|
json.put("dept_name_xc", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1.5查询混合料厂总时长
|
||||||
|
map.put("dept_code", "H1300000");
|
||||||
|
JSONObject json_hh = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(json_hh)) {
|
||||||
|
json.put("dept_name_hh", NumberUtil.round(NumberUtil.div(json_hh.getString("run_times"), "60"), 1).toString());
|
||||||
|
} else {
|
||||||
|
json.put("dept_name_hh", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1.6查询武汉运营保障部总时长
|
||||||
|
map.put("dept_code", "H1200200");
|
||||||
|
JSONObject json_wh = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(json_wh)) {
|
||||||
|
json.put("dept_name_wh", NumberUtil.round(NumberUtil.div(json_wh.getString("run_times"), "60"), 1).toString());
|
||||||
|
} else {
|
||||||
|
json.put("dept_name_wh", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1.7查询精密零件事业部总时长
|
||||||
|
map.put("dept_code", "H1000000");
|
||||||
|
JSONObject json_jm = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(json_jm)) {
|
||||||
|
json.put("dept_name_jm", NumberUtil.round(NumberUtil.div(json_jm.getString("run_times"), "60"), 1).toString());
|
||||||
|
} else {
|
||||||
|
json.put("dept_name_jm", "0");
|
||||||
|
}
|
||||||
|
// 当前日期
|
||||||
|
json.put("device_date", run_date);
|
||||||
|
|
||||||
|
resultArr.add(json);
|
||||||
|
}
|
||||||
|
resultData.put("device_time_arr", resultArr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceNumber() {
|
||||||
|
/* 查询设备档案表
|
||||||
|
* 1.获取总设备台数和在用台数
|
||||||
|
* 2.获取6个部门各有多少台数
|
||||||
|
*/
|
||||||
|
WQLObject fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 设备档案表
|
||||||
|
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
JSONArray resultArr = new JSONArray();
|
||||||
|
|
||||||
|
// 1.获取总设备台数:未报废的、未删除
|
||||||
|
JSONArray allArr = fileTab.query("status NOT IN ('90','91') and is_delete ='0'").getResultJSONArray(0);
|
||||||
|
resultData.put("device_all_num", String.valueOf(allArr.size()));
|
||||||
|
// 2.获取在用台数
|
||||||
|
JSONArray useArr = fileTab.query("status = '10' and is_delete ='0'").getResultJSONArray(0);
|
||||||
|
resultData.put("device_use_num", String.valueOf(useArr.size()));
|
||||||
|
|
||||||
|
// 3.1获取各个部门的台数:
|
||||||
|
// 棒料事业部:H900000 矿用合金事业部:H800000 型材事业部:H400000 混合料厂:H1300000 武汉运营保障部:H1200200 精密零件事业部:H1000000
|
||||||
|
JSONObject map = new JSONObject();
|
||||||
|
map.put("flag", "2");
|
||||||
|
|
||||||
|
// 3.2 棒料事业部
|
||||||
|
map.put("dept_code", "H900000");
|
||||||
|
JSONObject num_bl = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
JSONObject json_bl = new JSONObject();
|
||||||
|
json_bl.put("dept_name", "棒料事业部");
|
||||||
|
json_bl.put("device_num", num_bl.getString("num"));
|
||||||
|
resultArr.add(json_bl);
|
||||||
|
|
||||||
|
// 3.3 矿用合金事业部
|
||||||
|
map.put("dept_code", "H800000");
|
||||||
|
JSONObject num_ky = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
JSONObject json_ky = new JSONObject();
|
||||||
|
json_ky.put("dept_name", "矿用合金事业部");
|
||||||
|
json_ky.put("device_num", num_ky.getString("num"));
|
||||||
|
resultArr.add(json_ky);
|
||||||
|
|
||||||
|
// 3.4 型材事业部
|
||||||
|
map.put("dept_code", "H400000");
|
||||||
|
JSONObject num_xc = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
JSONObject json_xc = new JSONObject();
|
||||||
|
json_xc.put("dept_name", "型材事业部");
|
||||||
|
json_xc.put("device_num", num_xc.getString("num"));
|
||||||
|
resultArr.add(json_xc);
|
||||||
|
|
||||||
|
// 3.5 混合料厂
|
||||||
|
map.put("dept_code", "H1300000");
|
||||||
|
JSONObject num_hh = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
JSONObject json_hh = new JSONObject();
|
||||||
|
json_hh.put("dept_name", "混合料厂");
|
||||||
|
json_hh.put("device_num", num_hh.getString("num"));
|
||||||
|
resultArr.add(json_hh);
|
||||||
|
|
||||||
|
// 3.6 武汉运营保障部
|
||||||
|
map.put("dept_code", "H1200200");
|
||||||
|
JSONObject num_wh = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
JSONObject json_wh = new JSONObject();
|
||||||
|
json_wh.put("dept_name", "武汉运营保障部");
|
||||||
|
json_wh.put("device_num", num_wh.getString("num"));
|
||||||
|
resultArr.add(json_wh);
|
||||||
|
|
||||||
|
// 3.7 精密零件事业部
|
||||||
|
map.put("dept_code", "H1000000");
|
||||||
|
JSONObject num_jm = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
JSONObject json_jm = new JSONObject();
|
||||||
|
json_jm.put("dept_name", "精密零件事业部");
|
||||||
|
json_jm.put("device_num", num_jm.getString("num"));
|
||||||
|
resultArr.add(json_jm);
|
||||||
|
|
||||||
|
resultData.put("device_all_arr", resultArr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceFault() {
|
||||||
|
/* 查询报修单
|
||||||
|
* 1.故障前10且未删除,并已通过的报修单
|
||||||
|
*/
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
|
||||||
|
JSONArray arr = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParam("flag", "3").process().getResultJSONArray(0);
|
||||||
|
resultData.put("device_fault_arr", arr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceRunStatus() {
|
||||||
|
/*
|
||||||
|
* 查询档案表
|
||||||
|
* 1.查询档案表中的设备状态台数
|
||||||
|
*/
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
JSONArray resultArr = new JSONArray();
|
||||||
|
|
||||||
|
// 1.根据部门分组
|
||||||
|
JSONArray deptArr = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
for (int i = 0; i < deptArr.size(); i++) {
|
||||||
|
JSONObject json = deptArr.getJSONObject(i);
|
||||||
|
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("dept_name", json.getString("name"));
|
||||||
|
// 2.根据部门找到对应的状态台数
|
||||||
|
JSONObject map = new JSONObject();
|
||||||
|
map.put("flag", "5");
|
||||||
|
map.put("dept_code", json.getString("code"));
|
||||||
|
|
||||||
|
// 正常台数
|
||||||
|
map.put("status", "10");
|
||||||
|
JSONObject normal_num = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("normal_num", normal_num.getString("num"));
|
||||||
|
|
||||||
|
// 故障台数
|
||||||
|
map.put("status", "20");
|
||||||
|
JSONObject fault_num = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("fault_num", fault_num.getString("num"));
|
||||||
|
|
||||||
|
// 委外台数
|
||||||
|
map.put("status", "30");
|
||||||
|
JSONObject out_num = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("out_num", out_num.getString("num"));
|
||||||
|
|
||||||
|
// 保养台数
|
||||||
|
map.put("status", "40");
|
||||||
|
JSONObject main_num = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("main_num", main_num.getString("num"));
|
||||||
|
|
||||||
|
resultArr.add(jsonObject);
|
||||||
|
}
|
||||||
|
resultData.put("device_run_arr", resultArr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceYearStatus() {
|
||||||
|
/*
|
||||||
|
* 查询保养计划单
|
||||||
|
* 1.查询保养计划为年计划的保养计划
|
||||||
|
* 2.完成率:已保养台数/需保养台数
|
||||||
|
*/
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
JSONArray resultArr = new JSONArray();
|
||||||
|
|
||||||
|
// 1.根据部门分组
|
||||||
|
JSONArray deptArr = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParam("flag", "1").process().getResultJSONArray(0);
|
||||||
|
for (int i = 0; i < deptArr.size(); i++) {
|
||||||
|
JSONObject json = deptArr.getJSONObject(i);
|
||||||
|
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("dept_name", json.getString("name"));
|
||||||
|
// 2.根据部门code查询对应的保养台数,未保养台数等
|
||||||
|
JSONObject map = new JSONObject();
|
||||||
|
map.put("flag", "2");
|
||||||
|
map.put("dept_code", json.getString("code"));
|
||||||
|
|
||||||
|
// 需保养台数: 开始日期和计划日期都为空
|
||||||
|
JSONObject need_num = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("need_num", need_num.getString("num"));
|
||||||
|
|
||||||
|
// 已保养台数:开始日期和计划日期都不为空
|
||||||
|
map.put("flag", "3");
|
||||||
|
JSONObject end_num = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("end_num", end_num.getString("num"));
|
||||||
|
|
||||||
|
// 在保养台数:开始日期不能为空,结束日期为空
|
||||||
|
map.put("flag", "4");
|
||||||
|
JSONObject begin_num = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jsonObject.put("begin_num", begin_num.getString("num"));
|
||||||
|
|
||||||
|
// 未保养台数 = 需保养台数
|
||||||
|
jsonObject.put("not_num", jsonObject.getString("need_num"));
|
||||||
|
|
||||||
|
// 完成率:已保养台数/需保养台数
|
||||||
|
String div = NumberUtil.div(jsonObject.getShort("end_num"), jsonObject.getShort("need_num")).toString();
|
||||||
|
jsonObject.put("confirm_rate", NumberUtil.round(NumberUtil.mul(div, "100"), 2));
|
||||||
|
|
||||||
|
resultArr.add(jsonObject);
|
||||||
|
}
|
||||||
|
resultData.put("device_year_arr", resultArr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceYearMainPlan() {
|
||||||
|
/*
|
||||||
|
* 查询保养单明细
|
||||||
|
*/
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
|
||||||
|
JSONArray arr = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParam("flag", "7").process().getResultJSONArray(0);
|
||||||
|
for (int i = 0; i < arr.size(); i++) {
|
||||||
|
JSONObject json = arr.getJSONObject(i);
|
||||||
|
// 保养倒计时: 计划日期 - 当前日期
|
||||||
|
Date date1 = DateUtil.parse(DateUtil.today()); // 当前日期
|
||||||
|
Date date2 = DateUtil.parse(json.getString("plan_time")); // 计划日期
|
||||||
|
long betweenDay = DateUtil.between(date1, date2, DateUnit.HOUR, false);
|
||||||
|
json.put("main_time", String.valueOf(betweenDay));
|
||||||
|
|
||||||
|
// 延期时间: ( 计划日期 - 实际结束时间 ) 为负数则为延期
|
||||||
|
String real_end_date = json.getString("real_end_date");
|
||||||
|
if (ObjectUtil.isNotEmpty(real_end_date)) {
|
||||||
|
Date date3 = DateUtil.parse(real_end_date); // 实际结束时间
|
||||||
|
long betweenDay2 = DateUtil.between(date3, date2, DateUnit.DAY, false);
|
||||||
|
if (betweenDay2 < 0) {
|
||||||
|
json.put("putoff_time", String.valueOf(betweenDay2)+ "天");
|
||||||
|
json.put("remark", "延期");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultData.put("device_year_arr", arr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getDeviceGroupStatus() {
|
||||||
|
/*
|
||||||
|
* 查询档案表
|
||||||
|
* 1.根据使用班组进行分组
|
||||||
|
* 2.查询每个班组有多少台设备(未删除)
|
||||||
|
* 3.MTBF:运行时间/故障次数(运行时间查运行记录表,故障次数查报修单)备注:此班组的所有设备
|
||||||
|
* 4.MTTR:故障时间/故障次数(故障时间查运行记录表) 备注:此班组的所有设备
|
||||||
|
* 5.OEE:
|
||||||
|
* (生产时间-准备时间-故障时间-工装调整时间)/(生产时间-准备时间-工装调整时间) *
|
||||||
|
* 单个产品生产时间*生产总量/
|
||||||
|
* (生产时间-准备时间-故障时间-工装调整时间)*
|
||||||
|
* (生产总量-不合格数)/生产总量
|
||||||
|
* 备注:此班组的所有设备;单个产品生产时间:设备档案表取此设备理论节拍
|
||||||
|
* 6.总维修时间:报修完成时间-报修时间(都查报修单) 备注:此班组的所有设备
|
||||||
|
*/
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
JSONObject resultData = new JSONObject();
|
||||||
|
JSONArray resultArr = new JSONArray();
|
||||||
|
|
||||||
|
// 1.根据使用班组进行分组
|
||||||
|
JSONArray useArr = WQL.getWO("EM_DEVICEBIGSCREEN_03").addParam("flag", "1").process().getResultJSONArray(0);
|
||||||
|
// 2.查询每个班组有多少台设备
|
||||||
|
for (int i = 0; i < useArr.size(); i++) {
|
||||||
|
JSONObject jsonUse = useArr.getJSONObject(i);
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("group_name", jsonUse.getString("name"));
|
||||||
|
|
||||||
|
JSONObject map = new JSONObject();
|
||||||
|
map.put("flag", "2");
|
||||||
|
map.put("dept_code", jsonUse.getString("code"));
|
||||||
|
|
||||||
|
// 每个班组中的所有设备
|
||||||
|
JSONArray deviceArr = WQL.getWO("EM_DEVICEBIGSCREEN_03").addParamMap(map).process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
// 3.查询每台设备近三十天的运行情况
|
||||||
|
String begin_time = DateUtil.offsetDay(DateUtil.parse(DateUtil.now()), -30).toString().substring(0, 10);
|
||||||
|
String end_time = DateUtil.today();
|
||||||
|
|
||||||
|
String run_time_all = "0"; // 所有设备总运行时间
|
||||||
|
String error_num_all = "0"; // 所有设备总故障次数
|
||||||
|
String error_time_all = "0"; // 所有设备总故障时间
|
||||||
|
String oee_all = "0"; // 所有设备总oee
|
||||||
|
String device_all_time = "0"; // 所有设备的维修时间
|
||||||
|
|
||||||
|
for (int j = 0; j < deviceArr.size(); j++) {
|
||||||
|
JSONObject jsonDevice = deviceArr.getJSONObject(j);
|
||||||
|
map.put("flag","3");
|
||||||
|
map.put("begin_time",begin_time);
|
||||||
|
map.put("end_time",end_time);
|
||||||
|
map.put("devicerecord_id",jsonDevice.getString("devicerecord_id"));
|
||||||
|
|
||||||
|
// 查询单台30天中平均每天的运行指标
|
||||||
|
JSONObject jsonRun = WQL.getWO("EM_DEVICEBIGSCREEN_03").addParamMap(map).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(jsonRun)) {
|
||||||
|
run_time_all = NumberUtil.add(run_time_all,jsonRun.getString("run_times")).toString();
|
||||||
|
error_time_all = NumberUtil.add(error_time_all,jsonRun.getString("error_times")).toString();
|
||||||
|
oee_all = NumberUtil.add(oee_all,jsonRun.getString("oee_value")).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询单台30天当中的故障次数
|
||||||
|
map.put("flag","4");
|
||||||
|
JSONObject jsonErrorNum = WQL.getWO("EM_DEVICEBIGSCREEN_03").addParamMap(map).process().uniqueResult(0);
|
||||||
|
error_num_all = NumberUtil.add(error_num_all,jsonErrorNum.getString("num")).toString();
|
||||||
|
|
||||||
|
map.put("flag","5");
|
||||||
|
// 查询单台30天当中的报修单
|
||||||
|
String one_all_time = "0"; // 一台设备30天的维修时间
|
||||||
|
JSONArray jsonReArr = WQL.getWO("EM_DEVICEBIGSCREEN_03").addParamMap(map).process().getResultJSONArray(0);
|
||||||
|
for (int k = 0; k < jsonReArr.size(); k++) {
|
||||||
|
JSONObject jsonObject = jsonReArr.getJSONObject(k);
|
||||||
|
|
||||||
|
Date date_finish_time = DateUtil.parse(jsonObject.getString("finish_time")); // 报修完成时间
|
||||||
|
Date date_create_time = DateUtil.parse(jsonObject.getString("create_time")); // 报修时间
|
||||||
|
// 一台设备一天的维修时间
|
||||||
|
long one_day_time = DateUtil.between(date_create_time, date_finish_time, DateUnit.HOUR, false);
|
||||||
|
|
||||||
|
one_all_time = NumberUtil.add(one_all_time,String.valueOf(one_day_time)).toString();
|
||||||
|
}
|
||||||
|
device_all_time = NumberUtil.add(device_all_time,one_all_time).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4.计算MTBF:运行时间/故障次数
|
||||||
|
try {
|
||||||
|
String device_mtbf = NumberUtil.div(run_time_all, error_num_all).toString();
|
||||||
|
json.put("device_mtbf", NumberUtil.round(device_mtbf, 2).toString());
|
||||||
|
} catch (Exception e){
|
||||||
|
json.put("device_mtbf", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5.计算MTTR:故障时间/故障次数
|
||||||
|
try {
|
||||||
|
String device_mttr = NumberUtil.div(error_time_all, error_num_all).toString();
|
||||||
|
json.put("device_mttr", NumberUtil.round(device_mttr, 2).toString());
|
||||||
|
} catch (Exception e){
|
||||||
|
json.put("device_mttr", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6.计算平均OEE: 所有设备OEE / 设备台数
|
||||||
|
try {
|
||||||
|
String oee = NumberUtil.div(oee_all, String.valueOf(deviceArr.size())).toString();
|
||||||
|
json.put("device_oee", NumberUtil.round(oee, 2).toString());
|
||||||
|
} catch (Exception e){
|
||||||
|
json.put("device_oee", "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 7.维修时间
|
||||||
|
json.put("device_time", device_all_time);
|
||||||
|
|
||||||
|
resultArr.add(json);
|
||||||
|
}
|
||||||
|
resultData.put("device_group_arr", resultArr);
|
||||||
|
|
||||||
|
resultJson.put("srb", resultData);
|
||||||
|
resultJson.put("code", "1");
|
||||||
|
resultJson.put("desc", "查询成功");
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,178 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: 设备大屏查询
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.run_date TYPEAS s_string
|
||||||
|
输入.dept_code TYPEAS s_string
|
||||||
|
输入.status TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sum(run.run_times) AS run_times,
|
||||||
|
max(dept.name) AS name
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRunRecord run
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = run.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
dept.code = 输入.dept_code
|
||||||
|
AND run.run_date = 输入.run_date
|
||||||
|
|
||||||
|
group by dept.code
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "2"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(file.devicerecord_id) AS num
|
||||||
|
FROM
|
||||||
|
EM_BI_EquipmentFile file
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
dept.code = 输入.dept_code
|
||||||
|
AND file.status NOT IN ('90','91')
|
||||||
|
AND file.is_delete = '0'
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "3"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(re.device_faultclass_id) AS device_fault_num,
|
||||||
|
class.device_faultclass_name AS device_fault_type
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairRequest re
|
||||||
|
LEFT JOIN em_bi_devicefaultclass class ON class.device_faultclass_id = re.device_faultclass_id
|
||||||
|
WHERE
|
||||||
|
re.is_delete = '0'
|
||||||
|
AND re.is_passed = '1'
|
||||||
|
|
||||||
|
group by re.device_faultclass_id
|
||||||
|
|
||||||
|
ORDER BY device_fault_num DESC
|
||||||
|
|
||||||
|
LIMIT 0,10
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
dept.code,
|
||||||
|
dept.name
|
||||||
|
FROM
|
||||||
|
EM_BI_EquipmentFile file
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
file.is_delete = '0'
|
||||||
|
AND file.status not in ('00','11','90','91')
|
||||||
|
|
||||||
|
group by file.use_deptid
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "5"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(file.devicerecord_id) AS num
|
||||||
|
FROM
|
||||||
|
EM_BI_EquipmentFile file
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
file.is_delete = '0'
|
||||||
|
AND dept.code = 输入.dept_code
|
||||||
|
AND file.status = 输入.status
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "6"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
dept.code,
|
||||||
|
dept.name
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenancePlanMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND mst.maintenancecycle = '01'
|
||||||
|
|
||||||
|
group by file.use_deptid
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "7"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
dept.name AS dept_name,
|
||||||
|
file.device_name,
|
||||||
|
file.device_code,
|
||||||
|
item.contents AS plan_content,
|
||||||
|
mst.plan_start_date AS plan_time,
|
||||||
|
mst.confirm_optname AS impl_name,
|
||||||
|
mst.real_start_date AS impl_time,
|
||||||
|
mst.remark,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenancePlanDtl dtl
|
||||||
|
LEFT JOIN EM_BI_DeviceMaintenanceItems item ON item.maint_item_id = dtl.maint_item_id
|
||||||
|
LEFT JOIN EM_BI_DeviceMaintenancePlanMst mst ON mst.maint_plan_id = dtl.maint_plan_id
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND mst.maintenancecycle = '01'
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: 设备大屏查询-计划保养状态查询
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.dept_code TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
dept.code,
|
||||||
|
dept.name
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenancePlanMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND mst.maintenancecycle = '01'
|
||||||
|
|
||||||
|
group by file.use_deptid
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "2"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(mst.maint_plan_id) AS num
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenancePlanMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND mst.maintenancecycle = '01'
|
||||||
|
AND dept.code = 输入.dept_code
|
||||||
|
AND mst.real_start_date is null
|
||||||
|
AND mst.real_end_date is null
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "3"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(mst.maint_plan_id) AS num
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenancePlanMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND mst.maintenancecycle = '01'
|
||||||
|
AND dept.code = 输入.dept_code
|
||||||
|
AND mst.real_start_date is not null
|
||||||
|
AND mst.real_end_date is not null
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(mst.maint_plan_id) AS num
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenancePlanMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND mst.maintenancecycle = '01'
|
||||||
|
AND dept.code = 输入.dept_code
|
||||||
|
AND mst.real_start_date is not null
|
||||||
|
AND mst.real_end_date is null
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: 设备大屏查询-近30天班组情况
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.begin_time TYPEAS s_string
|
||||||
|
输入.end_time TYPEAS s_string
|
||||||
|
输入.dept_code TYPEAS s_string
|
||||||
|
输入.devicerecord_id TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
dept.code,
|
||||||
|
dept.name
|
||||||
|
FROM
|
||||||
|
EM_BI_EquipmentFile file
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_groupid
|
||||||
|
WHERE
|
||||||
|
file.is_delete = '0'
|
||||||
|
AND file.status not in ('90','91')
|
||||||
|
|
||||||
|
group by file.use_groupid
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "2"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
file.*
|
||||||
|
FROM
|
||||||
|
EM_BI_EquipmentFile file
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = file.use_groupid
|
||||||
|
WHERE
|
||||||
|
file.is_delete = '0'
|
||||||
|
AND file.status not in ('90','91')
|
||||||
|
AND dept.code = 输入.dept_code
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "3"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
ROUND(sum(run.run_times),2) AS run_times,
|
||||||
|
ROUND(sum(run.prepare_times),2) AS prepare_times,
|
||||||
|
ROUND(sum(run.error_times),2) AS error_times,
|
||||||
|
ROUND(sum(run.adjust_times),2) AS adjust_times,
|
||||||
|
ROUND(sum(run.product_qty),2) AS product_qty,
|
||||||
|
ROUND(sum(run.nok_qty),2) AS nok_qty,
|
||||||
|
ROUND(sum(run.oee_value),2) AS oee_value
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRunRecord run
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON run.devicerecord_id = file.devicerecord_id
|
||||||
|
WHERE
|
||||||
|
run.devicerecord_id = 输入.devicerecord_id
|
||||||
|
AND ( run.run_date BETWEEN 输入.begin_time AND 输入.end_time)
|
||||||
|
|
||||||
|
group by run.devicerecord_id
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
count(re.request_id) AS num
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairRequest re
|
||||||
|
WHERE
|
||||||
|
re.devicerecord_id = 输入.devicerecord_id
|
||||||
|
AND re.is_delete = '0'
|
||||||
|
AND ( re.fault_time BETWEEN 输入.begin_time AND 输入.end_time)
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "5"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
re.*
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairRequest re
|
||||||
|
WHERE
|
||||||
|
re.devicerecord_id = 输入.devicerecord_id
|
||||||
|
AND re.is_delete = '0'
|
||||||
|
AND ( re.fault_time BETWEEN 输入.begin_time AND 输入.end_time)
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
Reference in New Issue
Block a user