Browse Source

同方运动功能测评系统接口对接完成

new-ays
zzc 2 months ago
parent
commit
54a23e57b4
  1. 2
      acupuncture-admin/pom.xml
  2. 51
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java
  3. 2
      acupuncture-admin/src/main/resources/application-dev.yml
  4. 4
      acupuncture-admin/src/main/resources/application-prod.yml
  5. 2
      acupuncture-admin/src/main/resources/application-stage.yml
  6. 6
      acupuncture-admin/src/main/resources/application.yml
  7. 931
      acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/ExternalDto.java
  8. 406
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/ExternalVo.java
  9. 67
      acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/ExternalDao.java
  10. 24
      acupuncture-system/src/main/java/com/acupuncture/system/service/ExternalService.java
  11. 82
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java
  12. 386
      acupuncture-system/src/main/resources/mapper/dao/ExternalDao.xml

2
acupuncture-admin/pom.xml

@ -9,7 +9,7 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging> <packaging>jar</packaging>
<artifactId>acupuncture-admin</artifactId> <artifactId>acupuncture-admin-ays</artifactId>
<description> <description>
web服务入口 web服务入口

51
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java

@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.acupuncture.common.annotation.Anonymous; import com.acupuncture.common.annotation.Anonymous;
import com.acupuncture.common.annotation.DataSource; import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.config.RuoYiConfig; import com.acupuncture.common.config.RuoYiConfig;
@ -196,13 +197,55 @@ public class ExternalController {
@ApiOperation("2人员信息查询接口") @ApiOperation("2人员信息查询接口")
@GetMapping("/http/getPersonInfo") @GetMapping("/http/getPersonInfo")
@DataSource(DataSourceType.MASTER) @DataSource(DataSourceType.MASTER)
public Object getPersonInfo(@RequestParam("from") String from, @RequestParam("uid") String uid) { public Object getPersonInfo( @RequestParam("uid") String uid) {
log.info("获取人员信息:{},{}",from, uid); log.info("获取人员信息:{}", uid);
checkoutData(from); ExternalVo.UserInfo query = externalService.motionQueryMember(uid);
ExternalVo.Result query = externalService.query(from, uid);
if (query == null) { if (query == null) {
return "no person"; return "no person";
} }
return query; return query;
} }
@Anonymous
@ApiOperation("3.1体质测试类数据的实时传输")
@PostMapping("/http/motionUploadMemberInfo")
public Object motionAdd(@RequestBody String str){
log.info("str:{}", str);
ExternalDto.RtcfInfo rtcfInfo = BeanUtil.copyProperties(new JSONObject(str), ExternalDto.RtcfInfo.class);
checkoutData(rtcfInfo.getUUID());
log.info("上传运动数据dto123:{}",rtcfInfo);
if (externalService.motionAdd(rtcfInfo) == 0) {
return "upload fail";
}else {
return "Fitness data upload ok";
}
}
@Anonymous
@ApiOperation("3.2体成分数据的上传")
@PostMapping("/http/motionUploadMemberTcfInfo")
public Object motionAddTcf(@RequestBody String str){
log.info("str:{}", str);
ExternalDto.BcaData rtcfInfo = BeanUtil.copyProperties(new JSONObject(str), ExternalDto.BcaData.class);
checkoutData(rtcfInfo.getUUID());
log.info("上传运动数据dto123:{}",rtcfInfo);
if (externalService.motionAddTcf(rtcfInfo) == 0) {
return "upload fail";
}else {
return "BCA data upload ok";
}
}
@ApiOperation("查询运动3.1信息")
@PostMapping("/http/queryMotionInfo")
public JsonResponse<ExternalVo.RtcfInfo> queryMotionInfo(@RequestBody @Validated ExternalDto.MemberDto dto){
return JsonResponse.ok(externalService.queryMotionInfo(dto.getMemberId()));
}
@ApiOperation("查询运动3.2信息")
@PostMapping("/http/queryMotionTcfInfo")
public JsonResponse<ExternalVo.BcaData> queryMotionTcfInfo(@RequestBody @Validated ExternalDto.MemberDto dto){
return JsonResponse.ok(externalService.queryMotionTcfInfo(dto.getMemberId()));
}
} }

2
acupuncture-admin/src/main/resources/application-dev.yml

@ -6,7 +6,7 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://localhost:3306/acupuncture?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://localhost:3306/acupuncture_ays?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: q7510327 password: q7510327
# 从库数据源 # 从库数据源

4
acupuncture-admin/src/main/resources/application-prod.yml

@ -6,7 +6,7 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://192.168.0.192:3306/acupuncture?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 url: jdbc:mysql://192.168.0.192:3306/acupuncture_ays?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root username: root
password: csylcx18aA password: csylcx18aA
# 从库数据源 # 从库数据源
@ -66,7 +66,7 @@ spring:
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 0 database: 1
# 密码 # 密码
password: 123456 password: 123456
# 连接超时时间 # 连接超时时间

2
acupuncture-admin/src/main/resources/application-stage.yml

@ -6,7 +6,7 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://sd.tall.wiki:3306/acupuncture?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://sd.tall.wiki:3306/acupuncture_ays?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: po3OynBO[M3579p6L7)o password: po3OynBO[M3579p6L7)o
# 从库数据源 # 从库数据源

6
acupuncture-admin/src/main/resources/application.yml

@ -17,7 +17,7 @@ acupuncture:
# 开发环境配置 # 开发环境配置
server: server:
# 服务器的HTTP端口,默认为8080 # 服务器的HTTP端口,默认为8080
port: 20001 port: 20002
servlet: servlet:
# 应用的访问路径 # 应用的访问路径
context-path: / context-path: /
@ -78,7 +78,7 @@ spring:
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 0 database: 1
# 密码 # 密码
password: password:
# 连接超时时间 # 连接超时时间
@ -101,7 +101,7 @@ token:
# 令牌密钥 # 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期(默认30分钟) # 令牌有效期(默认30分钟)
expireTime: 1800 expireTime: 18000
# MyBatis配置 # MyBatis配置
mybatis: mybatis:

931
acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/ExternalDto.java

