Commit def12ea40ddf6c1703a98d9adffeb3ed929b2976

Authored by litao
1 parent d9e3195985

复查管理导出

Showing 7 changed files with 149 additions and 21 deletions

platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java View file @ def12ea
... ... @@ -2,9 +2,11 @@
2 2  
3 3 import org.joda.time.DateTime;
4 4  
  5 +import java.sql.*;
5 6 import java.text.ParseException;
6 7 import java.text.SimpleDateFormat;
7 8 import java.util.*;
  9 +import java.util.Date;
8 10 import java.util.concurrent.locks.Lock;
9 11 import java.util.concurrent.locks.ReentrantLock;
10 12  
11 13  
12 14  
... ... @@ -969,14 +971,8 @@
969 971 return result;
970 972 }
971 973  
972   - public static void main(String[] arg) throws Exception {
973 974  
974   - System.out.println(parseYMDHMS("2017-02-10"));
975   -// System.out.println(getMonth(start));
976   -// System.out.println(getMonth(end));
977   - }
978 975  
979   -
980 976 /**
981 977 * 获取月龄描述信息 优惠券使用时间 - 分娩时间
982 978 * @param start
... ... @@ -1002,5 +998,33 @@
1002 998 calendar.setTime(date);
1003 999 return calendar.get(Calendar.MONTH) + 1;
1004 1000 }
  1001 +
  1002 + /**
  1003 + * 返回当前时间 只包括年月日
  1004 + * @return
  1005 + */
  1006 + public static Date getYMDTime(){
  1007 + try {
  1008 + Date now = new SimpleDateFormat("yyyy-MM-dd").parse(getymd());
  1009 + return now;
  1010 + } catch (Exception e) {
  1011 + e.printStackTrace();
  1012 + }
  1013 + return null;
  1014 + }
  1015 +
  1016 + /**
  1017 + * 获取当前时间加上多少周的时间
  1018 + * @param week
  1019 + * @return
  1020 + */
  1021 + public static Date getWeekDay(Integer week) {
  1022 + Date now = getYMDTime();
  1023 + Calendar calendar = Calendar.getInstance();
  1024 + calendar.setTime(now);
  1025 + calendar.add(Calendar.WEEK_OF_YEAR, week);
  1026 + return calendar.getTime();
  1027 + }
  1028 +
1005 1029 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PostReviewController.java View file @ def12ea
... ... @@ -18,6 +18,7 @@
18 18 import org.springframework.web.bind.annotation.*;
19 19  
20 20 import javax.servlet.http.HttpServletRequest;
  21 +import javax.servlet.http.HttpServletResponse;
21 22 import javax.validation.Valid;
22 23 import java.util.Date;
23 24  
... ... @@ -131,6 +132,21 @@
131 132 public BaseObjectResponse postpartumReview(Date startDate, Date endDate, String doctorId,
132 133 String key, Integer page, Integer limit, HttpServletRequest request) {
133 134 return postReviewService.postpartumReview(getUserId(request), startDate, endDate, doctorId, key, page, limit);
  135 + }
  136 +
  137 + /**
  138 + * 复查管理导出
  139 + * @param startDate
  140 + * @param endDate
  141 + * @param doctorId
  142 + * @param key 姓名/联系方式/就诊卡
  143 + * @return
  144 + */
  145 + @RequestMapping(method = RequestMethod.GET, value = "/postpartum/review/export")
  146 + @TokenRequired
  147 + public void postpartumReviewExport(Date startDate, Date endDate, String doctorId,
  148 + String key, HttpServletRequest request, HttpServletResponse response) {
  149 + postReviewService.postpartumReviewExport(getUserId(request), startDate, endDate, doctorId, key, response);
134 150 }
135 151 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java View file @ def12ea
... ... @@ -31,7 +31,7 @@
31 31 private IReportService reportService;
32 32  
33 33 /**
34   - * 产检次数分布统计
  34 + * 产检次数分布统计(已废弃 采用 getCheckNumber)
35 35 *
36 36 * @param startDate 建档开始时间
37 37 * @param endDate 建档结束时间
... ... @@ -43,6 +43,7 @@
43 43 @RequestMapping(method = RequestMethod.GET, value = "/getCheckStatistics")
44 44 @ResponseBody
45 45 @TokenRequired
  46 + @Deprecated
46 47 public BaseObjectResponse getCheckStatistics(String startDate, String endDate,
47 48 Integer startWeek, Integer endWeek, Integer childBirth, HttpServletRequest request) {
48 49 LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
49 50  
... ... @@ -50,7 +51,29 @@
50 51 // return reportService.areaCountFacade(startDate, endDate, startWeek, endWeek, childBirth, 753);
51 52 }
52 53  
  54 + /**
  55 + * 产检次数分布统计
  56 + *
  57 + * @param startDate 建档开始时间
  58 + * @param endDate 建档结束时间
  59 + * @param startWeek 孕周开始时间
  60 + * @param endWeek 孕周结束时间
  61 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部
  62 + * @return
  63 + */
  64 + @RequestMapping(method = RequestMethod.GET, value = "/getCheckNumber")
  65 + @ResponseBody
  66 + @TokenRequired
  67 + public BaseObjectResponse getCheckNumber(Date startDate, Date endDate,
  68 + Integer startWeek, Integer endWeek, Integer childBirth, HttpServletRequest request) {
  69 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  70 + return reportService.getCheckNumber(startDate, endDate, startWeek, endWeek, childBirth, loginState.getId());
  71 +// return reportService.areaCountFacade(startDate, endDate, startWeek, endWeek, childBirth, 753);
  72 + }
