Browse Source

Merge branch 'dev-1.1.4' into 'dev-1.1.4'

增加发药排队人数处理

See merge request hurugang/thmz_system!24
huangshuhua 2 years ago
parent
commit
b4864ca6cb

+ 10 - 0
src/main/java/cn/hnthyy/thmz/controller/mz/MzPharmacyController.java

@@ -68,6 +68,8 @@ public class MzPharmacyController {
     private MzBlRecordService mzBlRecordService;
     @Autowired
     private MzYshZdFysmService mzYshZdFysmService;
+    @Autowired
+    private MzDrugWinService mzDrugWinService;
     /**
      * 查询处方信息
      *
@@ -516,6 +518,10 @@ public class MzPharmacyController {
             if(mzChargeDetail.getGroupNo().equals("71")){
                 dispensingSocketService.sendToMedicine(mzChargeDetail.getPatientId(),chargeDetailPharmacyVo.getWinNo());
             }
+
+            // 更新窗口发药排队人数
+            mzPharmacyService.updateMzDrugWinPatientNum(mzChargeDetail, 1);
+
             return resultMap;
         } catch (Exception e) {
             e.printStackTrace();
@@ -547,6 +553,10 @@ public class MzPharmacyController {
                 resultMap = mzPharmacyService.sendMedicineProcessing(mzChargeDetail, tokenUser);
                 dispensingSocketService.sendToMedicine(mzChargeDetail.getPatientId(),chargeDetailPharmacyVos.get(i).getWinNo());
             }
+
+            // 更新窗口发药排队人数
+            mzPharmacyService.updateMzDrugWinPatientNum(chargeDetailPharmacyVos.get(0).getMzChargeDetail(), 1);
+
             return resultMap;
         } catch (Exception e) {
             e.printStackTrace();

+ 11 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzDrugWinMapper.java

@@ -145,4 +145,15 @@ public interface MzDrugWinMapper {
      */
     @Delete("delete from mz_drug_win where group_no = #{groupNo} and win_no = #{winNo}")
     int deleteByGroupNoWinNo(@Param("groupNo") String groupNo, @Param("winNo") String winNo);
+
+    @Update({"<script>",
+            "update mz_drug_win ",
+            "<trim prefix='set' prefixOverrides=',' suffix=' where group_no =#{groupNo,jdbcType=CHAR} and win_no = #{winNo,jdbcType=CHAR} ' >",
+            "<when test='patientNum != null'>",
+            ",patient_num = #{patientNum,jdbcType=INTEGER}",
+            "</when>",
+            "</trim>",
+            "</script>"})
+    int updateMzDrugWinPatientNum(MzDrugWin drugWin);
+
 }

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

@@ -203,4 +203,13 @@ public interface MzPharmacyService {
      */
     int queryRefundMoneyCount(Integer realNo, Integer receiptNo, String groupNo, Integer orderNo);
 
+    /**
+     * @description: 更新发药排队人数
+     * @author: hsh
+     * @date: 2023/4/18 18:26
+     * @param: [mzChargeDetail, num]
+     * @return: int
+     **/
+    int updateMzDrugWinPatientNum(MzChargeDetail mzChargeDetail, int num);
+
 }

+ 20 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzPharmacyServiceImpl.java

@@ -5,11 +5,13 @@ import cn.hnthyy.thmz.Utils.HttpUtil;
 import cn.hnthyy.thmz.entity.MzException;
 import cn.hnthyy.thmz.entity.his.mz.Employee;
 import cn.hnthyy.thmz.entity.his.mz.MzChargeDetail;
+import cn.hnthyy.thmz.entity.his.mz.MzDrugWin;
 import cn.hnthyy.thmz.entity.his.yp.YpBaseYf;
 import cn.hnthyy.thmz.entity.his.yp.YpMzFytj;
 import cn.hnthyy.thmz.entity.thmz.RadSendRecord;
 import cn.hnthyy.thmz.entity.thmz.User;
 import cn.hnthyy.thmz.mapper.his.mz.EmployeeMapper;
+import cn.hnthyy.thmz.mapper.his.mz.MzDrugWinMapper;
 import cn.hnthyy.thmz.mapper.his.mz.MzPharmacyMapper;
 import cn.hnthyy.thmz.mapper.his.yp.YpBaseYfMapper;
 import cn.hnthyy.thmz.mapper.his.yp.YpZdManufactoryMapper;
