Commit b065ab13056ee1fc8b8ab9b07fe25bf2e7134d34
1 parent
50e0fb0af7
Exists in
master
and in
6 other branches
新增增值服务统计模块
Showing 7 changed files with 629 additions and 2 deletions
- platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/model/ServiceListQuery.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java
- platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java
platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java
View file @
b065ab1
... | ... | @@ -2,6 +2,8 @@ |
2 | 2 | |
3 | 3 | import com.lyms.platform.permission.model.PatientService; |
4 | 4 | import com.lyms.platform.permission.model.PatientServiceQuery; |
5 | +import com.lyms.platform.permission.model.ServiceListQuery; | |
6 | +import org.apache.ibatis.annotations.Param; | |
5 | 7 | |
6 | 8 | import java.util.List; |
7 | 9 | import java.util.Map; |
... | ... | @@ -30,5 +32,37 @@ |
30 | 32 | |
31 | 33 | int selectOnlyBzServiceCount(PatientServiceQuery query); |
32 | 34 | |
35 | + /** | |
36 | + * 所有增值服务list | |
37 | + * | |
38 | + * @param query | |
39 | + * @return | |
40 | + */ | |
41 | + Map<String, Object> getServiceList(@Param("query") ServiceListQuery query); | |
42 | + | |
43 | + | |
44 | + /** | |
45 | + * 根据状态统计数量 | |
46 | + * | |
47 | + * @param param | |
48 | + * @return | |
49 | + */ | |
50 | + int countStatusInfo(@Param("param") ServiceListQuery param); | |
51 | + | |
52 | + /** | |
53 | + * 所有增值服务详情list的总数 | |
54 | + * | |
55 | + * @param param | |
56 | + * @return | |
57 | + */ | |
58 | + int getServeDetailListCount(@Param("param") ServiceListQuery param); | |
59 | + | |
60 | + /** | |
61 | + * 所有增值服务详情list | |
62 | + * | |
63 | + * @param param | |
64 | + * @return | |
65 | + */ | |
66 | + List<Map> getServeDetailList(@Param("param") ServiceListQuery param); | |
33 | 67 | } |
platform-biz-service/src/main/java/com/lyms/platform/permission/model/ServiceListQuery.java
View file @
b065ab1
1 | +package com.lyms.platform.permission.model; | |
2 | + | |
3 | +import com.lyms.platform.common.dao.BaseQuery; | |
4 | + | |
5 | +import java.util.Date; | |
6 | +import java.util.List; | |
7 | + | |
8 | +/** | |
9 | + * | |
10 | + * @Author dongqin | |
11 | + * @Description 增值服务list请求参数类 | |
12 | + * @Date 15:49 2019/5/15 | |
13 | + **/ | |
14 | + | |
15 | +public class ServiceListQuery extends BaseQuery { | |
16 | + | |
17 | + private Date startTime; | |
18 | + | |
19 | + private String provinceId; | |
20 | + | |
21 | + private String cityId; | |
22 | + | |
23 | + private String areaId; | |
24 | + | |
25 | + private String hospitalId; | |
26 | + | |
27 | + private Integer userId; | |
28 | + | |
29 | + private List<String> hospitalIds; | |
30 | + | |
31 | + /** | |
32 | + * 针对详情列表:-1 全部 1-开通、2-退订、3-过期、4-暂停 | |
33 | + */ | |
34 | + private String serStatus; | |
35 | + | |
36 | + public String getSerStatus() { | |
37 | + return serStatus; | |
38 | + } | |
39 | + | |
40 | + public void setSerStatus(String serStatus) { | |
41 | + this.serStatus = serStatus; | |
42 | + } | |
43 | + | |
44 | + public List<String> getHospitalIds() { | |
45 | + return hospitalIds; | |
46 | + } | |
47 | + | |
48 | + public void setHospitalIds(List<String> hospitalIds) { | |
49 | + this.hospitalIds = hospitalIds; | |
50 | + } | |
51 | + | |
52 | + public Integer getUserId() { | |
53 | + return userId; | |
54 | + } | |
55 | + | |
56 | + public void setUserId(Integer userId) { | |
57 | + this.userId = userId; | |
58 | + } | |
59 | + | |
60 | + public Date getStartTime() { | |
61 | + return startTime; | |
62 | + } | |
63 | + | |
64 | + public void setStartTime(Date startTime) { | |
65 | + this.startTime = startTime; | |
66 | + } | |
67 | + | |
68 | + public String getProvinceId() { | |
69 | + return provinceId; | |
70 | + } | |
71 | + | |
72 | + public void setProvinceId(String provinceId) { | |
73 | + this.provinceId = provinceId; | |
74 | + } | |
75 | + | |
76 | + public String getCityId() { | |
77 | + return cityId; | |
78 | + } | |
79 | + | |
80 | + public void setCityId(String cityId) { | |
81 | + this.cityId = cityId; | |
82 | + } | |
83 | + | |
84 | + public String getAreaId() { | |
85 | + return areaId; | |
86 | + } | |
87 | + | |
88 | + public void setAreaId(String areaId) { | |
89 | + this.areaId = areaId; | |
90 | + } | |
91 | + | |
92 | + public String getHospitalId() { | |
93 | + return hospitalId; | |
94 | + } | |
95 | + | |
96 | + public void setHospitalId(String hospitalId) { | |
97 | + this.hospitalId = hospitalId; | |
98 | + } | |
99 | +} |
platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java
View file @
b065ab1
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | import com.lyms.platform.permission.model.PatientService; |
4 | 4 | import com.lyms.platform.permission.model.PatientServiceQuery; |
5 | +import com.lyms.platform.permission.model.ServiceListQuery; | |
5 | 6 | |
6 | 7 | import java.util.List; |
7 | 8 | import java.util.Map; |
... | ... | @@ -21,5 +22,11 @@ |
21 | 22 | |
22 | 23 | |
23 | 24 | List<Map> selectOnlyBzService(PatientServiceQuery query); |
25 | + | |
26 | + Map<String, Object> getServiceList(ServiceListQuery param); | |
27 | + | |
28 | + int countStatusInfo(ServiceListQuery param); | |
29 | + | |
30 | + List<Map> getServeDetailList(ServiceListQuery param); | |
24 | 31 | } |
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java
View file @
b065ab1
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | import com.lyms.platform.permission.dao.master.PatientServiceMapper; |
4 | 4 | import com.lyms.platform.permission.model.PatientService; |
5 | 5 | import com.lyms.platform.permission.model.PatientServiceQuery; |
6 | +import com.lyms.platform.permission.model.ServiceListQuery; | |
6 | 7 | import com.lyms.platform.permission.service.PatientServiceService; |
7 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
8 | 9 | import org.springframework.stereotype.Service; |
... | ... | @@ -55,6 +56,24 @@ |
55 | 56 | query.mysqlBuild(patientServiceMapper.selectOnlyBzServiceCount(query)); |
56 | 57 | } |
57 | 58 | return patientServiceMapper.selectOnlyBzService(query); |
59 | + } | |
60 | + | |
61 | + @Override | |
62 | + public Map<String, Object> getServiceList(ServiceListQuery query) { | |
63 | + return patientServiceMapper.getServiceList(query); | |
64 | + } | |
65 | + | |
66 | + @Override | |
67 | + public int countStatusInfo(ServiceListQuery param) { | |
68 | + return patientServiceMapper.countStatusInfo(param); | |
69 | + } | |
70 | + | |
71 | + @Override | |
72 | + public List<Map> getServeDetailList(ServiceListQuery param) { | |
73 | + if (param.getNeed() != null) { | |
74 | + param.mysqlBuild(patientServiceMapper.getServeDetailListCount(param)); | |
75 | + } | |
76 | + return patientServiceMapper.getServeDetailList(param); | |
58 | 77 | } |
59 | 78 | } |
platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml
View file @
b065ab1
... | ... | @@ -393,6 +393,201 @@ |
393 | 393 | select count(1) from patient_service |
394 | 394 | <include refid="PatientServiceCondition"/> |
395 | 395 | </select> |
396 | + <select id="getServiceList" parameterType="com.lyms.platform.permission.model.ServiceListQuery" resultType="java.util.Map" fetchSize="10000"> | |
397 | + | |
398 | + SELECT | |
399 | + o.name as "name", | |
400 | + o.province_id as "provinceId", | |
401 | + o.city_id as "cityId", | |
402 | + o.area_id as "areaId", | |
403 | + o.id as "hospitalId", | |
404 | + (SELECT Count(1) | |
405 | + FROM patient_service ps | |
406 | + join organization o ON o.id = ps.hospital_id | |
407 | + WHERE ps.hospital_id = #{query.hospitalId} | |
408 | + AND ps.ser_status = 1 | |
409 | + <if test="query.startTime != null "> | |
410 | + AND ps.create_date <= #{query.startTime} | |
411 | + </if> | |
412 | + <if test="query.provinceId != null"> | |
413 | + and o.province_id = #{query.provinceId} | |
414 | + </if> | |
415 | + <if test="query.cityId != null"> | |
416 | + and o.city_id = #{query.cityId} | |
417 | + </if> | |
418 | + <if test="query.areaId != null"> | |
419 | + and o.area_id = #{query.areaId} | |
420 | + </if> | |
421 | + ) as "open", | |
422 | + (SELECT Count(1) | |
423 | + FROM patient_service ps | |
424 | + join organization o ON o.id = ps.hospital_id | |
425 | + WHERE ps.hospital_id = #{query.hospitalId} | |
426 | + AND ps.ser_status = 2 | |
427 | + <if test="query.startTime != null "> | |
428 | + AND ps.create_date <= #{query.startTime} | |
429 | + </if> | |
430 | + <if test="query.provinceId != null"> | |
431 | + and o.province_id = #{query.provinceId} | |
432 | + </if> | |
433 | + <if test="query.cityId != null"> | |
434 | + and o.city_id = #{query.cityId} | |
435 | + </if> | |
436 | + <if test="query.areaId != null"> | |
437 | + and o.area_id = #{query.areaId} | |
438 | + </if> | |
439 | + ) as "unsubscribe", | |
440 | + (SELECT Count(1) | |
441 | + FROM patient_service ps | |
442 | + join organization o ON o.id = ps.hospital_id | |
443 | + WHERE ps.hospital_id = #{query.hospitalId} | |
444 | + AND ps.ser_status = 3 | |
445 | + <if test="query.startTime != null "> | |
446 | + AND ps.create_date <= #{query.startTime} | |
447 | + </if> | |
448 | + <if test="query.provinceId != null"> | |
449 | + and o.province_id = #{query.provinceId} | |
450 | + </if> | |
451 | + <if test="query.cityId != null"> | |
452 | + and o.city_id = #{query.cityId} | |
453 | + </if> | |
454 | + <if test="query.areaId != null"> | |
455 | + and o.area_id = #{query.areaId} | |
456 | + </if> | |
457 | + ) as "expire", | |
458 | + (SELECT Count(1) | |
459 | + FROM patient_service ps | |
460 | + join organization o ON o.id = ps.hospital_id | |
461 | + WHERE ps.hospital_id = #{query.hospitalId} | |
462 | + AND ps.ser_status = 4 | |
463 | + <if test="query.startTime != null "> | |
464 | + AND ps.create_date <= #{query.startTime} | |
465 | + </if> | |
466 | + <if test="query.provinceId != null"> | |
467 | + and o.province_id = #{query.provinceId} | |
468 | + </if> | |
469 | + <if test="query.cityId != null"> | |
470 | + and o.city_id = #{query.cityId} | |
471 | + </if> | |
472 | + <if test="query.areaId != null"> | |
473 | + and o.area_id = #{query.areaId} | |
474 | + </if> | |
475 | + ) as "suspend" | |
476 | + FROM patient_service ps | |
477 | + JOIN organization o | |
478 | + ON o.id = ps.hospital_id | |
479 | + WHERE ps.hospital_id = #{query.hospitalId} | |
480 | + <if test="query.startTime != null "> | |
481 | + AND ps.create_date <= #{query.startTime} | |
482 | + </if> | |
483 | + <if test="query.provinceId != null"> | |
484 | + and o.province_id = #{query.provinceId} | |
485 | + </if> | |
486 | + <if test="query.cityId != null"> | |
487 | + and o.city_id = #{query.cityId} | |
488 | + </if> | |
489 | + <if test="query.areaId != null"> | |
490 | + and o.area_id = #{query.areaId} | |
491 | + </if> | |
492 | + GROUP BY o.name,o.province_id, | |
493 | + o.city_id, | |
494 | + o.area_id | |
495 | + | |
496 | + </select> | |
497 | + <select id="countStatusInfo" parameterType="com.lyms.platform.permission.model.ServiceListQuery" resultType="int"> | |
498 | + select count(1) | |
499 | + from patient_service ps | |
500 | + join organization o on o.id = ps.hospital_id | |
501 | + where 1=1 | |
502 | + <if test="param.startTime != null"> | |
503 | + and ps.create_date <= #{param.startTime} | |
504 | + </if> | |
505 | + <if test="param.provinceId != null"> | |
506 | + and o.province_id = #{param.provinceId} | |
507 | + </if> | |
508 | + <if test="param.cityId != null"> | |
509 | + and o.city_id = #{param.cityId} | |
510 | + </if> | |
511 | + <if test="param.areaId != null"> | |
512 | + and o.area_id = #{param.areaId} | |
513 | + </if> | |
514 | + <if test="param.hospitalIds.size() > 0"> | |
515 | + and ps.hospital_id in | |
516 | + <foreach collection="param.hospitalIds" item="item" open="(" close=")" separator=","> | |
517 | + #{item} | |
518 | + </foreach> | |
519 | + </if> | |
520 | + and ps.ser_status = #{param.serStatus} | |
521 | + </select> | |
522 | + <select id="getServeDetailList" parameterType="com.lyms.platform.permission.model.ServiceListQuery" resultType="java.util.Map"> | |
523 | + SELECT | |
524 | + ps.create_date as "createDate", | |
525 | + ps.parentid as "parentId", | |
526 | + ps.per_type as "perType", -- 1-孕妇、2-儿童 | |
527 | + '', -- 孕周 | |
528 | + IFNULL(ps.serviceWeek, 24) as "serviceWeek", | |
529 | + ps.ser_type as "serType", | |
530 | + ps.ser_doct as "serDoct", | |
531 | + CASE ps.ser_status | |
532 | + WHEN 1 THEN | |
533 | + '开通中' | |
534 | + WHEN 2 THEN | |
535 | + '退订' | |
536 | + WHEN 3 THEN | |
537 | + '过期' | |
538 | + WHEN 4 THEN | |
539 | + '暂停' | |
540 | + END AS "serStatus" | |
541 | + FROM | |
542 | + patient_service ps | |
543 | + JOIN organization o ON o.id = ps.hospital_id | |
544 | + WHERE 1=1 | |
545 | + <if test="param.hospitalId != null"> | |
546 | + and o.id = #{param.hospitalId} | |
547 | + </if> | |
548 | + <if test="param.provinceId != null"> | |
549 | + AND o.province_id = #{param.provinceId} | |
550 | + </if> | |
551 | + <if test="param.cityId != null"> | |
552 | + AND o.city_id = #{param.cityId} | |
553 | + </if> | |
554 | + <if test="param.areaId != null"> | |
555 | + AND o.area_id = #{param.areaId} | |
556 | + </if> | |
557 | + <if test="param.serStatus != null"> | |
558 | + AND ps.ser_status = #{param.serStatus} | |
559 | + </if> | |
560 | + <if test="param.sort != null and param.sort != '' "> | |
561 | + order by "createDate" ${param.sort} | |
562 | + <if test="param.need != null"> | |
563 | + limit #{param.offset, jdbcType=INTEGER} , #{param.limit, jdbcType=INTEGER} | |
564 | + </if> | |
565 | + </if> | |
566 | + </select> | |
567 | + <select id="getServeDetailListCount" parameterType="com.lyms.platform.permission.model.ServiceListQuery" resultType="int"> | |
568 | + SELECT | |
569 | + count(1) | |
570 | + FROM | |
571 | + patient_service ps | |
572 | + JOIN organization o ON o.id = ps.hospital_id | |
573 | + WHERE 1=1 | |
574 | + <if test="param.hospitalId != null"> | |
575 | + and o.id = #{param.hospitalId} | |
576 | + </if> | |
577 | + <if test="param.provinceId != null"> | |
578 | + AND o.province_id = #{param.provinceId} | |
579 | + </if> | |
580 | + <if test="param.cityId != null"> | |
581 | + AND o.city_id = #{param.cityId} | |
582 | + </if> | |
583 | + <if test="param.areaId != null"> | |
584 | + AND o.area_id = #{param.areaId} | |
585 | + </if> | |
586 | + <if test="param.serStatus != null"> | |
587 | + AND ps.ser_status = #{param.serStatus} | |
588 | + </if> | |
589 | + </select> | |
590 | + | |
396 | 591 | |
397 | 592 | </mapper> |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java
View file @
b065ab1
... | ... | @@ -5,13 +5,14 @@ |
5 | 5 | import com.lyms.platform.common.base.LoginContext; |
6 | 6 | import com.lyms.platform.common.result.BaseResponse; |
7 | 7 | import com.lyms.platform.operate.web.facade.AreaCountFacade; |
8 | - | |
8 | +import com.lyms.platform.permission.model.ServiceListQuery; | |
9 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
10 | 10 | import org.springframework.stereotype.Controller; |
11 | 11 | import org.springframework.web.bind.annotation.*; |
12 | 12 | |
13 | 13 | import javax.servlet.http.HttpServletRequest; |
14 | 14 | import javax.servlet.http.HttpServletResponse; |
15 | +import javax.validation.Valid; | |
15 | 16 | |
16 | 17 | /** |
17 | 18 | * |
... | ... | @@ -184,6 +185,33 @@ |
184 | 185 | cityId, areaId, loginState.getId(),response, nodeName); |
185 | 186 | } |
186 | 187 | |
188 | + /** | |
189 | + * 增值服务统计list | |
190 | + * | |
191 | + * @param query | |
192 | + */ | |
193 | + @RequestMapping(value = "/getService/list",method = RequestMethod.POST) | |
194 | + @ResponseBody | |
195 | + @TokenRequired | |
196 | + public BaseResponse getServiceList(@RequestBody @Valid ServiceListQuery query, HttpServletRequest request){ | |
197 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
198 | + query.setUserId(loginState.getId()); | |
199 | + return areaCountFacade.getServiceList(query); | |
200 | + } | |
201 | + | |
202 | + /** | |
203 | + * 增值服务统计detailList | |
204 | + * | |
205 | + * @param param | |
206 | + */ | |
207 | + @RequestMapping(value = "/getServiceDetail/list",method = RequestMethod.POST) | |
208 | + @ResponseBody | |
209 | + @TokenRequired | |
210 | + public BaseResponse getServiceDetailList(@RequestBody @Valid ServiceListQuery param, HttpServletRequest request){ | |
211 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
212 | + param.setUserId(loginState.getId()); | |
213 | + return areaCountFacade.getServiceDetailList(param); | |
214 | + } | |
187 | 215 | |
188 | 216 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java
View file @
b065ab1
... | ... | @@ -10,7 +10,6 @@ |
10 | 10 | import com.lyms.platform.common.result.BaseResponse; |
11 | 11 | import com.lyms.platform.common.result.RespBuilder; |
12 | 12 | import com.lyms.platform.common.utils.*; |
13 | -import com.lyms.platform.common.utils.StringUtils; | |
14 | 13 | import com.lyms.platform.operate.web.utils.CommonsHelper; |
15 | 14 | import com.lyms.platform.operate.web.utils.FunvCommonUtil; |
16 | 15 | import com.lyms.platform.operate.web.utils.MongoUtil; |
17 | 16 | |
... | ... | @@ -18,8 +17,10 @@ |
18 | 17 | import com.lyms.platform.operate.web.worker.CheckPointCountWorker; |
19 | 18 | import com.lyms.platform.permission.model.Organization; |
20 | 19 | import com.lyms.platform.permission.model.OrganizationQuery; |
20 | +import com.lyms.platform.permission.model.ServiceListQuery; | |
21 | 21 | import com.lyms.platform.permission.model.Users; |
22 | 22 | import com.lyms.platform.permission.service.OrganizationService; |
23 | +import com.lyms.platform.permission.service.PatientServiceService; | |
23 | 24 | import com.lyms.platform.permission.service.UsersService; |
24 | 25 | import com.lyms.platform.pojo.AntExRecordModel; |
25 | 26 | import com.lyms.platform.pojo.BasicConfig; |
... | ... | @@ -39,6 +40,8 @@ |
39 | 40 | import org.springframework.stereotype.Component; |
40 | 41 | |
41 | 42 | import javax.servlet.http.HttpServletResponse; |
43 | +import java.time.*; | |
44 | +import java.time.temporal.TemporalAdjusters; | |
42 | 45 | import java.util.*; |
43 | 46 | import java.util.concurrent.Callable; |
44 | 47 | import java.util.concurrent.ExecutionException; |
45 | 48 | |
... | ... | @@ -86,7 +89,12 @@ |
86 | 89 | @Autowired |
87 | 90 | private MongoUtil mongoUtil; |
88 | 91 | |
92 | + @Autowired | |
93 | + private PatientServiceService patientServiceService; | |
89 | 94 | |
95 | + @Autowired | |
96 | + private BabyBookbuildingService babyBookbuildingService; | |
97 | + | |
90 | 98 | /** |
91 | 99 | * 获取当前用户拥有的医院权限列表并和查询条件取交集 |
92 | 100 | * |
... | ... | @@ -1018,6 +1026,243 @@ |
1018 | 1026 | |
1019 | 1027 | public BaseResponse getAreaName(String id) { |
1020 | 1028 | return RespBuilder.buildSuccess(mongoUtil.findName(id)); |
1029 | + } | |
1030 | + | |
1031 | + /** | |
1032 | + * 增值服务统计 | |
1033 | + * | |
1034 | + * @param param | |
1035 | + * @return | |
1036 | + */ | |
1037 | + public BaseResponse getServiceList(ServiceListQuery param) { | |
1038 | + BaseResponse baseResponse = new BaseResponse(); | |
1039 | + if (param.getStartTime() == null){ | |
1040 | + Date startDate = getStartDate(); | |
1041 | + param.setStartTime(startDate); | |
1042 | + } | |
1043 | + long startTime = System.currentTimeMillis(); | |
1044 | + | |
1045 | + HashMap<String, Object> objectHashMap = new HashMap<>(16); | |
1046 | + LinkedList<Object> linkedList = new LinkedList<>(); | |
1047 | + | |
1048 | + String hospitalId = param.getHospitalId(); | |
1049 | + String provinceId = param.getProvinceId(); | |
1050 | + String cityId = param.getCityId(); | |
1051 | + String areaId = param.getAreaId(); | |
1052 | + List<String> hospitalIds = new ArrayList<>(); | |
1053 | + if (StringUtils.isEmpty(hospitalId)){ | |
1054 | + /* hospitalIds = getCurrentUserHospPermissions(param.getUserId(), | |
1055 | + StringUtils.isEmpty(provinceId) ? null : provinceId, StringUtils.isEmpty(cityId) ? null : cityId, StringUtils.isEmpty(areaId) ? null : areaId);*/ | |
1056 | + hospitalIds = getCurrentUserHospPermissions2(param.getUserId(), | |
1057 | + StringUtils.isEmpty(provinceId) ? null : provinceId, StringUtils.isEmpty(cityId) ? null : cityId, StringUtils.isEmpty(areaId) ? null : areaId); | |
1058 | + } else { | |
1059 | + hospitalIds.add(hospitalId); | |
1060 | + } | |
1061 | + long timeMillis = System.currentTimeMillis(); | |
1062 | + System.err.println(startTime - timeMillis); | |
1063 | + for (String hospital: hospitalIds){ | |
1064 | + System.err.print(hospital + ", "); | |
1065 | + param.setHospitalId(hospital); | |
1066 | + Map<String, Object> map = patientServiceService.getServiceList(param); | |
1067 | + System.err.println(System.currentTimeMillis() - timeMillis); | |
1068 | + if (map == null){ | |
1069 | + continue; | |
1070 | + } | |
1071 | + HashMap<String, Object> hashMap = new HashMap<>(16); | |
1072 | + String id = map.get("provinceId").toString(); | |
1073 | + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(id); | |
1074 | + hashMap.put("provinceName", basicConfig.getName()); | |
1075 | + | |
1076 | + id = map.get("cityId").toString(); | |
1077 | + basicConfig = basicConfigService.getOneBasicConfigById(id); | |
1078 | + hashMap.put("cityName", basicConfig.getName()); | |
1079 | + | |
1080 | + id = map.get("areaId").toString(); | |
1081 | + basicConfig = basicConfigService.getOneBasicConfigById(id); | |
1082 | + hashMap.put("areaName", basicConfig.getName()); | |
1083 | + hashMap.put("total", Integer.parseInt(map.get("open").toString()) | |
1084 | + + Integer.parseInt(map.get("unsubscribe").toString()) | |
1085 | + + Integer.parseInt(map.get("expire").toString()) | |
1086 | + + Integer.parseInt(map.get("suspend").toString())); | |
1087 | + | |
1088 | + hashMap.putAll(map); | |
1089 | + | |
1090 | + | |
1091 | + linkedList.add(hashMap); | |
1092 | + } | |
1093 | + long ttt = System.currentTimeMillis(); | |
1094 | + System.err.println(timeMillis - ttt); | |
1095 | + ArrayList<Object> statusNameList = new ArrayList<>(); | |
1096 | + statusNameList.add("开通"); | |
1097 | + statusNameList.add("退订"); | |
1098 | + statusNameList.add("过期"); | |
1099 | + statusNameList.add("暂停"); | |
1100 | + | |
1101 | + param.setHospitalIds(hospitalIds); | |
1102 | + ArrayList<Object> statusValList = new ArrayList<>(); | |
1103 | + param.setSerStatus("1"); | |
1104 | + int number = patientServiceService.countStatusInfo(param); | |
1105 | + statusValList.add(number); | |
1106 | + param.setSerStatus("2"); | |
1107 | + number = patientServiceService.countStatusInfo(param); | |
1108 | + statusValList.add(number); | |
1109 | + param.setSerStatus("3"); | |
1110 | + number = patientServiceService.countStatusInfo(param); | |
1111 | + statusValList.add(number); | |
1112 | + param.setSerStatus("4"); | |
1113 | + number = patientServiceService.countStatusInfo(param); | |
1114 | + statusValList.add(number); | |
1115 | + | |
1116 | + objectHashMap.put("statusNameList",statusNameList); | |
1117 | + objectHashMap.put("statusValList", statusValList); | |
1118 | + objectHashMap.put("serviceList", linkedList); | |
1119 | + | |
1120 | + baseResponse.setObject(objectHashMap); | |
1121 | + | |
1122 | + return baseResponse; | |
1123 | + } | |
1124 | + | |
1125 | + /** | |
1126 | + * 本年的起始时间 | |
1127 | + * | |
1128 | + * @return | |
1129 | + */ | |
1130 | + private Date getStartDate() { | |
1131 | + LocalDate with = LocalDate.now().plusYears(0).with(TemporalAdjusters.firstDayOfYear()); | |
1132 | + ZoneId zoneId = ZoneId.systemDefault(); | |
1133 | + Instant instant = with.atStartOfDay().atZone(zoneId).toInstant(); | |
1134 | + return Date.from(instant); | |
1135 | + } | |
1136 | + | |
1137 | + /** | |
1138 | + * 增值服务详情list | |
1139 | + * | |
1140 | + * @param param | |
1141 | + * @return | |
1142 | + */ | |
1143 | + public BaseResponse getServiceDetailList(ServiceListQuery param) { | |
1144 | + param.setNeed("Y"); | |
1145 | + param.setSort("desc"); | |
1146 | + BaseResponse response = new BaseResponse(); | |
1147 | + if (param.getStartTime() == null){ | |
1148 | + Date startDate = getStartDate(); | |
1149 | + param.setStartTime(startDate); | |
1150 | + } | |
1151 | + List<Map> mapList = patientServiceService.getServeDetailList(param); | |
1152 | + for (Map map : mapList){ | |
1153 | + String parentId = map.get("parentId").toString(); | |
1154 | + String perType = map.get("perType").toString(); | |
1155 | + String serType = map.get("serType").toString(); | |
1156 | + //String serDoct = map.get("serDoct").toString(); | |
1157 | + Date createDate = (Date) map.get("createDate"); | |
1158 | + String userName; | |
1159 | + if ("1".equals(perType)){ | |
1160 | + // 孕妇 | |
1161 | + Patients patient = patientsService.findOnePatientById(parentId); | |
1162 | + userName = patient.getUsername(); | |
1163 | + Date lastMenses = patient.getLastMenses(); | |
1164 | + int differentDays = differentDays(lastMenses, createDate); | |
1165 | + int week = differentDays / 7; | |
1166 | + map.put("openYumSize", week); | |
1167 | + | |
1168 | + }else { | |
1169 | + // 儿童 不显示孕周数和服务周期 | |
1170 | + userName = babyBookbuildingService.queryBabyBuildById(parentId).getName(); | |
1171 | + map.put("opnYumSize", ""); | |
1172 | + map.put("serviceWeek", ""); | |
1173 | + } | |
1174 | + map.put("patientName", userName); | |
1175 | + String serTypeName = getSerTypeName(serType); | |
1176 | + map.put("serTypeName", serTypeName); | |
1177 | + // String doctorName = usersService.getUsers(Integer.parseInt(serDoct)).getName(); | |
1178 | + map.put("doctorName", ""); | |
1179 | + | |
1180 | + map.remove("parentId"); | |
1181 | + map.remove("perType"); | |
1182 | + map.remove("serType"); | |
1183 | + map.remove("serDoct"); | |
1184 | + } | |
1185 | + response.setObject(mapList); | |
1186 | + return response; | |
1187 | + } | |
1188 | + | |
1189 | + private String getSerTypeName(String serType){ | |
1190 | + String str = ""; | |
1191 | + switch (serType){ | |
1192 | + case "1" : | |
1193 | + str = "孕期精准医疗"; | |
1194 | + break; | |
1195 | + case "2" : | |
1196 | + str = "体重管理"; | |
1197 | + break; | |
1198 | + case "3" : | |
1199 | + str = "血糖管理"; | |
1200 | + break; | |
1201 | + case "4" : | |
1202 | + str = "血压管理"; | |
1203 | + break; | |
1204 | + case "5" : | |
1205 | + str = "专家咨询"; | |
1206 | + break; | |
1207 | + case "6" : | |
1208 | + str = "标准服务"; | |
1209 | + break; | |
1210 | + case "7" : | |
1211 | + str = "体温管理"; | |
1212 | + break; | |
1213 | + case "8" : | |
1214 | + str = ""; | |
1215 | + break; | |
1216 | + case "9" : | |
1217 | + str = ""; | |
1218 | + break; | |
1219 | + case "10" : | |
1220 | + str = "精准指导"; | |
1221 | + break; | |
1222 | + case "11" : | |
1223 | + str = "标准服务"; | |
1224 | + break; | |
1225 | + default: | |
1226 | + str = ""; | |
1227 | + } | |
1228 | + return str; | |
1229 | + } | |
1230 | + | |
1231 | + /** | |
1232 | + * 相差天数 | |
1233 | + * | |
1234 | + * @param date1 | |
1235 | + * @param date2 | |
1236 | + * @return | |
1237 | + */ | |
1238 | + public static int differentDays(Date date1,Date date2) { | |
1239 | + Calendar cal1 = Calendar.getInstance(); | |
1240 | + cal1.setTime(date1); | |
1241 | + | |
1242 | + Calendar cal2 = Calendar.getInstance(); | |
1243 | + cal2.setTime(date2); | |
1244 | + int day1= cal1.get(Calendar.DAY_OF_YEAR); | |
1245 | + int day2 = cal2.get(Calendar.DAY_OF_YEAR); | |
1246 | + | |
1247 | + int year1 = cal1.get(Calendar.YEAR); | |
1248 | + int year2 = cal2.get(Calendar.YEAR); | |
1249 | + if(year1 != year2) { | |
1250 | + // 同一年 | |
1251 | + int timeDistance = 0 ; | |
1252 | + for(int i = year1 ; i < year2 ; i ++) { | |
1253 | + if(i%4==0 && i%100!=0 || i%400==0) { | |
1254 | + // 闰年 | |
1255 | + timeDistance += 366; | |
1256 | + } else { | |
1257 | + // 不是闰年 | |
1258 | + timeDistance += 365; | |
1259 | + } | |
1260 | + } | |
1261 | + return timeDistance + (day2-day1) ; | |
1262 | + } else { | |
1263 | + // 不同年 | |
1264 | + return day2-day1; | |
1265 | + } | |
1021 | 1266 | } |
1022 | 1267 | } |