Browse Source

真实流水号生成

master
han\hanst 7 months ago
parent
commit
aec92ee0e2
  1. 8
      src/main/java/com/gaotao/modules/base/entity/ReportLabelList.java
  2. 52
      src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java

8
src/main/java/com/gaotao/modules/base/entity/ReportLabelList.java

@ -23,7 +23,7 @@ public class ReportLabelList {
private Integer itemNo;
private String barcodeType;
private Boolean showContent;
private String showPic;
private String showElement;
private Boolean showMainSeq;
private String seqName;
private Boolean isChecked;
@ -34,10 +34,10 @@ public class ReportLabelList {
private Integer digits;
@TableField(exist = false)
private Integer step;
// 数据类型相关字段
private String dataType;
// 日期类型处理字段
private String dateExtractType;
private String firstWeekDate;
@ -46,7 +46,7 @@ public class ReportLabelList {
private String dateSeparator;
private String yearDigits;
private String monthDayDigits;
// 字符串类型处理字段
private String stringProcessType;
private Integer substringStartLength;

52
src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java

@ -47,15 +47,14 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
List<ReportLabelList> processedElements = new ArrayList<>();
for (ReportLabelList element : elements) {
ReportLabelList processedElement = processElementData(element, dataMap);
// 如果是图片元素且被设置为不显示则跳过该元素
if (("image".equals(element.getType()) || "picture".equals(element.getType()))
// 如果元素被设置为不显示则跳过该元素
if (("onecode".equals(element.getType()) || "qrcode".equals(element.getType())
|| "text".equals(element.getType()) || "pic".equals(element.getType()))
&& processedElement.getData().isEmpty()
&& BigDecimal.ZERO.equals(processedElement.getWidth())) {
log.debug("跳过不显示的图片元素: type={}, showPic={}", element.getType(), element.getShowPic());
log.debug("跳过不显示的元素: type={}, showElement={}", element.getType(), element.getShowElement());
continue;
}
processedElements.add(processedElement);
}
@ -75,9 +74,10 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
log.debug("处理元素数据: type={}, originalData={}", element.getType(), originalData);
// 处理图片元素的显示控制
if ("pic".equals(element.getType())) {
if (!shouldShowPicture(element, dataMap)) {
log.debug("根据showPic设置,隐藏图片元素: showPic={}", element.getShowPic());
if ("onecode".equals(element.getType()) || "qrcode".equals(element.getType())
|| "text".equals(element.getType()) || "pic".equals(element.getType())) {
if (!shouldShow(element, dataMap)) {
log.debug("根据showElement设置,隐藏元素: showElement={}", element.getShowElement());
// 返回null或设置特殊标记表示不显示该元素
processedElement.setData("");
processedElement.setWidth(BigDecimal.ZERO);
@ -558,37 +558,37 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
/**
* 判断是否应该显示图片
* 根据showPic设置和数据源中的字段值进行判断
* showPic格式: "fieldName=value"如果数据源中fieldName的值等于value则不显示图片
* 根据showElement设置和数据源中的字段值进行判断
* showElement格式: "fieldName=value"如果数据源中fieldName的值等于value则不显示图片
*
* @param element 图片元素
* @param dataMap 数据源映射
* @return true表示显示图片false表示不显示图片
*/
private boolean shouldShowPicture(ReportLabelList element, Map<String, Object> dataMap) {
String showPic = element.getShowPic();
private boolean shouldShow(ReportLabelList element, Map<String, Object> dataMap) {
String showElement = element.getShowElement();
// 如果showPic为空或null默认显示图片
if (showPic == null || showPic.trim().isEmpty()) {
log.debug("showPic为空,默认显示图片");
// 如果showElement为空或null默认显示图片
if (showElement == null || showElement.trim().isEmpty()) {
log.debug("showElement为空,默认显示图片");
return true;
}
// 如果showPic"true""Y"显示图片
if ("true".equalsIgnoreCase(showPic.trim()) || "Y".equalsIgnoreCase(showPic.trim())) {
log.debug("showPic设置为显示: {}", showPic);
// 如果showElement"true""Y"显示图片
if ("true".equalsIgnoreCase(showElement.trim()) || "Y".equalsIgnoreCase(showElement.trim())) {
log.debug("showElement设置为显示: {}", showElement);
return true;
}
// 如果showPic"false""N"不显示图片
if ("false".equalsIgnoreCase(showPic.trim()) || "N".equalsIgnoreCase(showPic.trim())) {
log.debug("showPic设置为不显示: {}", showPic);
// 如果showElement"false""N"不显示图片
if ("false".equalsIgnoreCase(showElement.trim()) || "N".equalsIgnoreCase(showElement.trim())) {
log.debug("showElement设置为不显示: {}", showElement);
return false;
}
// 解析showPic格式: "fieldName=value"
if (showPic.contains("=")) {
String[] parts = showPic.split("=", 2);
// 解析showElement格式: "fieldName=value"
if (showElement.contains("=")) {
String[] parts = showElement.split("=", 2);
if (parts.length == 2) {
String fieldName = parts[0].trim();
String expectedValue = parts[1].trim();
@ -611,7 +611,7 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
}
// 其他情况默认显示图片
log.debug("showPic格式无法识别,默认显示图片: {}", showPic);
log.debug("showElement格式无法识别,默认显示图片: {}", showElement);
return true;
}
@ -635,7 +635,7 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
copy.setItemNo(original.getItemNo());
copy.setBarcodeType(original.getBarcodeType());
copy.setShowContent(original.getShowContent());
copy.setShowPic(original.getShowPic());
copy.setShowElement(original.getShowElement());
copy.setShowMainSeq(original.getShowMainSeq());
copy.setSeqName(original.getSeqName());
copy.setIsChecked(original.getIsChecked());

Loading…
Cancel
Save