Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16381 -r16382 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16381) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16382) @@ -8166,11 +8166,22 @@ List tousseInstanceList = tousseInstanceManager .getBySql(tousseInstanceSql.toString()); if (tousseInstanceList != null) { + StringBuilder barcodes = new StringBuilder(); for (TousseInstance tousseInstance : tousseInstanceList) { + if(barcodes.length() == 0){ + barcodes.append(tousseInstance.getBarcode()); + }else{ + barcodes.append(";"); + barcodes.append(tousseInstance.getBarcode()); + } + } + JSONObject biologicalMonitoringInfoObjs = getBiologicalMonitoringInfo(barcodes.toString()); + for (TousseInstance tousseInstance : tousseInstanceList) { TousseDefinition td = tousseInstance.getTousseDefinition(); if(td == null){ continue; } + String barcode = tousseInstance.getBarcode(); JSONObject obj = new JSONObject(); obj.put("id", tousseInstance.getId()); obj.put("showTousseName", @@ -8188,22 +8199,25 @@ obj.put("diposable", TousseItem.DIPOSABLE_NO); obj.put("isRoutine", TousseInstance.ROUTINE_YES); obj.put("noBiologicalMonitoring", false); - obj.put("isUnqualified", false); + obj.put("biologicalMonitoringNoResult", false); + obj.put("biologicalMonitoringFail", false); - // 估计会有严重的性能问题 - JSONObject jsonObj = getBiologicalMonitoringInfo(tousseInstance.getBarcode()); //判断是否常规发货(cjr) - String noBiologicalMonitoringForeignTousse = jsonObj.optString("noBiologicalMonitoringForeignTousses"); - String unconventionalForeignTousse = jsonObj.optString("unconventionalForeignTousses"); - String isUnqualified = jsonObj.optString("isUnqualified"); - if (!StringTools.isBlank(noBiologicalMonitoringForeignTousse)) { //此器械包没做生物监测 - obj.put("noBiologicalMonitoring", TousseInstance.ROUTINE_NO); + JSONObject jsonVo = (JSONObject) biologicalMonitoringInfoObjs.get(barcode); + if (jsonVo != null) { + String noBiologicalMonitoring = jsonVo.optString("noBiologicalMonitoring"); + String biologicalMonitoringNoResult = jsonVo.optString("biologicalMonitoringNoResult"); + String biologicalMonitoringFail = jsonVo.optString("biologicalMonitoringFail"); + String urgentDelivery = jsonVo.optString("urgentDelivery"); + + obj.put("noBiologicalMonitoring", StringTools.isNotBlank(noBiologicalMonitoring)); + obj.put("biologicalMonitoringNoResult", StringTools.isNotBlank(biologicalMonitoringNoResult)); + obj.put("biologicalMonitoringFail", StringTools.isNotBlank(biologicalMonitoringFail)); + + if (StringTools.isNotBlank(urgentDelivery)) { //紧急发货 + obj.put("isRoutine", TousseInstance.ROUTINE_NO); + } } - if (!StringTools.isBlank(unconventionalForeignTousse)) { //此器械包做了生物监测,但是没结束就要发货了 - obj.put("isRoutine", TousseInstance.ROUTINE_NO); - } - if (!StringTools.isBlank(isUnqualified)) { //此器械包做了生物监测,但是结果为"不合格"就要发货了,必须强制不让其发货 - obj.put("isUnqualified", TousseInstance.ROUTINE_NO); - } + jsonArray.add(obj); } } Index: ssts-web/src/main/webapp/disinfectsystem/invoice/auxiliaryInvoiceForm.js =================================================================== diff -u -r16376 -r16382 --- ssts-web/src/main/webapp/disinfectsystem/invoice/auxiliaryInvoiceForm.js (.../auxiliaryInvoiceForm.js) (revision 16376) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/auxiliaryInvoiceForm.js (.../auxiliaryInvoiceForm.js) (revision 16382) @@ -107,7 +107,8 @@ {name : 'applicationAmount'}, {name : 'isRoutine'}, {name : 'noBiologicalMonitoring'}, - {name : 'isUnqualified'}, + {name : 'biologicalMonitoringNoResult'}, + {name : 'biologicalMonitoringFail'}, {name : 'disposableGoodsIdSet'}, {name : 'invoicePlanIDList'}, {name : 'invoicePlanType'} @@ -797,6 +798,31 @@ // var name = rows[i].data['name']; // var amount = rows[i].data['count']; // recyclingapplicationStore.remove(rows[i]); + var goods = rows[i].data; + // 生物监测 + if (sstsConfig.biologicalMonitoringEnable) { //发货时对含植入物的器械包,进行是否紧急发货以及生物监测情况的提示 + if (goods.biologicalMonitoringFail) { //生物监测不合格 + alert('[' + goods.name + ']生物监测结果为不合格,不能发货'); + continue; + } + + if (goods.biologicalMonitoringNoResult) { //生物监测为无(1、 填了生物监测的结束时间相当于生物监测正在进行中 2、真的没做) + var massage = '[' + goods.name + ']生物监测结果为无,确定要发货吗?'; + if (goods.isRoutine == '否' && !goods.noBiologicalMonitoring) { + var massage = '[' + goods.name + ']正在做生物监测,并且生物监测结果为无,确定要发货吗?'; + } + if (!confirm(massage)){ + continue; + } + } + + if (goods.isRoutine == '否' && !goods.biologicalMonitoringNoResult){ //正在做生物监测(cjr) + if (!confirm('[' + goods.name + ']正在做生物监测,需要紧急发货吗?')){ + continue; + } + } + } + addOneTousse(rows[i]); rows[i].set('added',true); }