Commit 956183c0666b8c9684f5704fcea17f753e1342ee
1 parent
b9cd9b392b
Exists in
luanping
and in
1 other branch
#优化威县服务开通同步问题
Showing 8 changed files with 172 additions and 1 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/PatientServiceQuery.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-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java
- platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml
platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java
View file @
956183c
platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientServiceQuery.java
View file @
956183c
... | ... | @@ -15,6 +15,7 @@ |
15 | 15 | private String[] parentIds; |
16 | 16 | private String pid; |
17 | 17 | private Integer serType; |
18 | + private Integer[] serTypes; | |
18 | 19 | /** |
19 | 20 | * 服务人类型(1-孕妇、2-儿童) |
20 | 21 | */ |
... | ... | @@ -431,6 +432,14 @@ |
431 | 432 | |
432 | 433 | public void setParentIds(String[] parentIds) { |
433 | 434 | this.parentIds = parentIds; |
435 | + } | |
436 | + | |
437 | + public Integer[] getSerTypes() { | |
438 | + return serTypes; | |
439 | + } | |
440 | + | |
441 | + public void setSerTypes(Integer[] serTypes) { | |
442 | + this.serTypes = serTypes; | |
434 | 443 | } |
435 | 444 | } |
platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java
View file @
956183c
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | |
21 | 21 | public List<PatientService> queryPatientService(PatientServiceQuery query); |
22 | 22 | |
23 | - | |
23 | + List<Map<String,Object>> selectServiceByHospital(String hospitalId); | |
24 | 24 | List<Map> selectOnlyBzService(PatientServiceQuery query); |
25 | 25 | |
26 | 26 | List<Map> getPatientServices(Map map); |
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java
View file @
956183c
... | ... | @@ -51,6 +51,11 @@ |
51 | 51 | } |
52 | 52 | |
53 | 53 | @Override |
54 | + public List<Map<String, Object>> selectServiceByHospital(String hospitalId) { | |
55 | + return patientServiceMapper.selectServiceByHospital(hospitalId); | |
56 | + } | |
57 | + | |
58 | + @Override | |
54 | 59 | public List<Map> selectOnlyBzService(PatientServiceQuery query) { |
55 | 60 | if (query.getNeed() != null) { |
56 | 61 | query.mysqlBuild(patientServiceMapper.selectOnlyBzServiceCount(query)); |
platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml
View file @
956183c
... | ... | @@ -218,6 +218,13 @@ |
218 | 218 | <if test="serType != null and serType >= 0"> |
219 | 219 | and ser_type = #{serType,jdbcType=INTEGER} |
220 | 220 | </if> |
221 | + <if test="serTypes!=null"> | |
222 | + and ser_type in ( | |
223 | + <foreach item="serType" collection="serTypes" separator=","> | |
224 | + #{serType} | |
225 | + </foreach> | |
226 | + ) | |
227 | + </if> | |
221 | 228 | <if test="serDoct != null and serDoct != ''"> |
222 | 229 | and ser_doct = #{serDoct,jdbcType=VARCHAR} |
223 | 230 | </if> |
... | ... | @@ -634,6 +641,15 @@ |
634 | 641 | where parentid = #{patientsId} and ser_status = 1 and per_type = #{patientType} |
635 | 642 | </select> |
636 | 643 | |
644 | + <select id="selectServiceByHospital" resultType="java.util.HashMap"> | |
645 | + SELECT | |
646 | + hso.ser_type as serType,hds.doct_id as doctId | |
647 | +FROM | |
648 | + `hospital_service_content` hso | |
649 | +INNER JOIN hospital_doct_service hds | |
650 | +on hso.id=hds.hosp_service_id | |
651 | +where hso.hospital_id=#{hospitalId} and hso.ser_type in (3,4,6) | |
652 | + </select> | |
637 | 653 | |
638 | 654 | </mapper> |
platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java
View file @
956183c
... | ... | @@ -29,6 +29,7 @@ |
29 | 29 | |
30 | 30 | private String id; |
31 | 31 | private List<String> ids; |
32 | + private List<String> idns; | |
32 | 33 | private String pid; |
33 | 34 | |
34 | 35 | private List<String> pIds; |
... | ... | @@ -891,6 +892,9 @@ |
891 | 892 | if (CollectionUtils.isNotEmpty(ids)) { |
892 | 893 | condition = condition.and("id", ids, MongoOper.IN); |
893 | 894 | } |
895 | + if (CollectionUtils.isNotEmpty(idns)) { | |
896 | + condition = condition.and("id", idns, MongoOper.NIN); | |
897 | + } | |
894 | 898 | |
895 | 899 | if (null != vcCardNo) { |
896 | 900 | condition = condition.and("vcCardNo", vcCardNo, MongoOper.IS); |
... | ... | @@ -2603,6 +2607,14 @@ |
2603 | 2607 | |
2604 | 2608 | public void setTownOrgId(String townOrgId) { |
2605 | 2609 | this.townOrgId = townOrgId; |
2610 | + } | |
2611 | + | |
2612 | + public List<String> getIdns() { | |
2613 | + return idns; | |
2614 | + } | |
2615 | + | |
2616 | + public void setIdns(List<String> idns) { | |
2617 | + this.idns = idns; | |
2606 | 2618 | } |
2607 | 2619 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java
View file @
956183c
... | ... | @@ -24,6 +24,8 @@ |
24 | 24 | import com.lyms.platform.query.TServiceTimeRecordQuery; |
25 | 25 | import net.sf.json.JSONObject; |
26 | 26 | import org.apache.commons.collections.CollectionUtils; |
27 | +import org.slf4j.Logger; | |
28 | +import org.slf4j.LoggerFactory; | |
27 | 29 | import org.springframework.beans.factory.annotation.Autowired; |
28 | 30 | import org.springframework.stereotype.Component; |
29 | 31 | |
... | ... | @@ -82,6 +84,8 @@ |
82 | 84 | @Autowired |
83 | 85 | private AreaCountFacade areaCountFacade; |
84 | 86 | |
87 | + private static Logger logger = LoggerFactory.getLogger(PatientServiceFacade.class); | |
88 | + | |
85 | 89 | public BaseResponse babyServiceInit(Integer userId) { |
86 | 90 | Map map = new HashMap(); |
87 | 91 | //服务类型 |
... | ... | @@ -292,6 +296,114 @@ |
292 | 296 | baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); |
293 | 297 | baseResponse.setErrormsg("成功"); |
294 | 298 | return baseResponse; |
299 | + } | |
300 | + | |
301 | + /** | |
302 | + * 威县开通服务同步任务 | |
303 | + * 只同步 6围产小助理/3血糖管理服务/4血压管理服务 | |
304 | + */ | |
305 | + public void patientServiceSync(){ | |
306 | + logger.info("patientServiceSync start"); | |
307 | + String hospitalId="2100002421"; | |
308 | + List<Map<String, Object>> mapList= patientServiceService.selectServiceByHospital(hospitalId); | |
309 | + if (CollectionUtils.isNotEmpty(mapList)){ | |
310 | + Integer [] serTypes={3,4,6}; | |
311 | + PatientServiceQuery patientQuery = new PatientServiceQuery(); | |
312 | + patientQuery.setHospitalId(hospitalId); | |
313 | + patientQuery.setSerTypes(serTypes); | |
314 | + List<PatientService> patientServices = patientServiceService.queryPatientService(patientQuery); | |
315 | + | |
316 | + PatientsQuery patientsQuery=new PatientsQuery(); | |
317 | + patientsQuery.setHospitalId(hospitalId); | |
318 | + patientsQuery.setExtEnable(false); | |
319 | + patientsQuery.setBuildTypeNot(1); | |
320 | + patientsQuery.setYn(YnEnums.YES.getId()); | |
321 | + if (CollectionUtils.isNotEmpty(patientServices)){ | |
322 | + List<String> ids=new ArrayList<>(); | |
323 | + for (int i = 0,j=patientServices.size(); i < j; i++) { | |
324 | + PatientService patientService= patientServices.get(i); | |
325 | + ids.add(patientService.getParentid()); | |
326 | + } | |
327 | + patientsQuery.setIdns(ids); | |
328 | + } | |
329 | + List<Patients> patientsList= patientsService.queryPatient(patientsQuery); | |
330 | + if (CollectionUtils.isNotEmpty(patientsList)){ | |
331 | + for (int i = 0,j=mapList.size(); i < j; i++) { | |
332 | + Map<String,Object> params= mapList.get(i); | |
333 | + Integer serType= Integer.parseInt(String.valueOf(params.get("serType"))); | |
334 | + String createUser=String.valueOf(params.get("doctId")); | |
335 | + for (int k = 0,f=patientsList.size(); k < f; k++) { | |
336 | + Patients patients= patientsList.get(k); | |
337 | + String parentId= patients.getId(); | |
338 | + //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 | |
339 | + /* PatientServiceQuery patientQuery = new PatientServiceQuery(); | |
340 | + patientQuery.setParentid(parentId); | |
341 | + patientQuery.setSerType(serType); | |
342 | + List<PatientService> patientServices = patientServiceService.queryPatientService(patientQuery); | |
343 | + if (CollectionUtils.isNotEmpty(patientServices)) { | |
344 | + continue; | |
345 | + }*/ | |
346 | + PatientService pser = new PatientService(); | |
347 | + pser.setCreateUser(createUser); | |
348 | + pser.setCreateDate(patients.getCreated()); | |
349 | + //设置服务对象类型 服务人类型(1-孕妇、2-儿童) | |
350 | + pser.setPerType(1); | |
351 | + pser.setPid(patients.getPid()); | |
352 | + //如果有数据源id,取主档案id | |
353 | + if (StringUtils.isNotEmpty(patients.getSource())) { | |
354 | + pser.setParentid(patients.getSource()); | |
355 | + }else { | |
356 | + pser.setParentid(parentId); | |
357 | + } | |
358 | + pser.setId(UUID.randomUUID().toString().replace("-", "")); | |
359 | + //开通医院 | |
360 | + pser.setHospitalId(hospitalId); | |
361 | + //默认开通状态 | |
362 | + pser.setSerStatus(PatientSerEnums.SerStatusEnums.kt.getId()); | |
363 | + //服务类型 | |
364 | + pser.setSerType(serType); | |
365 | + //默认已经领取 | |
366 | + pser.setStatus(2); | |
367 | + //默认待同步 | |
368 | + pser.setSynStatus(1); | |
369 | + //领取时间 | |
370 | + pser.setReceiveDate(new Date()); | |
371 | + //领取操作医生id | |
372 | + pser.setReceiveUser(createUser); | |
373 | + //服务开通操作时间 | |
374 | + pser.setUpdateDate(new Date()); | |
375 | + //服务开通操作人 | |
376 | + pser.setUpdateUser(createUser); | |
377 | + //默认是全孕周42 | |
378 | + pser.setDoctorWeek(42); | |
379 | + pser.setServiceWeek(42); | |
380 | + | |
381 | + setServiceRecordAdd(pser, patients); | |
382 | + | |
383 | + patientServiceService.addPatientService(pser); | |
384 | + | |
385 | + operateLogFacade.addAddOptLog(Integer.valueOf(createUser), Integer.valueOf(hospitalId), pser, OptActionEnums.ADD.getId(), "开通增值服务"); | |
386 | + | |
387 | + | |
388 | + if (PatientSerEnums.SerTypeEnums.bzfw.getId().intValue() == serType) { | |
389 | + PatientServiceQuery query = new PatientServiceQuery(); | |
390 | + query.setParentid(parentId); | |
391 | + query.setSerType(PatientSerEnums.SerTypeEnums.yqjzzd.getId()); | |
392 | + int count = patientServiceService.queryPatientServiceCount(query); | |
393 | + //是否有增值服务--没有则处理标准服务 | |
394 | + if (count == 0) { | |
395 | + Patients patient = new Patients(); | |
396 | + patient.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId()); | |
397 | + patient.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); | |
398 | + bookbuildingFacade.updatePatientSerById(parentId, patient); | |
399 | + } | |
400 | + } | |
401 | + } | |
402 | + } | |
403 | + logger.info("addPatientServiceAll end"); | |
404 | + } | |
405 | + } | |
406 | + logger.info("patientServiceSync end"); | |
295 | 407 | } |
296 | 408 | |
297 | 409 | /** |
platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml
View file @
956183c
... | ... | @@ -655,7 +655,21 @@ |
655 | 655 | </bean> |
656 | 656 | |
657 | 657 | |
658 | + <!--威县孕妇开通服务定时同步18点 --> | |
659 | + <bean id="patientServiceSyncWork" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> | |
660 | + <!-- 要调用的bean --> | |
661 | + <property name="targetObject" ref="patientServiceFacade"></property> | |
662 | + <!-- 要调用的Method --> | |
663 | + <property name="targetMethod" value="patientServiceSync"></property> | |
664 | + <!-- 是否并发,false表示 如果发生错误也不影响下一次的调用 --> | |
665 | + <property name="concurrent" value="false"></property> | |
666 | + </bean> | |
658 | 667 | |
668 | + <!-- 配置一个触发器 0 0 18 * * ?--> | |
669 | + <bean id="patientServiceSyncTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> | |
670 | + <property name="jobDetail" ref="patientServiceSyncWork"></property> | |
671 | + <property name="cronExpression" value="0 5 17 * * ?"></property> | |
672 | + </bean> | |
659 | 673 | |
660 | 674 | |
661 | 675 | <!-- 总调度,用于启动定时器 --> |
... | ... | @@ -721,6 +735,8 @@ |
721 | 735 | <ref bean="babyBuildClassifyTrigger"/> |
722 | 736 | <!-- 南和课程发布19点推送--> |
723 | 737 | <ref bean="coursesTrigger"/> |
738 | + <!-- 威县孕妇开通服务同步--> | |
739 | + <ref bean="patientServiceSyncTrigger"/> | |
724 | 740 | </list> |
725 | 741 | </property> |
726 | 742 | </bean> |