Jelajahi Sumber

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

hurugang 2 tahun lalu
induk
melakukan
49122f1a8f

+ 6 - 1
src/main/java/cn/hnthyy/thmz/controller/yk/YpInDetlController.java

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -199,9 +200,13 @@ public class YpInDetlController {
                 return resultMap;
             }
             List<YpInDetlVo> ypInDetlVos = ypInDetlService.queryYpInDetlDetailed(ypInDetlVo);
+            List<List<YpInDetlVo>> ypInDetlVoGroupList = new ArrayList<>();
+            ypInDetlVos.stream().collect(Collectors.groupingBy(YpInDetlVo::getSupplyCode, Collectors.toList())).forEach((model, list) -> {
+                ypInDetlVoGroupList.add(list);
+            });
             List<Map<String,Object>> maps = ypInDetlService.queryYpInDetlAccSum(ypInDetlVo);
             HashMap<Object, Object> map = new HashMap<>();
-            map.put("ypInDetls",ypInDetlVos);
+            map.put("ypInDetlVoGroupList",ypInDetlVoGroupList);
             map.put("ypInDetlMaps",maps);
             resultMap.put("data", map);
             resultMap.put("code", 0);

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

@@ -195,7 +195,7 @@ public interface YpInDetlMapper {
             "        AND in_date &lt;=#{endTime}" +
             "   </if>" +
             "</where>" +
-            " order by in_docu_no"+
+            " order by supply_code,in_docu_no"+
             "</script>")
     List<YpInDetl> selectYpInDetlDetailed(YpInDetlVo ypInDetlVo);
 

+ 1 - 1
src/main/resources/static/js/yf/ward_prescription.js

@@ -1697,7 +1697,7 @@ function sendXy(flag) {
                 } else {
                     getPrintDetail(1);
                 }
