فهرست منبع

Merge branch 'dev-1.1.3' of https://172.16.32.165/hurugang/thmz_system into dev-1.1.3

hurugang 3 سال پیش
والد
کامیت
a72bf86bf5

+ 2 - 1
src/main/java/cn/hnthyy/thmz/controller/yf/YfInventoryController.java

@@ -192,11 +192,12 @@ public class YfInventoryController {
             yfInventoryService.auditYpInventory(ypOutDetlYf);
             resultMap.put("code", 0);
             resultMap.put("message", "审核盘点记录成功");
+            resultMap.put("data", drawNo);
             return resultMap;
         } catch (Exception e) {
             log.error(e.toString());
             resultMap.put("code", -1);
-            resultMap.put("message", "审核盘点失败");
+            resultMap.put("message", "审核盘点失败"+e.getMessage());
             return resultMap;
         }
     }

+ 15 - 1
src/main/java/cn/hnthyy/thmz/mapper/his/yp/YpBaseYfMapper.java

@@ -123,7 +123,7 @@ public interface YpBaseYfMapper {
     int insertYpBaseYf(YpBaseYf ypBaseYf);
 
     /**
-     * 更新库存
+     * 更新库存(增减)
      *
      * @param chargeCode
      * @param serial
@@ -135,6 +135,20 @@ public interface YpBaseYfMapper {
     @Update("update yp_base_yf set stock_amount =stock_amount + #{stockAmount,jdbcType=DECIMAL} , stock_value =stock_value + #{stockValue,jdbcType=DECIMAL} , stock_amount_virtual =stock_amount_virtual + #{stockAmount,jdbcType=DECIMAL} where charge_code =#{chargeCode} and serial =#{serial} and group_no =#{groupNo}")
     int updateStockAmount(@Param("chargeCode") String chargeCode, @Param("serial") String serial, @Param("groupNo") String groupNo, @Param("stockAmount") Double stockAmount, @Param("stockValue") BigDecimal stockValue);
 
+
+    /**
+     * 更新库存(覆盖)
+     *
+     * @param chargeCode
+     * @param serial
+     * @param groupNo
+     * @param stockAmount
+     * @param stockValue
+     * @return
+     */
+    @Update("update yp_base_yf set stock_amount =#{stockAmount,jdbcType=DECIMAL} , stock_value =#{stockValue,jdbcType=DECIMAL} , stock_amount_virtual =#{stockAmount,jdbcType=DECIMAL} where charge_code =#{chargeCode} and serial =#{serial} and group_no =#{groupNo}")
+    int updateStockAmountCover(@Param("chargeCode") String chargeCode, @Param("serial") String serial, @Param("groupNo") String groupNo, @Param("stockAmount") Double stockAmount, @Param("stockValue") BigDecimal stockValue);
+
     /**
      * 模糊查询药品信息
      *

+ 8 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/yp/YpOutDetlYfMapper.java

@@ -152,4 +152,12 @@ public interface YpOutDetlYfMapper {
             "    out_type>=6 and" +
             "    out_type<=8 order by b.drug_kind asc,c.location asc" )
     List<YpBaseYfVo> selectYpInventoryPrintData(@Param("drawNo") String drawNo);
+
+    /**
+     * 查询盘点记录有差异的药品
+     * @param drawNo
+     * @return
+     */
+    @Select("select out_amt,stock_amount,group_no,charge_code,serial,draw_no,pack_retprice from yp_out_detl_yf where draw_no=#{drawNo} and out_amt !=0 " )
+    List<YpOutDetlYf> selectDifferenceData(@Param("drawNo") String drawNo);
 }

+ 2 - 1
src/main/java/cn/hnthyy/thmz/service/his/yf/YfInventoryService.java

@@ -1,5 +1,6 @@
 package cn.hnthyy.thmz.service.his.yf;
 
+import cn.hnthyy.thmz.entity.MzException;
 import cn.hnthyy.thmz.entity.his.yp.YpOutDetlYf;
 import cn.hnthyy.thmz.vo.YpBaseYfVo;
 
