Commit ac4de13c79fb3e7fa0072e983ce903bc0209a8a7
1 parent
68ddcf6b71
Exists in
master
and in
6 other branches
产检节点统计
Showing 1 changed file with 131 additions and 3 deletions
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java
View file @
ac4de13
| ... | ... | @@ -6,11 +6,14 @@ |
| 6 | 6 | import com.lyms.platform.common.dao.operator.MongoOper; |
| 7 | 7 | import com.lyms.platform.common.dao.operator.MongoQuery; |
| 8 | 8 | import com.lyms.platform.common.enums.YnEnums; |
| 9 | +import com.lyms.platform.common.utils.DateUtil; | |
| 9 | 10 | import com.lyms.platform.pojo.AntExChuModel; |
| 10 | 11 | import com.lyms.platform.pojo.AntExRecordModel; |
| 11 | 12 | import com.lyms.platform.pojo.AntenatalExaminationModel; |
| 13 | +import com.lyms.platform.pojo.Patients; | |
| 12 | 14 | import com.lyms.platform.query.AntExChuQuery; |
| 13 | 15 | import com.lyms.platform.query.AntExRecordQuery; |
| 16 | +import com.lyms.platform.query.PatientsQuery; | |
| 14 | 17 | import com.lyms.platform.query.VisitQuery; |
| 15 | 18 | import org.apache.commons.collections.CollectionUtils; |
| 16 | 19 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -18,9 +21,7 @@ |
| 18 | 21 | import org.springframework.stereotype.Service; |
| 19 | 22 | import org.springframework.util.Assert; |
| 20 | 23 | |
| 21 | -import java.util.Date; | |
| 22 | -import java.util.List; | |
| 23 | -import java.util.Map; | |
| 24 | +import java.util.*; | |
| 24 | 25 | |
| 25 | 26 | /** |
| 26 | 27 | * 产前检查服务实现 |
| ... | ... | @@ -36,6 +37,13 @@ |
| 36 | 37 | @Autowired |
| 37 | 38 | private AntExRecordService antExRecordService; |
| 38 | 39 | |
| 40 | + @Autowired | |
| 41 | + private PatientsService patientsService; | |
| 42 | + | |
| 43 | + | |
| 44 | + @Autowired | |
| 45 | + private AntExRecordService recordService; | |
| 46 | + | |
| 39 | 47 | public List<AntenatalExaminationModel> findAllByParentId(String parentId) { |
| 40 | 48 | Assert.notNull(parentId, "findAllByParentId parentId must not be null."); |
| 41 | 49 | MongoCondition condition = MongoCondition.newInstance("parentId", parentId, MongoOper.IS).and("yn", YnEnums.YES.getId(), MongoOper.IS); |
| 42 | 50 | |
| ... | ... | @@ -121,8 +129,128 @@ |
| 121 | 129 | antExRecordService.addOneRecord(antExRecordModel); |
| 122 | 130 | } |
| 123 | 131 | } |
| 132 | + | |
| 133 | + handleCheckPoint(antExRecordModel.getPid()); | |
| 124 | 134 | } |
| 125 | 135 | } |
| 136 | + | |
| 137 | + | |
| 138 | + /** | |
| 139 | + * 产检统计中计算各个产检节点 的是否是节点中的首次节点 | |
| 140 | + * @param pid | |
| 141 | + */ | |
| 142 | + private void handleCheckPoint(String pid) | |
| 143 | + { | |
| 144 | + PatientsQuery patientsQuery = new PatientsQuery(); | |
| 145 | + patientsQuery.setYn(YnEnums.YES.getId()); | |
| 146 | + patientsQuery.setPid(pid); | |
| 147 | + List<Patients> pats = patientsService.queryPatient1(patientsQuery,"created"); | |
| 148 | + | |
| 149 | + Map<String,List<Patients>> temps = new HashMap<String, List<Patients>>(); | |
| 150 | + | |
| 151 | + if (CollectionUtils.isNotEmpty(pats)) | |
| 152 | + { | |
| 153 | + for(Patients pat : pats) | |
| 154 | + { | |
| 155 | + if (pat.getLastMenses() != null) | |
| 156 | + { | |
| 157 | + Object obj = temps.get(DateUtil.getyyyy_MM_dd(pat.getLastMenses())); | |
| 158 | + if (obj != null) | |
| 159 | + { | |
| 160 | + List<Patients> cc = (List<Patients>)obj; | |
| 161 | + cc.add(pat); | |
| 162 | + temps.put(DateUtil.getyyyy_MM_dd(pat.getLastMenses()),cc); | |
| 163 | + } | |
| 164 | + else | |
| 165 | + { | |
| 166 | + List<Patients> cc = new ArrayList<Patients>(); | |
| 167 | + cc.add(pat); | |
| 168 | + temps.put(DateUtil.getyyyy_MM_dd(pat.getLastMenses()),cc); | |
| 169 | + } | |
| 170 | + } | |
| 171 | + } | |
| 172 | + } | |
| 173 | + | |
| 174 | + if (!temps.isEmpty()) | |
| 175 | + { | |
| 176 | + for(String key : temps.keySet()) | |
| 177 | + { | |
| 178 | + List<String> ids = new ArrayList<String>(); | |
| 179 | + List<Patients> patientses = temps.get(key); | |
| 180 | + if (CollectionUtils.isNotEmpty(patientses)) | |
| 181 | + { | |
| 182 | + for(Patients patients : patientses) | |
| 183 | + { | |
| 184 | + ids.add(patients.getId()); | |
| 185 | + } | |
| 186 | + } | |
| 187 | + | |
| 188 | + if (CollectionUtils.isNotEmpty(ids)) | |
| 189 | + { | |
| 190 | + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); | |
| 191 | + antExRecordQuery.setParentIds(ids); | |
| 192 | + for (int i = 0 ; i < 7 ; i++) | |
| 193 | + { | |
| 194 | + if (i == 0) | |
| 195 | + { | |
| 196 | + antExRecordQuery.setcDueWeekStart(0); | |
| 197 | + antExRecordQuery.setcDueWeekEnd((12 + 1) * 7 - 1); | |
| 198 | + } | |
| 199 | + else if (i == 1) | |
| 200 | + { | |
| 201 | + antExRecordQuery.setcDueWeekStart(13*7); | |
| 202 | + antExRecordQuery.setcDueWeekEnd((15 + 1) * 7 - 1); | |
| 203 | + } | |
| 204 | + else if (i == 2) | |
| 205 | + { | |
| 206 | + antExRecordQuery.setcDueWeekStart(16*7); | |
| 207 | + antExRecordQuery.setcDueWeekEnd((20 + 1) * 7 - 1); | |
| 208 | + } | |
| 209 | + else if (i == 3) | |
| 210 | + { | |
| 211 | + antExRecordQuery.setcDueWeekStart(21*7); | |
| 212 | + antExRecordQuery.setcDueWeekEnd((24 + 1) * 7 - 1); | |
| 213 | + } | |
| 214 | + else if (i == 4) | |
| 215 | + { | |
| 216 | + antExRecordQuery.setcDueWeekStart(25*7); | |
| 217 | + antExRecordQuery.setcDueWeekEnd((27 + 1) * 7 - 1); | |
| 218 | + } | |
| 219 | + else if (i == 5) | |
| 220 | + { | |
| 221 | + antExRecordQuery.setcDueWeekStart(28*7); | |
| 222 | + antExRecordQuery.setcDueWeekEnd((36 + 1) * 7 - 1); | |
| 223 | + } | |
| 224 | + else if (i == 6) | |
| 225 | + { | |
| 226 | + antExRecordQuery.setcDueWeekStart(37*7); | |
| 227 | + antExRecordQuery.setcDueWeekEnd((40 + 1) * 7 - 1); | |
| 228 | + } | |
| 229 | + | |
| 230 | + List<AntExRecordModel> list = recordService.queryAntExRecords(antExRecordQuery); | |
| 231 | + if (CollectionUtils.isNotEmpty(list)) | |
| 232 | + { | |
| 233 | + for (int j = 0 ; j < list.size() ; j++) | |
| 234 | + { | |
| 235 | + AntExRecordModel m = list.get(j); | |
| 236 | + if (j == (list.size() - 1)) | |
| 237 | + { | |
| 238 | + m.setIsFirst(1); | |
| 239 | + } | |
| 240 | + else | |
| 241 | + { | |
| 242 | + m.setIsFirst(2); | |
| 243 | + } | |
| 244 | + recordService.updateOne(m,m.getId()); | |
| 245 | + } | |
| 246 | + } | |
| 247 | + } | |
| 248 | + } | |
| 249 | + } | |
| 250 | + } | |
| 251 | + } | |
| 252 | + | |
| 253 | + | |
| 126 | 254 | |
| 127 | 255 | |
| 128 | 256 | /** |