53 73  
  74 +
  75 +
  76 +
54 77 /**
55 78 * 产检次数分布统计 excel 导出
56 79 *
... ... @@ -170,7 +193,6 @@
170 193 HttpServletRequest request, HttpServletResponse resp) {
171 194 LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
172 195 reportService.exportDoctorInfo(startDate, endDate, childBirth, number, name, loginState.getId(), resp);
173   -// reportService.exportDoctorInfo(startDate, endDate, childBirth, number, name, 753, resp);
174 196 }
175 197  
176 198 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPostReviewService.java View file @ def12ea
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
4 4  
  5 +import javax.servlet.http.HttpServletResponse;
5 6 import java.util.Date;
6 7  
7 8 /**
... ... @@ -9,5 +10,7 @@
9 10 */
10 11 public interface IPostReviewService extends IBaseService {
11 12 BaseObjectResponse postpartumReview(Integer userId, Date startDate, Date endDate, String doctorId, String key, Integer page, Integer limit);
  13 +
  14 + void postpartumReviewExport(Integer userId, Date startDate, Date endDate, String doctorId, String key, HttpServletResponse response);
12 15 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java View file @ def12ea
... ... @@ -3,6 +3,7 @@
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
4 4  
5 5 import javax.servlet.http.HttpServletResponse;
  6 +import java.util.Date;
6 7 import java.util.Map;
7 8  
8 9 /**
... ... @@ -76,5 +77,7 @@
76 77 void exportCouponInfo(Map<String, Object> param, HttpServletResponse response);
77 78  
78 79 BaseObjectResponse patient(Integer userId, String s, String provinceId, String cityId, String year);
  80 +
  81 + BaseObjectResponse getCheckNumber(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth, Integer userId);
79 82 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PostReviewServiceImpl.java View file @ def12ea
... ... @@ -8,6 +8,7 @@
8 8 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
9 9 import com.lyms.platform.operate.web.service.IPostReviewService;
10 10 import com.lyms.platform.operate.web.utils.MongoUtil;
  11 +import com.lyms.platform.operate.web.utils.ResponseUtil;
11 12 import com.lyms.platform.permission.dao.master.MasterUsersMapper;
12 13 import com.lyms.platform.permission.model.Users;
13 14 import com.lyms.platform.pojo.Patients;
... ... @@ -20,6 +21,7 @@
20 21 import org.springframework.data.mongodb.core.query.Query;
21 22 import org.springframework.stereotype.Service;
22 23  
  24 +import javax.servlet.http.HttpServletResponse;
23 25 import java.util.*;
24 26  
25 27 /**
... ... @@ -92,6 +94,45 @@
92 94 }
93 95 pageResult.setGrid(rest);
94 96 return RespBuilder.buildSuccess(pageResult);
  97 + }
  98 +
  99 + @Override
  100 + public void postpartumReviewExport(Integer userId, Date startDate, Date endDate, String doctorId, String key, HttpServletResponse response) {
  101 + BaseObjectResponse rest = postpartumReview(userId, startDate, endDate, doctorId, key, 1, Integer.MAX_VALUE);
  102 + PageResult pageResult = (PageResult) rest.getData();
  103 + List<Map<String, Object>> datas = (List<Map<String, Object>>) pageResult.getGrid();
  104 + Map<String, String> cnames = new LinkedHashMap<>();
  105 + cnames.put("id", "#");
  106 + cnames.put("checkTime", "复查日期");
  107 + cnames.put("hcertificateNum", "证件号");
  108 + cnames.put("username", "姓名");
  109 + cnames.put("age", "年龄");
  110 + cnames.put("day", "产后天数");
  111 + cnames.put("reviewCount", "复查次数");
  112 + cnames.put("reviewHospitalCount", "本院复查次数");
  113 + cnames.put("doctorName", "检查医生");
  114 + cnames.put("phone", "联系电话");
  115 +
  116 + List<Map<String,Object>> results = new ArrayList<>();
  117 + if(CollectionUtils.isNotEmpty(datas)) {
  118 + int i = 0;
  119 + for (Map<String, Object> data : datas) {
  120 + Map<String, Object> result = new LinkedHashMap<>();
  121 + result.put("id", ++i);
  122 + result.put("checkTime", data.get("checkTime"));
  123 + result.put("hcertificateNum", data.get("hcertificateNum"));
  124 + result.put("username", data.get("username"));
  125 + result.put("age", data.get("age"));
  126 + result.put("day", data.get("day"));
  127 + result.put("reviewCount", data.get("reviewCount"));
  128 + result.put("reviewHospitalCount", data.get("reviewHospitalCount"));
  129 + result.put("doctorName", data.get("doctorName"));
  130 + result.put("phone", data.get("phone"));
  131 + results.add(result);
  132 + }
  133 + }
  134 +
  135 + ResponseUtil.responseExcel(cnames, results, response);
95 136 }
96 137 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ def12ea
... ... @@ -15,6 +15,7 @@
15 15 import com.lyms.platform.permission.dao.master.CouponMapper;
16 16 import com.lyms.platform.pojo.*;
17 17 import com.lymsh.platform.reportdata.model.echarts.Series;
  18 +import javafx.scene.shape.Circle;
18 19 import org.apache.commons.collections.MapUtils;
19 20 import org.apache.commons.lang.StringUtils;
20 21 import org.springframework.beans.factory.annotation.Autowired;
21 22  
22 23  
23 24  
... ... @@ -1149,22 +1150,40 @@
1149 1150  
1150 1151 List<Series> series = createPatientSeries(mapList);
1151 1152 reportModel.setSeries(series);
  1153 + return RespBuilder.buildSuccess("patients", mapList, "report", reportModel);
  1154 + }
1152 1155  
1153   - /*Map<String, Object> countMap = new HashMap<>();
1154   - countMap.put("id", -1);
1155   - countMap.put("parentId", null);
1156   - countMap.put("name", "建册人数(按居住地)");
1157   - List<Object> qhdData = series.get(0).getData();
1158   - List<Object> otherData = series.get(0).getData();
1159   - Integer count = 0;
1160   - for(int i = 0; i< 12; i++) {
1161   - countMap.put(i + 1 + "", Integer.parseInt(qhdData.get(i) + "") + Integer.parseInt(otherData.get(i) + ""));
1162   - count += Integer.parseInt(qhdData.get(i) + "") + Integer.parseInt(otherData.get(i) + "");
  1156 + @Override
  1157 + public BaseObjectResponse getCheckNumber(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth, Integer userId) {
  1158 + BaseObjectResponse rest = new BaseObjectResponse();
  1159 + Criteria criteria = Criteria.where("hospitalId").is(autoMatchFacade.getHospitalId(userId));
  1160 + if(startDate != null && endDate != null) {
  1161 + criteria.and("bookbuildingDate").gte(startDate).lt(DateUtil.addDay(endDate, 1));
1163 1162 }
1164   - countMap.put("count", count);
1165   - mapList.add(countMap);*/
  1163 + if(startWeek != null) { /** 末次月经 到 现在相隔的周数 */
  1164 + criteria.and("lastMenses").lt(DateUtil.addDay(DateUtil.getWeekDay(startWeek), 1));
  1165 + }
  1166 + if(endWeek != null) { /** 末次月经 到 现在相隔的周数 */
  1167 + criteria.and("lastMenses").gte(DateUtil.addDay(DateUtil.getWeekDay(startWeek), 1));
  1168 + }
1166 1169  
1167   - return RespBuilder.buildSuccess("patients", mapList, "report", reportModel);
  1170 + List<Patients> patients = mongoUtil.findField(Patients.class, criteria, "id");
  1171 + System.out.println(patients.size());
  1172 +// List<AntExChuModel> antExChuModels = mongoTemplate.find(antexcQuery, AntExChuModel.class);
  1173 +
  1174 +// mongoUtil.findField(AntExChuModel.class, antexcQuery, "");
  1175 +
  1176 + /*Map<String, Object> restMap = new HashMap<>();
  1177 + List<Object> params = new ArrayList<>();
  1178 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  1179 + List<Map<String, Object>> mapList = reportDao.findList(getAreaCountFacadeSql(startDate, endDate, startWeek, endWeek, childBirth, hospitalId, params), params);
  1180 + List<Object> peopleList = createPeoples(mapList);
  1181 + restMap.put("grid", createGrid( createPeoples(mapList), createProportion(peopleList)));
  1182 + restMap.put("xAxis", Arrays.asList("1次", "2次", "3次", "4次", "5次", "6次", "7次", "8次", "9次", "10次", "11次", "12次", "≥13次")); *//** x轴数据 *//*
  1183 + restMap.put("yAxis", createYData(peopleList));
  1184 +
  1185 + rest.setData(restMap);*/
  1186 + return rest;
1168 1187 }
1169 1188  
1170 1189 private List<Series> createPatientSeries(List<Map<String, Object>> datas) {