From d7239f48ed92e544dc53ac2a5de6b0db69b7e273 Mon Sep 17 00:00:00 2001 From: wtt Date: Mon, 19 Oct 2020 16:53:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B9=B3=E8=85=BA=E7=99=8C=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/query/CancerScreeningQuery.java | 14 +- .../web/controller/CancerScreeningController.java | 14 ++ .../operate/web/facade/CancerScreeningFacade.java | 193 +++++++++++++++++---- .../web/service/impl/PreEugebicsServiceImpl.java | 9 +- 4 files changed, 189 insertions(+), 41 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java index c5d334e..9cab85c 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/CancerScreeningQuery.java @@ -16,6 +16,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -26,6 +27,7 @@ public class CancerScreeningQuery extends BaseQuery implements IConvertToNativeQ private String id; //妇女档案id private String residentId; + private List residentIds; //姓名 private String uname; //出生日期 @@ -121,7 +123,9 @@ public class CancerScreeningQuery extends BaseQuery implements IConvertToNativeQ if(null != residentId){ condition=condition.and("residentId", residentId, MongoOper.IS); } - + if(null != residentIds){ + condition=condition.and("residentId", residentIds, MongoOper.IN); + } if(StringUtils.isNotEmpty(rxlYyz) ){ condition=condition.and("rxlYyz.select",rxlYyz , MongoOper.IS); } @@ -198,6 +202,14 @@ public class CancerScreeningQuery extends BaseQuery implements IConvertToNativeQ return rxlYdz; } + public List getResidentIds() { + return residentIds; + } + + public void setResidentIds(List residentIds) { + this.residentIds = residentIds; + } + public void setRxlYdz(String rxlYdz) { this.rxlYdz = rxlYdz; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CancerScreeningController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CancerScreeningController.java index 3f931a5..b04653b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CancerScreeningController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CancerScreeningController.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * 两癌筛查 @@ -83,6 +84,19 @@ public class CancerScreeningController extends BaseController { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return cancerScreenService.list(cancerScreeningRequest, loginState.getId()); } + /** + * 乳腺癌导出(查询两癌筛查列表) + * @param cancerScreeningRequest + * @param request + * @return + */ + @ResponseBody + @RequestMapping(value="/exportLasc",method = RequestMethod.GET) + @TokenRequired + public void exportLasc(CancerScreeningRequest cancerScreeningRequest, HttpServletRequest request, HttpServletResponse response) { + cancerScreenService.exportLasc(cancerScreeningRequest, getUserId(request),response); + } + /** * 根据两癌Id查询详情 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CancerScreeningFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CancerScreeningFacade.java index 4cb38f4..3230ba4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CancerScreeningFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CancerScreeningFacade.java @@ -12,11 +12,16 @@ import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.operate.web.request.CancerScreeningRequest; import com.lyms.platform.operate.web.result.ResidentsPageResult; +import com.lyms.platform.operate.web.service.impl.PreEugebicsServiceImpl; import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.FunvCommonUtil; +import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.operate.web.utils.UnitConstants; +import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; +import com.lyms.platform.pojo.BasicConfig; import com.lyms.platform.pojo.CancerScreeningModel; import com.lyms.platform.pojo.ResidentsArchiveModel; import com.lyms.platform.query.CancerScreeningQuery; @@ -27,6 +32,7 @@ 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.util.*; /** @@ -41,6 +47,8 @@ public class CancerScreeningFacade { @Autowired private AutoMatchFacade autoMatchFacade; @Autowired + private OrganizationService organizationService; + @Autowired private UsersService usersService; @Autowired private BasicConfigService basicConfigService; @@ -68,8 +76,7 @@ public class CancerScreeningFacade { if (hospitalId != null) { query.setHospitalId(hospitalId); } - if (StringUtils.isNotEmpty(queryRequest.getCheckDate())) - { + if (StringUtils.isNotEmpty(queryRequest.getCheckDate())) { String[] arrs = queryRequest.getCheckDate().split(" - "); query.setCreatedStart(DateUtil.parseYMD(arrs[0])); query.setCreatedEnd(new Date(DateUtil.parseYMD(arrs[1]).getTime() + 24 * 60 * 60 * 1000 - 1)); @@ -89,10 +96,10 @@ public class CancerScreeningFacade { List list = new ArrayList(); //System.out.println(query.convertToQuery().convertToMongoQuery()); - List modelList = cancerScreenService.queryCancerScreList(query); + List modelList = cancerScreenService.queryCancerScreList(query); if (CollectionUtils.isNotEmpty(modelList)) { for (CancerScreeningModel model : modelList) { - Map map = new HashMap<>(); + Map map = new HashMap <>(); map.put("id", model.getId()); map.put("created", DateUtil.getyyyy_MM_dd(model.getCreated())); map.put("name", model.getUsername()); @@ -101,12 +108,12 @@ public class CancerScreeningFacade { map.put("phone", model.getPhone()); map.put("age", DateUtil.getAge(model.getBirthday())); map.put("liveAddress", CommonsHelper.getResidence(model.getProvinceId(), model.getCityId(), model.getAreaId(), model.getStreetId(), model.getAddress(), basicConfigService)); - map.put("sfZhzd",model.getSfZhzd()); - map.put("sfJcry",model.getSfBlzd() == null ? "" : model.getSfBlzd()); + map.put("sfZhzd", model.getSfZhzd()); + map.put("sfJcry", model.getSfBlzd() == null ? "" : model.getSfBlzd()); - map.put("sfZzjg",model.getSfZzjg());//检査机构 + map.put("sfZzjg", model.getSfZzjg());//检査机构 - map.put("sfJcsj",DateUtil.getyyyy_MM_dd(model.getSfJcsj()));//检査日期 + map.put("sfJcsj", DateUtil.getyyyy_MM_dd(model.getSfJcsj()));//检査日期 list.add(map); } @@ -114,6 +121,121 @@ public class CancerScreeningFacade { return new BaseListResponse().setData(list).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(query.getPageInfo()); } + + /** + * 查询两癌筛查列表导出 + * + * @param queryRequest + * @param id + * @return + */ + public void exportLasc(CancerScreeningRequest queryRequest, Integer id, HttpServletResponse response){ + List > datas = getLascList(queryRequest, id); + Map cnames = new LinkedHashMap <>(); + cnames.put("xz", "乡镇"); + cnames.put("created", "检查日期"); + cnames.put("name", "姓名"); + cnames.put("age", "年龄"); + cnames.put("cardNum", "证件号"); + cnames.put("phone", "联系方式"); + cnames.put("liveAddress", "住址"); + ResponseUtil.responseExcel(cnames, datas, response); + } + + public List > getLascList(CancerScreeningRequest queryRequest, Integer id) { + List > lascList = new LinkedList <>(); + + //获取当前用户获取对应的 乡镇列表 + String hospitalId = autoMatchFacade.getHospitalId(id); + Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId)); + List items = basicConfigService.queryByParentId(organization.getAreaId()); + if (CollectionUtils.isNotEmpty(items)) { + for (BasicConfig item : items) { + + //获取该乡镇所有的女性建档数据 + List residentsIds = getResidentsIds(hospitalId, item); + if (CollectionUtils.isNotEmpty(residentsIds)) { + //查询条件 + CancerScreeningQuery query = new CancerScreeningQuery(); + query.setResidentIds(residentsIds); + query.setLimit(queryRequest.getLimit()); + query.setPage(queryRequest.getPage()); + query.setNeed("need"); + query.setYn(YnEnums.YES.getId()); + query.setQueryNo(queryRequest.getQueryNo()); + if (hospitalId != null) { + query.setHospitalId(hospitalId); + } + if (StringUtils.isNotEmpty(queryRequest.getCheckDate())) { + String[] arrs = queryRequest.getCheckDate().split(" - "); + query.setCreatedStart(DateUtil.parseYMD(arrs[0])); + query.setCreatedEnd(new Date(DateUtil.parseYMD(arrs[1]).getTime() + 24 * 60 * 60 * 1000 - 1)); + } + query.setProvinceId(queryRequest.getProvinceId()); + query.setCityId(queryRequest.getCityId()); + query.setAreaId(queryRequest.getAreaId()); + query.setStreetId(queryRequest.getStreetId()); + query.setRxlYyz(queryRequest.getRxlYyz()); + query.setRxlYyy(queryRequest.getRxlYyy()); + query.setRxlYdz(queryRequest.getRxlYdz()); + query.setRxlYdy(queryRequest.getRxlYdy()); + query.setRxlJcjg(queryRequest.getRxlJcjg()); + query.setRxlJy(queryRequest.getRxlJy()); + query.setRxJy(queryRequest.getRxJy()); + query.setSfZhzd(queryRequest.getSfZhzd()); + + System.out.println(query.convertToQuery().convertToMongoQuery()); + List modelList = cancerScreenService.queryCancerScreList(query); + if (CollectionUtils.isNotEmpty(modelList)) { + for (CancerScreeningModel model : modelList) { + Map map = new HashMap <>(); +// map.put("id", model.getId()); + map.put("xz", item.getName());//乡镇 +// map.put("sfJcsj", DateUtil.getyyyy_MM_dd(model.getSfJcsj()));//检查日期 + map.put("created", DateUtil.getyyyy_MM_dd(model.getCreated()));//检查日期 + map.put("name", model.getUsername());//姓名 + map.put("age", DateUtil.getAge(model.getBirthday()));//年龄 + map.put("cardNum", model.getCertificateNum());//证件号 + map.put("phone", model.getPhone());//联系方式 + map.put("liveAddress", CommonsHelper.getResidence(model.getProvinceId(), model.getCityId(), + model.getAreaId(), model.getStreetId(), model.getAddress(), basicConfigService));//住址 + lascList.add(map); + } + } + + } + } + + } + + return lascList; + } + + + /** + * 获取乡镇,婚检建档 女Id + * + * @Author: 武涛涛 + * @Date: 2020/9/24 17:18 + */ + private List getResidentsIds(String hospitalId, BasicConfig item) { + List residentsIds = new ArrayList <>(); + ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); + archiveQuery.setYn(YnEnums.YES.getId()); + archiveQuery.setHospitalId(hospitalId); + archiveQuery.setStreetId(item.getId()); + archiveQuery.setSex("c23779f1-cb6e-44d0-9fc8-0a990bf6184c");//张洁说只要女性的婚检数据 + List hjCounts = residentsArchiveService.queryResident(archiveQuery); + if (CollectionUtils.isNotEmpty(hjCounts)) { + for (int i = 0; i < hjCounts.size(); i++) { + if (hjCounts.get(i) != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(hjCounts.get(i).getId())) { + residentsIds.add(hjCounts.get(i).getId()); + } + } + } + return residentsIds; + } + /** * 获取妇女两癌筛查列表 * @@ -122,10 +244,10 @@ public class CancerScreeningFacade { */ public BaseResponse getResIdCancerScreenList(String residentId) { BaseResponse baseResponse = new BaseResponse(); - List cancerScreeningModels = cancerScreenService.findResIdCancerScreenList(residentId); - List> hisCancerScrList = new ArrayList<>(); + List cancerScreeningModels = cancerScreenService.findResIdCancerScreenList(residentId); + List > hisCancerScrList = new ArrayList <>(); for (CancerScreeningModel cs : cancerScreeningModels) { - Map map = new HashedMap(); + Map map = new HashedMap(); map.put("id", cs.getId()); map.put("createTime", DateUtil.getyyyy_MM_dd(cs.getCreated())); //根据用户id获取医院ID @@ -156,7 +278,7 @@ public class CancerScreeningFacade { public BaseResponse updateCancerScreen(CancerScreeningModel cancerScr, Integer id) { try { cancerScr.setOperator(id); - cancerScreenService.updateOneCancerScreen(cancerScr,cancerScr.getId()); + cancerScreenService.updateOneCancerScreen(cancerScr, cancerScr.getId()); return new BaseResponse("成功", ErrorCodeConstants.SUCCESS); } catch (Exception e) { e.printStackTrace(); @@ -168,7 +290,7 @@ public class CancerScreeningFacade { try { ResidentsArchiveModel residentsArchiveModel = residentsArchiveService.getResident(cancerScr.getResidentId()); //冗余妇女建档数据 - if(residentsArchiveModel!=null){ + if (residentsArchiveModel != null) { //姓名 cancerScr.setUsername(residentsArchiveModel.getUsername()); //出生日期 @@ -201,7 +323,7 @@ public class CancerScreeningFacade { cancerScr.setYn(YnEnums.YES.getId()); cancerScreenService.addOneCancerScreen(cancerScr); return new BaseResponse("成功", ErrorCodeConstants.SUCCESS); - }else{ + } else { return new BaseResponse("未传入的妇女建档id", ErrorCodeConstants.SUCCESS); } } catch (Exception e) { @@ -211,27 +333,27 @@ public class CancerScreeningFacade { } public BaseResponse queryCanSrcInfo(String cardNo, String vcCardNo, Integer userId) { - List residents = new ArrayList<>(); + List residents = new ArrayList <>(); ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); archiveQuery.setYn(YnEnums.YES.getId()); //身份证不为空的情况下通过身份证查询 - if (StringUtils.isNotEmpty(cardNo)){ + if (StringUtils.isNotEmpty(cardNo)) { archiveQuery.setCertificateNum(cardNo); residents = residentsArchiveService.queryResident(archiveQuery); //使用就诊卡号查询,先用登录ID查询属于哪家医院,然后查询到该居民的身份证号,调出所有的建档记录 - }else if (StringUtils.isNotEmpty(vcCardNo)){ + } else if (StringUtils.isNotEmpty(vcCardNo)) { //通过用户ID查询医院ID String hospitalId = autoMatchFacade.getHospitalId(userId); archiveQuery.setVcCardNo(vcCardNo); archiveQuery.setHospitalId(hospitalId); - List archiveModelList = residentsArchiveService.queryResident(archiveQuery); - if (CollectionUtils.isNotEmpty(archiveModelList)){ + List archiveModelList = residentsArchiveService.queryResident(archiveQuery); + if (CollectionUtils.isNotEmpty(archiveModelList)) { //判断身份证号是否为null - if (StringUtils.isEmpty(archiveModelList.get(0).getCertificateNum())){ + if (StringUtils.isEmpty(archiveModelList.get(0).getCertificateNum())) { residents = archiveModelList; - }else { + } else { archiveQuery.setHospitalId(null); archiveQuery.setVcCardNo(null); archiveQuery.setCertificateNum(archiveModelList.get(0).getCertificateNum()); @@ -240,43 +362,42 @@ public class CancerScreeningFacade { } } - if (CollectionUtils.isNotEmpty(residents)) - { + if (CollectionUtils.isNotEmpty(residents)) { ResidentsArchiveModel model = residents.get(0); - Map result = new HashMap<>(); + Map result = new HashMap <>(); - result.put("userName",model.getUsername()); + result.put("userName", model.getUsername()); - result.put("cardNo",model.getCertificateNum()); - result.put("certificateTypeId",model.getCertificateTypeId()); + result.put("cardNo", model.getCertificateNum()); + result.put("certificateTypeId", model.getCertificateTypeId()); if (model.getBirthday() != null) { result.put("age", com.lyms.platform.common.utils.StringUtils.unitHandle(DateUtil.getAge(model.getBirthday(), new Date()).toString(), UnitConstants.SUI)); } - result.put("sex",FunvCommonUtil.getBaseicConfigByid(model.getSex(), basicConfigService)); - result.put("birthday",DateUtil.getyyyy_MM_dd(model.getBirthday())); - result.put("phone",model.getPhone()); + result.put("sex", FunvCommonUtil.getBaseicConfigByid(model.getSex(), basicConfigService)); + result.put("birthday", DateUtil.getyyyy_MM_dd(model.getBirthday())); + result.put("phone", model.getPhone()); //居住地址 String liveRegister = CommonsHelper.getResidence(model.getProvinceId(), model.getCityId(), model.getAreaId(), model.getStreetId(), model.getAddress(), basicConfigService); - result.put("liveRegister",liveRegister); + result.put("liveRegister", liveRegister); //户籍地 String addressRegister = CommonsHelper.getResidence(model.getProvinceRegisterId(), model.getCityRegisterId(), model.getAreaRegisterId(), model.getStreetRegisterId(), model.getAddressRegister(), basicConfigService); - result.put("addressRegister",addressRegister); + result.put("addressRegister", addressRegister); - result.put("levelType",FunvCommonUtil.getBaseicConfigByid(model.getLevelTypeId(), basicConfigService)); + result.put("levelType", FunvCommonUtil.getBaseicConfigByid(model.getLevelTypeId(), basicConfigService)); result.put("residentId", model.getId()); - List cancerScreeningModels = cancerScreenService.findResIdCancerScreenList(model.getId()); - List> hisCancerScrList = new ArrayList<>(); + List cancerScreeningModels = cancerScreenService.findResIdCancerScreenList(model.getId()); + List > hisCancerScrList = new ArrayList <>(); for (CancerScreeningModel cs : cancerScreeningModels) { - Map map = new HashedMap(); + Map map = new HashedMap(); map.put("id", cs.getId()); map.put("createTime", DateUtil.getyyyy_MM_dd(cs.getCreated())); //根据用户id获取医院ID diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java index bf02ba5..016d9b6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java @@ -680,7 +680,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen } } - + } return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(map); } @@ -699,6 +699,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen public void exportYj(String time, Integer userId, HttpServletResponse response) { List > datas = getYjdcList(time, userId); Map cnames = new LinkedHashMap <>(); + cnames.put("xz", "乡镇"); cnames.put("username", "姓名"); cnames.put("certificateNum", "证件号"); cnames.put("age", "年龄"); @@ -714,6 +715,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen public void exportHj(String time, Integer userId, HttpServletResponse response) { List > datas = getHyjdcList(time, userId); Map cnames = new LinkedHashMap <>(); + cnames.put("xz", "乡镇"); cnames.put("username", "姓名"); cnames.put("certificateNum", "证件号"); cnames.put("age", "年龄"); @@ -759,6 +761,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen if (CollectionUtils.isNotEmpty(yjList)) { for (int i = 0; i < yjList.size(); i++) { Map yjjMap = new HashMap(); + yjjMap.put("xz",item.getName()); PreEugenicsBaseModel preEugenicsBaseModel = yjList.get(i); yjjMap.put("username", preEugenicsBaseModel.getWifeName());//姓名 yjjMap.put("certificateNum", preEugenicsBaseModel.getWifeCardNo());//证件号 @@ -771,7 +774,6 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen yjjMap.put("phone", preEugenicsBaseModel.getWifePhone());//联系电话 yjjMap.put("spouseName", preEugenicsBaseModel.getHusbandName());//配偶姓名 yjjMap.put("spousePhone", preEugenicsBaseModel.getHusbandPhone());//联系方式 - yjdcList.add(yjjMap); } } @@ -797,8 +799,6 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen List items = basicConfigService.queryByParentId(organization.getAreaId()); if (CollectionUtils.isNotEmpty(items)) { for (BasicConfig item : items) { - Map data = new HashMap(); - data.put("name", item.getName()); /*婚检*/ List residentsIds = getResidentsIds(hospitalId, item); //通过建档 residentsIds 获取这短时间婚检孕检的男女 @@ -820,6 +820,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen if (CollectionUtils.isNotEmpty(hjList)) { for (int i = 0; i < hjList.size(); i++) { Map hyjMap = new HashMap(); + hyjMap.put("xz", item.getName());//乡镇 //检查数据 PremaritalCheckup premaritalCheckup = hjList.get(i); if (premaritalCheckup != null && StringUtils.isNotEmpty(premaritalCheckup.getParentId())) { -- 1.8.3.1