| | |
| | | package com.zy.core.netty.handle; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.FireLog; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.zy.asrs.service.FireLogService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.impl.MainServiceImpl; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.netty.AbstractInboundHandler; |
| | | import com.zy.core.netty.cache.ChannelCache; |
| | | import com.zy.core.netty.constant.Constant; |
| | |
| | | |
| | | @Autowired |
| | | private MainServiceImpl mainService; |
| | | |
| | | //消防心跳,火警 |
| | | @Override |
| | | protected boolean channelRead0(ChannelHandlerContext ctx, ChPackage pac) { |
| | | FireDataType dataType = FireDataType.get(pac.getBytes()[1], pac.getBytes()[2]); |
| | |
| | | case HEARTBEAT: |
| | | ChannelCache.setChannel(String.valueOf(fire3030.getNo()), ctx.channel()); |
| | | Constant.errorMap.remove(fire3030.getNo()); |
| | | LocMastService locMastService2 = SpringUtils.getBean(LocMastService.class); |
| | | break; |
| | | case FIRE_ALARM: |
| | | //消防IO点编号 |
| | | String fireNo = fire3030.getNo().toString() + fire3030.getLoop().toString() + fire3030.getPartNo().toString(); |
| | | String fireTime = "20" + fire3030.getYear() + "-" + fire3030.getMonth() + "-" + fire3030.getDay() |
| | | + " " + fire3030.getHour() + ":" + fire3030.getMinute() + ":" + fire3030.getSeconds(); |
| | | |
| | | // String fireNo = fire3030.getNo().toString() + fire3030.getLoop().toString() + fire3030.getPartNo().toString(); |
| | | String fireNo =fire3030.getPartNo().toString(); //0100201 对应 30 31 0200201 对应 34 35 |
| | | int count=Integer.valueOf(fireNo)/2+Integer.valueOf(fireNo)%2; |
| | | fireNo=""+count; |
| | | // String fireTime = "20" + fire3030.getYear() + "-" + fire3030.getMonth() + "-" + fire3030.getDay() |
| | | // + " " + fire3030.getHour() + ":" + fire3030.getMinute() + ":" + fire3030.getSeconds(); |
| | | Date dt = new Date(); |
| | | LocMastService locMastService = SpringUtils.getBean(LocMastService.class); |
| | | if(null != locMastService){ |
| | | //报警信号更新到库存主档 fire_status字段 |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("fire_no",fireNo)); |
| | | if(null != locMast){ |
| | | locMast.setFireStatus(1); |
| | | locMast.setModiTime(new Date()); |
| | | locMastService.update(locMast, new EntityWrapper<LocMast>().eq("fire_no",fireNo)); |
| | | if(locMast.getFireStatus() != 1) { |
| | | locMast.setFireStatus(1); |
| | | locMast.setModiTime(new Date()); |
| | | locMastService.update(locMast, new EntityWrapper<LocMast>().eq("fire_no", fireNo)); |
| | | } |
| | | |
| | | //插入报警日志记录,同一库位同一报警只插入一次 |
| | | FireLogService fireLogService = SpringUtils.getBean(FireLogService.class); |
| | | if(null != fireLogService){ |
| | | String ymd = "20" + fire3030.getYear() + "" + fire3030.getMonth() + "" + fire3030.getDay(); |
| | | FireLog one = fireLogService.selectOne(new EntityWrapper<FireLog>() |
| | | .eq("ymd",ymd) |
| | | .eq("fire_no",fireNo)); |
| | | if(null == one) { |
| | | FireLog fireLog = new FireLog(); |
| | | fireLog.setYmd(ymd); |
| | | fireLog.setFireNo(fireNo); |
| | | fireLog.setFireTime(dt); |
| | | fireLog.setLocNo(locMast.getLocNo()); |
| | | fireLog.setCreateTime(new Date()); |
| | | fireLogService.insert(fireLog); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | break; |
| | |
| | | |
| | | /**************************************** 测试专用 *****************************************/ |
| | | public static void main(String[] args){ |
| | | byte[] rfidBytes = new byte[]{(byte)0xA0, 0x13, 0x01, (byte)0x8A, (byte)0xB6, 0x30, 0x00, |
| | | 0x38, 0x30, 0x33, 0x34, 0x35, 0x36, 0x37, (byte)0x38, 0x28, (byte)0xC3, (byte)0x81, 0x2D, (byte)0xB0, 0x2F }; |
| | | if(rfidBytes.length > 15) { |
| | | byte[] dataBytes = new byte[8]; |
| | | dataBytes[0] = rfidBytes[7]; |
| | | dataBytes[1] = rfidBytes[8]; |
| | | dataBytes[2] = rfidBytes[9]; |
| | | dataBytes[3] = rfidBytes[10]; |
| | | dataBytes[4] = rfidBytes[11]; |
| | | dataBytes[5] = rfidBytes[12]; |
| | | dataBytes[6] = rfidBytes[13]; |
| | | dataBytes[7] = rfidBytes[14]; |
| | | String str = new String(dataBytes); |
| | | String barcode = new String(rfidBytes,7,8); |
| | | System.out.println(str); |
| | | } |
| | | |
| | | String aa= "ILY0127 0001"; |
| | | byte[] byteAa = aa.getBytes(); |
| | | |
| | | byte[] bytes = new byte[]{(byte)0x82, 0x38, 0x30, 0x32, 0x34, 0x30, 0x38, 0x39, 0x3B, 0x30, 0x31, 0x31, 0x31, |
| | | 0x30, 0x33, 0x30, 0x38, 0x31, 0x30, 0x30, 0x34, 0x30, 0x38, 0x38, 0x30, (byte)0x83}; |
| | | Fire_3030 fire3030 = new Fire_3030().readFromBytes(bytes); |
| | |
| | | //消防IO点编号 |
| | | String fireNo = fire3030.getNo().toString() + fire3030.getLoop().toString() + fire3030.getPartNo().toString(); |
| | | System.out.println(fireNo); |
| | | String aa=""; |
| | | } |
| | | } |