From 2d903fe6533f92b87eb97bf5d420652363966554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=BE=E9=85=92?= Date: Tue, 7 Jan 2025 12:00:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consumer/DeviceOtherMsgConsumer.java | 104 ++++++++++-------- .../service/impl/DeviceOtherMsgHandler.java | 3 +- 2 files changed, 58 insertions(+), 49 deletions(-) diff --git a/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java b/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java index 84fe149..ea4b43b 100644 --- a/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java +++ b/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java @@ -265,17 +265,36 @@ public class DeviceOtherMsgConsumer { UserRechargeCards cardInfo=userRechargeCardsMapper.selectUserRechargeCardsByCardNumberAndAreaCode(cardNumber,areaCode); //根据卡号查询用户所属机构 List cardList = new LambdaQueryChainWrapper<>(userRechargeCardsMapper) - .select(UserRechargeCards::getUserId,UserRechargeCards::getDeptId) + .select(UserRechargeCards::getUserId,UserRechargeCards::getDeptId,UserRechargeCards::getUserName) .eq(UserRechargeCards::getCardNumber, cardNumber) + // .ne(UserRechargeCards::getDeptId, null) .list(); - Long deptId= null;//获取deptId + // Long deptId= null;//获取deptId if(!cardList.isEmpty()){ - deptId= cardList.get(0).getDeptId(); + // if(cardList.get(0).getDeptId()!=null){ + // deptId= cardList.get(0).getDeptId(); + // } + //添加一条刷卡记录 + NgCardSwipeRecords ngCardSwipeRecords=new NgCardSwipeRecords(); + ngCardSwipeRecords.setCardNumber(cardNumber);//卡号 + ngCardSwipeRecords.setDeviceNumber(serialNumber);//设备编码 + ngCardSwipeRecords.setAreaCode(areaCode);//区域号 + ngCardSwipeRecords.setCardSwipeType(0);//开阀 + ngCardSwipeRecords.setCardSwipeTime(DateUtils.getNowDate());//刷卡时间 + if(cardInfo!=null && cardInfo.getUserId()!=null){ + ngCardSwipeRecords.setUserId(cardList.get(0).getUserId());//用户id + } + if(cardInfo!=null && cardInfo.getUserName()!=null){ + ngCardSwipeRecords.setUserName(cardList.get(0).getUserName());//用户名称 + } + int flag1=ngCardSwipeRecordsMapper.insertNgCardSwipeRecords(ngCardSwipeRecords); + if(flag1<1) + { + log.error("设备{}开阀刷卡记录添加失败",serialNumber); + } } - - userIrrigationRecord.setDeptId(deptId); - + // userIrrigationRecord.setDeptId(deptId); DateTime currentTime=DateTime.now();//获取当前时间作为开阀时间 userIrrigationRecord.setStartTime(currentTime);//开阀时间 @@ -286,38 +305,15 @@ public class DeviceOtherMsgConsumer { userIrrigationRecord.setOpenCumFlow(openCumFlow);//用户开阀时使用水量 System.err.println("openCumFlow"+openCumFlow); - - userIrrigationRecord.setStatus(1);//状态改为灌溉中 - System.out.println(userIrrigationRecord); - userIrrigationRecord.setCreateTime(DateUtils.getNowDate()); - - int flag=userIrrigationRecordMapper.insertUserIrrigationRecord(userIrrigationRecord);//开阀时添加一条灌溉记录 if(flag<1) { log.error("设备{}灌溉记录添加失败",serialNumber); } - //添加一条刷卡记录 - NgCardSwipeRecords ngCardSwipeRecords=new NgCardSwipeRecords(); - ngCardSwipeRecords.setCardNumber(cardNumber);//卡号 - ngCardSwipeRecords.setDeviceNumber(serialNumber);//设备编码 - ngCardSwipeRecords.setAreaCode(areaCode);//区域号 - ngCardSwipeRecords.setCardSwipeType(0);//开阀 - ngCardSwipeRecords.setCardSwipeTime(DateUtils.getNowDate());//刷卡时间 - if(cardInfo!=null && cardInfo.getUserId()!=null){ - ngCardSwipeRecords.setUserId(cardInfo.getUserId());//用户id - } - if(cardInfo!=null && cardInfo.getUserName()!=null){ - ngCardSwipeRecords.setUserName(cardInfo.getUserName());//用户名称 - } - flag=ngCardSwipeRecordsMapper.insertNgCardSwipeRecords(ngCardSwipeRecords); - if(flag<1) - { - log.error("设备{}开阀刷卡记录添加失败",serialNumber); - } + } //处理关阀门报文 @@ -338,6 +334,12 @@ public class DeviceOtherMsgConsumer { { log.error("设备{}灌溉记录不存在",serialNumber); }else{ + //根据卡号查询用户所属机构 + List cardList = new LambdaQueryChainWrapper<>(userRechargeCardsMapper) + .select(UserRechargeCards::getUserId,UserRechargeCards::getDeptId,UserRechargeCards::getUserName) + .eq(UserRechargeCards::getCardNumber, cardNumber) + // .ne(UserRechargeCards::getDeptId, null) + .list(); UserIrrigationRecord userIrrigationRecord=new UserIrrigationRecord(); userIrrigationRecord.setId(irrigationRecordList.get(0).getId()); @@ -351,8 +353,6 @@ public class DeviceOtherMsgConsumer { // System.err.println("用户关阀时总用水量:"+closeCumFlow); userIrrigationRecord.setCloseCumFlow(closeCumFlow); - - BigDecimal currentFlow=closeCumFlow.subtract(irrigationRecordList.get(0).getOpenCumFlow());//计算结果为当前用水量 //当前用水量 log.info("设备{}本次灌溉用户当前用水量{}",serialNumber,currentFlow); @@ -374,7 +374,7 @@ public class DeviceOtherMsgConsumer { //添加一条刷卡记录 String areaCode=dataJson.getStr("areaCode"); - UserRechargeCards cardInfo=userRechargeCardsMapper.selectUserRechargeCardsByCardNumberAndAreaCode(cardNumber,areaCode);//查询卡号+区域号信息 + // UserRechargeCards cardInfo=userRechargeCardsMapper.selectUserRechargeCardsByCardNumberAndAreaCode(cardNumber,areaCode);//查询卡号+区域号信息 NgCardSwipeRecords ngCardSwipeRecords=new NgCardSwipeRecords(); ngCardSwipeRecords.setCardNumber(cardNumber);//卡号 @@ -382,14 +382,13 @@ public class DeviceOtherMsgConsumer { ngCardSwipeRecords.setAreaCode(areaCode);//区域号 ngCardSwipeRecords.setCardSwipeType(1);//关阀 ngCardSwipeRecords.setCardSwipeTime(DateUtils.getNowDate());//刷卡时间 - if(cardInfo!=null && cardInfo.getUserId()!=null){ - ngCardSwipeRecords.setUserId(cardInfo.getUserId());//用户id - } - if(cardInfo!=null && cardInfo.getUserName()!=null){ - ngCardSwipeRecords.setUserName(cardInfo.getUserName());//用户名称 - } - flag=ngCardSwipeRecordsMapper.insertNgCardSwipeRecords(ngCardSwipeRecords); - if(flag<1) + + // ngCardSwipeRecords.setUserId(cardList.get(0).getUserId());//用户id + + // ngCardSwipeRecords.setUserName(cardList.get(0).getUserName());//用户名称 + + int flag1=ngCardSwipeRecordsMapper.insertNgCardSwipeRecords(ngCardSwipeRecords); + if(flag1<1) { log.error("设备{}关阀刷卡记录添加失败",serialNumber); } @@ -447,6 +446,7 @@ public class DeviceOtherMsgConsumer { } otherMsgHandler.messageHandler(bo); }catch (Exception e){ + e.printStackTrace(); log.error("=>主题:{}设备消息:{}处理出错:{}",topic,new String(data), e.getMessage()); } } @@ -534,15 +534,19 @@ public class DeviceOtherMsgConsumer { * 处理刷卡上报查询报文 */ private void cardReportHandler(Long productId,String serialNumber,JSONObject dataObj){ + System.err.println("收到查询报文"); JSONObject data = dataObj.getJSONObject("data"); //解析消息 String cardId=data.getStr("cardId");//卡号 + System.err.println("卡号:"+cardId); String areaCode=data.getStr("areaCode");//区域码 + System.err.println("区域码:"+areaCode); //先回应代表平台收到了来自设备的查询报文 Map reply=new HashMap<>(); reply.put("pakSn",dataObj.getInt("pakSn")); + System.err.println("包号" + dataObj.getInt("pakSn")); //默认没有充值的订单 - reply.put("cmd",400); + reply.put("code",400); Map dataValue=new HashMap<>(); reply.put("msg",""); @@ -555,22 +559,26 @@ public class DeviceOtherMsgConsumer { .list(); //如果有待充值的订单则需要下发充值信息,如果有多条需要下发的充值订单,需要合并充值金额为一条,且订单号取最近的一条 if(!orderList.isEmpty()){ + System.err.println("amount:"+orderList.get(0).getAmount().doubleValue()); //合并订单充值金额 - BigDecimal investBalance=null; - for(int i=0;i