Browse Source

将分数修改为bigDecimal

sd
zy_Java 5 years ago
parent
commit
590282b10e
  1. 2
      cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java
  2. 61
      ht/src/main/java/com/ccsens/ht/api/ImportController.java
  3. 22
      ht/src/main/java/com/ccsens/ht/bean/po/HtPatientAcp.java
  4. 140
      ht/src/main/java/com/ccsens/ht/bean/po/HtPatientAcpExample.java
  5. 7
      ht/src/main/java/com/ccsens/ht/bean/po/HtPatientScore.java
  6. 21
      ht/src/main/java/com/ccsens/ht/bean/po/HtPatientScoreExample.java
  7. 7
      ht/src/main/java/com/ccsens/ht/bean/po/HtQuestionOption.java
  8. 21
      ht/src/main/java/com/ccsens/ht/bean/po/HtQuestionOptionExample.java
  9. 3
      ht/src/main/java/com/ccsens/ht/bean/vo/PatientReportVo.java
  10. 19
      ht/src/main/java/com/ccsens/ht/bean/vo/QuestionVo.java
  11. 2
      ht/src/main/java/com/ccsens/ht/service/ImportService.java
  12. 16
      ht/src/main/java/com/ccsens/ht/service/PatientReportService.java
  13. 83
      ht/src/main/java/com/ccsens/ht/service/QuestionService.java
  14. 5
      ht/src/main/java/com/ccsens/ht/uitl/Constant.java
  15. 2
      ht/src/main/resources/application-dev.yml
  16. 1
      ht/src/main/resources/mapper_dao/HtPatientCanvasDao.xml
  17. 40
      ht/src/main/resources/mapper_raw/HtPatientAcpMapper.xml
  18. 14
      ht/src/main/resources/mapper_raw/HtPatientScoreMapper.xml
  19. 14
      ht/src/main/resources/mapper_raw/HtQuestionOptionMapper.xml
  20. 50
      tall/src/main/java/com/ccsens/tall/rabbitMQ/MessageTest.java
  21. 6
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  22. 25
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  23. 8
      tall/src/main/resources/application-dev.yml
  24. 3
      tall/src/main/resources/application-prod.yml
  25. 5
      tall/src/main/resources/application-test.yml
  26. 4
      tall/src/main/resources/application.yml
  27. 6
      util/src/main/java/com/ccsens/util/PropUtil.java
  28. 51
      util/src/main/java/com/ccsens/util/SmsUtil.java

2
cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java

@ -28,7 +28,7 @@ import java.util.Map;
* @create: 2019/11/27 10:03
*/
@FeignClient(name = "tall", path = "v1.0", fallbackFactory = TallFeignClientFallBack.class)
@FeignClient(name = "tall-ht", path = "v1.0", fallbackFactory = TallFeignClientFallBack.class)
public interface TallFeignClient {
/**

61
ht/src/main/java/com/ccsens/ht/api/ImportController.java

@ -70,6 +70,41 @@ public class ImportController {
return JsonResponse.newInstance().ok();
}
/**
*@Description:
*@Param:
*@return: com.ccsens.ptpro.util.JsonResponse
*@Author: wuhuijuan
*@date: 2019/10/21 10:04
*/
@ApiOperation(value = "单独导入报告单类型",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
@ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "医疗项目表", required = true, paramType = "form",dataType = "__file")
})
@RequestMapping(value = "/importReportType", method = RequestMethod.POST)
public JsonResponse importReportType(@RequestParam(required = true) Part file) throws Exception{
long time1 = System.currentTimeMillis();
//1.上传文件
String allowedExts = "xls,xlsx";
String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator;
String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir);
File execlFile = new File(dir+path);
long time2 = System.currentTimeMillis();
log.info("解析文件耗时:{}", (time2 - time1));
// importService.importPosition(execlFile, 0);
// long time3 = System.currentTimeMillis();
// log.info("导入职务耗时:{}", (time3 - time2));
// importService.importTitle(execlFile, 1);
long time4 = System.currentTimeMillis();
// log.info("导入职称耗时:{}", (time4 - time3));
importService.importReport(execlFile, 2);
long time5 = System.currentTimeMillis();
log.info("导入报告单耗时:{}", (time5 - time4));
// importService.importQuestion(execlFile, Constant.Ht.Question.ALL);
return JsonResponse.newInstance().ok();
}
/**
*@Description:
@ -149,4 +184,30 @@ public class ImportController {
return JsonResponse.newInstance().ok();
}
/**
*@Description:
*@Param:
*@return: com.ccsens.ptpro.util.JsonResponse
*@Author: wuhuijuan
*@date: 2020/5/14 11:21
*/
@ApiOperation(value = "导入importXFXPD",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
@ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "医疗项目表", required = true, paramType = "form",dataType = "__file")
})
@RequestMapping(value = "/importXFXPD", method = RequestMethod.POST)
public JsonResponse importXFXPD(@RequestParam(required = true) Part file) throws Exception{
long time1 = System.currentTimeMillis();
//1.上传文件
String allowedExts = "xls,xlsx";
String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator;
String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir);
File execlFile = new File(dir+path);
long time2 = System.currentTimeMillis();
importService.importQuestion(execlFile, Constant.Ht.Report.XFXPD);
log.info("导入XFXPD");
return JsonResponse.newInstance().ok();
}
}

22
ht/src/main/java/com/ccsens/ht/bean/po/HtPatientAcp.java

