diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PremaritalCheckupController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PremaritalCheckupController.java index 43f113a..2ae35c2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PremaritalCheckupController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PremaritalCheckupController.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; /** @@ -87,7 +88,20 @@ public class PremaritalCheckupController extends BaseController{ @TokenRequired public BaseListResponse queryPremaritalCheckup(@Valid PremaritalCheckupQueryRequest queryRequest, HttpServletRequest request){ + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return premaritalCheckupFacade.queryPremaritalCheckup(queryRequest,loginState.getId()); + } - return premaritalCheckupFacade.queryPremaritalCheckup(queryRequest); + @RequestMapping(value = "/premaritalCheckupExport", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public void premaritalCheckupExport(@Valid PremaritalCheckupQueryRequest queryRequest, + HttpServletResponse response, + HttpServletRequest request) { + //获取当前登录用户ID + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + premaritalCheckupFacade.premaritalCheckupExport(queryRequest,loginState.getId(),response); } + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/FolicAcidFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/FolicAcidFacade.java index dfb64c6..6cb31b7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/FolicAcidFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/FolicAcidFacade.java @@ -386,28 +386,30 @@ public class FolicAcidFacade { //叶酸发放导出 public void folicAcidExport(FolicAcidQueryRequest queryRequest,Integer userId,HttpServletResponse response){ OutputStream out = null; - List> list = new ArrayList<>(); - - List organizationList = new ArrayList<>(); try { - FolicAcidQuery query = new FolicAcidQuery(); - query.setYn(YnEnums.YES.getId()); - String hospitalId = autoMatchFacade.getHospitalId(userId); - query.setHospitalId(hospitalId); + List> list = new ArrayList<>(); + + List organizationList = null; + + FolicAcidQuery folicAcidQuery = new FolicAcidQuery(); + folicAcidQuery.setYn(YnEnums.YES.getId()); + folicAcidQuery.setPage(queryRequest.getPage()); + folicAcidQuery.setLimit(queryRequest.getLimit()); + folicAcidQuery.setNeed("y"); if(StringUtils.isNotEmpty(queryRequest.getDrawTime())){ String[] dates = queryRequest.getDrawTime().split(" - "); - query.setDrawTimeStart(DateUtil.parseYMD(dates[0])); + folicAcidQuery.setDrawTimeStart(DateUtil.parseYMD(dates[0])); if(dates.length>=2){ Date date= DateUtil.parseYMD(dates[1]); if(null!=date){ long d = date.getTime() + 86398000; date = new Date(d); } - query.setDrawTimeEnd(date); + folicAcidQuery.setDrawTimeEnd(date); } } - query.setHighRisk(queryRequest.getHighRisk()); + folicAcidQuery.setHighRisk(queryRequest.getHighRisk()); //省市区筛选机构 if (StringUtils.isNotEmpty(queryRequest.getProvinceId()) || StringUtils.isNotEmpty(queryRequest.getCityId()) || @@ -417,31 +419,65 @@ public class FolicAcidFacade { organizationQuery.setProvinceId(queryRequest.getProvinceId()); organizationQuery.setCityId(queryRequest.getCityId()); organizationQuery.setAreaId(queryRequest.getAreaId()); + organizationList = new ArrayList<>(); organizationList = organizationService.queryHospitals(organizationQuery); } - List hospitalIds = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(organizationList)){ - for (Organization hospital : organizationList){ - hospitalIds.add(String.valueOf(hospital.getId())); + List hospitalList = null; + //判断当前用户是否有区域权限 + if (userId!=null){ + hospitalList = new ArrayList<>(); + String hospital = autoMatchFacade.getHospitalId(userId); + if(null!=hospital){ + //本院 + hospitalList.add(hospital); } - if (CollectionUtils.isNotEmpty(hospitalIds)){ - query.setHospitalList(hospitalIds); + //查询用户是否有区域权限 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + if (CollectionUtils.isNotEmpty(permissionsModels)) { + Set set = permissionsModels.get(0).getData().keySet(); + Iterator it = set.iterator(); + while (it.hasNext()) { + String id = it.next(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) { + hospitalList.add(id); + } + } } + if (StringUtils.isNotEmpty(queryRequest.getHospitalId())){ + List orgId = new ArrayList<>(); + orgId.add(queryRequest.getHospitalId()); + hospitalList.retainAll(orgId); + } + + if (organizationList!=null){ + List orgId = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(organizationList)) { + for (Organization org : organizationList) { + if (null != org.getId()) { + orgId.add(org.getId() + ""); + } + } + } + hospitalList.retainAll(orgId); + } + folicAcidQuery.setHospitalList(hospitalList); } - List folicAcidList = folicAcidService.queryFolicAcid(query); + List folicAcidList = folicAcidService.queryFolicAcid(folicAcidQuery); if (CollectionUtils.isNotEmpty(folicAcidList)){ for (FolicAcid data : folicAcidList){ Map map = new HashMap<>(); if (StringUtils.isNotEmpty(data.getParentId())){ - ResidentsArchiveModel model = residentsArchiveService.getResident(data.getId()); + ResidentsArchiveModel model = residentsArchiveService.getResident(data.getParentId()); map.put("certificateNum", model.getCertificateNum()); map.put("username", model.getUsername()); map.put("phone", model.getPhone()); map.put("residence", CommonsHelper.getResidence(model.getProvinceId(), model.getCityId(), model.getAreaId(), model.getStreetId(), model.getAddress(), basicConfigService)); } - map.put("drawTime", data.getDrawTime()); + map.put("drawTime", DateUtil.getyyyy_MM_dd(data.getDrawTime())); map.put("drawCount", data.getDrawCount()); if (data.getPregnancyType()!=null){ if (data.getPregnancyType()==1){ @@ -471,7 +507,6 @@ public class FolicAcidFacade { cnames.put("highRisk","高危因素"); cnames.put("hospitalName","发放单位"); cnames.put("operator","发放人"); - response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;fileName=" + "yesuan.xls"); ExcelUtil.toExcel(out, list, cnames);