diff --git a/platform-dal/src/main/java/com/lyms/platform/query/FolicAcidQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/FolicAcidQuery.java index 16332e4..1cc426e 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/FolicAcidQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/FolicAcidQuery.java @@ -5,10 +5,12 @@ import com.lyms.platform.common.dao.BaseQuery; import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.data.mongodb.core.query.Criteria; import java.util.Date; +import java.util.List; /** * Created by Administrator on 2016/12/1 0001. @@ -46,12 +48,18 @@ public class FolicAcidQuery extends BaseQuery implements IConvertToNativeQuery { //有效标识 private Integer yn; + //医院id + private List hospitalList; + @Override public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); if (StringUtils.isNotBlank(id)) { condition = condition.and("id", id, MongoOper.IS); } + if(CollectionUtils.isNotEmpty(hospitalList)){ + condition = condition.and("hospitalId", hospitalList, MongoOper.IN); + } if (StringUtils.isNotBlank(parentId)) { condition = condition.and("parentId", parentId, MongoOper.IS); } @@ -87,6 +95,14 @@ public class FolicAcidQuery extends BaseQuery implements IConvertToNativeQuery { return condition.toMongoQuery(); } + public List getHospitalList() { + return hospitalList; + } + + public void setHospitalList(List hospitalList) { + this.hospitalList = hospitalList; + } + public String getId() { return id; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/FolicAcidController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/FolicAcidController.java index c6b895f..b69f83d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/FolicAcidController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/FolicAcidController.java @@ -14,6 +14,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; /** @@ -56,14 +57,16 @@ public class FolicAcidController extends BaseController{ return folicAcidFacade.queryFolicAcid(folicAcidQueryRequest); } -// // -// @RequestMapping(value = "/folicAcidExport", method = RequestMethod.GET) -// @ResponseBody -//// @TokenRequired -// public BaseListResponse folicAcidExport(@Valid FolicAcidQueryRequest folicAcidQueryRequest, -// HttpServletRequest request) { -// -// return folicAcidFacade.queryFolicAcid(folicAcidQueryRequest); -// } + //叶酸数据导出 + @RequestMapping(value = "/folicAcidExport", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public void folicAcidExport(@Valid FolicAcidQueryRequest folicAcidQueryRequest, + HttpServletResponse response, + HttpServletRequest request) { + //获取当前登录用户ID + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + folicAcidFacade.folicAcidExport(folicAcidQueryRequest,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 03ab3af..22e4702 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 @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.biz.service.FolicAcidService; import com.lyms.platform.biz.service.ResidentsArchiveService; import com.lyms.platform.common.constants.ErrorCodeConstants; @@ -7,8 +8,10 @@ import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.operate.web.request.FolicAcidAddRequest; import com.lyms.platform.operate.web.request.FolicAcidQueryRequest; +import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; @@ -23,6 +26,8 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; import java.util.*; /** @@ -41,6 +46,8 @@ public class FolicAcidFacade { private AutoMatchFacade autoMatchFacade; @Autowired private UsersService usersService; + @Autowired + private BasicConfigService basicConfigService; public BaseResponse addOrUpdateFolicAcid(FolicAcidAddRequest addRequest,Integer userId){ @@ -104,11 +111,13 @@ public class FolicAcidFacade { FolicAcid folicAcid = new FolicAcid(); folicAcid.setHospitalId(addRequest.getHospitalId()); + folicAcid.setHospitalName(addRequest.getHospitalName()); folicAcid.setParentId(parentId); folicAcid.setDrawCount(addRequest.getDrawCount()); folicAcid.setPregnancyType(addRequest.getPregnancyType()); folicAcid.setPregnancyWeeks(addRequest.getPregnancyWeeks()); folicAcid.setHighRisk(addRequest.getHighRisk()); + folicAcid.setOperatorId(addRequest.getOperatorId()); folicAcid.setOperator(addRequest.getOperator()); folicAcid.setDrawTime(addRequest.getDrawTime()); folicAcid.setYn(YnEnums.YES.getId()); @@ -160,7 +169,7 @@ public class FolicAcidFacade { //妇女信息 archiveMap = new HashMap<>(); archiveMap.put("certificateNum", archiveModel.getCertificateNum()); - archiveMap.put("certificateTypeId", archiveModel.getCertificateTypeId()); + archiveMap.put("certificateTypeId", CommonsHelper.getName1(archiveModel.getCertificateTypeId(),basicConfigService)); archiveMap.put("username", archiveModel.getUsername()); archiveMap.put("birthday",archiveModel.getBirthday()); archiveMap.put("age", archiveModel.getAge()); @@ -179,7 +188,7 @@ public class FolicAcidFacade { public BaseListResponse queryFolicAcid(FolicAcidQueryRequest queryRequest){ - List list = new ArrayList<>(); + List> list = new ArrayList<>(); List organizationList = new ArrayList<>(); @@ -204,15 +213,47 @@ public class FolicAcidFacade { organizationQuery.setAreaId(queryRequest.getAreaId()); organizationList = organizationService.queryHospitals(organizationQuery); } + + List hospitalIds = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(organizationList)){ for (Organization hospital : organizationList){ - folicAcidQuery.setHospitalId(String.valueOf(hospital.getId())); - List folicAcidList = folicAcidService.queryFolicAcid(folicAcidQuery); - list.addAll(folicAcidList); + hospitalIds.add(String.valueOf(hospital.getId())); + } + if (CollectionUtils.isNotEmpty(hospitalIds)){ + folicAcidQuery.setHospitalList(hospitalIds); + } + } + + List folicAcidList = folicAcidService.queryFolicAcid(folicAcidQuery); + if (CollectionUtils.isNotEmpty(folicAcidList)){ + for (FolicAcid data : folicAcidList){ + Map map = new HashMap<>(); + map.put("id",data.getId()); + map.put("id",data.getId()); + ResidentsArchiveModel model = residentsArchiveService.getResident(data.getParentId()); + map.put("username",model.getUsername()); + map.put("certificateNum",model.getCertificateNum()); + map.put("phone",model.getPhone()); + map.put("drawTime", DateUtil.getyyyy_MM_dd(data.getDrawTime())); + map.put("drawCount", data.getDrawCount()); + if (data.getPregnancyType()!=null){ + if (data.getPregnancyType()==1){ + map.put("drawDate", "孕前"); + } + if (data.getPregnancyType()==2){ + map.put("drawDate", data.getPregnancyWeeks()); + } + } + map.put("highRisk",data.getHighRisk()); + map.put("hospitalName",data.getHospitalName()); + map.put("hospitalId",data.getHospitalId()); + map.put("residence", CommonsHelper.getResidence(model.getProvinceId(), model.getCityId(), + model.getAreaId(), model.getStreetId(), model.getAddress(), basicConfigService)); + map.put("operatorId", data.getOperatorId()); + map.put("operator", data.getOperator()); + list.add(map); } - }else { - List folicAcidList = folicAcidService.queryFolicAcid(folicAcidQuery); - list.addAll(folicAcidList); } BaseListResponse baseListResponse = new BaseListResponse(); baseListResponse.setErrormsg("成功"); @@ -223,5 +264,73 @@ 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); + query.setDrawTimeStart(queryRequest.getDrawTimeStart()); + query.setDrawTimeEnd(queryRequest.getDrawTimeEnd()); + query.setHighRisk(queryRequest.getHighRisk()); + + //省市区筛选机构 + if (StringUtils.isNotEmpty(queryRequest.getProvinceId()) || StringUtils.isNotEmpty(queryRequest.getCityId()) || + StringUtils.isNotEmpty(queryRequest.getAreaId())){ + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + organizationQuery.setProvinceId(queryRequest.getProvinceId()); + organizationQuery.setCityId(queryRequest.getCityId()); + organizationQuery.setAreaId(queryRequest.getAreaId()); + organizationList = organizationService.queryHospitals(organizationQuery); + } + List hospitalIds = new ArrayList<>(); + + if (CollectionUtils.isNotEmpty(organizationList)){ + for (Organization hospital : organizationList){ + hospitalIds.add(String.valueOf(hospital.getId())); + } + if (CollectionUtils.isNotEmpty(hospitalIds)){ + query.setHospitalList(hospitalIds); + } + } + List folicAcidList = folicAcidService.queryFolicAcid(query); + if (CollectionUtils.isNotEmpty(folicAcidList)){ + for (FolicAcid data : folicAcidList){ + Map map = new HashMap<>(); + if (StringUtils.isNotEmpty(data.getParentId())){ + ResidentsArchiveModel model = residentsArchiveService.getResident(data.getId()); + 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("drawCount", data.getDrawCount()); + if (data.getPregnancyType()!=null){ + if (data.getPregnancyType()==1){ + map.put("pregnancyType", "孕前"); + } + if (data.getPregnancyType()==2){ + map.put("pregnancyType", "孕期"); + } + } + map.put("pregnancyWeeks", data.getPregnancyWeeks()); + map.put("highRisk", data.getHighRisk()); + map.put("hospitalName",data.getHospitalName()); + map.put("operator", data.getOperator()); + list.add(map); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CommonsHelper.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CommonsHelper.java index 7c597ed..abd168b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CommonsHelper.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CommonsHelper.java @@ -73,7 +73,7 @@ public final class CommonsHelper { } - private static String getName1(String id, BasicConfigService basicConfigService) { + public static String getName1(String id, BasicConfigService basicConfigService) { BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(id); if (basicConfig != null) { return basicConfig.getName();