diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/device/mapper/DevTowerProjectConfigMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/device/mapper/DevTowerProjectConfigMapper.java index fd62f5d5..8c6eb05b 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/device/mapper/DevTowerProjectConfigMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/device/mapper/DevTowerProjectConfigMapper.java @@ -21,6 +21,14 @@ public interface DevTowerProjectConfigMapper */ public DevTowerProjectConfig selectDevTowerProjectConfigById(Long id); + /** + * 根据设备ID查询塔基检测配置 + * + * @param deviceId 设备ID + * @return 塔基检测配置 + */ + public DevTowerProjectConfig selectDevTowerProjectConfigByDeviceId(Long deviceId); + /** * 查询塔基检测配置列表 * diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/device/DevTowerProjectConfigMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/device/DevTowerProjectConfigMapper.xml index f0caa0aa..f5aa619e 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/device/DevTowerProjectConfigMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/device/DevTowerProjectConfigMapper.xml @@ -96,6 +96,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dtpc.id = #{id} and dtpc.is_del=0 + + insert into dev_tower_project_config diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProMobileAttendanceDataMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProMobileAttendanceDataMapper.xml index 077306fc..20ddb9c1 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProMobileAttendanceDataMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProMobileAttendanceDataMapper.xml @@ -61,9 +61,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and pma.latitude = #{latitude} and pma.att_date = #{attDate} and pma.att_img = #{attImg} - and pma.is_del = #{isDel} + and pma.work_area_id = #{isDel} and pma.state = #{state} - and wa.work_area_id = #{workAreaId} + and pma.is_del = #{workAreaId} and psu.user_name like concat('%', #{userName}, '%') and psu.user_phone like concat('%', #{userPhone}, '%') and date(pma.att_date) >= date(#{startDate}) @@ -88,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) psu ON pma.user_id = psu.user_id left join sys_dict_data dic1 on psu.`craft_type`=dic1.`dict_value` and dic1.`dict_type`='pro_craft_type' left join sys_dict_data dic2 on psu.`craft_post`=dic2.`dict_value` and dic2.`dict_type`='pro_craft_post' - WHERE pma.is_del = 0 AND pma.in_out = 'in' AND pma.work_area_id = #{workAreaId} and pma.project_id = #{projectId} + WHERE pma.work_area_id = 0 AND pma.in_out = 'in' AND pma.is_del = #{workAreaId} and pma.project_id = #{projectId} AND DATE(pma.att_date) = CURDATE() ) ranked_data WHERE rn = 1 diff --git a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/LedDrawService.java b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/LedDrawService.java index ae207ee9..11b84a95 100644 --- a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/LedDrawService.java +++ b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/LedDrawService.java @@ -105,10 +105,13 @@ public class LedDrawService { programFile.addArea(area); // 添加图片页 if (imagePaths != null && imagePaths.length > 0) { + logger.info("图片数量2={},sn={},x:0,y:17,w:{},h:{}",imagePaths.length,ledScreen.getDeviceSn(),ledScreen.getWidth().intValue(), + ledScreen.getHeight().intValue()-32); area = new TextCaptionBxArea(0, 17, ledScreen.getWidth().intValue(), - ledScreen.getHeight().intValue()-16, profile); + ledScreen.getHeight().intValue()-32, profile); for (String imagePath : imagePaths) { ImageFileBxPage imagePage = new ImageFileBxPage(imagePath); + logger.info("图片路径:{}", imagePath); area.addPage(imagePage); } programFile.addArea(area); @@ -118,7 +121,7 @@ public class LedDrawService { onbon.bx06.area.DateTimeBxArea timeBxArea = new onbon.bx06.area.DateTimeBxArea(0, ledScreen.getHeight().intValue()-16, ledScreen.getWidth().intValue(), 16, profile); timeBxArea.setMultiline(false); timeBxArea.setDateStyle(DateStyle.YYYY_MM_DD_3); - timeBxArea.setTimeStyle(TimeStyle.HH12_MM_SS_1); + timeBxArea.setTimeStyle(TimeStyle.HH_MM_SS_1); timeBxArea.setWeekStyle(WeekStyle.CHINESE); programFile.addArea(timeBxArea); diff --git a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/impl/LedScreenServiceImpl.java b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/impl/LedScreenServiceImpl.java index 181351a6..f4afe44c 100644 --- a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/impl/LedScreenServiceImpl.java +++ b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/service/impl/LedScreenServiceImpl.java @@ -10,7 +10,8 @@ import com.yanzhu.manage.mapper.ProMobileAttendanceDataMapper; import com.yanzhu.system.domain.SysLedscreen; import com.yanzhu.system.domain.SysWorkArea; import com.yanzhu.system.mapper.SysLedscreenMapper; -import com.yanzhu.system.mapper.SysWorkAreaMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,11 +19,14 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.ConcurrentHashMap; + import java.util.stream.Collectors; + @Service public class LedScreenServiceImpl implements ILedScreenService { + private static final Logger log = LoggerFactory.getLogger(LedScreenServiceImpl.class); @Autowired private SysLedscreenMapper sysLedscreenMapper; @@ -154,7 +158,11 @@ public class LedScreenServiceImpl implements ILedScreenService { where.setWorkAreaId(ledScreen.getWorkareaId()); where.setProjectId(ledScreen.getProjectId()); // 可以添加更多筛选条件,如最近考勤时间等 - return proMobileAttendanceDataMapper.selectProMobileAttendanceDataListByWorkArea(where); + List list=proMobileAttendanceDataMapper.selectProMobileAttendanceDataListByWorkArea(where); + //打印日志 + log.info("根据工区ID获取考勤数据: {}条, 工区ID: {}, 项目ID: {}", list.size(), ledScreen.getWorkareaId(), ledScreen.getProjectId()); + //根据屏的DeviceNo为目录创建图片路径 + return list; // return Arrays.stream("1,2,3,4,5,6,7,8,9,10".split(",")).map(id -> { // ProMobileAttendanceData d=new ProMobileAttendanceData(); // d.setId(Long.parseLong(id)); diff --git a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/Uni2LedDrawer.java b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/Uni2LedDrawer.java index b6ee11e7..3ce2b6e9 100644 --- a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/Uni2LedDrawer.java +++ b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/Uni2LedDrawer.java @@ -26,108 +26,117 @@ public class Uni2LedDrawer extends BaseDrawer{ int screenHeight=ledScreen.getHeight().intValue(); - int dataLine = Math.max(3, (screenHeight-32)/16-1); // 确保dataLine至少为1 + int dataLine = Math.max(3, (screenHeight-32)/18-1); // 确保dataLine至少为1 List imagePaths = new ArrayList<>(); //根据dataLine来对list进行分页,调用绘制方法 if (!attendanceDataList.isEmpty() && dataLine > 0) { // 检查列表不为空且dataLine大于0 for (int i = 0; i < attendanceDataList.size(); i += dataLine) { List subList = attendanceDataList.subList(i, Math.min(i + dataLine, attendanceDataList.size())); String imagePath=ledSavePath + "image" + (i / dataLine + 1) + ".bmp"; - drawImage(ledScreen, subList, imagePath); + drawImage(ledScreen, subList, imagePath, dataLine); imagePaths.add(imagePath); } } - imagePaths.clear(); return imagePaths.toArray(new String[0]); } - private static void drawImage(SysLedscreen ledScreen, List subList, String imagePath) { + private static void drawImage(SysLedscreen ledScreen, List subList, String imagePath, int maxRows) { int screenWidth=ledScreen.getWidth().intValue(); - int lineHeight = 16; + int screenHeight=ledScreen.getHeight().intValue(); + int lineHeight = 18; int headerHeight = lineHeight; int rowHeight = lineHeight; - int margin = 3; + int margin = 2; int drawWidth = screenWidth - 2 * margin; - int totalHeight = headerHeight + subList.size() * rowHeight; + int imageHeight = screenHeight - 32; + int totalHeight = imageHeight - 2 * margin; int imageWidth = screenWidth; - int imageHeight = totalHeight + 2 * margin; - // 创建4位16色的BMP图片 - BufferedImage image = create4BitBmpImage(imageWidth, imageHeight); + BufferedImage image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_BYTE_BINARY); Graphics2D g2d = image.createGraphics(); try { - // 设置背景色为黑色 + g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED); + g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE); + g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED); + g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); + g2d.setColor(Color.BLACK); g2d.fillRect(0, 0, imageWidth, imageHeight); - // 设置字体 - Font font = new Font("宋体", Font.PLAIN, 12); + Font font = new Font("宋体", Font.BOLD, 14); g2d.setFont(font); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); - // 设置文字颜色为白色 g2d.setColor(Color.WHITE); - // 表头:姓名 班组 进入时间 String[] headers = {"姓名", "班组", "进入时间"}; int[] columnWidths = {drawWidth / 3, drawWidth / 3, drawWidth / 3}; - // 绘制表头 int x = margin; for (int i = 0; i < headers.length; i++) { - g2d.drawString(headers[i], x + 2, margin + headerHeight - 4); + g2d.drawString(headers[i], x + 2, margin + headerHeight - 2); x += columnWidths[i]; } - // 绘制表头下划线 g2d.setColor(Color.WHITE); g2d.drawLine(margin, margin + headerHeight, margin + drawWidth, margin + headerHeight); - // 绘制数据行 g2d.setColor(Color.WHITE); - for (int i = 0; i < subList.size(); i++) { - ProMobileAttendanceData data = subList.get(i); + for (int i = 0; i < maxRows; i++) { int rowY = margin + headerHeight + i * rowHeight; + int lineY = rowY + rowHeight; - // 获取数据 - String userName = data.getUserName() != null ? data.getUserName() : ""; - String subDeptGroupName = data.getSubDeptGroupName() != null ? data.getSubDeptGroupName() : ""; - - // 格式化考勤时间 - String attTime = ""; - if (data.getAttDate() != null) { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); - attTime = sdf.format(data.getAttDate()); + if (lineY > margin + totalHeight) { + lineY = margin + totalHeight; } - // 绘制数据行 - x = margin; - g2d.drawString(userName, x + 2, rowY + rowHeight - 4); - x += columnWidths[0]; - g2d.drawString(subDeptGroupName, x + 2, rowY + rowHeight - 4); - x += columnWidths[1]; - g2d.drawString(attTime, x + 2, rowY + rowHeight - 4); + if (i < subList.size()) { + ProMobileAttendanceData data = subList.get(i); + + String userName = data.getUserName() != null ? data.getUserName() : ""; + String subDeptGroupName = data.getSubDeptGroupName() != null ? data.getSubDeptGroupName() : ""; + + String attTime = ""; + if (data.getAttDate() != null) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + attTime = sdf.format(data.getAttDate()); + } + + x = margin; + g2d.drawString(userName, x + 2, rowY + rowHeight - 4); + x += columnWidths[0]; + g2d.drawString(subDeptGroupName, x + 2, rowY + rowHeight - 4); + x += columnWidths[1]; + g2d.drawString(attTime, x + 2, rowY + rowHeight - 4); + } else { + x = margin; + g2d.drawString("", x + 2, rowY + rowHeight - 4); + x += columnWidths[0]; + g2d.drawString("", x + 2, rowY + rowHeight - 4); + x += columnWidths[1]; + g2d.drawString("", x + 2, rowY + rowHeight - 4); + } - // 绘制行下划线 g2d.setColor(Color.WHITE); - g2d.drawLine(margin, rowY + rowHeight, margin + drawWidth, rowY + rowHeight); + g2d.drawLine(margin, lineY, margin + drawWidth, lineY); } - // 绘制垂直分割线 g2d.setColor(Color.WHITE); int x1 = margin + columnWidths[0]; int x2 = margin + columnWidths[0] + columnWidths[1]; g2d.drawLine(x1, margin, x1, margin + totalHeight); g2d.drawLine(x2, margin, x2, margin + totalHeight); - // 绘制表格外边框 g2d.setColor(Color.WHITE); g2d.drawRect(margin, margin, drawWidth, totalHeight); - // 保存图片为BMP格式 File outputFile = new File(imagePath); ImageIO.write(image, "bmp", outputFile); diff --git a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/UniLedDrawer.java b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/UniLedDrawer.java index e243b821..274ba60c 100644 --- a/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/UniLedDrawer.java +++ b/yanzhu-modules/yanzhu-led/src/main/java/com/yanzhu/led/utils/UniLedDrawer.java @@ -27,111 +27,120 @@ public class UniLedDrawer extends BaseDrawer{ int screenHeight=ledScreen.getHeight().intValue(); - int dataLine = Math.max(3, (screenHeight-32)/16-1); // 确保dataLine至少为1 + int dataLine = Math.max(3, (screenHeight-32)/18-1); // 确保dataLine至少为1 List imagePaths = new ArrayList<>(); //根据dataLine来对list进行分页,调用绘制方法 if (!attendanceDataList.isEmpty() && dataLine > 0) { // 检查列表不为空且dataLine大于0 for (int i = 0; i < attendanceDataList.size(); i += dataLine) { List subList = attendanceDataList.subList(i, Math.min(i + dataLine, attendanceDataList.size())); String imagePath=ledSavePath + "image" + (i / dataLine + 1) + ".bmp"; - drawImage(ledScreen, subList, imagePath); + drawImage(ledScreen, subList, imagePath, dataLine); imagePaths.add(imagePath); } } - imagePaths.clear(); return imagePaths.toArray(new String[0]); } - private static void drawImage(SysLedscreen ledScreen, List subList, String imagePath) { + private static void drawImage(SysLedscreen ledScreen, List subList, String imagePath, int maxRows) { int screenWidth=ledScreen.getWidth().intValue(); - int lineHeight = 16; + int screenHeight=ledScreen.getHeight().intValue(); + int lineHeight = 18; int headerHeight = lineHeight; int rowHeight = lineHeight; - int margin = 3; + int margin = 2; int drawWidth = screenWidth - 2 * margin; - int totalHeight = headerHeight + subList.size() * rowHeight; - + int imageHeight = screenHeight - 32; + int totalHeight = imageHeight - 2 * margin; + int imageWidth = screenWidth; - int imageHeight = totalHeight + 2 * margin; - - // 创建4位16色的BMP图片 - BufferedImage image = create4BitBmpImage(imageWidth, imageHeight); + + BufferedImage image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_BYTE_BINARY); Graphics2D g2d = image.createGraphics(); - + try { - // 设置背景色为黑色 + g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED); + g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE); + g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED); + g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); + g2d.setColor(Color.BLACK); g2d.fillRect(0, 0, imageWidth, imageHeight); - - // 设置字体 - Font font = new Font("宋体", Font.PLAIN, 12); + + Font font = new Font("宋体", Font.BOLD, 14); g2d.setFont(font); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - - // 设置文字颜色为白色 + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); + g2d.setColor(Color.WHITE); - - // 表头:姓名 班组 进入时间 + String[] headers = {"姓名", "班组", "进入时间"}; int[] columnWidths = {drawWidth / 3, drawWidth / 3, drawWidth / 3}; - - // 绘制表头 + int x = margin; for (int i = 0; i < headers.length; i++) { - g2d.drawString(headers[i], x + 2, margin + headerHeight - 4); + g2d.drawString(headers[i], x + 2, margin + headerHeight - 2); x += columnWidths[i]; } - - // 绘制表头下划线 + g2d.setColor(Color.WHITE); g2d.drawLine(margin, margin + headerHeight, margin + drawWidth, margin + headerHeight); - - // 绘制数据行 + g2d.setColor(Color.WHITE); - for (int i = 0; i < subList.size(); i++) { - ProMobileAttendanceData data = subList.get(i); + for (int i = 0; i < maxRows; i++) { int rowY = margin + headerHeight + i * rowHeight; - - // 获取数据 - String userName = data.getUserName() != null ? data.getUserName() : ""; - String subDeptGroupName = data.getSubDeptGroupName() != null ? data.getSubDeptGroupName() : ""; - - // 格式化考勤时间 - String attTime = ""; - if (data.getAttDate() != null) { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); - attTime = sdf.format(data.getAttDate()); + int lineY = rowY + rowHeight; + + if (lineY > margin + totalHeight) { + lineY = margin + totalHeight; } - - // 绘制数据行 - x = margin; - g2d.drawString(userName, x + 2, rowY + rowHeight - 4); - x += columnWidths[0]; - g2d.drawString(subDeptGroupName, x + 2, rowY + rowHeight - 4); - x += columnWidths[1]; - g2d.drawString(attTime, x + 2, rowY + rowHeight - 4); - - // 绘制行下划线 + + if (i < subList.size()) { + ProMobileAttendanceData data = subList.get(i); + + String userName = data.getUserName() != null ? data.getUserName() : ""; + String subDeptGroupName = data.getSubDeptGroupName() != null ? data.getSubDeptGroupName() : ""; + + String attTime = ""; + if (data.getAttDate() != null) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + attTime = sdf.format(data.getAttDate()); + } + + x = margin; + g2d.drawString(userName, x + 2, rowY + rowHeight - 4); + x += columnWidths[0]; + g2d.drawString(subDeptGroupName, x + 2, rowY + rowHeight - 4); + x += columnWidths[1]; + g2d.drawString(attTime, x + 2, rowY + rowHeight - 4); + } else { + x = margin; + g2d.drawString("", x + 2, rowY + rowHeight - 4); + x += columnWidths[0]; + g2d.drawString("", x + 2, rowY + rowHeight - 4); + x += columnWidths[1]; + g2d.drawString("", x + 2, rowY + rowHeight - 4); + } + g2d.setColor(Color.WHITE); - g2d.drawLine(margin, rowY + rowHeight, margin + drawWidth, rowY + rowHeight); + g2d.drawLine(margin, lineY, margin + drawWidth, lineY); } - - // 绘制垂直分割线 + g2d.setColor(Color.WHITE); int x1 = margin + columnWidths[0]; int x2 = margin + columnWidths[0] + columnWidths[1]; g2d.drawLine(x1, margin, x1, margin + totalHeight); g2d.drawLine(x2, margin, x2, margin + totalHeight); - - // 绘制表格外边框 + g2d.setColor(Color.WHITE); g2d.drawRect(margin, margin, drawWidth, totalHeight); - - // 保存图片为BMP格式 + File outputFile = new File(imagePath); ImageIO.write(image, "bmp", outputFile); - + } catch (IOException e) { e.printStackTrace(); } finally { diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java index 108f438e..92e96d09 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/device/TowerCraneApiController.java @@ -404,11 +404,11 @@ public class TowerCraneApiController { @PostMapping("/tyLinux/run/push") public AjaxResult tyLinuxPushRunData(@RequestBody @Valid TyTowerLinuxRunReqVO req) { log.info("desApi.towerCrane.tyLinux.run.push...{}",req.getEid()); - DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + DevTowerProjectConfig config = devTowerProjectConfigService.selectDevTowerProjectConfigByDeviceId(req.getEid().longValue()); if (config == null) { throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); } - String deviceKey = req.getEid().toString(); + String deviceKey = config.getDeviceSn(); DevTowerDataLimit devTowerDataLimit = staticLimitMap.get(deviceKey); if(devTowerDataLimit==null){ DevTowerDataLimit devTowerDataLimitQuery = new DevTowerDataLimit(); @@ -456,11 +456,11 @@ public class TowerCraneApiController { @PostMapping("/v2_ty/run/push") public AjaxResult tyPushRunData(@RequestBody @Valid TyTowerRunReqVO req) { log.info("desApi.towerCrane.v2_ty.run.push...{}",req.getEid()); - DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + DevTowerProjectConfig config = devTowerProjectConfigService.selectDevTowerProjectConfigByDeviceId(req.getEid().longValue()); if (config == null) { throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); } - String deviceKey = req.getEid().toString(); + String deviceKey = config.getDeviceSn(); DevTowerDataLimit devTowerDataLimit = staticLimitMap.get(deviceKey); if(devTowerDataLimit==null){ DevTowerDataLimit devTowerDataLimitQuery = new DevTowerDataLimit(); @@ -508,7 +508,7 @@ public class TowerCraneApiController { @PostMapping("/tyLinux/round/push") public AjaxResult tyLinuxPushRoundData(@RequestBody @Valid TyTowerLinuxRoundReqVO req) { log.info("desApi.towerCrane.tyLinux.round.push...{}",req.getEid()); - DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + DevTowerProjectConfig config = devTowerProjectConfigService.selectDevTowerProjectConfigByDeviceId(req.getEid().longValue()); if (config == null) { throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); } @@ -548,7 +548,7 @@ public class TowerCraneApiController { @PostMapping("/v2_ty/round/push") public AjaxResult tyPushRoundData(@RequestBody @Valid TyTowerRoundReqVO req) { log.info("desApi.towerCrane.v2_ty.round.push...{}",req.getEid()); - DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + DevTowerProjectConfig config = devTowerProjectConfigService.selectDevTowerProjectConfigByDeviceId(req.getEid().longValue()); if (config == null) { throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); } @@ -588,7 +588,7 @@ public class TowerCraneApiController { @PostMapping("/tyLinux/warning/push") public AjaxResult tyLinuxPushWarningData(@RequestBody @Valid TyTowerLinuxWarningReqVO req) { log.info("desApi.towerCrane.tyLinux.warning.push...{}",req.getEid()); - DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + DevTowerProjectConfig config = devTowerProjectConfigService.selectDevTowerProjectConfigByDeviceId(req.getEid().longValue()); if (config == null) { throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); } @@ -629,7 +629,7 @@ public class TowerCraneApiController { @PostMapping("/v2_ty/warning/push") public AjaxResult tyPushWarningData(@RequestBody @Valid TyTowerWarningReqVO req) { log.info("desApi.towerCrane.v2_ty.warning.push...{}",req.getEid()); - DevTowerProjectConfig config = redisService.getCacheObject(YANZHU_DEVICE_TOWER + req.getEid()); + DevTowerProjectConfig config = devTowerProjectConfigService.selectDevTowerProjectConfigByDeviceId(req.getEid().longValue()); if (config == null) { throw new ServiceException(HttpStatusEnum.ERROR.getInfo(), HttpStatusEnum.ERROR.getCode()); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IDevTowerProjectConfigService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IDevTowerProjectConfigService.java index af866a07..7982ba74 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IDevTowerProjectConfigService.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IDevTowerProjectConfigService.java @@ -26,6 +26,14 @@ public interface IDevTowerProjectConfigService */ public DevTowerProjectConfig selectDevTowerProjectConfigById(Long id); + /** + * 根据设备ID查询塔基检测配置 + * + * @param deviceId 设备ID + * @return 塔基检测配置 + */ + public DevTowerProjectConfig selectDevTowerProjectConfigByDeviceId(Long deviceId); + /** * 查询塔基检测配置列表 * diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/DevTowerProjectConfigServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/DevTowerProjectConfigServiceImpl.java index 968a71c1..35e47f42 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/DevTowerProjectConfigServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/DevTowerProjectConfigServiceImpl.java @@ -73,6 +73,21 @@ public class DevTowerProjectConfigServiceImpl implements IDevTowerProjectConfigS return devTowerProjectConfigMapper.selectDevTowerProjectConfigById(id); } + /** + * 根据设备ID查询塔基检测配置 + * + * @param deviceId 设备ID + * @return 塔基检测配置 + */ + @Override + public DevTowerProjectConfig selectDevTowerProjectConfigByDeviceId(Long deviceId) + { + DevTowerProjectConfig config = new DevTowerProjectConfig(); + config.setId(deviceId); + List configList = devTowerProjectConfigMapper.selectDevTowerProjectConfigList(config); + return CollectionUtils.isNotEmpty(configList) ? configList.get(0) : null; + } + /** * 查询塔基检测配置列表 *