فهرست منبع

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

chenweida 8 سال پیش
والد
کامیت
66d55583d8

+ 60 - 6
patient-co-figure/src/main/java/com/yihu/figure/controller/DiseaseController.java

@ -1,9 +1,14 @@
package com.yihu.figure.controller;
package com.yihu.figure.controller;
import com.yihu.figure.model.disease.Inspection;
import com.yihu.figure.model.disease.Visit;
import com.yihu.figure.service.DiseaseService;
import com.yihu.figure.service.DiseaseService;
import com.yihu.figure.util.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiParam;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -11,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
/**
 * Created by chenweida on 2017/3/6.
 * Created by chenweida on 2017/3/6.
 * 近期疾病
 * 近期疾病
@ -18,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RestController
@RequestMapping(value = "/disease", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@RequestMapping(value = "/disease", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "近期疾病")
@Api(description = "近期疾病")
public class DiseaseController extends BaseController{
public class DiseaseController extends BaseController {
    @Autowired
    @Autowired
    private DiseaseService diseaseService;
    private DiseaseService diseaseService;
@ -31,17 +38,19 @@ public class DiseaseController extends BaseController{
     * @return
     * @return
     */
     */
    @ApiOperation(value = "根据健康卡号生成数据某个病人的全部就诊事件")
    @ApiOperation(value = "根据健康卡号生成数据某个病人的全部就诊事件")
    @RequestMapping(value = "getResidentEventListJson", method = RequestMethod.GET)
    @RequestMapping(value = "GetResidentEventListJson", method = RequestMethod.GET)
    public String getResidentEventListJson(
    public String getResidentEventListJson(
            @ApiParam(name = "strSSID", value = "健康卡号", required = true) @RequestParam(value = "strSSID", required = true) String strSSID) {
            @ApiParam(name = "strSSID", value = "健康卡号", required = true) @RequestParam(value = "strSSID", required = true) String strSSID,
            @ApiParam(name = "patientCode", value = "患者code", required = true) @RequestParam(value = "patientCode", required = true) String patientCode) {
        try {
        try {
             diseaseService.getResidentEventListJson(strSSID);
            diseaseService.getResidentEventListJson(strSSID,patientCode);
            return success("成功");
            return success("成功");
        } catch (Exception e) {
        } catch (Exception e) {
            error(e);
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
        }
    }
    }
    /**
    /**
     * 根据健康卡号抓取数据某个病人的全部检查检验事件
     * 根据健康卡号抓取数据某个病人的全部检查检验事件
     * /smjk/GetResidentEventListJson
     * /smjk/GetResidentEventListJson
@ -52,9 +61,11 @@ public class DiseaseController extends BaseController{
    @ApiOperation(value = "根据健康卡号抓取数据某个病人的全部检查检验事件")
    @ApiOperation(value = "根据健康卡号抓取数据某个病人的全部检查检验事件")
    @RequestMapping(value = "GetRecordListByCatalogcodesJson", method = RequestMethod.GET)
    @RequestMapping(value = "GetRecordListByCatalogcodesJson", method = RequestMethod.GET)
    public String GetRecordListByCatalogcodesJson(
    public String GetRecordListByCatalogcodesJson(
            @ApiParam(name = "strSSID", value = "健康卡号", required = true) @RequestParam(value = "strSSID", required = true) String strSSID) {
            @ApiParam(name = "strSSID", value = "健康卡号", required = true) @RequestParam(value = "strSSID", required = true) String strSSID,
            @ApiParam(name = "patientCode", value = "患者code", required = true) @RequestParam(value = "patientCode", required = true) String patientCode) {
        try {
        try {
            diseaseService.GetRecordListByCatalogcodesJson(strSSID); return success("成功");
            diseaseService.GetRecordListByCatalogcodesJson(strSSID,patientCode);
            return success("成功");
        } catch (Exception e) {
        } catch (Exception e) {
            error(e);
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
@ -62,4 +73,47 @@ public class DiseaseController extends BaseController{
    }
    }
    @ApiOperation(value = "根据code查询患者的就诊事件")
    @RequestMapping(value = "getVisits", method = RequestMethod.GET)
    public String getVisits(
            @ApiParam(name = "patientCode", value = "患者code", required = true) @RequestParam(value = "patientCode", required = true) String patientCode,
            @ApiParam(name = "time", value = "时间", required = false) @RequestParam(value = "time", required = false) String time) {
        try {
            List<Visit> visitList = diseaseService.getVisits(patientCode,time);
            JSONArray ja=new JSONArray();
            visitList.stream().forEach( v->{
                JSONObject jo=new JSONObject();
                jo.put("orgName",v.getOrgName());
                jo.put("typeName",v.getTypeName());
                jo.put("time", DateUtil.dateToStr(v.getEndTime(),"yyyy-MM-dd"));
                ja.put(jo);
            });
            return write(200, "获取列表成功!", "list", ja);
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    @ApiOperation(value = "根据code查询患者的检查检验")
    @RequestMapping(value = "getInspections", method = RequestMethod.GET)
    public String getInspections(
            @ApiParam(name = "patientCode", value = "患者code", required = true) @RequestParam(value = "patientCode", required = true) String patientCode,
            @ApiParam(name = "time", value = "时间", required = false) @RequestParam(value = "time", required = false) String time) {
        try {
            List<Inspection> inspections = diseaseService.getInspections(patientCode,time);
            JSONArray ja=new JSONArray();
            inspections.stream().forEach( v->{
                JSONObject jo=new JSONObject();
                jo.put("orgName",v.getOrgName());
                jo.put("cataLogCodeName",v.getCataLogCodeName());
                jo.put("time", DateUtil.dateToStr(v.getEndTime(),"yyyy-MM-dd"));
                ja.put(jo);
            });
            return write(200, "获取列表成功!", "list", ja);
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
}
}

+ 5 - 0
patient-co-figure/src/main/java/com/yihu/figure/dao/disease/InspectionDao.java

@ -2,10 +2,15 @@ package com.yihu.figure.dao.disease;
import com.yihu.figure.model.disease.Inspection;
import com.yihu.figure.model.disease.Inspection;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
/**
 * Created by chenweida on 2017/3/6.
 * Created by chenweida on 2017/3/6.
 */
 */
public interface InspectionDao extends PagingAndSortingRepository<Inspection, Long>, JpaSpecificationExecutor<Inspection> {
public interface InspectionDao extends PagingAndSortingRepository<Inspection, Long>, JpaSpecificationExecutor<Inspection> {
    @Query(" from Inspection i where i.patientCode=?1 ")
    List<Inspection> findByPatientCode(String patientCode);
}
}

+ 5 - 0
patient-co-figure/src/main/java/com/yihu/figure/dao/disease/VisitDao.java

@ -2,10 +2,15 @@ package com.yihu.figure.dao.disease;
import com.yihu.figure.model.disease.Visit;
import com.yihu.figure.model.disease.Visit;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
/**
 * Created by chenweida on 2017/3/6.
 * Created by chenweida on 2017/3/6.
 */
 */
public interface VisitDao extends PagingAndSortingRepository<Visit, Long>, JpaSpecificationExecutor<Visit> {
public interface VisitDao extends PagingAndSortingRepository<Visit, Long>, JpaSpecificationExecutor<Visit> {
    @Query(" from Visit v where v.patientCode=?1 ")
    List<Visit> findByPatientCode(String patientCode);
}
}

+ 47 - 1
patient-co-figure/src/main/java/com/yihu/figure/model/disease/Inspection.java

@ -4,6 +4,7 @@ import com.yihu.figure.model.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.Date;
/**
/**
@ -12,7 +13,7 @@ import java.util.Date;
 */
 */
@Entity
@Entity
@Table(name = "figure_inspection")
@Table(name = "figure_inspection")
public class Inspection extends IdEntity{
public class Inspection extends IdEntity {
    private String serial;//'文档序号'
    private String serial;//'文档序号'
    private String item;//''检查项目名称''
    private String item;//''检查项目名称''
    private Integer orgId;//'机构ID'
    private Integer orgId;//'机构ID'
@ -25,6 +26,51 @@ public class Inspection extends IdEntity{
    private String type;//''事件类型1门诊2住院3体检''
    private String type;//''事件类型1门诊2住院3体检''
    private String event;//''事件号''
    private String event;//''事件号''
    private String xmanId;//
    private String xmanId;//
    private String patientCode;//患者code
    private String cataLogCodeName;//类别名称
    public Inspection() {
    }
    public Inspection(String patientCode) {
        this.patientCode = patientCode;
    }
    @Transient
    public String getCataLogCodeName() {
        switch (this.catalogCode) {
            case "0131": {
                //门诊检查报告单
                return "检查";
            }
            case "0121": {
                //门诊检验报告单
                return "检验";
            }
            case "0221": {
                //住院检验报告
                return "检验";
            }
            case "0231": {
                //住院检查报告
                return "检查";
            }
        }
        return "未知";
    }
    public void setCataLogCodeName(String cataLogCodeName) {
        this.cataLogCodeName = cataLogCodeName;
    }
    public String getPatientCode() {
        return patientCode;
    }
    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }
    public String getSerial() {
    public String getSerial() {
        return serial;
        return serial;

+ 39 - 0
patient-co-figure/src/main/java/com/yihu/figure/model/disease/Visit.java

@ -4,6 +4,7 @@ import com.yihu.figure.model.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.Date;
/**
/**
@ -21,6 +22,16 @@ public class Visit extends IdEntity {
    private String type;//'事件类型1门诊2住院3体检',
    private String type;//'事件类型1门诊2住院3体检',
    private String event;//''事件号''
    private String event;//''事件号''
    private String icdCode;// 主诊断编码
    private String icdCode;// 主诊断编码
    private String patientCode;//患者code
    private String typeName;//类别名称
    public Visit(String patientCode) {
        this.patientCode = patientCode;
    }
    public Visit() {
    }
    public String getIcdCode() {
    public String getIcdCode() {
        return icdCode;
        return icdCode;
@ -85,4 +96,32 @@ public class Visit extends IdEntity {
    public void setEvent(String event) {
    public void setEvent(String event) {
        this.event = event;
        this.event = event;
    }
    }
    public String getPatientCode() {
        return patientCode;
    }
    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }
    @Transient
    public String getTypeName() {
        switch (this.type) {
            case "1": {
                return "门诊";
            }
            case "2": {
                return "住院";
            }
            case "3": {
                return "体检";
            }
        }
        return "未知";
    }
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
}
}

+ 33 - 0
patient-co-figure/src/main/java/com/yihu/figure/model/suggest/Suggest.java

@ -0,0 +1,33 @@
package com.yihu.figure.model.suggest;
import com.yihu.figure.model.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by chenweida on 2017/3/7.
 * 建议表
 */
@Entity
@Table(name = "figure_suggest")
public class Suggest extends IdEntity {
    private String content;//建议内容
    private String type;//建议类型 (字典表SUGGEST)1:生活方式 2:饮食  3用药
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

+ 17 - 0
patient-co-figure/src/main/java/com/yihu/figure/model/suggest/SuggestPortrait.java

@ -0,0 +1,17 @@
package com.yihu.figure.model.suggest;
import com.yihu.figure.model.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by chenweida on 2017/3/7.
 * 建议标签中间表
 */
@Entity
@Table(name = "figure_suggest_portrait")
public class SuggestPortrait extends IdEntity {
    private Integer suggestId;//'建议id'
    private Integer portraitCategoryId;//'标签id'
}

+ 59 - 14
patient-co-figure/src/main/java/com/yihu/figure/service/DiseaseService.java

@ -9,10 +9,14 @@ import com.yihu.figure.util.HttpClientUtil;
import org.json.JSONArray;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.net.URLEncoder;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
@ -26,6 +30,8 @@ public class DiseaseService {
    private VisitDao visitDao;
    private VisitDao visitDao;
    @Autowired
    @Autowired
    private InspectionDao inspectionDao;
    private InspectionDao inspectionDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
    /**
     * 造就诊事件的数据
     * 造就诊事件的数据
@ -33,7 +39,7 @@ public class DiseaseService {
     * @param strSSID
     * @param strSSID
     */
     */
    @Transactional
    @Transactional
    public void getResidentEventListJson(String strSSID) {
    public void getResidentEventListJson(String strSSID,String patientCode) {
        String url = baseurl + "data/getResidentEventListJson?strSSID=" + strSSID;
        String url = baseurl + "data/getResidentEventListJson?strSSID=" + strSSID;
        String response = HttpClientUtil.get(url, "UTF-8");
        String response = HttpClientUtil.get(url, "UTF-8");
        JSONObject obj = new JSONObject(response);
        JSONObject obj = new JSONObject(response);
@ -42,14 +48,14 @@ public class DiseaseService {
            JSONArray ja = obj.getJSONArray("门诊");
            JSONArray ja = obj.getJSONArray("门诊");
            for (int i = 0; i < ja.length(); i++) {
            for (int i = 0; i < ja.length(); i++) {
                JSONObject jo = ja.getJSONObject(i);
                JSONObject jo = ja.getJSONObject(i);
                Visit visit = new Visit();
                Visit visit = new Visit(patientCode);
                visit.setDiagnosis(jo.getString("DIAGNOSIS"));
                visit.setDiagnosis(jo.getString("DIAGNOSIS"));
                visit.setEndTime(DateUtil.strToDate(jo.getString("END_TIME"),"yyyy-MM-dd HH:mm:ss"));
                visit.setEndTime(DateUtil.strToDate(jo.getString("END_TIME"), "yyyy-MM-dd HH:mm:ss"));
                visit.setEvent(jo.getString("EVENT"));
                visit.setEvent(jo.getString("EVENT"));
                visit.setOrgId(jo.getInt("ORG_ID"));
                visit.setOrgId(jo.getInt("ORG_ID"));
                visit.setOrgName(jo.getString("ORG_NAME"));
                visit.setOrgName(jo.getString("ORG_NAME"));
                visit.setR(jo.getInt("R")+"");
                visit.setType(jo.getInt("TYPE")+"");
                visit.setR(jo.getInt("R") + "");
                visit.setType(jo.getInt("TYPE") + "");
                visit.setIcdCode(jo.getString("ICD_CODE"));
                visit.setIcdCode(jo.getString("ICD_CODE"));
                visits.add(visit);
                visits.add(visit);
            }
            }
@ -62,12 +68,12 @@ public class DiseaseService {
                JSONObject jo = ja.getJSONObject(i);
                JSONObject jo = ja.getJSONObject(i);
                Visit visit = new Visit();
                Visit visit = new Visit();
                visit.setDiagnosis(jo.getString("DIAGNOSIS"));
                visit.setDiagnosis(jo.getString("DIAGNOSIS"));
                visit.setEndTime(DateUtil.strToDate(jo.getString("END_TIME"),"yyyy-MM-dd HH:mm:ss"));
                visit.setEndTime(DateUtil.strToDate(jo.getString("END_TIME"), "yyyy-MM-dd HH:mm:ss"));
                visit.setEvent(jo.getString("EVENT"));
                visit.setEvent(jo.getString("EVENT"));
                visit.setOrgId(jo.getInt("ORG_ID"));
                visit.setOrgId(jo.getInt("ORG_ID"));
                visit.setOrgName(jo.getString("ORG_NAME"));
                visit.setOrgName(jo.getString("ORG_NAME"));
                visit.setR(jo.getInt("R")+"");
                visit.setType(jo.getInt("TYPE")+"");
                visit.setR(jo.getInt("R") + "");
                visit.setType(jo.getInt("TYPE") + "");
                visit.setIcdCode(jo.getString("ICD_CODE"));
                visit.setIcdCode(jo.getString("ICD_CODE"));
                visits.add(visit);
                visits.add(visit);
            }
            }
@ -81,7 +87,7 @@ public class DiseaseService {
     * @param strSSID
     * @param strSSID
     */
     */
    @Transactional
    @Transactional
    public void GetRecordListByCatalogcodesJson(String strSSID) {
    public void GetRecordListByCatalogcodesJson(String strSSID,String patientCode) {
        String url = baseurl + "data/GetRecordListByCatalogcodesJson?strSSID=" + strSSID;
        String url = baseurl + "data/GetRecordListByCatalogcodesJson?strSSID=" + strSSID;
        String response = HttpClientUtil.get(url, "UTF-8");
        String response = HttpClientUtil.get(url, "UTF-8");
        JSONObject obj = new JSONObject(response);
        JSONObject obj = new JSONObject(response);
@ -90,17 +96,17 @@ public class DiseaseService {
            JSONArray ja = obj.getJSONArray("检查");
            JSONArray ja = obj.getJSONArray("检查");
            for (int i = 0; i < ja.length(); i++) {
            for (int i = 0; i < ja.length(); i++) {
                JSONObject jo = ja.getJSONObject(i);
                JSONObject jo = ja.getJSONObject(i);
                Inspection inspection = new Inspection();
                Inspection inspection = new Inspection(patientCode);
                inspection.setCatalogCode(jo.getString("CATALOG_CODE"));
                inspection.setCatalogCode(jo.getString("CATALOG_CODE"));
                inspection.setEhrCommitTime(DateUtil.strToDate(jo.getString("EHR_COMMIT_TIME"),"yyyy-MM-dd HH:mm:ss"));
                inspection.setEndTime(DateUtil.strToDate(jo.getString("END_TIME"),"yyyy-MM-dd HH:mm:ss"));
                inspection.setEhrCommitTime(DateUtil.strToDate(jo.getString("EHR_COMMIT_TIME"), "yyyy-MM-dd HH:mm:ss"));
                inspection.setEndTime(DateUtil.strToDate(jo.getString("END_TIME"), "yyyy-MM-dd HH:mm:ss"));
                inspection.setEvent(jo.getString("EVENT"));
                inspection.setEvent(jo.getString("EVENT"));
                inspection.setItem(jo.getString("ITEM"));
                inspection.setItem(jo.getString("ITEM"));
                inspection.setOrgId(jo.getInt("ORG_ID"));
                inspection.setOrgId(jo.getInt("ORG_ID"));
                inspection.setOrgName(jo.getString("ORG_NAME"));
                inspection.setOrgName(jo.getString("ORG_NAME"));
                inspection.setR(jo.getInt("R"));
                inspection.setR(jo.getInt("R"));
                inspection.setSerial(jo.getString("SERIAL"));
                inspection.setType(jo.getString("TYPE"));
                inspection.setSerial(jo.getInt("SERIAL")+"");
                inspection.setType(jo.getInt("TYPE")+"");
                inspection.setUnionssid(jo.getString("UNIONSSID"));
                inspection.setUnionssid(jo.getString("UNIONSSID"));
                inspection.setXmanId(jo.getString("XMAN_ID"));
                inspection.setXmanId(jo.getString("XMAN_ID"));
                inspections.add(inspection);
                inspections.add(inspection);
@ -108,4 +114,43 @@ public class DiseaseService {
            inspectionDao.save(inspections);
            inspectionDao.save(inspections);
        }
        }
    }
    }
    /**
     *
     * @param patientCode
     * @param time  2015
      * @return
     */
    public List<Visit> getVisits(String patientCode,String time) {
        StringBuffer sql=new StringBuffer("select * from figure_visit f where 1=1 and  f.patient_code =? ");
        List<Object> params=new ArrayList<>();
        params.add(patientCode);
        if(!StringUtils.isEmpty(time)){
            sql.append(" and f.end_time >= ? ");
            params.add( LocalDate.of(Integer.valueOf(time),1,1).toString());
            sql.append(" and f.end_time < ? ");
            params.add( LocalDate.of(Integer.valueOf(time),1,1).plusYears(1).toString());
        }
        List<Visit> visisList= jdbcTemplate.query(sql.toString(),params.toArray(),new BeanPropertyRowMapper(Visit.class));
        return visisList;
    }
    public List<Inspection> getInspections(String patientCode,String time) {
        StringBuffer sql=new StringBuffer("select * from figure_inspection f where 1=1 and  f.patient_code =? ");
        List<Object> params=new ArrayList<>();
        params.add(patientCode);
        if(!StringUtils.isEmpty(time)){
            sql.append(" and f.end_time >= ? ");
            params.add( LocalDate.of(Integer.valueOf(time),1,1).toString());
            sql.append(" and f.end_time < ? ");
            params.add( LocalDate.of(Integer.valueOf(time),1,1).plusYears(1).toString());
        }
        List<Inspection> inspectionList= jdbcTemplate.query(sql.toString(),params.toArray(),new BeanPropertyRowMapper(Inspection.class));
        return inspectionList;
    }
}
}

+ 1 - 1
patient-co-figure/src/main/resources/application.yml

@ -59,7 +59,7 @@ spring:
  profiles: dev
  profiles: dev
  datasource:
  datasource:
    url: jdbc:mysql://172.19.103.77/wlyy?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
    url: jdbc:mysql://172.19.103.77/figure?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
    username: root
    username: root
    password: 123456
    password: 123456