@@ -44,6 +46,9 @@ public class MzPharmacyServiceImpl implements MzPharmacyService {
     @SuppressWarnings("all")
     @Autowired
     private YpBaseYfMapper ypBaseYfMapper;
+    @SuppressWarnings("all")
+    @Autowired
+    private MzDrugWinMapper mzDrugWinMapper;
     //语音生成接口地址
     @Value("${audioServiceUrl}")
     private String audioServiceUrl;
@@ -243,6 +248,7 @@ public class MzPharmacyServiceImpl implements MzPharmacyService {
         if (mzPharmacyMapper.updateFyclChargeDetailConfirmFlag(mzChargeDetail) < 1) {
             throw new MzException("修改发药状态数据为空,发药处理失败");
         }
+
         resultMap.put("code", 0);
         resultMap.put("message", "发药处理成功");
         return resultMap;
@@ -370,6 +376,20 @@ public class MzPharmacyServiceImpl implements MzPharmacyService {
         return mzPharmacyMapper.selectRefundMoneyCount(realNo, receiptNo, groupNo, orderNo);
     }
 
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
+    public int updateMzDrugWinPatientNum(MzChargeDetail mzChargeDetail, int num) {
+        // 门诊发药窗口人数查询
+        MzDrugWin drugWin = mzDrugWinMapper.selectMzDrugWinByGroupNoAndWinNo(mzChargeDetail.getGroupNo(), mzChargeDetail.getWindowsNoYf());
+        if((null != drugWin && drugWin.getPatientNum() > 0) && num > 0){
+            // 门诊窗口人数减num
+            int patientNum = drugWin.getPatientNum();
+            drugWin.setPatientNum(patientNum-num);
+            mzDrugWinMapper.updateMzDrugWinPatientNum(drugWin);
+        }
+        return 0;
+    }
+
     @Override
     public List<ChargeDetailInfoVo> getFyclWfyPrescription(ChargeFeeParamsVo chargeFeeParamsVo) {
         return mzPharmacyMapper.selectFyclWfyPrescription(chargeFeeParamsVo);

+ 9 - 6
src/main/resources/static/js/yf/ward_prescription.js

@@ -1356,22 +1356,23 @@ function printDetail(datas, kfFlag, flag) {
 /**
  *
  */
-function printDetailHtml(datas, flag) {
+function printDetailHtml(dataArr, flag) {
+    let dataCopy = $.extend(true, [], dataArr)
     let html = '';
     let totalMoney = 0;
     let oldInpatientNo = '';//记录上一个病人
     let title = '病房明细领药单(' + $("#pageClassSearch").find("option:selected").text() + ')';
     if (pageClass == '5') {
         title = '长期口服领药单';
-        $(".wardName").text(datas[0].wardName);
+        $(".wardName").text(dataCopy[0].wardName);
     } else if (pageClass == '6') {
         title = '临时口服领药单';
-        $(".wardName").text(datas[0].wardName);
+        $(".wardName").text(dataCopy[0].wardName);
     } else {
         let w_code = $("#wardCode").find("option:selected").text();
         $(".wardName").text(w_code.substring(0, w_code.lastIndexOf("(")));
     }
-    if (flag == 1 && datas[0].byjFlag == 1) {
+    if (flag == 1 && dataCopy[0].byjFlag == 1) {
         title += '(摆药机)'
     } else if (flag == 0) {
         title += '(重打)'
@@ -1382,8 +1383,8 @@ function printDetailHtml(datas, flag) {
     $(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
     $('.sjh').remove();
     let minOccTime = '';
-    for (var i = 0; i < datas.length; i++) {
-        let data = datas[i];
+    for (var i = 0; i < dataCopy.length; i++) {
+        let data = dataCopy[i];
         if (pageClass != "A" && pageClass != "5" && (oldInpatientNo == '' || oldInpatientNo != data.inpatientNo)) {//临时口服,统领单
             html += '<tr class="sjh">';
             html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">年龄:' + getBirthSlot(data.birthDate, new Date()) + '</td>';
@@ -1477,6 +1478,8 @@ function printDetailHtml(datas, flag) {
     html += '</tr>';
     $("#mxdy_table").append(html);
     print("mxdy_table_div");
+    // 清空打印内容,保证每次打印内容都是这次药单打印的内容
+    dataCopy == null
 }
 
 /**