Commit 10bda53833952f7f73028882ca2947d56af06385
1 parent
6da698e78e
Exists in
master
and in
6 other branches
update code
Showing 2 changed files with 269 additions and 0 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/CheckPointCountWorker.java
View file @
10bda53
1 | +package com.lyms.platform.operate.web.worker; | |
2 | + | |
3 | +import com.lyms.platform.biz.service.AntenatalExaminationService; | |
4 | +import com.lyms.platform.biz.service.BasicConfigService; | |
5 | +import com.lyms.platform.biz.service.PatientsService; | |
6 | +import com.lyms.platform.common.enums.YnEnums; | |
7 | +import com.lyms.platform.common.utils.StringUtils; | |
8 | +import com.lyms.platform.permission.model.Organization; | |
9 | +import com.lyms.platform.permission.service.OrganizationService; | |
10 | +import com.lyms.platform.pojo.BasicConfig; | |
11 | +import com.lyms.platform.query.AntExChuQuery; | |
12 | +import com.lyms.platform.query.AntExQuery; | |
13 | +import com.lyms.platform.query.PatientsQuery; | |
14 | +import org.apache.commons.collections.CollectionUtils; | |
15 | + | |
16 | +import java.util.*; | |
17 | +import java.util.concurrent.*; | |
18 | + | |
19 | +/** | |
20 | + * Created by Administrator on 2017-07-07. | |
21 | + */ | |
22 | +public class CheckPointCountWorker implements Callable{ | |
23 | + | |
24 | + private static List<Integer> weeks = new ArrayList<>(); | |
25 | + static { | |
26 | + weeks.add(0); | |
27 | + weeks.add(16); | |
28 | + weeks.add(21); | |
29 | + weeks.add(28); | |
30 | + weeks.add(37); | |
31 | + } | |
32 | + private static ExecutorService pool = Executors.newFixedThreadPool(5); | |
33 | + private PatientsService patientsService; | |
34 | + private AntenatalExaminationService antenatalExaminationService; | |
35 | + private OrganizationService organizationService; | |
36 | + private BasicConfigService basicConfigService; | |
37 | + private List<String> hospitalIds; | |
38 | + private Date startTime; | |
39 | + private Date endTime; | |
40 | + private Integer pointType; | |
41 | + | |
42 | + public CheckPointCountWorker(PatientsService patientsService, | |
43 | + AntenatalExaminationService antenatalExaminationService, | |
44 | + OrganizationService organizationService, | |
45 | + BasicConfigService basicConfigService, | |
46 | + List<String> hospitalIds, | |
47 | + Date startTime, | |
48 | + Date endTime, | |
49 | + Integer pointType) | |
50 | + { | |
51 | + this.patientsService = patientsService; | |
52 | + this.antenatalExaminationService = antenatalExaminationService; | |
53 | + this.organizationService = organizationService; | |
54 | + this.basicConfigService = basicConfigService; | |
55 | + this.hospitalIds = hospitalIds; | |
56 | + this.startTime = startTime; | |
57 | + this.endTime = endTime; | |
58 | + this.endTime = endTime; | |
59 | + this.pointType = pointType; | |
60 | + } | |
61 | + | |
62 | + | |
63 | + @Override | |
64 | + public List<Map<String, Object>> call() throws Exception { | |
65 | + | |
66 | + List<Map<String, Object>> checkPointtList = new ArrayList<>(); | |
67 | + if (CollectionUtils.isNotEmpty(hospitalIds)) { | |
68 | + for (String hId : hospitalIds) { | |
69 | + | |
70 | + Map<String, Object> map = getHospitalInfo(hId); | |
71 | + | |
72 | + PatientsQuery patientsQuery = new PatientsQuery(); | |
73 | + patientsQuery.setYn(YnEnums.YES.getId()); | |
74 | + patientsQuery.setHospitalId(hId); | |
75 | + | |
76 | + List buildType = new ArrayList(); | |
77 | + buildType.add(0); | |
78 | + buildType.add(2); | |
79 | + patientsQuery.setSmsBuildTypeList(buildType); | |
80 | + //ๅๅจฉ็ถๆ | |
81 | + patientsQuery.setDueStatus(0); | |
82 | + | |
83 | + patientsQuery.setBookbuildingDateStart(startTime); | |
84 | + patientsQuery.setBookbuildingDateEnd(endTime); | |
85 | + | |
86 | + //ๅปบๆกฃไบบๆฐ | |
87 | + int buildCount = patientsService.queryPatientCount(patientsQuery); | |
88 | + | |
89 | + AntExChuQuery antExChuQuery1 = new AntExChuQuery(); | |
90 | + antExChuQuery1.setHospitalId(hId); | |
91 | + antExChuQuery1.setYn(YnEnums.YES.getId()); | |
92 | + int chuCount = antenatalExaminationService.queryAntExChuCount(antExChuQuery1.convertToQuery()); | |
93 | + | |
94 | + AntExQuery antExQuery = new AntExQuery(); | |
95 | + antExQuery.setHospitalId(hId); | |
96 | + antExQuery.setYn(YnEnums.YES.getId()); | |
97 | + int exCount = antenatalExaminationService.queryAntenatalExaminationCount(antExQuery.convertToQuery()); | |
98 | + | |
99 | + if (buildCount == 0 && chuCount == 0 && exCount == 0) | |
100 | + { | |
101 | + continue; | |
102 | + } | |
103 | + List<Future> futures = new ArrayList<>(); | |
104 | + for (int week : weeks) | |
105 | + { | |
106 | + CheckWeeksNumWorker callable = new CheckWeeksNumWorker(antenatalExaminationService,hId, | |
107 | + startTime, endTime, week,pointType); | |
108 | + futures.add(pool.submit(callable)); | |
109 | + } | |
110 | + | |
111 | + | |
112 | + Map<String,Integer> result = new HashMap<>(); | |
113 | + if (CollectionUtils.isNotEmpty(futures)) | |
114 | + { | |
115 | + for (Future f : futures) | |
116 | + { | |
117 | + result.putAll((Map)f.get()); | |
118 | + } | |
119 | + } | |
120 | + | |
121 | + | |
122 | + int itemnum12 = result.get("itemnum12"); | |
123 | + int itemnum20 = result.get("itemnum20"); | |
124 | + int itemnum24 = result.get("itemnum24"); | |
125 | + int itemnum36 = result.get("itemnum36"); | |
126 | + int itemnum40 = result.get("itemnum40"); | |
127 | + int cjNum = itemnum12+itemnum20+itemnum24+itemnum36+itemnum40; | |
128 | + if (buildCount == 0 && cjNum == 0) | |
129 | + { | |
130 | + continue; | |
131 | + } | |
132 | + map.put("JD_NUM", buildCount); | |
133 | + map.put("CJ_NUM", cjNum); | |
134 | + map.put("NUM_12", itemnum12); | |
135 | + map.put("NUM_16", itemnum20); | |
136 | + map.put("NUM_24", itemnum24); | |
137 | + map.put("NUM_36", itemnum36); | |
138 | + map.put("NUM_40", itemnum40); | |
139 | + checkPointtList.add(map); | |
140 | + } | |
141 | + | |
142 | + } | |
143 | + return checkPointtList; | |
144 | + } | |
145 | + | |
146 | + | |
147 | + /** | |
148 | + * ่ทๅๅป้ข็ไฟกๆฏ | |
149 | + * | |
150 | + * @param hospitalId | |
151 | + * @return | |
152 | + */ | |
153 | + private Map<String, Object> getHospitalInfo(String hospitalId) { | |
154 | + Map<String, Object> map = new HashMap<>(); | |
155 | + if (StringUtils.isNotEmpty(hospitalId) && StringUtils.isNum(hospitalId)) { | |
156 | + Organization organization = organizationService.getOrganization(Integer.parseInt(hospitalId)); | |
157 | + if (organization != null) { | |
158 | + String provinceId = organization.getProvinceId(); | |
159 | + if (StringUtils.isNotEmpty(provinceId)) { | |
160 | + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(provinceId); | |
161 | + if (basicConfig != null) { | |
162 | + map.put("PROVINCE", basicConfig.getName()); | |
163 | + map.put("PROVINCE_ID", provinceId); | |
164 | + } | |
165 | + } | |
166 | + | |
167 | + String cityId = organization.getCityId(); | |
168 | + if (StringUtils.isNotEmpty(cityId)) { | |
169 | + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(cityId); | |
170 | + if (basicConfig != null) { | |
171 | + map.put("CITY", basicConfig.getName()); | |
172 | + map.put("CITY_ID", cityId); | |
173 | + } | |
174 | + } | |
175 | + | |
176 | + String areaId = organization.getAreaId(); | |
177 | + if (StringUtils.isNotEmpty(areaId)) { | |
178 | + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(areaId); | |
179 | + if (basicConfig != null) { | |
180 | + map.put("AREA_COUNTY", basicConfig.getName()); | |
181 | + map.put("AREA_COUNTY_ID", areaId); | |
182 | + } | |
183 | + } | |
184 | + | |
185 | + map.put("YCY_STSTEM_ID", hospitalId); | |
186 | + map.put("HOSPITAL_NAME", organization.getName()); | |
187 | + | |
188 | + } | |
189 | + } | |
190 | + return map; | |
191 | + } | |
192 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/CheckWeeksNumWorker.java
View file @
10bda53
1 | +package com.lyms.platform.operate.web.worker; | |
2 | + | |
3 | +import com.lyms.platform.biz.service.AntenatalExaminationService; | |
4 | + | |
5 | +import java.util.Date; | |
6 | +import java.util.HashMap; | |
7 | +import java.util.List; | |
8 | +import java.util.Map; | |
9 | +import java.util.concurrent.Callable; | |
10 | + | |
11 | +/** | |
12 | + * Created by Administrator on 2017-07-07. | |
13 | + */ | |
14 | +public class CheckWeeksNumWorker implements Callable<Map<String,Integer>> { | |
15 | + | |
16 | + | |
17 | + private AntenatalExaminationService antenatalExaminationService; | |
18 | + private String hospitalId; | |
19 | + private Date startTime; | |
20 | + private Date endTime; | |
21 | + private int week; | |
22 | + private Integer pointType; | |
23 | + public CheckWeeksNumWorker(AntenatalExaminationService antenatalExaminationService, String hospitalId, | |
24 | + Date startTime,Date endTime,int week,Integer pointType) | |
25 | + { | |
26 | + this.antenatalExaminationService = antenatalExaminationService; | |
27 | + this.hospitalId = hospitalId; | |
28 | + this.startTime = startTime; | |
29 | + this.endTime = endTime; | |
30 | + this.week = week; | |
31 | + this.pointType = pointType; | |
32 | + } | |
33 | + | |
34 | + /** | |
35 | + * weeks.add(0); | |
36 | + weeks.add(16); | |
37 | + weeks.add(21); | |
38 | + weeks.add(28); | |
39 | + weeks.add(37); | |
40 | + * @return | |
41 | + * @throws Exception | |
42 | + */ | |
43 | + @Override | |
44 | + public Map<String,Integer> call() throws Exception { | |
45 | + Map<String,Integer> map = new HashMap<>(); | |
46 | + | |
47 | + long start = System.currentTimeMillis(); | |
48 | + | |
49 | + if (week == 0) | |
50 | + { | |
51 | + int itemnum12 = antenatalExaminationService.queryWeekPointCount(0, 12, hospitalId, startTime, endTime, pointType); | |
52 | + map.put("itemnum12",itemnum12); | |
53 | + } | |
54 | + else if (week == 16) | |
55 | + { | |
56 | + int itemnum20 = antenatalExaminationService.queryWeekPointCount(16, 20, hospitalId, startTime, endTime, pointType); | |
57 | + map.put("itemnum20",itemnum20); | |
58 | + } | |
59 | + else if (week == 21) | |
60 | + { | |
61 | + int itemnum24 = antenatalExaminationService.queryWeekPointCount(21, 24, hospitalId, startTime, endTime, pointType); | |
62 | + map.put("itemnum24",itemnum24); | |
63 | + } | |
64 | + else if (week == 28) | |
65 | + { | |
66 | + int itemnum36 = antenatalExaminationService.queryWeekPointCount(28, 36, hospitalId, startTime, endTime, pointType); | |
67 | + map.put("itemnum36",itemnum36); | |
68 | + } | |
69 | + else if (week == 37) | |
70 | + { | |
71 | + int itemnum40 = antenatalExaminationService.queryWeekPointCount(37, 40, hospitalId, startTime,endTime, pointType); | |
72 | + map.put("itemnum40",itemnum40); | |
73 | + } | |
74 | + System.out.println(week+"==="+hospitalId+"---------"+ (System.currentTimeMillis()-start)); | |
75 | + return map; | |
76 | + } | |
77 | +} |