소스 검색

医嘱生成的退药单存在金额为0,确认药单后修正金额

WANGJIALIANG 2 년 전
부모
커밋
a6785d224f

+ 28 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/yz/YzYpZyOrderMapper.java

@@ -257,6 +257,34 @@ public interface YzYpZyOrderMapper {
             "</script>"})
     int updateStatusFlag(@Param("yzYpZyOrder") YzYpZyOrder yzYpZyOrder);
 
+    /**
+     * 修改科室领药单药品的金额
+     * @param yzYpZyOrder
+     * @return
+     */
+    @Update({"<script>"+
+            "update yz_yp_zy_order set retprice =#{yzYpZyOrder.retprice} where 1=1" +
+            "<when test='yzYpZyOrder.inpatientNo!=null'>"+
+            " and inpatient_no =#{yzYpZyOrder.inpatientNo}"+
+            "</when>"+
+            "<when test='yzYpZyOrder.actOrderNo!=null'>"+
+            " and act_order_no =#{yzYpZyOrder.actOrderNo}"+
+            "</when>"+
+            "<when test='yzYpZyOrder.chargeCode!=null'>"+
+            " and charge_code =#{yzYpZyOrder.chargeCode}"+
+            "</when>"+
+            "<when test='yzYpZyOrder.occTime!=null'>"+
+            " and convert(varchar(19),occ_time,20) =convert(varchar(19),#{yzYpZyOrder.occTime},20)"+
+            "</when>"+
+            "<when test='yzYpZyOrder.pageNo!=null'>"+
+            " and page_no =#{yzYpZyOrder.pageNo}"+
+            "</when>"+
+            "<when test='yzYpZyOrder.pageNoTy!=null'>"+
+            " and page_no_ty =#{yzYpZyOrder.pageNoTy}"+
+            "</when>"+
+            "</script>"})
+    int updateRetprice(@Param("yzYpZyOrder") YzYpZyOrder yzYpZyOrder);
+
     /**
      * 查询药单待发药品类型数量
      * @param pageNo 药单编码

+ 12 - 1
src/main/java/cn/hnthyy/thmz/service/impl/his/yf/YfWardPrescriptionServiceImpl.java

@@ -504,6 +504,11 @@ public class YfWardPrescriptionServiceImpl implements YfWardPrescriptionService
                     if (1 != yzYpZyOrderMapper.updateStatusFlag(y)) {
                         throw new MzException("修改药品发药状态异常");
                     }
+                    if(yzYpZyOrder.getRetprice() == 0){//医嘱生成的药品金额为0处理(体现在退药单)
+                        YpZdDict ypZdDict = ypZdDictMapper.selectYpZdDictByCodeAndSerial(yzYpZyOrder.getChargeCode(), yzYpZyOrder.getSerial());
+                        y.setRetprice(ypZdDict.getPackRetprice().doubleValue());
+                        yzYpZyOrderMapper.updateRetprice(y);
+                    }
                     if (yzYpZyOrder.getPageClass().equals("HT")) {//护士退药单
                         ZyDetailCharge zyDetailCharge = new ZyDetailCharge();
                         zyDetailCharge.setInpatientNo(yzYpZyOrder.getInpatientNo());
@@ -554,7 +559,13 @@ public class YfWardPrescriptionServiceImpl implements YfWardPrescriptionService
             if((i == 0 || count == 0) && !pageClass.equals("T") && !pageClass.equals("HT")){
                 throw new MzException("请检查后重发,含空药单:"+pageNoStr);
             }
-            if (i == count || pageClass.equals("T") || pageClass.equals("HT")) {
+            int sum = 0;
+            if (pageClass.equals("A")) {//医技药单
+                sum = zyDrugMapper.selectDrugCountByPageNo(pageNoStr);
+            } else if (!pageClass.equals("T") && !pageClass.equals("HT")) {
+                sum = yzYpZyOrderMapper.selectDrugCountByPageNo(Integer.parseInt(pageNoStr));
+            }
+            if (sum == 0) {
                 yzYpPageNoMapper.updateYzYpPageNo(Integer.parseInt(pageNoStr), 3, userCode);
                 log.info("药单药品已全部确认成功{}",pageNoStr);
             }