diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java index 540dfe8..23ca69c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java @@ -7,10 +7,7 @@ import com.lyms.platform.operate.web.service.ITrackDownService; import com.lyms.platform.pojo.TrackDown; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Date; @@ -28,7 +25,7 @@ public class TrackDownController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/all", method = RequestMethod.GET) - public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, HttpServletRequest request) { + public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request) { return trackDownService.all(buildStart, buildEnd, checkStart, checkEnd, fmStart, fmEnd, key, page, limit, getUserId(request)); } @@ -42,7 +39,7 @@ public class TrackDownController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(method = RequestMethod.GET) - public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, Integer trackType, Integer page, Integer limit, HttpServletRequest request) { + public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, @RequestParam Integer trackType, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request) { return trackDownService.list(provinceId, cityId, areaId, streetId, trackType, page, limit, getUserId(request)); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java index 544b95a..2f5e93e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java @@ -3,6 +3,7 @@ package com.lyms.platform.operate.web.service.impl; import com.lyms.platform.biz.service.TrackDownService; import com.lyms.platform.common.enums.FmTypeEnums; import com.lyms.platform.common.enums.TrackDownDateEnums; +import com.lyms.platform.common.enums.TrackDownTransferEnums; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.result.PageResult; @@ -11,7 +12,6 @@ import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.service.ITrackDownService; -import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.pojo.*; import org.springframework.beans.factory.annotation.Autowired; @@ -88,7 +88,7 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("cqsc", mongoTemplate.count(Query.query(Criteria.where("parentId").is(patient.getId()).and("yn").is(1)), AntExChuModel.class) > 0L ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.D)); // type=3 且(isAutoFm不为1,或者不存在)且dueStatus为0 没有: 有分娩住院追访并且流转至下一流程 勾勾 反之xx - temp.put("fm", patient.getType() == 3 && (patient.getIsAutoFm() != 1 || patient.getIsAutoFm() == null) && patient.getDueStatus() == 0 ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.E)); // 分娩 1=勾勾 2=叉叉 + temp.put("fm", patient.getType() != null && patient.getType() == 3 && (patient.getIsAutoFm() == null || patient.getIsAutoFm() != 1) && patient.getDueStatus() != null && patient.getDueStatus() == 0 ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.E)); // 分娩 1=勾勾 2=叉叉 temp.put("fmType", FmTypeEnums.getFmNameById(patient.getFmType()) == null ? "--" : FmTypeEnums.getFmNameById(patient.getFmType())); // 分娩方式 // 产后复查 1=勾勾 2=叉叉 有产后复查记录>勾勾 没有: 有产后复查追访并且流转至下一流程 勾勾 反之xx @@ -106,6 +106,7 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS } Integer archiveModelCount = 0; + List> archiveModelList = new ArrayList<>(); for (ResidentsArchiveModel archiveModel : residentsArchiveModels) { for (Map map : restList) { if(StringUtils.isNotEmpty((String) map.get("cardNo")) && map.get("cardNo").toString().equals(archiveModel.getCertificateNum())) { @@ -116,9 +117,9 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS } Map temp = new HashMap<>(); temp.put("id", archiveModel.getId()); - temp.put("cardNo", archiveModel.getCertificateNum()); + temp.put("cardNo", StringUtils.encryCardNo(archiveModel.getCertificateNum())); temp.put("username", archiveModel.getUsername()); - temp.put("phone", archiveModel.getPhone()); + temp.put("phone", StringUtils.encryPhone(archiveModel.getPhone())); temp.put("age", DateUtil.getAge(archiveModel.getBirthday())); temp.put("resident", 1); // 妇女建档 temp.put("residentDate", DateUtil.getyyyy_MM_dd(archiveModel.getBuildDay())); // 妇女建档日期 @@ -133,9 +134,19 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("chfc", 3); // 产后复查 1=勾勾 2=叉叉 temp.put("chfcCount", 0); // 复查次数 archiveModelCount++; - restList.add(temp); + archiveModelList.add(temp); } - return RespBuilder.buildSuccess("tabList", new PageResult(restList.size() + archiveModelCount, page, limit, CollectionUtils.getPageIds(restList, page, limit))); + + // 处理分页 + if(restList.size() < limit) { + int count = limit - restList.size(); + if(archiveModelList.size() <= count) { + restList.addAll(archiveModelList); + } else { + restList.addAll(archiveModelList.subList(0, count)); + } + } + return RespBuilder.buildSuccess("tabList", new PageResult(restList.size() + archiveModelCount, page, limit, restList)); } private int isExitTrackDown(String parentId, TrackDownDateEnums trackDownDateEnums) { @@ -174,6 +185,8 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS @Override public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, Integer trackType, Integer page, Integer limit, Integer userId) { + PageResult pageResult = new PageResult(); + List> restList = new ArrayList<>(); Criteria criteria = new Criteria(); if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) ) { Criteria patientCriteria = new Criteria(); @@ -191,7 +204,45 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS } List patients = mongoTemplate.find(Query.query(patientCriteria.and("yn").is(1)), Patients.class); } - return null; + + if(trackType == TrackDownDateEnums.A.getId()) { + Criteria c = new Criteria(); + if(StringUtils.isNotEmpty(provinceId)) { + c.and("provinceId").is(provinceId); + } + if(StringUtils.isNotEmpty(cityId)) { + c.and("cityId").is(cityId); + } + if(StringUtils.isNotEmpty(areaId)) { + c.and("areaId").is(areaId); + } + if(StringUtils.isNotEmpty(streetId)) { + c.and("streetId").is(streetId); + } + List trackDowns = mongoTemplate.find(Query.query(Criteria.where("yn").is(1).and("trackDownTransfer").in(Arrays.asList(2, 3)) + .and("trackDownDateType").is(TrackDownDateEnums.A.getId())), TrackDown.class); + List residentIds = new ArrayList<>(); + for (TrackDown trackDown : trackDowns) { + residentIds.add(trackDown.getId()); + } + pageResult = findMongoPage(ResidentsArchiveModel.class, Query.query(c.and("id").nin(residentIds)), page, limit); + List residentsArchiveModels = (List) pageResult.getGrid(); + for (ResidentsArchiveModel residentsArchiveModel : residentsArchiveModels) { + Map temp = new HashMap<>(); + temp.put("id", residentsArchiveModel.getId()); + temp.put("username", residentsArchiveModel.getUsername()); + temp.put("cardNo", residentsArchiveModel.getCertificateNum()); + temp.put("residenceAddress", mongoUtil.findAddressName(residentsArchiveModel.getProvinceId(), residentsArchiveModel.getCityId(), residentsArchiveModel.getAreaId(), residentsArchiveModel.getStreetId())); /** 居住地 */ + temp.put("phone", StringUtils.encryPhone(residentsArchiveModel.getPhone())); + TrackDown trackDown = mongoTemplate.findOne(Query.query(Criteria.where("residentsArchiveId").is(residentsArchiveModel.getId()).and("yn").is(1)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); + temp.put("end", trackDown == null ? "--" : TrackDownTransferEnums.getName(trackDown.getTrackDownType())); + temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate())); + temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); + restList.add(temp); + } + } + pageResult.setGrid(restList); + return RespBuilder.buildSuccess(pageResult); } @Override diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java index 4c494dd..2a85e00 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java @@ -1,6 +1,5 @@ package com.lyms.platform.operate.web.utils; -import com.alibaba.fastjson.JSONArray; import com.lyms.platform.biz.service.BabyBookbuildingService; import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.enums.RiskDefaultTypeEnum; @@ -331,6 +330,20 @@ public class MongoUtil { return null; } + public String findAddressName(Object ... ids) { + StringBuilder sb = new StringBuilder(); + if(ids != null && ids.length > 0) { + for (Object id : ids) { + String name = findName(id); + if(StringUtils.isNotEmpty(name)) { + sb.append(name); + } + } + } + return sb.toString(); + } + + public String findId(String name) { if(StringUtils.isNotEmpty(name)) { BasicConfig basicConfig = mongoTemplate.findOne(Query.query(Criteria.where("name").is(name)), BasicConfig.class);