Commit d29fe1e181cc54f7cfd1204ae84eec856d31b142

Authored by gengxiaokai
1 parent ecfe3b825f

产检统计

Showing 2 changed files with 175 additions and 11 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PremaritalCheckupController.java View file @ d29fe1e
... ... @@ -94,6 +94,23 @@
94 94 return premaritalCheckupFacade.queryPremaritalCheckup(queryRequest, loginState.getId());
95 95 }
96 96  
  97 +
  98 + /**
  99 + * 婚检统计
  100 + * @param provinceId
  101 + * @param cityId
  102 + * @param areaId
  103 + * @param streetId
  104 + * @param time
  105 + * @param request
  106 + * @return
  107 + */
  108 + public BaseResponse queryPremaritalReport(String provinceId,String cityId,String areaId,String streetId,String time,HttpServletRequest request){
  109 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  110 + return premaritalCheckupFacade.queryPremaritalReport(provinceId,cityId,areaId,streetId,time,loginState.getId());
  111 + }
  112 +
  113 +
97 114 @RequestMapping(value = "/premaritalCheckupExport", method = RequestMethod.GET)
98 115 @ResponseBody
99 116 @TokenRequired
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java View file @ d29fe1e
1 1 package com.lyms.platform.operate.web.facade;
2 2  
3   -import com.lyms.platform.biz.service.BasicConfigService;
4   -import com.lyms.platform.biz.service.PremaritalCheckupService;
5   -import com.lyms.platform.biz.service.ResidentsArchiveService;
6   -import com.lyms.platform.biz.service.TrackDownRecordService;
  3 +import com.lyms.platform.beans.AddressBean;
  4 +import com.lyms.platform.biz.service.*;
7 5 import com.lyms.platform.common.constants.ErrorCodeConstants;
8 6 import com.lyms.platform.common.enums.MedicalAdviceEnum;
9 7 import com.lyms.platform.common.enums.PhysiologyStatusEnum;
... ... @@ -14,6 +12,7 @@
14 12 import com.lyms.platform.common.result.BaseResponse;
15 13 import com.lyms.platform.common.utils.DateUtil;
16 14 import com.lyms.platform.common.utils.ExcelUtil;
  15 +import com.lyms.platform.common.utils.JsonUtil;
17 16 import com.lyms.platform.common.utils.SystemConfig;
18 17 import com.lyms.platform.operate.web.request.PremaritalCheckupAddRequest;
19 18 import com.lyms.platform.operate.web.request.PremaritalCheckupQueryRequest;
20 19  
... ... @@ -25,16 +24,12 @@
25 24 import com.lyms.platform.operate.web.utils.FunvCommonUtil;
26 25 import com.lyms.platform.operate.web.utils.UnitConstants;
27 26 import com.lyms.platform.permission.model.Organization;
  27 +import com.lyms.platform.permission.model.OrganizationQuery;
28 28 import com.lyms.platform.permission.model.Users;
29 29 import com.lyms.platform.permission.service.OrganizationService;
30 30 import com.lyms.platform.permission.service.UsersService;
31   -import com.lyms.platform.pojo.BasicConfig;
32   -import com.lyms.platform.pojo.PremaritalCheckup;
33   -import com.lyms.platform.pojo.ResidentsArchiveModel;
34   -import com.lyms.platform.pojo.TrackDownRecord;
35   -import com.lyms.platform.query.PremaritalCheckupQuery;
36   -import com.lyms.platform.query.ResidentsArchiveQuery;
37   -import com.lyms.platform.query.TrackDownRecordQuery;
  31 +import com.lyms.platform.pojo.*;
  32 +import com.lyms.platform.query.*;
38 33 import org.apache.commons.collections.CollectionUtils;
39 34 import org.apache.commons.lang.StringUtils;
40 35 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -68,6 +63,10 @@
68 63 private ITrackDownService trackDownService;
69 64 @Autowired
70 65 private TrackDownRecordService trackDownRecordService;
  66 + @Autowired
  67 + private AreaCountFacade areaCountFacade;
  68 + @Autowired
  69 + private DataPermissionService dataPermissionService;