@@ -52,7 +53,7 @@ public interface YfInventoryService {
      * @param ypOutDetlYf
      * @return
      */
-    int auditYpInventory(YpOutDetlYf ypOutDetlYf);
+    int auditYpInventory(YpOutDetlYf ypOutDetlYf) throws MzException;
 
     /**
      * 查询单号是否已确认

+ 13 - 1
src/main/java/cn/hnthyy/thmz/service/impl/his/yf/YfInventoryServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.hnthyy.thmz.service.impl.his.yf;
 
+import cn.hnthyy.thmz.entity.MzException;
 import cn.hnthyy.thmz.entity.his.yp.YpConfig;
 import cn.hnthyy.thmz.entity.his.yp.YpOutDetlYf;
 import cn.hnthyy.thmz.mapper.his.yp.YpBaseYfMapper;
@@ -14,6 +15,7 @@ import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -104,7 +106,17 @@ public class YfInventoryServiceImpl implements YfInventoryService {
     }
 
     @Override
-    public int auditYpInventory(YpOutDetlYf ypOutDetlYf) {
+    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
+    public int auditYpInventory(YpOutDetlYf ypOutDetlYf) throws MzException{
+        List<YpOutDetlYf> ypOutDetlYfs = ypOutDetlYfMapper.selectDifferenceData(ypOutDetlYf.getDrawNo());
+        for (int i = 0; i < ypOutDetlYfs.size(); i++) {
+            YpOutDetlYf yp = ypOutDetlYfs.get(i);
+            double stockAmount = yp.getStockAmount() - yp.getOutAmt();
+            if(1 != ypBaseYfMapper.updateStockAmountCover(yp.getChargeCode(), yp.getSerial(), yp.getGroupNo(), stockAmount
+                    , yp.getPackRetprice().multiply(BigDecimal.valueOf(stockAmount)))){
+                throw new MzException("药品编码:"+yp.getChargeCode()+"更新库存异常");
+            }
+        }
         return ypOutDetlYfMapper.updateYpOutDetlYf(ypOutDetlYf);
     }
 

+ 23 - 5
src/main/resources/static/js/yf/yf_inventory.js

@@ -17,6 +17,12 @@ $(function () {
         dropuAuto: false
     });
     $("#btn_create").on('click',function(e){
+        var ypOutDetlYfs= $("#tb_add").getRowData();
+        if(ypOutDetlYfs.length !=0){
+            if (!confirm("自动生成将覆盖现有未提交的盘点数据!是否继续?")) {
+                return;
+            }
+        }
         loadTbTable();
     });
     $("#btn_audit").on('click',function(e){
@@ -70,12 +76,10 @@ function inventoryButtonChange(object, realIndex) {
         $("#add_div").css("display", "");
         var inventoryDate = $("#inventoryDate").html();
         var auditDate = $("#auditDate").html();
+        var inventoryNo = $("#inventoryNo").html();
         var is = inventoryDate.substring(0,7);
-        if(auditDate=='' && is == format(new Date(),"yyyy-MM")){
-            var ypOutDetlYfs= $("#tb_add").getRowData();
-            if(ypOutDetlYfs.length ==0){
+        if(!isEmpty(inventoryNo) && isEmpty(auditDate)){
                 loadTbTable();
-            }
         }
     } else {
         $("#searchDiv").css("display", "");
@@ -114,6 +118,7 @@ function inventoryButtonChange(object, realIndex) {
  * 生成药品盘点数据
  */
 function loadTbTable() {
+    $("#btn_create").attr("disabled",true);
     $("#tb_add").jqGrid('setGridParam', {
         datatype:'json',
         postData: { groupNo: pharmacyGroupNo,infusionFlag:$('#infusionFlag').val(),visibleFlag:$('#visibleFlag').val() }
@@ -142,6 +147,10 @@ function saveTbTable() {
     if(ypOutDetlYfs.length ==0){
         return errorMesageSimaple('盘点药品数据为空,请生成后再提交');
     }
+    if (!confirm("为避免药品筛选导致药品不全,请检查表格筛选行是否已清空并重新刷新表格!是否已确认?")) {
+        return;
+    }
+    $("#btn_save").attr("disabled",true);
     $.ajax({
         type: "POST",
         url: '/thmz/saveYpInventoryData',
@@ -150,6 +159,7 @@ function saveTbTable() {
         headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
         data: JSON.stringify(ypOutDetlYfs),
         success: function (res) {
+            $("#btn_save").attr("disabled",false);
             if (res == '401' || res == 401) {
                 window.location.href = '/thmz/login/view'
                 return;
@@ -240,6 +250,7 @@ function initTbAdd() {
             $("#tb_add").jqGrid("saveCell",lastrow,lastcell);//当前单元格退出编辑模式,防止列编辑功能失效
         },
         loadComplete: function (res) { //加载完成(初始加载),回调函数
+            $("#btn_create").attr("disabled",false);
             if (res == '401' || res == 401) {
                 window.location.href = '/thmz/login/view';
                 return;
@@ -474,9 +485,13 @@ function print() {
  */
 function audit(){
     var drawNo = $("#inventoryNo").html();
-    if(drawNo == ""){
+    if(isEmpty(drawNo)){
         return errorMesageSimaple('盘点单号数据为空,请重新选择盘点记录');
     }
+    if (!confirm("确认审核后将更新盘点药品的库存,是否确认审核?")) {
+        return;
+    }
+    $("#btn_audit").attr("disabled",true);
     $.ajax({
         type: "GET",
         url: '/thmz/auditYpInventory',
@@ -487,12 +502,15 @@ function audit(){
             drawNo:drawNo
         },
         success: function (res) {
+            $("#btn_audit").attr("disabled",false);
             if (res == '401' || res == 401) {
                 window.location.href = '/thmz/login/view'
                 return;
             }
             if (res.code == 0) {
                 successMesage(res);
+                $('.sjh').remove();
+                getTbAddRecordPrintData(res.data);
             } else {
                 errorMesage(res);
             }

+ 1 - 1
src/main/resources/templates/yf/yf_inventory.html

@@ -51,7 +51,7 @@
                                 title="盘点记录">盘点记录</i>
                         </button>
                         <button type="button" id="btn_audit" class="btn btn-primary" disabled="true"
-                                title="审核"><i class="fa fa-check-square-o"></i>
+                                title="审核"><i class="fa fa-check-square-o">审核</i>
                         </button>
                         <button type="button" id="btn_print" class="btn btn-primary"
                                 title="打印"><i class="fa fa-print"></i>