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; /*** * åè§åoid */ @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; } 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; } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/×Ö·û¼¯.json
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ { "codeRuleId": "1729702446013485056", "chartValue": "abckzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "chartType": "charset" } 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"; 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"; } 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); } } 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 æä¸¾å¯¹è±¡ï¼ä¸å卿¶åè¿ånull */ public static CodeRuleCharacterEnum forValue(String value) { for (CodeRuleCharacterEnum wenum : CodeRuleCharacterEnum.values()) { if (wenum.getValue().equalsIgnoreCase(value)) { return wenum; } } return null; } } 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>{ } 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; } 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()); } } 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; } } 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>