Commit 49d1e06a7d6b7f4872996f062d8e11ce29ce7111
1 parent
f142466d69
Exists in
master
and in
6 other branches
肌萎缩导出
Showing 6 changed files with 206 additions and 10 deletions
- platform-dal/src/main/java/com/lyms/platform/pojo/HusbandSmn.java
- platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/SmnResult.java
platform-dal/src/main/java/com/lyms/platform/pojo/HusbandSmn.java
View file @
49d1e06
... | ... | @@ -23,6 +23,7 @@ |
23 | 23 | private String marriage;//父母是否近亲结婚 1 是 2 否 |
24 | 24 | private String sendHospitalId;//送检医院 |
25 | 25 | |
26 | + private Date reviceDate;//接收时间 | |
26 | 27 | private Integer status; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格 |
27 | 28 | private String hospitalId;//当前录入机构id |
28 | 29 | private Double smn7; //基因外显子7 |
... | ... | @@ -41,6 +42,13 @@ |
41 | 42 | private String orgCityId; |
42 | 43 | private String orgAreaId; |
43 | 44 | |
45 | + public Date getReviceDate() { | |
46 | + return reviceDate; | |
47 | + } | |
48 | + | |
49 | + public void setReviceDate(Date reviceDate) { | |
50 | + this.reviceDate = reviceDate; | |
51 | + } | |
44 | 52 | |
45 | 53 | public String getId() { |
46 | 54 | return id; |
platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java
View file @
49d1e06
... | ... | @@ -66,7 +66,7 @@ |
66 | 66 | private String approver;//批准人 |
67 | 67 | private Date checkDate;//检查日期 |
68 | 68 | private Date created;//创建记录时间 |
69 | - | |
69 | + private Date reviceDate;//接收时间 | |
70 | 70 | private Map<String,Object> cqzd;//产前诊断 |
71 | 71 | private Map<String,Object> ycxsc;//遗传学筛查 |
72 | 72 | private Map<String,Object> mtys;//母体因素 |
... | ... | @@ -76,6 +76,15 @@ |
76 | 76 | private Date sfDate;//随访日期 |
77 | 77 | private Date ysfDate;//应随访日期 |
78 | 78 | private Integer sfStatus;//随访状态 0 正常状态 1 产前诊断 2 继续妊娠 3 失联 4终止妊娠 5 分娩 6随访完成 |
79 | + | |
80 | + | |
81 | + public Date getReviceDate() { | |
82 | + return reviceDate; | |
83 | + } | |
84 | + | |
85 | + public void setReviceDate(Date reviceDate) { | |
86 | + this.reviceDate = reviceDate; | |
87 | + } | |
79 | 88 | |
80 | 89 | public Date getYsfDate() { |
81 | 90 | return ysfDate; |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java
View file @
49d1e06
... | ... | @@ -15,6 +15,7 @@ |
15 | 15 | import org.springframework.web.bind.annotation.*; |
16 | 16 | |
17 | 17 | import javax.servlet.http.HttpServletRequest; |
18 | +import javax.servlet.http.HttpServletResponse; | |
18 | 19 | |
19 | 20 | @Controller |
20 | 21 | public class SmnController extends BaseController { |
... | ... | @@ -172,6 +173,21 @@ |
172 | 173 | @TokenRequired |
173 | 174 | public BaseListResponse getSmnList(@JsonAlias SmnQueryRequest param, HttpServletRequest request) { |
174 | 175 | return smnFacade.getSmnList(param, getUserId(request)); |
176 | + } | |
177 | + | |
178 | + /** | |
179 | + * 列表导出 | |
180 | + * @param param | |
181 | + * @param request | |
182 | + * @param response | |
183 | + */ | |
184 | + @RequestMapping(method = RequestMethod.GET, value = "/exportSmnList") | |
185 | + @ResponseBody | |
186 | + @TokenRequired | |
187 | + public void exportSmnList(@JsonAlias SmnQueryRequest param, HttpServletRequest request, HttpServletResponse response) { | |
188 | + param.setPage(1); | |
189 | + param.setLimit(10000); | |
190 | + smnFacade.exportSmnList(param, getUserId(request),response); | |
175 | 191 | } |
176 | 192 | |
177 | 193 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java
View file @
49d1e06
... | ... | @@ -7,10 +7,7 @@ |
7 | 7 | import com.lyms.platform.common.result.BaseListResponse; |
8 | 8 | import com.lyms.platform.common.result.BaseObjectResponse; |
9 | 9 | import com.lyms.platform.common.result.BaseResponse; |
10 | -import com.lyms.platform.common.utils.DateUtil; | |
11 | -import com.lyms.platform.common.utils.MongoConvertHelper; | |
12 | -import com.lyms.platform.common.utils.ReflectionUtils; | |
13 | -import com.lyms.platform.common.utils.StringUtils; | |
10 | +import com.lyms.platform.common.utils.*; | |
14 | 11 | import com.lyms.platform.operate.web.request.SmnQueryRequest; |
15 | 12 | import com.lyms.platform.operate.web.request.SmnRequest; |
16 | 13 | import com.lyms.platform.operate.web.result.SmnResult; |
... | ... | @@ -32,6 +29,9 @@ |
32 | 29 | import org.springframework.data.mongodb.core.query.Update; |
33 | 30 | import org.springframework.stereotype.Component; |
34 | 31 | |
32 | +import javax.servlet.http.HttpServletResponse; | |
33 | +import java.io.IOException; | |
34 | +import java.io.OutputStream; | |
35 | 35 | import java.util.*; |
36 | 36 | |
37 | 37 | @Component |
38 | 38 | |
... | ... | @@ -130,7 +130,15 @@ |
130 | 130 | } |
131 | 131 | |
132 | 132 | public BaseListResponse getSmnList(SmnQueryRequest param, Integer userId) { |
133 | + List<SmnResult> results = getSmsListResult( param, userId); | |
134 | + BaseListResponse baseListResponse = new BaseListResponse(); | |
135 | + baseListResponse.setData(results); | |
136 | + baseListResponse.setPageInfo(param.getPageInfo()); | |
137 | + return baseListResponse; | |
138 | + } | |
133 | 139 | |
140 | + private List<SmnResult> getSmsListResult(SmnQueryRequest param,Integer userId) | |
141 | + { | |
134 | 142 | String hospitalId = autoMatchFacade.getHospitalId(userId); |
135 | 143 | Query query = new Query(); |
136 | 144 | if(param.getQueryType() == 1) |
137 | 145 | |
... | ... | @@ -219,7 +227,19 @@ |
219 | 227 | end = DateUtil.getDayLastSecond(end); |
220 | 228 | query.addCriteria(Criteria.where("husbandSmns.checkDate").gte(start).lte(end)); |
221 | 229 | } |
230 | + String husbandReviceDate = param.getHusbandReviceDate(); | |
231 | + if (StringUtils.isNotEmpty(husbandReviceDate)) { | |
232 | + String[] arrs = husbandReviceDate.split(" - "); | |
233 | + Date start = DateUtil.parseYMD(arrs[0]); | |
234 | + Date end = DateUtil.parseYMD(arrs[1]); | |
235 | + end = DateUtil.getDayLastSecond(end); | |
236 | + query.addCriteria(Criteria.where("husbandSmns.reviceDate").gte(start).lte(end)); | |
237 | + } | |
222 | 238 | |
239 | + String husbandSendDoctor = param.getHusbandSendDoctor(); | |
240 | + if (husbandSendDoctor != null) { | |
241 | + query.addCriteria(Criteria.where("husbandSmns.sendDoctor").is(husbandSendDoctor)); | |
242 | + } | |
223 | 243 | |
224 | 244 | if(StringUtils.isNotEmpty(param.getQueryNo())) |
225 | 245 | { |
226 | 246 | |
227 | 247 | |
... | ... | @@ -254,11 +274,26 @@ |
254 | 274 | query.addCriteria(Criteria.where("checkDate").gte(start).lte(end)); |
255 | 275 | } |
256 | 276 | |
277 | + String reviceDate = param.getReviceDate(); | |
278 | + if (StringUtils.isNotEmpty(reviceDate)) { | |
279 | + String[] arrs = reviceDate.split(" - "); | |
280 | + Date start = DateUtil.parseYMD(arrs[0]); | |
281 | + Date end = DateUtil.parseYMD(arrs[1]); | |
282 | + end = DateUtil.getDayLastSecond(end); | |
283 | + query.addCriteria(Criteria.where("reviceDate").gte(start).lte(end)); | |
284 | + } | |
257 | 285 | |
286 | + | |
258 | 287 | Integer sfStatus = param.getSfStatus(); |
259 | 288 | if (sfStatus != null) { |
260 | 289 | query.addCriteria(Criteria.where("sfStatus").is(sfStatus)); |
261 | 290 | } |
291 | + | |
292 | + | |
293 | + String sendDoctor = param.getSendDoctor(); | |
294 | + if (sendDoctor != null) { | |
295 | + query.addCriteria(Criteria.where("sendDoctor").is(sendDoctor)); | |
296 | + } | |
262 | 297 | String sfDate = param.getSfDate(); |
263 | 298 | if (StringUtils.isNotEmpty(sfDate)) { |
264 | 299 | String[] arrs = sfDate.split(" - "); |
... | ... | @@ -310,7 +345,6 @@ |
310 | 345 | { |
311 | 346 | SmnResult re = new SmnResult(); |
312 | 347 | BeanUtils.copyProperties(model, re); |
313 | - | |
314 | 348 | re.setSendHospital(organizationService.getOrganizationName(model.getSendHospitalId())); |
315 | 349 | re.setApplyWeek(DateUtil.getWeekDesc(model.getLastMenses(),model.getSendDate())); |
316 | 350 | re.setCurrentWeek(DateUtil.getWeekDesc(model.getLastMenses(),new Date())); |
317 | 351 | |
318 | 352 | |
... | ... | @@ -320,18 +354,18 @@ |
320 | 354 | model.getStreetRegisterId(), |
321 | 355 | model.getAddressRegister(), basicConfigService)); |
322 | 356 | re.setPnationStr(CommonsHelper.getName1(model.getPnationId(),basicConfigService)); |
357 | + re.setReviceDateStr(DateUtil.getyyyy_MM_dd(model.getReviceDate())); | |
358 | + re.setYsfDateStr(DateUtil.getyyyy_MM_dd(model.getYsfDate())); | |
323 | 359 | results.add(re); |
324 | 360 | } |
325 | 361 | } |
326 | - BaseListResponse baseListResponse = new BaseListResponse(); | |
327 | - baseListResponse.setData(results); | |
328 | - baseListResponse.setPageInfo(param.getPageInfo()); | |
329 | - return baseListResponse; | |
362 | + return results; | |
330 | 363 | } |
331 | 364 | |
332 | 365 | public BaseResponse setSmnStatus(String id, Integer status) { |
333 | 366 | Query query = Query.query(Criteria.where("id").is(id)); |
334 | 367 | SmnModel smnModel = new SmnModel(); |
368 | + smnModel.setReviceDate(new Date()); | |
335 | 369 | smnModel.setStatus(status); |
336 | 370 | smnModel.setId(id); |
337 | 371 | Update update = MongoConvertHelper |
... | ... | @@ -491,6 +525,7 @@ |
491 | 525 | { |
492 | 526 | if (husbandSmn.getId().equals(id)) |
493 | 527 | { |
528 | + husbandSmn.setReviceDate(new Date()); | |
494 | 529 | husbandSmn.setStatus(status); |
495 | 530 | } |
496 | 531 | } |
... | ... | @@ -557,6 +592,89 @@ |
557 | 592 | .convertToNativeUpdate(ReflectionUtils.getUpdateField(smnModel)); |
558 | 593 | mongoTemplate.updateFirst(query1, update, SmnModel.class); |
559 | 594 | return new BaseResponse(); |
595 | + } | |
596 | + | |
597 | + public void exportSmnList(SmnQueryRequest param, Integer userId, HttpServletResponse response) { | |
598 | + | |
599 | + List<SmnResult> results = getSmsListResult(param,userId); | |
600 | + List<Map<String, Object>> datas = new ArrayList<>(); | |
601 | + if (CollectionUtils.isNotEmpty(results)) | |
602 | + { | |
603 | + for (SmnResult result : results) | |
604 | + { | |
605 | + Map<String, Object> data = new HashMap<>(); | |
606 | + data.put("name", result.getUsername()); | |
607 | + data.put("cardNo", result.getCardNo()); | |
608 | + data.put("age", DateUtil.getAge(result.getBirth(),result.getSendDate())); | |
609 | + data.put("phone", result.getPhone()); | |
610 | + data.put("address", result.getAddressRegisterStr()); | |
611 | + data.put("applyDate", DateUtil.getyyyy_MM_dd(result.getSendDate())); | |
612 | + data.put("reviceDateStr", result.getReviceDateStr()); | |
613 | + data.put("sendHospital", result.getSendHospital()); | |
614 | + String status = ""; | |
615 | + //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格 | |
616 | + if (result.getStatus() == 1) | |
617 | + { | |
618 | + status = "未申请"; | |
619 | + } | |
620 | + else if (result.getStatus() == 2) | |
621 | + { | |
622 | + status = "已申请"; | |
623 | + } | |
624 | + else if (result.getStatus() == 3) | |
625 | + { | |
626 | + status = "已接收"; | |
627 | + } | |
628 | + else if (result.getStatus() == 4) | |
629 | + { | |
630 | + status = "已筛查"; | |
631 | + } | |
632 | + else if (result.getStatus() == 5) | |
633 | + { | |
634 | + status = "不合格"; | |
635 | + } | |
636 | + data.put("status", status); | |
637 | + data.put("week", result.getApplyWeek()); | |
638 | + data.put("ybNum", result.getYbNum()); | |
639 | + data.put("checkDate", DateUtil.getyyyy_MM_dd(result.getCheckDate())); | |
640 | + data.put("smn7", result.getSmn7() == null ? "" : result.getSmn7()); | |
641 | + data.put("smn8", result.getSmn8() == null ? "" : result.getSmn8()); | |
642 | + data.put("result", result.getResult() == null ? "" : (result.getResult() == 1 ? "阴性" : "阳性")); | |
643 | +// data.put("ysfDate", "应随访日期"); | |
644 | +// data.put("sfStatus", "随访状态"); | |
645 | + datas.add(data); | |
646 | + } | |
647 | + } | |
648 | + OutputStream out = null; | |
649 | + try { | |
650 | + out = response.getOutputStream(); | |
651 | + Map <String, String> cnames = new LinkedHashMap <>(); | |
652 | + cnames.put("name", "姓名"); | |
653 | + cnames.put("cardNo", "身份证号"); | |
654 | + cnames.put("age", "年龄"); | |
655 | + cnames.put("phone", "电话"); | |
656 | + cnames.put("address", "居住地址"); | |
657 | + cnames.put("applyDate", "申请日期"); | |
658 | + cnames.put("sendHospital", "送检医院"); | |
659 | + cnames.put("reviceDateStr", "接收时间"); | |
660 | + cnames.put("status", "当前状态"); | |
661 | + cnames.put("week", "申请孕周"); | |
662 | + cnames.put("ybNum", "样本号"); | |
663 | + cnames.put("checkDate", "检查日期"); | |
664 | + cnames.put("smn7", "基因外显子7"); | |
665 | + cnames.put("smn8", "基因外显子8"); | |
666 | + cnames.put("result", "筛查结果"); | |
667 | +// cnames.put("ysfDate", "应随访日期"); | |
668 | +// cnames.put("sfStatus", "随访状态"); | |
669 | + | |
670 | + response.setContentType("application/octet-stream"); | |
671 | + response.setCharacterEncoding("UTF-8"); | |
672 | + response.setHeader("Content-Disposition", "attachment;fileName=" + "smn.xls"); | |
673 | + ExcelUtil.toExcel(out, datas, cnames); | |
674 | + } catch (IOException e) { | |
675 | + e.printStackTrace(); | |
676 | + } | |
677 | + | |
560 | 678 | } |
561 | 679 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java
View file @
49d1e06
... | ... | @@ -21,12 +21,15 @@ |
21 | 21 | private String orgCityId; |
22 | 22 | private String orgAreaId; |
23 | 23 | private String sendDoctor;//送检医生 |
24 | + private String husbandSendDoctor;//送检医生 | |
24 | 25 | private Integer startWeek; |
25 | 26 | private Integer endWeek; |
26 | 27 | |
27 | 28 | |
28 | 29 | private String husbandQueryNo;//查询号 身份证号码,手机号码,姓名 |
29 | 30 | private String husbandSendDate;//送检时间 |
31 | + private String husbandReviceDate;//丈夫接收时间 | |
32 | + private String ReviceDate;//孕妇接收时间 | |
30 | 33 | private String husbandYbNum;//样本号 |
31 | 34 | private Integer husbandStatus; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格 |
32 | 35 | private Integer husbandResult; //1 阴性 2 阳性 |
... | ... | @@ -36,6 +39,29 @@ |
36 | 39 | private String ysfDate;//应随访日期 |
37 | 40 | private Integer sfStatus;//随访状态 0 正常状态 1 产前诊断 2 继续妊娠 3 失联 4终止妊娠 5 分娩 6随访完成 |
38 | 41 | |
42 | + public String getHusbandSendDoctor() { | |
43 | + return husbandSendDoctor; | |
44 | + } | |
45 | + | |
46 | + public void setHusbandSendDoctor(String husbandSendDoctor) { | |
47 | + this.husbandSendDoctor = husbandSendDoctor; | |
48 | + } | |
49 | + | |
50 | + public String getHusbandReviceDate() { | |
51 | + return husbandReviceDate; | |
52 | + } | |
53 | + | |
54 | + public void setHusbandReviceDate(String husbandReviceDate) { | |
55 | + this.husbandReviceDate = husbandReviceDate; | |
56 | + } | |
57 | + | |
58 | + public String getReviceDate() { | |
59 | + return ReviceDate; | |
60 | + } | |
61 | + | |
62 | + public void setReviceDate(String reviceDate) { | |
63 | + ReviceDate = reviceDate; | |
64 | + } | |
39 | 65 | |
40 | 66 | public String getSendDoctor() { |
41 | 67 | return sendDoctor; |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/SmnResult.java
View file @
49d1e06
... | ... | @@ -12,6 +12,25 @@ |
12 | 12 | private String currentWeek; //当前孕周 |
13 | 13 | private String pnationStr; //民族 |
14 | 14 | private String sendHospital;//送检医院 |
15 | + private String reviceDateStr;//接收时间 | |
16 | + private String ysfDateStr;//应随访日期 | |
17 | + | |
18 | + | |
19 | + public String getYsfDateStr() { | |
20 | + return ysfDateStr; | |
21 | + } | |
22 | + | |
23 | + public void setYsfDateStr(String ysfDateStr) { | |
24 | + this.ysfDateStr = ysfDateStr; | |
25 | + } | |
26 | + | |
27 | + public String getReviceDateStr() { | |
28 | + return reviceDateStr; | |
29 | + } | |
30 | + | |
31 | + public void setReviceDateStr(String reviceDateStr) { | |
32 | + this.reviceDateStr = reviceDateStr; | |
33 | + } | |
15 | 34 | |
16 | 35 | public String getSendHospital() { |
17 | 36 | return sendHospital; |