From fafd3ad8d3398c29aa1c763bf661ed478e04fc14 Mon Sep 17 00:00:00 2001 From: mi9688 Date: Tue, 17 Dec 2024 19:53:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/domain/AjaxResultPro.java | 20 ++++----- .../consumer/DeviceOtherMsgConsumer.java | 1 - .../DeviceReportInfoController.java | 12 ++++- .../controller/printer/PrinterController.java | 1 - .../yilianyun/GenerateQRCodeImage.java | 1 - .../sse/DeviceReportSSEController.java | 45 +++++++++++++++++++ .../fastbee/iot/domain/DeviceReportInfo.java | 18 +++++++- .../iot/service/IDeviceReportInfoService.java | 2 + .../impl/DeviceReportInfoServiceImpl.java | 32 +++++++++---- .../mapper/iot/DeviceReportInfoMapper.xml | 7 ++- 10 files changed, 113 insertions(+), 26 deletions(-) diff --git a/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResultPro.java b/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResultPro.java index 5aeb1f4..9db28d7 100644 --- a/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResultPro.java +++ b/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResultPro.java @@ -103,16 +103,16 @@ public class AjaxResultPro extends HashMap return new AjaxResultPro(HttpStatus.SUCCESS, "操作成功", data,total); } - /** - * 返回成功消息 - * - * @param msg 返回内容 - * @return 成功消息 - */ - public static AjaxResultPro success(String msg) - { - return AjaxResultPro.success(msg, null); - } +// /** +// * 返回成功消息 +// * +// * @param msg 返回内容 +// * @return 成功消息 +// */ +// public static AjaxResultPro success(String msg) +// { +// return AjaxResultPro.success(msg, null); +// } /** * 返回成功消息 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 3e91011..d79bf79 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 @@ -35,7 +35,6 @@ public class DeviceOtherMsgConsumer { String serialNumber=bo.getSerialNumber();//设备序列号 Long productId;//产品id - Long packetId;//包号 byte[] data = bo.getData();//数据 String topic=bo.getTopicName();//主题 diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/DeviceReportInfoController.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/DeviceReportInfoController.java index 8871953..c9a4f8b 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/DeviceReportInfoController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/DeviceReportInfoController.java @@ -28,7 +28,7 @@ import com.fastbee.common.core.page.TableDataInfo; * 设备上电审核前上报的基础信息Controller * * @author kerwincui - * @date 2024-12-05 + * @date 2024-12-05 */ @RestController @RequestMapping("/iot/device/report/info") @@ -107,4 +107,14 @@ public class DeviceReportInfoController extends BaseController { return toAjax(deviceReportInfoService.deleteDeviceReportInfoByIds(ids)); } + + /** + * 批量更新状态为已打印 + */ + @PreAuthorize("@ss.hasPermi('iot:info:edit')") + @PutMapping("/updateStatus") + @ApiOperation("批量更新状态") + public AjaxResult updateStatus(@RequestBody List deviceReportInfos){ + return toAjax(deviceReportInfoService.updateDeviceReportStatus(deviceReportInfos)); + } } diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/PrinterController.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/PrinterController.java index 14b7c47..cc24ec4 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/PrinterController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/PrinterController.java @@ -46,7 +46,6 @@ public class PrinterController extends BaseController { printerService.imagePrint(imageUrl); Thread.sleep(200); } - return AjaxResult.success(); } /** diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/yilianyun/GenerateQRCodeImage.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/yilianyun/GenerateQRCodeImage.java index 838ffb6..fa55c6d 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/yilianyun/GenerateQRCodeImage.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/printer/yilianyun/GenerateQRCodeImage.java @@ -74,7 +74,6 @@ public class GenerateQRCodeImage { FontMetrics fontMetrics = g2d.getFontMetrics(); - int textX = qrCodeWidth-5; // 问文本与二维码的水平间距 diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/sse/DeviceReportSSEController.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/sse/DeviceReportSSEController.java index c33a812..797ce4f 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/sse/DeviceReportSSEController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/sse/DeviceReportSSEController.java @@ -10,8 +10,14 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; +import java.time.LocalDate; import java.util.Map; +import java.util.Random; import java.util.concurrent.ConcurrentHashMap; + +/** + * 设备审核前上电基本信息 + */ @RestController @RequestMapping("/sse") @Slf4j @@ -37,6 +43,9 @@ public class DeviceReportSSEController extends BaseController { if(emitter==null){ return AjaxResultPro.error("审核员离线!请到管理后台打开设备初始化页面!"); } + //生成设备默认编号 +// reportInfo.setDeviceId("10086"); + String deviceNumber = generateDeviceNumber(); emitter.send(JSONUtil.toJsonStr(Message.builder().event(2).content("新的消息").data(reportInfo).build())); return AjaxResultPro.success(); }catch (Exception e){ @@ -72,4 +81,40 @@ public class DeviceReportSSEController extends BaseController { emitter.send(JSONUtil.toJsonStr(Message.builder().event(2).content("新的消息").data(deviceReportInfo).build())); } } + + + + + + /** + * 生成当前批次的设备编码 + */ + @GetMapping("/device/init/deviceNumber") + public AjaxResultPro getDeviceNumber() { + return AjaxResultPro.success(generateDeviceNumber()); + } + + + + + /** + * 根据给定规则生成当前批次的起始设备编号 + * @return 生成的设备编号字符串 + */ + public String generateDeviceNumber() { + StringBuilder deviceNumber = new StringBuilder(); + // 添加固定的第一个字符'H' + deviceNumber.append("H"); + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + int year = currentDate.getYear(); + int month = currentDate.getMonthValue(); + // 根据年份确定对应的字符,以2024年对应'A'为起始,依次往后按字母顺序 + char yearChar = (char) ('A' + (year - 2024)); + deviceNumber.append(yearChar); + // 月份转换为两位字符串格式,不足两位前面补0 + String monthStr = String.format("%02d", month); + deviceNumber.append(monthStr); + return deviceNumber.toString()+"00001"; + } } diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/domain/DeviceReportInfo.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/domain/DeviceReportInfo.java index b238437..1d1cbd4 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/domain/DeviceReportInfo.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/domain/DeviceReportInfo.java @@ -1,15 +1,17 @@ package com.fastbee.iot.domain; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; + import lombok.Data; import lombok.EqualsAndHashCode; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.fastbee.common.annotation.Excel; import com.fastbee.common.core.domain.BaseEntity; +import java.util.Date; + /** * 设备上电审核前上报的基础信息对象 iot_device_report_info * @@ -136,4 +138,16 @@ public class DeviceReportInfo extends BaseEntity @Excel(name = "状态:0未审核,1已审核,2已打印") @ApiModelProperty("状态:0未审核,1已审核,2已打印") private Integer status; + + /** 上电时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "上电时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("上电时间") + private Date powersTime; + + //----------------------------------------------------------业务字段----------------------------------------------------------- + /** 是否自动审核 */ + private Boolean autoReview ; + + } diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IDeviceReportInfoService.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IDeviceReportInfoService.java index 1ed3dae..32fb2cc 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IDeviceReportInfoService.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IDeviceReportInfoService.java @@ -58,4 +58,6 @@ public interface IDeviceReportInfoService * @return 结果 */ public int deleteDeviceReportInfoById(Long id); + + boolean updateDeviceReportStatus(List deviceReportInfo); } diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/DeviceReportInfoServiceImpl.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/DeviceReportInfoServiceImpl.java index 28f7c68..c249b0d 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/DeviceReportInfoServiceImpl.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/DeviceReportInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.fastbee.iot.service.impl; +import java.time.LocalDate; import java.util.List; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; @@ -23,9 +24,6 @@ public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService private DeviceReportInfoMapper deviceReportInfoMapper; - - - /** * 查询设备上电审核前上报的基础信息 * @@ -47,7 +45,11 @@ public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService @Override public List selectDeviceReportInfoList(DeviceReportInfo deviceReportInfo) { - return deviceReportInfoMapper.selectDeviceReportInfoList(deviceReportInfo); + List deviceReportInfos = deviceReportInfoMapper.selectDeviceReportInfoList(deviceReportInfo); + //按照时间由近到远进行排序 + deviceReportInfos.sort((o1, o2) -> o2.getPowersTime().compareTo(o1.getPowersTime())); + + return deviceReportInfos; } /** @@ -62,17 +64,22 @@ public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService //设备编码查重 List list = new LambdaQueryChainWrapper<>(deviceReportInfoMapper) .select(DeviceReportInfo::getSerialNumber,DeviceReportInfo::getImei) - .eq(DeviceReportInfo::getSerialNumber, deviceReportInfo.getSerialNumber()) - .or() +// .eq(DeviceReportInfo::getSerialNumber, deviceReportInfo.getSerialNumber()) +// .or() .eq(DeviceReportInfo::getImei, deviceReportInfo.getImei()) .list(); - System.err.println("查重:"+list); +// System.err.println("查重:"+list); if (!list.isEmpty()) { if (list.get(0).getImei().equals(deviceReportInfo.getImei())) { throw new ServiceException("IMEI号重复!"); - } else if (list.get(0).getSerialNumber().equals(deviceReportInfo.getSerialNumber())) { - throw new ServiceException("设备编号重复!"); } +// else if (list.get(0).getSerialNumber().equals(deviceReportInfo.getSerialNumber())) { +// throw new ServiceException("设备编号重复!"); +// } + } + //处理自动审核 + if(deviceReportInfo.getAutoReview()!=null&&deviceReportInfo.getAutoReview()){ + deviceReportInfo.setStatus(2);//修改状态为已审核 } return deviceReportInfoMapper.insertDeviceReportInfo(deviceReportInfo); } @@ -112,4 +119,11 @@ public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService { return deviceReportInfoMapper.deleteDeviceReportInfoById(id); } + + @Override + public boolean updateDeviceReportStatus(List deviceReportInfo) { + return false; + } + + } diff --git a/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/DeviceReportInfoMapper.xml b/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/DeviceReportInfoMapper.xml index 40f00f2..ccc8462 100644 --- a/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/DeviceReportInfoMapper.xml +++ b/fastbee-service/fastbee-iot-service/src/main/resources/mapper/iot/DeviceReportInfoMapper.xml @@ -28,10 +28,11 @@ + - select id, imei, iccid, mcu_id, bsp_type, lte_type, mcu_type, mcu_fw, lte_fw, lcd_manufacturer, voice_manufacturer, fram_model, replace_manufacturer, test_record, batch_number, serial_number, qr_code, name, lcd_manufacturer_name, voice_manufacturer_name, replace_manufacturer_name, device_id, status from iot_device_report_info + select id, imei, iccid, mcu_id, bsp_type, lte_type, mcu_type, mcu_fw, lte_fw, lcd_manufacturer, voice_manufacturer, fram_model, replace_manufacturer, test_record, batch_number, serial_number, qr_code, name, lcd_manufacturer_name, voice_manufacturer_name, replace_manufacturer_name, device_id, status, powers_time from iot_device_report_info @@ -92,6 +94,7 @@ replace_manufacturer_name, device_id, status, + powers_time, #{imei}, @@ -116,6 +119,7 @@ #{replaceManufacturerName}, #{deviceId}, #{status}, + #{powersTime}, @@ -144,6 +148,7 @@ replace_manufacturer_name = #{replaceManufacturerName}, device_id = #{deviceId}, status = #{status}, + powers_time = #{powersTime}, where id = #{id}