-                if (!confirm("是否需要打印当前药单的口服标签并使用摆药机?")) {
+                if (confirm("是否需要打印当前药单的口服标签并使用摆药机?")) {
                     if (res.data) {
                         printLabelData(flag, 1);//口服药单,并使用摆药机
                         request({

+ 113 - 74
src/main/resources/static/js/yk/in_storage_acc_sum.js

@@ -62,8 +62,7 @@ function getInStorageData() {
         data: JSON.stringify(temp)
     }).then((res) => {
         successMesage(res);
-        if (res.data.ypInDetls.length > 0) {
-            console.log(res);
+        if (res.data.ypInDetlVoGroupList.length > 0) {
             setGridPrintDate(res.data);
         }
     });
@@ -73,83 +72,120 @@ function getInStorageData() {
  * 生成数据表格
  */
 function setGridPrintDate(data) {
-    $(".dateRange").html($('#reportrange span').html());
-    $(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
-    $(".groupName").html(getGroupName(groupNo));
-    $(".supplyName").html(data.ypInDetls[0]['supplyName']);
+    console.log(data);
+    let now = format(new Date(), "yyyy-MM-dd HH:mm");
+    let groupName = getGroupName(groupNo);
     $('.sjh').remove();
     let html = '';
     let sum_html = '';
-    for (let i = 0; i < data.ypInDetls.length; i++) {
-        let d = data.ypInDetls[i];
-        html += '<tr class="sjh">';
-        if (i > 0 && d['inDocuNo'] === data.ypInDetls[i - 1]['inDocuNo']) {
-            html += '<td class="xtd" style="text-align: center;"></td>';
-        } else {
-            html += '<td class="xtd" style="text-align: center;">' + d['inDocuNo'] + '</td>';
-        }
-        html += '<td class="xtd" style="text-align: center;">' + d['chargeCode'] + '<br>/' + d['manuNo'] + '</td>';
-        html += '<td class="xtd" style="text-align: left;">' + d['manufactoryName'] + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + d['buyAmt'] + '</td>';
-        html += '<td class="xtd" style="text-align: left;">' + d['specification'] + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + d['dosageName'] + '</td>';
-        html += '<td class="xtd" style="text-align: left;">' + d['licenseNo'] + '</td>';
-        html += '<td class="xtd" style="text-align: left;">' + d['wgType'] + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + d['confirmName'] + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + d['buyPrice'] + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + (d['buyPrice'] * d['buyAmt']).toFixed(2) + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + format(d['confirmDate'], "yyyy-MM-dd") + '<br>/' + format(d['effDate'], "yyyy-MM-dd") + '</td>';
-        html += '<td class="xtd" style="text-align: center;">' + (d['hgFlag'] === '1' ? '合格' : '不合格') + '<br>/' + d['acceptName'] + '</td>';
-        html += '</tr>';
-    }
-    $("#base_tr").after(html);
-    let ypType = '';
-    let buyMoneyMin = 0;
-    let packMoneyMin = 0;
-    let buyMoneyMax = 0;
-    let packMoneyMax = 0;
-    for (let j = 0; j < data.ypInDetlMaps.length; j++) {
-        let ypInDetlMap = data.ypInDetlMaps[j];
-        if (ypType === ypInDetlMap['ypType']) {
-            buyMoneyMin += ypInDetlMap['buyMoney'];
-            packMoneyMin += ypInDetlMap['packMoney'];
-            sum_html += sumHtmlAfter(ypInDetlMap);
-        } else {
-            if (sum_html !== '') {
-                sum_html += sumHtmlCountAfter(buyMoneyMin, packMoneyMin);
-                buyMoneyMax += buyMoneyMin;
-                packMoneyMax += packMoneyMin;
-                buyMoneyMin = 0;
-                packMoneyMin = 0;
-            }
-            if (data.ypInDetlMaps.length - 1 === j) {
-                ypType = ypInDetlMap['ypType'];
-                sum_html += '<tr class="sjh"><td colspan="13" class="xtd" style="text-align: left;font-weight: bold;">' + getYpTypeName(ypType) + '(汇总)</td></tr>';
-                buyMoneyMin += ypInDetlMap['buyMoney'];
-                packMoneyMin += ypInDetlMap['packMoney'];
-                buyMoneyMax += buyMoneyMin;
-                packMoneyMax += packMoneyMin;
-                sum_html += sumHtmlAfter(ypInDetlMap);
-                sum_html += sumHtmlCountAfter(buyMoneyMin, packMoneyMin);
-                sum_html += '<tr class="sjh">';
-                sum_html += '<td colspan="4" class="xtd" style="text-align: center;font-weight: bold;">合计</td>';
-                sum_html += '<td colspan="3" class="xtd" style="text-align: right;">' + buyMoneyMax.toFixed(2);
-                sum_html += '</td>';
-                sum_html += '<td colspan="3" class="xtd" style="text-align: right;">' + packMoneyMax.toFixed(2);
-                sum_html += '</td>';
-                sum_html += '<td colspan="3" class="xtd" style="text-align: right;">' + (packMoneyMax - buyMoneyMax).toFixed(2);
-                sum_html += '</td>';
-                sum_html += '</tr>';
+    for (let j = 0; j < data.ypInDetlVoGroupList.length; j++) {
+        let ypInDetls = data.ypInDetlVoGroupList[j];
+        html+='<div class="qbtj_table"><table class="table table-striped" style="margin-top: 0px;border: transparent !important;">\n' +
+            '                        <tr style="font-weight: 700;background-color: #EBEBE4;height: 70px;">\n' +
+            '                            <td colspan="13" style="font-size: 21px;text-align: center;border: transparent !important;"><span class="title">泰和医院入库验收单</span></td>\n' +
+            '                        </tr>' +
+            '<tr style="font-weight: 700;background-color: #EBEBE4">\n' +
+            '                            <td colspan="2" style="text-align: left;border: transparent !important;">库房:'+groupName+'</td>\n' +
+            '                            <td colspan="4" style="text-align: left;border: transparent !important;">供货单位:'+ypInDetls[0]['supplyName']+'</td>\n' +
+            '                            <td colspan="4" style="text-align: left;border: transparent !important;">日期范围:'+$('#reportrange span').html()+'</td>\n' +
+            '                            <td colspan="3" style="text-align: left;border: transparent !important;">打印日期:'+now+'</td>\n' +
+            '                        </tr>' +
+            '<tr>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 100px;">单号</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 80px;">药品编码/<br>药品批号</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 120px;">药品名称</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 120px;">生产厂家</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 60px;">入库数量</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 100px;">规格</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 40px;">剂型</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 120px;">批准文号</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 60px;">复核人</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 60px;">购入价</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 60px;">购入金额</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 80px;">入库日期/<br>有效期</td>\n' +
+            '                            <td class="xtd" style="text-align: center;width: 60px;">验收结果/<br>验收人</td>\n' +
+            '                        </tr>';
+        for (let i = 0; i < ypInDetls.length; i++) {
+            let d = ypInDetls[i];
+            html += '<tr class="sjh">';
+            if (i > 0 && d['inDocuNo'] === ypInDetls[i - 1]['inDocuNo']) {
+                html += '<td class="xtd" style="text-align: center;"></td>';
             } else {
-                ypType = ypInDetlMap['ypType'];
-                sum_html += '<tr class="sjh"><td colspan="13" class="xtd" style="text-align: left;font-weight: bold;">' + getYpTypeName(ypType) + '(汇总)</td></tr>';
-                sum_html += sumHtmlAfter(ypInDetlMap);
-                buyMoneyMin += ypInDetlMap['buyMoney'];
-                packMoneyMin += ypInDetlMap['packMoney'];
+                html += '<td class="xtd" style="text-align: center;">' + d['inDocuNo'] + '</td>';
             }
+            html += '<td class="xtd" style="text-align: center;">' + d['chargeCode'] + '<br>/' + d['manuNo'] + '</td>';
+            html += '<td class="xtd" style="text-align: left;">' + d['drugName'] + '</td>';
+            html += '<td class="xtd" style="text-align: left;">' + (isEmpty(d['manufactoryName'])?'-':d['manufactoryName']) + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + d['buyAmt'] + '</td>';
+            html += '<td class="xtd" style="text-align: left;">' + d['specification'] + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + d['dosageName'] + '</td>';
+            html += '<td class="xtd" style="text-align: left;">' + (isEmpty(d['licenseNo'])?'-':d['licenseNo']) + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + d['confirmName'] + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + d['buyPrice'] + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + (d['buyPrice'] * d['buyAmt']).toFixed(2) + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + format(d['confirmDate'], "yyyy-MM-dd") + '<br>/' + format(d['effDate'], "yyyy-MM-dd") + '</td>';
+            html += '<td class="xtd" style="text-align: center;">' + (d['hgFlag'] === '1' ? '合格' : '不合格') + '<br>/' + d['acceptName'] + '</td>';
+            html += '</tr>';
+        }
+        if((j+1) == data.ypInDetlVoGroupList.length){
+            html += '<tr>\n' +
+                '                            <td colspan="4" class="xtd" style="text-align: center;">分类</td>\n' +
+                '                            <td colspan="3" class="xtd" style="text-align: center;">购入金额</td>\n' +
+                '                            <td colspan="3" class="xtd" style="text-align: center;">零售金额</td>\n' +
+                '                            <td colspan="3" class="xtd" style="text-align: center;">差额</td>\n' +
+                '                        </tr>';
+            let ypType = '';
+            let buyMoneyMin = 0;
+            let packMoneyMin = 0;
+            let buyMoneyMax = 0;
+            let packMoneyMax = 0;
+            for (let j = 0; j < data.ypInDetlMaps.length; j++) {
+                let ypInDetlMap = data.ypInDetlMaps[j];
+                if (ypType === ypInDetlMap['ypType']) {
+                    buyMoneyMin += ypInDetlMap['buyMoney'];
+                    packMoneyMin += ypInDetlMap['packMoney'];
+                    sum_html += sumHtmlAfter(ypInDetlMap);
+                } else {
+                    if (sum_html !== '') {
+                        sum_html += sumHtmlCountAfter(buyMoneyMin, packMoneyMin);
+                        buyMoneyMax += buyMoneyMin;
+                        packMoneyMax += packMoneyMin;
+                        buyMoneyMin = 0;
+                        packMoneyMin = 0;
+                    }
+                    if (data.ypInDetlMaps.length - 1 === j) {
+                        ypType = ypInDetlMap['ypType'];
+                        sum_html += '<tr class="sjh"><td colspan="13" class="xtd" style="text-align: left;font-weight: bold;">' + getYpTypeName(ypType) + '(汇总)</td></tr>';
+                        buyMoneyMin += ypInDetlMap['buyMoney'];
+                        packMoneyMin += ypInDetlMap['packMoney'];
+                        buyMoneyMax += buyMoneyMin;
+                        packMoneyMax += packMoneyMin;
+                        sum_html += sumHtmlAfter(ypInDetlMap);
+                        sum_html += sumHtmlCountAfter(buyMoneyMin, packMoneyMin);
+                        sum_html += '<tr class="sjh">';
+                        sum_html += '<td colspan="4" class="xtd" style="text-align: center;font-weight: bold;">合计</td>';
+                        sum_html += '<td colspan="3" class="xtd" style="text-align: right;">' + buyMoneyMax.toFixed(2);
+                        sum_html += '</td>';
+                        sum_html += '<td colspan="3" class="xtd" style="text-align: right;">' + packMoneyMax.toFixed(2);
+                        sum_html += '</td>';
+                        sum_html += '<td colspan="3" class="xtd" style="text-align: right;">' + (packMoneyMax - buyMoneyMax).toFixed(2);
+                        sum_html += '</td>';
+                        sum_html += '</tr>';
+                    } else {
+                        ypType = ypInDetlMap['ypType'];
+                        sum_html += '<tr class="sjh"><td colspan="13" class="xtd" style="text-align: left;font-weight: bold;">' + getYpTypeName(ypType) + '(汇总)</td></tr>';
+                        sum_html += sumHtmlAfter(ypInDetlMap);
+                        buyMoneyMin += ypInDetlMap['buyMoney'];
+                        packMoneyMin += ypInDetlMap['packMoney'];
+                    }
+                }
+            }
+            html+=sum_html;
+        }else {
+            html += '</table></div>';
         }
     }
-    $("#sum_tr").after(sum_html);
+    $("#report_table").html(html);
 }
 
 function sumHtmlAfter(ypInDetlMap) {
@@ -235,14 +271,17 @@ function print() {
     setDefaultPrint();
     LODOP = getLodop();
     LODOP.PRINT_INITA(6, 0, "210mm", "297mm", "泰和医院入库验收单");
-    LODOP.SET_PRINT_PAGESIZE(2, 0, 0, "A4");
+    LODOP.SET_PRINT_PAGESIZE(2, "210mm", "297mm", "A4");
     //设置默认打印机
     LODOP.SET_PRINTER_INDEX(defaultPrintIndex);
     LODOP.ADD_PRINT_TEXT('195mm', '140mm', '40mm', '40mm', '第#页/共&页');
     LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
     var strStyle = "<style>table,td,th {border-width: 1px;" +
         "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 14px}</style>";
-    LODOP.ADD_PRINT_HTM("2mm", "4mm", "RightMargin:4mm", "BottomMargin:15mm", strStyle + document.getElementById("report_table_1").innerHTML);
+    for (let i = 0; i < $(".qbtj_table").length; i++) {
+        LODOP.ADD_PRINT_HTM("2mm", "4mm", "RightMargin:4mm", "BottomMargin:15mm", strStyle + $(".qbtj_table")[i].innerHTML);
+        LODOP.NewPageA();
+    }
     LODOP.PRINT();
     //LODOP.PREVIEW();
 }

+ 7 - 6
src/main/resources/templates/yk/in_storage_acc_sum.html

@@ -61,22 +61,23 @@
                     </div>
                 </form>
             </div>
-            <div id="report_table"
+            <div id="report_div"
                  style="width:1300px;height: calc(100% - 160px);margin:0 auto;border: 1px solid #337ab7;font-size: 14px;padding: 40px 10px 40px 10px;overflow: scroll">
-                <div id="report_table_1">
-                    <table id="qbtj_table" class="table table-striped" style="margin-top: 0px;border: transparent !important;">
+                <div id="report_table">
+                    <!--<table id="qbtj_table" class="table table-striped" style="margin-top: 0px;border: transparent !important;">
                         <tr style="font-weight: 700;background-color: #EBEBE4;height: 70px;">
-                            <td colspan="13" style="font-size: 21px;text-align: center;border: transparent !important;"><span class="title">泰和医院入库验收单</span></td>
+                            <td colspan="14" style="font-size: 21px;text-align: center;border: transparent !important;"><span class="title">泰和医院入库验收单</span></td>
                         </tr>
                         <tr style="font-weight: 700;background-color: #EBEBE4">
                             <td colspan="2" style="text-align: left;border: transparent !important;">库房:<span class="groupName"></span></td>
                             <td colspan="4" style="text-align: left;border: transparent !important;">供货单位:<span class="supplyName"></span></td>
-                            <td colspan="3" style="text-align: left;border: transparent !important;">日期范围:<span class="dateRange"></span></td>
+                            <td colspan="4" style="text-align: left;border: transparent !important;">日期范围:<span class="dateRange"></span></td>
                             <td colspan="4" style="text-align: left;border: transparent !important;">打印日期:<span class="printDate"></span></td>
                         </tr>
                         <tr id="base_tr">
                             <td class="xtd" style="text-align: center;width: 100px;">单号</td>
                             <td class="xtd" style="text-align: center;width: 80px;">药品编码/<br>药品批号</td>
+                            <td class="xtd" style="text-align: center;width: 120px;">药品名称</td>
                             <td class="xtd" style="text-align: center;width: 120px;">生产厂家</td>
                             <td class="xtd" style="text-align: center;width: 60px;">入库数量</td>
                             <td class="xtd" style="text-align: center;width: 100px;">规格</td>
@@ -95,7 +96,7 @@
                             <td colspan="3" class="xtd" style="text-align: center;">零售金额</td>
                             <td colspan="3" class="xtd" style="text-align: center;">差额</td>
                         </tr>
-                    </table>
+                    </table>-->
                 </div>
             </div>
         </div>