Explorar el Código

医嘱确费中查询唯一一条数据。

xiaochan hace 3 años
padre
commit
1764376405

+ 2 - 16
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyiji/QueRenYiZhuShouFeiDao.java

@@ -26,7 +26,8 @@ public interface QueRenYiZhuShouFeiDao {
 
     @Select("<script>" +
             "select  " +
-            "rtrim(a.inpatient_no) inpatient_no, a.admiss_times, bed_no =b.bed_no,rtrim(b.name) name, a.ward_code ,b.sex,b.admiss_date,  " +
+            "rtrim(a.inpatient_no) inpatient_no, a.admiss_times, bed_no =b.bed_no," +
+            "case when b.name IS NULL  then (select top(1) rtrim(name) name from zy_inactpatient where zy_inactpatient.inpatient_no = a.inpatient_no) else  rtrim(b.name) end name, a.ward_code ,b.sex,b.admiss_date,  " +
             "ledger_sn = (select max(ledger_sn) from zy_ledger_file where zy_ledger_file.inpatient_no = b.inpatient_no  " +
             "and zy_ledger_file.admiss_times = b.admiss_times),b.total_charge,  " +
             "responce_type_name = (select rtrim(name) from zy_zd_responce_type where zy_zd_responce_type.code = b.responce_type),  " +
@@ -184,21 +185,11 @@ public interface QueRenYiZhuShouFeiDao {
             "left join zy_actpatient e on (a.inpatient_no = e.inpatient_no)  " +
             "left join zd_unit_code f on (a.ward_code = f.code)  " +
             "where a.charge_status &lt;&gt; '3' " +
-            "<choose>" +
-            "<when  test=\"startTime != null and startTime != '' \">" +
-            " and charge_date &gt;= #{startTime} and charge_date &lt;= #{endTime} " +
-            "</when >" +
-            "<otherwise>" +
             " and convert(varchar(20),a.occ_time,23)&lt;=convert(varchar(20),getdate(),23) " +
-            "</otherwise>" +
-            "</choose>" +
             " and a.exec_unit in " +
             "<foreach collection='list' item='item' index='index' open='(' close=')' separator=','>" +
             "    #{item}  " +
             "</foreach>" +
-            "<if test=\"wardCode !=null and wardCode != '' \">" +
-            " and a.ward_code = #{wardCode}" +
-            "</if>" +
             "<if test=\"yiQueFeiShuJu != null and yiQueFeiShuJu.size > 0 \">" +
             " and a.inpatient_no in " +
             "<foreach collection='yiQueFeiShuJu' item='item' index='index' open='(' close=')' separator=','>" +
@@ -208,11 +199,6 @@ public interface QueRenYiZhuShouFeiDao {
             "order by a.ward_code" +
             "</script>")
     List<YzActOrder> huoQuLiShiQueFeiXinXi(
-            @Param("startTime") String startTime,
-            @Param("endTime") String endTime,
             @Param("list") List<String> execUnitList,
-            @Param("wardCode") String wardCode,
             @Param("yiQueFeiShuJu") List<Patient> yiQueFeiShuJu);
-
-
 }

+ 4 - 6
src/main/java/thyyxxk/webserver/service/zhuyuanyiji/QueRenYiZhuShouFeiServer.java

@@ -21,7 +21,6 @@ import thyyxxk.webserver.websocket.WebSocketServer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -135,14 +134,13 @@ public class QueRenYiZhuShouFeiServer {
         if (xuYaoFeiYongJieShou.isEmpty()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有进行确认操作请勿点击。 ψ(*`ー´)ψ");
         } else {
-            List<YzActOrder> yiQueFei = dao.huoQuLiShiQueFeiXinXi("", "",
-                    publicServer.getKeShiLieBiaoList(param.getExecUnit()), "", xuYaoFeiYongJieShou);
+            //  这个查询是否有重复操作的 sql 需要重新写
+            List<YzActOrder> yiQueFei = dao.huoQuLiShiQueFeiXinXi(publicServer.getKeShiLieBiaoList(param.getExecUnit()), xuYaoFeiYongJieShou);
             Map<String, YzActOrder> yiQueFeiMap = yiQueFei.stream().collect(
-                    Collectors.toMap(L -> L.getInpatientNo() + L.getAdmissTimes() + DateUtil.formatDatetime(L.getOccTime()) + L.getChargeCode() + L.getChargeFee() + L.getOrderCount(), Function.identity()));
-
+                    Collectors.toMap(L -> L.getInpatientNo() + L.getAdmissTimes() + DateUtil.formatDatetime(L.getOccTime()) + L.getChargeCode() + L.getChargeFee() + L.getOrderCount() + L.getActOrderNo(), a -> a, (k1, k2) -> k2));
             for (YzActOrder yzActOrder : xuYaoQueFei) {
                 String key = yzActOrder.getInpatientNo() + yzActOrder.getAdmissTimes() + DateUtil.formatDatetime(yzActOrder.getOccTime()) +
-                        yzActOrder.getChargeCode() + yzActOrder.getChargeFee() + yzActOrder.getOrderCount();
+                        yzActOrder.getChargeCode() + yzActOrder.getChargeFee() + yzActOrder.getOrderCount() + yzActOrder.getActOrderNo();
                 if (yiQueFeiMap.containsKey(key)) {
                     YzActOrder queRenTiShi = yiQueFeiMap.get(key);
                     return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("存在已被确费的项目,请对该项目选择不操作或刷新数据重新加载。 !!!∑(゚Д゚ノ)ノ <br>患者姓名:【%s】<br>项目:【%s】<br> 医嘱号:【%s】<br> 医嘱时间:【%s】<br>执行人:【%s】<br> 操作时间:【%s】", queRenTiShi.getPatientName(),