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 |