Compare commits
5 Commits
a019d38c45
...
6772f8942a
Author | SHA1 | Date |
---|---|---|
|
6772f8942a | 1 year ago |
|
16232b76e6 | 3 years ago |
|
a3df06e02c | 3 years ago |
|
68ca8f6e90 | 3 years ago |
|
40ab0a4fb3 | 3 years ago |
51 changed files with 2486 additions and 390 deletions
Binary file not shown.
@ -0,0 +1,64 @@ |
||||
package com.ynxbd.push.config; |
||||
|
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.amqp.core.*; |
||||
import org.springframework.amqp.rabbit.annotation.EnableRabbit; |
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Qualifier; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName RabbitMQConfig |
||||
* @Description TODO |
||||
* @date 2024/01/23 13:28:00 |
||||
*/ |
||||
@Configuration |
||||
@EnableRabbit |
||||
@Slf4j |
||||
public class RabbitMQConfig { |
||||
|
||||
@Autowired |
||||
private RabbitTemplate rabbitTemplate; |
||||
|
||||
@Bean |
||||
public AmqpTemplate amqpTemplate(){ |
||||
rabbitTemplate.setEncoding("UTF-8"); |
||||
rabbitTemplate.setMandatory(true); |
||||
rabbitTemplate.setReturnCallback(((message, replyCode, replyText, exchange, routingKey) -> { |
||||
String correlationId = message.getMessageProperties().getCorrelationId(); |
||||
log.info("消息:{} 发送失败, 应答码:{} 原因:{} 交换机: {} 路由键: {}", correlationId, replyCode, replyText, exchange, routingKey); |
||||
})); |
||||
//开启消息确认 yml 需要配置 publisher-returns: true
|
||||
rabbitTemplate.setConfirmCallback(((correlationData, ack, cause) ->{ |
||||
if (ack) { |
||||
assert correlationData != null; |
||||
log.info("消息发送到交换机成功,correlationId:{}",correlationData.getId()); |
||||
} else { |
||||
log.info("消息发送到交换机失败,原因:{}",cause); |
||||
} |
||||
} )); |
||||
return rabbitTemplate; |
||||
} |
||||
/** |
||||
* 声明直连交换机 支持持久化. |
||||
* @return the exchange |
||||
*/ |
||||
@Bean("wxPushExchange") |
||||
public Exchange wxPushExchange() { |
||||
return ExchangeBuilder.directExchange("wxPushExchange").durable(true).build(); |
||||
} |
||||
|
||||
@Bean("wxPushQueue") |
||||
public Queue wxPushQueue(){ |
||||
return new Queue("wxPushQueue", true, true, true); |
||||
} |
||||
|
||||
@Bean |
||||
public Binding wxPushBinding(){ |
||||
return BindingBuilder.bind(wxPushQueue()).to(wxPushExchange()).with("wxPushRouting").noargs(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,25 @@ |
||||
package com.ynxbd.push.config; |
||||
|
||||
import org.apache.catalina.connector.Connector; |
||||
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName TomcatConfig |
||||
* @Description TODO |
||||
* @date 2023/10/12 10:27:00 |
||||
*/ |
||||
@Configuration |
||||
public class TomcatConfig { |
||||
@Bean |
||||
public TomcatServletWebServerFactory webServerFactory() { |
||||
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); |
||||
factory.addConnectorCustomizers((Connector connector) -> { |
||||
connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}"); |
||||
connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}"); |
||||
}); |
||||
return factory; |
||||
} |
||||
} |
@ -0,0 +1,33 @@ |
||||
package com.ynxbd.push.controller; |
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.ynxbd.push.helper.RedisHelper; |
||||
import com.ynxbd.push.httpRequest.xbd.wx.WxCacheRequest; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
@Slf4j |
||||
@RestController |
||||
@RequestMapping("api") |
||||
public class ApiController { |
||||
|
||||
@PostMapping("reToken") |
||||
public String reToken() { |
||||
WxCacheRequest.clearWxAccessToken(); |
||||
return "success"; |
||||
} |
||||
|
||||
@PostMapping("getRedis") |
||||
public JSONObject getRedis(String name) { |
||||
log.info("name-{}",name); |
||||
return JSON.parseObject(RedisHelper.getRedis().get(name)); |
||||
} |
||||
|
||||
// @GetMapping("getRabbitMq")
|
||||
// public String getRabbitMq() throws IOException, TimeoutException {
|
||||
// rabbitMqHelper.ReportTipSend();
|
||||
// return "success";
|
||||
// }
|
||||
} |
@ -0,0 +1,30 @@ |
||||
package com.ynxbd.push.controller.BI; |
||||
|
||||
import com.ynxbd.push.pushJob.BI.BiPush; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName BiController |
||||
* @Description description |
||||
* @date 2022/9/7 14:26 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequestMapping("Bi") |
||||
public class BiController { |
||||
@GetMapping("workLoadPush") |
||||
public String workLoadPush(String openId) { |
||||
try { |
||||
BiPush.runJob(openId); |
||||
return "Success"; |
||||
} |
||||
catch (Exception e){ |
||||
log.error(e.toString()); |
||||
return e.getMessage(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,146 @@ |
||||
package com.ynxbd.push.controller; |
||||
|
||||
import com.ynxbd.push.entity.type.MessageTypeEnum; |
||||
import com.ynxbd.push.entity.response.ResponseResult; |
||||
import com.ynxbd.push.helper.BusinessHelper; |
||||
import com.ynxbd.push.rabbit.send.RabbitSender; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Controller; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import weixin.popular.bean.message.MessageSendResult; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName BusinessController |
||||
* @Description 发送lis报告单结果推送 |
||||
* @date 2021/12/6 3:23 下午 |
||||
*/ |
||||
@Controller |
||||
@Slf4j |
||||
@RequestMapping(value = "business") |
||||
public class BusinessController { |
||||
@Autowired |
||||
private RabbitSender rabbitSender; |
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping(value = "report") |
||||
@ResponseBody |
||||
public MessageSendResult reportTip(String organizeName, String patientId,String idCard, String reportId, String itemName, String reportTime, String patientName,String sex, String age, String applyDept, String applyDoctor) { |
||||
log.info("进入接口-[检验检查报告通知]organizeName-{},patientId-{},idCard-{},reportId-{}, itemName-{},reportTime-{},patientName-{},sex-{},age-{},applyDept-{},applyDoctor-{}",organizeName,patientId,idCard,reportId,itemName,reportTime,patientName,sex,age,applyDept,applyDoctor); |
||||
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName,patientId,idCard,null); |
||||
if(!check.getErrcode().equals("0")){ |
||||
return check; |
||||
} |
||||
Map<String,String> message = new HashMap<>(); |
||||
message.put("tip", MessageTypeEnum.REPORT_TIP.CODE); |
||||
message.put("organizeName",organizeName); |
||||
message.put("patientId",patientId); |
||||
message.put("idCard",idCard); |
||||
message.put("reportId",reportId); |
||||
message.put("itemName",itemName); |
||||
message.put("reportTime",reportTime); |
||||
message.put("patientName",patientName); |
||||
message.put("sex",sex); |
||||
message.put("age",age); |
||||
message.put("applyDept",applyDept); |
||||
message.put("applyDoctor",applyDoctor); |
||||
rabbitSender.TipSend(message); |
||||
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||
} |
||||
|
||||
@GetMapping(value = "queue") |
||||
@ResponseBody |
||||
public MessageSendResult queueTip(String organizeName, String patientId, String idCard, String patientName, String deptName, String doctorName, String currentNumber, String selfNumber, String waitNumber) { |
||||
log.info("进入接口-[排队叫号提醒]organizeName-{},patientId-{},idCard-{},patientName-{},deptName-{},doctorName-{},currentNumber-{},selfNumber-{},waitNumber-{}", organizeName, patientId, idCard, patientName, deptName, doctorName, currentNumber, selfNumber, waitNumber); |
||||
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, idCard,null); |
||||
if (!check.getErrcode().equals("0")) { |
||||
return check; |
||||
} |
||||
Map<String,String> message = new HashMap<>(); |
||||
message.put("tip",MessageTypeEnum.QUEUE_TIP.CODE); |
||||
message.put("organizeName", organizeName); |
||||
message.put("patientId", patientId); |
||||
message.put("idCard", idCard); |
||||
message.put("patientName", patientName); |
||||
message.put("deptName", deptName); |
||||
message.put("doctorName", doctorName); |
||||
message.put("currentNumber", currentNumber); |
||||
message.put("selfNumber", selfNumber); |
||||
message.put("waitNumber", waitNumber); |
||||
rabbitSender.TipSend(message); |
||||
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||
} |
||||
|
||||
@PostMapping("medicalRecord") |
||||
@ResponseBody |
||||
public MessageSendResult medicalRecord(String organizeName, String patientId, String applyId) { |
||||
log.info("进入接口-[病历复印] 病历复印可付费通知(医院通知)organizeName-{}, patientId-{} , applyId-{}",organizeName,patientId,applyId); |
||||
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, null,null); |
||||
if (!check.getErrcode().equals("0")) { |
||||
return check; |
||||
} |
||||
Map<String,String> message = new HashMap<>(); |
||||
message.put("tip",MessageTypeEnum.MEDICAL_RECORD.CODE); |
||||
message.put("organizeName", organizeName); |
||||
message.put("patientId", patientId); |
||||
message.put("applyId",applyId); |
||||
rabbitSender.TipSend(message); |
||||
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||
} |
||||
|
||||
@PostMapping("treatPlan") |
||||
@ResponseBody |
||||
public MessageSendResult treatPlan(String title, String name, String planTime,String content,String patientId, String organizeName,String remark,String url) { |
||||
log.info("进入接口-[诊疗计划提醒] organizeName-{}, patientId-{} , title-{},name-{},planTime-{},content-{},remark-{},url-{}",organizeName,patientId,title,name,planTime,content,remark,url); |
||||
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, null,null); |
||||
if (!check.getErrcode().equals("0")) { |
||||
return check; |
||||
} |
||||
if(name==null||planTime==null||content==null){ |
||||
log.info("[诊疗计划提醒] 必填字段为空,name-{},planTime-{},content-{}",name,planTime,content); |
||||
return ResponseResult.PARAMETER_IS_NULL.toMessResult(); |
||||
} |
||||
Map<String,String> message = new HashMap<>(); |
||||
message.put("tip",MessageTypeEnum.TREAT_PLAN.CODE); |
||||
message.put("title",title==null?"":title); |
||||
message.put("name",name); |
||||
message.put("patientId", patientId); |
||||
message.put("organizeName", organizeName); |
||||
message.put("planTime",planTime); |
||||
message.put("content",content); |
||||
message.put("url",url==null?"":url); |
||||
message.put("remark",remark==null?"":remark); |
||||
rabbitSender.TipSend(message); |
||||
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||
} |
||||
|
||||
@PostMapping("universal") |
||||
@ResponseBody |
||||
public MessageSendResult universal(String content,String patientId, String url, String organizeName, String IdCard,String doctorCode){ |
||||
log.info("进入接口-[通用推送接口]-绑定通知,content-{},patientId-{},url-{},organizeName-{},IdCard-{},doctorCode-{}",content,patientId,url,organizeName,IdCard,doctorCode); |
||||
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, null,doctorCode); |
||||
if (!check.getErrcode().equals("0")) { |
||||
return check; |
||||
} |
||||
if(content==null){ |
||||
log.info("[通用推送接口]-绑定通知, 必填字段为空"); |
||||
return ResponseResult.PARAMETER_IS_NULL.toMessResult(); |
||||
} |
||||
Map<String,String> message = new HashMap<>(); |
||||
message.put("tip",MessageTypeEnum.UNIVERSAL.CODE); |
||||
message.put("organizeName", organizeName); |
||||
message.put("patientId", patientId); |
||||
message.put("doctorCode",doctorCode); |
||||
message.put("IdCard",IdCard); |
||||
message.put("content",content); |
||||
message.put("url",url==null?"":url); |
||||
rabbitSender.TipSend(message); |
||||
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||
} |
||||
} |
@ -1,66 +0,0 @@ |
||||
package com.ynxbd.push.controller; |
||||
|
||||
import com.ynxbd.push.config.IniConfig; |
||||
import com.ynxbd.push.entity.tencent.SendMessageTemplate; |
||||
import com.ynxbd.push.entity.tencent.WeChatResponse; |
||||
import com.ynxbd.push.helper.DesEncryptHelper; |
||||
import com.ynxbd.push.helper.MessageApiHelper; |
||||
import org.apache.http.Header; |
||||
import org.apache.http.client.methods.HttpUriRequest; |
||||
import org.apache.http.client.methods.RequestBuilder; |
||||
import org.springframework.stereotype.Controller; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.ResponseBody; |
||||
import weixin.popular.bean.message.MessageSendResult; |
||||
import weixin.popular.client.LocalHttpClient; |
||||
|
||||
import java.io.IOException; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName ReportController |
||||
* @Description 发送lis报告单结果推送 |
||||
* @date 2021/12/6 3:23 下午 |
||||
*/ |
||||
@Controller |
||||
public class ReportController { |
||||
|
||||
public static final String NOT_FIND_DATA = "40004"; |
||||
protected static Header jsonHeader; |
||||
|
||||
@GetMapping(value = "Report") |
||||
@ResponseBody |
||||
public MessageSendResult ReportTip(String patientId, String itemName, String collectTime, String patientName) throws IOException { |
||||
String reportTemplateId = IniConfig.getInstance("lisReportTemplateId"); |
||||
String weChatUrl = IniConfig.getInstance("weChatUrl"); |
||||
HttpUriRequest httpUriRequest = RequestBuilder |
||||
.get() |
||||
.setHeader(jsonHeader) |
||||
.setUri(new StringBuilder() |
||||
.append(weChatUrl) |
||||
.append("patient/getOpenIdsByPatientId.do").toString()) |
||||
.addParameter("patientId", patientId) |
||||
.addParameter("algorithm", "des") |
||||
.addParameter("isEncryptComma", "false") |
||||
.addParameter("isLastBind", "true") |
||||
.build(); |
||||
WeChatResponse weChatResponse = LocalHttpClient.executeJsonResult(httpUriRequest, WeChatResponse.class); |
||||
if (weChatResponse.getData() == null) { |
||||
MessageSendResult messageSendResult = new MessageSendResult(); |
||||
messageSendResult.setErrcode(NOT_FIND_DATA); |
||||
messageSendResult.setMsg_status("NOT_FIND_DATA"); |
||||
return messageSendResult; |
||||
} |
||||
String openId = DesEncryptHelper.deCode(weChatResponse.getData()); |
||||
SendMessageTemplate sendMessageTemplate = SendMessageTemplate.builder() |
||||
.template_id(reportTemplateId) |
||||
.keyword1(itemName) |
||||
.keyword2(patientName) |
||||
.keyword3(collectTime) |
||||
.first("您的检验报告结果已经出来了") |
||||
.openId(openId) |
||||
.url(new StringBuilder().append(weChatUrl).append("web/all-result.html#/lis-report-inspect").toString()) |
||||
.build(); |
||||
return MessageApiHelper.templateMessageSend(sendMessageTemplate); |
||||
} |
||||
} |
@ -0,0 +1,46 @@ |
||||
package com.ynxbd.push.entity.response; |
||||
|
||||
import weixin.popular.bean.message.MessageSendResult; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName ResponseResult |
||||
* @Description TODO |
||||
* @date 2023/07/04 14:02:00 |
||||
*/ |
||||
public enum ResponseResult { |
||||
|
||||
JOIN_QUEUE("0","已经接收消息,进入处理程序"), |
||||
|
||||
|
||||
|
||||
ORGANIZE_IS_NULL("50001","组织机构代码无效"), |
||||
|
||||
PARAMETER_IS_NULL("50003","参数无效"), |
||||
|
||||
|
||||
|
||||
DOCTOR_NOT_BIND("50004","医生未绑定"), |
||||
|
||||
CODE_INVALIDATION("40001","token无效"), |
||||
|
||||
NOT_FIND_DATA("40004","未找到数据"), |
||||
CODE_EXPIRED("42001","token过期"), |
||||
|
||||
MESSAGE_RESULT_ERROR_CODE("4002","结果返回错误"); |
||||
|
||||
public final String ERR_CODE; |
||||
public final String ERR_MSG; |
||||
|
||||
ResponseResult(String errCode,String errMsg){ |
||||
this.ERR_CODE = errCode; |
||||
this.ERR_MSG = errMsg; |
||||
} |
||||
|
||||
public MessageSendResult toMessResult(){ |
||||
MessageSendResult result = new MessageSendResult(); |
||||
result.setErrmsg(this.ERR_MSG); |
||||
result.setErrcode(this.ERR_CODE); |
||||
return result; |
||||
} |
||||
} |
@ -0,0 +1,17 @@ |
||||
package com.ynxbd.push.entity.tencent; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName AllDoctorCode |
||||
* @Description TODO |
||||
* @date 2023/08/03 11:35:00 |
||||
*/ |
||||
@Data |
||||
public class AllDoctorCode { |
||||
private String doctCode; |
||||
private List<String> openIds; |
||||
} |
@ -0,0 +1,19 @@ |
||||
package com.ynxbd.push.entity.tencent; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName WeChatAllDoctResponse |
||||
* @Description TODO |
||||
* @date 2023/08/03 10:30:00 |
||||
*/ |
||||
@Data |
||||
public class WeChatAllDoctorResponse { |
||||
private String code; |
||||
private List<AllDoctorCode> data; |
||||
private String message; |
||||
private Boolean success; |
||||
} |
@ -0,0 +1,28 @@ |
||||
package com.ynxbd.push.entity.type; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName MessageTypeEnum |
||||
* @Description TODO |
||||
* @date 2023/07/04 14:39:00 |
||||
*/ |
||||
public enum MessageTypeEnum { |
||||
|
||||
REPORT_TIP("ReportTip","检验检查报告通知"), |
||||
QUEUE_TIP("QueueTip","排队叫号提醒"), |
||||
MEDICAL_RECORD("MedicalRecord","病历复印"), |
||||
TREAT_PLAN("treatPlan","诊疗计划提醒"), |
||||
|
||||
UNIVERSAL("Universal","通用模版推送-绑定通知"); |
||||
|
||||
|
||||
public final String CODE; |
||||
public final String MESSAGE; |
||||
|
||||
|
||||
MessageTypeEnum(String code,String message){ |
||||
this.CODE=code; |
||||
this.MESSAGE = message; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,30 @@ |
||||
package com.ynxbd.push.entity.type; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName OrganizeTypeEnum |
||||
* @Description TODO |
||||
* @date 2023/07/04 15:20:00 |
||||
*/ |
||||
public enum OrganizeTypeEnum { |
||||
|
||||
HIS("AE8EB2249EDD9093","xbd_his","公司内部对接时使用代码,包含pacs等"), |
||||
|
||||
|
||||
WEI_MAI("D9113BC820E4C6FF","微脉对接诊疗计划提醒","芒市妇幼微脉对接诊疗计划提醒"), |
||||
|
||||
CVMS("D7FAEFB46E8F5FEF","危机值管理系统","新八达危机值管理系统"), |
||||
|
||||
HONGHE01("","深圳市理邦精密仪器股份有限公司","智慧产科系统"); |
||||
|
||||
public final String CODE; |
||||
public final String NAME; |
||||
|
||||
public final String DESCRIPTION; |
||||
|
||||
OrganizeTypeEnum(String code,String name,String description){ |
||||
this.CODE = code; |
||||
this.NAME = name; |
||||
this.DESCRIPTION = description; |
||||
} |
||||
} |
@ -0,0 +1,16 @@ |
||||
package com.ynxbd.push.entity.xbd.his; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName WorkLoad |
||||
* @Description description |
||||
* @date 2022/8/3 15:06 |
||||
*/ |
||||
@Data |
||||
public class HIsWorkLoad { |
||||
private String doc_code; |
||||
private String doc_name; |
||||
private String description; |
||||
} |
@ -1,10 +1,16 @@ |
||||
package com.ynxbd.push.entity.xbd.wx; |
||||
|
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
public class AccessToken { |
||||
private Integer code; |
||||
private String data; |
||||
private String message; |
||||
@NoArgsConstructor |
||||
public class AccessToken implements Serializable { |
||||
private static final long serialVersionUID = 36888886677781604L; |
||||
// 授权token
|
||||
private String accessToken; |
||||
// 创建时间
|
||||
private String createTime; |
||||
} |
||||
|
@ -0,0 +1,16 @@ |
||||
package com.ynxbd.push.entity.xbd.wx; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName WorkLoad |
||||
* @Description description |
||||
* @date 2022/8/3 15:28 |
||||
*/ |
||||
@Data |
||||
public class WorkLoad { |
||||
private String doctCode; |
||||
private String token; |
||||
private String openid; |
||||
} |
@ -0,0 +1,17 @@ |
||||
package com.ynxbd.push.entity.xbd.wx; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName WorkLoad |
||||
* @Description description |
||||
* @date 2022/8/3 15:26 |
||||
*/ |
||||
@Data |
||||
public class WorkLoadData { |
||||
private String link; |
||||
private List<WorkLoad> list; |
||||
} |
@ -0,0 +1,16 @@ |
||||
package com.ynxbd.push.entity.xbd.wx; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName WorkLoadResponse |
||||
* @Description description |
||||
* @date 2022/8/3 15:32 |
||||
*/ |
||||
@Data |
||||
public class WorkLoadResponse { |
||||
private String code; |
||||
private String message; |
||||
private WorkLoadData data; |
||||
} |
@ -0,0 +1,79 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
|
||||
import org.apache.commons.codec.binary.Hex; |
||||
|
||||
import javax.crypto.Cipher; |
||||
import javax.crypto.spec.IvParameterSpec; |
||||
import javax.crypto.spec.SecretKeySpec; |
||||
import java.nio.charset.StandardCharsets; |
||||
|
||||
/** |
||||
* AES加密算法 |
||||
*/ |
||||
public class AesCodeHelper { |
||||
|
||||
private final static String KEY = "ynxbdysdssjtwrin"; |
||||
|
||||
private final static String IV = "ynxbdqsdsbjtwrin"; |
||||
|
||||
public static String enCode(String data) { |
||||
if (data == null) { |
||||
return null; |
||||
} |
||||
return encryptHex(data, KEY, IV); |
||||
} |
||||
|
||||
public static String deCode(String data) { |
||||
if (data == null) { |
||||
return null; |
||||
} |
||||
return decryptHex(data, KEY, IV); |
||||
} |
||||
|
||||
|
||||
public static String decryptHex(String data, String key, String iv) { |
||||
try { |
||||
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"); |
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); |
||||
cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8))); |
||||
|
||||
return new String(cipher.doFinal(Hex.decodeHex(data.toCharArray()))); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Aes加密算法( Hex) |
||||
* |
||||
* @param data 加密数据 |
||||
* @param key 密钥(16位) |
||||
* @param iv 密钥偏移量 |
||||
* @return 加密后的数据 |
||||
*/ |
||||
public static String encryptHex(String data, String key, String iv) { |
||||
try { |
||||
if (key == null || key.length() != 16) { |
||||
throw new Exception("Key长度不是16位"); |
||||
} |
||||
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //"算法/模式/补码方式"
|
||||
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"), new IvParameterSpec(iv.getBytes())); |
||||
byte[] encrypted = cipher.doFinal(data.getBytes()); |
||||
String hexPass = Hex.encodeHexString(encrypted); |
||||
return hexPass.toUpperCase(); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
// public static void main(String[] args) throws Exception {
|
||||
// String a = decryptHex("", "wsqysqsdssjtwmaa", "xbzynydykkxxkkbb");
|
||||
// System.out.println(a);
|
||||
// }
|
||||
} |
@ -0,0 +1,25 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
import com.ynxbd.push.entity.response.ResponseResult; |
||||
import weixin.popular.bean.message.MessageSendResult; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName BusinessHelper |
||||
* @Description TODO |
||||
* @date 2023/05/11 11:54:00 |
||||
*/ |
||||
public class BusinessHelper { |
||||
|
||||
public static MessageSendResult ParamsCheck(String organizeName ,String patientId,String idCard,String doctorCode ) { |
||||
MessageSendResult messageSendResult = new MessageSendResult(); |
||||
if(patientId==null&&idCard==null&&doctorCode==null){ |
||||
return ResponseResult.PARAMETER_IS_NULL.toMessResult(); |
||||
} |
||||
if(DesEncryptHelper.deCode(organizeName).equals("error:null")){ |
||||
return ResponseResult.ORGANIZE_IS_NULL.toMessResult(); |
||||
} |
||||
messageSendResult.setErrcode("0"); |
||||
return messageSendResult; |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Date; |
||||
|
||||
public class DateHelper { |
||||
public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss"; |
||||
|
||||
/** |
||||
* [日期字符串]转日期 |
||||
* |
||||
* @param dateStr 日期字符串 |
||||
* @param format 日期格式 |
||||
* @return 日期/时间 |
||||
*/ |
||||
public static Date strToDate(String dateStr, String format) { |
||||
try { |
||||
if (dateStr == null || format == null) { |
||||
return null; |
||||
} |
||||
return new SimpleDateFormat(format).parse(dateStr); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 时间点距离当前时间多少秒 |
||||
* |
||||
* @param dateStr 时间点字符串 |
||||
* @return 日期/时间 |
||||
*/ |
||||
public static long differCurSecond(String dateStr) { |
||||
Date date = strToDate(dateStr, yyyy_MM_dd_HH_mm_ss); |
||||
if (date == null) { |
||||
return 0L; |
||||
} |
||||
return new Date().getTime() - date.getTime(); |
||||
|
||||
} |
||||
} |
@ -0,0 +1,804 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONArray; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.ynxbd.push.entity.xbd.his.HIsWorkLoad; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
import lombok.ToString; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
@Slf4j |
||||
public class HisResultFormat { |
||||
|
||||
@Data |
||||
@NoArgsConstructor |
||||
@ToString |
||||
public static class TestDoctor { |
||||
private String docCode; |
||||
private String docName; |
||||
} |
||||
|
||||
|
||||
public static void main(String[] args) { |
||||
String json = "{\n" + |
||||
" \"Code\": \"200\",\n" + |
||||
" \"Msg\": \"SUCCESS\",\n" + |
||||
" \"Data\": [\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0002\",\n" + |
||||
" \"doc_name\": \"李卫\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0003\",\n" + |
||||
" \"doc_name\": \"杨淑\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0005\",\n" + |
||||
" \"doc_name\": \"马晓琳\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0011\",\n" + |
||||
" \"doc_name\": \"蔡连勇\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0017\",\n" + |
||||
" \"doc_name\": \"江为民\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0019\",\n" + |
||||
" \"doc_name\": \"何丽芬\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0023\",\n" + |
||||
" \"doc_name\": \"龙红\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0030\",\n" + |
||||
" \"doc_name\": \"向梅\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0036\",\n" + |
||||
" \"doc_name\": \"杨聪\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0044\",\n" + |
||||
" \"doc_name\": \"汤进伟\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0050\",\n" + |
||||
" \"doc_name\": \"王跃强\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0054\",\n" + |
||||
" \"doc_name\": \"刘炜\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0059\",\n" + |
||||
" \"doc_name\": \"马刚\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0062\",\n" + |
||||
" \"doc_name\": \"普伦庆\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0066\",\n" + |
||||
" \"doc_name\": \"佘艳军\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0068\",\n" + |
||||
" \"doc_name\": \"孔洁\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0069\",\n" + |
||||
" \"doc_name\": \"赵悦涛\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0072\",\n" + |
||||
" \"doc_name\": \"崔金鹏\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0073\",\n" + |
||||
" \"doc_name\": \"李艳华\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0074\",\n" + |
||||
" \"doc_name\": \"王俊青\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0114\",\n" + |
||||
" \"doc_name\": \"霍松\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0134\",\n" + |
||||
" \"doc_name\": \"丁俊\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0151\",\n" + |
||||
" \"doc_name\": \"马锦霞\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0156\",\n" + |
||||
" \"doc_name\": \"陈朝明\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"018 \",\n" + |
||||
" \"doc_name\": \"张娜\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0194\",\n" + |
||||
" \"doc_name\": \"钟兴伟\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0199\",\n" + |
||||
" \"doc_name\": \"沈曼\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0208\",\n" + |
||||
" \"doc_name\": \"马韬\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0226\",\n" + |
||||
" \"doc_name\": \"卢俊\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0241\",\n" + |
||||
" \"doc_name\": \"蒙艳\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0248\",\n" + |
||||
" \"doc_name\": \"王璟\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0255\",\n" + |
||||
" \"doc_name\": \"赵德斌\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0269\",\n" + |
||||
" \"doc_name\": \"普福顺\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0469\",\n" + |
||||
" \"doc_name\": \"谭永兴\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0473\",\n" + |
||||
" \"doc_name\": \"白云辉\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0475\",\n" + |
||||
" \"doc_name\": \"苗蔚\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0705\",\n" + |
||||
" \"doc_name\": \"吉惠\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0731\",\n" + |
||||
" \"doc_name\": \"徐俊\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0805\",\n" + |
||||
" \"doc_name\": \"王长林\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0808\",\n" + |
||||
" \"doc_name\": \"董艳玲\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1025\",\n" + |
||||
" \"doc_name\": \"代建能\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1118\",\n" + |
||||
" \"doc_name\": \"赵悦涛*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1135\",\n" + |
||||
" \"doc_name\": \"李桂芬\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1233\",\n" + |
||||
" \"doc_name\": \"毕燕\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1251\",\n" + |
||||
" \"doc_name\": \"普虹丽(康\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1349\",\n" + |
||||
" \"doc_name\": \"蒋俊**\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1460\",\n" + |
||||
" \"doc_name\": \"赵艳红\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1462\",\n" + |
||||
" \"doc_name\": \"赵林\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1491\",\n" + |
||||
" \"doc_name\": \"白建平\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1618\",\n" + |
||||
" \"doc_name\": \"王蕾\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1669\",\n" + |
||||
" \"doc_name\": \"胡琳\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1688\",\n" + |
||||
" \"doc_name\": \"张丽红*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1737\",\n" + |
||||
" \"doc_name\": \"沈海荣\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1845\",\n" + |
||||
" \"doc_name\": \"陈淑媛*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1951\",\n" + |
||||
" \"doc_name\": \"赵永贵*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2079\",\n" + |
||||
" \"doc_name\": \"田劲猛*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2280\",\n" + |
||||
" \"doc_name\": \"赵永贵.\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2337\",\n" + |
||||
" \"doc_name\": \"郭鹏\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2390\",\n" + |
||||
" \"doc_name\": \"普兴林\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2423\",\n" + |
||||
" \"doc_name\": \"魏进云\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2495\",\n" + |
||||
" \"doc_name\": \"李仁伟\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2641\",\n" + |
||||
" \"doc_name\": \"赵青\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2676\",\n" + |
||||
" \"doc_name\": \"袁乔英\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2687\",\n" + |
||||
" \"doc_name\": \"杨金有\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2747\",\n" + |
||||
" \"doc_name\": \"何黎\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2754\",\n" + |
||||
" \"doc_name\": \"李雪梅.\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2784\",\n" + |
||||
" \"doc_name\": \"张艳.\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2959\",\n" + |
||||
" \"doc_name\": \"申永林*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"3553\",\n" + |
||||
" \"doc_name\": \"孔洁.\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"3717\",\n" + |
||||
" \"doc_name\": \"王俊青.*\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"3764\",\n" + |
||||
" \"doc_name\": \"蒙艳.\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"4041\",\n" + |
||||
" \"doc_name\": \"李始秀\",\n" + |
||||
" \"titleName\": \"科主任\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0274\",\n" + |
||||
" \"doc_name\": \"刘翠\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0278\",\n" + |
||||
" \"doc_name\": \"龙莉\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0297\",\n" + |
||||
" \"doc_name\": \"毛颖懿\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0313\",\n" + |
||||
" \"doc_name\": \"王雯秀\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0314\",\n" + |
||||
" \"doc_name\": \"杨金凤\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0315\",\n" + |
||||
" \"doc_name\": \"白云芬\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0323\",\n" + |
||||
" \"doc_name\": \"骆钰玺\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0333\",\n" + |
||||
" \"doc_name\": \"袁慧\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0339\",\n" + |
||||
" \"doc_name\": \"王雪华\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0355\",\n" + |
||||
" \"doc_name\": \"卢宝丽\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0361\",\n" + |
||||
" \"doc_name\": \"胡海燕\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0381\",\n" + |
||||
" \"doc_name\": \"高云丽\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0393\",\n" + |
||||
" \"doc_name\": \"柏雪\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0477\",\n" + |
||||
" \"doc_name\": \"张翠兰\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0491\",\n" + |
||||
" \"doc_name\": \"赵文娟\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0521\",\n" + |
||||
" \"doc_name\": \"钱润润\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0604\",\n" + |
||||
" \"doc_name\": \"何劲梅\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0608\",\n" + |
||||
" \"doc_name\": \"官丽亚\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"0789\",\n" + |
||||
" \"doc_name\": \"沈成荣\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1286\",\n" + |
||||
" \"doc_name\": \"黄梦诗\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1423\",\n" + |
||||
" \"doc_name\": \"高姝\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1453\",\n" + |
||||
" \"doc_name\": \"高丽萍\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1687\",\n" + |
||||
" \"doc_name\": \"邹婷\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"1985\",\n" + |
||||
" \"doc_name\": \"王迪一\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2131\",\n" + |
||||
" \"doc_name\": \"孙海燕\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2175\",\n" + |
||||
" \"doc_name\": \"邓延华\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2461\",\n" + |
||||
" \"doc_name\": \"罗艳\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2513\",\n" + |
||||
" \"doc_name\": \"马兰兰\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2557\",\n" + |
||||
" \"doc_name\": \"郑虞华.\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2588\",\n" + |
||||
" \"doc_name\": \"李金艳\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2602\",\n" + |
||||
" \"doc_name\": \"蒋金芳\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2610\",\n" + |
||||
" \"doc_name\": \"蒋艳梅\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2651\",\n" + |
||||
" \"doc_name\": \"李凤.\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2696\",\n" + |
||||
" \"doc_name\": \"易玲\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"2710\",\n" + |
||||
" \"doc_name\": \"李艳.\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"3241\",\n" + |
||||
" \"doc_name\": \"罗效萍\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"doc_code\": \"3550\",\n" + |
||||
" \"doc_name\": \"王迪一.\",\n" + |
||||
" \"titleName\": \"护士长\",\n" + |
||||
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||
" }\n" + |
||||
" ],\n" + |
||||
" \"Note\": {\n" + |
||||
" \"funcName\": \"DeanSearch_wechatDataPush\",\n" + |
||||
" \"funcNote\": \"微信推送数据\",\n" + |
||||
" \"connTime\": 30,\n" + |
||||
" \"inParams\": {},\n" + |
||||
" \"isListOutParams\": true,\n" + |
||||
" \"outParams\": {\n" + |
||||
" \"doc_code\": \"医生代码\",\n" + |
||||
" \"doc_name\": \"医生名称\",\n" + |
||||
" \"titleName\": \"职位\",\n" + |
||||
" \"description\": \"推送信息描述\"\n" + |
||||
" }\n" + |
||||
" }\n" + |
||||
"}"; |
||||
|
||||
String respData = getRespData(json); |
||||
List<HIsWorkLoad> testDoctors = jsonToList(respData, HIsWorkLoad.class); |
||||
System.out.println(testDoctors); |
||||
|
||||
List<String> doctCodeList = jsonToList(respData, "docCode"); |
||||
System.out.println(doctCodeList); |
||||
} |
||||
|
||||
/** |
||||
* 获取请求中的数据 |
||||
*/ |
||||
public static String getRespData(String respData) { |
||||
if (respData == null) { |
||||
return null; |
||||
} |
||||
JSONObject jsonResp = JSON.parseObject(respData); |
||||
String code = jsonResp.getString("Code"); |
||||
String message = jsonResp.getString("Msg"); |
||||
if ("200".equals(code) && "SUCCESS".equals(message)) { |
||||
String data = jsonResp.getString("Data"); |
||||
return "".equals(data) ? null : data; |
||||
} |
||||
log.info("[请求失败]code={}, message={}", code, message); |
||||
return null; |
||||
} |
||||
|
||||
public static <T> List<T> jsonToList(String data, Class<T> clazz) { |
||||
if (data == null) { |
||||
return new ArrayList<>(); |
||||
} |
||||
String jsonStr = JSON.toJSONString(data); |
||||
if ("".equals(jsonStr)) { |
||||
return new ArrayList<>(); |
||||
} |
||||
try { |
||||
return JSON.parseArray(data, clazz); |
||||
} catch (Exception e) { |
||||
log.error(e.getMessage()); |
||||
return new ArrayList<>(); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 获取对象数组中某个名称的值,加入集合 |
||||
* |
||||
* @param data json数据 |
||||
* @param name 属性名称 |
||||
* @return 属性List |
||||
*/ |
||||
public static List<String> jsonToList(String data, String name) { |
||||
List<String> resultList = new ArrayList<>(); |
||||
if (data == null) { |
||||
return resultList; |
||||
} |
||||
String jsonStr = JSON.toJSONString(data); |
||||
if ("".equals(jsonStr)) { |
||||
return resultList; |
||||
} |
||||
|
||||
try { |
||||
JSONArray jsonArr = JSON.parseArray(data); |
||||
JSONObject itemObj; |
||||
String val; |
||||
for (int i = 0; i < jsonArr.size(); i++) { |
||||
itemObj = jsonArr.getJSONObject(i); |
||||
if (itemObj == null) { |
||||
continue; |
||||
} |
||||
val = itemObj.getString(name); |
||||
if (val != null && !"".equals(val)) { |
||||
resultList.add(val); |
||||
} |
||||
} |
||||
return resultList; |
||||
} catch (Exception e) { |
||||
log.error(e.getMessage()); |
||||
} |
||||
return resultList; |
||||
} |
||||
|
||||
/** |
||||
* json转实体类 |
||||
* @param data 数据 |
||||
* @param clazz 类型 |
||||
* @return 对象 |
||||
*/ |
||||
public static <T> T jsonToBean(String data, Class<T> clazz) { |
||||
if (data == null) { |
||||
return null; |
||||
} |
||||
String jsonStr = JSON.toJSONString(data); |
||||
if ("".equals(jsonStr)) { |
||||
return null; |
||||
} |
||||
try { |
||||
return JSON.parseObject(data, clazz); |
||||
} catch (Exception e) { |
||||
log.error(e.getMessage()); |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,63 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import io.lettuce.core.RedisClient; |
||||
import io.lettuce.core.api.StatefulRedisConnection; |
||||
import io.lettuce.core.api.sync.RedisCommands; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName RedisHelper |
||||
* @Description TODO |
||||
* @date 2023/05/06 16:33:00 |
||||
*/ |
||||
public class RedisHelper { |
||||
|
||||
private static final String PASSWORD = "wx.xbd.cn"; |
||||
private static final String HOST = "127.0.0.1"; |
||||
private static final String PORT = "6379"; |
||||
private static RedisCommands<String, String> redis; |
||||
|
||||
private static StatefulRedisConnection<String, String> connection; |
||||
private static RedisClient redisClient; |
||||
|
||||
|
||||
private RedisHelper() { |
||||
redisClient = RedisClient.create("redis://"+PASSWORD+"@"+HOST+":"+PORT+"/0"); |
||||
connection = redisClient.connect(); |
||||
redis = connection.sync(); |
||||
} |
||||
public static RedisHelper getRedis() { |
||||
return Inner.instance; |
||||
} |
||||
private static class Inner{ |
||||
private static final RedisHelper instance = new RedisHelper(); |
||||
} |
||||
|
||||
public String set(String name, String key, Integer expire){ |
||||
String result = redis.set(name,key); |
||||
redis.expire(name,expire); |
||||
return result; |
||||
} |
||||
|
||||
public String get(String name){ |
||||
return redis.get(name); |
||||
} |
||||
public void close() { |
||||
connection.close(); |
||||
redisClient.shutdown(); |
||||
} |
||||
|
||||
public static void main(String[] args) { |
||||
Map<String,String> params = new HashMap<>(); |
||||
params.put("description", "昨日门诊2217人;非核酸门诊2184人;在院1188人;入院156人;出院186人;手术16台;微创手术4台;四级手术1台;\\\\r\\\\n今年截至昨日门诊286674人;非核酸门诊271307人;出院20271人;实际开放床1224张;病床使用率97.03%;手术5482台,占比28%;四级手术占比20.38%;微创手术占比18.02%;"); |
||||
params.put("url", "https://wx.hhzyy.com//wx3302/tickets/GetPage?t=A95C0ACF523B396D48857B85B82D3A47CA3DC877FEAAE4C6AB1A462C0F18D6BA5757732FA6B8C07234D62391B46725A05152BA217FAB03BAAFEA62592BE23CA74940A3A2CC82F6C4FEA21A67140C1348B1C523EA989469DED47DFD0EE2D029FF9B52C8877A18BF0FC158125764E615376029DD33461D4083C1D1A0CF78FFEAC36F6836E1BB05E7779D165D315EAEEA9EDA71819D3F356436BF59C21FB29EBA4C83DB68514B07BFC951C432A0923F5DD71457F9A9A424400ADB506C43617FF83DEDAB1E337567927557D704325AF06160966B0A66B6F1C5470A3776ACC30730C65994D3B3AB879A728C07268B14E6B7371B1D3EE533018A92C8E871A85C6887285D3A39A660CD87AB6CD5FE759E87445228D519359B1D8C925BECD80FC466FA6C"); |
||||
for(int i = 0; i<200; i++){ |
||||
System.out.println(Integer.toString(i) +":"+ RedisHelper.getRedis().set(Integer.toString(i), JSONObject.toJSONString(params),86400)); |
||||
} |
||||
RedisHelper.getRedis().close(); |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
import org.springframework.util.ObjectUtils; |
||||
|
||||
import java.nio.charset.StandardCharsets; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName StringHelper |
||||
* @Description description |
||||
* @date 2023/1/28 09:41 |
||||
*/ |
||||
public class StringHelper { |
||||
/** |
||||
* 数字倒序排列 |
||||
* |
||||
* @param num 被排序数字 |
||||
*/ |
||||
public static String numDesc(String num) { |
||||
StringBuilder sb = new StringBuilder(); |
||||
if (ObjectUtils.isEmpty(num)) { |
||||
return null; |
||||
} |
||||
for (int i = num.length() - 1; i >= 0; i--) { |
||||
sb.append(num.charAt(i)); |
||||
} |
||||
return sb.toString(); |
||||
} |
||||
/** |
||||
* BASE64加密 |
||||
* |
||||
* @param data 需要加密的字符串 |
||||
* @return 加密后的字符串 |
||||
*/ |
||||
public static String encode(String data) { |
||||
return java.util.Base64.getEncoder().encodeToString(data.getBytes(StandardCharsets.UTF_8)); |
||||
} |
||||
|
||||
} |
@ -1,188 +0,0 @@ |
||||
package com.ynxbd.push.helper; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONArray; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
import lombok.ToString; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
@Slf4j |
||||
public class TestResult { |
||||
|
||||
@Data |
||||
@NoArgsConstructor |
||||
@ToString |
||||
public static class TestDoctor { |
||||
private String docCode; |
||||
private String docName; |
||||
} |
||||
|
||||
|
||||
public static void main(String[] args) { |
||||
String json = "{\n" + |
||||
" \"Code\": \"200\",\n" + |
||||
" \"Msg\": \"SUCCESS\",\n" + |
||||
" \"Data\": [\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0002\",\n" + |
||||
" \"docName\": \"李卫\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0003\",\n" + |
||||
" \"docName\": \"杨淑\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0005\",\n" + |
||||
" \"docName\": \"马晓琳\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0010\",\n" + |
||||
" \"docName\": \"张永云\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0011\",\n" + |
||||
" \"docName\": \"蔡连勇\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0012\",\n" + |
||||
" \"docName\": \"罗琳辉\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0013\",\n" + |
||||
" \"docName\": \"屈继波\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0015\",\n" + |
||||
" \"docName\": \"李瀛\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0016\",\n" + |
||||
" \"docName\": \"杨阳\"\n" + |
||||
" },\n" + |
||||
" {\n" + |
||||
" \"docCode\": \"0017\",\n" + |
||||
" \"docName\": \"江为民\"\n" + |
||||
" }\n" + |
||||
" ],\n" + |
||||
" \"Note\": {\n" + |
||||
" \"funcName\": \"DeanSearch_wechatDataPush\",\n" + |
||||
" \"funcNote\": \"微信推送数据\",\n" + |
||||
" \"connTime\": 30,\n" + |
||||
" \"inParams\": {},\n" + |
||||
" \"isListOutParams\": true,\n" + |
||||
" \"outParams\": {\n" + |
||||
" \"docCode\": \"医生code\",\n" + |
||||
" \"docName\": \"医生name\"\n" + |
||||
" }\n" + |
||||
" }\n" + |
||||
"}"; |
||||
|
||||
String respData = getRespData(json); |
||||
System.out.println(respData); |
||||
List<TestDoctor> testDoctors = jsonToList(respData, TestDoctor.class); |
||||
System.out.println(testDoctors); |
||||
|
||||
List<String> doctCodeList = jsonToList(respData, "docCode"); |
||||
System.out.println(doctCodeList); |
||||
} |
||||
|
||||
/** |
||||
* 获取请求中的数据 |
||||
*/ |
||||
public static String getRespData(String respData) { |
||||
if (respData == null) { |
||||
return null; |
||||
} |
||||
JSONObject jsonResp = JSON.parseObject(respData); |
||||
String code = jsonResp.getString("Code"); |
||||
String message = jsonResp.getString("Msg"); |
||||
if ("200".equals(code) && "SUCCESS".equals(message)) { |
||||
String data = jsonResp.getString("Data"); |
||||
return "".equals(data) ? null : data; |
||||
} |
||||
log.info("[请求失败]code={}, message={}", code, message); |
||||
return null; |
||||
} |
||||
|
||||
public static <T> List<T> jsonToList(String data, Class<T> clazz) { |
||||
if (data == null) { |
||||
return new ArrayList<>(); |
||||
} |
||||
String jsonStr = JSON.toJSONString(data); |
||||
if ("".equals(jsonStr)) { |
||||
return new ArrayList<>(); |
||||
} |
||||
try { |
||||
return JSON.parseArray(data, clazz); |
||||
} catch (Exception e) { |
||||
log.error(e.getMessage()); |
||||
return new ArrayList<>(); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 获取对象数组中某个名称的值,加入集合 |
||||
* |
||||
* @param data json数据 |
||||
* @param name 属性名称 |
||||
* @return 属性List |
||||
*/ |
||||
public static List<String> jsonToList(String data, String name) { |
||||
List<String> resultList = new ArrayList<>(); |
||||
if (data == null) { |
||||
return resultList; |
||||
} |
||||
String jsonStr = JSON.toJSONString(data); |
||||
if ("".equals(jsonStr)) { |
||||
return resultList; |
||||
} |
||||
|
||||
try { |
||||
JSONArray jsonArr = JSON.parseArray(data); |
||||
JSONObject itemObj; |
||||
String val; |
||||
for (int i = 0; i < jsonArr.size(); i++) { |
||||
itemObj = jsonArr.getJSONObject(i); |
||||
if (itemObj == null) { |
||||
continue; |
||||
} |
||||
val = itemObj.getString(name); |
||||
if (val != null && !"".equals(val)) { |
||||
resultList.add(val); |
||||
} |
||||
} |
||||
return resultList; |
||||
} catch (Exception e) { |
||||
log.error(e.getMessage()); |
||||
} |
||||
return resultList; |
||||
} |
||||
|
||||
/** |
||||
* json转实体类 |
||||
* @param data 数据 |
||||
* @param clazz 类型 |
||||
* @return 对象 |
||||
*/ |
||||
public static <T> T jsonToBean(String data, Class<T> clazz) { |
||||
if (data == null) { |
||||
return null; |
||||
} |
||||
String jsonStr = JSON.toJSONString(data); |
||||
if ("".equals(jsonStr)) { |
||||
return null; |
||||
} |
||||
try { |
||||
return JSON.parseObject(data, clazz); |
||||
} catch (Exception e) { |
||||
log.error(e.getMessage()); |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
} |
Binary file not shown.
@ -0,0 +1,73 @@ |
||||
//package com.ynxbd.push.httpRequest.xbd.wx;
|
||||
//
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//
|
||||
//@Slf4j
|
||||
//public class Test {
|
||||
//
|
||||
// private static int RETRY_INDEX = 0;
|
||||
// private static final int MAX_RETRY = 3;
|
||||
//
|
||||
//
|
||||
// public static String test02() {
|
||||
// try {
|
||||
// if (RETRY_INDEX != MAX_RETRY) {
|
||||
// System.out.println(1 / 0);
|
||||
// log.info("请求失败");
|
||||
// } else {
|
||||
// log.info("请求成功");
|
||||
// }
|
||||
// return "1";
|
||||
// } catch (Exception e) {
|
||||
// log.error(e.getMessage());
|
||||
// RETRY_INDEX++;
|
||||
// log.error("请求微信获取Token错误:{}", e.getMessage());
|
||||
// if (RETRY_INDEX > MAX_RETRY) {
|
||||
// log.error("多次请求后未获取到正确token,抛出异常");
|
||||
// return null;
|
||||
// }
|
||||
// log.error("重试请求第{}次", RETRY_INDEX);
|
||||
// return test02();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public static void main(String[] args) {
|
||||
// String s = test02();
|
||||
// System.out.println(s);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public static String test03() {
|
||||
// try {
|
||||
// if (RETRY_INDEX != MAX_RETRY) {
|
||||
// System.out.println(1 / 0);
|
||||
// log.info("请求失败");
|
||||
// } else {
|
||||
// log.info("请求成功");
|
||||
// }
|
||||
// return "1";
|
||||
// } catch (Exception e) {
|
||||
// log.error(e.getMessage());
|
||||
// test04();
|
||||
// }
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public static String test04() {
|
||||
// try {
|
||||
// if (RETRY_INDEX != MAX_RETRY) {
|
||||
// System.out.println(1 / 0);
|
||||
// log.info("请求失败");
|
||||
// } else {
|
||||
// log.info("请求成功");
|
||||
// }
|
||||
// return "1";
|
||||
// } catch (Exception e) {
|
||||
// log.error(e.getMessage());
|
||||
// }
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//}
|
@ -0,0 +1,97 @@ |
||||
package com.ynxbd.push.pushJob.BI; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.ynxbd.push.config.IniConfig; |
||||
import com.ynxbd.push.entity.tencent.AllDoctorCode; |
||||
import com.ynxbd.push.entity.tencent.SendMessageTemplate; |
||||
import com.ynxbd.push.entity.tencent.WeChatAllDoctorResponse; |
||||
import com.ynxbd.push.entity.xbd.his.HIsWorkLoad; |
||||
import com.ynxbd.push.entity.xbd.wx.WorkLoad; |
||||
import com.ynxbd.push.entity.xbd.wx.WorkLoadData; |
||||
import com.ynxbd.push.helper.*; |
||||
import com.ynxbd.push.httpRequest.tencent.WeChatDataRequest; |
||||
import com.ynxbd.push.httpRequest.xbd.his.HisRequest; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
|
||||
import java.text.SimpleDateFormat; |
||||
import java.time.LocalDate; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.*; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName BiPush |
||||
* @Description description |
||||
* @date 2022/9/7 14:23 |
||||
*/ |
||||
@Slf4j |
||||
public class BiPush { |
||||
public static void runJob(String openId){ |
||||
if(IniConfig.getInstance("leaderTemplateId")==null){ |
||||
return; |
||||
} |
||||
Boolean isTest = false; |
||||
if(IniConfig.getInstance("leaderTest")!=null){ |
||||
isTest = true; |
||||
} |
||||
SimpleDateFormat sdf = new SimpleDateFormat(); |
||||
sdf.applyPattern("yyyy-MM-dd"); |
||||
Date date = new Date(); |
||||
List<HIsWorkLoad> targetList = HisResultFormat.jsonToList(HisResultFormat.getRespData(HisRequest.getWorkLoad()), HIsWorkLoad.class); |
||||
List<AllDoctorCode> allDoctorCodeList = WeChatDataRequest.getAllOpenIdForDoctorCode().getData(); |
||||
Map<String,String> params = new HashMap<>(); |
||||
params.put("description", targetList.get(0).getDescription()); |
||||
SimpleDateFormat formatter = new SimpleDateFormat(); |
||||
formatter.applyPattern("yyyyMMdd"); |
||||
RedisHelper.getRedis().set(formatter.format(date),JSONObject.toJSONString(params),86400); |
||||
for (HIsWorkLoad target: targetList) { |
||||
Optional<AllDoctorCode> allDoctorCodeStream =allDoctorCodeList.stream().filter(item -> item.getDoctCode().equals(target.getDoc_code())).findFirst(); |
||||
if (!allDoctorCodeStream.isPresent()){ |
||||
log.info("[领导推送工作量]{}未绑定微官网,openId:{}",target.getDoc_name(),target.getDoc_code()); |
||||
continue; |
||||
} |
||||
SendMessageTemplate sendMessageTemplate = SendMessageTemplate.builder() |
||||
.template_id(IniConfig.getInstance("leaderTemplateId")) |
||||
.keyword1(Objects.equals(IniConfig.getInstance("leaderTemplateMode"), "2") ?target.getDescription():sdf.format(date)) |
||||
.keyword2(Objects.equals(IniConfig.getInstance("leaderTemplateMode"), "2") ?sdf.format(date):target.getDescription()) |
||||
// .first(new StringBuilder().append("尊敬的").append(target.getDoc_name()).append("您好").toString())
|
||||
.url(IniConfig.getInstance("domain")+"wx/"+IniConfig.getInstance("weChatUIPath")+"push-info.html#/bi-info") |
||||
// .openId(replenish.getOpenid())
|
||||
.build(); |
||||
if(isTest){ |
||||
for (String testOpenId:IniConfig.getInstance("leaderTest").split(";")) { |
||||
sendMessageTemplate.setOpenId(""); |
||||
sendMessageTemplate.setOpenId(testOpenId); |
||||
log.info("[领导推送工作量-测试项目]:openId={}, ErrCode={}, ", |
||||
sendMessageTemplate.getOpenId(), |
||||
// 推送
|
||||
MessageApiHelper.templateMessageSend(sendMessageTemplate).getMsg_status()); |
||||
} |
||||
break; |
||||
} |
||||
if(openId!=null){ |
||||
for (String paramsOpenId:openId.split(";")) { |
||||
sendMessageTemplate.setOpenId(""); |
||||
sendMessageTemplate.setOpenId(paramsOpenId); |
||||
log.info("[领导推送工作量-接口传参项目]:openId={}, ErrCode={}, ", |
||||
sendMessageTemplate.getOpenId(), |
||||
// 推送
|
||||
MessageApiHelper.templateMessageSend(sendMessageTemplate).getMsg_status()); |
||||
} |
||||
break; |
||||
} |
||||
Integer index = 1; |
||||
for (String interfaceOpenId:allDoctorCodeStream.get().getOpenIds()){ |
||||
sendMessageTemplate.setOpenId(AesCodeHelper.deCode(interfaceOpenId)); |
||||
log.info("[领导推送工作量]:openId={}, DoctorCode-{}-{}, ErrCode={}", |
||||
sendMessageTemplate.getOpenId(), |
||||
allDoctorCodeStream.get().getDoctCode(), |
||||
index, |
||||
// 推送
|
||||
MessageApiHelper.templateMessageSend(sendMessageTemplate).getMsg_status()); |
||||
index++; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,23 +1,38 @@ |
||||
package com.ynxbd.push.quartz.job; |
||||
|
||||
import com.ynxbd.push.config.IniConfig; |
||||
import com.ynxbd.push.entity.tencent.SendMessageTemplate; |
||||
import com.ynxbd.push.entity.xbd.his.HIsWorkLoad; |
||||
import com.ynxbd.push.entity.xbd.wx.WorkLoad; |
||||
import com.ynxbd.push.entity.xbd.wx.WorkLoadData; |
||||
import com.ynxbd.push.helper.HisResultFormat; |
||||
import com.ynxbd.push.helper.MessageApiHelper; |
||||
import com.ynxbd.push.httpRequest.tencent.WeChatDataRequest; |
||||
import com.ynxbd.push.httpRequest.xbd.his.HisRequest; |
||||
import com.ynxbd.push.pushJob.BI.BiPush; |
||||
import lombok.SneakyThrows; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.quartz.Job; |
||||
import org.quartz.JobExecutionContext; |
||||
import org.quartz.JobExecutionException; |
||||
|
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
import java.util.Optional; |
||||
import java.util.regex.Matcher; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName WorkLoadJob |
||||
* @Description description |
||||
* @date 2022/7/22 11:01 |
||||
*/ |
||||
@Slf4j |
||||
public class WorkLoadJob implements Job { |
||||
|
||||
@SneakyThrows |
||||
@Override |
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { |
||||
|
||||
BiPush.runJob(null); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,187 @@ |
||||
package com.ynxbd.push.rabbit.receive; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.ynxbd.push.config.IniConfig; |
||||
import com.ynxbd.push.entity.response.ResponseResult; |
||||
import com.ynxbd.push.helper.MessageApiHelper; |
||||
import com.ynxbd.push.rabbit.send.RabbitSender; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.amqp.rabbit.annotation.RabbitHandler; |
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Component; |
||||
import org.springframework.web.util.UriUtils; |
||||
import weixin.popular.bean.message.MessageSendResult; |
||||
|
||||
import java.io.IOException; |
||||
import java.nio.charset.StandardCharsets; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Base64; |
||||
import java.util.Date; |
||||
import java.util.Map; |
||||
import java.util.UUID; |
||||
import java.util.concurrent.TimeoutException; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName RabbitReceiver |
||||
* @Description TODO |
||||
* @date 2024/01/23 13:54:00 |
||||
*/ |
||||
@Component |
||||
@Slf4j |
||||
@RabbitListener(queues = {"wxPushQueue"}) |
||||
public class RabbitReceiver { |
||||
|
||||
@Autowired |
||||
private RabbitSender rabbitSender; |
||||
|
||||
private final static String REPORT_TIP = "ReportTip"; |
||||
private final static String QUEUE_TIP = "QueueTip"; |
||||
private final static String MEDICAL_RECORD = "MedicalRecord"; |
||||
private final static String TREAT_PLAN = "treatPlan"; |
||||
|
||||
private final static String UNIVERSAL = "Universal"; |
||||
|
||||
|
||||
@RabbitHandler |
||||
public void receive(Map<String, String> receiveMessage) { |
||||
try { |
||||
log.info("rabbit开始消费消息,内容-{}", receiveMessage); |
||||
if (Integer.parseInt(receiveMessage.get("count")) > 2) { |
||||
return; |
||||
} |
||||
switch (receiveMessage.get("tip")) { |
||||
case REPORT_TIP: |
||||
reportTip(receiveMessage); |
||||
break; |
||||
case QUEUE_TIP: |
||||
queueTip(receiveMessage); |
||||
break; |
||||
case MEDICAL_RECORD: |
||||
medicalRecord(receiveMessage); |
||||
break; |
||||
case TREAT_PLAN: |
||||
treatPlan(receiveMessage); |
||||
break; |
||||
case UNIVERSAL: |
||||
universal(receiveMessage); |
||||
break; |
||||
default: |
||||
log.info("未找到消息类型进行推送,类型-{}", receiveMessage.get("tip")); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
catch (Exception e){ |
||||
log.error("消息消费出错:{},内容-{}",e,receiveMessage); |
||||
} |
||||
} |
||||
|
||||
private void reportTip(Map<String,String> receiveMessage) { |
||||
String organizeName = receiveMessage.get("organizeName"); |
||||
String messageId = receiveMessage.get("message_id"); |
||||
String code = receiveMessage.get("tip"); |
||||
String patientId = receiveMessage.get("patientId") == null ? "" : receiveMessage.get("patientId"); |
||||
String idCard = receiveMessage.get("idCard") == null ? "" : receiveMessage.get("idCard"); |
||||
String reportId = receiveMessage.get("reportId") == null ? "" : receiveMessage.get("reportId"); |
||||
String itemName = receiveMessage.get("itemName") == null ? "" : receiveMessage.get("itemName"); |
||||
String reportTime = receiveMessage.get("reportTime") == null ? "" : receiveMessage.get("reportTime"); |
||||
String patientName = receiveMessage.get("patientName") == null ? "" : receiveMessage.get("patientName"); |
||||
String sex = receiveMessage.get("sex") == null ? "" : receiveMessage.get("sex"); |
||||
String age = receiveMessage.get("age") == null ? "" : receiveMessage.get("age"); |
||||
String applyDept = receiveMessage.get("applyDept") == null ? "" : receiveMessage.get("applyDept"); |
||||
String applyDoctor = receiveMessage.get("applyDoctor") == null ? "" : receiveMessage.get("applyDoctor"); |
||||
String weChatUrl = IniConfig.getInstance("weChatUrl") == null ? "" : receiveMessage.get("weChatUrl"); |
||||
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code, idCard, "检验检查报告通知", |
||||
patientId, null, "您有新的报告。" + patientName + (age.equals("") ? "" : "(" + age + ")"), |
||||
patientId, patientName + (sex.equals("") ? "" : "(" + sex + ")"), reportId, reportTime, itemName, |
||||
"您的报告结果已经出具。" + (applyDoctor.equals("") ? "" : "申请医生:" + applyDoctor + ";") + (applyDept.equals("") ? "" : "申请科室:" + applyDept), |
||||
weChatUrl + IniConfig.getInstance("reportUrl") + "/all-result.html", messageId), receiveMessage); |
||||
|
||||
} |
||||
private void queueTip(Map<String,String> receiveMessage) { |
||||
try { |
||||
String organizeName = receiveMessage.get("organizeName"); |
||||
String messageId = receiveMessage.get("message_id"); |
||||
String code = receiveMessage.get("tip"); |
||||
String patientId = receiveMessage.get("patientId")==null?"":receiveMessage.get("patientId"); |
||||
String idCard = receiveMessage.get("idCard")==null?"":receiveMessage.get("idCard"); |
||||
String patientName = receiveMessage.get("patientName")==null?"":receiveMessage.get("patientName"); |
||||
String deptName = receiveMessage.get("deptName")==null?"":receiveMessage.get("deptName"); |
||||
String doctorName = receiveMessage.get("doctorName")==null?"":receiveMessage.get("doctorName"); |
||||
String currentNumber = receiveMessage.get("currentNumber")==null?"":receiveMessage.get("currentNumber"); |
||||
String selfNumber = receiveMessage.get("selfNumber")==null?"":receiveMessage.get("selfNumber"); |
||||
String waitNumber = receiveMessage.get("waitNumber")==null?"":receiveMessage.get("waitNumber"); |
||||
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,idCard,"排队叫号提醒", patientId,null,patientName+",您已进入候诊队列,请及时查看",deptName,doctorName,currentNumber,selfNumber,waitNumber,"请合理安排好时间就诊,以免过号",null,messageId),receiveMessage); |
||||
} |
||||
catch (Exception e){ |
||||
log.error("[推送消息组织出错]params-{}, error-{}",receiveMessage, e.toString()); |
||||
} |
||||
} |
||||
|
||||
private void medicalRecord(Map<String,String> receiveMessage) { |
||||
String organizeName = receiveMessage.get("organizeName"); |
||||
String messageId = receiveMessage.get("message_id"); |
||||
String code = receiveMessage.get("tip"); |
||||
String patientId = receiveMessage.get("patientId"); |
||||
SimpleDateFormat sdf = new SimpleDateFormat(); |
||||
sdf.applyPattern("yyyy-MM-dd"); |
||||
Date date = new Date(); |
||||
String url =IniConfig.getInstance("domain")+"wx/"+IniConfig.getInstance("weChatUIPath")+"medical-record.html#/medical-record-history"; |
||||
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,null,"医院通知",patientId,null,"病历复印申请已通过",sdf.format(date),"病历复印申请已通过,请点击跳转付费",null,null,null,"查看详情",url,messageId),receiveMessage); |
||||
} |
||||
|
||||
private void treatPlan(Map<String,String> receiveMessage){ |
||||
String messageId = receiveMessage.get("message_id"); |
||||
String code = receiveMessage.get("tip"); |
||||
String organizeName = receiveMessage.get("organizeName"); |
||||
String patientId = receiveMessage.get("patientId"); |
||||
String name = receiveMessage.get("name"); |
||||
String title = receiveMessage.get("title"); |
||||
String planTime = receiveMessage.get("planTime"); |
||||
String content = receiveMessage.get("content"); |
||||
String url = receiveMessage.get("url"); |
||||
String remark = receiveMessage.get("remark"); |
||||
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,null,"诊疗计划提醒",patientId,null,title,name,planTime,content,null,null,remark,url,messageId),receiveMessage); |
||||
} |
||||
|
||||
private void universal(Map<String,String> receiveMessage) { |
||||
SimpleDateFormat sdf = new SimpleDateFormat(); |
||||
sdf.applyPattern("yyyy-MM-dd"); |
||||
Date date = new Date(); |
||||
String organizeName = receiveMessage.get("organizeName"); |
||||
String code = receiveMessage.get("tip"); |
||||
String messageId = receiveMessage.get("message_id"); |
||||
String patientId = receiveMessage.get("patientId"); |
||||
String content = receiveMessage.get("content"); |
||||
String url = receiveMessage.get("url"); |
||||
String IdCard = receiveMessage.get("IdCard"); |
||||
String doctorCode = receiveMessage.get("doctorCode"); |
||||
String viewUrl; |
||||
if(!"".equals(url)){ |
||||
viewUrl = url; |
||||
}else { |
||||
viewUrl = IniConfig.getInstance("domain")+"wx/"+IniConfig.getInstance("weChatUIPath")+"push-universal.html?patientId="+ ("".equals(patientId)? Base64.getEncoder().encodeToString(patientId.getBytes()): "") + "&content="+Base64.getEncoder().encodeToString(UriUtils.encode(content, StandardCharsets.UTF_8.toString()).getBytes())+"&time="+Base64.getEncoder().encodeToString(sdf.format(date).getBytes()); |
||||
} |
||||
if(IniConfig.getInstance("templateVersion")!=null){ |
||||
content = content.substring(0,16)+"……"; |
||||
} |
||||
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,IdCard,IniConfig.getInstance("templateVersion")==null?"绑定通知":"工单处理提醒",patientId,doctorCode,null,sdf.format(date),content,null,null,null,null,viewUrl,messageId),receiveMessage); |
||||
} |
||||
|
||||
private void retry(MessageSendResult messageSendResult, Map<String,String> message) { |
||||
if(!(messageSendResult.getErrcode().equals("0")||messageSendResult.getErrcode().equals(ResponseResult.ORGANIZE_IS_NULL.ERR_CODE)||messageSendResult.getErrcode().equals(ResponseResult.PARAMETER_IS_NULL.ERR_CODE)||messageSendResult.getErrcode().equals(ResponseResult.NOT_FIND_DATA.ERR_CODE))){ |
||||
int count = Integer.parseInt(message.get("count")); |
||||
log.info("[微信消息推送]进入重试机制,重试次数-{},重试参数-{},失败原因-{}",count,message,messageSendResult.getErrcode()); |
||||
message.put("count",String.valueOf((count+1))); |
||||
rabbitSender.send(message); |
||||
} |
||||
|
||||
} |
||||
|
||||
public static void main(String[] args) throws IOException, TimeoutException { |
||||
System.out.println(Base64.getEncoder().encodeToString("尊敬的患者,您本次就诊有如下费用需要支付:\\n 药品处方:\\n 共1张,金额:0.13元;\\n".getBytes(StandardCharsets.UTF_8))); |
||||
System.out.println(new String(Base64.getDecoder().decode("JUU1JUIwJThBJUU2JTk1JUFDJUU3JTlBJTg0JUU2JTgyJUEzJUU4JTgwJTg1JUU2JTgyJUE4JUU1JUE1JUJEJUVGJUJDJThDJUU2JTgyJUE4JUU3JTlBJTg0JUU1JUE0JTg0JUU2JTk2JUI5JUU1JUI3JUIyJUU3JUJCJThGJUU1JTg3JUJBJUU1JTg1JUI3JUVGJUJDJThDJUU4JUFGJUI3JUU0JUJEJUEwJUU1JTlDJUE4JUU4JUE3JTg0JUU1JUFFJTlBJUU2JTk3JUI2JUU5JTk3JUI0JUU1JTg2JTg1JUU1JTg5JThEJUU1JUJFJTgwJUU1JUE0JTg0JUU2JTk2JUI5JUU4JUJGJTlCJUU4JUExJThDJUU2JTk0JUFGJUU0JUJCJTk4JUVGJUJDJThDJUU4JUIwJUEyJUU4JUIwJUEyJUU5JTg1JThEJUU1JTkwJTg4"))); |
||||
} |
||||
} |
@ -0,0 +1,33 @@ |
||||
package com.ynxbd.push.rabbit.send; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import org.springframework.amqp.rabbit.connection.CorrelationData; |
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Map; |
||||
import java.util.UUID; |
||||
|
||||
/** |
||||
* @author 李进才 |
||||
* @ClassName RabbitSender |
||||
* @Description TODO |
||||
* @date 2024/01/23 13:53:00 |
||||
*/ |
||||
@Component |
||||
public class RabbitSender { |
||||
@Autowired |
||||
private RabbitTemplate rabbitTemplate; |
||||
|
||||
public void TipSend(Map<String,String> message){ |
||||
message.put("count","0"); |
||||
send(message); |
||||
} |
||||
public void send(Map<String,String> message) { |
||||
String uuid = UUID.randomUUID().toString(); |
||||
CorrelationData correlationData = new CorrelationData(uuid); |
||||
message.put("message_id", uuid); |
||||
this.rabbitTemplate.convertAndSend("wxPushExchange","wxPushRouting",message,correlationData); |
||||
} |
||||
} |
Loading…
Reference in new issue