diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/BeanUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/BeanUtils.java index df509ff..822f63e 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/BeanUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/BeanUtils.java @@ -193,4 +193,25 @@ public class BeanUtils { } } + /** + * @auther HuJiaqi + * @createTime 2016年12月28日 14时27分 + * @discription 创建一个String类型的bean + */ + public static Object createStringBean(Map map) { + try { + Map> temp = new HashMap<>(); + for (Object key : map.keySet()) { + temp.put(key.toString(), Class.forName("java.lang.String")); + } + InitBean initBean = new InitBean(temp); + for (Object key : map.keySet()) { + initBean.set(key.toString(), map.get(key).toString()); + } + return initBean.create(); + } catch (Exception e) { + throw new RuntimeException("创建String类型的bean异常" + e); + } + } + } diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/InitBean.java b/platform-common/src/main/java/com/lyms/platform/common/utils/InitBean.java new file mode 100644 index 0000000..38bc752 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/InitBean.java @@ -0,0 +1,44 @@ +package com.lyms.platform.common.utils; + +import org.springframework.cglib.beans.BeanGenerator; +import org.springframework.cglib.beans.BeanMap; + +import java.util.Map; + +/** + * @auther HuJiaqi + * @createTime 2016年12月28日 12时54分 + * @discription + */ +public class InitBean { + + private Object object = null; + + private BeanMap beanMap = null; + + public InitBean(Map> map) { + this.object = getBean(map); + this.beanMap = BeanMap.create(this.object); + } + + public void set(String key, Object value) { + beanMap.put(key, value); + } + + public Object get(String key) { + return beanMap.get(key); + } + + public Object create() { + return this.object; + } + + private Object getBean(Map> map) { + BeanGenerator generator = new BeanGenerator(); + for (String key : map.keySet()) { + generator.addProperty(key, map.get(key)); + } + return generator.create(); + } + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java index dfe3b44..840879c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java @@ -26,10 +26,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 产妇分娩记录 @@ -124,12 +121,49 @@ public class MatDeliverController extends BaseController{ BaseListResponse baseListResponse; try { childbirthManagerRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId()); + + Map query; + if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())) { + // 自定义查询 + query = new HashMap<>(); + String initQuery = childbirthManagerRequest.getInitQuery(); + for (String key : childbirthManagerRequest.getInitQueryMap().keySet()) { + if (initQuery.contains(key)) { + query.put(key, query.get(key)); + } + } + } else { + // 没有自定义查询,开始构造普通查询 + if (StringUtils.isEmpty(childbirthManagerRequest.getIsArea())) { + // 非区域 + query = childbirthManagerRequest.getNormalQueryMap(); + } else { + // 区域 + query = childbirthManagerRequest.getAraeQueryMap(); + } + String queryStr = ""; + for (String key : query.keySet()) { + queryStr += key + ","; + } + childbirthManagerRequest.setInitQuery(queryStr.substring(0, queryStr.length() - 1)); + } + ChildbirthManagerResult childbirthManagerResult = matDeliverFacade.childbirthManager(childbirthManagerRequest); if (childbirthManagerResult.getErrorcode() != ErrorCodeConstants.SUCCESS) { baseListResponse = new BaseListResponse().setErrorcode(childbirthManagerResult.getErrorcode()).setErrormsg(childbirthManagerResult.getErrormsg()); return baseListResponse; } - baseListResponse = new BaseListResponse().setErrorcode(childbirthManagerResult.getErrorcode()).setErrormsg(childbirthManagerResult.getErrormsg()).setData(childbirthManagerResult.getData()).setPageInfo(childbirthManagerResult.getPageInfo()); + + // 根据查询规则构造返回bean + List objectList = new ArrayList<>(); + for (Object temp : childbirthManagerResult.getData()) { + for (String key : query.keySet()) { + query.put(key, BeanUtils.objectToStringMap(temp).get(key)); + } + objectList.add(BeanUtils.createStringBean(query)); + } + + baseListResponse = new BaseListResponse().setErrorcode(childbirthManagerResult.getErrorcode()).setErrormsg(childbirthManagerResult.getErrormsg()).setData(objectList).setPageInfo(childbirthManagerResult.getPageInfo()); } catch (Exception e) { baseListResponse = new BaseListResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); ExceptionUtils.catchException(e, "childbirthManager异常"); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 468e5f2..bac6993 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -1063,16 +1063,16 @@ public class MatDeliverFacade { childbirthManagerQueryModel.setPatientId(patients.getId()); childbirthManagerQueryModel.setMaternalDeliverId(maternalDeliverModel.getId()); // 居住地 - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("address")) { + if (childbirthManagerRequest.getInitQuery().contains("address")) { childbirthManagerQueryModel.setAddress(CommonsHelper.getResidence(patients.getProvinceRegisterId(), patients.getCityRegisterId(), patients.getAreaRegisterId(), patients.getStreetRegisterId(), patients.getAddressRegister(), basicConfigService)); } // 电话转换 childbirthManagerQueryModel.setPhone(DefenceUtils.getPhone(patients.getPhone())); childbirthManagerQueryModel.setHusbandPhone(DefenceUtils.getPhone(patients.getHusbandPhone())); // 加密身份证号 - childbirthManagerQueryModel.setCardNo(DefenceUtils.getId(patients.getCardNo())); + childbirthManagerQueryModel.setCardNo(DefenceUtils.getCardNo(patients.getCardNo())); // 查询分娩方式 - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("deliveryMode")) { + if (childbirthManagerRequest.getInitQuery().contains("deliveryMode")) { String deliveryModeJson = maternalDeliverModel.getDeliveryMode(); Map deliveryModeMap = JsonUtil.getMap(deliveryModeJson); if (MapUtils.isNotEmpty(deliveryModeMap) && StringUtils.isNotEmpty(deliveryModeMap.get("fmfs"))) { @@ -1087,7 +1087,7 @@ public class MatDeliverFacade { } } // 产妇情况 - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("maternalInfo")) { + if (childbirthManagerRequest.getInitQuery().contains("maternalInfo")) { if (StringUtils.isNotBlank(maternalDeliverModel.getMaternalInfo())) { for (CfEnums cfEnums : CfEnums.values()) { if (cfEnums.getId().equals(maternalDeliverModel.getMaternalInfo())) { @@ -1099,7 +1099,7 @@ public class MatDeliverFacade { } // 查询接生医生 try { - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("deliverDoctor")) { + if (childbirthManagerRequest.getInitQuery().contains("deliverDoctor")) { childbirthManagerQueryModel.setDeliverDoctor(usersService.getUsers(Integer.valueOf(maternalDeliverModel.getDeliverDoctor())).getName()); } } catch (Exception e) { @@ -1107,7 +1107,7 @@ public class MatDeliverFacade { } childbirthManagerQueryModel.setAge(DateUtil.getAge(patients.getBirth())); // 查询活产数 - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&childbirthManagerRequest.getInitQuery().contains("livingNumber")) { + if (childbirthManagerRequest.getInitQuery().contains("livingNumber")) { BabyModelQuery babyModelQuery = new BabyModelQuery(); babyModelQuery.setYn(YnEnums.YES.getId()); babyModelQuery.setParentId(patients.getId()); @@ -1189,7 +1189,7 @@ public class MatDeliverFacade { // 开始拼装自定义查询结果 // 胎方位,胎心率,胎先露 - if (StringUtils.isNotEmpty(childbirthManagerRequest.getInitQuery())&&(childbirthManagerRequest.getInitQuery().contains("fetalPosition") || childbirthManagerRequest.getInitQuery().contains("heartRate") || childbirthManagerRequest.getInitQuery().contains("fetalPresentation"))) { + if (childbirthManagerRequest.getInitQuery().contains("fetalPosition") || childbirthManagerRequest.getInitQuery().contains("heartRate") || childbirthManagerRequest.getInitQuery().contains("fetalPresentation")) { // 这个泛型不会出错,传入的就是这个 @SuppressWarnings("unchecked") List placentaList = maternalDeliverModel.getPlacentas(); @@ -1260,7 +1260,7 @@ public class MatDeliverFacade { childbirthManagerQueryModel.setChBpSzy1(chBpMap.get("szy")); } // 胎盘娩出方式,胎盘大小,胎盘重量,脐带长度,脐带是否异常,脐带异常类型 - 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"))) { + 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")) { List extPlacentaList = maternalDeliverModel.getExtPlacentas(); if (CollectionUtils.isNotEmpty(extPlacentaList)) { String tpmcType = ""; @@ -1354,7 +1354,7 @@ public class MatDeliverFacade { if (maternalDeliverModel.getParentId().equals(babyModel.getParentId())) { NewBabyManagerQueryModel newBabyManagerQueryModel = new NewBabyManagerQueryModel(); BeanUtils.copy(babyModel, newBabyManagerQueryModel); - newBabyManagerQueryModel.setMcertNo(DefenceUtils.getId(babyModel.getMcertNo())); + newBabyManagerQueryModel.setMcertNo(DefenceUtils.getCardNo(babyModel.getMcertNo())); newBabyManagerQueryModel.setAge(DateUtil.getAge(babyModel.getMbirth())); newBabyManagerQueryModel.setBirthYMD(DateUtil.getyyyy_MM_dd(babyModel.getBirth())); newBabyManagerQueryModel.setBirthHM(new SimpleDateFormat("HH:mm").format(babyModel.getBirth())); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index f87e2ab..69815f6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -805,6 +805,7 @@ public class PatientFacade { PatientManagerQueryModel patientManagerQueryModel = new PatientManagerQueryModel(); BeanUtils.copy(patients, patientManagerQueryModel); patientManagerQueryModel.setAge(DateUtil.getAge(patients.getBirth())); + patientManagerQueryModel.setpId(patients.getPid()); String dueWeek = ""; try { if (patients.getBookbuildingDate().getTime() - patients.getDueDate().getTime() > 0 && patients.getBuildType() == 2) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ChildbirthManagerRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ChildbirthManagerRequest.java index 7e7b39c..f79c944 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ChildbirthManagerRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ChildbirthManagerRequest.java @@ -152,6 +152,10 @@ public class ChildbirthManagerRequest extends BasePageQueryRequest { private Map initQueryMap; + private Map normalQueryMap; + + private Map araeQueryMap; + private boolean isExcel; private Integer operatorId; @@ -340,6 +344,22 @@ public class ChildbirthManagerRequest extends BasePageQueryRequest { this.operatorId = operatorId; } + public Map getNormalQueryMap() { + return normalQueryMap; + } + + public void setNormalQueryMap(Map normalQueryMap) { + this.normalQueryMap = normalQueryMap; + } + + public Map getAraeQueryMap() { + return araeQueryMap; + } + + public void setAraeQueryMap(Map araeQueryMap) { + this.araeQueryMap = araeQueryMap; + } + public ChildbirthManagerRequest() { Map initQueryMap = new LinkedHashMap<>(); initQueryMap.put("dueDate", "分娩日期"); @@ -395,6 +415,41 @@ public class ChildbirthManagerRequest extends BasePageQueryRequest { initQueryMap.put("vcCardNo", "卡号"); initQueryMap.put("fileCode", "住院号(暂时塞的档案编号)"); initQueryMap.put("fmHospital", "分娩机构"); + initQueryMap.put("maternalDeliverId", ""); + initQueryMap.put("patientId", ""); + initQueryMap.put("pId", ""); + Map normalQueryMap = new LinkedHashMap<>(); + normalQueryMap.put("dueDate", "分娩日期"); + normalQueryMap.put("name", "姓名"); + normalQueryMap.put("age", "年龄"); + normalQueryMap.put("cardNo", "证件号"); + normalQueryMap.put("dueWeek", "分娩孕周"); + normalQueryMap.put("deliveryMode", "分娩方式"); + normalQueryMap.put("maternalInfo", "产妇情况"); + normalQueryMap.put("tireNumber", "胎数"); + normalQueryMap.put("livingNumber", "活产数"); + normalQueryMap.put("deliverDoctor", "接生医生"); + normalQueryMap.put("phone", "联系方式"); + normalQueryMap.put("maternalDeliverId", ""); + normalQueryMap.put("patientId", ""); + normalQueryMap.put("pId", ""); + Map areaQueryMap = new LinkedHashMap<>(); + areaQueryMap.put("dueDate", "分娩日期"); + areaQueryMap.put("name", "姓名"); + areaQueryMap.put("age", "年龄"); + areaQueryMap.put("cardNo", "证件号"); + areaQueryMap.put("dueWeek", "分娩孕周"); + areaQueryMap.put("deliveryMode", "分娩方式"); + areaQueryMap.put("maternalInfo", "产妇情况"); + areaQueryMap.put("tireNumber", "胎数"); + areaQueryMap.put("livingNumber", "活产数"); + areaQueryMap.put("address", "居住地"); + areaQueryMap.put("fmHospital", "分娩机构"); + areaQueryMap.put("maternalDeliverId", ""); + areaQueryMap.put("patientId", ""); + areaQueryMap.put("pId", ""); this.initQueryMap = initQueryMap; + this.normalQueryMap = normalQueryMap; + this.araeQueryMap = areaQueryMap; } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientManagerQueryModel.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientManagerQueryModel.java index 7b78e40..f63a359 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientManagerQueryModel.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientManagerQueryModel.java @@ -70,7 +70,7 @@ public class PatientManagerQueryModel { */ private String bookbuildingDoctor; - private String id; + private String pId; private String cardNo; @@ -82,12 +82,12 @@ public class PatientManagerQueryModel { this.cardNo = cardNo; } - public String getId() { - return id; + public String getpId() { + return pId; } - public void setId(String id) { - this.id = id; + public void setpId(String pId) { + this.pId = pId; } public String getUsername() {