Quellcode durchsuchen

Merge branch 'dev' of zd_123/patient-co-management into dev

chenweida vor 7 Jahren
Ursprung
Commit
a3ebffebd3

+ 7 - 0
patient-co/patient-co-wlyy/pom.xml

@ -491,6 +491,13 @@
            <version>4.4.5</version>
        </dependency>
        <!--elasticsearch end-->
        <!--拼音https://mvnrepository.com/artifact/org.clojars.cbilson/pinyin4j-->
        <dependency>
            <groupId>org.clojars.cbilson</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.0</version>
        </dependency>
        <!--拼音https://mvnrepository.com/artifact/org.clojars.cbilson/pinyin4j end-->
    </dependencies>
    <build>
        <finalName>wlyy</finalName>

+ 74 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/team/AdminTeamService.java

@ -17,6 +17,7 @@ import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.patient.SignFamilyRenewDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.third.jw.JwSignService;
import com.yihu.wlyy.util.PinYinUtil;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.json.JSONArray;
@ -131,6 +132,79 @@ public class AdminTeamService extends BaseService {
        }
    }
    /**
     * 根据医生code返回所有团队的医生
     * (pc端im使用)改为字母拍讯
     * @author zd 2018-02-11
     * * @param doctor
     * @return
     */
    public Map<String,Object> getTeamMembersByDoctorCodeByAlpha(String doctor){
        String sql = "SELECT " +
                "   d.code" +
                "   ,d.name" +
                "   ,d.hospital" +
                "   ,d.hospital_name hospitalName" +
                "   ,d.dept_name deptName" +
                "   ,d.job_name jobName" +
                "   ,d.level" +
                "   ,d.sex" +
                "   ,d.photo" +
                "   ,d.expertise" +
                "   ,d.introduce" +
                "   ,t.id teamCode" +
                " FROM " +
                "   wlyy_admin_team_member m" +
                "   , wlyy_admin_team t" +
                "   , wlyy_doctor d" +
                "   ,(SELECT t1.id FROM wlyy_admin_team_member m1, wlyy_admin_team t1 WHERE m1.doctor_code = '"+doctor+"' AND t1.id = m1.team_id AND t1.available = true AND m1.available = true) te" +
                " WHERE " +
                "   t.id = m.team_id AND " +
                "   m.doctor_code = d.code AND " +
                "   t.id = te.id AND " +
                "   t.available = true AND " +
                "   m.available = true ";
        List<Map<String, Object>> doctors = jdbcTemplate.queryForList(sql);
        Map<String, Map<String,Object>> result = new HashMap<>();
        if(doctors!=null&&doctors.size()>0){
            for (Map<String, Object> map:doctors){
                String code = map.get("code").toString();
                if(result.containsKey(code)){
                    Map<String,Object> map2 = result.get(code);
                    JSONArray ja = (JSONArray) map2.get("teams");
                    ja.put(map.get("teamCode"));
                }else {
                    JSONArray ja = new JSONArray();
                    ja.put(map.get("teamCode"));
                    map.put("teams",ja);
                    result.put(code,map);
                }
            }
        }
        Map<String,Object>  map =  new LinkedHashMap <>();
        JSONObject resultJson = new JSONObject();
        String[] alphatables = {"a", "b", "c", "d", "e", "f", "g", "h", "i",
                "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
        if (result.size() > 0) {
            List<Map<String,Object>> list = Lists.newArrayList(result.values());
            for (String alpha : alphatables){
                List<Map<String,Object>> resultList = new ArrayList<>();
                for (Map<String,Object> one : list){
                    String name = String.valueOf(one.get("name"));
                    String firstSpell = PinYinUtil.getFirstSpell(name).substring(0,1);
                    if (alpha.equals(firstSpell)){
                        resultList.add(one);
                        map.put(alpha,resultList);
                    }
                }
            }
            return map;
        } else {
            return map;
        }
    }
    /**
     * 获取团队数量。
     *

+ 62 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/PinYinUtil.java

@ -0,0 +1,62 @@
package com.yihu.wlyy.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;
public class PinYinUtil {
	/** 
     * 获取汉字串拼音首字母,英文字符不变 
     * @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(); 
    }
}

+ 4 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/team/AdminTeamController.java

@ -61,14 +61,16 @@ public class AdminTeamController extends BaseController {
    /**
     * pc端im使用
     * 备注:2018-02-11service改为用字母拍讯 zd
     * @return
     */
    @RequestMapping(value = "/doctorTeamMembers", method = RequestMethod.GET)
    @ApiOperation(value = "根据医生code返回所有团队的医生")
    public String getTeamMembersByDoctorCode(){
        try {
            JSONArray jsonArray = teamService.getTeamMembersByDoctorCode(getUID());
            return write(200, "OK", "data", jsonArray);
            //JSONArray jsonArray = teamService.getTeamMembersByDoctorCode(getUID());
            Map<String,Object> map = teamService.getTeamMembersByDoctorCodeByAlpha(getUID());
            return write(200, "OK", "data", map);
        }catch (Exception e){
            error(e);
            return error(-1, e.getMessage());