Commit 9e61c8273e78ee7e6eb2f21e17fef55e530bd5e9

Authored by hujiaqi
1 parent 62db5609bd

预产期管理

Showing 17 changed files with 679 additions and 31 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java View file @ 9e61c82
... ... @@ -3,8 +3,7 @@
3 3 import com.lyms.platform.common.dao.operator.MongoQuery;
4 4 import com.lyms.platform.common.dao.operator.Page;
5 5 import com.lyms.platform.pojo.Patients;
6   -import com.lyms.platform.pojo.PuerperaModel;
7   -import com.mongodb.Mongo;
  6 +import com.lyms.platform.pojo.PredictedStatisticsCountModel;
8 7  
9 8 import java.util.HashMap;
10 9 import java.util.List;
... ... @@ -34,6 +33,8 @@
34 33 void findAndModify(MongoQuery query,Patients obj);
35 34  
36 35 void updatePatientOneCol(String id, Object colValue);
  36 +
  37 + List<PredictedStatisticsCountModel> predictedStatistics();
37 38  
38 39 List<HashMap> aggregateOne(MongoQuery mongoQuery);
39 40 }
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java View file @ 9e61c82
... ... @@ -6,14 +6,12 @@
6 6 import com.lyms.platform.common.dao.operator.MongoOper;
7 7 import com.lyms.platform.common.dao.operator.MongoQuery;
8 8 import com.lyms.platform.common.dao.operator.Page;
9   -import com.lyms.platform.pojo.AntenatalExaminationModel;
10   -import com.lyms.platform.pojo.BabyModel;
11 9 import com.lyms.platform.pojo.Patients;
  10 +import com.lyms.platform.pojo.PredictedStatisticsCountModel;
12 11 import org.bson.types.ObjectId;
13 12 import org.springframework.data.mongodb.core.aggregation.Aggregation;
14 13 import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
15 14 import org.springframework.data.mongodb.core.aggregation.AggregationResults;
16   -import org.springframework.data.mongodb.core.aggregation.Field;
17 15 import org.springframework.data.mongodb.core.query.Criteria;
18 16 import org.springframework.data.mongodb.core.query.Query;
19 17 import org.springframework.data.mongodb.core.query.Update;
... ... @@ -42,6 +40,48 @@
42 40 @Override
43 41 public void updatePatientOneCol(String id, Object colValue) {
44 42 this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(id)), Update.update("nextCheckTime", colValue), Patients.class);
  43 + }
  44 +
  45 + @Override
  46 + public List<PredictedStatisticsCountModel> predictedStatistics() {
  47 + // List<PredictedStatisticsCountModel> predictedStatisticsCountModelList = new ArrayList<>();
  48 + // DBCollection dbCollection = this.mongoTemplate.getCollection("lyms_patient");
  49 + // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
  50 + // String date = simpleDateFormat.format(new Date());
  51 + // String map = "function() { " +
  52 + // "var date; " +
  53 + // "if (this['dueDate'] &&(this.dueDate.getFullYear()+'-'+(this.dueDate.getMonth()+1) == '" + date + "')) " +
  54 + // "{date = '" + date + "';} ";
  55 + // for (int i = 1; i < 10; i++) {
  56 + // map += "else if(this['dueDate'] &&(this.dueDate.getFullYear()+'-'+(this.dueDate.getMonth()+1) == '" + DateUtil.addMonthWithout0(date, i) + "'))" +
  57 + // "{date = '" + DateUtil.addMonthWith0(date, i) + "';} ";
  58 + // }
  59 + // map += "emit(date, 1);}";
  60 + // String reduce = "function(key, values) { " +
  61 + // "var sum = 0; " +
  62 + // "values.forEach(function(doc) { " +
  63 + // "sum += 1; " +
  64 + // "}); " +
  65 + // "return sum;} ";
  66 + // System.out.println(map);
  67 + // MapReduceCommand mapReduceCommand = new MapReduceCommand(dbCollection, map, reduce,
  68 + // null, MapReduceCommand.OutputType.INLINE, null);
  69 + // MapReduceOutput mapReduceOutput = dbCollection.mapReduce(mapReduceCommand);
  70 + // Map<String, String> resultMap = new HashMap<>();
  71 + // for (DBObject dbObject : mapReduceOutput.results()) {
  72 + // if (dbObject.get("_id") != null) {
  73 + // resultMap.put(dbObject.get("_id").toString(), dbObject.get("value").toString());
  74 + // }
  75 + // }
  76 + // for (int i = 0; i < 10; i++) {
  77 + // PredictedStatisticsCountModel predictedStatisticsCountModel = new PredictedStatisticsCountModel();
  78 + // predictedStatisticsCountModel.setPredicted(DateUtil.addMonthWith0(date, i));
  79 + // String number = resultMap.get(DateUtil.addMonthWith0(date, i));
  80 + // predictedStatisticsCountModel.setNumber(number == null ? "0" : String.valueOf(Double.valueOf(number).intValue()));
  81 + // predictedStatisticsCountModelList.add(predictedStatisticsCountModel);
  82 + // }
  83 + // return predictedStatisticsCountModelList;
  84 + return null;
45 85 }
46 86  
47 87 @Override
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java View file @ 9e61c82
... ... @@ -391,6 +391,10 @@
391 391 iPatientDao.updatePatientByPid(patientUpdate, pid);
392 392 }
393 393  
  394 + public List<PredictedStatisticsCountModel> predictedStatistics() {
  395 + return iPatientDao.predictedStatistics();
  396 + }
  397 +
