Commit dea1412b3900befda738a8641fd1706a24d0274f

Authored by hujiaqi
1 parent b898f4abaa
Exists in master

自定义查询

Showing 7 changed files with 174 additions and 19 deletions

platform-common/src/main/java/com/lyms/platform/common/utils/BeanUtils.java View file @ dea1412
... ... @@ -193,5 +193,26 @@
193 193 }
194 194 }
195 195  
  196 + /**
  197 + * @auther HuJiaqi
  198 + * @createTime 2016年12月28日 14时27分
  199 + * @discription 创建一个String类型的bean
  200 + */
  201 + public static Object createStringBean(Map map) {
  202 + try {
  203 + Map<String, Class<?>> temp = new HashMap<>();
  204 + for (Object key : map.keySet()) {
  205 + temp.put(key.toString(), Class.forName("java.lang.String"));
  206 + }
  207 + InitBean initBean = new InitBean(temp);
  208 + for (Object key : map.keySet()) {
  209 + initBean.set(key.toString(), map.get(key).toString());
  210 + }
  211 + return initBean.create();
  212 + } catch (Exception e) {
  213 + throw new RuntimeException("创建String类型的bean异常" + e);
  214 + }
  215 + }
  216 +
196 217 }
platform-common/src/main/java/com/lyms/platform/common/utils/InitBean.java View file @ dea1412
  1 +package com.lyms.platform.common.utils;
  2 +
  3 +import org.springframework.cglib.beans.BeanGenerator;
  4 +import org.springframework.cglib.beans.BeanMap;
  5 +
  6 +import java.util.Map;
  7 +
  8 +/**
  9 + * @auther HuJiaqi
  10 + * @createTime 2016年12月28日 12时54分
  11 + * @discription
  12 + */
  13 +public class InitBean {
  14 +
  15 + private Object object = null;
  16 +
  17 + private BeanMap beanMap = null;
  18 +
  19 + public InitBean(Map<String, Class<?>> map) {
  20 + this.object = getBean(map);
  21 + this.beanMap = BeanMap.create(this.object);
  22 + }
  23 +
  24 + public void set(String key, Object value) {
  25 + beanMap.put(key, value);
  26 + }
  27 +
  28 + public Object get(String key) {
  29 + return beanMap.get(key);
  30 + }
  31 +
  32 + public Object create() {
  33 + return this.object;
  34 + }
  35 +
  36 + private Object getBean(Map<String, Class<?>> map) {
  37 + BeanGenerator generator = new BeanGenerator();
  38 + for (String key : map.keySet()) {
  39 + generator.addProperty(key, map.get(key));
  40 + }
  41 + return generator.create();
  42 + }
  43 +
  44 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java View file @ dea1412
... ... @@ -26,10 +26,7 @@
26 26 import javax.servlet.http.HttpServletRequest;
27 27 import javax.servlet.http.HttpServletResponse;
28 28 import javax.validation.Valid;
29   -import java.util.ArrayList;
30   -import java.util.LinkedHashMap;
31   -import java.util.List;
32   -import java.util.Map;
  29 +import java.util.*;
33 30  
34 31 /**
35 32 * 产妇分娩记录
36 33  
... ... @@ -124,12 +121,49 @@
124 121 BaseListResponse baseListResponse;
125 122 try {
126 123 childbirthManagerRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId());
  124 +
  125 + Map<String, String> query;
  126 + if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())) {
  127 + // 自定义查询
  128 + query = new HashMap<>();
  129 + String initQuery = childbirthManagerRequest.getInitQuery();
  130 + for (String key : childbirthManagerRequest.getInitQueryMap().keySet()) {
  131 + if (initQuery.contains(key)) {
  132 + query.put(key, query.get(key));
  133 + }
  134 + }
  135 + } else {
  136 + // 没有自定义查询,开始构造普通查询
  137 + if (StringUtils.isEmpty(childbirthManagerRequest.getIsArea())) {
  138 + // 非区域
  139 + query = childbirthManagerRequest.getNormalQueryMap();
  140 + } else {
  141 + // 区域
  142 + query = childbirthManagerRequest.getAraeQueryMap();
  143 + }
  144 + String queryStr = "";
  145 + for (String key : query.keySet()) {
  146 + queryStr += key + ",";
  147 + }
  148 + childbirthManagerRequest.setInitQuery(queryStr.substring(0, queryStr.length() - 1));
  149 + }
  150 +
127 151 ChildbirthManagerResult childbirthManagerResult = matDeliverFacade.childbirthManager(childbirthManagerRequest);
128 152 if (childbirthManagerResult.getErrorcode() != ErrorCodeConstants.SUCCESS) {
129 153 baseListResponse = new BaseListResponse().setErrorcode(childbirthManagerResult.getErrorcode()).setErrormsg(childbirthManagerResult.getErrormsg());
130 154 return baseListResponse;
131 155 }
132   - baseListResponse = new BaseListResponse().setErrorcode(childbirthManagerResult.getErrorcode()).setErrormsg(childbirthManagerResult.getErrormsg()).setData(childbirthManagerResult.getData()).setPageInfo(childbirthManagerResult.getPageInfo());
  156 +
  157 + // 根据查询规则构造返回bean
  158 + List<Object> objectList = new ArrayList<>();
  159 + for (Object temp : childbirthManagerResult.getData()) {
  160 + for (String key : query.keySet()) {
  161 + query.put(key, BeanUtils.objectToStringMap(temp).get(key));
  162 + }
  163 + objectList.add(BeanUtils.createStringBean(query));
  164 + }
  165 +
  166 + baseListResponse = new BaseListResponse().setErrorcode(childbirthManagerResult.getErrorcode()).setErrormsg(childbirthManagerResult.getErrormsg()).setData(objectList).setPageInfo(childbirthManagerResult.getPageInfo());
133 167 } catch (Exception e) {
134 168 baseListResponse = new BaseListResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION);
135 169 ExceptionUtils.catchException(e, "childbirthManager异常");
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java View file @ dea1412
... ... @@ -1063,16 +1063,16 @@
1063 1063 childbirthManagerQueryModel.setPatientId(patients.getId());
1064 1064 childbirthManagerQueryModel.setMaternalDeliverId(maternalDeliverModel.getId());
1065 1065 // 居住地
1066   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("address")) {
  1066 + if (childbirthManagerRequest.getInitQuery().contains("address")) {
1067 1067 childbirthManagerQueryModel.setAddress(CommonsHelper.getResidence(patients.getProvinceRegisterId(), patients.getCityRegisterId(), patients.getAreaRegisterId(), patients.getStreetRegisterId(), patients.getAddressRegister(), basicConfigService));
1068 1068 }
1069 1069 // 电话转换
1070 1070 childbirthManagerQueryModel.setPhone(DefenceUtils.getPhone(patients.getPhone()));
1071 1071 childbirthManagerQueryModel.setHusbandPhone(DefenceUtils.getPhone(patients.getHusbandPhone()));
1072 1072 // 加密身份证号
1073   - childbirthManagerQueryModel.setCardNo(DefenceUtils.getId(patients.getCardNo()));
  1073 + childbirthManagerQueryModel.setCardNo(DefenceUtils.getCardNo(patients.getCardNo()));
1074 1074 // 查询分娩方式
1075   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("deliveryMode")) {
  1075 + if (childbirthManagerRequest.getInitQuery().contains("deliveryMode")) {
1076 1076 String deliveryModeJson = maternalDeliverModel.getDeliveryMode();
1077 1077 Map<String, String> deliveryModeMap = JsonUtil.getMap(deliveryModeJson);
1078 1078 if (MapUtils.isNotEmpty(deliveryModeMap) && StringUtils.isNotEmpty(deliveryModeMap.get("fmfs"))) {
... ... @@ -1087,7 +1087,7 @@
1087 1087 }
1088 1088 }
1089 1089 // 产妇情况
1090   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("maternalInfo")) {
  1090 + if (childbirthManagerRequest.getInitQuery().contains("maternalInfo")) {
1091 1091 if (StringUtils.isNotBlank(maternalDeliverModel.getMaternalInfo())) {
1092 1092 for (CfEnums cfEnums : CfEnums.values()) {
1093 1093 if (cfEnums.getId().equals(maternalDeliverModel.getMaternalInfo())) {
... ... @@ -1099,7 +1099,7 @@
1099 1099 }
1100 1100 // 查询接生医生
1101 1101 try {
1102   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("deliverDoctor")) {
  1102 + if (childbirthManagerRequest.getInitQuery().contains("deliverDoctor")) {
1103 1103 childbirthManagerQueryModel.setDeliverDoctor(usersService.getUsers(Integer.valueOf(maternalDeliverModel.getDeliverDoctor())).getName());
1104 1104 }
1105 1105 } catch (Exception e) {
... ... @@ -1107,7 +1107,7 @@
1107 1107 }
1108 1108 childbirthManagerQueryModel.setAge(DateUtil.getAge(patients.getBirth()));
1109 1109 // 查询活产数
1110   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("livingNumber")) {
  1110 + if (childbirthManagerRequest.getInitQuery().contains("livingNumber")) {
1111 1111 BabyModelQuery babyModelQuery = new BabyModelQuery();
1112 1112 babyModelQuery.setYn(YnEnums.YES.getId());
1113 1113 babyModelQuery.setParentId(patients.getId());
... ... @@ -1189,7 +1189,7 @@
1189 1189  
1190 1190 // 开始拼装自定义查询结果
1191 1191 // 胎方位,胎心率,胎先露
1192   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&(childbirthManagerRequest.getInitQuery().contains("fetalPosition") || childbirthManagerRequest.getInitQuery().contains("heartRate") || childbirthManagerRequest.getInitQuery().contains("fetalPresentation"))) {
  1192 + if (childbirthManagerRequest.getInitQuery().contains("fetalPosition") || childbirthManagerRequest.getInitQuery().contains("heartRate") || childbirthManagerRequest.getInitQuery().contains("fetalPresentation")) {
1193 1193 // 这个泛型不会出错,传入的就是这个
1194 1194 @SuppressWarnings("unchecked")
1195 1195 List<MatDeliverAddRequest.Placenta> placentaList = maternalDeliverModel.getPlacentas();
... ... @@ -1260,7 +1260,7 @@
1260 1260 childbirthManagerQueryModel.setChBpSzy1(chBpMap.get("szy"));
1261 1261 }
1262 1262 // 胎盘娩出方式,胎盘大小,胎盘重量,脐带长度,脐带是否异常,脐带异常类型
1263   - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&(childbirthManagerRequest.getInitQuery().contains("tpmcType") || childbirthManagerRequest.getInitQuery().contains("tpSize") || childbirthManagerRequest.getInitQuery().contains("tpWeight") || childbirthManagerRequest.getInitQuery().contains("umbilicalCordLength") || childbirthManagerRequest.getInitQuery().contains("umbilicalCordEx") || childbirthManagerRequest.getInitQuery().contains("umbilicalCordExType"))) {
  1263 + if (childbirthManagerRequest.getInitQuery().contains("tpmcType") || childbirthManagerRequest.getInitQuery().contains("tpSize") || childbirthManagerRequest.getInitQuery().contains("tpWeight") || childbirthManagerRequest.getInitQuery().contains("umbilicalCordLength") || childbirthManagerRequest.getInitQuery().contains("umbilicalCordEx") || childbirthManagerRequest.getInitQuery().contains("umbilicalCordExType")) {
1264 1264 List<MaternalDeliverModel.ExtPlacenta> extPlacentaList = maternalDeliverModel.getExtPlacentas();
1265 1265 if (CollectionUtils.isNotEmpty(extPlacentaList)) {
1266 1266 String tpmcType = "";
... ... @@ -1354,7 +1354,7 @@
1354 1354 if (maternalDeliverModel.getParentId().equals(babyModel.getParentId())) {
1355 1355 NewBabyManagerQueryModel newBabyManagerQueryModel = new NewBabyManagerQueryModel();
1356 1356 BeanUtils.copy(babyModel, newBabyManagerQueryModel);
1357   - newBabyManagerQueryModel.setMcertNo(DefenceUtils.getId(babyModel.getMcertNo()));
  1357 + newBabyManagerQueryModel.setMcertNo(DefenceUtils.getCardNo(babyModel.getMcertNo()));
1358 1358 newBabyManagerQueryModel.setAge(DateUtil.getAge(babyModel.getMbirth()));
1359 1359 newBabyManagerQueryModel.setBirthYMD(DateUtil.getyyyy_MM_dd(babyModel.getBirth()));
1360 1360 newBabyManagerQueryModel.setBirthHM(new SimpleDateFormat("HH:mm").format(babyModel.getBirth()));
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java View file @ dea1412
... ... @@ -805,6 +805,7 @@
805 805 PatientManagerQueryModel patientManagerQueryModel = new PatientManagerQueryModel();
806 806 BeanUtils.copy(patients, patientManagerQueryModel);
807 807 patientManagerQueryModel.setAge(DateUtil.getAge(patients.getBirth()));
  808 + patientManagerQueryModel.setpId(patients.getPid());
808 809 String dueWeek = "";
809 810 try {
810 811 if (patients.getBookbuildingDate().getTime() - patients.getDueDate().getTime() > 0 && patients.getBuildType() == 2) {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ChildbirthManagerRequest.java View file @ dea1412
... ... @@ -152,6 +152,10 @@
152 152  
153 153 private Map<String, String> initQueryMap;
154 154  
  155 + private Map<String, String> normalQueryMap;
  156 +
  157 + private Map<String, String> araeQueryMap;
  158 +
155 159 private boolean isExcel;
156 160  
157 161 private Integer operatorId;
... ... @@ -340,6 +344,22 @@
340 344 this.operatorId = operatorId;
341 345 }
342 346  
  347 + public Map<String, String> getNormalQueryMap() {
  348 + return normalQueryMap;
  349 + }
  350 +
  351 + public void setNormalQueryMap(Map<String, String> normalQueryMap) {
  352 + this.normalQueryMap = normalQueryMap;
  353 + }
  354 +
  355 + public Map<String, String> getAraeQueryMap() {
  356 + return araeQueryMap;
  357 + }
  358 +
  359 + public void setAraeQueryMap(Map<String, String> araeQueryMap) {
  360 + this.araeQueryMap = araeQueryMap;
  361 + }
  362 +
343 363 public ChildbirthManagerRequest() {
344 364 Map<String, String> initQueryMap = new LinkedHashMap<>();
345 365 initQueryMap.put("dueDate", "分娩日期");
346 366  
... ... @@ -395,7 +415,42 @@
395 415 initQueryMap.put("vcCardNo", "卡号");
396 416 initQueryMap.put("fileCode", "住院号(暂时塞的档案编号)");
397 417 initQueryMap.put("fmHospital", "分娩机构");
  418 + initQueryMap.put("maternalDeliverId", "");
  419 + initQueryMap.put("patientId", "");
  420 + initQueryMap.put("pId", "");
  421 + Map<String, String> normalQueryMap = new LinkedHashMap<>();
  422 + normalQueryMap.put("dueDate", "分娩日期");
  423 + normalQueryMap.put("name", "姓名");
  424 + normalQueryMap.put("age", "年龄");
  425 + normalQueryMap.put("cardNo", "证件号");
  426 + normalQueryMap.put("dueWeek", "分娩孕周");
  427 + normalQueryMap.put("deliveryMode", "分娩方式");
  428 + normalQueryMap.put("maternalInfo", "产妇情况");
  429 + normalQueryMap.put("tireNumber", "胎数");
  430 + normalQueryMap.put("livingNumber", "活产数");
  431 + normalQueryMap.put("deliverDoctor", "接生医生");
  432 + normalQueryMap.put("phone", "联系方式");
  433 + normalQueryMap.put("maternalDeliverId", "");
  434 + normalQueryMap.put("patientId", "");
  435 + normalQueryMap.put("pId", "");
  436 + Map<String, String> areaQueryMap = new LinkedHashMap<>();
  437 + areaQueryMap.put("dueDate", "分娩日期");
  438 + areaQueryMap.put("name", "姓名");
  439 + areaQueryMap.put("age", "年龄");
  440 + areaQueryMap.put("cardNo", "证件号");
  441 + areaQueryMap.put("dueWeek", "分娩孕周");
  442 + areaQueryMap.put("deliveryMode", "分娩方式");
  443 + areaQueryMap.put("maternalInfo", "产妇情况");
  444 + areaQueryMap.put("tireNumber", "胎数");
  445 + areaQueryMap.put("livingNumber", "活产数");
  446 + areaQueryMap.put("address", "居住地");
  447 + areaQueryMap.put("fmHospital", "分娩机构");
  448 + areaQueryMap.put("maternalDeliverId", "");
  449 + areaQueryMap.put("patientId", "");
  450 + areaQueryMap.put("pId", "");
398 451 this.initQueryMap = initQueryMap;
  452 + this.normalQueryMap = normalQueryMap;
  453 + this.araeQueryMap = areaQueryMap;
399 454 }
400 455 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientManagerQueryModel.java View file @ dea1412
... ... @@ -70,7 +70,7 @@
70 70 */
71 71 private String bookbuildingDoctor;
72 72  
73   - private String id;
  73 + private String pId;
74 74  
75 75 private String cardNo;
76 76  
77 77  
... ... @@ -82,12 +82,12 @@
82 82 this.cardNo = cardNo;
83 83 }
84 84  
85   - public String getId() {
86   - return id;
  85 + public String getpId() {
  86 + return pId;
87 87 }
88 88  
89   - public void setId(String id) {
90   - this.id = id;
  89 + public void setpId(String pId) {
  90 + this.pId = pId;
91 91 }
92 92  
93 93 public String getUsername() {