Commit a6b52e6e031550b70f8e04ba33eecd89839d16c6

Authored by shiyang
1 parent 3e460da5fb

承德市妇幼上线两癌需求-乳腺癌筛查统计表

Showing 3 changed files with 86 additions and 9 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java View file @ a6b52e6
... ... @@ -7,7 +7,7 @@
7 7 import com.lyms.hospitalapi.lhxfy.LhxfyService;
8 8 import com.lyms.platform.common.constants.ErrorCodeConstants;
9 9 import com.lyms.platform.common.result.BaseObjectResponse;
10   -import com.lyms.platform.operate.web.request.YqysParamRequest;
  10 +import com.lyms.platform.operate.web.request.*;
11 11 import com.lyms.platform.operate.web.service.impl.PreEugebicsServiceImpl;
12 12 import com.lyms.platform.pojo.BasicConfig;
13 13 import com.lyms.platform.pojo.CervicalCancerModel;
... ... @@ -21,9 +21,6 @@
21 21 import com.lyms.platform.common.base.BaseController;
22 22 import com.lyms.platform.common.result.BaseListResponse;
23 23 import com.lyms.platform.common.result.BaseResponse;
24   -import com.lyms.platform.operate.web.request.CommonParamRequest;
25   -import com.lyms.platform.operate.web.request.PreEugenicsBaseListRequest;
26   -import com.lyms.platform.operate.web.request.PreEugenicsBaseRequest;
27 24 import com.lyms.platform.operate.web.service.IPreEugenicsService;
28 25  
29 26 import java.util.Date;
... ... @@ -314,6 +311,19 @@
314 311 BaseResponse baseResponse=lhxfyService.getHistoryPreEugenicsId(startDate,endDate);
315 312 return baseResponse;
316 313 }
317   -
  314 + /**
  315 + * 乳腺癌筛查统计表
  316 + *
  317 + * @param queryRequest
  318 + * @param request
  319 + * @Author: sy
  320 + * @Date: 2022/2/7
  321 + */
  322 + @RequestMapping(method = RequestMethod.GET, value = "/getBreastInspectList")
  323 + @ResponseBody
  324 + @TokenRequired
  325 + public BaseObjectResponse getBreastInspectList(CancerScreeningRequest queryRequest, HttpServletRequest request) {
  326 + return iPreEugenicsService.getBreastInspectList(queryRequest);
  327 + }
318 328 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java View file @ a6b52e6
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
4 4 import com.lyms.platform.common.result.BaseResponse;
  5 +import com.lyms.platform.operate.web.request.CancerScreeningRequest;
5 6 import com.lyms.platform.operate.web.request.PreEugenicsBaseListRequest;
6 7 import com.lyms.platform.operate.web.request.PreEugenicsBaseRequest;
7 8 import com.lyms.platform.pojo.PreEugenicsBaseModel;
... ... @@ -34,5 +35,7 @@
34 35 BaseResponse doSyncPreEugenicsBase();
35 36  
36 37 void exportYqys(PreEugenicsBaseListRequest param, Integer userId, HttpServletResponse response);
  38 +
  39 + BaseObjectResponse getBreastInspectList(CancerScreeningRequest queryRequest);
37 40 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java View file @ a6b52e6
... ... @@ -2,7 +2,10 @@
2 2  
3 3 import java.util.*;
4 4  
  5 +import com.google.common.collect.ArrayListMultimap;
  6 +import com.google.common.collect.Multimap;
5 7 import com.lyms.hospitalapi.lcfy.LisService;
  8 +import com.lyms.platform.biz.service.CancerScreeningService;
6 9 import com.lyms.platform.biz.service.PremaritalCheckupService;
7 10 import com.lyms.platform.biz.service.ResidentsArchiveService;
8 11 import com.lyms.platform.common.dao.operator.MongoCondition;
9 12  
10 13  
... ... @@ -11,16 +14,18 @@
11 14 import com.lyms.platform.common.result.BaseObjectResponse;
12 15 import com.lyms.platform.common.utils.*;
13 16 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
14   -import com.lyms.platform.operate.web.request.YqysParamRequest;
  17 +import com.lyms.platform.operate.web.request.*;
15 18 import com.lyms.platform.operate.web.utils.ResponseUtil;
16 19 import com.lyms.platform.permission.model.Organization;
17 20 import com.lyms.platform.permission.model.OrganizationQuery;
18 21 import com.lyms.platform.permission.service.OrganizationService;
19 22 import com.lyms.platform.permission.service.UsersService;
20 23 import com.lyms.platform.pojo.*;
  24 +import com.lyms.platform.query.CancerScreeningQuery;
21 25 import com.lyms.platform.query.PremaritalCheckupQuery;
22 26 import com.lyms.platform.query.ResidentsArchiveQuery;
23 27 import org.apache.commons.collections.CollectionUtils;
  28 +import org.apache.commons.collections.MapUtils;
