产品名称转拼音首字母

pro
郑明梁 2 years ago
parent 46a981040a
commit 90f1b6c334

@ -1,5 +1,6 @@
package com.glxp.api.entity.basic;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
@ -81,6 +82,8 @@ public class UdiProductEntity {
private Boolean useMuti; //是否多次使用
private Long relSupId;
private Integer zdcfsycs;
private String pinyinInitial;
public Boolean getAllowNoBatch() {

@ -6,11 +6,17 @@ import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.idc.service.impl.IdcServiceImpl;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.util.HardWareUtils;
import com.glxp.api.util.PinyinUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -24,6 +30,7 @@ public class UdiProductServiceImpl implements UdiProductService {
@Resource
UdiProductDao udiProductDao;
private static final Logger logger = LoggerFactory.getLogger(UdiProductServiceImpl.class);
@Override
public List<UdiProductEntity> filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest) {
@ -99,6 +106,16 @@ public class UdiProductServiceImpl implements UdiProductService {
public boolean insertUdiInfo(UdiProductEntity udiProductEntity) {
if (udiProductEntity.getId() == null) {
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
if(StrUtil.isNotBlank(udiProductEntity.getCpmctymc())){
try {
String pinyin= PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc());
udiProductEntity.setPinyinInitial(pinyin);
}catch (Exception e){
logger.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}
}
}
return udiProductDao.insertUdiInfo(udiProductEntity);
}

@ -0,0 +1,57 @@
package com.glxp.api.util;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
*/
public class PinyinUtils {
//汉字转换位汉语拼音首字母,英文字符不变
public static String converterToFirstSpell(String chines) {
chines = cleanChar(chines);
String pinyinName = "";
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinName += nameChar[i];
}
}
return pinyinName;
}
/**
* 便
* @param chines
* @return
*/
public static String cleanChar(String chines) {
chines = chines.replaceAll("[\\p{Punct}\\p{Space}]+", ""); // 正则去掉所有字符操作
// 正则表达式去掉所有中文的特殊符号
String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~@#¥%……&*()——+|{}<>《》【】‘;:”“’。,、?ⅢγⅣβⅡⅠ×π]";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(chines);
chines = matcher.replaceAll("").trim();
return chines;
}
}

@ -5,11 +5,18 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.service.basic.impl.UdiProductServiceImpl;
import com.glxp.api.util.PinyinUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
public class UdiInfoUtil {
private static final Logger logger = LoggerFactory.getLogger(UdiInfoUtil.class);
public static UdiProductEntity initUdiInfoEntity(UdiProductEntity udiProductEntity) {
if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhph()) && "否".equals(udiProductEntity.getScbssfbhph())) {
@ -40,6 +47,17 @@ public class UdiInfoUtil {
if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) {
udiProductEntity.setAllowNoExpire(true);
}
//名字转拼音
if(StrUtil.isNotBlank(udiProductEntity.getCpmctymc())){
try {
String pinyin= PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc());
udiProductEntity.setPinyinInitial(pinyin);
}catch (Exception e){
logger.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}
}
}
}

@ -172,7 +172,7 @@
allowNoBatch, allowNoExpire,
allowNoProduct, allowNoSerial, spmc, cplx, hchzsb, cpdls, price, basicPrductRemak1, basicPrductRemak2,
basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7,
basicPrductRemak8)
basicPrductRemak8,pinyinInitial)
values (#{id}, #{uuid},
#{originUuid},
#{nameCode},
@ -223,7 +223,8 @@
#{basicPrductRemak5},
#{basicPrductRemak6},
#{basicPrductRemak7},
#{basicPrductRemak8})
#{basicPrductRemak8},
#{pinyinInitial})
</insert>
<insert id="insertUdiInfos" keyProperty="id" parameterType="java.util.List">
@ -235,7 +236,7 @@
allowNoBatch, allowNoExpire,
allowNoProduct, allowNoSerial, spmc, cplx, hchzsb, cpdls, price, basicPrductRemak1, basicPrductRemak2,
basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7,
basicPrductRemak8)
basicPrductRemak8,pinyinInitial)
values
<foreach collection="udiInfoEntities" item="item" index="index"
@ -291,7 +292,8 @@
#{item.basicPrductRemak5},
#{item.basicPrductRemak6},
#{item.basicPrductRemak7},
#{item.basicPrductRemak8})
#{item.basicPrductRemak8},
#{pinyinInitial})
</foreach>
</insert>

Loading…
Cancel
Save