From 43532a272d1a683e692fefa76d9fe7bb7150cfc9 Mon Sep 17 00:00:00 2001 From: zelian_wu Date: Mon, 29 Apr 2024 18:18:19 +0800 Subject: [PATCH] 2024-04-29 --- .../code/entity/CodeDrawingDetail.java | 22 ++++ .../mapper/CodeConditionDetailMapper.java | 3 +- .../service/impl/CodeDrawingServiceImpl.java | 103 ++++++++++++++++-- .../mapper/code/CodeConditionDetailMapper.xml | 3 + 4 files changed, 119 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/spring/modules/code/entity/CodeDrawingDetail.java diff --git a/src/main/java/com/spring/modules/code/entity/CodeDrawingDetail.java b/src/main/java/com/spring/modules/code/entity/CodeDrawingDetail.java new file mode 100644 index 00000000..9078bfc8 --- /dev/null +++ b/src/main/java/com/spring/modules/code/entity/CodeDrawingDetail.java @@ -0,0 +1,22 @@ +package com.spring.modules.code.entity; + + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +//@TableName("code_drawing_detail") +public class CodeDrawingDetail { + + private String site; + + private Integer itemNo; + + private String drawingNo; + + private String itemType; + + private String itemValue; + + private String itemLabel; +} diff --git a/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java b/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java index 159e17bd..630a3595 100644 --- a/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java +++ b/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java @@ -24,5 +24,6 @@ public interface CodeConditionDetailMapper extends BaseMapper searchCodeDrawingList(CodeDrawingVo codeDrawing) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -102,8 +110,15 @@ public class CodeDrawingServiceImpl extends ServiceImpl details = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { CodeItemDefVo codeItem = list.get(i); + CodeDrawingDetail detail = new CodeDrawingDetail(); + detail.setSite(codeItem.getSite()); + detail.setItemNo(codeItem.getItemNo()); + detail.setItemType(codeItem.getItemType()); if (i > 0 && codeItem.getPostfix().equals(Constant.SYSTEM_ACTIVE_YES)){ // 添加分隔符号 currentShortcode.append(separator); @@ -120,19 +135,37 @@ public class CodeDrawingServiceImpl extends ServiceImpl list,String value,String separator) { + if (codeItemDefVo.getSeqNoType().equals("全局")){ + return null; + } + // 所有/指定 + if (codeItemDefVo.getSeqNoType().equals("所有元素")){ + return value+"|%"; + } + if (codeItemDefVo.getSeqNoType().equals("指定元素")){ + // 获得 指定元素列表 + Map map = codeSeqNoGenerateRuleService.lambdaQuery() + .eq(CodeSeqNoGenerateRule::getSite, codeItemDefVo.getSite()) + .eq(CodeSeqNoGenerateRule::getItemNo, codeItemDefVo.getItemNo()) + .list().stream().collect(Collectors.toMap(CodeSeqNoGenerateRule::getRelatedItemNo, codeSeqNoGenerateRule -> codeSeqNoGenerateRule)); + StringBuilder sql = new StringBuilder(); + for (int i = 0; i < list.size(); i++) { + CodeItemDefVo itemDefVo = list.get(i); + if (itemDefVo.getItemNo().equals(codeItemDefVo.getItemNo())){ + continue; + } + if (i > 0 && itemDefVo.getPostfix().equals(Constant.SYSTEM_ACTIVE_YES)){ + // 添加分隔符号 + sql.append(separator); + } + if (Objects.nonNull(map.get(itemDefVo.getItemNo()))){ + if (itemDefVo.getItemType().equals("流水号")){ + sql.append("|").append(itemDefVo.getValue()).append("|"); + }else { + sql.append("{").append(itemDefVo.getValue()).append("}"); + } + continue; + } + if (itemDefVo.getItemType().equals("流水号")){ + sql.append("|").append("%").append("|"); + }else { + sql.append("{").append("%").append("}"); + } + } + sql.append("|%"); + return sql.toString(); + } + return null; + } } diff --git a/src/main/resources/mapper/code/CodeConditionDetailMapper.xml b/src/main/resources/mapper/code/CodeConditionDetailMapper.xml index 7ba5f8d5..f3ce0ed2 100644 --- a/src/main/resources/mapper/code/CodeConditionDetailMapper.xml +++ b/src/main/resources/mapper/code/CodeConditionDetailMapper.xml @@ -124,5 +124,8 @@