Commit 55b6f83275944038fe5db4149e50735737bc2dfb

Authored by litao
1 parent b8aa5c320e

统计详情bug修复

Showing 2 changed files with 85 additions and 38 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ 55b6f83
... ... @@ -28,6 +28,7 @@
28 28 import scala.util.parsing.combinator.testing.Str;
29 29  
30 30 import javax.servlet.http.HttpServletResponse;
  31 +import java.lang.reflect.Method;
31 32 import java.sql.PreparedStatement;
32 33 import java.sql.ResultSet;
33 34 import java.sql.SQLException;
... ... @@ -703,7 +704,7 @@
703 704 couponInfo.put("type_desc", s);
704 705 }
705 706 Date useDate = (Date) couponInfo.get("use_date");
706   - couponInfo.put("use_date", DateUtil.getYmd(useDate));
  707 + couponInfo.put("use_date", DateUtil.getyyyy_MM_dd(useDate));
707 708 // setUsedInfo(couponInfo);
708 709 /** 设置产检日期、姓名、产检孕周、产检第次、产检机构、产检医生、联系电话 */
709 710 setUsedInfo((Integer) couponInfo.get("type"), (String) couponInfo.get("used_id"),
... ... @@ -731,7 +732,7 @@
731 732 Date checkDate = null; /** 产检日期 */
732 733 String username = null; /** 姓名 */
733 734 String week = null; /** 产检孕周 = 产检时间 - 末次月经 */
734   - Integer number = null; /** 产检第次 */
  735 + Integer number = 1; /** 产检第次 */
735 736 String operatorOrgName = null; /** 产检机构 */
736 737 String doctorName = null; /** 产检医生 */
737 738 String phone = null; /** 联系电话 */
738 739  
739 740  
740 741  
741 742  
... ... @@ -752,51 +753,37 @@
752 753 phone = patients.getPhone();
753 754 }
754 755 } else if(type == 2) {
755   - AntExChuModel antexc = mongoTemplate.findOne(Query.query(Criteria.where("barCode").is(sequence_id)), AntExChuModel.class);
  756 + AntExChuModel antexc = mongoTemplate.findById(usedId, AntExChuModel.class);
756 757 if(antexc != null) {
757   - map.put("checkDate", antexc.getCheckTime()); /** 产检日期 */
758   - Patients patients = mongoTemplate.findById(antexc.getParentId(), Patients.class);
759   - if(patients != null) {
760   - map.put("username", patients.getUsername()); /** 姓名 */
761   - }
762   - map.put("week", DateUtil.getWeek(antexc.getLastMenses(), antexc.getCheckTime()));/** 产检孕周 = 产检时间 - 末次月经 */
763   -
764   - List<AntExChuModel> antExChuModels = mongoTemplate.find(Query.query(Criteria.where("pid").is(antexc.getPid())).with(new Sort(Sort.Direction.ASC, "checkTime")), AntExChuModel.class);
765   - if(org.apache.commons.collections.CollectionUtils.isNotEmpty(antExChuModels)) {
766   - for(int i = 0; i < antExChuModels.size(); i++) {
767   - if(antExChuModels.get(i).getId().equals(antexc.getId())) {
768   - map.put("number", ++i); /** 产检第几次 */
769   - return;
770   - }
771   - }
772   - }
773   -
774   - map.put("doctorName", couponMapper.findUserName(antexc.getProdDoctor())); /** 产检医生 */
775   - map.put("operatorOrgName", couponMapper.findUserName(antexc.getOperator() + "")); /** 产检机构 */
776   - PersonModel personModel = mongoTemplate.findById(map.get("user_id"), PersonModel.class);
777   - if(personModel != null) {
778   - map.put("phone", personModel.getPhone());
779   - } else {
780   - map.put("phone", null);
781   - }
  758 + checkDate = antexc.getCheckTime();
  759 + username = findUserNameByPid(antexc.getPid());
  760 + week = DateUtil.getWeekDesc(antexc.getLastMenses(), antexc.getCheckTime());
  761 + number = findNumberByList("checkTime", "pid", antexc.getPid(), antexc, AntExChuModel.class);
  762 + operatorOrgName = couponMapper.findHospitalNameById(antexc.getHospitalId());
  763 + doctorName = couponMapper.findUserName(antexc.getProdDoctor());
  764 + phone = findPhoneByPid(antexc.getPid());
782 765 } else {
783 766 AntenatalExaminationModel antenatal = mongoTemplate.findOne(Query.query(Criteria.where("barCode").is(sequence_id)), AntenatalExaminationModel.class);
784 767 if(antenatal != null) {
785   - map.put("checkDate", antenatal.getCheckDate()); /** 产检日期 */
786   - Patients patients = mongoTemplate.findById(antenatal.getParentId(), Patients.class);
787   - if(patients != null) {
788   - map.put("username", patients.getUsername()); /** 姓名 */
  768 + checkDate = antenatal.getCheckDate();
  769 + username = findUserNameByPid(antenatal.getPid());
  770 + week = antenatal.getCurrentDueDate();
  771 + List<AntenatalExaminationModel> antExChuModels = mongoTemplate.find(Query.query(Criteria.where("pid").is(antenatal.getPid())).with(new Sort(Sort.Direction.ASC, "created")), AntenatalExaminationModel.class);
  772 + if(CollectionUtils.isNotEmpty(antExChuModels)) {
  773 + for(int i = 0; i < antExChuModels.size(); i++) {
  774 + if(antExChuModels.get(i).getId().equals(antenatal.getId())) {
  775 + number = ++i;
  776 + }
  777 + }
789 778 }
790   - map.put("week", antenatal.getCurrentDueDate());/** 产检孕周 = 产检时间 - 末次月经 */
791   - map.put("number", antenatal.getYn()); /** 产检第几次 */
792   - map.put("doctorName", couponMapper.findUserName(antenatal.getCheckDoctor())); /** 产检医生 */
793   - map.put("operatorOrgName", couponMapper.findUserName(antenatal.getOperator() + "")); /** 产检机构 */
794   - map.put("phone", couponMapper.findPhone(antenatal.getOperator() + ""));
  779 + doctorName = couponMapper.findUserName(antenatal.getCheckDoctor());
  780 + operatorOrgName = couponMapper.findHospitalNameById(antenatal.getHospitalId());
  781 + phone = findPhoneByPid(antenatal.getPid());
795 782 }
796 783 }
797 784 }
798 785  
799   - map.put("checkDate", checkDate);
  786 + map.put("checkDate", checkDate == null ? null : DateUtil.getyyyy_MM_dd(checkDate));
800 787 map.put("username", username);
801 788 map.put("week", week);
802 789 map.put("number", number);
... ... @@ -813,6 +800,36 @@
813 800 }
814 801 }
815 802 return null;
  803 + }
  804 +
  805 + private String findPhoneByPid(String pid) {
  806 + if(StringUtils.isNotEmpty(pid)) {
  807 + PersonModel personModel = mongoTemplate.findById(pid, PersonModel.class);
  808 + if(personModel != null) {
  809 + return personModel.getPhone();
  810 + }
  811 + }
  812 + return null;
  813 + }
  814 +
  815 + private <T> Integer findNumberByList(String sortField, String key, String value, T current, Class<T> clazz) {
  816 + Integer number = 1;
  817 + List<T> lists = mongoTemplate.find(Query.query(Criteria.where(key).is(value)).with(new Sort(Sort.Direction.ASC, sortField)), clazz);
  818 + if(CollectionUtils.isNotEmpty(lists)) {
  819 + try {
  820 + for(int i = 0; i < lists.size(); i++) {
  821 + T t = lists.get(i);
  822 + String tId = ReflectUtil.invoke(t, "getId") + "";
  823 + String currentId = ReflectUtil.invoke(current, "getId") + "";
  824 + if(StringUtils.isNotEmpty(tId) && StringUtils.isNotEmpty(currentId) && tId.equals(currentId)) {
  825 + number = ++i;
  826 + }
  827 + }
  828 + } catch (Exception e) {
  829 + e.printStackTrace();
  830 + }
  831 + }
  832 + return number;
816 833 }
817 834  
818 835 @Override
platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/ReflectUtil.java View file @ 55b6f83
  1 +package com.lyms.platform.operate.web.utils;
  2 +
  3 +import java.lang.reflect.Method;
  4 +
  5 +/**
  6 + * 反射相关工具类
  7 + * @Author: litao
  8 + * @Date: 2017/6/7 0007 17:02
  9 + * @Version: V1.0
  10 + */
  11 +public class ReflectUtil {
  12 +
  13 + /**
  14 + * 调用getxxx获取到值
  15 + * @param obj
  16 + * @param methodName
  17 + * @return
  18 + */
  19 + public static Object invoke(Object obj, String methodName) {
  20 + Object rest = null;
  21 + try {
  22 + Method method = obj.getClass().getMethod(methodName, null);
  23 + rest = method.invoke(obj, null);
  24 + } catch (Exception e) {
  25 + e.printStackTrace();
  26 + }
  27 + return rest;
  28 + }
  29 +
  30 +}