diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java
index 29aa8725..23888d19 100644
--- a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java
+++ b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java
@@ -19,6 +19,7 @@ import com.jsh.erp.service.unit.UnitService;
import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.BaseResponseInfo;
import com.jsh.erp.utils.ExcelUtils;
+import com.jsh.erp.utils.PinYinUtil;
import com.jsh.erp.utils.StringUtil;
import jxl.Sheet;
import jxl.Workbook;
@@ -626,6 +627,8 @@ public class MaterialService {
m.setModel(model);
m.setColor(color);
m.setBrand(brand);
+ //通过名称生成助记码
+ m.setMnemonic(PinYinUtil.getFirstLettersLo(name));
Long categoryId = materialCategoryService.getCategoryIdByName(categoryName);
if(null!=categoryId){
m.setCategoryId(categoryId);
diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/PinYinUtil.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/PinYinUtil.java
new file mode 100644
index 00000000..4588b369
--- /dev/null
+++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/PinYinUtil.java
@@ -0,0 +1,52 @@
+package com.jsh.erp.utils;
+
+import lombok.extern.slf4j.Slf4j;
+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;
+
+/**
+ * @Author jishenghua
+ * @Date 2024-01-08 23:03
+ */
+@Slf4j
+public class PinYinUtil {
+
+ public static String getFirstLettersLo(String ChineseLanguage) {
+ return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.LOWERCASE);
+ }
+
+ public static String getFirstLetters(String chineseLanguage, HanyuPinyinCaseType caseType) {
+ char[] cl_chars = chineseLanguage.trim().toCharArray();
+ StringBuilder pinyin = new StringBuilder();
+ HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+ // 输出拼音全部大写
+ defaultFormat.setCaseType(caseType);
+ // 不带声调
+ defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+ try {
+ for (char cl_char : cl_chars) {
+ String str = String.valueOf(cl_char);
+ if (str.matches("[\u4e00-\u9fa5]+")) {
+ // 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
+ pinyin.append(PinyinHelper.toHanyuPinyinStringArray(cl_char, defaultFormat)[0].substring(0, 1));
+ } else if (str.matches("[0-9]+")) {
+ // 如果字符是数字,取数字
+ pinyin.append(cl_char);
+ } else if (str.matches("[a-zA-Z]+")) {
+ // 如果字符是字母,取字母
+ pinyin.append(cl_char);
+ } else {
+ // 否则不转换
+ //如果是标点符号的话,带着
+ pinyin.append(cl_char);
+ }
+ }
+ } catch (BadHanyuPinyinOutputFormatCombination e) {
+ log.error(chineseLanguage + "转拼音失败!", e);
+ }
+ return pinyin.toString();
+ }
+}
diff --git a/jshERP-web/src/views/material/modules/MaterialModal.vue b/jshERP-web/src/views/material/modules/MaterialModal.vue
index 5e5228af..4e6c1a3f 100644
--- a/jshERP-web/src/views/material/modules/MaterialModal.vue
+++ b/jshERP-web/src/views/material/modules/MaterialModal.vue
@@ -78,8 +78,8 @@
-
+ data-intro="助记码自动生成,助记码是商品名称的首字母缩写">
+