Browse Source

生产看板

master
李广豪 2 years ago
parent
commit
0dd56c1e8b
2 changed files with 124 additions and 1 deletions
  1. +56
    -1
      6.program/wms-empty/src/main/java/com/mt/wms/empty/task/ScheduledTask.java
  2. +68
    -0
      6.program/wms-empty/src/main/java/com/mt/wms/empty/vo/NowCurrTaskDetVo.java

+ 56
- 1
6.program/wms-empty/src/main/java/com/mt/wms/empty/task/ScheduledTask.java View File

@@ -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());
}


}

+ 68
- 0
6.program/wms-empty/src/main/java/com/mt/wms/empty/vo/NowCurrTaskDetVo.java View File

@@ -0,0 +1,68 @@
package com.mt.wms.empty.vo;

import com.mt.wms.core.base.BaseVo;
import com.mt.wms.core.vo.PageVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.List;

/**
* @Author: LGH
* @Date: 2022/4/12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Builder
@ApiModel(value = "当前正在加工炉任务详情视图对象", description = "用于查询当前正在加工炉任务详情")
public class NowCurrTaskDetVo extends BaseVo implements PageVo.ConvertVo{
/**
* 主键,自增
*/
@ApiModelProperty(value = "主键", example = "1")
private Long id;
/**
* currtask任务code
*/
@ApiModelProperty(value = "currtask任务code",example = "0")
private String taskCode;

/**
* 炉子id
*/
@ApiModelProperty(value = "炉子id",example = "0")
private Long kilnId;
/**
* 炉子code
*/
@ApiModelProperty(value = "炉子code",example = "0")
private String kilnCode;
/**
* 工艺plc值
*/
@ApiModelProperty(value = "工艺plc值",example = "0")
private Integer plcValue;

/**
* 工艺设定时间
*/
@ApiModelProperty(value = "工艺设定时间",example = "0")
private Integer setupTime;

/**
* 工艺剩余时间
*/
@ApiModelProperty(value = "工艺剩余时间",example = "0")
private Integer remainingTime;

/**
* 标识卡list
*/
@ApiModelProperty(value = "标识卡list",example = "0")
private List<CurrTaskDetVo> currTaskDetVoList;
}

Loading…
Cancel
Save