From 373210bde9db79e6cf69ed23b433711d218af846 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 30 十一月 2023 18:32:26 +0800
Subject: [PATCH] 字符集功能添加
---
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeRuleCharacterVO.java | 35 +++
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleCharacterService.java | 39 +++
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/字符集.json | 5
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java | 5
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java | 113 +++++++++++
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleCharacterWapper.java | 73 +++++++
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeRuleCharacterMapper.xml | 36 +++
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java | 5
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeRuleCharacterEnum.java | 135 +++++++++++++
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeRuleCharacterMapper.java | 7
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleCharacterController.java | 59 +++++
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRuleCharacter.java | 53 +++++
12 files changed, 565 insertions(+), 0 deletions(-)
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRuleCharacter.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRuleCharacter.java
new file mode 100644
index 0000000..a161963
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRuleCharacter.java
@@ -0,0 +1,53 @@
+package com.vci.ubcs.code.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.constant.CodeTableNameConstant;
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄
+ *
+ * @author xj
+ * @date 2023-11-30
+ */
+@TableName(CodeTableNameConstant.PL_CODE_RULE_CHARACTER)
+@ApiModel(value = "CodeRuleCharacter瀵硅薄", description = "缂栫爜瑙勫垯瀛楃闆�")
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class CodeRuleCharacter extends BaseModel{
+ /**
+ * 绂佹淇敼杩欎釜鍊�
+ */
+ private static final long serialVersionUID = 4615707119066298941L;
+ /***
+ * 鍙樿鍒檕id
+ */
+ @NotBlank(message = "瑙勫垯鐨勪富閿笉鑳戒负绌�")
+ @ApiModelProperty(value = "瑙勫垯鐨勪富閿笉鑳戒负绌�")
+ private String codeRuleId;
+ /**
+ * 瀛楃闆�
+ */
+ @ApiModelProperty(value = "瀛楃闆�")
+ private String chartValue;
+ /***
+ * 瀛楃绫诲瀷
+ */
+ @ApiModelProperty(value = "瀛楃绫诲瀷")
+ @NotBlank(message = "瀛楃绫诲瀷涓嶈兘涓虹┖")
+ private String chartType;
+
+ /***
+ * 瀛楃绫诲瀷鏄剧ず鍊�
+ */
+ @ApiModelProperty(value = "瀛楃绫诲瀷鏄剧ず鍊�")
+ @TableField(exist = false)
+ private String chartTypeText;
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeRuleCharacterVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeRuleCharacterVO.java
new file mode 100644
index 0000000..74ce347
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeRuleCharacterVO.java
@@ -0,0 +1,35 @@
+package com.vci.ubcs.code.vo.pagemodel;
+
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import lombok.Data;
+
+/**
+ * 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄
+ *
+ * @author xj
+ * @date 2023-11-30
+ */
+@Data
+public class CodeRuleCharacterVO extends BaseModel {
+ /**
+ * 绂佹淇敼杩欎釜鍊�
+ */
+ private static final long serialVersionUID = 4615707119066298949L;
+ /***
+ * 瑙勫垯oid
+ */
+ private String codeRuleId;
+ /**
+ * 瀛楃闆�
+ */
+ private String chartValue;
+ /***
+ * 瀛楃绫诲瀷
+ */
+ private String chartType;
+ /***
+ * 瀛楃绫诲瀷鏄剧ず鍊�
+ */
+ private String chartTypeText;
+
+}
diff --git "a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\345\255\227\347\254\246\351\233\206.json" "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\345\255\227\347\254\246\351\233\206.json"
new file mode 100644
index 0000000..2f0428d
--- /dev/null
+++ "b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/\345\255\227\347\254\246\351\233\206.json"
@@ -0,0 +1,5 @@
+{
+ "codeRuleId": "1729702446013485056",
+ "chartValue": "abckzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz",
+ "chartType": "charset"
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
index b227b64..74a8a3f 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
@@ -78,6 +78,11 @@
public static final String PL_CODE_RULE = "PL_CODE_RULE";
/**
+ * 缂栫爜瑙勫垯瀛楃闆�
+ */
+ public static final String PL_CODE_RULE_CHARACTER = "PL_CODE_RULE_CHARACTER";
+
+ /**
* 缂栫爜瑙勫垯鐨勬祦姘村��
*/
public static final String PL_CODE_SERIALVALUE = "PL_CODE_SERIALVALUE";
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java
index b6b2664..cb5d649 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java
@@ -80,4 +80,9 @@
* 绯荤粺鎺ュ彛绫诲瀷
*/
public static final String SYS_INTEGRATION_LOG_TYPE="sysIntegrationLogType";
+
+ /***
+ * 绯荤粺鎺ュ彛绫诲瀷
+ */
+ public static final String CODE_RULE_CHARACTER_TYPE="code_rule_character_type";
}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleCharacterController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleCharacterController.java
new file mode 100644
index 0000000..a7f08a7
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleCharacterController.java
@@ -0,0 +1,59 @@
+package com.vci.ubcs.code.controller;
+
+import com.vci.ubcs.code.service.ICodeRuleCharacterService;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleCharacterVO;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/***
+ * 瑙勫垯瀛楃闆嗛厤缃�
+ * @author xj
+ * @date 2023-11-30
+ */
+@RestController
+@RequestMapping("/codeRuleCharacterController")
+public class CodeRuleCharacterController {
+ @Resource
+ private ICodeRuleCharacterService iCodeRuleCharacterService;
+ /**
+ * 浣跨敤缂栫爜瑙勫垯oid鑾峰彇鏁版嵁
+ * @param codeRuleId 瑙勫垯oid
+ * @return 鏁版嵁鍐呭
+ */
+ @GetMapping("/list")
+ public R<List<Map<String,String>>> getDataByOid(@RequestParam("codeRuleId")String codeRuleId,@RequestParam("chartType")String chartType){
+ return R.data(iCodeRuleCharacterService.getDataByRuleId(codeRuleId,chartType));
+ }
+ /**
+ * 淇濆瓨瑙勫垯瀵硅薄
+ * @param codeRuleCharacterVO 瑙勫垯瀛楃瀵硅薄
+ * @return 鏁版嵁鍐呭
+ */
+ @PostMapping("/addSave")
+ public R addSave(@RequestBody CodeRuleCharacterVO codeRuleCharacterVO){
+ return iCodeRuleCharacterService.saveOrUpdate(codeRuleCharacterVO);
+ }
+ /**
+ * 淇敼瑙勫垯瀵硅薄
+ * @param codeRuleCharacterVO 瑙勫垯瀛楃瀵硅薄
+ * @return 鏁版嵁鍐呭
+ */
+ @PostMapping("/editSave")
+ public R editSave(@RequestBody CodeRuleCharacterVO codeRuleCharacterVO){
+ return iCodeRuleCharacterService.saveOrUpdate(codeRuleCharacterVO);
+ }
+
+ /**
+ * 淇敼瑙勫垯瀵硅薄
+ * @param codeRuleCharacterVO 瑙勫垯瀛楃瀵硅薄
+ * @return 鏁版嵁鍐呭
+ */
+ @PostMapping("/delete")
+ public R delete(@RequestBody CodeRuleCharacterVO codeRuleCharacterVO){
+ return iCodeRuleCharacterService.saveOrUpdate(codeRuleCharacterVO);
+ }
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeRuleCharacterEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeRuleCharacterEnum.java
new file mode 100644
index 0000000..e48ba2b
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeRuleCharacterEnum.java
@@ -0,0 +1,135 @@
+package com.vci.ubcs.code.enumpack;
+
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
+
+/**
+ * 缂栫爜瑙勫垯鐮佹瀛楃鎺у埗绫诲瀷
+ * @author weidy
+ * @date 2022-1-17
+ */
+@VciEnum(name = MdmEnumIdConstant.CODE_RULE_CHARACTER_TYPE,text = "缂栫爜瑙勫垯鐮佹瀛楃鎺у埗绫诲瀷",description = "")
+public enum CodeRuleCharacterEnum implements BaseEnum {
+ /**
+ * 鍙敤瀛楃闆�
+ */
+ CODE_RULE_CHARACTER_CHARSET("charset","鍙敤瀛楃闆�"),
+
+ /**
+ * 鍙敤瀛楃闆�
+ */
+ CODE_RULE_CHARACTER_FILLERCHAR("fillerChar","鍙敤瀛楃闆�"),
+
+ /**
+ * 琛ヤ綅瀛楃
+ */
+ CODE_RULE_CHARACTER_SEPARATOR("separator","琛ヤ綅瀛楃"),
+ /**
+ *鍓嶅悗缂�瀛楃
+ */
+ CODE_RULE_CHARACTER_PREFIX("prefix","鍓嶅悗缂�瀛楃");
+ /**
+ * 鏋氫妇鐨勫��
+ */
+ private String value;
+
+ /**
+ * 鏋氫妇鏄剧ず鏂囨湰
+ */
+ private String text;
+
+ /**
+ * 鑾峰彇鏋氫妇鍊�
+ *
+ * @return 鏋氫妇鍊�
+ */
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * 璁剧疆鏋氫妇鍊�
+ *
+ * @param value 鏋氫妇鍊�
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * 鑾峰彇鏋氫妇鏄剧ず鏂囨湰
+ *
+ * @return 鏄剧ず鏂囨湰
+ */
+ @Override
+ public String getText() {
+ return text;
+ }
+
+ /**
+ * 璁剧疆鏄剧ず鏂囨湰
+ *
+ * @param text 鏄剧ず鏂囨湰
+ */
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ /**
+ * 鏋勯�犲嚱鏁�
+ *
+ * @param value 鍊�
+ * @param text 鏄剧ず鏂囨湰
+ */
+ private CodeRuleCharacterEnum(String value, String text) {
+ this.value = value;
+ this.text = text;
+ }
+
+ /**
+ * 鏍规嵁鍚嶇О鑾峰彇瀵瑰簲鐨勬灇涓惧��
+ *
+ * @param text 鍚嶇О
+ * @return 鏋氫妇鍊�
+ */
+ public static String getValueByText(String text) {
+ for (CodeRuleCharacterEnum wenum : CodeRuleCharacterEnum.values()) {
+ if (wenum.getText().equalsIgnoreCase(text)) {
+ return wenum.getValue();
+ }
+ }
+ return "";
+ }
+
+ /**
+ * 鏍规嵁鏋氫妇鍊艰幏鍙栧悕绉�
+ *
+ * @param value 鏋氫妇鍊�
+ * @return 鍚嶇О
+ */
+ public static String getTextByValue(String value) {
+ for (CodeRuleCharacterEnum wenum : CodeRuleCharacterEnum.values()) {
+ if (wenum.getValue().equalsIgnoreCase(value)) {
+ return wenum.getText();
+ }
+ }
+ return "";
+ }
+
+ /**
+ * 鏍规嵁鏋氫妇鍊艰幏鍙栨灇涓惧璞�
+ *
+ * @param value 鏋氫妇鍊�
+ * @return 鏋氫妇瀵硅薄锛屼笉瀛樺湪鏃跺�欒繑鍥瀗ull
+ */
+ public static CodeRuleCharacterEnum forValue(String value) {
+ for (CodeRuleCharacterEnum wenum : CodeRuleCharacterEnum.values()) {
+ if (wenum.getValue().equalsIgnoreCase(value)) {
+ return wenum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeRuleCharacterMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeRuleCharacterMapper.java
new file mode 100644
index 0000000..164f486
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeRuleCharacterMapper.java
@@ -0,0 +1,7 @@
+package com.vci.ubcs.code.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.vci.ubcs.code.entity.CodeRuleCharacter;
+
+public interface CodeRuleCharacterMapper extends BaseMapper<CodeRuleCharacter>{
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleCharacterService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleCharacterService.java
new file mode 100644
index 0000000..f96aada
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleCharacterService.java
@@ -0,0 +1,39 @@
+package com.vci.ubcs.code.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.vci.ubcs.code.entity.CodeAllCode;
+import com.vci.ubcs.code.entity.CodeClassify;
+import com.vci.ubcs.code.entity.CodeResembleRule;
+import com.vci.ubcs.code.entity.CodeRuleCharacter;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleCharacterVO;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import org.springblade.core.tool.api.R;
+
+import java.util.List;
+import java.util.Map;
+
+/***
+ * 瑙勫垯瀛楃闆嗛厤缃�
+ * @author xj
+ * @date 2023-11-30
+ */
+public interface ICodeRuleCharacterService extends IService<CodeRuleCharacter> {
+
+ /**
+ * 浣跨敤缂栫爜瑙勫垯oid鑾峰彇鏁版嵁
+ * @param codeRuleId
+ * @param chartType
+ * @return
+ * @throws VciBaseException
+ */
+ List<Map<String,String>> getDataByRuleId(String codeRuleId,String chartType)throws VciBaseException;
+
+ /***
+ * 淇濆瓨缂栫爜瑙勫垯瀛楃闆�
+ * @param codeRuleCharacterVO
+ * @return
+ */
+ R saveOrUpdate(CodeRuleCharacterVO codeRuleCharacterVO)throws VciBaseException;
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java
new file mode 100644
index 0000000..aaabd6f
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java
@@ -0,0 +1,113 @@
+package com.vci.ubcs.code.service.impl;
+
+import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.base.Joiner;
+import com.vci.ubcs.code.entity.CodeRuleCharacter;
+import com.vci.ubcs.code.mapper.CodeRuleCharacterMapper;
+import com.vci.ubcs.code.service.ICodeRuleCharacterService;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleCharacterVO;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/***
+ * 缂栫爜瑙勫垯瀛楃闆嗘湇鍔�
+ * @author xj
+ * @date 2023-11-30
+ */
+@Service
+public class CodeRuleCharacterServiceImpl extends ServiceImpl<CodeRuleCharacterMapper, CodeRuleCharacter> implements ICodeRuleCharacterService {
+
+ @Autowired
+ private CodeRuleCharacterMapper codeRuleCharacterMapper;
+ /***
+ * 浣跨敤缂栫爜瑙勫垯oid鑾峰彇鏁版嵁
+ * @param codeRuleId
+ * @param chartType
+ * @return
+ * @throws VciBaseException
+ */
+ @Override
+ public List<Map<String, String>> getDataByRuleId(String codeRuleId,String chartType) throws VciBaseException {
+ List<Map<String,String>> charValueList=new ArrayList<>();
+ CodeRuleCharacter codeRuleCharacter=codeRuleCharacterMapper.selectOne(Wrappers.<CodeRuleCharacter>query().lambda().eq(CodeRuleCharacter::getCodeRuleId,codeRuleId).eq(CodeRuleCharacter::getChartType,chartType));
+ List<Character> characterList=codeRuleCharacter.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
+ for (int i = 0; i < characterList.size(); i += 15) {
+ final int startIndex = i;
+ final int endIndex = Math.min(i + 15, characterList.size());
+ List<Character> subList = characterList.subList(startIndex, endIndex);
+ Map<String, String> chartMap=new HashMap<>();
+ // 璋冪敤鎻掑叆鏁版嵁搴撶殑鏂规硶
+ for (int j=1;j<subList.size()+1;j++){
+ String characterValue=subList.get(j-1)==null?"":subList.get(j-1).toString();
+ chartMap.put(String.valueOf(j),String.valueOf(characterValue));
+ }
+ charValueList.add(chartMap);
+ }
+ return charValueList;
+ }
+ /***
+ * 瀛楃闆嗘暟鎹繚瀛�
+ * @param codeRuleCharacterVO
+ * @return
+ * @throws VciBaseException
+ */
+ @Override
+ public R saveOrUpdate(CodeRuleCharacterVO codeRuleCharacterVO) throws VciBaseException {
+ VciBaseUtil.alertNotNull(codeRuleCharacterVO.getCodeRuleId(),"缂栫爜瑙勫垯id",codeRuleCharacterVO.getChartType(),"瀛楃闆嗙被鍨�");
+ CodeRuleCharacter codeRuleCharacter=codeRuleCharacterMapper.selectOne(Wrappers.<CodeRuleCharacter>query().lambda().eq(CodeRuleCharacter::getCodeRuleId,codeRuleCharacterVO.getCodeRuleId()).eq(CodeRuleCharacter::getChartType,codeRuleCharacterVO.getChartType()));
+ if(codeRuleCharacter!=null&& StringUtils.isNotBlank(codeRuleCharacter.getOid())) {
+ List<Character> oldCharacterList = StringUtils.isBlank(codeRuleCharacter.getChartValue())?new ArrayList<>():codeRuleCharacter.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
+ List<Character> newCharacterList = StringUtils.isBlank(codeRuleCharacterVO.getChartValue())?new ArrayList<>():codeRuleCharacterVO.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
+ List<Character> intersectList = intersect(oldCharacterList, newCharacterList);
+ if (intersectList.size() > 0) {
+ String ss = Joiner.on(",").join(intersectList);
+ throw new VciBaseException("绯荤粺涓瓨鍦ㄧ浉搴旂殑瀛楃:銆�" + ss + "銆�");
+ }
+ List<Character> allCharacterList = union(oldCharacterList, newCharacterList);
+ String str = allCharacterList.stream().map(integer -> Func.isNotEmpty(integer)?integer.toString():"").collect(Collectors.joining());
+ codeRuleCharacter.setChartValue(str);
+ codeRuleCharacterMapper.updateById(codeRuleCharacter);
+ }else{
+ codeRuleCharacter=new CodeRuleCharacter();
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeRuleCharacter,"character");
+ codeRuleCharacter.setCodeRuleId(codeRuleCharacterVO.getCodeRuleId());
+ codeRuleCharacter.setChartType(codeRuleCharacterVO.getChartType());
+ codeRuleCharacter.setChartValue(codeRuleCharacterVO.getChartValue());
+ codeRuleCharacterMapper.insert(codeRuleCharacter);
+ }
+ return R.status(true);
+ }
+ /**
+ * 浜ら泦
+ * @param list1
+ * @param list2
+ * @return
+ */
+ private static List<Character> intersect(List<Character> list1, List<Character> list2) {
+ List<Character> intersect = list1.stream().filter(item -> list2.contains(item)).collect(Collectors.toList());
+ return intersect;
+ }
+
+ /**
+ * 骞堕泦锛堝幓閲嶏級
+ * @param list1
+ * @param list2
+ * @return
+ */
+ private static List<Character> union(List<Character> list1, List<Character> list2) {
+ list1.addAll(list2);
+ return list1.stream().distinct().collect(Collectors.toList());
+ }
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleCharacterWapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleCharacterWapper.java
new file mode 100644
index 0000000..70acd48
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleCharacterWapper.java
@@ -0,0 +1,73 @@
+package com.vci.ubcs.code.wrapper;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.vci.ubcs.code.entity.CodeRuleCharacter;
+import com.vci.ubcs.code.enumpack.CodeRuleCharacterEnum;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleCharacterVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 缂栫爜瀛楃鍖呰绫�,杩斿洖瑙嗗浘灞傛墍闇�鐨勫瓧娈�
+ * @author xj
+ * @date 2023-11-30
+ */
+public class CodeRuleCharacterWapper extends BaseEntityWrapper<CodeRuleCharacter, CodeRuleCharacterVO> {
+ public static CodeRuleCharacterWapper build() {
+ return new CodeRuleCharacterWapper();
+ }
+ @Override
+ public CodeRuleCharacterVO entityVO(CodeRuleCharacter entity) {
+ entity.setChartTypeText(CodeRuleCharacterEnum.getTextByValue(entity.getChartType()));
+ CodeRuleCharacterVO VO = Objects.requireNonNull(BeanUtil.copy(entity, CodeRuleCharacterVO.class));
+ return VO;
+ }
+
+ /***
+ * 鏁扮粍瀵硅薄杞崲
+ * @param entitys
+ * @return
+ */
+ public List<CodeRuleCharacterVO> entityVOs(Collection<CodeRuleCharacter> entitys) {
+ if(CollectionUtils.isEmpty(entitys)) {return new ArrayList<>();}
+ List<CodeRuleCharacterVO> vos=new ArrayList<>();
+ if(!CollectionUtils.isEmpty(entitys)) {
+ entitys.stream().forEach(vo -> {
+ vos.add(entityVO(vo));
+ });
+ }
+ return vos;
+ }
+
+
+ /***
+ * 鏁扮粍瀵硅薄杞崲
+ * @param vos
+ * @return
+ */
+ public List<CodeRuleCharacter> voentitys(Collection<CodeRuleCharacterVO> vos) {
+ if(CollectionUtils.isEmpty(vos)) {return new ArrayList<>();}
+ List<CodeRuleCharacter>entitys =new ArrayList<>();
+ if(!CollectionUtils.isEmpty(vos)) {
+ vos.stream().forEach(vo -> {
+ entitys.add(voentity(vo));
+ });
+ }
+ return entitys;
+ }
+
+ /***
+ * 鏁扮粍瀵硅薄杞崲
+ * @param vo
+ * @return
+ */
+ public CodeRuleCharacter voentity( CodeRuleCharacterVO vo) {
+ CodeRuleCharacter entity = Objects.requireNonNull(BeanUtil.copy(vo, CodeRuleCharacter.class));
+ return entity;
+ }
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeRuleCharacterMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeRuleCharacterMapper.xml
new file mode 100644
index 0000000..014cd51
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeRuleCharacterMapper.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vci.ubcs.code.mapper.CodeRuleCharacterMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="CodeResembleRuleResultMap" type="com.vci.ubcs.code.entity.CodeRuleCharacter">
+ <id property="oid" column="OID"/>
+ <result property="btmname" column="BTMNAME"/>
+ <result property="revisionOid" column="REVISIONOID"/>
+ <result property="nameOid" column="NAMEOID"/>
+ <result property="lastR" column="LASTR"/>
+ <result property="firstR" column="FIRSTR"/>
+ <result property="lastV" column="LASTV"/>
+ <result property="firstV" column="FIRSTV"/>
+ <result property="creator" column="CREATOR"/>
+ <result property="createTime" column="CREATETIME"/>
+ <result property="lastModifier" column="LASTMODIFIER"/>
+ <result property="lastModifyTime" column="LASTMODIFYTIME"/>
+ <result property="revisionRule" column="REVISIONVALUE"/>
+ <result property="versionRule" column="VISIONRULE"/>
+ <result property="revisionValue" column="REVISIONRULE"/>
+ <result property="versionValue" column="VERSIONVALUE"/>
+ <result property="revisionSeq" column="REVISIONSEQ"/>
+ <result property="versionSeq" column="VERSIONSEQ"/>
+ <result property="lctid" column="LCTID"/>
+ <result property="lcStatus" column="LCSTATUS"/>
+ <result property="ts" column="TS"/>
+ <result property="id" column="ID"/>
+ <result property="name" column="NAME"/>
+ <result property="description" column="DESCRIPTION"/>
+ <result property="owner" column="OWNER"/>
+ <result property="copyFromVersion" column="COPYFROMVERSION"/>
+ <result property="codeRuleId" column="CODERULEID"/>
+ <result property="chartValue" column="CHARTVALUE"/>
+ <result property="chartType" column="CHARTTYPE"/>
+ </resultMap>
+</mapper>
--
Gitblit v1.9.3