@ -2,8 +2,10 @@ package com.acupuncture.system.domain.dto;
import com.acupuncture.system.domain.po.UplReportImage; import com.acupuncture.system.domain.po.UplReportImage;
import com.acupuncture.system.domain.po.UplRtcfInfo; import com.acupuncture.system.domain.po.UplRtcfInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -215,4 +217,933 @@ public class ExternalDto {
private String from; private String from;
private String memberid; private String memberid;
} }
/**
* 3.1体质测试类数据的实时传输
*/
public static class RtcfInfo {
@ApiModelProperty("当前测得体质测试类数据标题")
@JsonProperty("Title")
private String Title;
@ApiModelProperty("单位代码(或科室代码、项目代码)")
@JsonProperty("UUID")
private String UUID;
@ApiModelProperty("人员编号")
@JsonProperty("UID")
@NotNull(message = "人员编号不能为空")
private String UID;
@ApiModelProperty("测试序号(时间戳)")
@JsonProperty("TestID")
private String TestID;
@ApiModelProperty("测试日期")
@JsonProperty("TestDate")
@NotNull(message = "测试日期不能为空")
private String TestDate;
@ApiModelProperty("测试者姓名")
@JsonProperty("Name")
private String Name;
@ApiModelProperty("测试者性别,男1女2")
@JsonProperty("Sex")
private String Sex;
@ApiModelProperty("测试者出生年份")
@JsonProperty("BirthYear")
@JsonFormat(pattern = "yyyy")
private String BirthYear;
private List<Detail> data;
private Advice advice;
//体测结果数据*
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
@JsonProperty("")
public String getUUID() {
return UUID;
}
public void setUUID(String UUID) {
this.UUID = UUID;
}
@JsonProperty("")
public String getUID() {
return UID;
}
public void setUID(String UID) {
this.UID = UID;
}
@JsonProperty("")
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
@JsonProperty("")
public String getTestDate() {
return TestDate;
}
public void setTestDate(String testDate) {
TestDate = testDate;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
@JsonFormat(pattern = "yyyy")
public String getBirthYear() {
return BirthYear;
}
@JsonFormat(pattern = "yyyy")
public void setBirthYear(String birthYear) {
BirthYear = birthYear;
}
public List<Detail> getData() {
return data;
}
public void setData(List<Detail> data) {
this.data = data;
}
public Advice getAdvice() {
return advice;
}
public void setAdvice(Advice advice) {
this.advice = advice;
}
public static class Detail {
private String TestID;
@JsonProperty("Item")
private String Item;
@JsonProperty("Value")
private String Value;
@JsonProperty("Score")
private String Score;
@JsonProperty("Item")
public String getItem() {
return Item;
}
public void setItem(String item) {
Item = item;
}
@JsonProperty("Value")
public String getValue() {
return Value;
}
public void setValue(String value) {
Value = value;
}
@JsonProperty("Score")
public String getScore() {
return Score;
}
public void setScore(String score) {
Score = score;
}
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
}
public static class Advice {
@JsonProperty("SportPrinciple")
private String SportPrinciple; //运动原则
@JsonProperty("Aerobic")
private String Aerobic; //有氧运动内容
@JsonProperty("Strength")
private String Strength; //力量运动内容
@JsonProperty("Flexibility")
private String Flexibility; //柔韧运动内容
@JsonProperty("FunctionExcercise")
private String FunctionExcercise; //功能性练习内容
@JsonProperty("Caution")
private String Caution; //注意事项
private String TestID;
@JsonProperty("SportPrinciple")
public String getSportPrinciple() {
return SportPrinciple;
}
public void setSportPrinciple(String sportPrinciple) {
SportPrinciple = sportPrinciple;
}
@JsonProperty("Aerobic")
public String getAerobic() {
return Aerobic;
}
public void setAerobic(String aerobic) {
Aerobic = aerobic;
}
@JsonProperty("Strength")
public String getStrength() {
return Strength;
}
public void setStrength(String strength) {
Strength = strength;
}
@JsonProperty("Flexibility")
public String getFlexibility() {
return Flexibility;
}
public void setFlexibility(String flexibility) {
Flexibility = flexibility;
}
@JsonProperty("FunctionExcercise")
public String getFunctionExcercise() {
return FunctionExcercise;
}
public void setFunctionExcercise(String functionExcercise) {
FunctionExcercise = functionExcercise;
}
@JsonProperty("Caution")
public String getCaution() {
return Caution;
}
public void setCaution(String caution) {
Caution = caution;
}
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
}
}
public static class BcaData {
@ApiModelProperty("当前测得体质测试类数据标题")
@JsonProperty("Title")
private String Title;
@ApiModelProperty("单位代码(或科室代码、项目代码)")
@JsonProperty("UUID")
private String UUID;
@ApiModelProperty("人员编号")
@JsonProperty("UID")
private String UID;
@ApiModelProperty("测试序号(时间戳)")
@JsonProperty("TestID")
private String TestID;
@ApiModelProperty("测试日期")
@JsonProperty("TestDate")
private String TestDate;
@ApiModelProperty("测试者姓名")
@JsonProperty("Name")
private String Name;
@ApiModelProperty("测试者性别,男1女2")
@JsonProperty("Sex")
private String Sex;
private Data data;
private Advice advice;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getUUID() {
return UUID;
}
public void setUUID(String UUID) {
this.UUID = UUID;
}
public String getUID() {
return UID;
}
public void setUID(String UID) {
this.UID = UID;
}
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
public String getTestDate() {
return TestDate;
}
public void setTestDate(String testDate) {
TestDate = testDate;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public Advice getAdvice() {
return advice;
}
public void setAdvice(Advice advice) {
this.advice = advice;
}
public static class Data {
@JsonProperty("TestID")
private String TestID;
@JsonProperty("UID")
private String UID;
@JsonProperty("UUID")
private String UUID;
@JsonProperty("Name")
private String Name;
@JsonProperty("TestDate")
private String TestDate;
@JsonProperty("Sex")
private String Sex;
@JsonProperty("Weight")
private String Weight; //体重
@JsonProperty("Fat")
private String Fat; //脂肪
@JsonProperty("Bone")
private String Bone; //骨质
@JsonProperty("Protein")
private String Protein; //蛋白质
@JsonProperty("Water")
private String Water; //水分
@JsonProperty("Muscle")
private String Muscle; //肌肉
@JsonProperty("SMM")
private String SMM; //骨骼肌
@JsonProperty("PBF")
private String PBF; //体脂百分比
@JsonProperty("BMI")
private String BMI; //体质指数
@JsonProperty("BMR")
private String BMR; //基础代谢
@JsonProperty("Edema")
private String Edema; //水肿系数(2位小数)
@JsonProperty("VFI")
private String VFI; //内脏脂肪指数
@JsonProperty("BodyAge")
private String BodyAge; //身体年龄
@JsonProperty("Score")
private String Score; //健康评分
@JsonProperty("BodyType")
private String BodyType; //体型判定
@JsonProperty("Standard_weight")
private String Standard_weight; //目标体重
@JsonProperty("Weight_control")
private String Weight_control; //体重控制
@JsonProperty("Fat_control")
private String Fat_control; //脂肪控制量
@JsonProperty("Muscle_control")
private String Muscle_control;//肌肉控制量
@JsonProperty("ASMI")
private String ASMI; //四肢骨骼肌指数
@JsonProperty("WeightMax")
private String WeightMax; //体重正常范围的高值
@JsonProperty("WeightMin")
private String WeightMin; //体重正常范围的低值
@JsonProperty("FatMax")
private String FatMax;//体重正常范围的高值
@JsonProperty("FatMin")
private String FatMin; //体重正常范围的低值
@JsonProperty("BoneMax")
private String BoneMax; //骨质正常范围的高值
@JsonProperty("BoneMin")
private String BoneMin; //骨质正常范围的低值
@JsonProperty("ProteinMax")
private String ProteinMax; //蛋白质正常范围的高值
@JsonProperty("ProteinMin")
private String ProteinMin; //蛋白质正常范围的低值
@JsonProperty("WaterMax")
private String WaterMax;//水分正常范围的高值
@JsonProperty("WaterMin")
private String WaterMin; //水分正常范围的低值
@JsonProperty("MuscleMax")
private String MuscleMax; //肌肉正常范围的高值
@JsonProperty("MuscleMin")
private String MuscleMin; //肌肉正常范围的低值
@JsonProperty("SMMMax")
private String SMMMax;//骨骼肌正常范围的高值
@JsonProperty("SMMMin")
private String SMMMin;//骨骼肌正常范围的低值
@JsonProperty("PBFMax")
private String PBFMax; //体脂率正常范围的高值
@JsonProperty("PBFMin")
private String PBFMin; //体脂率正常范围的低值
@JsonProperty("BMIMax")
private String BMIMax; //体质指数正常范围的高值
@JsonProperty("BMIMin")
private String BMIMin; //体质指数正常范围的低值
@JsonProperty("WHRMax")
private String WHRMax;//腰臀比正常范围的高值
@JsonProperty("WHRMin")
private String WHRMin;//腰臀比正常范围的低值
@JsonProperty("EdemaMax")
private String EdemaMax; //水肿系数正常范围的高值
@JsonProperty("EdemaMin")
private String EdemaMin; //水肿系数正常范围的低值
@JsonProperty("VFIMax")
private String VFIMax; //内脏脂肪指数正常范围的高值
@JsonProperty("VFIMin")
private String VFIMin; //内脏脂肪指数正常范围的低值
@JsonProperty("Diagnosis")
private String Diagnosis; //诊断结论(UTF-8编码)
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
public String getUID() {
return UID;
}
public void setUID(String UID) {
this.UID = UID;
}
public String getUUID() {
return UUID;
}
public void setUUID(String UUID) {
this.UUID = UUID;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getTestDate() {
return TestDate;
}
public void setTestDate(String testDate) {
TestDate = testDate;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public String getWeight() {
return Weight;
}
public void setWeight(String weight) {
Weight = weight;
}
public String getFat() {
return Fat;
}
public void setFat(String fat) {
Fat = fat;
}
public String getBone() {
return Bone;
}
public void setBone(String bone) {
Bone = bone;
}
public String getProtein() {
return Protein;
}
public void setProtein(String protein) {
Protein = protein;
}
public String getWater() {
return Water;
}
public void setWater(String waterx) {
Water = waterx;
}
public String getMuscle() {
return Muscle;
}
public void setMuscle(String muscle) {
Muscle = muscle;
}
public String getSMM() {
return SMM;
}
public void setSMM(String SMM) {
this.SMM = SMM;
}
public String getPBF() {
return PBF;
}
public void setPBF(String PBF) {
this.PBF = PBF;
}
public String getBMI() {
return BMI;
}
public void setBMI(String BMI) {
this.BMI = BMI;
}
public String getBMR() {
return BMR;
}
public void setBMR(String BMR) {
this.BMR = BMR;
}
public String getEdema() {
return Edema;
}
public void setEdema(String edema) {
Edema = edema;
}
public String getVFI() {
return VFI;
}
public void setVFI(String VFI) {
this.VFI = VFI;
}
public String getBodyAge() {
return BodyAge;
}
public void setBodyAge(String bodyAge) {
BodyAge = bodyAge;
}
public String getScore() {
return Score;
}
public void setScore(String score) {
Score = score;
}
public String getBodyType() {
return BodyType;
}
public void setBodyType(String bodyType) {
BodyType = bodyType;
}
public String getStandard_weight() {
return Standard_weight;
}
public void setStandard_weight(String standard_weight) {
Standard_weight = standard_weight;
}
public String getWeight_control() {
return Weight_control;
}
public void setWeight_control(String weight_control) {
Weight_control = weight_control;
}
public String getFat_control() {
return Fat_control;
}
public void setFat_control(String fat_control) {
Fat_control = fat_control;
}
public String getMuscle_control() {
return Muscle_control;
}
public void setMuscle_control(String muscle_control) {
Muscle_control = muscle_control;
}
public String getASMI() {
return ASMI;
}
public void setASMI(String ASMI) {
this.ASMI = ASMI;
}
public String getWeightMax() {
return WeightMax;
}
public void setWeightMax(String weightMax) {
WeightMax = weightMax;
}
public String getWeightMin() {
return WeightMin;
}
public void setWeightMin(String weightMin) {
WeightMin = weightMin;
}
public String getFatMax() {
return FatMax;
}
public void setFatMax(String fatMax) {
FatMax = fatMax;
}
public String getFatMin() {
return FatMin;
}
public void setFatMin(String fatMin) {
FatMin = fatMin;
}
public String getBoneMax() {
return BoneMax;
}
public void setBoneMax(String boneMax) {
BoneMax = boneMax;
}
public String getBoneMin() {
return BoneMin;
}
public void setBoneMin(String boneMin) {
BoneMin = boneMin;
}
public String getProteinMax() {
return ProteinMax;
}
public void setProteinMax(String proteinMax) {
ProteinMax = proteinMax;
}
public String getProteinMin() {
return ProteinMin;
}
public void setProteinMin(String proteinMin) {
ProteinMin = proteinMin;
}
public String getWaterMax() {
return WaterMax;
}
public void setWaterMax(String waterMax) {
WaterMax = waterMax;
}
public String getWaterMin() {
return WaterMin;
}
public void setWaterMin(String waterMin) {
WaterMin = waterMin;
}
public String getMuscleMax() {
return MuscleMax;
}
public void setMuscleMax(String muscleMax) {
MuscleMax = muscleMax;
}
public String getMuscleMin() {
return MuscleMin;
}
public void setMuscleMin(String muscleMin) {
MuscleMin = muscleMin;
}
public String getSMMMax() {
return SMMMax;
}
public void setSMMMax(String SMMMax) {
this.SMMMax = SMMMax;
}
public String getSMMMin() {
return SMMMin;
}
public void setSMMMin(String SMMMin) {
this.SMMMin = SMMMin;
}
public String getPBFMax() {
return PBFMax;
}
public void setPBFMax(String PBFMax) {
this.PBFMax = PBFMax;
}
public String getPBFMin() {
return PBFMin;
}
public void setPBFMin(String PBFMin) {
this.PBFMin = PBFMin;
}
public String getBMIMax() {
return BMIMax;
}
public void setBMIMax(String BMIMax) {
this.BMIMax = BMIMax;
}
public String getBMIMin() {
return BMIMin;
}
public void setBMIMin(String BMIMin) {
this.BMIMin = BMIMin;
}
public String getWHRMax() {
return WHRMax;
}
public void setWHRMax(String WHRMax) {
this.WHRMax = WHRMax;
}
public String getWHRMin() {
return WHRMin;
}
public void setWHRMin(String WHRMin) {
this.WHRMin = WHRMin;
}
public String getEdemaMax() {
return EdemaMax;
}
public void setEdemaMax(String edemaMax) {
EdemaMax = edemaMax;
}
public String getEdemaMin() {
return EdemaMin;
}
public void setEdemaMin(String edemaMin) {
EdemaMin = edemaMin;
}
public String getVFIMax() {
return VFIMax;
}
public void setVFIMax(String VFIMax) {
this.VFIMax = VFIMax;
}
public String getVFIMin() {
return VFIMin;
}
public void setVFIMin(String VFIMin) {
this.VFIMin = VFIMin;
}
public String getDiagnosis() {
return Diagnosis;
}
public void setDiagnosis(String diagnosis) {
Diagnosis = diagnosis;
}
}
public static class Advice {
@JsonProperty("TestID")
private String TestID;
private String PersonType; //*人员类型
private String DailyEnergy; //日能量需求(单位:kcal)
private String DietPrinciple; //膳食原则
private String StandardBreakfast; //示范食谱-早餐(使用\n换行,下同)
private String StandardLunch; //示范食谱-午餐
private String StandardDinner; //示范食谱-晚餐
private String StandardNutrition; //示范食谱-营养素
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
public String getPersonType() {
return PersonType;
}
public void setPersonType(String personType) {
PersonType = personType;
}
public String getDailyEnergy() {
return DailyEnergy;
}
public void setDailyEnergy(String dailyEnergy) {
DailyEnergy = dailyEnergy;
}
public String getDietPrinciple() {
return DietPrinciple;
}
public void setDietPrinciple(String dietPrinciple) {
DietPrinciple = dietPrinciple;
}
public String getStandardBreakfast() {
return StandardBreakfast;
}
public void setStandardBreakfast(String standardBreakfast) {
StandardBreakfast = standardBreakfast;
}
public String getStandardLunch() {
return StandardLunch;
}
public void setStandardLunch(String standardLunch) {
StandardLunch = standardLunch;
}
public String getStandardDinner() {
return StandardDinner;
}
public void setStandardDinner(String standardDinner) {
StandardDinner = standardDinner;
}
public String getStandardNutrition() {
return StandardNutrition;
}
public void setStandardNutrition(String standardNutrition) {
StandardNutrition = standardNutrition;
}
}
}
} }

406
acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/ExternalVo.java

@ -1,10 +1,15 @@
package com.acupuncture.system.domain.vo; package com.acupuncture.system.domain.vo;
import cn.hutool.core.date.DateUtil;
import com.acupuncture.system.domain.dto.ExternalDto;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -235,45 +240,118 @@ public class ExternalVo {
运动功能测评数据 运动功能测评数据
*/ */
@Data
public static class UserInfo { public static class UserInfo {
@JsonProperty("Title")
@ApiModelProperty(value = "标题") @ApiModelProperty(value = "标题")
private String Title; private String Title;
@ApiModelProperty(value = "组别代码(可为空)") @ApiModelProperty(value = "组别代码(可为空)")
@JsonProperty("GID")
private String GID; private String GID;
@ApiModelProperty(value = "人员编号") @ApiModelProperty(value = "人员编号")
@JsonProperty("UID")
private String UID; private String UID;
@ApiModelProperty(value = "姓名") @ApiModelProperty(value = "姓名")
@JsonProperty("Name")
private String Name; private String Name;
@ApiModelProperty(value = "性别 (男1,女2)") @ApiModelProperty(value = "性别 (男1,女2)")
@JsonProperty("Sex")
private String Sex; private String Sex;
@ApiModelProperty(value = "身高(cm)") @ApiModelProperty(value = "身高(cm)")
@JsonProperty("Height")
private String Height; private String Height;
@ApiModelProperty(value = "出生年") @ApiModelProperty(value = "出生年")
private String BirthYear; @JsonProperty("BirthYear")
private Date BirthYear;
@ApiModelProperty(value = "电话(可为空)") @ApiModelProperty(value = "电话(可为空)")
@JsonProperty("Phone")
private String Phone; private String Phone;
@JsonProperty("TestID")
private String TestID;
@JsonProperty("TestID")
public String getTestID() {
return TestID;
}
@JsonProperty("Title")
public String getTitle() {
return Title;
}
@JsonProperty("GID")
public String getGID() {
return GID;
}
@JsonProperty("UID")
public String getUID() {
return UID;
} }
@JsonProperty("Name")
public String getName() {
return Name;
}
@JsonProperty("Sex")
public String getSex() {
if ("0".equals(Sex)) {
return "1";
}
if ("1".equals(Sex)) {
return "2";
}
return Sex;
}
@JsonProperty("Height")
public String getHeight() {
return Height;
}
@JsonProperty("BirthYear")
public String getBirthYear() {
if (BirthYear != null) {
return DateUtil.format(BirthYear, "yyyy");
}
return null;
}
@JsonProperty("Phone")
public String getPhone() {
return Phone;
}
}
/** /**
* 3.1体质测试类数据的实时传输 * 3.1体质测试类数据的实时传输
*/ */
public static class RtcfInfo { public static class RtcfInfo {
@ApiModelProperty("当前测得体质测试类数据标题") @ApiModelProperty("当前测得体质测试类数据标题")
@JsonProperty("Title")
private String Title; private String Title;
@ApiModelProperty("单位代码(或科室代码、项目代码)") @ApiModelProperty("单位代码(或科室代码、项目代码)")
@JsonProperty("UUID")
private String UUID; private String UUID;
@ApiModelProperty("人员编号") @ApiModelProperty("人员编号")
@JsonProperty("UID")
@NotNull(message = "人员编号不能为空")
private String UID; private String UID;
@ApiModelProperty("测试序号(时间戳)") @ApiModelProperty("测试序号(时间戳)")
@JsonProperty("TestID")
private String TestID; private String TestID;
@ApiModelProperty("测试日期") @ApiModelProperty("测试日期")
@JsonProperty("TestDate")
@NotNull(message = "测试日期不能为空")
private String TestDate; private String TestDate;
@ApiModelProperty("测试者姓名") @ApiModelProperty("测试者姓名")
@JsonProperty("Name")
private String Name; private String Name;
@ApiModelProperty("测试者性别,男1女2") @ApiModelProperty("测试者性别,男1女2")
@JsonProperty("Sex")
private String Sex; private String Sex;
@ApiModelProperty("测试者出生年份") @ApiModelProperty("测试者出生年份")
@JsonProperty("BirthYear")
private String BirthYear; private String BirthYear;
private List<Detail> data; private List<Detail> data;
@ -288,7 +366,7 @@ public class ExternalVo {
public void setTitle(String title) { public void setTitle(String title) {
Title = title; Title = title;
} }
@JsonProperty("")
public String getUUID() { public String getUUID() {
return UUID; return UUID;
} }
@ -296,7 +374,7 @@ public class ExternalVo {
public void setUUID(String UUID) { public void setUUID(String UUID) {
this.UUID = UUID; this.UUID = UUID;
} }
@JsonProperty("")
public String getUID() { public String getUID() {
return UID; return UID;
} }
@ -304,7 +382,7 @@ public class ExternalVo {
public void setUID(String UID) { public void setUID(String UID) {
this.UID = UID; this.UID = UID;
} }
@JsonProperty("")
public String getTestID() { public String getTestID() {
return TestID; return TestID;
} }
@ -312,7 +390,7 @@ public class ExternalVo {
public void setTestID(String testID) { public void setTestID(String testID) {
TestID = testID; TestID = testID;
} }
@JsonProperty("")
public String getTestDate() { public String getTestDate() {
return TestDate; return TestDate;
} }
@ -362,10 +440,15 @@ public class ExternalVo {
} }
public static class Detail { public static class Detail {
private String TestID;
@JsonProperty("Item")
private String Item; private String Item;
@JsonProperty("Value")
private String Value; private String Value;
@JsonProperty("Score")
private String Score; private String Score;
@JsonProperty("Item")
public String getItem() { public String getItem() {
return Item; return Item;
} }
@ -374,6 +457,7 @@ public class ExternalVo {
Item = item; Item = item;
} }
@JsonProperty("Value")
public String getValue() { public String getValue() {
return Value; return Value;
} }
@ -382,6 +466,7 @@ public class ExternalVo {
Value = value; Value = value;
} }
@JsonProperty("Score")
public String getScore() { public String getScore() {
return Score; return Score;
} }
@ -389,16 +474,31 @@ public class ExternalVo {
public void setScore(String score) { public void setScore(String score) {
Score = score; Score = score;
} }
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
} }
public static class Advice { public static class Advice {
@JsonProperty("SportPrinciple")
private String SportPrinciple; //运动原则 private String SportPrinciple; //运动原则
@JsonProperty("Aerobic")
private String Aerobic; //有氧运动内容 private String Aerobic; //有氧运动内容
@JsonProperty("Strength")
private String Strength; //力量运动内容 private String Strength; //力量运动内容
@JsonProperty("Flexibility")
private String Flexibility; //柔韧运动内容 private String Flexibility; //柔韧运动内容
@JsonProperty("FunctionExcercise")
private String FunctionExcercise; //功能性练习内容 private String FunctionExcercise; //功能性练习内容
@JsonProperty("Caution")
private String Caution; //注意事项 private String Caution; //注意事项
private String TestID;
@JsonProperty("SportPrinciple")
public String getSportPrinciple() { public String getSportPrinciple() {
return SportPrinciple; return SportPrinciple;
} }
@ -407,6 +507,7 @@ public class ExternalVo {
SportPrinciple = sportPrinciple; SportPrinciple = sportPrinciple;
} }
@JsonProperty("Aerobic")
public String getAerobic() { public String getAerobic() {
return Aerobic; return Aerobic;
} }
@ -415,6 +516,7 @@ public class ExternalVo {
Aerobic = aerobic; Aerobic = aerobic;
} }
@JsonProperty("Strength")
public String getStrength() { public String getStrength() {
return Strength; return Strength;
} }
@ -423,6 +525,7 @@ public class ExternalVo {
Strength = strength; Strength = strength;
} }
@JsonProperty("Flexibility")
public String getFlexibility() { public String getFlexibility() {
return Flexibility; return Flexibility;
} }
@ -431,6 +534,7 @@ public class ExternalVo {
Flexibility = flexibility; Flexibility = flexibility;
} }
@JsonProperty("FunctionExcercise")
public String getFunctionExcercise() { public String getFunctionExcercise() {
return FunctionExcercise; return FunctionExcercise;
} }
@ -439,6 +543,7 @@ public class ExternalVo {
FunctionExcercise = functionExcercise; FunctionExcercise = functionExcercise;
} }
@JsonProperty("Caution")
public String getCaution() { public String getCaution() {
return Caution; return Caution;
} }
@ -446,137 +551,266 @@ public class ExternalVo {
public void setCaution(String caution) { public void setCaution(String caution) {
Caution = caution; Caution = caution;
} }
}
public String getTestID() {
return TestID;
} }
/* public void setTestID(String testID) {
{ TestID = testID;
"Title: "CURRENT_BCA_DATA", //标题:BCA_DATA指体成分测试类数据
"UUID": "TFHT", //单位代码(或科室代码、项目代码)
"UID": "123456", //人员编码
"TestID": "20230124101235", //测试序号(时间戳)
"TestDate": "2023-01-24", //测试日期
"Name": "张三", //测试者姓名
"Sex": "1", //测试者性别,男1女2
"data":
{
"Weight" : "72.5", //体重
"Fat": "23.1", //脂肪
"Bone": "3.8", //骨质
"Protein": "18.6", //蛋白质
"Water": "33.5", //水分
"Muscle": "40.1", //肌肉
"SMM": "18.5", //骨骼肌
"PBF": "22.1", //体脂百分比
"BMI": "22.4", //体质指数
"BMR": "1665", //基础代谢
"Edema: "0.33", //水肿系数(2位小数)
"VFI": "12.0", //内脏脂肪指数
"BodyAge": "23", //身体年龄
"Score""78.0", //健康评分
"BodyType": "4", //体型判定
"Standard_weight": "70.5", //目标体重
"Weight_control": "2.0", //体重控制
"Fat_control": "1.3", //脂肪控制量
"Muscle_control": "0.7", //肌肉控制量
"ASMI": "6.5" //四肢骨骼肌指数
"WeightMax" : "84.5", //体重正常范围的高值
"WeightMin" : "69.5", //体重正常范围的低值
"FatMax" : "22.5", //体重正常范围的高值
"FatMin" : "13.6", //体重正常范围的低值
"BoneMax" : "3.7", //骨质正常范围的高值
"BoneMin" : "3.1", //骨质正常范围的低值
"ProteinMax" : "22.5", //蛋白质正常范围的高值
"ProteinMin" : "17.5", //蛋白质正常范围的低值
"WaterMax" : "43.6", //水分正常范围的高值
"WaterMin" : "32.5", //水分正常范围的低值
"MuscleMax" : "54.5", //肌肉正常范围的高值
"MuscleMin" : "36.5", //肌肉正常范围的低值
"SMMMax" : "32.5", //骨骼肌正常范围的高值
"SMMMin" : "24.1", //骨骼肌正常范围的低值
"PBFMax" : "20.0", //体脂率正常范围的高值
"PBFMin" : "10.0", //体脂率正常范围的低值
"BMIMax" : "18.5", //体质指数正常范围的高值
"BMIMin" : "23.9", //体质指数正常范围的低值
"WHRMax" : "0.7", //腰臀比正常范围的高值
"WHRMin" : "0.8", //腰臀比正常范围的低值
"EdemaMax" : "0.3", //水肿系数正常范围的高值
"EdemaMin" : "0.35", //水肿系数正常范围的低值
"VFIMax" : "5.0", //内脏脂肪指数正常范围的高值
"VFIMin" : "10.0", //内脏脂肪指数正常范围的低值
"Diagnosis": "身体脂肪偏高,无机盐偏低,水分偏低,蛋白质偏低,骨骼肌含量偏低,身体左右均衡" //诊断结论(UTF-8编码)
},
"advice": //每日膳食营养建议
{
"PersonType" "普通人", //*人员类型
"DailyEnergy" "2250", //日能量需求(单位:kcal)
"DietPrinciple" "XXXXX", //膳食原则
"StandardBreakfast" "XXXX", //示范食谱-早餐(使用\n换行,下同)
"StandardLunch" "XXXX", //示范食谱-午餐
"StandardDinner" "XXXX", //示范食谱-晚餐
"StandardNutrition" "XXXX", //示范食谱-营养素
} }
} }
*/ }
public static class BcaData { public static class BcaData {
@ApiModelProperty("当前测得体质测试类数据标题")
@JsonProperty("Title")
private String Title; private String Title;
@ApiModelProperty("单位代码(或科室代码、项目代码)")
@JsonProperty("UUID")
private String UUID; private String UUID;
@ApiModelProperty("人员编号")
@JsonProperty("UID")
private String UID; private String UID;
@ApiModelProperty("测试序号(时间戳)")
@JsonProperty("TestID")
private String TestID; private String TestID;
@ApiModelProperty("测试日期")
@JsonProperty("TestDate")
private String TestDate; private String TestDate;
@ApiModelProperty("测试者姓名")
@JsonProperty("Name")
private String Name; private String Name;
@ApiModelProperty("测试者性别,男1女2")
@JsonProperty("Sex")
private String Sex; private String Sex;
private Data data; private Data data;
private Advice advice; private Advice advice;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getUUID() {
return UUID;
}
public void setUUID(String UUID) {
this.UUID = UUID;
}
public String getUID() {
return UID;
}
public void setUID(String UID) {
this.UID = UID;
}
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
public String getTestDate() {
return TestDate;
}
public void setTestDate(String testDate) {
TestDate = testDate;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public Advice getAdvice() {
return advice;
}
public void setAdvice(Advice advice) {
this.advice = advice;
}
public static class Data { public static class Data {
@JsonProperty("TestID")
private String TestID;
@JsonProperty("UID")
private String UID;
@JsonProperty("UUID")
private String UUID;
@JsonProperty("Name")
private String Name;
@JsonProperty("TestDate")
private String TestDate;
@JsonProperty("Sex")
private String Sex;
@JsonProperty("Weight")
private String Weight; //体重 private String Weight; //体重
@JsonProperty("Fat")
private String Fat; //脂肪 private String Fat; //脂肪
@JsonProperty("Bone")
private String Bone; //骨质 private String Bone; //骨质
@JsonProperty("Protein")
private String Protein; //蛋白质 private String Protein; //蛋白质
private String Waterx; //水分 @JsonProperty("Water")
private String Water; //水分
@JsonProperty("Muscle")
private String Muscle; //肌肉 private String Muscle; //肌肉
@JsonProperty("SMM")
private String SMM; //骨骼肌 private String SMM; //骨骼肌
@JsonProperty("PBF")
private String PBF; //体脂百分比 private String PBF; //体脂百分比
@JsonProperty("BMI")
private String BMI; //体质指数 private String BMI; //体质指数
@JsonProperty("BMR")
private String BMR; //基础代谢 private String BMR; //基础代谢
@JsonProperty("Edema")
private String Edema; //水肿系数(2位小数) private String Edema; //水肿系数(2位小数)
@JsonProperty("VFI")
private String VFI; //内脏脂肪指数 private String VFI; //内脏脂肪指数
@JsonProperty("BodyAge")
private String BodyAge; //身体年龄 private String BodyAge; //身体年龄
@JsonProperty("Score")
private String Score; //健康评分 private String Score; //健康评分
@JsonProperty("BodyType")
private String BodyType; //体型判定 private String BodyType; //体型判定
@JsonProperty("Standard_weight")
private String Standard_weight; //目标体重 private String Standard_weight; //目标体重
@JsonProperty("Weight_control")
private String Weight_control; //体重控制 private String Weight_control; //体重控制
@JsonProperty("Fat_control")
private String Fat_control; //脂肪控制量 private String Fat_control; //脂肪控制量
@JsonProperty("Muscle_control")
private String Muscle_control;//肌肉控制量 private String Muscle_control;//肌肉控制量
@JsonProperty("ASMI")
private String ASMI; //四肢骨骼肌指数 private String ASMI; //四肢骨骼肌指数
@JsonProperty("WeightMax")
private String WeightMax; //体重正常范围的高值 private String WeightMax; //体重正常范围的高值
@JsonProperty("WeightMin")
private String WeightMin; //体重正常范围的低值 private String WeightMin; //体重正常范围的低值
@JsonProperty("FatMax")
private String FatMax;//体重正常范围的高值 private String FatMax;//体重正常范围的高值
@JsonProperty("FatMin")
private String FatMin; //体重正常范围的低值 private String FatMin; //体重正常范围的低值
@JsonProperty("BoneMax")
private String BoneMax; //骨质正常范围的高值 private String BoneMax; //骨质正常范围的高值
@JsonProperty("BoneMin")
private String BoneMin; //骨质正常范围的低值 private String BoneMin; //骨质正常范围的低值
@JsonProperty("ProteinMax")
private String ProteinMax; //蛋白质正常范围的高值 private String ProteinMax; //蛋白质正常范围的高值
@JsonProperty("ProteinMin")
private String ProteinMin; //蛋白质正常范围的低值 private String ProteinMin; //蛋白质正常范围的低值
@JsonProperty("WaterMax")
private String WaterMax;//水分正常范围的高值 private String WaterMax;//水分正常范围的高值
@JsonProperty("WaterMin")
private String WaterMin; //水分正常范围的低值 private String WaterMin; //水分正常范围的低值
@JsonProperty("MuscleMax")
private String MuscleMax; //肌肉正常范围的高值 private String MuscleMax; //肌肉正常范围的高值
@JsonProperty("MuscleMin")
private String MuscleMin; //肌肉正常范围的低值 private String MuscleMin; //肌肉正常范围的低值
@JsonProperty("SMMMax")
private String SMMMax;//骨骼肌正常范围的高值 private String SMMMax;//骨骼肌正常范围的高值
@JsonProperty("SMMMin")
private String SMMMin;//骨骼肌正常范围的低值 private String SMMMin;//骨骼肌正常范围的低值
@JsonProperty("PBFMax")
private String PBFMax; //体脂率正常范围的高值 private String PBFMax; //体脂率正常范围的高值
@JsonProperty("PBFMin")
private String PBFMin; //体脂率正常范围的低值 private String PBFMin; //体脂率正常范围的低值
@JsonProperty("BMIMax")
private String BMIMax; //体质指数正常范围的高值 private String BMIMax; //体质指数正常范围的高值
@JsonProperty("BMIMin")
private String BMIMin; //体质指数正常范围的低值 private String BMIMin; //体质指数正常范围的低值
@JsonProperty("WHRMax")
private String WHRMax;//腰臀比正常范围的高值 private String WHRMax;//腰臀比正常范围的高值
@JsonProperty("WHRMin")
private String WHRMin;//腰臀比正常范围的低值 private String WHRMin;//腰臀比正常范围的低值
@JsonProperty("EdemaMax")
private String EdemaMax; //水肿系数正常范围的高值 private String EdemaMax; //水肿系数正常范围的高值
@JsonProperty("EdemaMin")
private String EdemaMin; //水肿系数正常范围的低值 private String EdemaMin; //水肿系数正常范围的低值
@JsonProperty("VFIMax")
private String VFIMax; //内脏脂肪指数正常范围的高值 private String VFIMax; //内脏脂肪指数正常范围的高值
@JsonProperty("VFIMin")
private String VFIMin; //内脏脂肪指数正常范围的低值 private String VFIMin; //内脏脂肪指数正常范围的低值
@JsonProperty("Diagnosis")
private String Diagnosis; //诊断结论(UTF-8编码) private String Diagnosis; //诊断结论(UTF-8编码)
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
public String getUID() {
return UID;
}
public void setUID(String UID) {
this.UID = UID;
}
public String getUUID() {
return UUID;
}
public void setUUID(String UUID) {
this.UUID = UUID;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getTestDate() {
return TestDate;
}
public void setTestDate(String testDate) {
TestDate = testDate;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public String getWeight() { public String getWeight() {
return Weight; return Weight;
} }
@ -609,12 +843,12 @@ public class ExternalVo {
Protein = protein; Protein = protein;
} }
public String getWaterx() { public String getWater() {
return Waterx; return Water;
} }
public void setWaterx(String waterx) { public void setWater(String waterx) {
Waterx = waterx; Water = waterx;
} }
public String getMuscle() { public String getMuscle() {
@ -940,6 +1174,8 @@ public class ExternalVo {
public static class Advice { public static class Advice {
@JsonProperty("TestID")
private String TestID;
private String PersonType; //*人员类型 private String PersonType; //*人员类型
private String DailyEnergy; //日能量需求(单位:kcal) private String DailyEnergy; //日能量需求(单位:kcal)
private String DietPrinciple; //膳食原则 private String DietPrinciple; //膳食原则
@ -948,6 +1184,14 @@ public class ExternalVo {
private String StandardDinner; //示范食谱-晚餐 private String StandardDinner; //示范食谱-晚餐
private String StandardNutrition; //示范食谱-营养素 private String StandardNutrition; //示范食谱-营养素
public String getTestID() {
return TestID;
}
public void setTestID(String testID) {
TestID = testID;
}
public String getPersonType() { public String getPersonType() {
return PersonType; return PersonType;
} }
@ -1005,6 +1249,4 @@ public class ExternalVo {
} }
} }
} }
} }

67
acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/ExternalDao.java

@ -5,6 +5,7 @@ import com.acupuncture.system.domain.vo.DmsLoginUserVo;
import com.acupuncture.system.domain.vo.ExternalVo; import com.acupuncture.system.domain.vo.ExternalVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -18,4 +19,70 @@ public interface ExternalDao {
List<ExternalVo.Result> select(@Param("query") ExternalDto.Query query); List<ExternalVo.Result> select(@Param("query") ExternalDto.Query query);
List<ExternalVo.Result> selectByMemberId(@Param("query") ExternalDto.Query query); List<ExternalVo.Result> selectByMemberId(@Param("query") ExternalDto.Query query);
/**
* 运动功能测评获取人员信息
* @param memberid 门诊号/住院号
* @return
*/
ExternalVo.UserInfo motionQueryMember(@Param("memberid") String memberid);
int motionAdd(@Param("rtcfInfoDto") ExternalDto.RtcfInfo rtcfInfoDto);
/**
* 查询是否已有主测试记录
*/
ExternalVo.UserInfo motionQueryMemberInfo(@Param("memberid") String memberid,
@Param("testData")Date testData,
@Param("Title") String Title);
/**
* 体质测试类数据的实时传输 体测结果数据
* @param dto
* @return
*/
int motionAddDetail(@Param("list") List<ExternalDto.RtcfInfo.Detail> dto);
int motionAddAdvice(@Param("dto") ExternalDto.RtcfInfo.Advice dto);
/**
* 3.2 添加体成分数据
* @param dto
* @return
*/
int motionAddTcf(@Param("dto") ExternalDto.BcaData.Data dto);
int motionAddTcfMain(@Param("dto") ExternalDto.BcaData dto);
int motionAddTcfAdvice(@Param("dto") ExternalDto.BcaData.Advice dto);
int delMain(@Param("uId") String uId,
@Param("Title") String Title);
int delData(@Param("TestID") String TestID);
int delAdvice(@Param("TestID") String TestID);
int delRecord(@Param("TestID") String TestID);
int delBcaAdvice(@Param("TestID") String TestID);
//前台同步查询运动数据
ExternalVo.RtcfInfo queryMotionInfo(@Param("memberid")String memberid,
@Param("Title") String Title);
List<ExternalVo.RtcfInfo.Detail> queryMotionDetail(@Param("TestID")String TestID);
ExternalVo.RtcfInfo.Advice queryMotionAdvice(@Param("TestID")String TestID);
ExternalVo.BcaData queryMotionTcfInfo(@Param("memberid")String memberid,
@Param("Title") String Title);
ExternalVo.BcaData.Data queryMotionTcfData(@Param("TestID")String TestID);
ExternalVo.BcaData.Advice queryMotionTcfAdvice(@Param("TestID")String TestID);
} }

24
acupuncture-system/src/main/java/com/acupuncture/system/service/ExternalService.java

@ -54,4 +54,28 @@ public interface ExternalService {
*/ */
UplReportImage selectReportByMemberId(Long id); UplReportImage selectReportByMemberId(Long id);
/**
* 运动功能测评获取人员信息
* @param memberid 门诊号/住院号
* @return
*/
ExternalVo.UserInfo motionQueryMember(String memberid);
/**
* 上传数据
* @return
*/
int motionAdd(ExternalDto.RtcfInfo rtcfInfoDto);
/**
* 上传数据
* @return
*/
int motionAddTcf(ExternalDto.BcaData bcaData);
ExternalVo.RtcfInfo queryMotionInfo(String memberid);
ExternalVo.BcaData queryMotionTcfInfo(String memberid);
} }

82
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java

@ -2,6 +2,7 @@ package com.acupuncture.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.acupuncture.common.core.redis.RedisCache; import com.acupuncture.common.core.redis.RedisCache;
@ -15,6 +16,8 @@ import com.acupuncture.system.persist.mapper.UplReportImageMapper;
import com.acupuncture.system.persist.mapper.UplRtcfInfoMapper; import com.acupuncture.system.persist.mapper.UplRtcfInfoMapper;
import com.acupuncture.system.service.ExternalService; import com.acupuncture.system.service.ExternalService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
@ -27,6 +30,7 @@ import java.util.List;
* @description: * @description:
*/ */
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ExternalServiceImpl implements ExternalService { public class ExternalServiceImpl implements ExternalService {
@Resource @Resource
@ -220,4 +224,82 @@ public class ExternalServiceImpl implements ExternalService {
} }
return new UplReportImage(); return new UplReportImage();
} }
@Override
public ExternalVo.UserInfo motionQueryMember(String memberid) {
return externalDao.motionQueryMember(memberid);
}
@Override
public int motionAdd(ExternalDto.RtcfInfo rtcfInfoDto) {
//查询今日是否已有测试数据, 如有则删除后新增
ExternalVo.UserInfo userInfo = externalDao.motionQueryMemberInfo(rtcfInfoDto.getUID(), DateUtil.parse(rtcfInfoDto.getTestDate(), "yyyy-MM-dd"), rtcfInfoDto.getTitle());
if (userInfo != null) {
//删除数据
externalDao.delMain(userInfo.getUID(), "CURRENT_FIT_DATA");
externalDao.delData(userInfo.getTestID());
externalDao.delAdvice(userInfo.getTestID());
}
ExternalDto.RtcfInfo.Advice advice = rtcfInfoDto.getAdvice();
List<ExternalDto.RtcfInfo.Detail> data = rtcfInfoDto.getData();
if (advice != null) {
advice.setTestID(rtcfInfoDto.getTestID());
externalDao.motionAddAdvice(advice);
}
if (CollectionUtil.isNotEmpty(data)) {
for (ExternalDto.RtcfInfo.Detail datum : data) {
datum.setTestID(rtcfInfoDto.getTestID());
}
externalDao.motionAddDetail(data);
}
return externalDao.motionAdd(rtcfInfoDto);
}
@Override
public int motionAddTcf(ExternalDto.BcaData bcaData) {
//查询今日是否已有测试数据, 如有则删除后新增
ExternalVo.UserInfo userInfo = externalDao.motionQueryMemberInfo(bcaData.getUID(), DateUtil.parse(bcaData.getTestDate(), "yyyy-MM-dd"), bcaData.getTitle());
if (userInfo != null) {
//删除数据
externalDao.delMain(userInfo.getUID(), "CURRENT_BCA_DATA");
externalDao.delRecord(userInfo.getUID());
externalDao.delBcaAdvice(userInfo.getUID());
}
if (bcaData.getData() != null) {
bcaData.getData().setName(bcaData.getName());
bcaData.getData().setTestID(bcaData.getTestID());
bcaData.getData().setUUID(bcaData.getUUID());
bcaData.getData().setSex(bcaData.getSex());
bcaData.getData().setUID(bcaData.getUID());
bcaData.getData().setTestDate(bcaData.getTestDate());
externalDao.motionAddTcf(bcaData.getData());
}
if (bcaData.getAdvice() != null) {
bcaData.getAdvice().setTestID(bcaData.getTestID());
externalDao.motionAddTcfAdvice(bcaData.getAdvice());
}
return externalDao.motionAddTcfMain(bcaData);
}
@Override
public ExternalVo.RtcfInfo queryMotionInfo(String memberid) {
ExternalVo.RtcfInfo currentFitData = externalDao.queryMotionInfo(memberid, "CURRENT_FIT_DATA");
if (currentFitData != null) {
currentFitData.setData(externalDao.queryMotionDetail(currentFitData.getTestID()));
currentFitData.setAdvice(externalDao.queryMotionAdvice(currentFitData.getTestID()));
}
return currentFitData;
}
@Override
public ExternalVo.BcaData queryMotionTcfInfo(String memberid) {
ExternalVo.BcaData bcaData = externalDao.queryMotionTcfInfo(memberid, "CURRENT_BCA_DATA");
if (bcaData != null) {
bcaData.setData(externalDao.queryMotionTcfData(bcaData.getTestID()));
bcaData.setAdvice(externalDao.queryMotionTcfAdvice(bcaData.getTestID()));
}
return bcaData;
}
} }

386
acupuncture-system/src/main/resources/mapper/dao/ExternalDao.xml

@ -49,4 +49,390 @@
</where> </where>
</select> </select>
<select id="motionQueryMember" resultType="com.acupuncture.system.domain.vo.ExternalVo$UserInfo">
select
t.member_id as UID,
t.name as Name,
t.gender as Sex,
t.birth_date as BirthYear,
t.phone as Phone,
t.tenant_id as GID
from
v_pms_treatment t
<where>
t.del_flag = 0
<if test="memberid != null and memberid != ''">
and t.member_id = #{memberid}
</if>
</where>
</select>
<insert id="motionAdd" parameterType="com.acupuncture.system.domain.dto.ExternalDto$RtcfInfo">
insert into
fit_test_main
(
TestID,
Title,
UUID,
UID,
TestDate,
Name,
Sex,
BirthYear
)
values
(
#{rtcfInfoDto.TestID},
#{rtcfInfoDto.title},
#{rtcfInfoDto.UUID},
#{rtcfInfoDto.UID},
#{rtcfInfoDto.testDate},
#{rtcfInfoDto.Name},
#{rtcfInfoDto.Sex},
#{rtcfInfoDto.BirthYear}
)
</insert>
<select id="motionQueryMemberInfo" resultType="com.acupuncture.system.domain.vo.ExternalVo$UserInfo">
select
t.UID as UID,
t.Name as Name,
TestID as TestID
from
fit_test_main t
<where>
<if test="memberid != null and memberid != ''">
and t.UID = #{memberid}
</if>
<if test="testData != null">
and t.TestDate = #{testData}
</if>
<if test="Title != null">
and t.Title = #{Title}
</if>
</where>
</select>
<insert id="motionAddDetail" parameterType="java.util.List">
INSERT INTO fit_test_data (TestID, ItemCode, TestValue, Score)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.TestID}, #{item.Item}, #{item.Value}, #{item.Score})
</foreach>
</insert>
<insert id="motionAddAdvice" parameterType="com.acupuncture.system.domain.dto.ExternalDto$RtcfInfo$Advice">
insert into
fit_test_advice
(
TestID,
SportPrinciple,
Aerobic,
Strength,
Flexibility,
FunctionExcercise,
Caution
)
values
(
#{dto.TestID},
#{dto.SportPrinciple},
#{dto.Aerobic},
#{dto.Strength},
#{dto.Flexibility},
#{dto.FunctionExcercise},
#{dto.Caution}
)
</insert>
<insert id="motionAddTcf" parameterType="com.acupuncture.system.domain.dto.ExternalDto$BcaData$Data">
insert into fit_test_records
(
TestID,
UUID,
UID,
TestDate,
Name,
Sex,
Weight,
Fat,
Bone,
Protein,
Water,
Muscle,
SMM,
PBF,
BMI,
BMR,
Edema,
VFI,
BodyAge,
Score,
BodyType,
Standard_weight,
Weight_control,
Fat_control,
Muscle_control,
ASMI,
WeightMax,
WeightMin,
FatMax,
FatMin,
BoneMax,
BoneMin,
ProteinMax,
ProteinMin,
WaterMax,
WaterMin,
MuscleMax,
MuscleMin,
SMMMax,
SMMMin,
PBFMax,
PBFMin,
BMIMax,
BMIMin,
WHRMax,
WHRMin,
EdemaMax,
EdemaMin,
VFIMax,
VFIMin,
Diagnosis)
values (
#{dto.TestID},
#{dto.UUID},
#{dto.UID},
#{dto.TestDate},
#{dto.Name},
#{dto.Sex},
#{dto.Weight},
#{dto.Fat},
#{dto.Bone},
#{dto.Protein},
#{dto.Water},
#{dto.Muscle},
#{dto.SMM},
#{dto.PBF},
#{dto.BMI},
#{dto.BMR},
#{dto.Edema},
#{dto.VFI},
#{dto.BodyAge},
#{dto.Score},
#{dto.BodyType},
#{dto.Standard_weight},
#{dto.Weight_control},
#{dto.Fat_control},
#{dto.Muscle_control},
#{dto.ASMI},
#{dto.WeightMax},
#{dto.WeightMin},
#{dto.FatMax},
#{dto.FatMin},
#{dto.BoneMax},
#{dto.BoneMin},
#{dto.ProteinMax},
#{dto.ProteinMin},
#{dto.WaterMax},
#{dto.WaterMin},
#{dto.MuscleMax},
#{dto.MuscleMin},
#{dto.SMMMax},
#{dto.SMMMin},
#{dto.PBFMax},
#{dto.PBFMin},
#{dto.BMIMax},
#{dto.BMIMin},
#{dto.WHRMax},
#{dto.WHRMin},
#{dto.EdemaMax},
#{dto.EdemaMin},
#{dto.VFIMax},
#{dto.VFIMin},
#{dto.Diagnosis}
)
</insert>
<insert id="motionAddTcfMain" parameterType="com.acupuncture.system.domain.dto.ExternalDto$RtcfInfo">
insert into
fit_test_main
(
TestID,
Title,
UUID,
UID,
TestDate,
Name,
Sex
)
values
(
#{dto.TestID},
#{dto.title},
#{dto.UUID},
#{dto.UID},
#{dto.testDate},
#{dto.Name},
#{dto.Sex}
)
</insert>
<insert id="motionAddTcfAdvice" parameterType="com.acupuncture.system.domain.dto.ExternalDto$BcaData$Advice">
insert into fit_bca_advice(TestID,
PersonType,
DailyEnergy,
DietPrinciple,
StandardBreakfast,
StandardLunch,
StandardDinner,
StandardNutrition)
values ( #{dto.TestID},
#{dto.PersonType},
#{dto.DailyEnergy},
#{dto.DietPrinciple},
#{dto.StandardBreakfast},
#{dto.StandardLunch},
#{dto.StandardDinner},
#{dto.StandardNutrition})
</insert>
<delete id="delMain" >
delete from fit_test_main where UID = #{uId} and Title = #{Title}
</delete>
<delete id="delAdvice">
delete from fit_test_advice where TestID = #{TestID}
</delete>
<delete id="delData">
delete from fit_test_data where TestID = #{TestID}
</delete>
<delete id="delRecord">
delete from fit_test_records where TestID = #{TestID}
</delete>
<delete id="delBcaAdvice">
delete from fit_bca_advice where TestID = #{TestID}
</delete>
<select id="queryMotionInfo" resultType="com.acupuncture.system.domain.vo.ExternalVo$RtcfInfo">
select TestID,
UID,
TestDate,
Name,
Sex,
UUID
from fit_test_main
where UID = #{memberid}
and Title = #{Title}
order by TestDate desc limit 1
</select>
<select id="queryMotionDetail" resultType="com.acupuncture.system.domain.vo.ExternalVo$RtcfInfo$Detail">
select TestID,
ItemCode as Item,
TestValue as Value,
Score
from fit_test_data
where TestID = #{TestID}
</select>
<select id="queryMotionAdvice" resultType="com.acupuncture.system.domain.vo.ExternalVo$RtcfInfo$Advice">
select TestID,
PersonType,
DailyEnergy,
DietPrinciple,
StandardBreakfast,
StandardLunch,
StandardDinner,
StandardNutrition
from fit_bca_advice
where TestID = #{TestID}
</select>
<select id="queryMotionTcfInfo" resultType="com.acupuncture.system.domain.vo.ExternalVo$BcaData">
select TestID,
UID,
TestDate,
Name,
Sex,
UUID
from fit_test_main
where UID = #{memberid}
and Title = #{Title}
order by TestDate desc limit 1
</select>
<select id="queryMotionTcfData" resultType="com.acupuncture.system.domain.vo.ExternalVo$BcaData$Data">
select
TestID,
UUID,
UID,
TestDate,
Name,
Sex,
Weight,
Fat,
Bone,
Protein,
Water,
Muscle,
SMM,
PBF,
BMI,
BMR,
Edema,
VFI,
BodyAge,
Score,
BodyType,
Standard_weight,
Weight_control,
Fat_control,
Muscle_control,
ASMI,
WeightMax,
WeightMin,
FatMax,
FatMin,
BoneMax,
BoneMin,
ProteinMax,
ProteinMin,
WaterMax,
WaterMin,
MuscleMax,
MuscleMin,
SMMMax,
SMMMin,
PBFMax,
PBFMin,
BMIMax,
BMIMin,
WHRMax,
WHRMin,
EdemaMax,
EdemaMin,
VFIMax,
VFIMin,
Diagnosis
from fit_test_records
where TestID = #{TestID}
</select>
<select id="queryMotionTcfAdvice" resultType="com.acupuncture.system.domain.vo.ExternalVo$BcaData$Advice">
select TestID,
PersonType,
DailyEnergy,
DietPrinciple,
StandardBreakfast,
StandardLunch,
StandardDinner,
StandardNutrition
from fit_bca_advice
where TestID = #{TestID}
</select>
</mapper> </mapper>

Loading…
Cancel
Save