From 956183c0666b8c9684f5704fcea17f753e1342ee Mon Sep 17 00:00:00 2001 From: zhangchao Date: Wed, 24 Jan 2024 17:06:21 +0800 Subject: [PATCH] =?UTF-8?q?#=E4=BC=98=E5=8C=96=E5=A8=81=E5=8E=BF=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=BC=80=E9=80=9A=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/master/PatientServiceMapper.java | 1 + .../permission/model/PatientServiceQuery.java | 9 ++ .../permission/service/PatientServiceService.java | 2 +- .../service/impl/PatientServiceServiceImpl.java | 5 + .../resources/mainOrm/master/PatientService.xml | 16 +++ .../com/lyms/platform/query/PatientsQuery.java | 12 +++ .../operate/web/facade/PatientServiceFacade.java | 112 +++++++++++++++++++++ .../resources/spring/applicationContext-quartz.xml | 16 +++ 8 files changed, 172 insertions(+), 1 deletion(-) diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java index c7701e7..fcb441e 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java @@ -30,6 +30,7 @@ public interface PatientServiceMapper { */ List selectOnlyBzService(PatientServiceQuery query); + List> selectServiceByHospital(String hospitalId); int selectOnlyBzServiceCount(PatientServiceQuery query); diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientServiceQuery.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientServiceQuery.java index 85a3007..d3a6e50 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientServiceQuery.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientServiceQuery.java @@ -15,6 +15,7 @@ public class PatientServiceQuery extends BaseQuery { private String[] parentIds; private String pid; private Integer serType; + private Integer[] serTypes; /** * 服务人类型(1-孕妇、2-儿童) */ @@ -432,4 +433,12 @@ public class PatientServiceQuery extends BaseQuery { public void setParentIds(String[] parentIds) { this.parentIds = parentIds; } + + public Integer[] getSerTypes() { + return serTypes; + } + + public void setSerTypes(Integer[] serTypes) { + this.serTypes = serTypes; + } } \ No newline at end of file diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java index f9b3a9a..721d3a4 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java @@ -20,7 +20,7 @@ public interface PatientServiceService { public List queryPatientService(PatientServiceQuery query); - + List> selectServiceByHospital(String hospitalId); List selectOnlyBzService(PatientServiceQuery query); List getPatientServices(Map map); diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java index 41b7408..cd1dba0 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java @@ -51,6 +51,11 @@ public class PatientServiceServiceImpl implements PatientServiceService { } @Override + public List> selectServiceByHospital(String hospitalId) { + return patientServiceMapper.selectServiceByHospital(hospitalId); + } + + @Override public List selectOnlyBzService(PatientServiceQuery query) { if (query.getNeed() != null) { query.mysqlBuild(patientServiceMapper.selectOnlyBzServiceCount(query)); diff --git a/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml b/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml index d587605..d47f3fe 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml @@ -218,6 +218,13 @@ and ser_type = #{serType,jdbcType=INTEGER} + + and ser_type in ( + + #{serType} + + ) + and ser_doct = #{serDoct,jdbcType=VARCHAR} @@ -634,5 +641,14 @@ where parentid = #{patientsId} and ser_status = 1 and per_type = #{patientType} + \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index fde7321..d7acb7c 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -29,6 +29,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private String id; private List ids; + private List idns; private String pid; private List pIds; @@ -891,6 +892,9 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { if (CollectionUtils.isNotEmpty(ids)) { condition = condition.and("id", ids, MongoOper.IN); } + if (CollectionUtils.isNotEmpty(idns)) { + condition = condition.and("id", idns, MongoOper.NIN); + } if (null != vcCardNo) { condition = condition.and("vcCardNo", vcCardNo, MongoOper.IS); @@ -2604,4 +2608,12 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { public void setTownOrgId(String townOrgId) { this.townOrgId = townOrgId; } + + public List getIdns() { + return idns; + } + + public void setIdns(List idns) { + this.idns = idns; + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java index f281564..ee545fc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java @@ -24,6 +24,8 @@ import com.lyms.platform.query.PatientsQuery; import com.lyms.platform.query.TServiceTimeRecordQuery; import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -82,6 +84,8 @@ public class PatientServiceFacade { @Autowired private AreaCountFacade areaCountFacade; + private static Logger logger = LoggerFactory.getLogger(PatientServiceFacade.class); + public BaseResponse babyServiceInit(Integer userId) { Map map = new HashMap(); //服务类型 @@ -295,6 +299,114 @@ public class PatientServiceFacade { } /** + * 威县开通服务同步任务 + * 只同步 6围产小助理/3血糖管理服务/4血压管理服务 + */ + public void patientServiceSync(){ + logger.info("patientServiceSync start"); + String hospitalId="2100002421"; + List> mapList= patientServiceService.selectServiceByHospital(hospitalId); + if (CollectionUtils.isNotEmpty(mapList)){ + Integer [] serTypes={3,4,6}; + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setHospitalId(hospitalId); + patientQuery.setSerTypes(serTypes); + List patientServices = patientServiceService.queryPatientService(patientQuery); + + PatientsQuery patientsQuery=new PatientsQuery(); + patientsQuery.setHospitalId(hospitalId); + patientsQuery.setExtEnable(false); + patientsQuery.setBuildTypeNot(1); + patientsQuery.setYn(YnEnums.YES.getId()); + if (CollectionUtils.isNotEmpty(patientServices)){ + List ids=new ArrayList<>(); + for (int i = 0,j=patientServices.size(); i < j; i++) { + PatientService patientService= patientServices.get(i); + ids.add(patientService.getParentid()); + } + patientsQuery.setIdns(ids); + } + List patientsList= patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(patientsList)){ + for (int i = 0,j=mapList.size(); i < j; i++) { + Map params= mapList.get(i); + Integer serType= Integer.parseInt(String.valueOf(params.get("serType"))); + String createUser=String.valueOf(params.get("doctId")); + for (int k = 0,f=patientsList.size(); k < f; k++) { + Patients patients= patientsList.get(k); + String parentId= patients.getId(); + //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 + /* PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setParentid(parentId); + patientQuery.setSerType(serType); + List patientServices = patientServiceService.queryPatientService(patientQuery); + if (CollectionUtils.isNotEmpty(patientServices)) { + continue; + }*/ + PatientService pser = new PatientService(); + pser.setCreateUser(createUser); + pser.setCreateDate(patients.getCreated()); + //设置服务对象类型 服务人类型(1-孕妇、2-儿童) + pser.setPerType(1); + pser.setPid(patients.getPid()); + //如果有数据源id,取主档案id + if (StringUtils.isNotEmpty(patients.getSource())) { + pser.setParentid(patients.getSource()); + }else { + pser.setParentid(parentId); + } + pser.setId(UUID.randomUUID().toString().replace("-", "")); + //开通医院 + pser.setHospitalId(hospitalId); + //默认开通状态 + pser.setSerStatus(PatientSerEnums.SerStatusEnums.kt.getId()); + //服务类型 + pser.setSerType(serType); + //默认已经领取 + pser.setStatus(2); + //默认待同步 + pser.setSynStatus(1); + //领取时间 + pser.setReceiveDate(new Date()); + //领取操作医生id + pser.setReceiveUser(createUser); + //服务开通操作时间 + pser.setUpdateDate(new Date()); + //服务开通操作人 + pser.setUpdateUser(createUser); + //默认是全孕周42 + pser.setDoctorWeek(42); + pser.setServiceWeek(42); + + setServiceRecordAdd(pser, patients); + + patientServiceService.addPatientService(pser); + + operateLogFacade.addAddOptLog(Integer.valueOf(createUser), Integer.valueOf(hospitalId), pser, OptActionEnums.ADD.getId(), "开通增值服务"); + + + if (PatientSerEnums.SerTypeEnums.bzfw.getId().intValue() == serType) { + PatientServiceQuery query = new PatientServiceQuery(); + query.setParentid(parentId); + query.setSerType(PatientSerEnums.SerTypeEnums.yqjzzd.getId()); + int count = patientServiceService.queryPatientServiceCount(query); + //是否有增值服务--没有则处理标准服务 + if (count == 0) { + Patients patient = new Patients(); + patient.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId()); + patient.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); + bookbuildingFacade.updatePatientSerById(parentId, patient); + } + } + } + } + logger.info("addPatientServiceAll end"); + } + } + logger.info("patientServiceSync end"); + } + + /** * 新增服务开通记录 * * @param ps diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index 43c6cf4..1a7ea3d 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -655,7 +655,21 @@ + + + + + + + + + + + + + + @@ -721,6 +735,8 @@ + + -- 1.8.3.1