瀏覽代碼

员工返回 加入首字母

java110 6 年之前
父節點
當前提交
ac2adda42a

+ 16 - 0
Api/src/main/java/com/java110/api/listener/user/QueryStaffServiceListener.java

@@ -9,6 +9,7 @@ import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.PinYinUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
@@ -67,6 +68,7 @@ public class QueryStaffServiceListener extends AbstractServiceApiListener {
 
         if (count > 0) {
             staffs = BeanConvertUtil.covertBeanList(userInnerServiceSMOImpl.getStaffs(userDto), ApiStaffDataVo.class);
+            refreshInitials(staffs);
         } else {
             staffs = new ArrayList<>();
         }
@@ -82,6 +84,20 @@ public class QueryStaffServiceListener extends AbstractServiceApiListener {
         context.setResponseEntity(responseEntity);
     }
 
+    /**
+     * 刷入首字母
+     * @param staffs
+     */
+    private void refreshInitials(List<ApiStaffDataVo> staffs) {
+
+        for(ApiStaffDataVo staffDataVo : staffs){
+            if(StringUtil.isEmpty(staffDataVo.getName())){
+                continue;
+            }
+            staffDataVo.setInitials(PinYinUtil.getFirstSpell(staffDataVo.getName()).toUpperCase().charAt(0)+"");
+        }
+    }
+
     /**
      * 查询用户信息
      * @param tmpObj

+ 9 - 0
java110-bean/src/main/java/com/java110/vo/api/staff/ApiStaffDataVo.java

@@ -7,6 +7,7 @@ public class ApiStaffDataVo implements Serializable {
     private String userId;
 
     private String userName;
+    private String initials;
     private String name;
 
     private String tel;
@@ -134,4 +135,12 @@ public class ApiStaffDataVo implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
+    public String getInitials() {
+        return initials;
+    }
+
+    public void setInitials(String initials) {
+        this.initials = initials;
+    }
 }

+ 5 - 0
java110-utils/pom.xml

@@ -148,5 +148,10 @@
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 95 - 0
java110-utils/src/main/java/com/java110/utils/util/PinYinUtil.java

@@ -0,0 +1,95 @@
+package com.java110.utils.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.HanyuPinyinVCharType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+
+/**
+ * 拼音工具类
+ */
+public class PinYinUtil {
+
+    /**
+     * 将字符串中的中文转化为拼音,其他字符不变
+     *
+     * @param inputString
+     * @return
+     */
+    public static String getPingYin(String inputString) {
+        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+        format.setVCharType(HanyuPinyinVCharType.WITH_V);
+
+        char[] input = inputString.trim().toCharArray();
+        String output = "";
+
+        try {
+            for (int i = 0; i < input.length; i++) {
+                if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
+                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
+                    output += temp[0];
+                } else
+                    output += java.lang.Character.toString(input[i]);
+            }
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            e.printStackTrace();
+        }
+        return output;
+    }
+    /**
+     * 获取汉字串拼音首字母,英文字符不变
+     * @param chinese 汉字串
+     * @return 汉语拼音首字母
+     */
+    public static String getFirstSpell(String chinese) {
+        StringBuffer pybf = new StringBuffer();
+        char[] arr = chinese.toCharArray();
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+        for (int i = 0; i < arr.length; i++) {
+            if (arr[i] > 128) {
+                try {
+                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
+                    if (temp != null) {
+                        pybf.append(temp[0].charAt(0));
+                    }
+                } catch (BadHanyuPinyinOutputFormatCombination e) {
+                    e.printStackTrace();
+                }
+            } else {
+                pybf.append(arr[i]);
+            }
+        }
+        return pybf.toString().replaceAll("\\W", "").trim();
+    }
+    /**
+     * 获取汉字串拼音,英文字符不变
+     * @param chinese 汉字串
+     * @return 汉语拼音
+     */
+    public static String getFullSpell(String chinese) {
+        StringBuffer pybf = new StringBuffer();
+        char[] arr = chinese.toCharArray();
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+        for (int i = 0; i < arr.length; i++) {
+            if (arr[i] > 128) {
+                try {
+                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
+                } catch (BadHanyuPinyinOutputFormatCombination e) {
+                    e.printStackTrace();
+                }
+            } else {
+                pybf.append(arr[i]);
+            }
+        }
+        return pybf.toString();
+    }
+}

+ 6 - 1
pom.xml

@@ -82,6 +82,7 @@
         <spring.version>5.0.8.RELEASE</spring.version>
         <zookeeper.version>3.4.14</zookeeper.version>
         <swagger.version>2.5.0</swagger.version>
+        <pinyin4j.version>2.5.0</pinyin4j.version>
     </properties>
 
     <dependencyManagement>
@@ -101,7 +102,11 @@
                 <version>${spring.version}</version>
             </dependency>
 
-
+            <dependency>
+                <groupId>com.belerweb</groupId>
+                <artifactId>pinyin4j</artifactId>
+                <version>${pinyin4j.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>fastjson</artifactId>