|
@@ -2,8 +2,8 @@ package thyyxxk.webserver.scheduled;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.logging.log4j.util.PropertiesUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import thyyxxk.webserver.dao.his.triage.TriageDao;
|
|
@@ -21,6 +21,8 @@ import java.util.concurrent.ConcurrentMap;
|
|
|
@Component
|
|
|
public class QueryNotifiedPatients {
|
|
|
private final TriageDao dao;
|
|
|
+ @Value("${execute-scheduled}")
|
|
|
+ private Boolean executeScheduled;
|
|
|
|
|
|
@Autowired
|
|
|
public QueryNotifiedPatients(TriageDao dao) {
|
|
@@ -29,34 +31,32 @@ public class QueryNotifiedPatients {
|
|
|
|
|
|
@Scheduled(fixedRate = 6000)
|
|
|
public void query() {
|
|
|
- String osName = PropertiesUtil.getSystemProperties().getProperty("os.name");
|
|
|
- if ("Windows 10".equals(osName)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- ConcurrentMap<Integer, String> map = PatientSidContainer.getInstance().getSidPatientsMap();
|
|
|
- if (map.isEmpty()) return;
|
|
|
- List<PureCodeName> list = dao.getNotifiedSerialNos(map);
|
|
|
- if (list == null || list.isEmpty()) return;
|
|
|
- for (PureCodeName item : list) {
|
|
|
- MzfzPatientOrder patient = dao.getPatientTriageInfo(Integer.parseInt(item.getCode()));
|
|
|
- MessageForPush param = new MessageForPush();
|
|
|
- param.setAction(1);
|
|
|
- param.setSerialNo(patient.getSerialNo());
|
|
|
- param.setFzNo(patient.getFzNo());
|
|
|
- param.setName(patient.getName());
|
|
|
- param.setDeptName(patient.getDeptName());
|
|
|
- param.setRoomNo(patient.getRoomNo());
|
|
|
- param.setRoomCode(patient.getRoomCode());
|
|
|
- final String msg = JSON.toJSONString(param);
|
|
|
- String text = String.format("请%s号%s,到%s%s号诊室就诊。", param.getFzNo(), param.getName(),
|
|
|
- param.getDeptName(), param.getRoomNo());
|
|
|
- VoiceUtil.textToSpeech(text, String.valueOf(param.getSerialNo()));
|
|
|
- String userCode = map.get(Integer.parseInt(item.getCode()));
|
|
|
- int code1 = WebSocketServer.sendFloorTriageMessage(userCode, msg);
|
|
|
- int code2 = WebSocketServer.sendRoomTriageMessage(item.getName(), msg);
|
|
|
+ if (executeScheduled) {
|
|
|
+ ConcurrentMap<Integer, String> map = PatientSidContainer.getInstance().getSidPatientsMap();
|
|
|
+ if (map.isEmpty()) return;
|
|
|
+ List<PureCodeName> list = dao.getNotifiedSerialNos(map);
|
|
|
+ if (list == null || list.isEmpty()) return;
|
|
|
+ for (PureCodeName item : list) {
|
|
|
+ MzfzPatientOrder patient = dao.getPatientTriageInfo(Integer.parseInt(item.getCode()));
|
|
|
+ MessageForPush param = new MessageForPush();
|
|
|
+ param.setAction(1);
|
|
|
+ param.setSerialNo(patient.getSerialNo());
|
|
|
+ param.setFzNo(patient.getFzNo());
|
|
|
+ param.setName(patient.getName());
|
|
|
+ param.setDeptName(patient.getDeptName());
|
|
|
+ param.setRoomNo(patient.getRoomNo());
|
|
|
+ param.setRoomCode(patient.getRoomCode());
|
|
|
+ final String msg = JSON.toJSONString(param);
|
|
|
+ String text = String.format("请%s号%s,到%s%s号诊室就诊。", param.getFzNo(), param.getName(),
|
|
|
+ param.getDeptName(), param.getRoomNo());
|
|
|
+ VoiceUtil.textToSpeech(text, String.valueOf(param.getSerialNo()));
|
|
|
+ String userCode = map.get(Integer.parseInt(item.getCode()));
|
|
|
+ int code1 = WebSocketServer.sendFloorTriageMessage(userCode, msg);
|
|
|
+ int code2 = WebSocketServer.sendRoomTriageMessage(item.getName(), msg);
|
|
|
|
|
|
- if (code1 != 200 || code2 != 200) {
|
|
|
- PatientSidContainer.getInstance().delete(param.getSerialNo());
|
|
|
+ if (code1 != 200 || code2 != 200) {
|
|
|
+ PatientSidContainer.getInstance().delete(param.getSerialNo());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|