71 70  
72 71 /**
73 72 * 查询单个(男/女)婚前检查
... ... @@ -2190,6 +2189,144 @@
2190 2189 return checkupResult;
2191 2190 }
2192 2191  
  2192 +
  2193 + //婚检统计
  2194 + public BaseResponse queryPremaritalReport(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){
  2195 + //获取用户权限医院和筛选条件的交集
  2196 + List<String> currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, provinceId,
  2197 + cityId, areaId);
  2198 + String[] dates = null;
  2199 + if (StringUtils.isNotEmpty(time)) {
  2200 + dates = time.split(" - ");
  2201 + }
  2202 + BasicConfigQuery basicQuery = new BasicConfigQuery();
  2203 + basicQuery.setYn(YnEnums.YES.getId());
  2204 + basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd");
  2205 + //用来存放省、市、县的ID的集合
  2206 + List<String> ids = new ArrayList<>();
  2207 + //查询当前登录用户管辖的所有医院
  2208 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  2209 + dataPermissionsModelQuery.setUserId(userId);
  2210 + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  2211 +
  2212 + int addrType = 0;
  2213 + if (StringUtils.isNotEmpty(provinceId)) {
  2214 + ids = new ArrayList<>();
  2215 + if (CollectionUtils.isNotEmpty(permissionsModels)) {
  2216 + List<AddressBean> addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class);
  2217 + if (CollectionUtils.isNotEmpty(addressBeanList))
  2218 + {
  2219 + for (AddressBean bean : addressBeanList)
  2220 + {
  2221 + if (bean != null && bean.getP() != null && bean.getP().equals(provinceId) && StringUtils.isNotEmpty(bean.getC()))
  2222 + {
  2223 + //省不为空,赋值所有市的id
  2224 + ids.add(bean.getC());
  2225 + }
  2226 + }
  2227 + }
  2228 + }
  2229 + basicQuery.setIds(ids);
  2230 + addrType = 1;
  2231 + }
  2232 + if (StringUtils.isNotEmpty(cityId)) {
  2233 + ids = new ArrayList<>();
  2234 + if (CollectionUtils.isNotEmpty(permissionsModels)) {
  2235 + List<AddressBean> addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class);
  2236 + if (CollectionUtils.isNotEmpty(addressBeanList))
  2237 + {
  2238 + for (AddressBean bean : addressBeanList)
  2239 + {
  2240 + if (bean != null && bean.getC() != null && bean.getC().equals(cityId) && StringUtils.isNotEmpty(bean.getA()))
  2241 + {
  2242 + //市不为空,赋值所有县的id
  2243 + ids.add(bean.getA());
  2244 + }
  2245 + }
  2246 + }
  2247 + }
  2248 + basicQuery.setIds(ids);
  2249 + addrType = 2;
  2250 + }
  2251 + //x轴标题数据
  2252 + List<String> xAxis = new ArrayList<>();
  2253 + //获取地址列表
  2254 + List<BasicConfig> configList = new ArrayList<>();
  2255 + if (CollectionUtils.isNotEmpty(ids))
  2256 + {
  2257 + configList = basicConfigService.queryBasicConfig(basicQuery);
  2258 + }
  2259 + if (CollectionUtils.isNotEmpty(configList)) {
  2260 + for (BasicConfig addr : configList) {
  2261 + xAxis.add(addr.getName());
  2262 + }
  2263 + }
  2264 + //标题名称
  2265 + List<String> titleItems = new LinkedList<>();
  2266 + titleItems.add("男婚检人数");
  2267 + titleItems.add("女婚检人数");
  2268 +
  2269 + //图标数据
  2270 + List<Map<String, Object>> series = new LinkedList<>();
  2271 + if (CollectionUtils.isNotEmpty(configList)) {
  2272 +
  2273 +
  2274 + for (BasicConfig c : configList) {
  2275 + Map<String,Object> map = new HashMap<String,Object>();
  2276 + OrganizationQuery idQuery = new OrganizationQuery();
  2277 + idQuery.setYn(YnEnums.YES.getId());
  2278 +
  2279 + //查询机构数
  2280 + if (addrType == 1) {
  2281 + idQuery.setCityId(c.getId());
  2282 + } else if (addrType == 2) {
  2283 + idQuery.setAreaId(c.getId());
  2284 + }
  2285 + List<Organization> orgs = organizationService.queryOrganization(idQuery);
  2286 + List<String> hids = getConditionHospitalIds(currentUserHospPermissions, orgs);
  2287 +
  2288 + if (CollectionUtils.isNotEmpty(hids))
  2289 + {
  2290 +
  2291 + PremaritalCheckupQuery query = new PremaritalCheckupQuery();
  2292 + if(dates != null){
  2293 + query.setPremaritalUpTimeStart(DateUtil.parseYMD(dates[0]));
  2294 + if (dates.length == 2) {
  2295 + query.setPremaritalUpTimeEnd(DateUtil.parseYMD(dates[1]));
  2296 + }
  2297 + }
  2298 + query.setHospitalIds(hids);
  2299 + query.setSexType(1);//女性
  2300 + List<PremaritalCheckup> dataNv = premaritalCheckupService.queryPremaritalCheckup(query);
  2301 + if(dataNv != null && dataNv.size() > 0){
  2302 + map.put("woman",dataNv.size());
  2303 + }else{
  2304 + map.put("woman",0);
  2305 + }
  2306 +
  2307 + query.setSexType(2);//男性
  2308 + List<PremaritalCheckup> dataNan = premaritalCheckupService.queryPremaritalCheckup(query);
  2309 + if(dataNv != null && dataNv.size() > 0){
  2310 + map.put("man",dataNan.size());
  2311 + }else{
  2312 + map.put("man",0);
  2313 + }
  2314 + }
  2315 + series.add(map);
  2316 + }
  2317 +
  2318 +
  2319 + }
  2320 +
  2321 + Map<String, Object> datas = new HashMap<>();
  2322 + datas.put("series", series);
  2323 + datas.put("xAxis", xAxis);
  2324 + return new BaseObjectResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas);
  2325 +
  2326 + }
  2327 +
  2328 +
  2329 +
2193 2330 private String strPj(String dstStr,String str)
2194 2331 {
2195 2332 String result = "";
... ... @@ -2264,6 +2401,16 @@
2264 2401 return str.substring(0,str.length()-1);
2265 2402 }
2266 2403 return "";
  2404 + }
  2405 +
  2406 + private List<String> getConditionHospitalIds(List<String> currentUserHospPermissions, List<Organization> conditionHospitals) {
  2407 + List<String> hids = new ArrayList<>();
  2408 + for (Organization org : conditionHospitals) {
  2409 + hids.add(String.valueOf(org.getId()));
  2410 + }
  2411 + hids.retainAll(currentUserHospPermissions);
  2412 +
  2413 + return hids;
2267 2414 }
2268 2415  
2269 2416 }