Commit f861aa39bc1d44c7c52c97f187ce24cd6b4a82c4
1 parent
7d8cfe821e
Exists in
dev
检测记录保存,入参格式变更修改代码
Showing 5 changed files with 116 additions and 16 deletions
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/config/GlobalExceptionHandler.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsXljcRecordAnswer.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/request/XljcAnswerVO.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/request/XljcExamineRequest.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsXljcRecordServiceImpl.java
talkonlineweb/src/main/java/com/lyms/talkonlineweb/config/GlobalExceptionHandler.java
View file @
f861aa3
| ... | ... | @@ -3,11 +3,15 @@ |
| 3 | 3 | import com.lyms.talkonlineweb.result.BaseResponse; |
| 4 | 4 | import lombok.extern.log4j.Log4j2; |
| 5 | 5 | import org.springframework.http.HttpRequest; |
| 6 | -import org.springframework.web.bind.annotation.ControllerAdvice; | |
| 7 | -import org.springframework.web.bind.annotation.ExceptionHandler; | |
| 8 | -import org.springframework.web.bind.annotation.ResponseBody; | |
| 9 | -import org.springframework.web.bind.annotation.RestControllerAdvice; | |
| 6 | +import org.springframework.http.HttpStatus; | |
| 7 | +import org.springframework.validation.BindingResult; | |
| 8 | +import org.springframework.validation.FieldError; | |
| 9 | +import org.springframework.validation.ObjectError; | |
| 10 | +import org.springframework.web.bind.MethodArgumentNotValidException; | |
| 11 | +import org.springframework.web.bind.annotation.*; | |
| 10 | 12 | |
| 13 | +import java.util.List; | |
| 14 | + | |
| 11 | 15 | /** |
| 12 | 16 | * 全局异常处理类 |
| 13 | 17 | */ |
| ... | ... | @@ -15,6 +19,34 @@ |
| 15 | 19 | @Log4j2 |
| 16 | 20 | public class GlobalExceptionHandler { |
| 17 | 21 | |
| 22 | + /** | |
| 23 | + * 处理@Validated参数校验失败异常 | |
| 24 | + * @param exception 异常类 | |
| 25 | + * @return 响应 | |
| 26 | + */ | |
| 27 | + @ResponseBody | |
| 28 | + @ResponseStatus(HttpStatus.BAD_REQUEST) | |
| 29 | + @ExceptionHandler(MethodArgumentNotValidException.class) | |
| 30 | + public BaseResponse exceptionHandler(MethodArgumentNotValidException exception){ | |
| 31 | + BindingResult result = exception.getBindingResult(); | |
| 32 | + StringBuilder stringBuilder = new StringBuilder(); | |
| 33 | + if (result.hasErrors()) { | |
| 34 | + List<ObjectError> errors = result.getAllErrors(); | |
| 35 | + if (errors != null) { | |
| 36 | + errors.forEach(p -> { | |
| 37 | + FieldError fieldError = (FieldError) p; | |
| 38 | + log.warn("Bad Request Parameters: dto entity [{}],field [{}],message [{}]",fieldError.getObjectName(), fieldError.getField(), fieldError.getDefaultMessage()); | |
| 39 | + stringBuilder.append(fieldError.getDefaultMessage()+";"); | |
| 40 | + }); | |
| 41 | + } | |
| 42 | + } | |
| 43 | + BaseResponse baseResponse=new BaseResponse(); | |
| 44 | + baseResponse.setErrorcode(1); | |
| 45 | + baseResponse.setErrormsg(stringBuilder.toString()); | |
| 46 | + return baseResponse; | |
| 47 | + } | |
| 48 | + | |
| 49 | + | |
| 18 | 50 | @ExceptionHandler(value = Exception.class) |
| 19 | 51 | @ResponseBody |
| 20 | 52 | public BaseResponse exceptionHandler(Exception e){ |
| ... | ... | @@ -25,5 +57,7 @@ |
| 25 | 57 | e.printStackTrace(); |
| 26 | 58 | return baseResponse; |
| 27 | 59 | } |
| 60 | + | |
| 61 | + | |
| 28 | 62 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsXljcRecordAnswer.java
View file @
f861aa3
| ... | ... | @@ -30,16 +30,29 @@ |
| 30 | 30 | private Integer rid; |
| 31 | 31 | |
| 32 | 32 | /** |
| 33 | + * 问题分组 | |
| 34 | + */ | |
| 35 | + @TableField(value = "type_label") | |
| 36 | + private String typeLabel; | |
| 37 | + | |
| 38 | + /** | |
| 33 | 39 | * 问题序号 |
| 34 | 40 | */ |
| 35 | 41 | @TableField(value = "question_id") |
| 36 | - private Integer questionId; | |
| 42 | + private String questionId; | |
| 37 | 43 | |
| 38 | 44 | /** |
| 39 | 45 | * 问题答案 |
| 40 | 46 | */ |
| 41 | 47 | @TableField(value = "question_answer") |
| 42 | 48 | private String questionAnswer; |
| 49 | + | |
| 50 | + /** | |
| 51 | + * 问题名称,只有是其他是才有职位 | |
| 52 | + */ | |
| 53 | + @TableField(value = "question_label") | |
| 54 | + private String questionLabel; | |
| 55 | + | |
| 43 | 56 | |
| 44 | 57 | @TableField(value = "createdby") |
| 45 | 58 | private Integer createdby; |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/request/XljcAnswerVO.java
View file @
f861aa3
| 1 | +package com.lyms.talkonlineweb.request; | |
| 2 | + | |
| 3 | +import com.lyms.talkonlineweb.domain.LymsXljcRecordAnswer; | |
| 4 | +import lombok.Data; | |
| 5 | + | |
| 6 | +import java.io.Serializable; | |
| 7 | +import java.util.ArrayList; | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 10 | +@Data | |
| 11 | +public class XljcAnswerVO implements Serializable { | |
| 12 | + | |
| 13 | + private String typeLabel; | |
| 14 | + | |
| 15 | + List<LymsXljcRecordAnswer> recordAnswers = new ArrayList<>(); | |
| 16 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/request/XljcExamineRequest.java
View file @
f861aa3
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsXljcRecordServiceImpl.java
View file @
f861aa3
| ... | ... | @@ -8,6 +8,7 @@ |
| 8 | 8 | import com.lyms.talkonlineweb.enums.TraceStatusEnum; |
| 9 | 9 | import com.lyms.talkonlineweb.mapper.LymsXljcRecordMapper; |
| 10 | 10 | import com.lyms.talkonlineweb.request.ExamineRecordListRequest; |
| 11 | +import com.lyms.talkonlineweb.request.XljcAnswerVO; | |
| 11 | 12 | import com.lyms.talkonlineweb.request.XljcExamineRequest; |
| 12 | 13 | import com.lyms.talkonlineweb.request.XljcPatientRequest; |
| 13 | 14 | import com.lyms.talkonlineweb.result.*; |
| ... | ... | @@ -20,9 +21,7 @@ |
| 20 | 21 | import org.springframework.transaction.annotation.Transactional; |
| 21 | 22 | |
| 22 | 23 | import javax.annotation.Resource; |
| 23 | -import java.util.Calendar; | |
| 24 | -import java.util.Date; | |
| 25 | -import java.util.List; | |
| 24 | +import java.util.*; | |
| 26 | 25 | |
| 27 | 26 | @Log4j2 |
| 28 | 27 | @Service |
| 29 | 28 | |
| ... | ... | @@ -83,13 +82,20 @@ |
| 83 | 82 | recordResult.setCreatedtime(currentDate); |
| 84 | 83 | lymsXljcRecordResultService.save(recordResult); |
| 85 | 84 | |
| 86 | - List<LymsXljcRecordAnswer> answers = xljcExamineRequest.getAnswers(); | |
| 87 | - for(LymsXljcRecordAnswer answer: answers){ | |
| 88 | - answer.setRid(record.getId()); | |
| 89 | - answer.setCreatedby(curUser.getUid()); | |
| 90 | - answer.setCreatedtime(currentDate); | |
| 85 | + List<XljcAnswerVO> answers = xljcExamineRequest.getAnswers(); | |
| 86 | + List<LymsXljcRecordAnswer> recordAnswerList = new ArrayList<>(); | |
| 87 | + for(XljcAnswerVO answer: answers){ | |
| 88 | + List<LymsXljcRecordAnswer> recordAnswers = answer.getRecordAnswers(); | |
| 89 | + for(LymsXljcRecordAnswer recordAnswer: recordAnswers){ | |
| 90 | + recordAnswer.setRid(record.getId()); | |
| 91 | + recordAnswer.setTypeLabel(answer.getTypeLabel()); | |
| 92 | + recordAnswer.setCreatedby(curUser.getUid()); | |
| 93 | + recordAnswer.setCreatedtime(currentDate); | |
| 94 | + } | |
| 95 | + recordAnswerList.addAll(recordAnswers); | |
| 96 | + | |
| 91 | 97 | } |
| 92 | - lymsXljcRecordAnswerService.saveBatch(answers); | |
| 98 | + lymsXljcRecordAnswerService.saveBatch(recordAnswerList); | |
| 93 | 99 | |
| 94 | 100 | /** |
| 95 | 101 | *查询是否存在待追访记录 |
| 96 | 102 | |
| ... | ... | @@ -153,10 +159,41 @@ |
| 153 | 159 | query.eq("rid",rid); |
| 154 | 160 | List<LymsXljcRecordAnswer> recordAnswers = lymsXljcRecordAnswerService.list(query); |
| 155 | 161 | |
| 162 | + Map<String,List<LymsXljcRecordAnswer>> map = new HashMap<>(); | |
| 163 | + | |
| 164 | + for(LymsXljcRecordAnswer answer: recordAnswers){ | |
| 165 | + LymsXljcRecordAnswer recordAnswer = new LymsXljcRecordAnswer(); | |
| 166 | + recordAnswer.setQuestionId(answer.getQuestionId()); | |
| 167 | + recordAnswer.setQuestionAnswer(answer.getQuestionAnswer()); | |
| 168 | + recordAnswer.setQuestionLabel(answer.getQuestionLabel()); | |
| 169 | + | |
| 170 | + if(map.containsKey(answer.getTypeLabel())){ | |
| 171 | + map.get(answer.getTypeLabel()).add(recordAnswer); | |
| 172 | + }else{ | |
| 173 | + List<LymsXljcRecordAnswer> list = new ArrayList<>(); | |
| 174 | + list.add(recordAnswer); | |
| 175 | + map.put(answer.getTypeLabel(),list); | |
| 176 | + } | |
| 177 | + } | |
| 178 | + QueryWrapper<LymsXljcRecordTrace> trqceQuery = new QueryWrapper(); | |
| 179 | + trqceQuery.eq("rid",rid); | |
| 180 | + LymsXljcRecordTrace recordTrace = lymsXljcRecordTraceService.getOne(trqceQuery); | |
| 181 | + | |
| 156 | 182 | XljcExamineRequest request = new XljcExamineRequest(); |
| 157 | 183 | BeanUtils.copyProperties(record,request); |
| 158 | 184 | BeanUtils.copyProperties(recordResult,request); |
| 159 | - request.setAnswers(recordAnswers); | |
| 185 | + if(recordTrace != null){ | |
| 186 | + request.setNextExamineDate(recordTrace.getNextExamineDate()); | |
| 187 | + } | |
| 188 | + | |
| 189 | + List<XljcAnswerVO> xljcAnswerVOS = new ArrayList<>(); | |
| 190 | + map.forEach((key,value)->{ | |
| 191 | + XljcAnswerVO vo = new XljcAnswerVO(); | |
| 192 | + vo.setTypeLabel(key); | |
| 193 | + vo.setRecordAnswers(value); | |
| 194 | + xljcAnswerVOS.add(vo); | |
| 195 | + }); | |
| 196 | + request.setAnswers(xljcAnswerVOS); | |
| 160 | 197 | return request; |
| 161 | 198 | } |
| 162 | 199 |