告警 无论是否存在订单都新增

camera_merge
王一鸣 5 years ago
parent d202d80e77
commit 665366039f

@ -65,7 +65,7 @@ public class OrderController {
@ApiOperation("发生告警")
@GetMapping("/error")
public Result orderError(@ApiParam("plc") @RequestParam String plcId){
plcService.warnStart(plcId);
plcService.warnStart(plcId,"D1");
return Result.success();
}

@ -294,6 +294,7 @@ public class PtzControlModule {
absolutely.stuPosition.nPositionY= 0;
absolutely.stuSpeed.fPositionX = 0.2f;
absolutely.stuSpeed.fPositionY = 0.2f;
absolutely.write();
//absolutely.stuSpeed.fZoom = 0.5f;
Boolean ok = LoginModule.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId),0,dwPTZCommand,
0,0,0,0,absolutely.getPointer());

@ -9,12 +9,12 @@ public class StockExcel {
@ExcelProperty(index = 0, value = "品规")
private String category;
@ExcelProperty(index = 1, value = "货架号")
private String shelveId;
@ExcelProperty(index = 2, value = "数量")
@ExcelProperty(index = 1, value = "数量")
private Integer count;
@ExcelProperty(index = 2, value = "货架号")
private String shelveId;
@ExcelProperty(index = 3, value = "行")
private Integer row;

@ -102,8 +102,6 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
log.info(" warn code:{}", code);
if ("D0".equals(code)) {
log.info("warn start ,plcId:{},warnInfo:b1:{},b2:{},b3:{},b4:{},b5:{},b6:{},b7:{},b8:{}", plcId, b1, b2, b3, b4, b5, b6, b7, b8);
plcService.warnStart(plcId);
//动作
//解析具体的告警 具体规则见文档
int n = 1;
int warn = 0;
@ -114,6 +112,7 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
}
n++;
}
plcService.warnStart(plcId,"D" + warn);
if (warn > 0) {
//执行动作
//times = 1 只执行动作

@ -129,21 +129,26 @@ public class OrderService {
//左货架 右货架
Integer leftRight = 0;
if (orderVO.getInOut1() == 1 && orderVO.getInOut2() == 1) {
// 库内转库内
leftRight = orderVO.getLeftRight2();
column = orderVO.getColumn2();
row = orderVO.getRow2();
} else if (orderVO.getInOut1() == 1) {
// 库内到库外
leftRight = orderVO.getLeftRight1();
//看from
orderVO.setStreetType(orderVO.getLeftRight1());
column = orderVO.getColumn1();
row = orderVO.getRow1();
} else if (orderVO.getInOut2() == 1) {
//库外到库内
leftRight = orderVO.getLeftRight2();
//看to
orderVO.setStreetType(orderVO.getLeftRight2());
column = orderVO.getColumn2();
row = orderVO.getRow2();
}else {
return "库外转库外";
}
if (leftRight > 0) {
//PLC 1是左 2是由

@ -5,8 +5,10 @@ import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.web.entity.*;
import com.zhehekeji.web.lib.*;
import com.zhehekeji.web.mapper.*;
import com.zhehekeji.web.pojo.OrderVO;
import com.zhehekeji.web.pojo.stock.StockStatus;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -190,30 +192,41 @@ public class PlcService {
* 2.
* @param plcId
*/
public void warnStart(String plcId){
public void warnStart(String plcId,String signal){
Street street = streetService.getStreetByPlcId(plcId);
if(street == null){
return;
}
synchronized (plcId.intern()){
String orderNum = OrderRealtime.getOrderByStreetId(street.getId());
if(StringUtils.isEmpty(orderNum)){
//空的 说明没有正在执行的订单
//新增 告警
if(OrderRealtime.getWarnId(street.getId()) == null){
//不存在正在执行的告警记录,就新增
Warn warn = new Warn();
warn.setStartTime(LocalDateTime.now());
warn.setStreetId(street.getId());
String orderNum = OrderRealtime.getOrderByStreetId(street.getId());
if(StringUtils.isEmpty(orderNum)){
//空的 说明没有正在执行的订单
log.debug("{}:warn.... no order",plcId);
}else {
//不为空的话,填写工单的位置
Order order = orderMapper.getOneByOrderNum(orderNum);
if(order != null){
OrderVO orderVO = new OrderVO();
BeanUtils.copyProperties(order,orderVO);
String location = orderService.location(orderVO,street);
warn.setLocation(location);
log.debug("{}:warn.... exist order",plcId);
}
}
//没有正在执行的工单 不需要填写location
warn.setSignal(signal);
warnMapper.insert(warn);
OrderRealtime.startWarn(street.getId(),warn.getId());
}else {
log.debug("{}:exist warn",plcId);
}
}else {
log.debug("{}:warn.... exist order",plcId);
}
}
}

@ -70,6 +70,9 @@ public class StockService {
public List<Stock> list(Integer streetId) {
Street street = streetService.streetById(streetId);
if(street == null){
return new ArrayList<>();
}
List<String> shelves = streetService.check(street);
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().in("shelve_id", shelves).orderByAsc("shelve_id", "`row`", "`column`"));
return stocks;

Loading…
Cancel
Save