Browse Source

真实数据预览

master
han\hanst 5 months ago
parent
commit
79044f17b0
  1. 56
      src/main/java/com/gaotao/modules/base/controller/LabelSettingController.java
  2. 32
      src/main/java/com/gaotao/modules/base/service/Impl/ReportLabelListServiceImpl.java
  3. 8
      src/main/java/com/gaotao/modules/base/service/ReportLabelListService.java

56
src/main/java/com/gaotao/modules/base/controller/LabelSettingController.java

@ -826,62 +826,6 @@ public class LabelSettingController extends AbstractController {
}
}
/**
* @description: 预览标签将数据源字段替换为真实数据
* @author Kiro
* @date 2025/1/24
* @version 1.0
*/
@PostMapping("previewLabelWithData")
public R previewLabelWithData(@RequestBody Map<String, Object> params) {
try {
log.info("收到标签预览请求: {}", params);
String reportId = (String) params.get("reportId");
if (reportId == null || reportId.trim().isEmpty()) {
log.warn("标签ID为空");
return R.error("标签ID不能为空");
}
@SuppressWarnings("unchecked")
Map<String, Object> dataMap = (Map<String, Object>) params.get("dataMap");
if (dataMap == null) {
dataMap = new java.util.HashMap<>();
}
String previewType = (String) params.get("previewType");
if (previewType == null) {
previewType = "elements";
}
log.info("处理标签预览: reportId={}, previewType={}, dataMap={}", reportId, previewType, dataMap);
if ("zpl".equals(previewType)) {
// 返回ZPL代码预览
log.info("生成ZPL代码预览");
String zplCode = reportLabelListService.previewLabelWithData(reportId, dataMap);
log.info("ZPL代码生成成功,长度: {}", zplCode != null ? zplCode.length() : 0);
return R.ok()
.put("code", 200)
.put("msg", "ZPL代码生成成功")
.put("data", zplCode);
} else {
// 返回处理后的元素列表默认
log.info("生成元素预览");
List<ReportLabelList> processedElements = reportLabelListService.getProcessedElements(reportId, dataMap);
log.info("元素处理成功,元素数: {}", processedElements != null ? processedElements.size() : 0);
return R.ok()
.put("code", 200)
.put("msg", "标签元素处理成功")
.put("data", processedElements);
}
} catch (Exception e) {
log.error("标签预览失败: {}", e.getMessage(), e);
return R.error("标签预览失败: " + e.getMessage());
}
}
/**
* @description: 使用真实数据预览标签从数据库视图获取数据
* @author Kiro

32
src/main/java/com/gaotao/modules/base/service/Impl/ReportLabelListServiceImpl.java

@ -471,38 +471,6 @@ public class ReportLabelListServiceImpl extends ServiceImpl<ReportLabelListMappe
Thread.sleep(500); // 等待打印完成
}
@Override
public String previewLabelWithData(String reportId, Map<String, Object> dataMap) {
try {
// 获取标签元素
List<ReportLabelList> elements = getZplElements(reportId);
if (elements.isEmpty()) {
throw new RuntimeException("未找到标签元素");
}
// 获取标签设置信息
LabelSettingData labelSettingData = new LabelSettingData();
labelSettingData.setLabelNo(reportId);
List<LabelSettingData> labelSettingDataList = baseService.getLabelSettingList(labelSettingData);
if (labelSettingDataList.isEmpty()) {
throw new RuntimeException("未找到对应的标签设置");
}
LabelSettingData labelSetting = labelSettingDataList.get(0);
// 使用新的ZPL生成服务
String zplCode = labelDataProcessorService.generateZplWithData(elements, dataMap, labelSetting);
log.info("标签预览生成成功,reportId: {}, 数据字段数: {}", reportId, dataMap.size());
return zplCode;
} catch (Exception e) {
log.error("标签预览失败: reportId={}, error={}", reportId, e.getMessage(), e);
throw new RuntimeException("标签预览失败: " + e.getMessage());
}
}
@Override
public List<ReportLabelList> getProcessedElements(String reportId, Map<String, Object> dataMap) {
try {

8
src/main/java/com/gaotao/modules/base/service/ReportLabelListService.java

@ -16,14 +16,6 @@ public interface ReportLabelListService extends IService<ReportLabelList> {
void printLabel(PrintLabelRequest printRequest);
/**
* 预览标签将数据源字段替换为真实数据
* @param reportId 标签ID
* @param dataMap 数据源映射key为字段名value为实际值
* @return 预览用的ZPL代码
*/
String previewLabelWithData(String reportId, Map<String, Object> dataMap);
/**
* 获取处理后的标签元素用于前端预览
* @param reportId 标签ID

Loading…
Cancel
Save