394 398 private class PatientWorker extends Thread {
395 399 private List<Patients> patientses;
396 400 private long startTime;
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PredictedStatisticsService.java View file @ 9e61c82
  1 +package com.lyms.platform.biz.service;
  2 +
  3 +import org.springframework.stereotype.Service;
  4 +
  5 +/**
  6 + * @auther HuJiaqi
  7 + * @createTime 2016年11月28日 14时11分
  8 + * @discription
  9 + */
  10 +@Service
  11 +public class PredictedStatisticsService {
  12 +}
platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java View file @ 9e61c82
1 1 package com.lyms.platform.common.utils;
2 2  
3   -import org.apache.commons.lang.time.DateUtils;
4 3 import org.joda.time.DateTime;
5 4  
6 5 import java.text.ParseException;
7 6 import java.text.SimpleDateFormat;
8   -import java.util.*;
  7 +import java.util.Calendar;
  8 +import java.util.Date;
  9 +import java.util.GregorianCalendar;
9 10  
10 11 public class DateUtil {
11 12  
... ... @@ -806,5 +807,35 @@
806 807  
807 808  
808 809 }
  810 +
  811 + /**
  812 + * @auther HuJiaqi
  813 + * @createTime 2016年11月29日 11时30分
  814 + * @discription 这个方法是为了孕产妇围产管理-统计管理-预产期统计管理定制,请慎重使用
  815 + */
  816 + public static String addMonthWithout0(String date, int add) {
  817 + int year = Integer.valueOf(date.substring(0, 4));
  818 + int month = Integer.valueOf(date.substring(5)) + add;
  819 + if (month < 13) {
  820 + date = year + "-" + month;
  821 + } else {
  822 + date = (year + 1) + "-" + (month - 12);
  823 + }
  824 + return date;
  825 + }
  826 +
  827 + /**
  828 + * @auther HuJiaqi
  829 + * @createTime 2016年11月29日 11时30分
  830 + * @discription 这个方法是为了孕产妇围产管理-统计管理-预产期统计管理定制,请慎重使用
  831 + */
  832 + public static String addMonthWith0(String date, int add) {
  833 + date = addMonthWithout0(date, add);
  834 + if (date.substring(5).length() == 1) {
  835 + date = date.substring(0, 4) + "-" + 0 + date.substring(5);
  836 + }
  837 + return date;
  838 + }
  839 +
809 840 }
platform-dal/src/main/java/com/lyms/platform/pojo/PredictedStatisticsCountModel.java View file @ 9e61c82
  1 +package com.lyms.platform.pojo;
  2 +
  3 +/**
  4 + * @auther HuJiaqi
  5 + * @createTime 2016年11月28日 15时12分
  6 + * @discription
  7 + */
  8 +public class PredictedStatisticsCountModel {
  9 +
  10 + private String predicted;
  11 + private String number;
  12 +
  13 + public String getPredicted() {
  14 + return predicted;
  15 + }
  16 +
  17 + public void setPredicted(String predicted) {
  18 + this.predicted = predicted;
  19 + }
  20 +
  21 + public String getNumber() {
  22 + return number;
  23 + }
  24 +
  25 + public void setNumber(String number) {
  26 + this.number = number;
  27 + }
  28 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BCTransferInController.java View file @ 9e61c82
... ... @@ -26,7 +26,10 @@
26 26  
27 27 import javax.servlet.http.HttpServletRequest;
28 28 import javax.servlet.http.HttpServletResponse;
29   -import java.util.*;
  29 +import java.util.ArrayList;
  30 +import java.util.HashMap;
  31 +import java.util.List;
  32 +import java.util.Map;
30 33  
31 34 /**
32 35 * @auther HuJiaqi
... ... @@ -117,9 +120,8 @@
117 120 */
118 121 @ResponseBody
119 122 @RequestMapping(value = "query", method = RequestMethod.POST)
120   - public BaseListResponse query(HttpServletRequest httpServletRequest,
121   - @RequestParam String startDate,
122   - @RequestParam String endDate,
  123 + public BaseListResponse query(@RequestParam(required = false) String startDate,
  124 + @RequestParam(required = false) String endDate,
123 125 @RequestParam Integer page,
124 126 @RequestParam Integer limit) {
125 127 BaseListResponse baseListResponse;
... ... @@ -135,12 +137,7 @@
135 137 bcTransferInQueryRequest.setPage(page);
136 138 bcTransferInQueryRequest.setLimit(limit);
137 139  
138   - // TODO HuJiaqi-这里是自测使用的调试需要修改
139   - // LoginContext loginContext = (LoginContext) httpServletRequest.getAttribute("loginContext");
140   - // Integer operatorId = loginContext.getId();
141   - Integer operatorId = 123456;
142   -
143   - BCTransferInQueryResult bcTransferInQueryResult = bcTransferInFacade.query(bcTransferInQueryRequest, operatorId);
  140 + BCTransferInQueryResult bcTransferInQueryResult = bcTransferInFacade.query(bcTransferInQueryRequest);
144 141 if (bcTransferInQueryResult.getErrorcode() != ErrorCodeConstants.SUCCESS) {
145 142 baseListResponse = new BaseListResponse().setErrorcode(bcTransferInQueryResult.getErrorcode()).setErrormsg(bcTransferInQueryResult.getErrormsg());
146 143 return baseListResponse;
... ... @@ -154,9 +151,9 @@
154 151 }
155 152  
156 153 @RequestMapping(value = "excel", method = RequestMethod.GET)
157   - public void excel(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
158   - @RequestParam String startDate,
159   - @RequestParam String endDate,
  154 + public void excel(HttpServletResponse httpServletResponse,
  155 + @RequestParam(required = false) String startDate,
  156 + @RequestParam(required = false) String endDate,
160 157 @RequestParam Integer page,
161 158 @RequestParam Integer limit) {
162 159 try {
163 160  
... ... @@ -166,14 +163,9 @@
166 163 bcTransferInQueryRequest.setPage(page);
167 164 bcTransferInQueryRequest.setLimit(limit);
168 165  
169   - // TODO HuJiaqi-这里是自测使用的调试需要修改
170   - // LoginContext loginContext = (LoginContext) httpServletRequest.getAttribute("loginContext");
171   - // Integer operatorId = loginContext.getId();
172   - Integer operatorId = 123456;
173   -
174 166 // 这里返回的结果必然是这个泛型,之所以query返回的结果集没有用泛型是为了更好的传递数据
175 167 @SuppressWarnings("unchecked")
176   - List<BCTransferInHistoryQueryModel> bcTransferInHistoryQueryModelList = bcTransferInFacade.query(bcTransferInQueryRequest, operatorId).getData();
  168 + List<BCTransferInHistoryQueryModel> bcTransferInHistoryQueryModelList = bcTransferInFacade.query(bcTransferInQueryRequest).getData();
177 169 List<Map<String, Object>> list = new ArrayList<>();
178 170 for (BCTransferInHistoryQueryModel bcTransferInHistoryQueryModel : bcTransferInHistoryQueryModelList) {
179 171 Map<String, Object> map = BeanUtils.objectToObjectMap(bcTransferInHistoryQueryModel);
... ... @@ -189,7 +181,6 @@
189 181 header.put("total", "数量");
190 182 header.put("inOperatorName", "经办人");
191 183 header.put("isCancel", "可否撤销");
192   - // httpServletResponse.setHeader("Content-Disposition", "attachment;fileName=" + "证明入库(" + startDate + "至" + endDate + ").xls");
193 184 httpServletResponse.setContentType("application/force-download");
194 185 httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + new String(("证明入库(" + startDate + "至" + endDate + ").xls").getBytes("UTF-8"), "ISO-8859-1"));
195 186 ExcelUtil.toExcel(httpServletResponse.getOutputStream(), list, header);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PredictedStatisticsController.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.controller;
  2 +
  3 +import com.lyms.platform.common.annotation.TokenRequired;
  4 +import com.lyms.platform.common.base.LoginContext;
  5 +import com.lyms.platform.common.constants.ErrorCodeConstants;
  6 +import com.lyms.platform.common.result.BaseListResponse;
  7 +import com.lyms.platform.operate.web.facade.PredictedStatisticsFacade;
  8 +import com.lyms.platform.operate.web.request.PredictedStatisticsRequest;
  9 +import com.lyms.platform.operate.web.request.PredictedStatisticsSumRequest;
  10 +import com.lyms.platform.operate.web.result.PredictedStatisticsResult;
  11 +import com.lyms.platform.operate.web.result.PredictedStatisticsSumResult;
  12 +import org.apache.log4j.Logger;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.stereotype.Controller;
  15 +import org.springframework.web.bind.annotation.RequestMapping;
  16 +import org.springframework.web.bind.annotation.RequestMethod;
  17 +import org.springframework.web.bind.annotation.RequestParam;
  18 +import org.springframework.web.bind.annotation.ResponseBody;
  19 +
  20 +import javax.servlet.http.HttpServletRequest;
  21 +
  22 +/**
  23 + * @auther HuJiaqi
  24 + * @createTime 2016年11月28日 11时31分
  25 + * @discription 孕产妇围产管理-统计管理-预产期统计管理
  26 + */
  27 +@Controller
  28 +public class PredictedStatisticsController {
  29 +
  30 + private Logger log = Logger.getLogger(this.getClass());
  31 +
  32 + @Autowired
  33 + private PredictedStatisticsFacade predictedStatisticsFacade;
  34 +
  35 + @ResponseBody
  36 + @TokenRequired
  37 + @RequestMapping(value = "predictedStatistics", method = RequestMethod.POST)
  38 + public BaseListResponse predictedStatistics(HttpServletRequest httpServletRequest,
  39 + @RequestParam(required = false) String doctorId,
  40 + @RequestParam Integer page,
  41 + @RequestParam Integer limit,
  42 + @RequestParam(required = false) String date) {
  43 + BaseListResponse baseListResponse;
  44 + try {
  45 + PredictedStatisticsRequest predictedStatisticsRequest = new PredictedStatisticsRequest();
  46 + predictedStatisticsRequest.setDoctorId(doctorId);
  47 + predictedStatisticsRequest.setPage(page);
  48 + predictedStatisticsRequest.setLimit(limit);
  49 + predictedStatisticsRequest.setDate(date);
  50 +
  51 + predictedStatisticsRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId());
  52 +
  53 + PredictedStatisticsResult predictedStatisticsResult = predictedStatisticsFacade.predictedStatistics(predictedStatisticsRequest);
  54 + if (predictedStatisticsResult.getErrorcode() != ErrorCodeConstants.SUCCESS) {
  55 + baseListResponse = new BaseListResponse().setErrorcode(predictedStatisticsResult.getErrorcode()).setErrormsg(predictedStatisticsResult.getErrormsg());
  56 + return baseListResponse;
  57 + }
  58 + baseListResponse = new BaseListResponse().setErrorcode(predictedStatisticsResult.getErrorcode()).setErrormsg(predictedStatisticsResult.getErrormsg()).setData(predictedStatisticsResult.getData()).setPageInfo(predictedStatisticsResult.getPageInfo());
  59 + } catch (Exception e) {
  60 + baseListResponse = new BaseListResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION);
  61 + log.error("predictedStatistics异常:" + e);
  62 + }
  63 + return baseListResponse;
  64 + }
  65 +
  66 + @ResponseBody
  67 + @TokenRequired
  68 + @RequestMapping(value = "predictedStatisticsSum", method = RequestMethod.POST)
  69 + public BaseListResponse predictedStatisticsSum(HttpServletRequest httpServletRequest,
  70 + @RequestParam(required = false) String doctorId) {
  71 + BaseListResponse baseListResponse;
  72 + try {
  73 + PredictedStatisticsSumRequest predictedStatisticsRequest = new PredictedStatisticsSumRequest();
  74 + predictedStatisticsRequest.setDoctorId(doctorId);
  75 +
  76 + predictedStatisticsRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId());
  77 +
  78 + PredictedStatisticsSumResult predictedStatisticsSumResult = predictedStatisticsFacade.predictedStatisticsSum(predictedStatisticsRequest);
  79 + if (predictedStatisticsSumResult.getErrorcode() != ErrorCodeConstants.SUCCESS) {
  80 + baseListResponse = new BaseListResponse().setErrorcode(predictedStatisticsSumResult.getErrorcode()).setErrormsg(predictedStatisticsSumResult.getErrormsg());
  81 + return baseListResponse;
  82 + }
  83 + baseListResponse = new BaseListResponse().setErrorcode(predictedStatisticsSumResult.getErrorcode()).setErrormsg(predictedStatisticsSumResult.getErrormsg()).setData(predictedStatisticsSumResult.getData());
  84 + } catch (Exception e) {
  85 + baseListResponse = new BaseListResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION);
  86 + log.error("predictedStatistics异常:" + e);
  87 + }
  88 + return baseListResponse;
  89 + }
  90 +
  91 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BCTransferInFacade.java View file @ 9e61c82
... ... @@ -147,12 +147,12 @@
147 147 return bcTransferInCancelResult;
148 148 }
149 149  
150   - public BCTransferInQueryResult query(BCTransferInQueryRequest bcTransferInQueryRequest, Integer operatorId) {
  150 + public BCTransferInQueryResult query(BCTransferInQueryRequest bcTransferInQueryRequest) {
151 151  
152 152 BCTransferInQueryResult bcTransferInQueryResult = new BCTransferInQueryResult();
153 153  
154 154 BCTransferInHistoryQuery bcTransferInHistoryQuery = new BCTransferInHistoryQuery();
155   - BeanUtils.copy(bcTransferInQueryRequest,bcTransferInHistoryQuery);
  155 + BeanUtils.copy(bcTransferInQueryRequest, bcTransferInHistoryQuery);
156 156  
157 157  
158 158 // 查询
159 159  
... ... @@ -165,9 +165,9 @@
165 165 for (BCTransferInHistoryModel bcTransferInHistoryModel : bcTransferInHistoryModelList) {
166 166 BCTransferInHistoryQueryModel bcTransferInHistoryQueryModel = new BCTransferInHistoryQueryModel();
167 167 BeanUtils.copy(bcTransferInHistoryModel, bcTransferInHistoryQueryModel);
168   - if(BCEnums.TRANSFER_IN_HISTORY_EXIST.code.equals(bcTransferInHistoryModel.getStatus())){
  168 + if (BCEnums.TRANSFER_IN_HISTORY_EXIST.code.equals(bcTransferInHistoryModel.getStatus())) {
169 169 bcTransferInHistoryQueryModel.setIsCancel(TRANSFER_IN_HISTORY_QUERY_YES.code);
170   - }else{
  170 + } else {
171 171 bcTransferInHistoryQueryModel.setIsCancel(TRANSFER_IN_HISTORY_QUERY_NO.code);
172 172 }
173 173 bcTransferInHistoryQueryModelList.add(bcTransferInHistoryQueryModel);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PredictedStatisticsFacade.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.facade;
  2 +
  3 +import com.lyms.platform.biz.service.BasicConfigService;
  4 +import com.lyms.platform.biz.service.PatientsService;
  5 +import com.lyms.platform.common.constants.ErrorCodeConstants;
  6 +import com.lyms.platform.common.enums.RiskDefaultTypeEnum;
  7 +import com.lyms.platform.common.enums.YnEnums;
  8 +import com.lyms.platform.common.utils.BeanUtils;
  9 +import com.lyms.platform.common.utils.DateUtil;
  10 +import com.lyms.platform.common.utils.StringUtils;
  11 +import com.lyms.platform.operate.web.request.PredictedStatisticsRequest;
  12 +import com.lyms.platform.operate.web.request.PredictedStatisticsSumRequest;
  13 +import com.lyms.platform.operate.web.result.PredictedStatisticsQueryModel;
  14 +import com.lyms.platform.operate.web.result.PredictedStatisticsResult;
  15 +import com.lyms.platform.operate.web.result.PredictedStatisticsSumResult;
  16 +import com.lyms.platform.operate.web.result.RiskLevelResultModel;
  17 +import com.lyms.platform.permission.service.UsersService;
  18 +import com.lyms.platform.pojo.Patients;
  19 +import com.lyms.platform.pojo.PredictedStatisticsCountModel;
  20 +import com.lyms.platform.query.PatientsQuery;
  21 +import net.sf.json.JSONArray;
  22 +import org.springframework.beans.factory.annotation.Autowired;
  23 +import org.springframework.stereotype.Component;
  24 +
  25 +import java.text.SimpleDateFormat;
  26 +import java.util.ArrayList;
  27 +import java.util.Date;
  28 +import java.util.List;
  29 +
  30 +/**
  31 + * @auther HuJiaqi
  32 + * @createTime 2016年11月28日 11时36分
  33 + * @discription
  34 + */
  35 +@Component
  36 +public class PredictedStatisticsFacade {
  37 +
  38 + @Autowired
  39 + private PatientsService patientsService;
  40 +
  41 + @Autowired
  42 + private BasicConfigService basicConfigService;
  43 +
  44 + @Autowired
  45 + private UsersService usersService;
  46 +
  47 + public PredictedStatisticsResult predictedStatistics(PredictedStatisticsRequest predictedStatisticsRequest) {
  48 + PredictedStatisticsResult predictedStatisticsResult = new PredictedStatisticsResult();
  49 + PatientsQuery patientsQuery = new PatientsQuery();
  50 + BeanUtils.copy(predictedStatisticsRequest, patientsQuery);
  51 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
  52 + String ym = predictedStatisticsRequest.getDate();
  53 + Date date;
  54 + if (StringUtils.isEmpty(ym)) {
  55 + try {
  56 + date = simpleDateFormat.parse(predictedStatisticsRequest.getDate());
  57 + } catch (Exception e) {
  58 + date = new Date();
  59 + }
  60 + } else {
  61 + date = new Date();
  62 + }
  63 + Date startDate = DateUtil.getMonthStart(date);
  64 + Date endDate = DateUtil.getMonthEndTime(date);
  65 + patientsQuery.setDueDateStart(startDate);
  66 + patientsQuery.setDueDateEnd(endDate);
  67 + patientsQuery.setNeed(YnEnums.YES.name());
  68 + patientsQuery.setYn(YnEnums.YES.getId());
  69 + patientsQuery.setHospitalId(usersService.getUsers(predictedStatisticsRequest.getOperatorId()).getOrgId().toString());
  70 + patientsQuery.setType(1);
  71 + String doctorId = predictedStatisticsRequest.getDoctorId();
  72 + if (!StringUtils.isEmpty(doctorId)) {
  73 + patientsQuery.setLastCheckEmployeeId(doctorId);
  74 + }
  75 + // 查列表
  76 + List<Patients> patientsList = patientsService.queryPatient(patientsQuery);
  77 + List<PredictedStatisticsQueryModel> predictedStatisticsQueryModelList = new ArrayList<>();
  78 + if (patientsList != null && patientsList.size() > 0) {
  79 + for (Patients patients : patientsList) {
  80 + PredictedStatisticsQueryModel predictedStatisticsQueryModel = new PredictedStatisticsQueryModel();
  81 + BeanUtils.copy(patients, predictedStatisticsQueryModel);
  82 + predictedStatisticsQueryModel.setDueDate(DateUtil.getyyyy_MM_dd(patients.getDueDate()));
  83 + predictedStatisticsQueryModel.setRiskLevelResultModelList(getRiskLevel(patients.getRiskLevelId()));
  84 + predictedStatisticsQueryModel.setRiskFactor(getRiskFactor(patients.getFirstRiskFactorId()));
  85 + predictedStatisticsQueryModel.setLastCheckEmployee(getLastCheckEmployee(patients.getLastCheckEmployeeId()));
  86 + predictedStatisticsQueryModel.setGestationalWeeks(getGestationalWeeks(patients.getLastMenses()));
  87 + predictedStatisticsQueryModelList.add(predictedStatisticsQueryModel);
  88 + }
  89 + }
  90 + predictedStatisticsResult.setPageInfo(patientsQuery.getPageInfo());
  91 + predictedStatisticsResult.setData(predictedStatisticsQueryModelList);
  92 +
  93 + predictedStatisticsResult.setErrorcode(ErrorCodeConstants.SUCCESS);
  94 + predictedStatisticsResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION);
  95 +
  96 + return predictedStatisticsResult;
  97 + }
  98 +
  99 + public PredictedStatisticsSumResult predictedStatisticsSum(PredictedStatisticsSumRequest predictedStatisticsRequest) {
  100 +
  101 + PredictedStatisticsSumResult predictedStatisticsSumResult = new PredictedStatisticsSumResult();
  102 + // 查统计
  103 + // List<PredictedStatisticsCountModel> predictedStatisticsCountModelList = patientsService.predictedStatistics();
  104 + List<PredictedStatisticsCountModel> predictedStatisticsCountModelList = new ArrayList<>();
  105 + Date date = new Date();
  106 + for (int i = 0; i < 10; i++) {
  107 + date = DateUtil.addMonth(date, i);
  108 + Date startDate = DateUtil.getMonthStart(date);
  109 + Date endDate = DateUtil.getMonthEndTime(date);
  110 + PatientsQuery patientsQuery = new PatientsQuery();
  111 + String doctorId = predictedStatisticsRequest.getDoctorId();
  112 + patientsQuery.setHospitalId(usersService.getUsers(predictedStatisticsRequest.getOperatorId()).getOrgId().toString());
  113 + if (!StringUtils.isEmpty(doctorId)) {
  114 + patientsQuery.setLastCheckEmployeeId(doctorId);
  115 + }
  116 + patientsQuery.setDueDateStart(startDate);
  117 + patientsQuery.setDueDateEnd(endDate);
  118 + int count = patientsService.queryPatientCount(patientsQuery);
  119 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
  120 + String dateStr = simpleDateFormat.format(new Date());
  121 + PredictedStatisticsCountModel predictedStatisticsCountModel = new PredictedStatisticsCountModel();
  122 + predictedStatisticsCountModel.setPredicted(DateUtil.addMonthWith0(dateStr, i));
  123 + predictedStatisticsCountModel.setNumber(String.valueOf(count));
  124 + predictedStatisticsCountModelList.add(predictedStatisticsCountModel);
  125 + }
  126 + predictedStatisticsSumResult.setData(predictedStatisticsCountModelList);
  127 +
  128 + predictedStatisticsSumResult.setErrorcode(ErrorCodeConstants.SUCCESS);
  129 + predictedStatisticsSumResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION);
  130 +
  131 + return predictedStatisticsSumResult;
  132 +
  133 + }
  134 +
  135 + private static String getGestationalWeeks(Date date) {
  136 + try {
  137 + long s = new Date().getTime() - date.getTime();
  138 + long d = s / (60 * 60 * 24 * 1000);
  139 + int day = (int) d;
  140 + int w = day / 7;
  141 + int dd = day % 7;
  142 + return "孕" + w + "周+" + dd + "天";
  143 + } catch (Exception e) {
  144 + return "";
  145 + }
  146 + }
  147 +
  148 + private List<RiskLevelResultModel> getRiskLevel(String str) {
  149 +
  150 + List<RiskLevelResultModel> riskLevelResultModelList = new ArrayList<>();
  151 +
  152 + Object[] array;
  153 + try {
  154 + array = JSONArray.fromObject(str).toArray();
  155 + } catch (Exception e) {
  156 + return null;
  157 + }
  158 + if (array.length > 0) {
  159 + for (Object o : array) {
  160 + RiskLevelResultModel riskLevelResultModel = new RiskLevelResultModel();
  161 + try {
  162 + String name = basicConfigService.getOneBasicConfigById(o.toString()).getName();
  163 + if (name.contains("预警")) {
  164 + name = name.replace("预警", "");
  165 + }
  166 + riskLevelResultModel.setName(name);
  167 + riskLevelResultModel.setColor("risk_" + RiskDefaultTypeEnum.getColor(name));
  168 + riskLevelResultModelList.add(riskLevelResultModel);
  169 + } catch (Exception e) {
  170 + // 什么都不干
  171 + }
  172 + }
  173 + }
  174 + return riskLevelResultModelList;
  175 + }
  176 +
  177 + private String getRiskFactor(List<String> list) {
  178 + String riskFactor = "";
  179 + if (list != null && list.size() > 0) {
  180 + for (String s : list) {
  181 + try {
  182 + riskFactor += basicConfigService.getOneBasicConfigById(s).getName();
  183 + } catch (Exception e) {
  184 + riskFactor += "";
  185 + }
  186 + }
  187 + }
  188 + return riskFactor;
  189 + }
  190 +
  191 +
  192 + private String getLastCheckEmployee(String str) {
  193 + try {
  194 + return usersService.getUsers(Integer.valueOf(str)).getName();
  195 + } catch (Exception e) {
  196 + return "";
  197 + }
  198 + }
  199 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PredictedStatisticsRequest.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.request;
  2 +
  3 +/**
  4 + * @auther HuJiaqi
  5 + * @createTime 2016年11月28日 11时37分
  6 + * @discription
  7 + */
  8 +public class PredictedStatisticsRequest extends BasePageQueryRequest {
  9 +
  10 + private String doctorId;
  11 +
  12 + private Integer operatorId;
  13 +
  14 + private String date;
  15 +
  16 + public String getDate() {
  17 + return date;
  18 + }
  19 +
  20 + public void setDate(String date) {
  21 + this.date = date;
  22 + }
  23 +
  24 + public Integer getOperatorId() {
  25 + return operatorId;
  26 + }
  27 +
  28 + public void setOperatorId(Integer operatorId) {
  29 + this.operatorId = operatorId;
  30 + }
  31 +
  32 + public String getDoctorId() {
  33 + return doctorId;
  34 + }
  35 +
  36 + public void setDoctorId(String doctorId) {
  37 + this.doctorId = doctorId;
  38 + }
  39 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PredictedStatisticsSumRequest.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.request;
  2 +
  3 +/**
  4 + * @auther HuJiaqi
  5 + * @createTime 2016年11月30日 10时14分
  6 + * @discription
  7 + */
  8 +public class PredictedStatisticsSumRequest {
  9 +
  10 + private Integer operatorId;
  11 + private String doctorId;
  12 +
  13 + public String getDoctorId() {
  14 + return doctorId;
  15 + }
  16 +
  17 + public void setDoctorId(String doctorId) {
  18 + this.doctorId = doctorId;
  19 + }
  20 +
  21 + public Integer getOperatorId() {
  22 + return operatorId;
  23 + }
  24 +
  25 + public void setOperatorId(Integer operatorId) {
  26 + this.operatorId = operatorId;
  27 + }
  28 +
  29 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PredictedStatisticsQueryModel.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.result;
  2 +
  3 +import java.util.List;
  4 +
  5 +/**
  6 + * @auther HuJiaqi
  7 + * @createTime 2016年11月28日 11时46分
  8 + * @discription
  9 + */
  10 +public class PredictedStatisticsQueryModel {
  11 +
  12 + /**
  13 + * @auther HuJiaqi
  14 + * @createTime 2016年11月29日 17时03分
  15 + * @discription 姓名
  16 + */
  17 + private String username;
  18 + /**
  19 + * @auther HuJiaqi
  20 + * @createTime 2016年11月29日 17时03分
  21 + * @discription 孕周
  22 + */
  23 + // 需要计算
  24 + private String gestationalWeeks;
  25 + /**
  26 + * @auther HuJiaqi
  27 + * @createTime 2016年11月29日 17时04分
  28 + * @discription 预产期
  29 + */
  30 + private String dueDate;
  31 + /**
  32 + * @auther HuJiaqi
  33 + * @createTime 2016年11月29日 17时05分
  34 + * @discription 高危评分
  35 + */
  36 + private Integer riskScore;
  37 + /**
  38 + * @auther HuJiaqi
  39 + * @createTime 2016年11月29日 17时06分
  40 + * @discription 风险等级
  41 + */
  42 + // 需要计算
  43 + private List<RiskLevelResultModel> riskLevelResultModelList;
  44 + /**
  45 + * @auther HuJiaqi
  46 + * @createTime 2016年11月29日 17时06分
  47 + * @discription 风险因素
  48 + */
  49 + // 需要计算
  50 + private String riskFactor;
  51 + /**
  52 + * @auther HuJiaqi
  53 + * @createTime 2016年11月29日 17时06分
  54 + * @discription 产检医生
  55 + */
  56 + private String lastCheckEmployee;
  57 +
  58 + private String pid;
  59 +
  60 + public String getPid() {
  61 + return pid;
  62 + }
  63 +
  64 + public void setPid(String pid) {
  65 + this.pid = pid;
  66 + }
  67 +
  68 + public String getUsername() {
  69 + return username;
  70 + }
  71 +
  72 + public void setUsername(String username) {
  73 + this.username = username;
  74 + }
  75 +
  76 + public String getGestationalWeeks() {
  77 + return gestationalWeeks;
  78 + }
  79 +
  80 + public void setGestationalWeeks(String gestationalWeeks) {
  81 + this.gestationalWeeks = gestationalWeeks;
  82 + }
  83 +
  84 + public String getDueDate() {
  85 + return dueDate;
  86 + }
  87 +
  88 + public void setDueDate(String dueDate) {
  89 + this.dueDate = dueDate;
  90 + }
  91 +
  92 + public Integer getRiskScore() {
  93 + return riskScore;
  94 + }
  95 +
  96 + public void setRiskScore(Integer riskScore) {
  97 + this.riskScore = riskScore;
  98 + }
  99 +
  100 + public List<RiskLevelResultModel> getRiskLevelResultModelList() {
  101 + return riskLevelResultModelList;
  102 + }
  103 +
  104 + public void setRiskLevelResultModelList(List<RiskLevelResultModel> riskLevelResultModelList) {
  105 + this.riskLevelResultModelList = riskLevelResultModelList;
  106 + }
  107 +
  108 + public String getRiskFactor() {
  109 + return riskFactor;
  110 + }
  111 +
  112 + public void setRiskFactor(String riskFactor) {
  113 + this.riskFactor = riskFactor;
  114 + }
  115 +
  116 + public String getLastCheckEmployee() {
  117 + return lastCheckEmployee;
  118 + }
  119 +
  120 + public void setLastCheckEmployee(String lastCheckEmployee) {
  121 + this.lastCheckEmployee = lastCheckEmployee;
  122 + }
  123 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PredictedStatisticsQuerySumModel.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.result;
  2 +
  3 +/**
  4 + * @auther HuJiaqi
  5 + * @createTime 2016年11月28日 11时48分
  6 + * @discription
  7 + */
  8 +public class PredictedStatisticsQuerySumModel {
  9 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PredictedStatisticsResult.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.result;
  2 +
  3 +import com.lyms.platform.common.result.BaseListResponse;
  4 +
  5 +/**
  6 + * @auther HuJiaqi
  7 + * @createTime 2016年11月28日 14时29分
  8 + * @discription
  9 + */
  10 +public class PredictedStatisticsResult extends BaseListResponse {
  11 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PredictedStatisticsSumResult.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.result;
  2 +
  3 +import com.lyms.platform.common.result.BaseListResponse;
  4 +
  5 +/**
  6 + * @auther HuJiaqi
  7 + * @createTime 2016年11月28日 11时38分
  8 + * @discription
  9 + */
  10 +public class PredictedStatisticsSumResult extends BaseListResponse {
  11 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskLevelResultModel.java View file @ 9e61c82
  1 +package com.lyms.platform.operate.web.result;
  2 +
  3 +/**
  4 + * @auther HuJiaqi
  5 + * @createTime 2016年11月30日 10时57分
  6 + * @discription
  7 + */
  8 +public class RiskLevelResultModel {
  9 +
  10 + private String name;
  11 +
  12 + private String color;
  13 +
  14 + public String getName() {
  15 + return name;
  16 + }
  17 +
  18 + public void setName(String name) {
  19 + this.name = name;
  20 + }
  21 +
  22 + public String getColor() {
  23 + return color;
  24 + }
  25 +
  26 + public void setColor(String color) {
  27 + this.color = color;
  28 + }
  29 +}