Browse Source

优化处方打印防止重复打印

WANGJIALIANG 3 years ago
parent
commit
2ff7e9dc80

+ 28 - 1
src/main/java/cn/hnthyy/thmz/controller/mz/MzPharmacyController.java

@@ -630,7 +630,7 @@ public class MzPharmacyController {
                 map.put("drugFlag", ypZdDict.getDrugFlag());//毒麻标志
                 map.put("psFlag", ypZdDict.getPsFlag());//是否需要皮试
                 YpBaseYf ypBaseYf = ypBaseYfService.queryYpBaseYf(chargeDetail.getChargeItemCode(), chargeDetail.getSerial(), chargeDetail.getGroupNo());
-                map.put("location",ypBaseYf.getLocation());
+                map.put("location",ypBaseYf.getLocation()==null?"":ypBaseYf.getLocation());
                 map.put("stockAmount",ypBaseYf.getStockAmount());
                 String manufactoryName = ypZdManufactoryService.queryYpZdManufactoryByCode(ypZdDict.getManuCode());
                 map.put("manufactoryName", manufactoryName);//生产厂家
@@ -1084,4 +1084,31 @@ public class MzPharmacyController {
             return resultMap;
         }
     }
+
+    /**
+     * 查询处方打印状态
+     * @param patientId
+     * @param times
+     * @param orderNo
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/getPrintFlag",method = RequestMethod.GET)
+    public Map<String,Object> getPrintFlag(@RequestParam("patientId") String patientId,@RequestParam("times") String times
+            ,@RequestParam("orderNo") String orderNo){
+        Map<String, Object> resultMap = new HashMap<>();
+        try {
+            int printFlag = mzChargeDetailService.queryPrintFlag(patientId, times, orderNo);
+            resultMap.put("code", 0);
+            resultMap.put("message", "查询处方打印状态成功");
+            resultMap.put("printFlag", printFlag);
+            return resultMap;
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("查询处方打印状态失败,错误信息{}", e);
+            resultMap.put("code", -1);
+            resultMap.put("message", "查询处方打印状态失败");
+            return resultMap;
+        }
+    }
 }

+ 10 - 1
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzChargeDetailMapper.java

@@ -1094,5 +1094,14 @@ public interface MzChargeDetailMapper {
             , "</script>"})
     List<MzChargeDetail> selectHybridTestListByPatientIdAndReqDateWithPage(MzYjReq mzYjReq);
 
-
+    /**
+     * 获取处方打印状态
+     * @param patientId
+     * @param times
+     * @param orderNo
+     * @return
+     */
+    @Select("SELECT max(isnull(print_flag,0)) as print_flag FROM mz_charge_detail WHERE patient_id=#{patientId} and times=#{times} and order_no=#{orderNo} ")
+    Integer selectPrintFlag(@Param("patientId") String patientId, @Param("times") String times
+            , @Param("orderNo") String orderNo);
 }

+ 9 - 0
src/main/java/cn/hnthyy/thmz/service/his/mz/MzChargeDetailService.java

@@ -429,4 +429,13 @@ public interface MzChargeDetailService {
      * @return
      */
     List<MzChargeDetail> queryHybridTestListByPatientIdAndReqDateWithPage(MzYjReq mzYjReq);
+
+    /**
+     * 获取处方打印状态
+     * @param patientId
+     * @param times
+     * @param orderNo
+     * @return
+     */
+    Integer queryPrintFlag(String patientId, String times, String orderNo);
 }

+ 4 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzChargeDetailServiceImpl.java

@@ -2057,6 +2057,10 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
         return mzChargeDetailMapper.selectHybridTestListByPatientIdAndReqDateWithPage(mzYjReq);
     }
 
+    @Override
+    public Integer queryPrintFlag(String patientId, String times, String orderNo) {
+        return mzChargeDetailMapper.selectPrintFlag(patientId,times,orderNo);
+    }
 
     @Override
     public Clinic nucleicAcidApplication(String patientId) throws MzException {

+ 17 - 1
src/main/resources/static/js/common/socket-com.js

@@ -88,7 +88,23 @@ function dispensingMessage(data) {
         if (chk_value != '') {//自动打印
             for (var i = 0; i < data.orderNos.length; i++) {
                 if(chk_value == 1){
-                    printPrescription(data.patient_id, data.times,data.orderNos[i]);
+                    $.ajax({
+                        type: "GET",
+                        data: {
+                            patientId: data.patient_id,
+                            times: data.times,
+                            orderNo: data.orderNos[i]
+                        },
+                        url: '/thmz/getPrintFlag',
+                        contentType: "application/json;charset=UTF-8",
+                        dataType: "json",
+                        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
+                        success: function (res) {
+                            if (res.code == 0 && res.printFlag == 0) {
+                                printPrescription(data.patient_id, data.times,data.orderNos[i],1);
+                            }
+                        }
+                    });
                 }else if(chk_value == 2){
                     printDrugList(data.patient_id, data.times,data.orderNos[i]);
                 }