24 29 import org.springframework.beans.BeanUtils;
25 30 import org.springframework.beans.factory.annotation.Autowired;
26 31 import org.springframework.data.domain.Sort;
... ... @@ -37,9 +42,6 @@
37 42 import com.lyms.platform.common.constants.ErrorCodeConstants;
38 43 import com.lyms.platform.common.result.BaseListResponse;
39 44 import com.lyms.platform.common.result.BaseResponse;
40   -import com.lyms.platform.operate.web.request.CommonParamRequest;
41   -import com.lyms.platform.operate.web.request.PreEugenicsBaseListRequest;
42   -import com.lyms.platform.operate.web.request.PreEugenicsBaseRequest;
43 45 import com.lyms.platform.operate.web.result.PreEugenicsBaseListResult;
44 46 import com.lyms.platform.operate.web.service.IPreEugenicsService;
45 47 import com.lyms.platform.operate.web.utils.CommonsHelper;
... ... @@ -80,6 +82,9 @@
80 82 @Autowired
81 83 private PremaritalCheckupService premaritalCheckupService;
82 84  
  85 + @Autowired
  86 + private CancerScreeningService cancerScreenService;
  87 +
83 88 /**
84 89 * 根据身份证号获取对应的孕前优生信息
85 90 *
... ... @@ -1219,6 +1224,65 @@
1219 1224 }
1220 1225  
1221 1226 }
  1227 +
  1228 + @Override
  1229 + public BaseObjectResponse getBreastInspectList(CancerScreeningRequest queryRequest) {
  1230 + //查询条件
  1231 + CancerScreeningQuery query = new CancerScreeningQuery();
  1232 + query.setYn(YnEnums.YES.getId());
  1233 + query.setProvinceId(queryRequest.getProvinceId());
  1234 + query.setCityId(queryRequest.getCityId());
  1235 + query.setAreaId(StringUtils.isNotEmpty(queryRequest.getAreaId())?query.getAreaId():null);
  1236 + if (StringUtils.isNotEmpty(queryRequest.getCheckDate())) {
  1237 + String[] arrs = queryRequest.getCheckDate().split(" - ");
  1238 + query.setCreatedStart(DateUtil.parseYMD(arrs[0]));
  1239 + query.setCreatedEnd(new Date(DateUtil.parseYMD(arrs[1]).getTime() + 24 * 60 * 60 * 1000 - 1));
  1240 + }
  1241 + //分组查询
  1242 + AggregationOperation match = Aggregation.match(query.convertToQuery().getCriteria());
  1243 + AggregationOperation group = Aggregation.group("areaId");
  1244 + Aggregation aggregation= Aggregation.newAggregation(match, group);
  1245 + AggregationResults<HashMap> result = mongoTemplate.aggregate(aggregation,"lyms_cancer_screen", HashMap.class);
  1246 + List <Map <String, Object>> areaList=new ArrayList<>();
  1247 + for (HashMap mappedResult : result.getMappedResults()){
  1248 + Map <String, Object> map=new HashMap<>();
  1249 + long zc=0;//正常
  1250 + long lx=0;//良性
  1251 + long ex=0;//恶性
  1252 + long zs=0;//总数
  1253 + if (null!=mappedResult.get("_id")){
  1254 + map.put("name", CommonsHelper.getName1(mappedResult.get("_id").toString(),basicConfigService));
  1255 + query.setAreaId(mappedResult.get("_id").toString());
  1256 + List <CancerScreeningModel> modelList = cancerScreenService.queryCancerScreList(query);
  1257 + for (CancerScreeningModel cancerScreeningModel : modelList) {
  1258 + if(MapUtils.isNotEmpty(cancerScreeningModel.getZhJd())){
  1259 + if("0".equals(cancerScreeningModel.getZhJd().get("yn"))){
  1260 + zc++;
  1261 + }else {
  1262 + List<String> list = (List<String>) cancerScreeningModel.getZhJd().get("yc");
  1263 + String[] list2={"1","2","3","4","5"};
  1264 + String[] list3={"6","7","8"};
  1265 + if(CollectionUtils.containsAny(list, Arrays.asList(list2))){
  1266 + lx++;
  1267 + }
  1268 + if(CollectionUtils.containsAny(list, Arrays.asList(list3))){
  1269 + ex++;
  1270 + }
  1271 + }
  1272 +
  1273 + }
  1274 + }
  1275 + map.put("zc", zc);
  1276 + map.put("lx", lx);
  1277 + map.put("ex", ex);
  1278 + map.put("zs", zc+lx+ex);
  1279 + areaList.add(map);
  1280 + }
  1281 + }
  1282 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(areaList);
  1283 + }
  1284 +
  1285 +
1222 1286  
1223 1287 public static final String AREA_URL = PropertiesUtils.getPropertyValue("area_url");
1224 1288 }