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

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

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

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

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

@ -102,8 +102,6 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
log.info(" warn code:{}", code); log.info(" warn code:{}", code);
if ("D0".equals(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); 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 n = 1;
int warn = 0; int warn = 0;
@ -114,6 +112,7 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
} }
n++; n++;
} }
plcService.warnStart(plcId,"D" + warn);
if (warn > 0) { if (warn > 0) {
//执行动作 //执行动作
//times = 1 只执行动作 //times = 1 只执行动作

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

@ -5,8 +5,10 @@ import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.web.entity.*; import com.zhehekeji.web.entity.*;
import com.zhehekeji.web.lib.*; import com.zhehekeji.web.lib.*;
import com.zhehekeji.web.mapper.*; import com.zhehekeji.web.mapper.*;
import com.zhehekeji.web.pojo.OrderVO;
import com.zhehekeji.web.pojo.stock.StockStatus; import com.zhehekeji.web.pojo.stock.StockStatus;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -190,30 +192,41 @@ public class PlcService {
* 2. * 2.
* @param plcId * @param plcId
*/ */
public void warnStart(String plcId){ public void warnStart(String plcId,String signal){
Street street = streetService.getStreetByPlcId(plcId); Street street = streetService.getStreetByPlcId(plcId);
if(street == null){ if(street == null){
return; return;
} }
synchronized (plcId.intern()){ synchronized (plcId.intern()){
String orderNum = OrderRealtime.getOrderByStreetId(street.getId());
if(StringUtils.isEmpty(orderNum)){
//空的 说明没有正在执行的订单
//新增 告警 //新增 告警
if(OrderRealtime.getWarnId(street.getId()) == null){ if(OrderRealtime.getWarnId(street.getId()) == null){
//不存在正在执行的告警记录,就新增 //不存在正在执行的告警记录,就新增
Warn warn = new Warn(); Warn warn = new Warn();
warn.setStartTime(LocalDateTime.now()); warn.setStartTime(LocalDateTime.now());
warn.setStreetId(street.getId()); 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); warnMapper.insert(warn);
OrderRealtime.startWarn(street.getId(),warn.getId()); OrderRealtime.startWarn(street.getId(),warn.getId());
}else { }else {
log.debug("{}:exist warn",plcId); 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) { public List<Stock> list(Integer streetId) {
Street street = streetService.streetById(streetId); Street street = streetService.streetById(streetId);
if(street == null){
return new ArrayList<>();
}
List<String> shelves = streetService.check(street); List<String> shelves = streetService.check(street);
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().in("shelve_id", shelves).orderByAsc("shelve_id", "`row`", "`column`")); List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().in("shelve_id", shelves).orderByAsc("shelve_id", "`row`", "`column`"));
return stocks; return stocks;

Loading…
Cancel
Save