|
|
@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.mt.wms.core.base.BaseService; |
|
|
|
import com.mt.wms.core.dal.entity.*; |
|
|
|
import com.mt.wms.core.dal.service.*; |
|
|
|
import com.mt.wms.core.utils.BeanUtils; |
|
|
|
import com.mt.wms.core.utils.CodeGeneratorHelper; |
|
|
|
import com.mt.wms.core.utils.HttpClient; |
|
|
|
import com.mt.wms.core.vo.R; |
|
|
|
import com.mt.wms.empty.vo.CurrTaskDetVo; |
|
|
|
import com.mt.wms.empty.vo.NowCurrTaskDetVo; |
|
|
|
import com.mt.wms.empty.websocket.WebSocketServer; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
import org.slf4j.Logger; |
|
|
@@ -66,11 +69,52 @@ public class ScheduledTask extends BaseService { |
|
|
|
private RunTaskUtils runTaskUtils; |
|
|
|
@Resource |
|
|
|
private WebSocketServer webSocketServer; |
|
|
|
@Resource |
|
|
|
private CurrTaskDetServiceBiz currTaskDetServiceBiz; |
|
|
|
@Resource |
|
|
|
private OrderInfoServiceBiz orderInfoServiceBiz; |
|
|
|
|
|
|
|
public void testWebsocket() throws IOException { |
|
|
|
webSocketServer.sendtoAll(LocalDateTime.now()+"测试"); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 正在加工的加工任务详情 |
|
|
|
*/ |
|
|
|
public void screen() throws IOException { |
|
|
|
//查询出正在进炉加工的curr_task,查询对应炉号是否Working,查询计划时间,剩余时间,查询标识卡详情 |
|
|
|
List<CurrTask> currTaskList = currTaskServiceBiz.list(new QueryWrapper<CurrTask>().eq(CurrTask.IS_IN, 1)); |
|
|
|
List<NowCurrTaskDetVo> nowCurrTaskDetVoList = BeanUtils.copyList(currTaskList, NowCurrTaskDetVo.class); |
|
|
|
for (NowCurrTaskDetVo nowCurrTask:nowCurrTaskDetVoList |
|
|
|
) { |
|
|
|
Long kilnId = nowCurrTask.getKilnId(); |
|
|
|
Boolean kilnWorking = kilnWorking(kilnId); |
|
|
|
//查询对应炉号是否Working |
|
|
|
if (kilnWorking){ |
|
|
|
String nameSpace = plcNameSpaceServiceBiz.getOne(new QueryWrapper<PlcNameSpace>() |
|
|
|
.eq(PlcNameSpace.EQ_TYPE, 0) |
|
|
|
.eq(PlcNameSpace.TYPE, 0) |
|
|
|
.eq(PlcNameSpace.EQ_ID, kilnId)).getName(); |
|
|
|
//设定时间 |
|
|
|
// TODO: 2022/4/11 PLC变量名称设定时间和剩余时间统一命名 |
|
|
|
Integer setupTime = Integer.parseInt(readPlcToString(nameSpace, "SetupTime")); |
|
|
|
//剩余时间 |
|
|
|
Integer remainingTime = Integer.parseInt(readPlcToString(nameSpace, "RemainingTime")); |
|
|
|
nowCurrTask.setSetupTime(setupTime); |
|
|
|
nowCurrTask.setRemainingTime(remainingTime); |
|
|
|
//标识卡详情 |
|
|
|
List<CurrTaskDet> currTaskDetList = currTaskDetServiceBiz.list(new QueryWrapper<CurrTaskDet>().eq(CurrTaskDet.CURR_TASK_ID, nowCurrTask.getId())); |
|
|
|
List<CurrTaskDetVo> currTaskDetVoList = BeanUtils.copyList(currTaskDetList, CurrTaskDetVo.class); |
|
|
|
for (CurrTaskDetVo currTaskDetVo:currTaskDetVoList |
|
|
|
) { |
|
|
|
String customerName = orderInfoServiceBiz.getOne(new QueryWrapper<OrderInfo>().eq(OrderInfo.ORDER_NO, currTaskDetVo.getOrderNo())).getCustomerName(); |
|
|
|
currTaskDetVo.setCustomer(customerName); |
|
|
|
} |
|
|
|
nowCurrTask.setCurrTaskDetVoList(currTaskDetVoList); |
|
|
|
} |
|
|
|
} |
|
|
|
webSocketServer.sendtoAll(JSONObject.toJSONString(nowCurrTaskDetVoList)); |
|
|
|
} |
|
|
|
/** |
|
|
|
* 查询加工完成的窑炉 |
|
|
|
*/ |
|
|
@@ -104,7 +148,6 @@ public class ScheduledTask extends BaseService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//查询出正在加工的窑炉,遍历,根据采集频率的不同,采集高频数据能源消耗。暂定30秒 |
|
|
|
//@Scheduled(fixedDelay = 1000*30) |
|
|
|
public void getFastValue(){ |
|
|
@@ -192,6 +235,7 @@ public class ScheduledTask extends BaseService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//查询出正在加工的窑炉,遍历,根据采集频率的不同,采集低频数据能源消耗。暂定3分钟一次 |
|
|
|
//@Scheduled(fixedDelay = 1000*60*3) |
|
|
|
public void getSlowValue(){ |
|
|
@@ -503,4 +547,15 @@ public class ScheduledTask extends BaseService { |
|
|
|
return Boolean.valueOf(JSONObject.parseObject(result).get("result").toString()); |
|
|
|
} |
|
|
|
|
|
|
|
private Boolean kilnWorking(Long kilnId){ |
|
|
|
PlcNameSpace nameSpace = plcNameSpaceServiceBiz.getOne(new QueryWrapper<PlcNameSpace>() |
|
|
|
.eq(PlcNameSpace.EQ_TYPE, 0) |
|
|
|
.eq(PlcNameSpace.EQ_ID, kilnId) |
|
|
|
.eq(PlcNameSpace.TYPE,0)); |
|
|
|
String nameSpaceNote = nameSpace.getName(); |
|
|
|
String result = readPlcToString(nameSpaceNote, "Working"); |
|
|
|
return Boolean.valueOf(JSONObject.parseObject(result).get("result").toString()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |