add 数字孪生
This commit is contained in:
@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.acs.AcsConfig;
|
import org.nl.acs.AcsConfig;
|
||||||
import org.nl.acs.agv.server.NDCAgvService;
|
import org.nl.acs.agv.server.NDCAgvService;
|
||||||
import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
|
import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
|
||||||
|
import org.nl.acs.common.StandardOrdinarySiteDevice;
|
||||||
import org.nl.acs.device.domain.Device;
|
import org.nl.acs.device.domain.Device;
|
||||||
import org.nl.acs.device.service.DeviceService;
|
import org.nl.acs.device.service.DeviceService;
|
||||||
import org.nl.acs.device_driver.DeviceDriver;
|
import org.nl.acs.device_driver.DeviceDriver;
|
||||||
@@ -115,17 +116,18 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
String emptyNum = null;
|
String emptyNum = null;
|
||||||
String device_code = null;
|
String device_code = null;
|
||||||
|
|
||||||
if (phase == 0x67) {
|
// if (phase == 0x67) {
|
||||||
//故障信息
|
// //故障信息
|
||||||
if (arr[18] * 256 + arr[19] == 0) {
|
// if (arr[18] * 256 + arr[19] == 0) {
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
// FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
request.setDevice_code(this.device_code);
|
// request.setDevice_code(this.device_code);
|
||||||
request.setState("故障");
|
// request.setType("3");
|
||||||
acsToWmsService.notify(request);
|
// request.setState("故障");
|
||||||
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
// acsToWmsService.notify(request);
|
||||||
}
|
// data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
||||||
|
// }
|
||||||
TaskDto task = new TaskDto();
|
TaskDto task = new TaskDto();
|
||||||
|
|
||||||
if(ObjectUtil.isNotEmpty(inst)){
|
if(ObjectUtil.isNotEmpty(inst)){
|
||||||
@@ -187,6 +189,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
//取货完毕
|
//取货完毕
|
||||||
//(需要WCS反馈)
|
//(需要WCS反馈)
|
||||||
} else if (phase == 0x05) {
|
} else if (phase == 0x05) {
|
||||||
|
|
||||||
if (agvaddr == 0) {
|
if (agvaddr == 0) {
|
||||||
agvaddr = agvaddr_copy;
|
agvaddr = agvaddr_copy;
|
||||||
}
|
}
|
||||||
@@ -207,8 +210,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
device_code = old_device_code;
|
device_code = old_device_code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
|
||||||
device = deviceAppService.findDeviceByCode(device_code);
|
device = deviceAppService.findDeviceByCode(device_code);
|
||||||
|
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
|
log.info("起点设备名称是{}",device_code);
|
||||||
|
// acsToWmsService.ghsmlqhfinish(task);
|
||||||
|
}
|
||||||
if (ObjectUtil.isEmpty(device_code)) {
|
if (ObjectUtil.isEmpty(device_code)) {
|
||||||
log.info(agvaddr + "对应设备号为空!");
|
log.info(agvaddr + "对应设备号为空!");
|
||||||
logServer.deviceExecuteLog(this.device_code, "", "", "对应设备号为空" + device_code);
|
logServer.deviceExecuteLog(this.device_code, "", "", "对应设备号为空" + device_code);
|
||||||
|
|||||||
@@ -164,10 +164,11 @@ public class SiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceD
|
|||||||
acsToWmsService.notify(request);
|
acsToWmsService.notify(request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (error != last_error &&error!=0) {
|
if (error != last_error ) {
|
||||||
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
request.setDevice_code(this.device_code);
|
request.setDevice_code(this.device_code);
|
||||||
request.setState("故障");
|
request.setType("3");
|
||||||
|
request.setState(String.valueOf(error));
|
||||||
acsToWmsService.notify(request);
|
acsToWmsService.notify(request);
|
||||||
}
|
}
|
||||||
} catch (Exception var17) {
|
} catch (Exception var17) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.http.HttpResponse;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.nl.acs.ext.wms.data.*;
|
import org.nl.acs.ext.wms.data.*;
|
||||||
|
import org.nl.acs.task.service.dto.TaskDto;
|
||||||
|
|
||||||
public interface AcsToWmsService {
|
public interface AcsToWmsService {
|
||||||
|
|
||||||
@@ -135,4 +136,9 @@ public interface AcsToWmsService {
|
|||||||
* 任务阶段反馈最新点位
|
* 任务阶段反馈最新点位
|
||||||
*/
|
*/
|
||||||
String feedbackState(BaseRequest request);
|
String feedbackState(BaseRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据指令号找到任务号后将start_point_code为固化室出口的任务id反馈给lms
|
||||||
|
*/
|
||||||
|
public String ghsmlqhfinish(TaskDto task);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -607,4 +607,31 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
MDC.remove(log_file_type);
|
MDC.remove(log_file_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String ghsmlqhfinish(TaskDto task) {
|
||||||
|
String wmsurl = paramService.findByCode(AcsConfig.WMSURL).getValue();
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("task_id", task.getExt_task_id());
|
||||||
|
String result2 = null;
|
||||||
|
|
||||||
|
AddressDto addressDto = addressService.findByCode("ghsmlqhfinish");
|
||||||
|
String methods_url = addressDto.getMethods_url();
|
||||||
|
String url = wmsurl + methods_url;
|
||||||
|
log.info("ghsmlqhfinish----请求参数{}", jo);
|
||||||
|
|
||||||
|
try {
|
||||||
|
result2 = HttpRequest.post(url)
|
||||||
|
.body(String.valueOf(jo))
|
||||||
|
.execute().body();
|
||||||
|
//System.out.println(result2);
|
||||||
|
log.info("ghsmlqhfinish----返回参数{}", result2);
|
||||||
|
} catch (Exception e) {
|
||||||
|
String msg = e.getMessage();
|
||||||
|
//网络不通
|
||||||
|
//System.out.println(msg);
|
||||||
|
|
||||||
|
}
|
||||||
|
return result2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -312,6 +312,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
|||||||
wrapper.lt(Task::getTask_status,2);
|
wrapper.lt(Task::getTask_status,2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
wrapper.orderByDesc(Task::getCreate_time);
|
||||||
IPage<Task> taskPage = taskMapper.selectPage(queryPage,wrapper);
|
IPage<Task> taskPage = taskMapper.selectPage(queryPage,wrapper);
|
||||||
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class));
|
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class));
|
||||||
return json;
|
return json;
|
||||||
@@ -419,6 +420,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
|||||||
if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) {
|
if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) {
|
||||||
wrapper.between(Task::getCreate_time,create_time,end_time);
|
wrapper.between(Task::getCreate_time,create_time,end_time);
|
||||||
}
|
}
|
||||||
|
wrapper.orderByDesc(Task::getCreate_time);
|
||||||
IPage<Task> taskPage = taskMapper.selectPage(queryPage,wrapper);
|
IPage<Task> taskPage = taskMapper.selectPage(queryPage,wrapper);
|
||||||
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class));
|
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class));
|
||||||
JSONArray array = json.getJSONArray("content");
|
JSONArray array = json.getJSONArray("content");
|
||||||
|
|||||||
@@ -253,6 +253,7 @@ public class HandServiceImpl implements HandService {
|
|||||||
inst.put("priority",list.get(i).getPriority());
|
inst.put("priority",list.get(i).getPriority());
|
||||||
inst.put("create_time",list.get(i).getCreate_time());
|
inst.put("create_time",list.get(i).getCreate_time());
|
||||||
inst.put("carno",list.get(i).getCarno()==null?"":list.get(i).getCarno());
|
inst.put("carno",list.get(i).getCarno()==null?"":list.get(i).getCarno());
|
||||||
|
inst.put("send_status",list.get(i).getSend_status());
|
||||||
data.add(inst);
|
data.add(inst);
|
||||||
}
|
}
|
||||||
JSONObject resultJson = new JSONObject();
|
JSONObject resultJson = new JSONObject();
|
||||||
|
|||||||
@@ -71,21 +71,33 @@ public class SyncDeviceStatus {
|
|||||||
for (Device device : deviceList) {
|
for (Device device : deviceList) {
|
||||||
if (device.getDeviceDriver() instanceof BaoshijianSiteDeviceDriver) {
|
if (device.getDeviceDriver() instanceof BaoshijianSiteDeviceDriver) {
|
||||||
BaoshijianSiteDeviceDriver baoshijianSiteDeviceDriver=(BaoshijianSiteDeviceDriver)device.getDeviceDriver();
|
BaoshijianSiteDeviceDriver baoshijianSiteDeviceDriver=(BaoshijianSiteDeviceDriver)device.getDeviceDriver();
|
||||||
|
JSONObject json2 = new JSONObject();
|
||||||
|
json2.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode());
|
||||||
|
json2.put("mode",baoshijianSiteDeviceDriver.getX0());
|
||||||
|
baoshijian.add(json2);
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW01");
|
json.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW01");
|
||||||
json.put("move",baoshijianSiteDeviceDriver.getX1());
|
json.put("move",baoshijianSiteDeviceDriver.getX1());
|
||||||
|
json.put("mode",baoshijianSiteDeviceDriver.getX0());
|
||||||
baoshijian.add(json);
|
baoshijian.add(json);
|
||||||
json.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW02");
|
JSONObject json1 = new JSONObject();
|
||||||
json.put("move",baoshijianSiteDeviceDriver.getX2()==1?0:1);
|
json1.put("device_code", baoshijianSiteDeviceDriver.getDeviceCode()+"DJW02");
|
||||||
baoshijian.add(json);
|
json1.put("move",baoshijianSiteDeviceDriver.getX2()==1?0:1);
|
||||||
|
json.put("mode",baoshijianSiteDeviceDriver.getX0());
|
||||||
|
baoshijian.add(json1);
|
||||||
} else if (device.getDeviceDriver() instanceof GuhuashiSiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof GuhuashiSiteDeviceDriver) {
|
||||||
GuhuashiSiteDeviceDriver guhuashiSiteDeviceDriver=(GuhuashiSiteDeviceDriver)device.getDeviceDriver();
|
GuhuashiSiteDeviceDriver guhuashiSiteDeviceDriver=(GuhuashiSiteDeviceDriver)device.getDeviceDriver();
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.put("device_code", guhuashiSiteDeviceDriver.getDeviceCode());
|
json.put("device_code", guhuashiSiteDeviceDriver.getDeviceCode());
|
||||||
|
//温度设定
|
||||||
json.put("temperature_setting", guhuashiSiteDeviceDriver.getVW7010());
|
json.put("temperature_setting", guhuashiSiteDeviceDriver.getVW7010());
|
||||||
|
//温度显示
|
||||||
json.put("temperature", guhuashiSiteDeviceDriver.getVW7012());
|
json.put("temperature", guhuashiSiteDeviceDriver.getVW7012());
|
||||||
|
//湿度设定
|
||||||
json.put("humidity_setting", guhuashiSiteDeviceDriver.getVW7014());
|
json.put("humidity_setting", guhuashiSiteDeviceDriver.getVW7014());
|
||||||
|
//湿度显示
|
||||||
json.put("humidity", guhuashiSiteDeviceDriver.getVW7016());
|
json.put("humidity", guhuashiSiteDeviceDriver.getVW7016());
|
||||||
|
//阶段累加时间
|
||||||
json.put("total_running_time", guhuashiSiteDeviceDriver.getVW7038());
|
json.put("total_running_time", guhuashiSiteDeviceDriver.getVW7038());
|
||||||
json.put("current_stage", guhuashiSiteDeviceDriver.getVW7042());
|
json.put("current_stage", guhuashiSiteDeviceDriver.getVW7042());
|
||||||
json.put("executing_stage_num", guhuashiSiteDeviceDriver.getVW7044());
|
json.put("executing_stage_num", guhuashiSiteDeviceDriver.getVW7044());
|
||||||
@@ -93,6 +105,8 @@ public class SyncDeviceStatus {
|
|||||||
json.put("front_door", guhuashiSiteDeviceDriver.getVW70004()==0?1:0);
|
json.put("front_door", guhuashiSiteDeviceDriver.getVW70004()==0?1:0);
|
||||||
json.put("back_door", guhuashiSiteDeviceDriver.getVW7010());
|
json.put("back_door", guhuashiSiteDeviceDriver.getVW7010());
|
||||||
json.put("error", guhuashiSiteDeviceDriver.getVD7046());
|
json.put("error", guhuashiSiteDeviceDriver.getVD7046());
|
||||||
|
//正在执行的阶段数 0-固化;1-干燥;
|
||||||
|
json.put("current_stage",guhuashiSiteDeviceDriver.getVW7036());
|
||||||
guhuashi.add(json);
|
guhuashi.add(json);
|
||||||
} else if (device.getDeviceDriver() instanceof SiteStatusDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof SiteStatusDeviceDriver) {
|
||||||
SiteStatusDeviceDriver siteStatusDeviceDriver=(SiteStatusDeviceDriver)device.getDeviceDriver();
|
SiteStatusDeviceDriver siteStatusDeviceDriver=(SiteStatusDeviceDriver)device.getDeviceDriver();
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
<!--日志文件保留天数-->
|
<!--日志文件保留天数-->
|
||||||
<maxHistory>15</maxHistory>
|
<maxHistory>15</maxHistory>
|
||||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||||
<maxFileSize>50MB</maxFileSize>
|
<maxFileSize>100MB</maxFileSize>
|
||||||
<!--所有日志最多占多大容量-->
|
<!--所有日志最多占多大容量-->
|
||||||
<totalSizeCap>20GB</totalSizeCap>
|
<totalSizeCap>20GB</totalSizeCap>
|
||||||
</rollingPolicy>
|
</rollingPolicy>
|
||||||
|
|||||||
@@ -3,17 +3,37 @@
|
|||||||
<mapper namespace="org.nl.wms.board.service.dao.mapper.BoardMapper">
|
<mapper namespace="org.nl.wms.board.service.dao.mapper.BoardMapper">
|
||||||
|
|
||||||
<select id="point" resultType="org.nl.wms.board.service.dao.dto.Point">
|
<select id="point" resultType="org.nl.wms.board.service.dao.dto.Point">
|
||||||
SELECT
|
SELECT
|
||||||
p.point_code,
|
p.point_code,
|
||||||
m.material_name,
|
m.material_name,
|
||||||
p.point_status
|
p.point_status
|
||||||
FROM
|
FROM
|
||||||
sch_base_point p
|
sch_base_point p
|
||||||
LEFT JOIN sch_base_vehiclematerialgroup v ON p.vehicle_code = v.vehicle_code
|
LEFT JOIN sch_base_vehiclematerialgroup v ON p.vehicle_code = v.vehicle_code
|
||||||
LEFT JOIN md_base_material m ON v.material_id = m.material_id
|
LEFT JOIN md_base_material m ON v.material_id = m.material_id
|
||||||
WHERE
|
WHERE
|
||||||
p.region_code = 'ZC'
|
p.region_code = 'ZC'
|
||||||
ORDER BY p.row_num,p.col_num
|
ORDER BY
|
||||||
|
CASE
|
||||||
|
|
||||||
|
WHEN p.row_num > 18 THEN
|
||||||
|
1 ELSE 0
|
||||||
|
END,
|
||||||
|
CASE
|
||||||
|
|
||||||
|
WHEN p.row_num > 18 THEN
|
||||||
|
p.row_num ELSE NULL
|
||||||
|
END,
|
||||||
|
CASE
|
||||||
|
|
||||||
|
WHEN 19 > p.row_num THEN
|
||||||
|
p.row_num ELSE NULL
|
||||||
|
END,
|
||||||
|
CASE
|
||||||
|
|
||||||
|
WHEN p.row_num < 19 THEN
|
||||||
|
p.col_num ELSE NULL
|
||||||
|
END DESC;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="detail" resultType="org.nl.wms.board.service.dao.dto.Detail">
|
<select id="detail" resultType="org.nl.wms.board.service.dao.dto.Detail">
|
||||||
|
|||||||
@@ -57,9 +57,8 @@ public class CockpitController {
|
|||||||
@PostMapping("/acceptDeviceFaultInfo")
|
@PostMapping("/acceptDeviceFaultInfo")
|
||||||
@Log("接收acs推送的设备故障信息")
|
@Log("接收acs推送的设备故障信息")
|
||||||
@ApiOperation("接收acs推送的设备故障信息")
|
@ApiOperation("接收acs推送的设备故障信息")
|
||||||
public ResponseEntity<Object> acceptDeviceFaultInfo(@RequestBody JSONObject deviceInfo) {
|
public ResponseEntity<Object> acceptDeviceFaultInfo() {
|
||||||
cockpitService.acceptDeviceFaultInfo(deviceInfo);
|
return new ResponseEntity<>(cockpitService.acceptDeviceFaultInfo(),HttpStatus.OK);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/getHomeInfo")
|
@PostMapping("/getHomeInfo")
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ package org.nl.wms.cockpit.service;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description:
|
* @Description:
|
||||||
@@ -17,16 +14,16 @@ public interface CockpitService {
|
|||||||
JSONArray allDeviceStatus();
|
JSONArray allDeviceStatus();
|
||||||
void acceptAllDeviceInfo(JSONObject deviceInfo);
|
void acceptAllDeviceInfo(JSONObject deviceInfo);
|
||||||
|
|
||||||
void acceptDeviceFaultInfo(JSONObject deviceInfo);
|
JSONArray acceptDeviceFaultInfo();
|
||||||
|
|
||||||
|
|
||||||
ConcurrentHashMap<String, Object> getHomeInfo();
|
JSONObject getHomeInfo();
|
||||||
|
|
||||||
ConcurrentHashMap<String, Object> getGhsInfo();
|
JSONObject getGhsInfo();
|
||||||
|
|
||||||
ConcurrentHashMap<String, Object> getTbxInfo();
|
JSONObject getTbxInfo();
|
||||||
|
|
||||||
ConcurrentHashMap<String, Object> getZcqInfo();
|
JSONObject getZcqInfo();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,20 @@
|
|||||||
package org.nl.wms.cockpit.service.impl;
|
package org.nl.wms.cockpit.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.ColaBeanUtils;
|
import org.nl.common.utils.ColaBeanUtils;
|
||||||
import org.nl.common.utils.RedisUtils;
|
import org.nl.common.utils.RedisUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
|
||||||
import org.nl.wms.cockpit.service.CockpitService;
|
import org.nl.wms.cockpit.service.CockpitService;
|
||||||
import org.nl.wms.cockpit.service.dao.CommonData;
|
import org.nl.wms.cockpit.service.dao.CommonData;
|
||||||
import org.nl.wms.cockpit.service.dao.DasDeviceFault;
|
|
||||||
import org.nl.wms.cockpit.service.dao.ghs.DeviceFaultStatistics;
|
import org.nl.wms.cockpit.service.dao.ghs.DeviceFaultStatistics;
|
||||||
import org.nl.wms.cockpit.service.dao.home.DayData;
|
import org.nl.wms.cockpit.service.dao.home.DayData;
|
||||||
import org.nl.wms.cockpit.service.dao.home.HomeInfo;
|
import org.nl.wms.cockpit.service.dao.home.HomeInfo;
|
||||||
import org.nl.wms.cockpit.service.dao.home.TargetAchievement;
|
import org.nl.wms.cockpit.service.dao.home.TargetAchievement;
|
||||||
import org.nl.wms.cockpit.service.dao.zcq.Inventory;
|
|
||||||
import org.nl.wms.cockpit.service.dao.zcq.TaskInfo;
|
import org.nl.wms.cockpit.service.dao.zcq.TaskInfo;
|
||||||
import org.nl.wms.cockpit.service.mapper.CockpitMapper;
|
import org.nl.wms.cockpit.service.mapper.CockpitMapper;
|
||||||
import org.nl.wms.pdm.solidifyplan.service.impl.PdmBdSolidifyPlanServiceImpl;
|
import org.nl.wms.pdm.solidifyplan.service.impl.PdmBdSolidifyPlanServiceImpl;
|
||||||
@@ -35,9 +25,7 @@ import org.nl.wms.sch.point.service.ISchBasePointService;
|
|||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper;
|
|
||||||
import org.nl.wms.sch.task_manage.enums.RegionCodeConstant;
|
import org.nl.wms.sch.task_manage.enums.RegionCodeConstant;
|
||||||
import org.nl.wms.sch.task_manage.task.TaskServiceImpl;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
@@ -51,7 +39,6 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@@ -97,18 +84,11 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
* 总览
|
* 总览
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ConcurrentHashMap<String, Object> getHomeInfo() {
|
public JSONObject getHomeInfo() {
|
||||||
ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();
|
JSONObject getHomeInfo = new JSONObject();
|
||||||
//生产任务目标达成
|
//生产任务目标达成
|
||||||
CompletableFuture<TargetAchievement> task1 = CompletableFuture.supplyAsync(() -> {
|
JSONObject target_achievement = new JSONObject();
|
||||||
TargetAchievement targetAchievementResult = new TargetAchievement();
|
target_achievement = cockpitMapper.getProductTarget();
|
||||||
try {
|
|
||||||
targetAchievementResult = getWorkOrderList(null, null, 1);
|
|
||||||
} catch (Exception e) {
|
|
||||||
targetAchievementResult.setError_info(e.toString());
|
|
||||||
}
|
|
||||||
return targetAchievementResult;
|
|
||||||
}, pool);
|
|
||||||
//固化汇总
|
//固化汇总
|
||||||
CompletableFuture<List<DayData>> task2 = CompletableFuture.supplyAsync(() -> {
|
CompletableFuture<List<DayData>> task2 = CompletableFuture.supplyAsync(() -> {
|
||||||
List<DayData> dayDataList = new ArrayList<>();
|
List<DayData> dayDataList = new ArrayList<>();
|
||||||
@@ -122,186 +102,126 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
return dayDataList;
|
return dayDataList;
|
||||||
}, pool);
|
}, pool);
|
||||||
//暂存库库存结构
|
//暂存库库存结构
|
||||||
CompletableFuture<HomeInfo.ZCStorageInfo> task3 = CompletableFuture.supplyAsync(() -> {
|
JSONObject zc_storage_info = new JSONObject();
|
||||||
HomeInfo.ZCStorageInfo zCStorageInfo = new HomeInfo.ZCStorageInfo();
|
JSONArray material_info = new JSONArray();
|
||||||
try {
|
material_info=cockpitMapper.getZcMaterialmsg();
|
||||||
zCStorageInfo = getTemporaryStorage();
|
//库位使用占比
|
||||||
return zCStorageInfo;
|
String percent=cockpitMapper.percent();
|
||||||
|
zc_storage_info.put("material_info",material_info);
|
||||||
} catch (Exception e) {
|
zc_storage_info.put("percent",percent);
|
||||||
zCStorageInfo.setError_info(e.toString());
|
|
||||||
}
|
|
||||||
return zCStorageInfo;
|
|
||||||
}, pool);
|
|
||||||
//今日生产任务
|
//今日生产任务
|
||||||
CompletableFuture<List<HomeInfo.TodayWork>> task4 = CompletableFuture.supplyAsync(() -> {
|
JSONArray today_work = new JSONArray();
|
||||||
List<HomeInfo.TodayWork> targetAchievement = new ArrayList<>();
|
today_work=cockpitMapper.getTdWorkmsg();
|
||||||
try {
|
|
||||||
targetAchievement = getWorkOrders("");
|
|
||||||
} catch (Exception e) {
|
|
||||||
HomeInfo.TodayWork todayWork = new HomeInfo.TodayWork();
|
|
||||||
todayWork.setError_info(e.toString());
|
|
||||||
targetAchievement.add(todayWork);
|
|
||||||
}
|
|
||||||
return targetAchievement;
|
|
||||||
}, pool);
|
|
||||||
// 7天生产统计
|
// 7天生产统计
|
||||||
CompletableFuture<CommonData.WeekWorkorderStatistics> task5 = CompletableFuture.supplyAsync(() -> {
|
JSONArray tb_real_qty=new JSONArray();
|
||||||
CommonData.WeekWorkorderStatistics targetAchievement = new CommonData.WeekWorkorderStatistics();
|
JSONArray gh_real_qty=new JSONArray();
|
||||||
try {
|
tb_real_qty=cockpitMapper.getTxQty();
|
||||||
targetAchievement = getWeekWorkStatistics("");
|
gh_real_qty=cockpitMapper.getGhsQty();
|
||||||
} catch (Exception e) {
|
//设备运行状态
|
||||||
targetAchievement.setError_info(e.toString());
|
JSONObject device_status=new JSONObject();
|
||||||
}
|
//状态信息
|
||||||
return targetAchievement;
|
JSONArray status_info=new JSONArray();
|
||||||
}, pool);
|
status_info=cockpitMapper.statusInfo();
|
||||||
CompletableFuture.allOf(task1, task2, task3, task4, task5).join();
|
//固化架信息
|
||||||
map.put("target_achievement", task1.join());
|
JSONArray storage_info=new JSONArray();
|
||||||
map.put("gh_statistics", task2.join());
|
storage_info=cockpitMapper.storageInfo();
|
||||||
map.put("zc_storage_info", task3.join());
|
device_status.put("status_info",status_info);
|
||||||
map.put("today_work", task4.join());
|
device_status.put("storage_info",storage_info);
|
||||||
map.put("workorder_statistics", task5.join());
|
//实时故障告警
|
||||||
return map;
|
JSONArray fault_alarm=new JSONArray();
|
||||||
|
fault_alarm=cockpitMapper.faultAlarm();
|
||||||
|
//进30日故障统计
|
||||||
|
JSONArray monthly_fault_statistics=new JSONArray();
|
||||||
|
monthly_fault_statistics=cockpitMapper.monthlyFaultStatistics();
|
||||||
|
//设备报警前十
|
||||||
|
JSONArray gh_statistics=new JSONArray();
|
||||||
|
gh_statistics=cockpitMapper.ghStatistics();
|
||||||
|
getHomeInfo.put("target_achievement", target_achievement);
|
||||||
|
getHomeInfo.put("zc_storage_info", zc_storage_info);
|
||||||
|
getHomeInfo.put("today_work", today_work);
|
||||||
|
getHomeInfo.put("tbx_produce", tb_real_qty);
|
||||||
|
getHomeInfo.put("ghs_produce", gh_real_qty);
|
||||||
|
getHomeInfo.put("device_status",device_status);
|
||||||
|
getHomeInfo.put("fault_alarm",fault_alarm);
|
||||||
|
getHomeInfo.put("monthly_fault_statistics",monthly_fault_statistics);
|
||||||
|
getHomeInfo.put("gh_statistics",gh_statistics);
|
||||||
|
return getHomeInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 涂板线
|
* 涂板线
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ConcurrentHashMap<String, Object> getTbxInfo() {
|
public JSONObject getTbxInfo() {
|
||||||
ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();
|
JSONObject getTbxInfo=new JSONObject();
|
||||||
//今日生产
|
//今日生产
|
||||||
CompletableFuture<TargetAchievement.TbxTargetAchievement> task1 = CompletableFuture.supplyAsync(() -> {
|
JSONObject target_achievement=new JSONObject();
|
||||||
TargetAchievement.TbxTargetAchievement tbxTargetAchievement = new TargetAchievement.TbxTargetAchievement();
|
JSONObject lt_production=new JSONObject();
|
||||||
try {
|
JSONObject pt_production=new JSONObject();
|
||||||
//普涂
|
lt_production=cockpitMapper.ltProduction();
|
||||||
TargetAchievement ptProduction = getWorkOrderList("TBX", "1", 1);
|
pt_production=cockpitMapper.ptProduction();
|
||||||
//连涂
|
target_achievement.put("lt_production",lt_production);
|
||||||
TargetAchievement ltProduction = getWorkOrderList("TBX", "2", 1);
|
target_achievement.put("pt_production",pt_production);
|
||||||
tbxTargetAchievement.setPt_production(ptProduction);
|
//今日涂板任务
|
||||||
tbxTargetAchievement.setLt_production(ltProduction);
|
JSONArray today_work=new JSONArray();
|
||||||
|
today_work=cockpitMapper.todayTbTask();
|
||||||
} catch (Exception e) {
|
//实时故障告警
|
||||||
tbxTargetAchievement.setPt_production(new TargetAchievement());
|
JSONArray fault_alarm=new JSONArray();
|
||||||
tbxTargetAchievement.setLt_production(new TargetAchievement());
|
fault_alarm=cockpitMapper.FaultTime("TBX");
|
||||||
tbxTargetAchievement.setError_info(e.toString());
|
//进30日故障统计
|
||||||
}
|
JSONArray monthly_fault_statistics=new JSONArray();
|
||||||
return tbxTargetAchievement;
|
monthly_fault_statistics=cockpitMapper.FaultTotal("TBX");
|
||||||
}, pool);
|
getTbxInfo.put("target_achievement",target_achievement);
|
||||||
//7天生产统计
|
getTbxInfo.put("today_work",today_work);
|
||||||
CompletableFuture<CommonData.WeekWorkorderStatistics> task2 = CompletableFuture.supplyAsync(() -> {
|
getTbxInfo.put("fault_alarm",fault_alarm);
|
||||||
CommonData.WeekWorkorderStatistics targetAchievement = new CommonData.WeekWorkorderStatistics();
|
getTbxInfo.put("monthly_fault_statistics",monthly_fault_statistics);
|
||||||
try {
|
return getTbxInfo;
|
||||||
targetAchievement = getWeekWorkStatistics("TBX");
|
|
||||||
} catch (Exception e) {
|
|
||||||
targetAchievement.setError_info(e.toString());
|
|
||||||
}
|
|
||||||
return targetAchievement;
|
|
||||||
}, pool);
|
|
||||||
//今日涂板工单
|
|
||||||
CompletableFuture<List<HomeInfo.TodayWork>> task3 = CompletableFuture.supplyAsync(() -> {
|
|
||||||
List<HomeInfo.TodayWork> todayWorks = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
todayWorks = getWorkOrders(RegionCodeConstant.COATED_PLATE_LINE_AREA);
|
|
||||||
} catch (Exception e) {
|
|
||||||
HomeInfo.TodayWork todayWork = new HomeInfo.TodayWork();
|
|
||||||
todayWork.setError_info(e.toString());
|
|
||||||
todayWorks.add(todayWork);
|
|
||||||
}
|
|
||||||
return todayWorks;
|
|
||||||
}, pool);
|
|
||||||
CompletableFuture.allOf(task1, task2, task3).join();
|
|
||||||
map.put("target_achievement", task1.join());
|
|
||||||
map.put("week_workorder_statistics", task2.join());
|
|
||||||
map.put("today_work", task3.join());
|
|
||||||
return map;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 固化室
|
* 固化室
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ConcurrentHashMap<String, Object> getGhsInfo() {
|
public JSONObject getGhsInfo() {
|
||||||
ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();
|
JSONObject getGhsInfo=new JSONObject();
|
||||||
//固化汇总
|
//固化汇总
|
||||||
CompletableFuture<List<DayData>> task1 = CompletableFuture.supplyAsync(() -> {
|
JSONArray curing_summary=new JSONArray();
|
||||||
List<DayData> dayDataList = new ArrayList<>();
|
curing_summary=cockpitMapper.curingSummary();
|
||||||
try {
|
//实时故障告警
|
||||||
dayDataList = cockpitMapper.getGhCuringSummary();
|
JSONArray fault_alarm=new JSONArray();
|
||||||
} catch (Exception e) {
|
fault_alarm=cockpitMapper.FaultTime("GH");
|
||||||
DayData dayData = new DayData();
|
//进30日故障统计
|
||||||
dayData.setError_info(e.toString());
|
JSONArray monthly_fault_statistics=new JSONArray();
|
||||||
dayDataList.add(dayData);
|
monthly_fault_statistics=cockpitMapper.FaultTotal("GH");
|
||||||
}
|
getGhsInfo.put("curing_summary",curing_summary);
|
||||||
return dayDataList;
|
getGhsInfo.put("fault_alarm",fault_alarm);
|
||||||
}, pool);
|
getGhsInfo.put("monthly_fault_statistics",monthly_fault_statistics);
|
||||||
|
return getGhsInfo;
|
||||||
//7日固化
|
|
||||||
CompletableFuture<CommonData.WeekWorkorderStatistics> task2 = CompletableFuture.supplyAsync(() -> {
|
|
||||||
CommonData.WeekWorkorderStatistics targetAchievement = new CommonData.WeekWorkorderStatistics();
|
|
||||||
try {
|
|
||||||
targetAchievement = getWeekWorkStatistics("GH");
|
|
||||||
} catch (Exception e) {
|
|
||||||
targetAchievement.setError_info(e.toString());
|
|
||||||
}
|
|
||||||
return targetAchievement;
|
|
||||||
}, pool);
|
|
||||||
|
|
||||||
//出入库任务
|
|
||||||
CompletableFuture<List<TaskInfo>> task3 = CompletableFuture.supplyAsync(() -> {
|
|
||||||
List<TaskInfo> tasks = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
tasks = getTasks(RegionCodeConstant.CURING_ZONE);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
TaskInfo taskInfo = new TaskInfo();
|
|
||||||
taskInfo.setError_info(e.toString());
|
|
||||||
tasks.add(taskInfo);
|
|
||||||
}
|
|
||||||
return tasks;
|
|
||||||
}, pool);
|
|
||||||
CompletableFuture.allOf(task1, task2, task3).join();
|
|
||||||
map.put("curing_summary", task1.join());
|
|
||||||
map.put("week_workorder_statistics", task2.join());
|
|
||||||
map.put("task_info", task3.join());
|
|
||||||
return map;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 暂存区
|
* 暂存区
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ConcurrentHashMap<String, Object> getZcqInfo() {
|
public JSONObject getZcqInfo() {
|
||||||
ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();
|
JSONObject getZcqInfo = new JSONObject();
|
||||||
//暂存区库存结构
|
//暂存库
|
||||||
CompletableFuture<HomeInfo.ZCStorageInfo> task1 = CompletableFuture.supplyAsync(() -> {
|
JSONObject temporary_storage = new JSONObject();
|
||||||
HomeInfo.ZCStorageInfo zCStorageInfo = new HomeInfo.ZCStorageInfo();
|
temporary_storage = cockpitMapper.temporaryStorage();
|
||||||
try {
|
//暂存区库存
|
||||||
zCStorageInfo = getTemporaryStorage();
|
JSONArray inventory = new JSONArray();
|
||||||
return zCStorageInfo;
|
inventory=cockpitMapper.inventory();
|
||||||
} catch (Exception e) {
|
//货位货位信息
|
||||||
zCStorageInfo.setError_info(e.toString());
|
JSONArray task_info=new JSONArray();
|
||||||
}
|
task_info=cockpitMapper.taskInfo();
|
||||||
return zCStorageInfo;
|
getZcqInfo.put("temporary_storage",temporary_storage);
|
||||||
}, pool);
|
getZcqInfo.put("inventory",inventory);
|
||||||
//出入库任务
|
getZcqInfo.put("task_info",task_info);
|
||||||
CompletableFuture<List<TaskInfo>> task2 = CompletableFuture.supplyAsync(() -> {
|
return getZcqInfo;
|
||||||
List<TaskInfo> tasks = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
tasks = getTasks(RegionCodeConstant.STAGING_AREA);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
TaskInfo taskInfo = new TaskInfo();
|
|
||||||
taskInfo.setError_info(e.toString());
|
|
||||||
tasks.add(taskInfo);
|
|
||||||
}
|
|
||||||
return tasks;
|
|
||||||
}, pool);
|
|
||||||
CompletableFuture.allOf(task1, task2).join();
|
|
||||||
map.put("temporary_storage", task1.join());
|
|
||||||
map.put("inventory", task2.join());
|
|
||||||
return map;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -317,69 +237,68 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
switch (point.getRegion_code()) {
|
switch (point.getRegion_code()) {
|
||||||
case RegionCodeConstant.COATED_PLATE_LINE_AREA:
|
case RegionCodeConstant.COATED_PLATE_LINE_AREA:
|
||||||
// hint: 涂板线是作为一整台设备显示。point:设备点
|
// hint: 涂板线是作为一整台设备显示。point:设备点
|
||||||
JSONArray baoshijian= (JSONArray) redisUtils.get("baoshijian");
|
JSONArray baoshijian = (JSONArray) redisUtils.get("baoshijian");
|
||||||
points = pointService.getSubSites(deviceCode);
|
points = pointService.getSubSites(deviceCode);
|
||||||
res.put("device_code", deviceCode);
|
res.put("device_code", deviceCode);
|
||||||
res.put("device_name", point.getPoint_name());
|
res.put("device_name", point.getPoint_name());
|
||||||
// res.put("mode", "2");
|
//当前物料
|
||||||
// res.put("status", "1");
|
JSONObject getDeviceWorker=cockpitMapper.getDeviceWorker(deviceCode);
|
||||||
// res.put("error", "0");
|
String material=cockpitMapper.getMaterialName(getDeviceWorker.getString("material_id"));
|
||||||
// res.put("open_time", DateUtil.now());
|
res.put("material", material);
|
||||||
// res.put("standby_time", 20);
|
for (Object object : baoshijian) {
|
||||||
// res.put("production_time", 20);
|
JSONObject jsonObject = (JSONObject) object;
|
||||||
// res.put("error_time", 0);
|
if (deviceCode.equals(jsonObject.getString("device_code"))) {
|
||||||
// res.put("material", "01200000");
|
res.put("mode", jsonObject.getString("mode"));
|
||||||
|
}
|
||||||
|
}
|
||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
// 获取最近3条工单数据
|
|
||||||
List<TargetAchievement> targetAchievementList = cockpitMapper.getDeviceLimitOrders(deviceCode, 3);
|
|
||||||
JSONArray productionTask = JSONArray.parseArray(JSON.toJSONString(targetAchievementList));
|
|
||||||
res.put("production_tasks", productionTask);
|
|
||||||
for (int i = 0; i < points.size(); i++) {
|
for (int i = 0; i < points.size(); i++) {
|
||||||
SchBasePoint pointObj = points.get(i);
|
SchBasePoint pointObj = points.get(i);
|
||||||
JSONObject one = new JSONObject();
|
JSONObject one = new JSONObject();
|
||||||
one.put("device_code", pointObj.getPoint_code());
|
one.put("device_code", pointObj.getPoint_code());
|
||||||
one.put("device_name", pointObj.getPoint_name());
|
one.put("device_name", pointObj.getPoint_name());
|
||||||
// one.put("mode", "2");
|
// one.put("mode", "2");
|
||||||
for(Object object:baoshijian){
|
for (Object object : baoshijian) {
|
||||||
JSONObject jsonObject= (JSONObject) object;
|
JSONObject jsonObject = (JSONObject) object;
|
||||||
if(pointObj.getPoint_code().equals(jsonObject.getString("device_code"))){
|
if (pointObj.getPoint_code().equals(jsonObject.getString("device_code"))) {
|
||||||
one.put("move",jsonObject.getString("move")==null?"0":jsonObject.getString("move"));
|
one.put("move", jsonObject.getString("move") == null ? "0" : jsonObject.getString("move"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// one.put("move", "0");
|
|
||||||
one.put("material_name", targetAchievementList.size()!=0?targetAchievementList.get(0).getMaterial_name():null);
|
|
||||||
// one.put("error", "0");
|
|
||||||
array.add(one);
|
array.add(one);
|
||||||
}
|
}
|
||||||
res.put("details", array);
|
res.put("details", array);
|
||||||
|
//日产量
|
||||||
|
JSONArray production_day = new JSONArray();
|
||||||
|
production_day=cockpitMapper.getProductionDay(deviceCode);
|
||||||
|
res.put("production_day",production_day);
|
||||||
|
//班产量
|
||||||
|
JSONArray production_team=new JSONArray();
|
||||||
|
production_team=cockpitMapper.getProductionTeam(deviceCode);
|
||||||
|
res.put("production_team",production_team);
|
||||||
|
//30日生产记录
|
||||||
|
JSONArray production_history=new JSONArray();
|
||||||
|
production_history=cockpitMapper.getProductionHistory(deviceCode);
|
||||||
|
res.put("production_team",production_history);
|
||||||
break;
|
break;
|
||||||
case RegionCodeConstant.CURING_ZONE:
|
case RegionCodeConstant.CURING_ZONE:
|
||||||
// hint: 固化室,需要显示整个设备+内部位置明细
|
// hint: 固化室,需要显示整个设备+内部位置明细
|
||||||
points = pointService.getSubSites(deviceCode); // 小固化位置以及进出口(入口是不管的)
|
points = pointService.getSubSites(deviceCode); // 小固化位置以及进出口(入口是不管的)
|
||||||
JSONArray guhuashi= (JSONArray) redisUtils.get("guhuashi");
|
JSONArray guhuashi = (JSONArray) redisUtils.get("guhuashi");
|
||||||
for(Object object:guhuashi){
|
for (Object object : guhuashi) {
|
||||||
JSONObject jsonObject= (JSONObject) object;
|
|
||||||
if(deviceCode.equals(jsonObject.getString("device_code"))){
|
|
||||||
res.put("temperature_setting", jsonObject.getString("temperature_setting"));
|
|
||||||
res.put("temperature", jsonObject.getString("temperature"));
|
|
||||||
res.put("humidity_setting", jsonObject.getString("humidity_setting"));
|
|
||||||
res.put("humidity", jsonObject.getString("humidity"));
|
|
||||||
res.put("total_running_time", jsonObject.getString("total_running_time"));
|
|
||||||
res.put("current_stage", jsonObject.getString("current_stage"));
|
|
||||||
res.put("executing_stage_num", jsonObject.getString("executing_stage_num"));
|
|
||||||
res.put("device_statue", jsonObject.getString("device_statue"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
res.put("device_code", deviceCode);
|
res.put("device_code", deviceCode);
|
||||||
res.put("device_name", point.getPoint_name());
|
res.put("device_name", point.getPoint_name());
|
||||||
// res.put("temperature_setting", 50);
|
//设备状态 按照lms点位管理来 1-无货;2-有货;3-进料;4固化;5出料,6故障
|
||||||
// res.put("temperature", 20);
|
res.put("device_statue", point.getPoint_status());
|
||||||
// res.put("humidity_setting", 20);
|
JSONObject jsonObject = (JSONObject) object;
|
||||||
// res.put("humidity", 10);
|
if (deviceCode.equals(jsonObject.getString("device_code"))) {
|
||||||
// res.put("total_running_time", 8);
|
res.put("current_stage", jsonObject.getString("current_stage"));
|
||||||
// res.put("current_stage", 0);
|
res.put("humidity_setting", jsonObject.getString("humidity_setting"));
|
||||||
// res.put("executing_stage_num", 1);
|
res.put("temperature", jsonObject.getString("temperature"));
|
||||||
// res.put("device_statue", 1);
|
res.put("humidity", jsonObject.getString("humidity"));
|
||||||
|
res.put("total_running_time", jsonObject.getString("total_running_time"));
|
||||||
|
res.put("temperature_setting", jsonObject.getString("temperature_setting"));
|
||||||
|
}
|
||||||
|
}
|
||||||
JSONArray ghsArray = new JSONArray();
|
JSONArray ghsArray = new JSONArray();
|
||||||
for (int i = 0; i < points.size(); i++) {
|
for (int i = 0; i < points.size(); i++) {
|
||||||
SchBasePoint pointObj = points.get(i);
|
SchBasePoint pointObj = points.get(i);
|
||||||
@@ -390,6 +309,7 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
one.put("device_code", pointObj.getPoint_code());
|
one.put("device_code", pointObj.getPoint_code());
|
||||||
one.put("device_name", pointObj.getPoint_name());
|
one.put("device_name", pointObj.getPoint_name());
|
||||||
one.put("move", (Integer.parseInt(pointObj.getPoint_status()) - 1));
|
one.put("move", (Integer.parseInt(pointObj.getPoint_status()) - 1));
|
||||||
|
//1是普涂 2是连涂
|
||||||
one.put("material_type", ObjectUtil.isNotEmpty(pointObj.getVehicle_type()) ? pointObj.getVehicle_type() : "-");
|
one.put("material_type", ObjectUtil.isNotEmpty(pointObj.getVehicle_type()) ? pointObj.getVehicle_type() : "-");
|
||||||
ghsArray.add(one);
|
ghsArray.add(one);
|
||||||
}
|
}
|
||||||
@@ -400,11 +320,6 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
points = pointService.getSubSites(deviceCode);
|
points = pointService.getSubSites(deviceCode);
|
||||||
res.put("device_code", deviceCode);
|
res.put("device_code", deviceCode);
|
||||||
res.put("device_name", point.getPoint_name());
|
res.put("device_name", point.getPoint_name());
|
||||||
// res.put("mode", 0);
|
|
||||||
// res.put("open_time", DateUtil.now());
|
|
||||||
// res.put("standby_time", 20);
|
|
||||||
// res.put("production_time", 10);
|
|
||||||
// res.put("error_time", 8);
|
|
||||||
res.put("material_type", ObjectUtil.isNotEmpty(point.getVehicle_type()) ? point.getVehicle_type() : "-");
|
res.put("material_type", ObjectUtil.isNotEmpty(point.getVehicle_type()) ? point.getVehicle_type() : "-");
|
||||||
res.put("end_time", "-");
|
res.put("end_time", "-");
|
||||||
JSONArray ssxArray = new JSONArray();
|
JSONArray ssxArray = new JSONArray();
|
||||||
@@ -429,8 +344,8 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
// 货位直接显示,获取组盘信息,组装数据反馈
|
// 货位直接显示,获取组盘信息,组装数据反馈
|
||||||
res.put("device_code", deviceCode);
|
res.put("device_code", deviceCode);
|
||||||
res.put("device_name", point.getPoint_name());
|
res.put("device_name", point.getPoint_name());
|
||||||
res.put("vehicle_code", ObjectUtil.isNotEmpty(point.getVehicle_code()) ? point.getVehicle_code() : "-");
|
// res.put("vehicle_code", ObjectUtil.isNotEmpty(point.getVehicle_code()) ? point.getVehicle_code() : "-");
|
||||||
res.put("vehicle_type", ObjectUtil.isNotEmpty(point.getVehicle_type()) ? point.getVehicle_type() : "-");
|
// res.put("vehicle_type", ObjectUtil.isNotEmpty(point.getVehicle_type()) ? point.getVehicle_type() : "-");
|
||||||
if (ObjectUtil.isNotEmpty(point.getVehicle_type()) && ObjectUtil.isNotEmpty(point.getVehicle_code())) {
|
if (ObjectUtil.isNotEmpty(point.getVehicle_type()) && ObjectUtil.isNotEmpty(point.getVehicle_code())) {
|
||||||
JSONObject groupInfo = cockpitMapper.getVehicleGroupInfo(point.getVehicle_code(), point.getVehicle_type());
|
JSONObject groupInfo = cockpitMapper.getVehicleGroupInfo(point.getVehicle_code(), point.getVehicle_type());
|
||||||
if (ObjectUtil.isNotEmpty(groupInfo)) {
|
if (ObjectUtil.isNotEmpty(groupInfo)) {
|
||||||
@@ -454,21 +369,27 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 接收acs推送的设备故障信息
|
* 接收acs推送的设备故障信息
|
||||||
|
*
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void acceptDeviceFaultInfo(JSONObject deviceInfo) {
|
public JSONArray acceptDeviceFaultInfo() {
|
||||||
|
JSONArray res1 = new JSONArray();
|
||||||
try {
|
try {
|
||||||
DasDeviceFault dasDeviceFault = new DasDeviceFault();
|
JSONArray errordetails = cockpitMapper.getError();
|
||||||
String now = DateUtil.now();
|
for (int i = 0; i < errordetails.size(); i++) {
|
||||||
dasDeviceFault.setDevice_code(deviceInfo.getString("device_code"));
|
JSONObject item = errordetails.getJSONObject(i);
|
||||||
dasDeviceFault.setRegion_code(pointService.getById(deviceInfo.getString("device_code")).getRegion_code());
|
JSONObject res = new JSONObject();
|
||||||
dasDeviceFault.setData_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
res.put("device_code", item.getString("device_code"));
|
||||||
dasDeviceFault.setFailure_time(now);
|
res.put("failure_info", item.getString("failure_info"));
|
||||||
dasDeviceFault.setFailure_info(deviceInfo.getString("failure_info"));
|
res.put("failure_time", item.getString("failure_time"));
|
||||||
cockpitMapper.insertDeviceFault(dasDeviceFault);
|
res.put("failure_area", item.getString("region_code"));
|
||||||
|
res1.add(res);
|
||||||
|
}
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
throw new BadRequestException(exception.toString());
|
throw new BadRequestException(exception.toString());
|
||||||
}
|
}
|
||||||
|
return res1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -481,85 +402,17 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
int lowerBound = 10000;
|
int lowerBound = 10000;
|
||||||
int upperBound = 18000;
|
int upperBound = 18000;
|
||||||
JSONArray baoshijian= (JSONArray) redisUtils.get("baoshijian");
|
JSONArray baoshijian = (JSONArray) redisUtils.get("baoshijian");
|
||||||
JSONArray guhuashi= (JSONArray) redisUtils.get("guhuashi");
|
JSONArray guhuashi = (JSONArray) redisUtils.get("guhuashi");
|
||||||
JSONArray AGV= (JSONArray) redisUtils.get("AGV");
|
JSONArray AGV = (JSONArray) redisUtils.get("AGV");
|
||||||
JSONArray RGV= (JSONArray) redisUtils.get("RGV");
|
//
|
||||||
JSONArray site= (JSONArray) redisUtils.get("site");
|
JSONArray RGV = (JSONArray) redisUtils.get("RGV");
|
||||||
array.add(baoshijian);
|
JSONArray site = (JSONArray) redisUtils.get("site");
|
||||||
array.add(guhuashi);
|
// array.add(baoshijian);
|
||||||
array.add(AGV);
|
// array.add(guhuashi);
|
||||||
array.add(RGV);
|
// array.add(AGV);
|
||||||
// List<SchBasePoint> tbx = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "1").eq(SchBasePoint::getRegion_code, "TBX"));
|
// array.add(RGV);
|
||||||
// List<String> tbxList = tbx.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
|
||||||
// tbxList.forEach(s -> {
|
|
||||||
// JSONObject object = new JSONObject();
|
|
||||||
// object.put("device_code", s);
|
|
||||||
// object.put("device_name", s);
|
|
||||||
// object.put("mode", "2");
|
|
||||||
// object.put("status", "1");
|
|
||||||
// object.put("error", "0");
|
|
||||||
// object.put("open_time", DateUtil.now());
|
|
||||||
// object.put("standby_time", 20);
|
|
||||||
// object.put("production_time", 20);
|
|
||||||
// object.put("error_time", 0);
|
|
||||||
// object.put("material", "01200000");
|
|
||||||
// array.add(object);
|
|
||||||
// });
|
|
||||||
// List<SchBasePoint> tbxDjw = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "2").eq(SchBasePoint::getRegion_code, "TBX"));
|
|
||||||
// List<String> tbxDjwList = tbxDjw.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
|
||||||
// tbxDjwList.forEach(s -> {
|
|
||||||
// JSONObject object = new JSONObject();
|
|
||||||
// object.put("device_code", s);
|
|
||||||
// object.put("device_name", s);
|
|
||||||
// object.put("mode", "2");
|
|
||||||
// object.put("move", "0");
|
|
||||||
// object.put("error", 0);
|
|
||||||
// array.add(object);
|
|
||||||
// });
|
|
||||||
// 缓存位
|
|
||||||
// List<SchBasePoint> hcx = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "3").eq(SchBasePoint::getRegion_code, "TBX"));
|
|
||||||
// List<String> hcxList = hcx.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
|
||||||
// hcxList.forEach(s -> {
|
|
||||||
// JSONObject object = new JSONObject();
|
|
||||||
// object.put("device_code", s);
|
|
||||||
// object.put("device_name", s);
|
|
||||||
// object.put("move", "0");
|
|
||||||
// array.add(object);
|
|
||||||
// });
|
|
||||||
// List<SchBasePoint> gh = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "1").eq(SchBasePoint::getRegion_code, "GH"));
|
|
||||||
// List<String> ghList = gh.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
|
||||||
// ghList.forEach(s -> {
|
|
||||||
// JSONObject object = new JSONObject();
|
|
||||||
// object.put("device_code", s);
|
|
||||||
// object.put("device_name", s);
|
|
||||||
// object.put("temperature_setting", 50);
|
|
||||||
// object.put("temperature", 20);
|
|
||||||
// object.put("humidity_setting", 20);
|
|
||||||
// object.put("humidity", 10);
|
|
||||||
// object.put("total_running_time", 8);
|
|
||||||
// object.put("current_stage", 0);
|
|
||||||
// object.put("executing_stage_num", 1);
|
|
||||||
// object.put("device_statue", 1);
|
|
||||||
// object.put("front_door", 1);
|
|
||||||
// object.put("back_door", 0);
|
|
||||||
// array.add(object);
|
|
||||||
// });
|
|
||||||
// 整体
|
|
||||||
// List<SchBasePoint> kjzc = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_type, "5").eq(SchBasePoint::getRegion_code, "KJZC"));
|
|
||||||
// List<String> kjzcList = kjzc.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
|
||||||
// kjzcList.forEach(s -> {
|
|
||||||
// JSONObject object = new JSONObject();
|
|
||||||
// object.put("device_code", s);
|
|
||||||
// object.put("device_name", s);
|
|
||||||
// object.put("mode", 0);
|
|
||||||
// object.put("open_time", DateUtil.now());
|
|
||||||
// object.put("standby_time", 20);
|
|
||||||
// object.put("production_time", 10);
|
|
||||||
// object.put("error_time", 8);
|
|
||||||
// object.put("material_type", "1");
|
|
||||||
// array.add(object);
|
|
||||||
// });
|
|
||||||
// 固化室详情
|
// 固化室详情
|
||||||
JSONArray ghsInteriorList = cockpitMapper.getGHSInteriorList();
|
JSONArray ghsInteriorList = cockpitMapper.getGHSInteriorList();
|
||||||
JSONObject ghsDetail = new JSONObject();
|
JSONObject ghsDetail = new JSONObject();
|
||||||
@@ -575,11 +428,6 @@ public class CockpitServiceImpl implements CockpitService {
|
|||||||
JSONObject storage = new JSONObject();
|
JSONObject storage = new JSONObject();
|
||||||
storage.put("storage", zcList);
|
storage.put("storage", zcList);
|
||||||
array.add(storage);
|
array.add(storage);
|
||||||
// 空架缓存位
|
|
||||||
JSONArray kjList = cockpitMapper.getKJList();
|
|
||||||
JSONObject emptyCacheBit = new JSONObject();
|
|
||||||
emptyCacheBit.put("empty_cache", kjList);
|
|
||||||
array.add(emptyCacheBit);
|
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,4 +77,56 @@ public interface CockpitMapper {
|
|||||||
JSONArray getZCList();
|
JSONArray getZCList();
|
||||||
|
|
||||||
JSONArray getKJList();
|
JSONArray getKJList();
|
||||||
|
//目前是获取当天的错误数据
|
||||||
|
JSONArray getError();
|
||||||
|
//获取生产中的工单数据
|
||||||
|
JSONObject getProductTarget();
|
||||||
|
//获取暂存库库存信息
|
||||||
|
JSONArray getZcMaterialmsg();
|
||||||
|
//库位使用占比
|
||||||
|
String percent();
|
||||||
|
//获取今日创建的每一条工单的信息
|
||||||
|
JSONArray getTdWorkmsg();
|
||||||
|
//7天涂板实际生产
|
||||||
|
JSONArray getTxQty();
|
||||||
|
//7天固化室实际生产
|
||||||
|
JSONArray getGhsQty();
|
||||||
|
//查询所传设备当前生产的工单信息
|
||||||
|
JSONObject getDeviceWorker(String devicecode);
|
||||||
|
//根据所传的物料id获取物料名称
|
||||||
|
String getMaterialName(String material_id);
|
||||||
|
//根据所传设备得到该设备日产量
|
||||||
|
JSONArray getProductionDay(String devicecode);
|
||||||
|
//根据所传设备得到该设备班产量
|
||||||
|
JSONArray getProductionTeam(String devicecode);
|
||||||
|
//根据所传设备得到该设备30天生产记录
|
||||||
|
JSONArray getProductionHistory(String devicecode);
|
||||||
|
//今日生产连涂生产
|
||||||
|
JSONObject ltProduction();
|
||||||
|
//今日生产普涂生产
|
||||||
|
JSONObject ptProduction();
|
||||||
|
//今日涂板任务
|
||||||
|
JSONArray todayTbTask();
|
||||||
|
//实时故障告警
|
||||||
|
JSONArray FaultTime(String region_code);
|
||||||
|
//进30日故障统计
|
||||||
|
JSONArray FaultTotal(String region_code);
|
||||||
|
//固化汇总
|
||||||
|
JSONArray curingSummary();
|
||||||
|
//暂存库
|
||||||
|
JSONObject temporaryStorage();
|
||||||
|
//暂存区库存
|
||||||
|
JSONArray inventory();
|
||||||
|
//状态信息
|
||||||
|
JSONArray statusInfo();
|
||||||
|
//固化架信息
|
||||||
|
JSONArray storageInfo();
|
||||||
|
//实时故障告警
|
||||||
|
JSONArray faultAlarm();
|
||||||
|
//进30日故障统计
|
||||||
|
JSONArray monthlyFaultStatistics();
|
||||||
|
//设备报警前十
|
||||||
|
JSONArray ghStatistics();
|
||||||
|
//货位货位信息
|
||||||
|
JSONArray taskInfo();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,6 +164,8 @@
|
|||||||
, vg.vehicle_code
|
, vg.vehicle_code
|
||||||
, ma.material_name
|
, ma.material_name
|
||||||
, ma.material_code
|
, ma.material_code
|
||||||
|
,vg.material_qty AS qty
|
||||||
|
,vg.pcsn
|
||||||
FROM sch_base_vehiclematerialgroup vg
|
FROM sch_base_vehiclematerialgroup vg
|
||||||
LEFT JOIN md_base_material ma ON vg.material_id = ma.material_id
|
LEFT JOIN md_base_material ma ON vg.material_id = ma.material_id
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
@@ -211,4 +213,320 @@
|
|||||||
FROM `sch_base_point`
|
FROM `sch_base_point`
|
||||||
WHERE region_code = 'KJW'
|
WHERE region_code = 'KJW'
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getError" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT *
|
||||||
|
FROM das_device_fault
|
||||||
|
WHERE failure_time LIKE CONCAT(CURDATE(), '%');
|
||||||
|
</select>
|
||||||
|
<select id="getProductTarget" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT COUNT(*) AS await_curing,
|
||||||
|
SUM( plan_qty ) AS expected_production,
|
||||||
|
SUM( real_qty ) AS actual_production,
|
||||||
|
(SUM( real_qty )/SUM( plan_qty ))AS percentage
|
||||||
|
FROM pdm_bd_workorder
|
||||||
|
WHERE workorder_status=3
|
||||||
|
</select>
|
||||||
|
<select id="getZcMaterialmsg" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
m.material_name AS item_name,
|
||||||
|
m.standard_qty AS item_qty
|
||||||
|
FROM `sch_base_point` p
|
||||||
|
RIGHT JOIN sch_base_vehiclematerialgroup g ON p.vehicle_code = g.vehicle_code
|
||||||
|
LEFT JOIN md_base_material m ON g.material_id = m.material_id
|
||||||
|
WHERE p.region_code = 'ZC'
|
||||||
|
AND p.vehicle_code IS NOT NULL
|
||||||
|
</select>
|
||||||
|
<select id="getTdWorkmsg" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
w.workorder_code,
|
||||||
|
m.material_name AS material_name,
|
||||||
|
w.plan_qty,
|
||||||
|
w.real_qty,
|
||||||
|
w.point_name,
|
||||||
|
w.workorder_status
|
||||||
|
FROM `pdm_bd_workorder` w
|
||||||
|
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||||
|
WHERE DATE(w.update_time) = CURDATE()
|
||||||
|
</select>
|
||||||
|
<select id="getTxQty" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
DATE_FORMAT(create_time,'%Y-%m-%d') AS date,
|
||||||
|
SUM(real_qty) AS total_qty,
|
||||||
|
'TBX' AS region_name
|
||||||
|
FROM
|
||||||
|
pdm_bd_workorder
|
||||||
|
WHERE
|
||||||
|
create_time >= CURDATE() - INTERVAL 7 DAY
|
||||||
|
GROUP BY
|
||||||
|
DATE_FORMAT(create_time,'%Y-%m-%d')
|
||||||
|
ORDER BY
|
||||||
|
date;
|
||||||
|
</select>
|
||||||
|
<select id="getGhsQty" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
DATE_FORMAT(create_time,'%Y-%m-%d') AS date,
|
||||||
|
SUM(material_qty) AS total_qty,
|
||||||
|
'GHS' AS region_name
|
||||||
|
FROM
|
||||||
|
sch_base_vehiclematerialgroup
|
||||||
|
WHERE
|
||||||
|
create_time >= CURDATE() - INTERVAL 7 DAY
|
||||||
|
GROUP BY
|
||||||
|
DATE_FORMAT(create_time,'%Y-%m-%d')
|
||||||
|
ORDER BY
|
||||||
|
date;
|
||||||
|
</select>
|
||||||
|
<select id="getDeviceWorker" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
`pdm_bd_workorder` w
|
||||||
|
WHERE
|
||||||
|
w.workorder_status=3
|
||||||
|
And w.point_code= #{devicecode}
|
||||||
|
</select>
|
||||||
|
<select id="getMaterialName" resultType="java.lang.String">
|
||||||
|
SELECT
|
||||||
|
material_name
|
||||||
|
FROM
|
||||||
|
`md_base_material` m
|
||||||
|
WHERE
|
||||||
|
m.material_id= #{material_id}
|
||||||
|
</select>
|
||||||
|
<select id="getProductionDay" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
w.plan_qty,
|
||||||
|
w.real_qty,
|
||||||
|
(w.plan_qty)-(w.real_qty) AS remain_qty,
|
||||||
|
(w.real_qty)/(w.plan_qty) AS percentage,
|
||||||
|
m.material_name
|
||||||
|
FROM `pdm_bd_workorder` w
|
||||||
|
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||||
|
WHERE
|
||||||
|
DATE(w.create_time)=CURDATE()
|
||||||
|
And w.point_code= #{devicecode}
|
||||||
|
</select>
|
||||||
|
<select id="getProductionTeam" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
w.plan_qty,
|
||||||
|
w.real_qty,
|
||||||
|
(w.plan_qty)-(w.real_qty) AS remain_qty,
|
||||||
|
(w.real_qty)/(w.plan_qty) AS percentage,
|
||||||
|
m.material_name,
|
||||||
|
w.team
|
||||||
|
FROM `pdm_bd_workorder` w
|
||||||
|
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||||
|
WHERE
|
||||||
|
DATE(w.create_time)=CURDATE()
|
||||||
|
And w.point_code= #{devicecode}
|
||||||
|
And w.workorder_status= 3
|
||||||
|
</select>
|
||||||
|
<select id="getProductionHistory" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
DATE_FORMAT(w.create_time,'%Y-%m-%d') AS date,
|
||||||
|
SUM(w.real_qty) AS total_qty
|
||||||
|
FROM
|
||||||
|
`pdm_bd_workorder` w
|
||||||
|
WHERE
|
||||||
|
create_time >= CURDATE() - INTERVAL 30 DAY
|
||||||
|
And w.point_code= #{devicecode}
|
||||||
|
GROUP BY
|
||||||
|
DATE_FORMAT(w.create_time, '%Y-%m-%d');
|
||||||
|
</select>
|
||||||
|
<select id="ltProduction" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
SUM(w.plan_qty) AS plan_production,
|
||||||
|
SUM(w.real_qty) AS actual_production,
|
||||||
|
SUM(w.real_qty)/SUM(w.plan_qty)*100 AS percentage
|
||||||
|
FROM
|
||||||
|
`pdm_bd_workorder` w
|
||||||
|
WHERE
|
||||||
|
w.workorder_status=3
|
||||||
|
And DATE(w.create_time)=CURDATE()
|
||||||
|
And point_code LIKE 'LT%'
|
||||||
|
</select>
|
||||||
|
<select id="ptProduction" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
SUM(w.plan_qty) AS plan_production
|
||||||
|
FROM
|
||||||
|
`pdm_bd_workorder` w
|
||||||
|
WHERE
|
||||||
|
w.workorder_status=3
|
||||||
|
And DATE(w.create_time)=CURDATE()
|
||||||
|
And point_code LIKE 'PT%'
|
||||||
|
</select>
|
||||||
|
<select id="todayTbTask" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
w.workorder_code,
|
||||||
|
m.material_name,
|
||||||
|
w.plan_qty,
|
||||||
|
w.real_qty,
|
||||||
|
w.point_name,
|
||||||
|
w.workorder_status
|
||||||
|
FROM
|
||||||
|
`pdm_bd_workorder` w
|
||||||
|
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||||
|
WHERE
|
||||||
|
w.workorder_status=3
|
||||||
|
And DATE(w.create_time)=CURDATE()
|
||||||
|
</select>
|
||||||
|
<select id="FaultTime" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
d1.device_code,
|
||||||
|
d1.failure_info AS fault_cause,
|
||||||
|
d1.failure_time AS alarm_time
|
||||||
|
FROM
|
||||||
|
das_device_fault d1
|
||||||
|
WHERE
|
||||||
|
d1.failure_time = (
|
||||||
|
SELECT MAX(d2.failure_time)
|
||||||
|
FROM das_device_fault d2
|
||||||
|
WHERE d2.device_code = d1.device_code
|
||||||
|
AND d2.region_code = #{region_code}
|
||||||
|
)
|
||||||
|
AND d1.region_code = #{region_code}
|
||||||
|
And d1.current_status=1
|
||||||
|
</select>
|
||||||
|
<select id="FaultTotal" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
device_code,
|
||||||
|
COUNT(*) AS alarm_qty
|
||||||
|
FROM
|
||||||
|
das_device_fault
|
||||||
|
WHERE
|
||||||
|
region_code = #{region_code}
|
||||||
|
And current_status=1
|
||||||
|
GROUP BY
|
||||||
|
device_code;
|
||||||
|
</select>
|
||||||
|
<select id="curingSummary" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
p.point_status,
|
||||||
|
COUNT(*) AS item_qty
|
||||||
|
FROM `sch_base_point` p
|
||||||
|
WHERE p.region_code = 'GH'
|
||||||
|
AND p.point_type =1
|
||||||
|
GROUP BY
|
||||||
|
point_status;
|
||||||
|
</select>
|
||||||
|
<select id="temporaryStorage" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
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) * 1.0 /
|
||||||
|
NULLIF(SUM(CASE WHEN region_code = 'ZC' THEN 1 ELSE 0 END), 0)*100 AS percentage
|
||||||
|
FROM
|
||||||
|
sch_base_point
|
||||||
|
WHERE
|
||||||
|
region_code = 'ZC';
|
||||||
|
</select>
|
||||||
|
<select id="percent" resultType="java.lang.String">
|
||||||
|
SELECT
|
||||||
|
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
|
||||||
|
FROM
|
||||||
|
sch_base_point
|
||||||
|
WHERE
|
||||||
|
region_code = 'ZC';
|
||||||
|
</select>
|
||||||
|
<select id="statusInfo" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
p.is_used AS item_name,
|
||||||
|
COUNT(*) AS item_qty
|
||||||
|
FROM
|
||||||
|
`sch_base_point` p
|
||||||
|
GROUP BY
|
||||||
|
p.is_used;
|
||||||
|
</select>
|
||||||
|
<select id="storageInfo" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
p.point_status AS item_name,
|
||||||
|
COUNT(*) AS item_qty
|
||||||
|
FROM
|
||||||
|
`sch_base_point` p
|
||||||
|
WHERE p.region_code = 'GH'
|
||||||
|
AND p.point_type=2
|
||||||
|
GROUP BY
|
||||||
|
p.point_status;
|
||||||
|
</select>
|
||||||
|
<select id="faultAlarm" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
WITH RankedFaults AS (
|
||||||
|
SELECT
|
||||||
|
device_code AS device_name,
|
||||||
|
failure_info AS fault_cause,
|
||||||
|
failure_time AS alarm_time,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY device_code ORDER BY failure_time DESC) AS rn
|
||||||
|
FROM das_device_fault
|
||||||
|
WHERE current_status = 1
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
device_name,
|
||||||
|
fault_cause,
|
||||||
|
alarm_time
|
||||||
|
FROM RankedFaults
|
||||||
|
WHERE rn = 1;
|
||||||
|
</select>
|
||||||
|
<select id="monthlyFaultStatistics" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
region_code AS region_name,
|
||||||
|
COUNT(*) AS alarm_qty
|
||||||
|
FROM
|
||||||
|
das_device_fault
|
||||||
|
GROUP BY
|
||||||
|
region_code;
|
||||||
|
</select>
|
||||||
|
<select id="ghStatistics" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
device_name,
|
||||||
|
error_number
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
device_code AS device_name,
|
||||||
|
COUNT(*) AS error_number
|
||||||
|
FROM
|
||||||
|
das_device_fault
|
||||||
|
GROUP BY
|
||||||
|
device_code
|
||||||
|
) AS device_errors
|
||||||
|
ORDER BY
|
||||||
|
error_number DESC
|
||||||
|
LIMIT 10;
|
||||||
|
</select>
|
||||||
|
<select id="inventory" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
m.material_name AS material_name,
|
||||||
|
SUM(g.material_qty) AS total_qty
|
||||||
|
FROM
|
||||||
|
sch_base_point p
|
||||||
|
RIGHT JOIN sch_base_vehiclematerialgroup g ON p.vehicle_code = g.vehicle_code
|
||||||
|
LEFT JOIN md_base_material m ON g.material_id = m.material_id
|
||||||
|
WHERE
|
||||||
|
p.region_code = 'ZC'
|
||||||
|
AND p.point_status = 2
|
||||||
|
AND p.vehicle_code IS NOT NULL
|
||||||
|
AND p.vehicle_code <> ''
|
||||||
|
GROUP BY
|
||||||
|
m.material_name;
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
|
<select id="taskInfo" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
p.point_code AS device_code,
|
||||||
|
m.material_name AS material_name,
|
||||||
|
p.vehicle_type,
|
||||||
|
p.vehicle_code,
|
||||||
|
m.standard_qty AS qty,
|
||||||
|
g.pcsn
|
||||||
|
FROM
|
||||||
|
sch_base_point p
|
||||||
|
RIGHT JOIN sch_base_vehiclematerialgroup g ON p.vehicle_code = g.vehicle_code
|
||||||
|
LEFT JOIN md_base_material m ON g.material_id = m.material_id
|
||||||
|
WHERE
|
||||||
|
p.region_code = 'ZC'
|
||||||
|
AND p.point_status = 2
|
||||||
|
AND p.vehicle_code IS NOT NULL
|
||||||
|
AND p.vehicle_code <> ''
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -60,6 +60,14 @@ public class AcsToWmsController {
|
|||||||
return new ResponseEntity<>(acsToWmsService.againApply(task), HttpStatus.OK);
|
return new ResponseEntity<>(acsToWmsService.againApply(task), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/ghsmlqhfinish")
|
||||||
|
@Log("固化室出口取货完成")
|
||||||
|
@ApiOperation("固化室出口取货完成")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> ghsmlqhfinish(@RequestBody JSONObject task) {
|
||||||
|
return new ResponseEntity<>(acsToWmsService.ghsmlqhfinish(task), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/feedbackState")
|
@PostMapping("/feedbackState")
|
||||||
@Log("ACS系统反馈AGV取放货状态")
|
@Log("ACS系统反馈AGV取放货状态")
|
||||||
@ApiOperation("ACS系统反馈AGV取放货状态")
|
@ApiOperation("ACS系统反馈AGV取放货状态")
|
||||||
|
|||||||
@@ -28,4 +28,11 @@ public interface AcsToWmsService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
AgainApplyResponse againApply(JSONObject task);
|
AgainApplyResponse againApply(JSONObject task);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 固化室出口取货完成
|
||||||
|
* @param task
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AgainApplyResponse ghsmlqhfinish(JSONObject task);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,10 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
|||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||||
import org.nl.wms.sch.task_manage.task.TaskFactory;
|
import org.nl.wms.sch.task_manage.task.TaskFactory;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.sch.task_manage.task.tasks.auto.GHCMLTask;
|
||||||
import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper;
|
import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -69,7 +71,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private ISysInteractRecordService interactRecordService;
|
private ISysInteractRecordService interactRecordService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CockpitMapper cockpitMapper;
|
private CockpitMapper cockpitMapper;
|
||||||
|
@Autowired
|
||||||
|
private GHCMLTask ghcmlTask;
|
||||||
/**
|
/**
|
||||||
* 初始化反射方法
|
* 初始化反射方法
|
||||||
*/
|
*/
|
||||||
@@ -211,10 +214,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
dasDeviceFault.setRegion_code(pointService.getById(device_code).getRegion_code());
|
dasDeviceFault.setRegion_code(pointService.getById(device_code).getRegion_code());
|
||||||
dasDeviceFault.setData_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
dasDeviceFault.setData_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
dasDeviceFault.setFailure_time(now);
|
dasDeviceFault.setFailure_time(now);
|
||||||
dasDeviceFault.setFailure_info(state+"故障");
|
dasDeviceFault.setFailure_info(state);
|
||||||
cockpitMapper.insertDeviceFault(dasDeviceFault);
|
cockpitMapper.insertDeviceFault(dasDeviceFault);
|
||||||
schBasePoint.setIs_used(false);
|
|
||||||
pointService.update(schBasePoint);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -289,5 +290,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public AgainApplyResponse ghsmlqhfinish(JSONObject task) {
|
||||||
|
AgainApplyResponse result = AgainApplyResponse.responseOk(task.getString("request_no"));
|
||||||
|
SchBaseTask task2 = taskService.getById(task.getString("task_id"));
|
||||||
|
String startpoint=task2.getPoint_code1();
|
||||||
|
SchBasePoint startPointObj = pointService.getById(startpoint);
|
||||||
|
//校验起点是固化室出口的任务
|
||||||
|
String jwc = startpoint.substring(startpoint.length() - 1);
|
||||||
|
if(jwc.equals("C")){
|
||||||
|
ghcmlTask.finishTask(task2, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
result.setMessage("该任务起点是固化室出口点位修改成功");
|
||||||
|
}else{
|
||||||
|
result.setMessage("该任务起点不是固化室出口");
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,21 +58,20 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
Boolean lock_type = ObjectUtil.isNotEmpty(whereJson.get("lock_type")) ? Boolean.valueOf(whereJson.get("lock_type").toString()) : false;
|
Boolean lock_type = ObjectUtil.isNotEmpty(whereJson.get("lock_type")) ? Boolean.valueOf(whereJson.get("lock_type").toString()) : false;
|
||||||
Boolean parent_point = ObjectUtil.isNotEmpty(whereJson.get("parent_point")) ? Boolean.valueOf(whereJson.get("parent_point").toString()) : false;
|
Boolean parent_point = ObjectUtil.isNotEmpty(whereJson.get("parent_point")) ? Boolean.valueOf(whereJson.get("parent_point").toString()) : false;
|
||||||
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
||||||
lam.like(ObjectUtil.isNotEmpty(blurry), SchBasePoint::getPoint_code, blurry)
|
lam.eq(ObjectUtil.isNotEmpty(workshop_code), SchBasePoint::getWorkshop_code, workshop_code)
|
||||||
.or(ObjectUtil.isNotEmpty(blurry), lam1 -> lam1.like(SchBasePoint::getPoint_name, blurry))
|
.and(ObjectUtil.isNotEmpty(blurry), la -> la.like(SchBasePoint::getPoint_code, blurry)
|
||||||
.eq(ObjectUtil.isNotEmpty(workshop_code), SchBasePoint::getWorkshop_code, workshop_code)
|
.or().like(SchBasePoint::getPoint_name, blurry))
|
||||||
.eq(ObjectUtil.isNotEmpty(region_code), SchBasePoint::getRegion_code, region_code)
|
.eq(ObjectUtil.isNotEmpty(region_code), SchBasePoint::getRegion_code, region_code)
|
||||||
.eq(ObjectUtil.isNotEmpty(point_type), SchBasePoint::getPoint_type, point_type)
|
.eq(ObjectUtil.isNotEmpty(point_type), SchBasePoint::getPoint_type, point_type)
|
||||||
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
|
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
|
||||||
.eq(ObjectUtil.isNotEmpty(is_used), SchBasePoint::getIs_used, is_used)
|
.eq(ObjectUtil.isNotEmpty(is_used), SchBasePoint::getIs_used, is_used)
|
||||||
.and(!lock_type, slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
.and(!lock_type, slam -> slam.isNull(SchBasePoint::getIng_task_code).or()
|
||||||
.or()
|
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
.and(lock_type, slam -> slam.isNotNull(SchBasePoint::getIng_task_code)
|
.and(lock_type, slam -> slam.isNotNull(SchBasePoint::getIng_task_code)
|
||||||
.ne(SchBasePoint::getIng_task_code, ""))
|
.ne(SchBasePoint::getIng_task_code, ""))
|
||||||
.orderByAsc(SchBasePoint::getRegion_code)
|
.orderByAsc(SchBasePoint::getRegion_code)
|
||||||
.orderByAsc(SchBasePoint::getPoint_type)
|
|
||||||
.orderByAsc(SchBasePoint::getPoint_code)
|
.orderByAsc(SchBasePoint::getPoint_code)
|
||||||
|
.orderByAsc(SchBasePoint::getPoint_type)
|
||||||
.apply(parent_point, "point_code = parent_point_code");
|
.apply(parent_point, "point_code = parent_point_code");
|
||||||
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
|
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||||
pointMapper.selectPage(pages, lam);
|
pointMapper.selectPage(pages, lam);
|
||||||
|
|||||||
@@ -130,5 +130,4 @@ public class SchBaseTask implements Serializable {
|
|||||||
private String start_wait_point;
|
private String start_wait_point;
|
||||||
@ApiModelProperty(value = "放货等待点")
|
@ApiModelProperty(value = "放货等待点")
|
||||||
private String next_wait_point;
|
private String next_wait_point;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
jsonObject.put("pcsn",ObjectUtil.isNotEmpty(groupInfo) ? groupInfo.getPcsn() : null);
|
jsonObject.put("pcsn",ObjectUtil.isNotEmpty(groupInfo) ? groupInfo.getPcsn() : null);
|
||||||
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
|
throw new BadRequestException("暂存区域[" + task.getPoint_code1() + "]未找到所需点位!");
|
||||||
}
|
}
|
||||||
log.info("当前任务{}找到预计终点{}",task.getTask_id(),point.getPoint_code());
|
log.info("当前任务{}找到预计终点{}",task.getTask_id(),point.getPoint_code());
|
||||||
// 设置组盘 - 需要的话由子类自行实现
|
// 设置组盘 - 需要的话由子类自行实现
|
||||||
@@ -234,6 +234,7 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code());
|
vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code());
|
||||||
vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name());
|
vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name());
|
||||||
vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code());
|
vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code());
|
||||||
|
vehiclematerialgroup.setGroup_bind_material_status("3");
|
||||||
vehiclematerialgroupService.updateById(vehiclematerialgroup);
|
vehiclematerialgroupService.updateById(vehiclematerialgroup);
|
||||||
// 终点解锁
|
// 终点解锁
|
||||||
endPointObj.setIng_task_code("");
|
endPointObj.setIng_task_code("");
|
||||||
|
|||||||
@@ -39,7 +39,6 @@
|
|||||||
FROM sch_base_point p
|
FROM sch_base_point p
|
||||||
LEFT JOIN sch_base_vehiclematerialgroup vg
|
LEFT JOIN sch_base_vehiclematerialgroup vg
|
||||||
ON p.vehicle_code = vg.vehicle_code
|
ON p.vehicle_code = vg.vehicle_code
|
||||||
AND vg.group_bind_material_status = '2'
|
|
||||||
WHERE p.region_code = 'ZC'
|
WHERE p.region_code = 'ZC'
|
||||||
AND p.is_used = TRUE
|
AND p.is_used = TRUE
|
||||||
and p.row_num in (
|
and p.row_num in (
|
||||||
@@ -47,7 +46,6 @@
|
|||||||
FROM sch_base_point p
|
FROM sch_base_point p
|
||||||
LEFT JOIN sch_base_vehiclematerialgroup vg
|
LEFT JOIN sch_base_vehiclematerialgroup vg
|
||||||
ON p.vehicle_code = vg.vehicle_code
|
ON p.vehicle_code = vg.vehicle_code
|
||||||
AND vg.group_bind_material_status = '2'
|
|
||||||
WHERE p.region_code = 'ZC'
|
WHERE p.region_code = 'ZC'
|
||||||
and vg.material_id=#{materialId}
|
and vg.material_id=#{materialId}
|
||||||
and RIGHT(vg.pcsn,8)=RIGHT(#{pcsn},8)
|
and RIGHT(vg.pcsn,8)=RIGHT(#{pcsn},8)
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import org.nl.wms.util.TaskUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -323,7 +324,7 @@ public class TBXMLTask extends AbstractTask {
|
|||||||
: "");
|
: "");
|
||||||
groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0
|
groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0
|
||||||
? qty
|
? qty
|
||||||
: ObjectUtil.isEmpty(materialObj.getStandard_qty()) ? 0 : Integer.parseInt(materialObj.getStandard_qty()) * 11);
|
: ObjectUtil.isEmpty(materialObj.getStandard_qty()) ? 0 : Integer.parseInt(materialObj.getStandard_qty()));
|
||||||
groupEntity.setCreate_id(GeneralDefinition.ACS_ID);
|
groupEntity.setCreate_id(GeneralDefinition.ACS_ID);
|
||||||
groupEntity.setCreate_name(GeneralDefinition.ACS_NAME);
|
groupEntity.setCreate_name(GeneralDefinition.ACS_NAME);
|
||||||
groupEntity.setCreate_time(DateUtil.now());
|
groupEntity.setCreate_time(DateUtil.now());
|
||||||
@@ -352,7 +353,11 @@ public class TBXMLTask extends AbstractTask {
|
|||||||
|
|
||||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
String endPoint = taskObj.getPoint_code2();
|
String endPoint = taskObj.getPoint_code2();
|
||||||
|
//起点是对接位要转成连涂或者普涂
|
||||||
|
String startPoint=taskObj.getPoint_code1();
|
||||||
|
String startPoint1=startPoint.substring(0,5);
|
||||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
|
PdmBdWorkorder orderObject = workorderService.getDeviceDockingProductionTask(startPoint1);
|
||||||
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
||||||
SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(taskObj.getGroup_id());
|
SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(taskObj.getGroup_id());
|
||||||
TaskUtils.setGroupUpdateByType(vehiclematerialgroup, taskFinishedType);
|
TaskUtils.setGroupUpdateByType(vehiclematerialgroup, taskFinishedType);
|
||||||
@@ -362,6 +367,11 @@ public class TBXMLTask extends AbstractTask {
|
|||||||
vehiclematerialgroup.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
vehiclematerialgroup.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code());
|
vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code());
|
||||||
vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name());
|
vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name());
|
||||||
|
//在相应工单中修改实际数量
|
||||||
|
Integer qty=vehiclematerialgroup.getMaterial_qty();
|
||||||
|
Integer real_qty=(orderObject.getReal_qty()).intValue()+qty;
|
||||||
|
orderObject.setReal_qty(BigDecimal.valueOf(real_qty));
|
||||||
|
workorderService.updateById(orderObject);
|
||||||
// 设置链路id,使用任务编码
|
// 设置链路id,使用任务编码
|
||||||
vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code());
|
vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code());
|
||||||
vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code());
|
vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code());
|
||||||
|
|||||||
Reference in New Issue
Block a user