From 7abccdeebd6705ac0cf8a4d5cbeecae921757b07 Mon Sep 17 00:00:00 2001 From: wtt Date: Wed, 22 May 2019 15:45:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=B8=E5=9F=8Eexcel=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=EF=BC=88=E6=AF=8D=E5=AD=90=E4=BF=9D=E5=81=A5=E6=89=8B=E5=86=8C?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=EF=BC=89=2020190522=20wutaotao?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/PuerperaManageController.java | 52 +++++++ .../platform/operate/web/facade/PatientFacade.java | 104 ++++++++++++- .../web/result/HealthHandbookExcelModel.java | 165 +++++++++++++++++++++ 3 files changed, 320 insertions(+), 1 deletion(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/HealthHandbookExcelModel.java diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java index 8eeda2e..9ef15a4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java @@ -20,6 +20,7 @@ import com.lyms.platform.operate.web.facade.BasicConfigFacade; import com.lyms.platform.operate.web.facade.PatientFacade; import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.result.BasicConfigResult; +import com.lyms.platform.operate.web.result.HealthHandbookExcelModel; import com.lyms.platform.operate.web.result.PatientManagerQueryModel; import com.lyms.platform.operate.web.result.PatientManagerResult; import org.apache.commons.collections.CollectionUtils; @@ -385,6 +386,7 @@ public class PuerperaManageController extends BaseController { return baseListResponse; } + @TokenRequired @RequestMapping(value = "patientManagerExcel", method = RequestMethod.POST) public void patientManagerExcel(HttpServletRequest httpServletRequest, @RequestBody PatientManagerRequest patientManagerRequest, HttpServletResponse httpServletResponse) { @@ -431,4 +433,54 @@ public class PuerperaManageController extends BaseController { } } + /** + * 母子保健手册导出 + * + * @param httpServletRequest + // * @param patientManagerRequest + * @param httpServletResponse + */ + @TokenRequired + @RequestMapping(value = "healthHandbookExcel", method = RequestMethod.POST) + public void healthHandbookExcel(HttpServletRequest httpServletRequest, @RequestBody PatientManagerRequest patientManagerRequest, HttpServletResponse httpServletResponse) { + + try { + patientManagerRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId()); + patientManagerRequest.setExcel(true); + // 这里返回的结果必然是这个泛型,之所以query返回的结果集没有用泛型是为了更好的传递数据 + @SuppressWarnings("unchecked") + List healthHandbookExcelModelList = patientFacade.healthHandbookExcelManager(patientManagerRequest).getData(); + List> list = new ArrayList<>(); + for (HealthHandbookExcelModel healthHandbookExcelModel : healthHandbookExcelModelList) { + Map map = BeanUtils.objectToObjectMap(healthHandbookExcelModel); + for (String key : map.keySet()) { + if (StringUtils.isEmpty(String.valueOf(map.get(key)))) { + map.put(key, " "); + } + } + list.add(map); + } + Map header = new LinkedHashMap<>(); + header.put("username", "女方姓名"); + header.put("cardNo", "身份证号码"); + header.put("husbandName", "配偶姓名"); + header.put("organization", "发放机构"); + header.put("address", "镇街、村居或单位"); + header.put("childTime", "孩次"); + header.put("gestation", "孕期"); + header.put("bookbuildingDate", "发放时间"); + header.put("serial", "首次发放序号"); + header.put("issuer", "发放人"); + header.put("reissue1", "补发1"); + header.put("reissue2", "补发2"); + header.put("reissue3", "补发3"); + //String hospitalId = autoMatchFacade.getHospitalId(patientManagerRequest.getOperatorId()); + + httpServletResponse.setContentType("application/force-download"); + httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + new String(("母子保健手册.xls").getBytes("UTF-8"), "ISO-8859-1")); + ExcelUtil.toExcel(httpServletResponse.getOutputStream(), list, header); + } catch (Exception e) { + ExceptionUtils.catchException(e, "childbirthManagerExcel异常"); + } + } } \ No newline at end of file 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 107b484..dffeb72 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 @@ -16,6 +16,7 @@ import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.worker.QuanChanPatientWorker; import com.lyms.platform.operate.web.worker.QuanPatientWorker; import com.lyms.platform.operate.web.worker.WorkHR; +import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; @@ -107,7 +108,8 @@ public class PatientFacade { private DischargeAbstractMotherService dischargeAbstractMotherService; @Autowired private MatDeliverFollowService matDeliverFollowService; - + @Autowired + private CouponMapper couponMapper; /** * 修改产妇的社区 * @@ -1254,6 +1256,106 @@ public class PatientFacade { patientManagerResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); return patientManagerResult; } + public PatientManagerResult healthHandbookExcelManager(PatientManagerRequest patientManagerRequest) { + PatientManagerResult patientManagerResult = new PatientManagerResult(); + + PatientsQuery patientsQuery = new PatientsQuery(); + + patientsQuery.setLiveType(patientManagerRequest.getLiveType()); + patientsQuery.setAssistUserId(patientManagerRequest.getAssistUserId()); + patientsQuery.setSendCareMan(patientManagerRequest.getSendCareMan()); + if (patientManagerRequest.getBuildWeekStart() != null) { + patientsQuery.setBuildDaysStart(patientManagerRequest.getBuildWeekStart() * 7); + } + + if (patientManagerRequest.getBuildWeekEnd() != null) { + patientsQuery.setBuildDaysEnd((patientManagerRequest.getBuildWeekEnd() + 1) * 7 - 1); + } + /* if (patientManagerRequest.getBuildWeekEnd() != null) { + patientsQuery.setBookbuildingDateStart(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(patientManagerRequest.getBuildWeekEnd() * 7) - 6)); + } + + if (patientManagerRequest.getBuildWeekStart() != null) { + patientsQuery.setBookbuildingDateEnd(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(patientManagerRequest.getBuildWeekStart() * 7))); + }*/ + + patientsQuery.setYn(YnEnums.YES.getId()); + if (!patientManagerRequest.isExcel()) { + patientsQuery.setNeed("need"); + patientsQuery.setLimit(patientManagerRequest.getLimit()); + patientsQuery.setPage(patientManagerRequest.getPage()); + } + //排查本院隐藏建档 + patientsQuery.setExtEnable(false); + patientsQuery.setBuildTypeNot(1); + patientsQuery.setHospitalId(autoMatchFacade.getHospitalId(patientManagerRequest.getOperatorId())); + patientsQuery.setProvinceId(StringUtils.isEmpty(patientManagerRequest.getProvinceRegisterId()) ? null : patientManagerRequest.getProvinceRegisterId()); + patientsQuery.setCityId(StringUtils.isEmpty(patientManagerRequest.getCityRegisterId()) ? null : patientManagerRequest.getCityRegisterId()); + patientsQuery.setAreaId(StringUtils.isEmpty(patientManagerRequest.getAreaRegisterId()) ? null : patientManagerRequest.getAreaRegisterId()); + patientsQuery.setStreetId(StringUtils.isEmpty(patientManagerRequest.getStreetRegisterId()) ? null : patientManagerRequest.getStreetRegisterId()); + patientsQuery.setStreetRegisterId(StringUtils.isEmpty(patientManagerRequest.getStreetId()) ? null : patientManagerRequest.getStreetId()); + // UsersQuery usersQuery = new UsersQuery(); + // usersQuery.setName(patientManagerRequest.getBookbuildingDoctor()); + // usersQuery.setYn(YnEnums.YES.getId()); + //List usersList = usersService.queryUsers(usersQuery); + // if (CollectionUtils.isNotEmpty(usersList)) { + // List bookbuildingDoctorList = new ArrayList<>(); + // for (Users users : usersList) { + // bookbuildingDoctorList.add(users.getId().toString()); + // } + // patientsQuery.setBookbuildingDoctorList(bookbuildingDoctorList); + // } + patientsQuery.setBookbuildingDoctor(StringUtils.isEmpty(patientManagerRequest.getBookbuildingDoctor()) ? null : patientManagerRequest.getBookbuildingDoctor()); + patientsQuery.setProvinceRegisterId(StringUtils.isEmpty(patientManagerRequest.getProvinceId()) ? null : patientManagerRequest.getProvinceId()); + patientsQuery.setCityRegisterId(StringUtils.isEmpty(patientManagerRequest.getCityId()) ? null : patientManagerRequest.getCityId()); + patientsQuery.setAreaRegisterId(StringUtils.isEmpty(patientManagerRequest.getAreaId()) ? null : patientManagerRequest.getAreaId()); + if (StringUtils.isNotEmpty(patientManagerRequest.getBookBuildingDate())) { + try { + patientsQuery.setBookbuildingDateStart(DateUtil.getSNDate(patientManagerRequest.getBookBuildingDate())[0]); + patientsQuery.setBookbuildingDateEnd(DateUtil.getSNDate(patientManagerRequest.getBookBuildingDate())[1]); + } catch (Exception e) { + // 什么都不做,这里是数据传入错误了 + } + } + patientsQuery.setQueryNo(StringUtils.isEmpty(patientManagerRequest.getQueryNo()) ? null : patientManagerRequest.getQueryNo()); + + List patientsList = patientsService.queryPatient(patientsQuery); + List healthHandbookExcelModelList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(patientsList)) { + for (Patients patients : patientsList) { + HealthHandbookExcelModel healthHandbookExcelModel = new HealthHandbookExcelModel(); + BeanUtils.copy(patients, healthHandbookExcelModel); + //女方姓名:孕妇姓名 ==username + healthHandbookExcelModel.setUsername(patients.getUsername()); + //身份证号码:孕妇身份证号码 ==cardNo + healthHandbookExcelModel.setCardNo(patients.getCardNo()); + //发放机构:当前机构名称== 当前机构名称 + String hospitalName= couponMapper.getHospitalName(patients.getHospitalId()); + healthHandbookExcelModel.setOrganization(hospitalName==null?"诸城市人民医院":hospitalName); + //镇街、村居或单位:现住地址 + healthHandbookExcelModel.setAddress(patients.getAddress()); + //孩次:分娩儿童数 + AntExChuModel data = antExService.findOne(patients.getId()); + healthHandbookExcelModel.setChildTime(data==null?1:(data.getProdTime()==null ? 1:data.getProdTime()+1)); + //孕期:当前使用有孕== 有孕 + healthHandbookExcelModel.setGestation(healthHandbookExcelModel.getGestation()); + //发放日期:当前日期 + healthHandbookExcelModel.setBookbuildingDate(DateUtil.getyyyy_MM_dd(patients.getBookbuildingDate())); + //首次发放序号:等待需求沟通 + healthHandbookExcelModel.setSerial(" "); + //发放人: 彭光芳 (写死)==彭光芳 + healthHandbookExcelModel.setIssuer("彭光芳"); + + healthHandbookExcelModelList.add(healthHandbookExcelModel); + } + } + + patientManagerResult.setPageInfo(patientsQuery.getPageInfo()); + patientManagerResult.setData(healthHandbookExcelModelList); + patientManagerResult.setErrorcode(ErrorCodeConstants.SUCCESS); + patientManagerResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); + return patientManagerResult; + } public PatientManagerResult patientManager2(PatientManagerRequest patientManagerRequest) { PatientManagerResult patientManagerResult = new PatientManagerResult(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/HealthHandbookExcelModel.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/HealthHandbookExcelModel.java new file mode 100644 index 0000000..df007c4 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/HealthHandbookExcelModel.java @@ -0,0 +1,165 @@ +package com.lyms.platform.operate.web.result; + +/** + * @auther wtt + * @discription Excel导出实体类 + */ +public class HealthHandbookExcelModel { + + /** + *女方姓名:孕妇姓名 + */ + private String username; + /** + *身份证号码:孕妇身份证号码 + */ + private String cardNo; + /* + 配偶姓名:配偶姓名 + */ + private String husbandName; + + /* + 发放机构:当前机构名称 + */ + private String organization; + + /** + *镇街、村居或单位:现住地址 + */ + private String address; + + /* + 孩次:分娩儿童数 + */ + private Integer childTime; + /* + 孕期:当前使用有孕== 有孕 + */ + private String gestation="有孕"; + /* + 发放日期:当前日期 + */ + private String bookbuildingDate; + + /* + 首次发放序号:等待需求沟通==? + */ + private String serial; + + /* + 发放人: 彭光芳 (写死)==彭光芳,根据医院写死 + */ + + private String issuer; + /* + 补发1 + */ + private String reissue1; + private String reissue2; + private String reissue3; + + public String getReissue1() { + return reissue1; + } + + public void setReissue1(String reissue1) { + this.reissue1 = reissue1; + } + + public String getReissue2() { + return reissue2; + } + + public void setReissue2(String reissue2) { + this.reissue2 = reissue2; + } + + public String getReissue3() { + return reissue3; + } + + public void setReissue3(String reissue3) { + this.reissue3 = reissue3; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getCardNo() { + return cardNo; + } + + public void setCardNo(String cardNo) { + this.cardNo = cardNo; + } + + public String getHusbandName() { + return husbandName; + } + + public void setHusbandName(String husbandName) { + this.husbandName = husbandName; + } + + public String getOrganization() { + return organization; + } + + public void setOrganization(String organization) { + this.organization = organization; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public Integer getChildTime() { + return childTime; + } + + public void setChildTime(Integer childTime) { + this.childTime = childTime; + } + + public String getGestation() { + return gestation; + } + + public void setGestation(String gestation) { + this.gestation = gestation; + } + + public String getBookbuildingDate() { + return bookbuildingDate; + } + + public void setBookbuildingDate(String bookbuildingDate) { + this.bookbuildingDate = bookbuildingDate; + } + + public String getSerial() { + return serial; + } + + public void setSerial(String serial) { + this.serial = serial; + } + + public String getIssuer() { + return issuer; + } + + public void setIssuer(String issuer) { + this.issuer = issuer; + } +} -- 1.8.3.1