From 55b6f83275944038fe5db4149e50735737bc2dfb Mon Sep 17 00:00:00 2001 From: litao Date: Wed, 7 Jun 2017 17:26:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E8=AF=A6=E6=83=85bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/impl/ReportServiceImpl.java | 93 +++++++++++++--------- .../platform/operate/web/utils/ReflectUtil.java | 30 +++++++ 2 files changed, 85 insertions(+), 38 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/ReflectUtil.java diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index ca2e6b2..0f2a1b6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.stereotype.Service; import scala.util.parsing.combinator.testing.Str; import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Method; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -703,7 +704,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService couponInfo.put("type_desc", s); } Date useDate = (Date) couponInfo.get("use_date"); - couponInfo.put("use_date", DateUtil.getYmd(useDate)); + couponInfo.put("use_date", DateUtil.getyyyy_MM_dd(useDate)); // setUsedInfo(couponInfo); /** 设置产检日期、姓名、产检孕周、产检第次、产检机构、产检医生、联系电话 */ setUsedInfo((Integer) couponInfo.get("type"), (String) couponInfo.get("used_id"), @@ -731,7 +732,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService Date checkDate = null; /** 产检日期 */ String username = null; /** 姓名 */ String week = null; /** 产检孕周 = 产检时间 - 末次月经 */ - Integer number = null; /** 产检第次 */ + Integer number = 1; /** 产检第次 */ String operatorOrgName = null; /** 产检机构 */ String doctorName = null; /** 产检医生 */ String phone = null; /** 联系电话 */ @@ -752,51 +753,37 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService phone = patients.getPhone(); } } else if(type == 2) { - AntExChuModel antexc = mongoTemplate.findOne(Query.query(Criteria.where("barCode").is(sequence_id)), AntExChuModel.class); + AntExChuModel antexc = mongoTemplate.findById(usedId, AntExChuModel.class); if(antexc != null) { - map.put("checkDate", antexc.getCheckTime()); /** 产检日期 */ - Patients patients = mongoTemplate.findById(antexc.getParentId(), Patients.class); - if(patients != null) { - map.put("username", patients.getUsername()); /** 姓名 */ - } - map.put("week", DateUtil.getWeek(antexc.getLastMenses(), antexc.getCheckTime()));/** 产检孕周 = 产检时间 - 末次月经 */ - - List antExChuModels = mongoTemplate.find(Query.query(Criteria.where("pid").is(antexc.getPid())).with(new Sort(Sort.Direction.ASC, "checkTime")), AntExChuModel.class); - if(org.apache.commons.collections.CollectionUtils.isNotEmpty(antExChuModels)) { - for(int i = 0; i < antExChuModels.size(); i++) { - if(antExChuModels.get(i).getId().equals(antexc.getId())) { - map.put("number", ++i); /** 产检第几次 */ - return; - } - } - } - - map.put("doctorName", couponMapper.findUserName(antexc.getProdDoctor())); /** 产检医生 */ - map.put("operatorOrgName", couponMapper.findUserName(antexc.getOperator() + "")); /** 产检机构 */ - PersonModel personModel = mongoTemplate.findById(map.get("user_id"), PersonModel.class); - if(personModel != null) { - map.put("phone", personModel.getPhone()); - } else { - map.put("phone", null); - } + checkDate = antexc.getCheckTime(); + username = findUserNameByPid(antexc.getPid()); + week = DateUtil.getWeekDesc(antexc.getLastMenses(), antexc.getCheckTime()); + number = findNumberByList("checkTime", "pid", antexc.getPid(), antexc, AntExChuModel.class); + operatorOrgName = couponMapper.findHospitalNameById(antexc.getHospitalId()); + doctorName = couponMapper.findUserName(antexc.getProdDoctor()); + phone = findPhoneByPid(antexc.getPid()); } else { AntenatalExaminationModel antenatal = mongoTemplate.findOne(Query.query(Criteria.where("barCode").is(sequence_id)), AntenatalExaminationModel.class); if(antenatal != null) { - map.put("checkDate", antenatal.getCheckDate()); /** 产检日期 */ - Patients patients = mongoTemplate.findById(antenatal.getParentId(), Patients.class); - if(patients != null) { - map.put("username", patients.getUsername()); /** 姓名 */ + checkDate = antenatal.getCheckDate(); + username = findUserNameByPid(antenatal.getPid()); + week = antenatal.getCurrentDueDate(); + List antExChuModels = mongoTemplate.find(Query.query(Criteria.where("pid").is(antenatal.getPid())).with(new Sort(Sort.Direction.ASC, "created")), AntenatalExaminationModel.class); + if(CollectionUtils.isNotEmpty(antExChuModels)) { + for(int i = 0; i < antExChuModels.size(); i++) { + if(antExChuModels.get(i).getId().equals(antenatal.getId())) { + number = ++i; + } + } } - map.put("week", antenatal.getCurrentDueDate());/** 产检孕周 = 产检时间 - 末次月经 */ - map.put("number", antenatal.getYn()); /** 产检第几次 */ - map.put("doctorName", couponMapper.findUserName(antenatal.getCheckDoctor())); /** 产检医生 */ - map.put("operatorOrgName", couponMapper.findUserName(antenatal.getOperator() + "")); /** 产检机构 */ - map.put("phone", couponMapper.findPhone(antenatal.getOperator() + "")); + doctorName = couponMapper.findUserName(antenatal.getCheckDoctor()); + operatorOrgName = couponMapper.findHospitalNameById(antenatal.getHospitalId()); + phone = findPhoneByPid(antenatal.getPid()); } } } - map.put("checkDate", checkDate); + map.put("checkDate", checkDate == null ? null : DateUtil.getyyyy_MM_dd(checkDate)); map.put("username", username); map.put("week", week); map.put("number", number); @@ -815,6 +802,36 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService return null; } + private String findPhoneByPid(String pid) { + if(StringUtils.isNotEmpty(pid)) { + PersonModel personModel = mongoTemplate.findById(pid, PersonModel.class); + if(personModel != null) { + return personModel.getPhone(); + } + } + return null; + } + + private Integer findNumberByList(String sortField, String key, String value, T current, Class clazz) { + Integer number = 1; + List lists = mongoTemplate.find(Query.query(Criteria.where(key).is(value)).with(new Sort(Sort.Direction.ASC, sortField)), clazz); + if(CollectionUtils.isNotEmpty(lists)) { + try { + for(int i = 0; i < lists.size(); i++) { + T t = lists.get(i); + String tId = ReflectUtil.invoke(t, "getId") + ""; + String currentId = ReflectUtil.invoke(current, "getId") + ""; + if(StringUtils.isNotEmpty(tId) && StringUtils.isNotEmpty(currentId) && tId.equals(currentId)) { + number = ++i; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + return number; + } + @Override public void exportCouponInfo(Map param, HttpServletResponse response) { BaseObjectResponse resp = couponInfo(param); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/ReflectUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/ReflectUtil.java new file mode 100644 index 0000000..e4c1bbb --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/ReflectUtil.java @@ -0,0 +1,30 @@ +package com.lyms.platform.operate.web.utils; + +import java.lang.reflect.Method; + +/** + * 反射相关工具类 + * @Author: litao + * @Date: 2017/6/7 0007 17:02 + * @Version: V1.0 + */ +public class ReflectUtil { + + /** + * 调用getxxx获取到值 + * @param obj + * @param methodName + * @return + */ + public static Object invoke(Object obj, String methodName) { + Object rest = null; + try { + Method method = obj.getClass().getMethod(methodName, null); + rest = method.invoke(obj, null); + } catch (Exception e) { + e.printStackTrace(); + } + return rest; + } + +} -- 1.8.3.1