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;
+ }
+
/**
* 查询塔基检测配置列表
*