diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java index a8f0f8f..d36fb0a 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java @@ -6,7 +6,7 @@ package com.lyms.platform.biz; * @Version: V1.0 */ public enum RemoteUrlEnum { - INVALID_COUPON_URL("coupon/invalid", "作废优惠券"); + INVALID_COUPON_URL("coupon/invalid", "作废优惠券"),RECEIVE_PATSER_SYNC_URL("/sync", "领取硬件设备"); RemoteUrlEnum(String url, String desc) { this.url = url; diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientMarkHospitalLog.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientMarkHospitalLog.java index 93fa5de..01c57e3 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientMarkHospitalLog.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/PatientMarkHospitalLog.java @@ -20,7 +20,7 @@ public class PatientMarkHospitalLog { */ private Integer remResult; /** - * 回院/住院日期 + * 预约日期/回院日期/住院日期 */ private Date makeDate; /** @@ -40,7 +40,7 @@ public class PatientMarkHospitalLog { */ private Date markeDate; /** - * 提醒类型(1-回院提醒、2-住院提醒) + * 提醒类型(1-住院预约修改,2-回院提醒修改、3-住院提醒修改) */ private Integer markeType; /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java index 2c11c07..0a1f195 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java @@ -483,6 +483,9 @@ public class PatientMarkHospServiceFacade { ps.setInHospitStatus(1); patientMarkHospitalService.addPatientMarkHospital(ps); + //添加日志 + addPatientMarkHospLog(ps,1); + BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); baseResponse.setErrormsg("成功"); @@ -499,23 +502,52 @@ public class PatientMarkHospServiceFacade { * @return */ public BaseResponse updatePatientMarkHospital(PatientMarkHospital ps, int type, Integer id) { + PatientMarkHospitalLog markHospitalLog = new PatientMarkHospitalLog(); + if (type == 1) {//预约住院 + ps.setMakeDoctor(String.valueOf(id)); + ps.setMakeDate(new Date()); + } else if (type == 2) {//回院提醒 + ps.setBackDoctor(String.valueOf(id)); + ps.setBackDate(new Date()); + ps.setBackStatus(2); + } else if (type == 3) {//住院提醒 + if (ps.getHospitStatus() == null) { + ps.setHospitStatus(1); + } + ps.setInHospitDoctor(String.valueOf(id)); + ps.setInHospitDate(new Date()); + ps.setInHospitStatus(2); + } + //添加日志 + addPatientMarkHospLog(ps,type); + //根据用户id获取医院ID - String hospitalId = autoMatchFacade.getHospitalId(id); + patientMarkHospitalService.updatePatientMarkHospital(ps); + BaseResponse baseResponse = new BaseResponse(); + baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + baseResponse.setErrormsg("成功"); + return baseResponse; + } + /** + * 添加住院预约日志 + * @param ps + * @param type (1-住院预约修改,2-回院提醒修改、3-住院提醒修改) + */ + public void addPatientMarkHospLog(PatientMarkHospital ps,int type){ PatientMarkHospitalLog markHospitalLog = new PatientMarkHospitalLog(); markHospitalLog.setId(UUID.randomUUID().toString().replace("-", "")); - markHospitalLog.setHospitalId(hospitalId); + markHospitalLog.setHospitalId(ps.getHospitalId()); markHospitalLog.setPatientMakeHosId(ps.getId()); markHospitalLog.setPatientId(ps.getPatientId()); if (type == 1) {//预约住院 - markHospitalLog.setMakeDate(ps.getMakeDate()); + markHospitalLog.setMakeDate(ps.getMakeInHospitDate()); markHospitalLog.setMakeRemark(ps.getMakeRemark()); markHospitalLog.setMarkeDoctor(ps.getMakeDoctor()); markHospitalLog.setMarkeDate(ps.getMakeDate()); markHospitalLog.setMarkeType(1); - ps.setMakeDoctor(String.valueOf(id)); - ps.setMakeDate(new Date()); + } else if (type == 2) {//回院提醒 markHospitalLog.setRemResult(ps.getBackResult()); markHospitalLog.setMakeDate(ps.getBackMakeDate()); @@ -523,10 +555,8 @@ public class PatientMarkHospServiceFacade { markHospitalLog.setMakeRemark(ps.getBackRemark()); markHospitalLog.setMarkeDoctor(ps.getBackDoctor()); markHospitalLog.setMarkeDate(ps.getBackDate()); + markHospitalLog.setMarkeType(2); - ps.setBackDoctor(String.valueOf(id)); - ps.setBackDate(new Date()); - ps.setBackStatus(2); } else if (type == 3) {//住院提醒 markHospitalLog.setRemResult(ps.getInHospitResult()); markHospitalLog.setMakeDate(ps.getInHospitMakeDate()); @@ -535,21 +565,8 @@ public class PatientMarkHospServiceFacade { markHospitalLog.setMarkeDoctor(ps.getInHospitDoctor()); markHospitalLog.setMarkeDate(ps.getInHospitDate()); markHospitalLog.setMarkeType(3); - // ps.setHospitStatus(1); - if (ps.getHospitStatus() == null) { - ps.setHospitStatus(1); - } - ps.setInHospitDoctor(String.valueOf(id)); - ps.setInHospitDate(new Date()); - ps.setInHospitStatus(2); } - //根据用户id获取医院ID - patientMarkHospitalService.updatePatientMarkHospital(ps); patientMarkHospitalLogService.addPatientMarkHospitalLog(markHospitalLog); - BaseResponse baseResponse = new BaseResponse(); - baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); - baseResponse.setErrormsg("成功"); - return baseResponse; } /** 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 4b14996..55ac958 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 @@ -1,5 +1,7 @@ package com.lyms.platform.operate.web.facade; +import com.alibaba.fastjson.JSONObject; +import com.lyms.platform.biz.RemoteUrlEnum; import com.lyms.platform.biz.service.AntExRecordService; import com.lyms.platform.biz.service.AntenatalExaminationService; import com.lyms.platform.biz.service.CommonService; @@ -9,7 +11,9 @@ import com.lyms.platform.common.enums.PatientSerEnums; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.Config; import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.HttpClientUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.BasePageQueryRequest; import com.lyms.platform.operate.web.result.PatientSerResult; @@ -21,6 +25,7 @@ import com.lyms.platform.permission.service.PatientServiceService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.Patients; import com.lyms.platform.query.PatientsQuery; +import net.sf.json.JSONArray; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -52,6 +57,8 @@ public class PatientServiceFacade { @Autowired private AntenatalExaminationService antenatalExaminationService; + public static String patSer_sync_url = Config.getItem("patSer_sync_url", "0"); + public BaseResponse patientServiceInit() { Map map = new HashMap(); //服务类型 @@ -117,9 +124,9 @@ public class PatientServiceFacade { public BaseResponse addPatientService(PatientService ps, Integer id) { //根据用户id获取医院ID String hospitalId = autoMatchFacade.getHospitalId(id); - String [] serTypes = ps.getSerTypes().split(","); + String[] serTypes = ps.getSerTypes().split(","); + List patientServiceList = new ArrayList<>(); for (String psType : serTypes) { - //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 PatientServiceQuery patientQuery = new PatientServiceQuery(); patientQuery.setHospitalId(hospitalId); @@ -149,8 +156,11 @@ public class PatientServiceFacade { //领取操作医生id ps.setReceiveUser(String.valueOf(id)); patientServiceService.addPatientService(ps); + patientServiceList.add(ps); } + synPatientService(patientServiceList.toArray(new PatientService[patientServiceList.size()])); + BaseResponse baseResponse = new BaseResponse(); baseResponse.setObject(ps.getId()); baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); @@ -171,7 +181,7 @@ public class PatientServiceFacade { ps.setUpdateDate(new Date()); ps.setUpdateUser(String.valueOf(id)); patientServiceService.updatePatientService(ps); - + synPatientService(ps); BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); baseResponse.setErrormsg("成功"); @@ -284,6 +294,15 @@ public class PatientServiceFacade { return baseResponse; } + /** + * 根据条件查询验证码列表 + * + * @param serType 服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询) + * @param queryNo 查询关键字(姓名/证件号/联系方式/就诊卡号) + * @param cDueWeekStart 开始当前孕周 + * @param cDueWeekEnd 结束当前孕周 + * @return + */ public BaseListResponse ptientServiceCodeList(Integer serType, String queryNo, Integer cDueWeekStart, Integer cDueWeekEnd, BasePageQueryRequest pageInfo, Integer id) { //根据用户id获取医院ID @@ -370,6 +389,7 @@ public class PatientServiceFacade { ps.setReceiveDate(new Date()); ps.setReceiveUser(String.valueOf(id)); patientServiceService.updatePatientService(ps); + synReceiveData(ps.getOrderId()); BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); @@ -377,5 +397,76 @@ public class PatientServiceFacade { return baseResponse; } + /** + * 新增或修改同步到小程序 + * + * @param patientServices 数据 + * @return + */ + public boolean synPatientService(final PatientService... patientServices) { + try { + new Thread(new Runnable() { + @Override + public void run() { + Map params = new HashMap<>(); + JSONArray jsonArray = new JSONArray(); + for (PatientService ps : patientServices) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("parentid", ps.getParentid()); + jsonObject.put("pid", ps.getPid()); + jsonObject.put("serType", ps.getSerType()); + jsonObject.put("serDoct", ps.getSerDoct()); + jsonObject.put("serStatus", ps.getSerStatus()); + jsonObject.put("hospitalId", ps.getHospitalId()); + jsonObject.put("createDate", ps.getCreateDate()); + jsonArray.add(jsonObject); + } + params.put("data", jsonArray.toString()); + String rest = HttpClientUtil.doPost(patSer_sync_url + RemoteUrlEnum.RECEIVE_PATSER_SYNC_URL.getUrl(), params, "utf-8"); + System.out.println("增值服务数据同步结果:" + rest); + } + }).start(); + } catch (Exception e) { + e.printStackTrace(); + try { + //休眠10分钟继续调用同步 + Thread.sleep(600000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + synPatientService(patientServices); + } + return true; + } + /** + * 领取结果同步到小程序 + * + * @param orderId + */ + public boolean synReceiveData(final String orderId) { + try { + new Thread(new Runnable() { + @Override + public void run() { + Map params = new HashMap<>(); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("orderId", orderId); + params.put("data", jsonObject.toString()); + String rest = HttpClientUtil.doPost(patSer_sync_url + RemoteUrlEnum.RECEIVE_PATSER_SYNC_URL.getUrl(), params, "utf-8"); + System.out.println("领取设备结果:" + rest); + } + }).start(); + } catch (Exception e) { + e.printStackTrace(); + try { + //休眠10分钟继续调用同步 + Thread.sleep(600000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + synReceiveData(orderId); + } + return true; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceSysFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceSysFacade.java index dfaa07c..2a6f570 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceSysFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceSysFacade.java @@ -6,6 +6,7 @@ import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.permission.model.PatientService; import com.lyms.platform.permission.model.PatientServiceQuery; import com.lyms.platform.permission.service.PatientServiceService; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -21,42 +22,48 @@ import java.util.UUID; * @discription */ @Component -public class PatientServiceSysFacade implements SysBaseFacade{ +public class PatientServiceSysFacade implements SysBaseFacade { @Autowired private PatientServiceService patientServiceService; + @Override public BaseResponse sysData(String synForm) { - JSONObject jsonObject = JSONObject.fromObject(synForm); - PatientService patientService = (PatientService)JSONObject.toBean(jsonObject, PatientService.class); - BaseResponse baseResponse = validate(patientService); - if(baseResponse.getErrorcode()!=ErrorCodeConstants.SUCCESS){ - return baseResponse; - } + JSONArray jsonArray = JSONArray.fromObject(synForm); + BaseResponse baseResponse = new BaseResponse(); + for (int i = 0; i < jsonArray.size(); i++) { + // JSONObject jsonObject = JSONObject.fromObject(synForm); + // PatientService patientService = (PatientService)JSONObject.toBean(jsonObject, PatientService.class); + PatientService patientService = (PatientService) JSONObject.toBean(jsonArray.getJSONObject(i), PatientService.class); + baseResponse = validate(patientService); + if (baseResponse.getErrorcode() != ErrorCodeConstants.SUCCESS) { + return baseResponse; + } - //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 - PatientServiceQuery patientQuery = new PatientServiceQuery(); - //开通医院 - patientQuery.setHospitalId(patientService.getHospitalId()); - //孕妇Id - patientQuery.setParentid(patientService.getParentid()); - //开通服务 - patientQuery.setSerType(patientService.getSerType()); - //指定医生 - patientQuery.setSerDoct(patientService.getSerDoct()); + //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 + PatientServiceQuery patientQuery = new PatientServiceQuery(); + //开通医院 + patientQuery.setHospitalId(patientService.getHospitalId()); + //孕妇Id + patientQuery.setParentid(patientService.getParentid()); + //开通服务 + patientQuery.setSerType(patientService.getSerType()); + //指定医生 + patientQuery.setSerDoct(patientService.getSerDoct()); - List patientServices = patientServiceService.queryPatientService(patientQuery); - if (CollectionUtils.isNotEmpty(patientServices)) {//修改 - PatientService ps = patientServices.get(0); - ps.setSerStatus(patientService.getSerStatus()); - ps.setSerCode(patientService.getSerCode()); - ps.setOrderId(patientService.getOrderId()); - ps.setUpdateDate(new Date()); - patientServiceService.updatePatientService(ps); - }else{//新增 - patientService.setId(UUID.randomUUID().toString().replace("-", "")); - //默认待领取 - patientService.setStatus(1); - patientServiceService.addPatientService(patientService); + List patientServices = patientServiceService.queryPatientService(patientQuery); + if (CollectionUtils.isNotEmpty(patientServices)) {//修改 + PatientService ps = patientServices.get(0); + ps.setSerStatus(patientService.getSerStatus()); + ps.setSerCode(patientService.getSerCode()); + ps.setOrderId(patientService.getOrderId()); + ps.setUpdateDate(new Date()); + patientServiceService.updatePatientService(ps); + } else {//新增 + patientService.setId(UUID.randomUUID().toString().replace("-", "")); + //默认待领取 + patientService.setStatus(1); + patientServiceService.addPatientService(patientService); + } } System.out.println("同步数据方法结束"); baseResponse.setErrorcode(0); @@ -67,55 +74,56 @@ public class PatientServiceSysFacade implements SysBaseFacade{ /** * 数据同步数据验证 + * * @param ps * @return */ - public BaseResponse validate(PatientService ps){ + public BaseResponse validate(PatientService ps) { BaseResponse baseResponse = new BaseResponse(); //孕妇id - if(StringUtils.isEmpty(ps.getParentid())){ + if (StringUtils.isEmpty(ps.getParentid())) { baseResponse.setErrormsg("请传入parentid"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //孕妇id - if(StringUtils.isEmpty(ps.getPid())){ + if (StringUtils.isEmpty(ps.getPid())) { baseResponse.setErrormsg("请传入pid"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //serType服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询) - if(ps.getSerTypes()==null){ + if (ps.getSerTypes() == null) { baseResponse.setErrormsg("请传入serTypes"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //指定医生 - if(ps.getSerDoct()==null){ + if (ps.getSerDoct() == null) { baseResponse.setErrormsg("请传入serDoct"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //验证码 - if(ps.getSerCode()==null){ + if (ps.getSerCode() == null) { baseResponse.setErrormsg("请传入serCode"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //订单号 - if(ps.getOrderId()==null){ + if (ps.getOrderId() == null) { baseResponse.setErrormsg("请传入orderId"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //开通时间 - if(ps.getCreateDate()==null){ + if (ps.getCreateDate() == null) { baseResponse.setErrormsg("请传入createDate"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; } //服务状态 - if(ps.getSerStatus()==null){ + if (ps.getSerStatus() == null) { baseResponse.setErrormsg("请传入serStatus"); baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); return baseResponse; diff --git a/platform-operate-api/src/main/resources/database.properties b/platform-operate-api/src/main/resources/database.properties index e260950..f8ce241 100644 --- a/platform-operate-api/src/main/resources/database.properties +++ b/platform-operate-api/src/main/resources/database.properties @@ -60,6 +60,9 @@ mongo_sync_url=http://mms.api.stage.platform.healthbaby.com.cn/syncmongo mongo_sync_token=68884AD1832AB397E2F85F87FE371C74 mongo_crypto_key=Lymsh@2016 +#Сַͬ +patSer_sync_url=https://dev-app-member-api.healthbaby.com.cn + # sequence id configs sequence.create.size=3000 sequence.index=20000000