lighter 3 anni fa
parent
commit
13424f15b2

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/triage/TriageDao.java

@@ -38,7 +38,7 @@ public interface TriageDao {
             "fz_no, slow_flag, status_flag, status_time,call_time, req_order, ampm, " +
             "req_fee=(select req_fee from mzy_reqrec where patient_id=a.patient_id and times=a.times)," +
             "clinic_fee=(select clinic_fee from mzy_reqrec where patient_id=a.patient_id and times=a.times) " +
-            "from mzfz_patient_order a where datediff(day, visit_date, getdate())=0 and status_flag='0' " +
+            "from mzfz_patient_order a where datediff(day, visit_date, getdate())=0 and isnull(status_flag,'') in ('','0') " +
             "and dept_code in " +
             "<foreach collection='deptCodes' item='deptCode' open='(' separator=',' close=')'>" +
             "#{deptCode}" +

+ 12 - 5
src/main/java/thyyxxk/webserver/dao/his/triage/TriageSettingsDao.java

@@ -1,9 +1,6 @@
 package thyyxxk.webserver.dao.his.triage;
 
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
 import thyyxxk.webserver.entity.triage.MzfzZdDeptRoom;
@@ -22,7 +19,17 @@ public interface TriageSettingsDao {
     String getChosenDept(@Param("code") String code);
 
     @Update("update t_triage_user_depts set chosen_dept=#{chosenDept} where code=#{code}")
-    void saveChosenDept(@Param("code") String code, @Param("chosenDept") String chosenDept);
+    int saveChosenDept(@Param("code") String code, @Param("chosenDept") String chosenDept);
+
+    @Insert("insert into t_triage_user_depts (code, code_rs, name, chosen_dept) values " +
+            "(#{code}, #{codeRs}, #{name},#{depts})")
+    void insertChosenDept(@Param("code") String code,
+                          @Param("codeRs") String codeRs,
+                          @Param("name") String name,
+                          @Param("depts") String depts);
+
+    @Select("select rtrim(code_rs) as code, rtrim(name) as name from a_employee_mi where code=#{code}")
+    CodeName selectEmployeeCodeRsName(@Param("code") String code);
 
     @Select("<script>" +
             "select *, " +

+ 57 - 57
src/main/java/thyyxxk/webserver/scheduled/QueryNotifiedPatients.java

@@ -1,57 +1,57 @@
-//package thyyxxk.webserver.scheduled;
-//
-//import com.alibaba.fastjson.JSON;
-//import lombok.extern.slf4j.Slf4j;
-//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;
-//import thyyxxk.webserver.entity.triage.MessageForPush;
-//import thyyxxk.webserver.entity.triage.MzfzPatientOrder;
-//import thyyxxk.webserver.entity.triage.TriageNotifyRelation;
-//import thyyxxk.webserver.utils.VoiceUtil;
-//import thyyxxk.webserver.websocket.WebSocketServer;
-//
-//import java.util.List;
-//
-//@Slf4j
-//@Component
-//public class QueryNotifiedPatients {
-//    private final TriageDao dao;
-//    @Value("${execute-scheduled}")
-//    private Boolean executeScheduled;
-//
-//    @Autowired
-//    public QueryNotifiedPatients(TriageDao dao) {
-//        this.dao = dao;
-//    }
-//
-//    @Scheduled(fixedRate = 6000)
-//    public void query() {
-//        if (executeScheduled) {
-//            List<TriageNotifyRelation> unNotifiedList = dao.selectUnNotifiedList();
-//            if (null == unNotifiedList || unNotifiedList.isEmpty()) {
-//                return;
-//            }
-//            for (TriageNotifyRelation item : unNotifiedList) {
-//                MzfzPatientOrder patient = dao.getPatientTriageInfo(item.getSerialNo());
-//                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()));
-//                WebSocketServer.sendFloorTriageMessage(item.getSocketSid(), msg);
-//                WebSocketServer.sendRoomTriageMessage(item.getRoomCode(), msg);
-//                dao.updateNotifyDatetime(param.getSerialNo());
-//            }
-//        }
-//    }
-//}
+package thyyxxk.webserver.scheduled;
+
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+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;
+import thyyxxk.webserver.entity.triage.MessageForPush;
+import thyyxxk.webserver.entity.triage.MzfzPatientOrder;
+import thyyxxk.webserver.entity.triage.TriageNotifyRelation;
+import thyyxxk.webserver.utils.VoiceUtil;
+import thyyxxk.webserver.websocket.WebSocketServer;
+
+import java.util.List;
+
+@Slf4j
+@Component
+public class QueryNotifiedPatients {
+    private final TriageDao dao;
+    @Value("${execute-scheduled}")
+    private Boolean executeScheduled;
+
+    @Autowired
+    public QueryNotifiedPatients(TriageDao dao) {
+        this.dao = dao;
+    }
+
+    @Scheduled(fixedRate = 6000)
+    public void query() {
+        if (executeScheduled) {
+            List<TriageNotifyRelation> unNotifiedList = dao.selectUnNotifiedList();
+            if (null == unNotifiedList || unNotifiedList.isEmpty()) {
+                return;
+            }
+            for (TriageNotifyRelation item : unNotifiedList) {
+                MzfzPatientOrder patient = dao.getPatientTriageInfo(item.getSerialNo());
+                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()));
+                WebSocketServer.sendFloorTriageMessage(item.getSocketSid(), msg);
+                WebSocketServer.sendRoomTriageMessage(item.getRoomCode(), msg);
+                dao.updateNotifyDatetime(param.getSerialNo());
+            }
+        }
+    }
+}

+ 1 - 1
src/main/java/thyyxxk/webserver/service/LoginService.java

@@ -38,7 +38,7 @@ public class LoginService {
             }
             dao.insertNewUserToDjUserBase(tempUserInfo);
         }