@ -34,6 +34,10 @@ public class HtPatientAcp implements Serializable {
private Long recorder;
private String ta1;
private String tpt;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -156,6 +160,22 @@ public class HtPatientAcp implements Serializable {
this.recorder = recorder;
}
public String getTa1() {
return ta1;
}
public void setTa1(String ta1) {
this.ta1 = ta1 == null ? null : ta1.trim();
}
public String getTpt() {
return tpt;
}
public void setTpt(String tpt) {
this.tpt = tpt == null ? null : tpt.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -177,6 +197,8 @@ public class HtPatientAcp implements Serializable {
sb.append(", updateTime=").append(updateTime);
sb.append(", isDel=").append(isDel);
sb.append(", recorder=").append(recorder);
sb.append(", ta1=").append(ta1);
sb.append(", tpt=").append(tpt);
sb.append("]");
return sb.toString();
}

140
ht/src/main/java/com/ccsens/ht/bean/po/HtPatientAcpExample.java

@ -1094,6 +1094,146 @@ public class HtPatientAcpExample {
addCriterion("recorder not between", value1, value2, "recorder");
return (Criteria) this;
}
public Criteria andTa1IsNull() {
addCriterion("ta1 is null");
return (Criteria) this;
}
public Criteria andTa1IsNotNull() {
addCriterion("ta1 is not null");
return (Criteria) this;
}
public Criteria andTa1EqualTo(String value) {
addCriterion("ta1 =", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1NotEqualTo(String value) {
addCriterion("ta1 <>", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1GreaterThan(String value) {
addCriterion("ta1 >", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1GreaterThanOrEqualTo(String value) {
addCriterion("ta1 >=", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1LessThan(String value) {
addCriterion("ta1 <", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1LessThanOrEqualTo(String value) {
addCriterion("ta1 <=", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1Like(String value) {
addCriterion("ta1 like", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1NotLike(String value) {
addCriterion("ta1 not like", value, "ta1");
return (Criteria) this;
}
public Criteria andTa1In(List<String> values) {
addCriterion("ta1 in", values, "ta1");
return (Criteria) this;
}
public Criteria andTa1NotIn(List<String> values) {
addCriterion("ta1 not in", values, "ta1");
return (Criteria) this;
}
public Criteria andTa1Between(String value1, String value2) {
addCriterion("ta1 between", value1, value2, "ta1");
return (Criteria) this;
}
public Criteria andTa1NotBetween(String value1, String value2) {
addCriterion("ta1 not between", value1, value2, "ta1");
return (Criteria) this;
}
public Criteria andTptIsNull() {
addCriterion("tpt is null");
return (Criteria) this;
}
public Criteria andTptIsNotNull() {
addCriterion("tpt is not null");
return (Criteria) this;
}
public Criteria andTptEqualTo(String value) {
addCriterion("tpt =", value, "tpt");
return (Criteria) this;
}
public Criteria andTptNotEqualTo(String value) {
addCriterion("tpt <>", value, "tpt");
return (Criteria) this;
}
public Criteria andTptGreaterThan(String value) {
addCriterion("tpt >", value, "tpt");
return (Criteria) this;
}
public Criteria andTptGreaterThanOrEqualTo(String value) {
addCriterion("tpt >=", value, "tpt");
return (Criteria) this;
}
public Criteria andTptLessThan(String value) {
addCriterion("tpt <", value, "tpt");
return (Criteria) this;
}
public Criteria andTptLessThanOrEqualTo(String value) {
addCriterion("tpt <=", value, "tpt");
return (Criteria) this;
}
public Criteria andTptLike(String value) {
addCriterion("tpt like", value, "tpt");
return (Criteria) this;
}
public Criteria andTptNotLike(String value) {
addCriterion("tpt not like", value, "tpt");
return (Criteria) this;
}
public Criteria andTptIn(List<String> values) {
addCriterion("tpt in", values, "tpt");
return (Criteria) this;
}
public Criteria andTptNotIn(List<String> values) {
addCriterion("tpt not in", values, "tpt");
return (Criteria) this;
}
public Criteria andTptBetween(String value1, String value2) {
addCriterion("tpt between", value1, value2, "tpt");
return (Criteria) this;
}
public Criteria andTptNotBetween(String value1, String value2) {
addCriterion("tpt not between", value1, value2, "tpt");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

7
ht/src/main/java/com/ccsens/ht/bean/po/HtPatientScore.java

@ -1,6 +1,7 @@
package com.ccsens.ht.bean.po;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
public class HtPatientScore implements Serializable {
@ -18,7 +19,7 @@ public class HtPatientScore implements Serializable {
private String optionName;
private Integer score;
private BigDecimal score;
private Byte type;
@ -92,11 +93,11 @@ public class HtPatientScore implements Serializable {
this.optionName = optionName == null ? null : optionName.trim();
}
public Integer getScore() {
public BigDecimal getScore() {
return score;
}
public void setScore(Integer score) {
public void setScore(BigDecimal score) {
this.score = score;
}

21
ht/src/main/java/com/ccsens/ht/bean/po/HtPatientScoreExample.java

@ -1,5 +1,6 @@
package com.ccsens.ht.bean.po;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -555,52 +556,52 @@ public class HtPatientScoreExample {
return (Criteria) this;
}
public Criteria andScoreEqualTo(Integer value) {
public Criteria andScoreEqualTo(BigDecimal value) {
addCriterion("score =", value, "score");
return (Criteria) this;
}
public Criteria andScoreNotEqualTo(Integer value) {
public Criteria andScoreNotEqualTo(BigDecimal value) {
addCriterion("score <>", value, "score");
return (Criteria) this;
}
public Criteria andScoreGreaterThan(Integer value) {
public Criteria andScoreGreaterThan(BigDecimal value) {
addCriterion("score >", value, "score");
return (Criteria) this;
}
public Criteria andScoreGreaterThanOrEqualTo(Integer value) {
public Criteria andScoreGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("score >=", value, "score");
return (Criteria) this;
}
public Criteria andScoreLessThan(Integer value) {
public Criteria andScoreLessThan(BigDecimal value) {
addCriterion("score <", value, "score");
return (Criteria) this;
}
public Criteria andScoreLessThanOrEqualTo(Integer value) {
public Criteria andScoreLessThanOrEqualTo(BigDecimal value) {
addCriterion("score <=", value, "score");
return (Criteria) this;
}
public Criteria andScoreIn(List<Integer> values) {
public Criteria andScoreIn(List<BigDecimal> values) {
addCriterion("score in", values, "score");
return (Criteria) this;
}
public Criteria andScoreNotIn(List<Integer> values) {
public Criteria andScoreNotIn(List<BigDecimal> values) {
addCriterion("score not in", values, "score");
return (Criteria) this;
}
public Criteria andScoreBetween(Integer value1, Integer value2) {
public Criteria andScoreBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("score between", value1, value2, "score");
return (Criteria) this;
}
public Criteria andScoreNotBetween(Integer value1, Integer value2) {
public Criteria andScoreNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("score not between", value1, value2, "score");
return (Criteria) this;
}

7
ht/src/main/java/com/ccsens/ht/bean/po/HtQuestionOption.java

@ -1,6 +1,7 @@
package com.ccsens.ht.bean.po;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
public class HtQuestionOption implements Serializable {
@ -14,7 +15,7 @@ public class HtQuestionOption implements Serializable {
private String name;
private Integer score;
private BigDecimal score;
private String display;
@ -68,11 +69,11 @@ public class HtQuestionOption implements Serializable {
this.name = name == null ? null : name.trim();
}
public Integer getScore() {
public BigDecimal getScore() {
return score;
}
public void setScore(Integer score) {
public void setScore(BigDecimal score) {
this.score = score;
}

21
ht/src/main/java/com/ccsens/ht/bean/po/HtQuestionOptionExample.java

@ -1,5 +1,6 @@
package com.ccsens.ht.bean.po;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -435,52 +436,52 @@ public class HtQuestionOptionExample {
return (Criteria) this;
}
public Criteria andScoreEqualTo(Integer value) {
public Criteria andScoreEqualTo(BigDecimal value) {
addCriterion("score =", value, "score");
return (Criteria) this;
}
public Criteria andScoreNotEqualTo(Integer value) {
public Criteria andScoreNotEqualTo(BigDecimal value) {
addCriterion("score <>", value, "score");
return (Criteria) this;
}
public Criteria andScoreGreaterThan(Integer value) {
public Criteria andScoreGreaterThan(BigDecimal value) {
addCriterion("score >", value, "score");
return (Criteria) this;
}
public Criteria andScoreGreaterThanOrEqualTo(Integer value) {
public Criteria andScoreGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("score >=", value, "score");
return (Criteria) this;
}
public Criteria andScoreLessThan(Integer value) {
public Criteria andScoreLessThan(BigDecimal value) {
addCriterion("score <", value, "score");
return (Criteria) this;
}
public Criteria andScoreLessThanOrEqualTo(Integer value) {
public Criteria andScoreLessThanOrEqualTo(BigDecimal value) {
addCriterion("score <=", value, "score");
return (Criteria) this;
}
public Criteria andScoreIn(List<Integer> values) {
public Criteria andScoreIn(List<BigDecimal> values) {
addCriterion("score in", values, "score");
return (Criteria) this;
}
public Criteria andScoreNotIn(List<Integer> values) {
public Criteria andScoreNotIn(List<BigDecimal> values) {
addCriterion("score not in", values, "score");
return (Criteria) this;
}
public Criteria andScoreBetween(Integer value1, Integer value2) {
public Criteria andScoreBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("score between", value1, value2, "score");
return (Criteria) this;
}
public Criteria andScoreNotBetween(Integer value1, Integer value2) {
public Criteria andScoreNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("score not between", value1, value2, "score");
return (Criteria) this;
}

3
ht/src/main/java/com/ccsens/ht/bean/vo/PatientReportVo.java

@ -10,6 +10,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.*;
/**
@ -210,7 +211,7 @@ public class PatientReportVo {
@ApiModelProperty("总分(<0:不需要显示总分,=0:不计分, >0:总分)")
private Integer totalScore;
@ApiModelProperty("病人得分")
private Integer score;
private BigDecimal score;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("类型(1:报告单 2:测评 3:测评子类 4:二级子类)")

19
ht/src/main/java/com/ccsens/ht/bean/vo/QuestionVo.java

@ -307,6 +307,8 @@ public class QuestionVo {
@Data
@ApiModel("轨迹信息及颜色")
public static class Point{
@ApiModelProperty("id")
private Long pointId;
@ApiModelProperty("颜色")
private Integer color;
@ApiModelProperty("轨迹坐标值")
@ -339,9 +341,9 @@ public class QuestionVo {
private Long totalDuration;
@ApiModelProperty("总笔画数")
private int lineNums;
@ApiModelProperty("最长笔画")
@ApiModelProperty("最长笔画长度")
private double longLine;
@ApiModelProperty("最短笔画")
@ApiModelProperty("最短笔画长度")
private double shortLine;
@ApiModelProperty("笔画中间值")
private double centre;
@ -351,6 +353,19 @@ public class QuestionVo {
private String beyondProportion;
@ApiModelProperty("每条轨迹的参数")
private List<LineParameter> lineParameterList;
/*20210112新加统计数据*/
@ApiModelProperty("思考总时间(所有笔画间隔时间)")
private Long reflectOnTime;
@ApiModelProperty("中心 暂定为坐标:X,Y")
private String centreCoordinate;
@ApiModelProperty("面积 暂定均为最小外接长方形 单位为px")
private double acreage;
@ApiModelProperty("平均笔画长度")
private double aveLength;
@ApiModelProperty("长笔画数量")
private int longNums;
@ApiModelProperty("长笔画数量")
private int shortNums;
}
@Data

2
ht/src/main/java/com/ccsens/ht/service/ImportService.java

@ -362,7 +362,7 @@ public class ImportService implements IImportService {
option.setQuestionId(questionId);
option.setSort(sort);
option.setScore(option.getScore() == null ? Constant.Ht.NUMBER_DEFAULT : option.getScore());
option.setScore(option.getScore() == null ? Constant.Ht.NUMBER_DEFAULT_BIGDECIMAL : option.getScore());
log.info("导入选项:{}", option);
return option;

16
ht/src/main/java/com/ccsens/ht/service/PatientReportService.java

@ -258,7 +258,7 @@ public class PatientReportService implements IPatientReportService {
carer.setCode("carer");
carer.setName("照顾者");
carer.setTotalScore(-1);
carer.setScore(npiScore == null || npiScore.get("carer") == null ? null : ((BigDecimal) npiScore.get("carer")).intValue());
carer.setScore(npiScore == null || npiScore.get("carer") == null ? null : ((BigDecimal) npiScore.get("carer")));
carer.setType((byte)3);
carer.setParentCode("NPI");
score.addSub(carer);
@ -266,7 +266,7 @@ public class PatientReportService implements IPatientReportService {
patient.setCode("result");
patient.setName("患者");
patient.setTotalScore(-1);
patient.setScore(npiScore == null || npiScore.get("result") == null ? null : ((BigDecimal) npiScore.get("result")).intValue());
patient.setScore(npiScore == null || npiScore.get("result") == null ? null : ((BigDecimal) npiScore.get("result")));
patient.setType((byte)3);
patient.setParentCode("NPI");
score.addSub(patient);
@ -318,23 +318,25 @@ public class PatientReportService implements IPatientReportService {
*@Author: wuHuiJuan
*@date: 2019/11/19 15:42
*/
private Integer sumScore(PatientReportVo.ReportScore score){
AtomicReference<Integer> sum = new AtomicReference<>(score.getScore() == null ? 0 : score.getScore());
private BigDecimal sumScore(PatientReportVo.ReportScore score){
AtomicReference<BigDecimal> sum = new AtomicReference<>(score.getScore() == null ? BigDecimal.valueOf(0) : score.getScore());
AtomicBoolean hasAdd = new AtomicBoolean(false);
if (!CollectionUtils.isEmpty(score.getSubReport())) {
score.getSubReport().forEach(sub -> {
sum.updateAndGet(v -> {
Integer sumScore = sumScore(sub);
BigDecimal sumScore = sumScore(sub);
if (sumScore== null) {
return v;
}
hasAdd.set(true);
return v += sumScore;
// return v += sumScore;
v = v.add(sumScore);
return v;
});
});
} else {
if (StringUtil.isNotEmpty(score.getRemark()) && score.getRemark().matches(Constant.Ht.Report.IGNORE_SCORE)) {
return score.getScore() == null ? null : 0;
return score.getScore() == null ? null : BigDecimal.valueOf(0);
}
if (Constant.Ht.Report.MOCA_SJZ.equals(score.getCode())) {
return null;

83
ht/src/main/java/com/ccsens/ht/service/QuestionService.java

@ -29,6 +29,7 @@ import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@ -273,7 +274,7 @@ public class QuestionService implements IQuestionService {
//保存现在的答案
if (CollectionUtil.isEmpty(scores)) {
// 选项为空,默认0分
HtPatientScore zeroScore = getHtPatientScore(score, parentCode, report, 0);
HtPatientScore zeroScore = getHtPatientScore(score, parentCode, report, BigDecimal.valueOf(0));
scores.add(zeroScore);
}
htPatientScoreDao.insertBatch(scores);
@ -285,7 +286,7 @@ public class QuestionService implements IQuestionService {
return CodeEnum.SUCCESS;
}
private HtPatientScore getHtPatientScore(QuestionDto.Score score, String parentCode, HtPatientReport report, int i) {
private HtPatientScore getHtPatientScore(QuestionDto.Score score, String parentCode, HtPatientReport report, BigDecimal i) {
HtPatientScore zeroScore = new HtPatientScore();
zeroScore.setId(snowflake.nextId());
zeroScore.setPatientReportId(score.getPatientReportId());
@ -363,7 +364,7 @@ public class QuestionService implements IQuestionService {
patientScore.set(next.getIntValue(Constant.Ht.Rule.SMALL_SCORE));
}
}
HtPatientScore singleScore = getHtPatientScore(score, parentCode, report, patientScore.get());
HtPatientScore singleScore = getHtPatientScore(score, parentCode, report, BigDecimal.valueOf(patientScore.get()));
scores.add(singleScore);
}
@ -378,7 +379,7 @@ public class QuestionService implements IQuestionService {
return 0;
}
// 分数>0, 算1道题
return scores.stream().mapToInt(score -> score.getScore() > 0 ? 1 : 0).sum();
return scores.stream().mapToInt(score -> score.getScore().compareTo(BigDecimal.valueOf(0)) > 0 ? 1 : 0).sum();
}
private void optionUniq(QuestionDto.Score score) {
@ -469,7 +470,7 @@ public class QuestionService implements IQuestionService {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine js = manager.getEngineByName("js");
try {
Integer result = (Integer)js.eval(substring);
BigDecimal result = BigDecimal.valueOf((Integer)js.eval(substring));
patientScore.setScore(result);
} catch (ScriptException e) {
log.error("计算出现异常",e);
@ -637,7 +638,7 @@ public class QuestionService implements IQuestionService {
//共几分钟
double d = (double) endTime / 1000 / 60;
//每分钟几笔
parameter.setAveTimes((int) Math.floor(canvasPoints.size() / d));
parameter.setAveTimes((int) Math.round(canvasPoints.size() / d));
//每笔数据
List<QuestionVo.LineParameter> lineParameterList = new ArrayList<>();
long intervalDuration = 0;
@ -645,6 +646,18 @@ public class QuestionService implements IQuestionService {
double longLine = 0;
//最短的笔画
double shortLine = 0;
//思考总时间 每笔间隔相加
long reflectOnTime = 0;
//X最小值
int minX = 0;
//X最大值
int maxX = 0;
//Y最小值
int minY = 0;
//Y最大值
int maxY = 0;
//总长度
double totalLength = 0;
for(QuestionVo.Point canvas : canvasPoints){
//时间
QuestionVo.LineParameter lineParameter = new QuestionVo.LineParameter();
@ -652,6 +665,14 @@ public class QuestionService implements IQuestionService {
if(a.length <= 0){
continue;
}
//获取最边缘的四个点
for (String value : a) {
String[] split1 = value.split(",");
minX = Math.min(Integer.parseInt(split1[0]), minX);
maxX = Math.max(Integer.parseInt(split1[0]), maxX);
minY = Math.min(Integer.parseInt(split1[1]), minY);
maxY = Math.max(Integer.parseInt(split1[1]), maxY);
}
String[] s = a[0].split(",");
if(s.length <= 0){
continue;
@ -664,6 +685,8 @@ public class QuestionService implements IQuestionService {
lineParameter.setDuration(duration);
//长度
double length = getLengthByCanvas(a);
//计算总长度
totalLength += length;
lineParameter.setLength(length);
//计算最长最短
if(longLine == 0){
@ -679,27 +702,69 @@ public class QuestionService implements IQuestionService {
//速度
double speed = 0;
if(length != 0 && duration != 0){
speed = BigDecimal.valueOf(length / duration).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
speed = BigDecimal.valueOf(length / duration).setScale(2, RoundingMode.HALF_UP).doubleValue();
}
lineParameter.setSpeed(speed);
//和上一笔的间隔
//和上一笔的间隔 & 思考总时长
if(Long.parseLong(e[e.length - 1]) == 0){
lineParameter.setIntervalDuration(htPatientCanvas.getBeginTime() - htPatientCanvas.getOpenCanvasTime());
reflectOnTime += htPatientCanvas.getBeginTime() - htPatientCanvas.getOpenCanvasTime();
}else {
intervalDuration = Long.parseLong(e[e.length - 1]) - intervalDuration;
lineParameter.setIntervalDuration(intervalDuration);
reflectOnTime += intervalDuration;
}
lineParameterList.add(lineParameter);
}
parameter.setLineParameterList(lineParameterList);
//最长笔画
parameter.setLongLine(longLine);
//最短笔画
parameter.setShortLine(shortLine);
//思考总时长
parameter.setReflectOnTime(reflectOnTime);
//计算中心
int x = minX + ((maxX - minX) / 2);
int y = minY + ((maxY - minY) / 2);
String centreCoordinate = x + "," + y;
parameter.setCentreCoordinate(centreCoordinate);
//面积
double acreage = (maxX - minX) * (maxY - minY);
parameter.setAcreage(acreage);
//平均长度
double aveLength = BigDecimal.valueOf(totalLength / canvasPoints.size()).setScale(2, RoundingMode.HALF_UP).doubleValue();
parameter.setAveLength(aveLength);
//短笔画数量
double coefficient = 1.00;
int shortNums = getShortNums(aveLength,coefficient,lineParameterList);
parameter.setShortNums(shortNums);
//长笔画数量,等于总笔画减去短笔画的数量
parameter.setLongNums(lineParameterList.size() - shortNums);
//TODO 笔画中间值
return parameter;
}
/**
* 获取短笔画的数量
* @param aveLength 平均长度
* @param coefficient 自定义系数
* @param lineParameterList 所有笔画的参数
* @return 返回短笔画的数量
*/
private int getShortNums(double aveLength, double coefficient, List<QuestionVo.LineParameter> lineParameterList) {
int shortNums = 0;
double a = aveLength * coefficient;
if(CollectionUtil.isNotEmpty(lineParameterList)){
for(QuestionVo.LineParameter lineParameter : lineParameterList){
if(lineParameter.getLength() <= a){
shortNums++;
}
}
}
return shortNums;
}
private double getLengthByCanvas(String[] canvas) {
double l = 0;
for (int i = 1; i < canvas.length; i++){
@ -710,6 +775,6 @@ public class QuestionService implements IQuestionService {
double sqrt = Math.sqrt(pow + pow1);
l += sqrt;
}
return BigDecimal.valueOf(l).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return BigDecimal.valueOf(l).setScale(2, RoundingMode.HALF_UP).doubleValue();
}
}

5
ht/src/main/java/com/ccsens/ht/uitl/Constant.java

@ -2,6 +2,7 @@ package com.ccsens.ht.uitl;
import com.ccsens.util.PropUtil;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -49,6 +50,8 @@ public class Constant {
public static class Ht {
/**数字默认值*/
public final static byte NUMBER_DEFAULT = 0;
/**数字默认值*/
public final static BigDecimal NUMBER_DEFAULT_BIGDECIMAL = BigDecimal.valueOf(0);
/**字符串默认值*/
public final static String STRING_DEFAULT = "";
public final static String DOCTOR_PARAM = "doctor";
@ -117,6 +120,7 @@ public class Constant {
QUESTION_TYPE.add("MMSE");
QUESTION_TYPE.add("MoCA");
QUESTION_TYPE.add("Rey");
QUESTION_TYPE.add("XFXPD");
}
}
@ -130,6 +134,7 @@ public class Constant {
public final static String MMSE = "MMSE";
public final static String NPI = "NPI";
public final static String REY = "Rey";
public final static String XFXPD = "XFXPD";
/**报告单未完成*/
public final static Byte COMPLETE_NO = 0;
/**报告单已完成*/

2
ht/src/main/resources/application-dev.yml

@ -8,7 +8,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
host: api.ccsens.com
host: 127.0.0.1
password: 111111
port: 5672
username: admin

1
ht/src/main/resources/mapper_dao/HtPatientCanvasDao.xml

@ -5,6 +5,7 @@
<select id="getCanvasPoints" resultType="com.ccsens.ht.bean.vo.QuestionVo$Point">
SELECT
id as pointId,
points as `value`
FROM
t_ht_patient_canvas_line cl

40
ht/src/main/resources/mapper_raw/HtPatientAcpMapper.xml

@ -17,6 +17,8 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="is_del" jdbcType="TINYINT" property="isDel" />
<result column="recorder" jdbcType="BIGINT" property="recorder" />
<result column="ta1" jdbcType="VARCHAR" property="ta1" />
<result column="tpt" jdbcType="VARCHAR" property="tpt" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -78,7 +80,7 @@
</sql>
<sql id="Base_Column_List">
id, patient_id, ct, mri, hcy, vb12, folic_acid, tt3, tt4, tsh, remark, create_time,
update_time, is_del, recorder
update_time, is_del, recorder, ta1, tpt
</sql>
<select id="selectByExample" parameterType="com.ccsens.ht.bean.po.HtPatientAcpExample" resultMap="BaseResultMap">
select
@ -115,12 +117,12 @@
mri, hcy, vb12, folic_acid,
tt3, tt4, tsh, remark,
create_time, update_time, is_del,
recorder)
recorder, ta1, tpt)
values (#{id,jdbcType=BIGINT}, #{patientId,jdbcType=BIGINT}, #{ct,jdbcType=VARCHAR},
#{mri,jdbcType=VARCHAR}, #{hcy,jdbcType=VARCHAR}, #{vb12,jdbcType=VARCHAR}, #{folicAcid,jdbcType=VARCHAR},
#{tt3,jdbcType=VARCHAR}, #{tt4,jdbcType=VARCHAR}, #{tsh,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{isDel,jdbcType=TINYINT},
#{recorder,jdbcType=BIGINT})
#{recorder,jdbcType=BIGINT}, #{ta1,jdbcType=VARCHAR}, #{tpt,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.ht.bean.po.HtPatientAcp">
insert into t_ht_patient_acp
@ -170,6 +172,12 @@
<if test="recorder != null">
recorder,
</if>
<if test="ta1 != null">
ta1,
</if>
<if test="tpt != null">
tpt,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -217,6 +225,12 @@
<if test="recorder != null">
#{recorder,jdbcType=BIGINT},
</if>
<if test="ta1 != null">
#{ta1,jdbcType=VARCHAR},
</if>
<if test="tpt != null">
#{tpt,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.ht.bean.po.HtPatientAcpExample" resultType="java.lang.Long">
@ -273,6 +287,12 @@
<if test="record.recorder != null">
recorder = #{record.recorder,jdbcType=BIGINT},
</if>
<if test="record.ta1 != null">
ta1 = #{record.ta1,jdbcType=VARCHAR},
</if>
<if test="record.tpt != null">
tpt = #{record.tpt,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -294,7 +314,9 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
is_del = #{record.isDel,jdbcType=TINYINT},
recorder = #{record.recorder,jdbcType=BIGINT}
recorder = #{record.recorder,jdbcType=BIGINT},
ta1 = #{record.ta1,jdbcType=VARCHAR},
tpt = #{record.tpt,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -344,6 +366,12 @@
<if test="recorder != null">
recorder = #{recorder,jdbcType=BIGINT},
</if>
<if test="ta1 != null">
ta1 = #{ta1,jdbcType=VARCHAR},
</if>
<if test="tpt != null">
tpt = #{tpt,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -362,7 +390,9 @@
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
is_del = #{isDel,jdbcType=TINYINT},
recorder = #{recorder,jdbcType=BIGINT}
recorder = #{recorder,jdbcType=BIGINT},
ta1 = #{ta1,jdbcType=VARCHAR},
tpt = #{tpt,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

14
ht/src/main/resources/mapper_raw/HtPatientScoreMapper.xml

@ -9,7 +9,7 @@
<result column="question_id" jdbcType="BIGINT" property="questionId" />
<result column="option_id" jdbcType="BIGINT" property="optionId" />
<result column="option_name" jdbcType="VARCHAR" property="optionName" />
<result column="score" jdbcType="INTEGER" property="score" />
<result column="score" jdbcType="DECIMAL" property="score" />
<result column="type" jdbcType="TINYINT" property="type" />
<result column="answer" jdbcType="VARCHAR" property="answer" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
@ -119,7 +119,7 @@
)
values (#{id,jdbcType=BIGINT}, #{patientReportId,jdbcType=BIGINT}, #{patientId,jdbcType=BIGINT},
#{questionParentCode,jdbcType=VARCHAR}, #{questionId,jdbcType=BIGINT}, #{optionId,jdbcType=BIGINT},
#{optionName,jdbcType=VARCHAR}, #{score,jdbcType=INTEGER}, #{type,jdbcType=TINYINT},
#{optionName,jdbcType=VARCHAR}, #{score,jdbcType=DECIMAL}, #{type,jdbcType=TINYINT},
#{answer,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}, #{isDel,jdbcType=TINYINT}, #{answerTime,jdbcType=BIGINT}
)
@ -196,7 +196,7 @@
#{optionName,jdbcType=VARCHAR},
</if>
<if test="score != null">
#{score,jdbcType=INTEGER},
#{score,jdbcType=DECIMAL},
</if>
<if test="type != null">
#{type,jdbcType=TINYINT},
@ -252,7 +252,7 @@
option_name = #{record.optionName,jdbcType=VARCHAR},
</if>
<if test="record.score != null">
score = #{record.score,jdbcType=INTEGER},
score = #{record.score,jdbcType=DECIMAL},
</if>
<if test="record.type != null">
type = #{record.type,jdbcType=TINYINT},
@ -289,7 +289,7 @@
question_id = #{record.questionId,jdbcType=BIGINT},
option_id = #{record.optionId,jdbcType=BIGINT},
option_name = #{record.optionName,jdbcType=VARCHAR},
score = #{record.score,jdbcType=INTEGER},
score = #{record.score,jdbcType=DECIMAL},
type = #{record.type,jdbcType=TINYINT},
answer = #{record.answer,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
@ -323,7 +323,7 @@
option_name = #{optionName,jdbcType=VARCHAR},
</if>
<if test="score != null">
score = #{score,jdbcType=INTEGER},
score = #{score,jdbcType=DECIMAL},
</if>
<if test="type != null">
type = #{type,jdbcType=TINYINT},
@ -357,7 +357,7 @@
question_id = #{questionId,jdbcType=BIGINT},
option_id = #{optionId,jdbcType=BIGINT},
option_name = #{optionName,jdbcType=VARCHAR},
score = #{score,jdbcType=INTEGER},
score = #{score,jdbcType=DECIMAL},
type = #{type,jdbcType=TINYINT},
answer = #{answer,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},

14
ht/src/main/resources/mapper_raw/HtQuestionOptionMapper.xml

@ -7,7 +7,7 @@
<result column="sort" jdbcType="INTEGER" property="sort" />
<result column="type" jdbcType="VARCHAR" property="type" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="score" jdbcType="INTEGER" property="score" />
<result column="score" jdbcType="DECIMAL" property="score" />
<result column="display" jdbcType="VARCHAR" property="display" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
@ -112,7 +112,7 @@
display, remark, create_time,
update_time, is_del)
values (#{id,jdbcType=BIGINT}, #{questionId,jdbcType=BIGINT}, #{sort,jdbcType=INTEGER},
#{type,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{score,jdbcType=INTEGER},
#{type,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{score,jdbcType=DECIMAL},
#{display,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}, #{isDel,jdbcType=TINYINT})
</insert>
@ -170,7 +170,7 @@
#{name,jdbcType=VARCHAR},
</if>
<if test="score != null">
#{score,jdbcType=INTEGER},
#{score,jdbcType=DECIMAL},
</if>
<if test="display != null">
#{display,jdbcType=VARCHAR},
@ -214,7 +214,7 @@
name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.score != null">
score = #{record.score,jdbcType=INTEGER},
score = #{record.score,jdbcType=DECIMAL},
</if>
<if test="record.display != null">
display = #{record.display,jdbcType=VARCHAR},
@ -243,7 +243,7 @@
sort = #{record.sort,jdbcType=INTEGER},
type = #{record.type,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
score = #{record.score,jdbcType=INTEGER},
score = #{record.score,jdbcType=DECIMAL},
display = #{record.display,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
@ -269,7 +269,7 @@
name = #{name,jdbcType=VARCHAR},
</if>
<if test="score != null">
score = #{score,jdbcType=INTEGER},
score = #{score,jdbcType=DECIMAL},
</if>
<if test="display != null">
display = #{display,jdbcType=VARCHAR},
@ -295,7 +295,7 @@
sort = #{sort,jdbcType=INTEGER},
type = #{type,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
score = #{score,jdbcType=INTEGER},
score = #{score,jdbcType=DECIMAL},
display = #{display,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},

50
tall/src/main/java/com/ccsens/tall/rabbitMQ/MessageTest.java

@ -1,25 +1,25 @@
package com.ccsens.tall.rabbitMQ;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.bean.message.common.MessageConstant;
import com.ccsens.util.bean.message.common.ServerMessage;
import com.ccsens.util.config.RabbitMQConfig;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
public class MessageTest {
@Autowired
private AmqpTemplate rabbitTemplate;
public void messageTest() throws Exception {
ServerMessage serverMessage = new ServerMessage();
serverMessage.setType("Ping");
InMessage inMessage = InMessage.newToServerMessage(MessageConstant.DomainType.Server,serverMessage);
String j = JacksonUtil.beanToJson(inMessage);
System.out.println(j);
//FixMe 发送到消息队列
rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,j);
}
}
//package com.ccsens.tall.rabbitMQ;
//
//import com.ccsens.util.JacksonUtil;
//import com.ccsens.util.bean.message.common.InMessage;
//import com.ccsens.util.bean.message.common.MessageConstant;
//import com.ccsens.util.bean.message.common.ServerMessage;
//import com.ccsens.util.config.RabbitMQConfig;
//
//import org.springframework.amqp.core.AmqpTemplate;
//import org.springframework.beans.factory.annotation.Autowired;
//
//public class MessageTest {
// @Autowired
// private AmqpTemplate rabbitTemplate;
//
// public void messageTest() throws Exception {
// ServerMessage serverMessage = new ServerMessage();
// serverMessage.setType("Ping");
// InMessage inMessage = InMessage.newToServerMessage(MessageConstant.DomainType.Server,serverMessage);
// String j = JacksonUtil.beanToJson(inMessage);
// System.out.println(j);
// //FixMe 发送到消息队列
// rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,j);
// }
//}

6
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -374,6 +374,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
longSet.add(secondTaskVo.getEndTime());
}
timeList.addAll(longSet);
for (int i = 0; i < timeList.size(); i++) {
for (int j = 0; j < timeList.size() - i - 1; j++) {
if (timeList.get(j) > timeList.get(j + 1)) {
@ -383,6 +384,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
}
}
timeList.forEach(System.out::println);
int sequence = 1;
for (int i = 0; i < timeList.size() - 1; i++) {
TaskVo.NormalTask normalTask = null;
@ -1181,10 +1183,12 @@ public class ProTaskDetailService implements IProTaskDetailService {
//返回的任务详细信息
Long subTimeId = taskDeliverService.isTaskOrSubTime(taskDetail.getId());
normalTask = getTaskInfoByTaskId(currentUserId,project.getId(),subTimeId);
}
}else {
throw new BaseException(CodeEnum.NOT_POWER);
}
}else {
throw new BaseException(CodeEnum.NOT_PROJECT);
}
}else {
throw new BaseException(CodeEnum.NOT_TASK);
}

25
tall/src/main/java/com/ccsens/tall/service/UserService.java

@ -622,18 +622,35 @@ public class UserService implements IUserService {
throw new SmsException(SmsException.Error_SendTooFast);
}
//// String verifyCode = RandomUtil.randomNumbers(4);
// String verifyCode = "1111";
//
// //3.保存到redis中
// Integer codeValidInSeconds = WebConstant.Expired_Verify_Code_In_Seconds;
// Integer codeExistINSeconds = WebConstant.Exist_Verify_Code_In_Seconds;
// redisUtil.set(RedisKeyManager.getSigninSmsKey(phone), verifyCode, codeValidInSeconds);
// redisUtil.set(RedisKeyManager.getSigninSmsExistKey(phone), verifyCode, codeExistINSeconds);
//
// //5.发送验证码
// SmsUtil.sendSms(phone, verifyCode, client_type.phase, codeValidInSeconds);
//2.生成随机验证码
// String verifyCode = RandomUtil.randomNumbers(4);
String verifyCode = "1111";
if("1".equalsIgnoreCase(PropUtil.smsCode)){
verifyCode = RandomUtil.randomNumbers(4);
}
//3.保存到redis中
Integer codeValidInSeconds = WebConstant.Expired_Verify_Code_In_Seconds;
Integer codeExistINSeconds = WebConstant.Exist_Verify_Code_In_Seconds;
Integer codeExistInSeconds = WebConstant.Exist_Verify_Code_In_Seconds;
redisUtil.set(RedisKeyManager.getSigninSmsKey(phone), verifyCode, codeValidInSeconds);
redisUtil.set(RedisKeyManager.getSigninSmsExistKey(phone), verifyCode, codeExistINSeconds);
redisUtil.set(RedisKeyManager.getSigninSmsExistKey(phone), verifyCode, codeExistInSeconds);
//5.发送验证码
// SmsUtil.sendSms(phone, verifyCode, client_type.phase, codeValidInSeconds);
if("1".equalsIgnoreCase(PropUtil.smsCode)) {
SmsUtil.sendSms(phone, verifyCode,"", codeValidInSeconds);
}
//6.返回
smsCodeVo = new UserVo.SmsCode();

8
tall/src/main/resources/application-dev.yml

@ -11,10 +11,11 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
host: 192.168.0.99
password: 111111
# host: 192.168.0.99
host: 127.0.0.1
password: guest
port: 5672
username: admin
username: guest
redis:
database: 0
host: 127.0.0.1
@ -30,3 +31,4 @@ spring:
swagger:
enable: true
smsCode: 0

3
tall/src/main/resources/application-prod.yml

@ -7,7 +7,7 @@ spring:
datacenterId: 1
workerId: 1
application:
name: tall
name: tall-ht
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
@ -37,3 +37,4 @@ eureka:
ip-address: 81.70.54.64
gatewayUrl: https://sd.tall.wiki/gateway/
smsCode: 1

5
tall/src/main/resources/application-test.yml

@ -1,5 +1,5 @@
server:
port: 7030
port: 7031
servlet:
context-path: /v1.0
spring:
@ -7,7 +7,7 @@ spring:
datacenterId: 1
workerId: 1
application:
name: tall
name: tall-ht
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
@ -33,3 +33,4 @@ eureka:
instance:
ip-address: 192.168.0.99
gatewayUrl: http://192.168.0.99/gateway/
smsCode: 0

4
tall/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: dev
include: util-dev,common
active: prod
include: util-prod,common

6
util/src/main/java/com/ccsens/util/PropUtil.java

@ -18,6 +18,7 @@ public class PropUtil {
public static String contextPath;
public static String gatewayUrl;
public static String qrCode;
public static String smsCode;
@Value("${gatewayUrl:}")
public void setGatewayUrl(String gatewayUrl) {
@ -49,4 +50,9 @@ public class PropUtil {
PropUtil.contextPath = contextPath;
}
@Value("${smsCode:}")
public void setSmsCode(String smsCode) {
PropUtil.smsCode = smsCode;
}
}

51
util/src/main/java/com/ccsens/util/SmsUtil.java

@ -11,20 +11,61 @@ import java.io.IOException;
@Component
public class SmsUtil {
private static final int appid = 1400188778; // 1400开头
// private static final int appid = 1400188778; // 1400开头
// private static final String appkey = "c86ca104521ab2e28e1d4b558fdd665e";
// private static final int templateId = 286731; //{1} 验证码{1}, 您正在通过{2}登录传控科技“时物链条”会议管理系统,请与{3}分钟内填写,如非本人操作,请忽略本短信。
// private static final int templateId1 = 286682; //{1} 您正在通过{2}登录传控科技“时物链条”会议管理系统,请与{2}分钟内填写,如非本人操作,请忽略本短信。
// private static final String smsSign = "传控科技";
//
// public static void sendSms(String phone,String code,String appName,Integer seconds){
// String phoneNumbers[] = {phone};
// Integer minutes = (seconds - 1) / 60 + 1;
// try {
// String[] params = {code,appName,String.valueOf(minutes)};//数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
// SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
// SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
// templateId, params, smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
// System.out.println(result);
// } catch (HTTPException e) {
// // HTTP响应码错误
// e.printStackTrace();
// } catch (JSONException e) {
// // json解析错误
// e.printStackTrace();
// } catch (IOException e) {
// // 网络IO错误
// e.printStackTrace();
// }
// }
// 1400开头
private static final int appid = 1400188778;
private static final String appkey = "c86ca104521ab2e28e1d4b558fdd665e";
private static final int templateId = 286731; //{1} 验证码{1}, 您正在通过{2}登录传控科技“时物链条”会议管理系统,请与{3}分钟内填写,如非本人操作,请忽略本短信。
private static final int templateId1 = 286682; //{1} 您正在通过{2}登录传控科技“时物链条”会议管理系统,请与{2}分钟内填写,如非本人操作,请忽略本短信。
/**
* {1} 验证码{1} 您正在通过{2}登录传控科技时物链条会议管理系统请与{3}分钟内填写如非本人操作请忽略本短信\
*/
private static final int templateId = 286731;
/**
* {1} 您正在通过{2}登录传控科技时物链条会议管理系统请与{2}分钟内填写如非本人操作请忽略本短信
*/
private static final int templateId1 = 286682;
/**验证码{1},{2}分钟内有效,如非本人操作请忽略
*
*/
private static final int templateId2 = 686476;
private static final String smsSign = "传控科技";
public static void sendSms(String phone,String code,String appName,Integer seconds){
String phoneNumbers[] = {phone};
Integer minutes = (seconds - 1) / 60 + 1;
try {
String[] params = {code,appName,String.valueOf(minutes)};//数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
//数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
String[] params = {code,String.valueOf(minutes)};
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
// 签名参数未提供或者为空时,会使用默认签名发送短信
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
templateId, params, smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
templateId2, params, smsSign, "", "");
System.out.println(result);
} catch (HTTPException e) {
// HTTP响应码错误

Loading…
Cancel
Save