Commit 49d1e06a7d6b7f4872996f062d8e11ce29ce7111

Authored by liquanyu
1 parent f142466d69

肌萎缩导出

Showing 6 changed files with 206 additions and 10 deletions

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;