-        if (Objects.equals("fromTriageScreen", userInfo.getSid()) &&
+        if (!Objects.equals("fromTriageScreen", userInfo.getSid()) &&
                 !userInfo.getPassword().equals(tempUserInfo.getPassword())) {
             return ResultVoUtil.fail(ExceptionEnum.INVALID_PASSWORD);
         }

+ 1 - 1
src/main/java/thyyxxk/webserver/service/externalhttp/Html2ImgSrvc.java

@@ -8,6 +8,6 @@ import java.util.Map;
 
 public interface Html2ImgSrvc {
 
-    @Post("http://192.168.200.3:8805/htmlToImage/healthCardImage/execute")
+    @Post("http://192.168.200.3/htmlToImage/healthCardImage/execute")
     Map<String, Object> execute(@JSONBody HealthCardResult param);
 }

+ 33 - 20
src/main/java/thyyxxk/webserver/service/triage/TriageService.java

@@ -38,12 +38,10 @@ public class TriageService {
 
     public ResultVo<Map<String, Object>> getUnTriagedPatients(Integer currentPage, Integer pageSize) {
         String[] depts = StringUtil.triageDeptString2Array(dao.selectChosenDepts(TokenUtil.getTokenUserId()));
-        Map<String, Object> map = new HashMap<>(Capacity.TWO);
         if (depts.length == 0) {
-            map.put("totalSize", 0);
-            map.put("list", new ArrayList<>());
-            return ResultVoUtil.success(map);
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先前往【科室设置】分配分诊科室!");
         }
+        Map<String, Object> map = new HashMap<>(Capacity.TWO);
         IPage<MzfzPatientOrder> iPage = new Page<>(currentPage, pageSize);
         iPage = dao.getUnTriagedPatients(iPage, depts);
         map.put("totalSize", iPage.getTotal());
@@ -53,16 +51,25 @@ public class TriageService {
 
     public ResultVo<List<MzfzPatientOrder>> getTriagedPatients() {
         String[] depts = StringUtil.triageDeptString2Array(dao.selectChosenDepts(TokenUtil.getTokenUserId()));
+        if (depts.length == 0) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先前往【科室设置】分配分诊科室!");
+        }
         return ResultVoUtil.success(dao.getTriagedPatients(depts));
     }
 
     public ResultVo<List<MzfzPatientOrder>> getTreatedPatients() {
         String[] depts = StringUtil.triageDeptString2Array(dao.selectChosenDepts(TokenUtil.getTokenUserId()));
+        if (depts.length == 0) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先前往【科室设置】分配分诊科室!");
+        }
         return ResultVoUtil.success(dao.getTreatedPatients(depts));
     }
 
     public ResultVo<List<FloorScreen>> getBigScreenData(Boolean fullName) {
         String[] depts = StringUtil.triageDeptString2Array(dao.selectChosenDepts(TokenUtil.getTokenUserId()));
+        if (depts.length == 0) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先前往【科室设置】分配分诊科室!");
+        }
         List<MzfzPatientOrder> list = dao.getBigScreenData(depts);
         Map<String, FloorScreen> map = new HashMap<>(Capacity.DEFAULT);
         for (MzfzPatientOrder item : list) {
@@ -107,6 +114,9 @@ public class TriageService {
 
     public ResultVo<List<CodeName>> getChosenDept() {
         String[] depts = StringUtil.triageDeptString2Array(dao.selectChosenDepts(TokenUtil.getTokenUserId()));
+        if (depts.length == 0) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先前往【科室设置】分配分诊科室!");
+        }
         return ResultVoUtil.success(dao.getDept(depts));
     }
 
@@ -157,6 +167,9 @@ public class TriageService {
 
     public ResultVo<Map<String, Object>> getAllPatients(String searchContent, Integer currentPage, Integer pageSize) {
         String[] depts = StringUtil.triageDeptString2Array(dao.selectChosenDepts(TokenUtil.getTokenUserId()));
+        if (depts.length == 0) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先前往【科室设置】分配分诊科室!");
+        }
         Map<String, Object> map = new HashMap<>(Capacity.TWO);
         searchContent = StringUtil.isBlank(searchContent) ? "%%" : searchContent + "%";
         IPage<MzfzPatientOrder> iPage = new Page<>(currentPage, pageSize);
@@ -203,22 +216,22 @@ public class TriageService {
         WebSocketServer.sendFloorTriageMessage(notifyRelation.getSocketSid(), msg);
         WebSocketServer.sendRoomTriageMessage(notifyRelation.getRoomCode(), msg);
         dao.updateNotifyDatetime(param.getSerialNo());
-        return ResultVoUtil.success();
+//        return ResultVoUtil.success();
         // todo 下面这一部分在完成迁移后删除
-//        RestTemplate template = new RestTemplate();
-//        String result;
-//        try {
-//            result = template.postForObject(triageNotifyUrl, messageForPush, String.class);
-//        } catch (Exception e) {
-//            return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
-//        }
-//        if (param.getAction() == 1) {
-//            if (null != result && result.equals("0")) {
-//                dao.updateStatus(param.getSerialNo());
-//            } else {
-//                log.error("消息推送失败,没有找到在线的分诊台连接。{}", messageForPush);
-//            }
-//        }
-//        return ResultVoUtil.success(result);
+        RestTemplate template = new RestTemplate();
+        String result;
+        try {
+            result = template.postForObject(triageNotifyUrl, messageForPush, String.class);
+        } catch (Exception e) {
+            return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
+        }
+        if (param.getAction() == 1) {
+            if (null != result && result.equals("0")) {
+                dao.updateStatus(param.getSerialNo());
+            } else {
+                log.error("消息推送失败,没有找到在线的分诊台连接。{}", messageForPush);
+            }
+        }
+        return ResultVoUtil.success(result);
     }
 }

+ 7 - 2
src/main/java/thyyxxk/webserver/service/triage/TriageSettingsService.java

@@ -44,15 +44,20 @@ public class TriageSettingsService {
     }
 
     public ResultVo<String> saveChosenDept(List<String> depts) {
+        String userid = TokenUtil.getTokenUserId();
         if (null == depts || depts.isEmpty()) {
-            dao.saveChosenDept(TokenUtil.getTokenUserId(), null);
+            dao.saveChosenDept(userid, null);
         } else {
             StringBuilder dept = new StringBuilder("[");
             for (String item : depts) {
                 dept.append("\"").append(item).append("\",");
             }
             dept.replace(dept.length() - 1 , dept.length(), "]");
-            dao.saveChosenDept(TokenUtil.getTokenUserId(), dept.toString());
+            int saved = dao.saveChosenDept(TokenUtil.getTokenUserId(), dept.toString());
+            if (saved == 0) {
+                CodeName codeName = dao.selectEmployeeCodeRsName(userid);
+                dao.insertChosenDept(userid, codeName.getCode(), codeName.getName(), dept.toString());
+            }
         }
         return ResultVoUtil.success("保存成功。");
     }

+ 5 - 5
src/main/resources/application-prod.yml

@@ -34,11 +34,11 @@ spring:
       pool-name: lisDbPool
       connection-timeout: 30000
       connection-test-query: select 1
-  rabbitmq:
-    host: 192.168.200.3
-    port: 5672
-    username: dj
-    password: 123456
+#  rabbitmq:
+#    host: 192.168.200.3
+#    port: 5672
+#    username: dj
+#    password: 123456
   jackson:
     time-zone: GMT+8
     date-format: yyyy-MM-dd HH:mm:ss

+ 5 - 5
src/main/resources/application.yml

@@ -43,11 +43,11 @@ spring:
       pool-name: lisDbPool
       connection-timeout: 30000
       connection-test-query: select 1
-  rabbitmq:
-    host: 172.16.30.26 #测试
-    port: 5672
-    username: dj
-    password: 123456
+#  rabbitmq:
+#    host: 172.16.30.26 #测试
+#    port: 5672
+#    username: dj
+#    password: 123456
   jackson:
     time-zone: Asia/Shanghai
     date-format: yyyy-MM-dd HH:mm:ss