Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r20566 -r20854 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 20566) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 20854) @@ -46,6 +46,7 @@ import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoods; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; @@ -1080,6 +1081,10 @@ tousseTypeSet .add(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY); break; + case "高值耗材": + tousseTypeSet + .add(ExpensiveGoods.TYPE_NAME); + break; } } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/ExpensiveGoodsItem.java =================================================================== diff -u -r20831 -r20854 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/ExpensiveGoodsItem.java (.../ExpensiveGoodsItem.java) (revision 20831) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/ExpensiveGoodsItem.java (.../ExpensiveGoodsItem.java) (revision 20854) @@ -47,9 +47,9 @@ private Long expensiveGoodsStockId; private Long expensiveGoodsInstanceId; - private Long returnGoodsRecordId;// 退货记录的ID + private Long returnGoodsRecordId;// 退货记录的id - private Long invoiceItemId;// 明细汇总的ID + private Long invoiceItemId;// 明细汇总的id private Long returnGoodsItemId;// 退货明细汇总的id @@ -138,54 +138,6 @@ this.barcode = barcode; } - public Long getDisposableGoodsID() { - return expensiveGoodsId; - } - - public void setDisposableGoodsID(Long expensiveGoodsId) { - this.expensiveGoodsId = expensiveGoodsId; - } - - public Long getDisposableGoodsStockID() { - return expensiveGoodsStockId; - } - - public void setDisposableGoodsStockID(Long expensiveGoodsStockId) { - this.expensiveGoodsStockId = expensiveGoodsStockId; - } - - public Long getDisposableGoodsBatchStockID() { - return expensiveGoodsInstanceId; - } - - public void setDisposableGoodsBatchStockID(Long expensiveGoodsInstanceId) { - this.expensiveGoodsInstanceId = expensiveGoodsInstanceId; - } - - public Long getReturnGoodsRecordID() { - return returnGoodsRecordId; - } - - public void setReturnGoodsRecordID(Long returnGoodsRecordId) { - this.returnGoodsRecordId = returnGoodsRecordId; - } - - public Long getInvoiceItemID() { - return invoiceItemId; - } - - public void setInvoiceItemID(Long invoiceItemId) { - this.invoiceItemId = invoiceItemId; - } - - public Long getReturnGoodsItemID() { - return returnGoodsItemId; - } - - public void setReturnGoodsItemID(Long returnGoodsItemId) { - this.returnGoodsItemId = returnGoodsItemId; - } - public Long getExpensiveGoodsId() { return expensiveGoodsId; } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/InvoicePlanAction.java =================================================================== diff -u -r20529 -r20854 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/InvoicePlanAction.java (.../InvoicePlanAction.java) (revision 20529) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/InvoicePlanAction.java (.../InvoicePlanAction.java) (revision 20854) @@ -38,6 +38,7 @@ import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseInstanceUtils; +import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; @@ -365,6 +366,12 @@ * 3.tousseType 器械类型 */ public void getDepartInvoiePlansByDepartCodes() { + +// SupplyRoomConfig s = new SupplyRoomConfig(); +// s.setOrgUnitName("妇科一区"); +// s.setOrgUnitCoding("FORGON_CSSD_43"); +// s.setSupplyRoomType(SupplyRoomConfig.SUPPLYROOM_TYPE_EXPENSIVEGOODS_APPLY); +// objectDao.save(s); String departCode = StrutsParamUtils.getPraramValue("departCode", ""); String[] departCodes = StringUtils.split(departCode, ';'); Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js =================================================================== diff -u -r20389 -r20854 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 20389) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 20854) @@ -10,6 +10,7 @@ var postInitDataTimer = null; var confirmSaveWin = null; var isScanAmountEqualsAppAmountConfirmed = false; +var EXPENSIVEGOODS_TYPE_NAME = '高值耗材'; var wareHouseStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/wareHouseAction!getWareHouseData.do', @@ -846,7 +847,7 @@ } var b = isBarcodeRepeat(goods.barcode); - if(b && (goods.diposable == '是' || !goods.tousseFixedBarcode)){// 扫描多个时,如果存在已扫描的,直接忽略,跳过 + if(b && (goods.diposable == '是' || !goods.tousseFixedBarcode || goods.tousseType==EXPENSIVEGOODS_TYPE_NAME)){// 扫描多个时,如果存在已扫描的,直接忽略,跳过 continue; } // 校验是否超过待发数量,如果是,也跳过 @@ -1004,6 +1005,7 @@ var name = record.get('name'); var diposable = record.get('diposable'); var disposableGoodsIdSet = record.get('disposableGoodsIdSet'); + var expensiveGoodsIdSet = record.get('expensiveGoodsIdSet'); if(name == vo.name && diposable != vo.diposable){ var msg = '待发物品['+name+']为一次性物品,请扫描一次性物品条码!'; if(diposable != '是'){ @@ -1025,6 +1027,16 @@ }else if(name == vo.name){ return record; } + }else if(vo.tousseType == EXPENSIVEGOODS_TYPE_NAME){ + // 高值耗材根据id来匹配 + if(expensiveGoodsIdSet.length > 0 && !isUndefinedOrNullOrEmpty(vo.typeInfoOnScanned)){ + var typeInfoOnScanned = JSON.parse(vo.typeInfoOnScanned); + for(var di=0;di //物品类型下拉选项数据 //var tousseTypeDataArray = [['一次性物品','<%=TousseItem.DIPOSABLE_YES %>'],['非一次性物品','<%=TousseItem.DIPOSABLE_NO %>']]; - var tousseTypeDataArray = [['一次性物品','一次性物品'],['普通器械包','普通器械包'],['敷料包','敷料包'],['消毒物品','消毒物品'],['自定义器械包','自定义器械包'],['外来器械包','外来器械包'],['外部代理灭菌包','外部代理灭菌包']]; + var tousseTypeDataArray = [['一次性物品','一次性物品'],['普通器械包','普通器械包'],['敷料包','敷料包'],['消毒物品','消毒物品'],['自定义器械包','自定义器械包'],['外来器械包','外来器械包'],['外部代理灭菌包','外部代理灭菌包'],['高值耗材','高值耗材']]; //已选择的条件(申请日期、物品类型、申请单号) var selectedApplyDate = ""; var selectedTousseType = ""; Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r20832 -r20854 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 20832) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 20854) @@ -1230,8 +1230,9 @@ private void parseParameters_typeInfo( DisposableGoodsServiceContext disposableGoodsServiceContext, JSONObject jsonInvoiceItem, String tousseType) { + String diposable = JSONUtil.optString(jsonInvoiceItem, "diposable", DisposableGoods.CONSTANT_NO); // 类型相关的处理 - if(StringUtils.equals(tousseType,DisposableGoods.TYPE_NAME) || StringUtils.equals(tousseType,DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS)){ + if(StringUtils.equals(diposable,DisposableGoods.CONSTANT_YES) && (StringUtils.equals(tousseType,DisposableGoods.TYPE_NAME) || StringUtils.equals(tousseType,DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS))){ String typeInfoOnScanned = JSONUtil.optString(jsonInvoiceItem, "typeInfoOnScanned", null); if(typeInfoOnScanned == null){ throw new RuntimeException("缺少类型参数!"); @@ -1294,7 +1295,7 @@ } expensiveGoodsServiceContext.getExpensiveGoodsIdsSet().add(expensiveGoodsId); expensiveGoodsServiceContext.getExpensiveGoodsStockIdsSet().add(expensiveGoodsStockId); - expensiveGoodsServiceContext.getExpensiveGoodsStockIdsSet().add(expensiveGoodsInstanceId); + expensiveGoodsServiceContext.getExpensiveGoodsInstanceIdsSet().add(expensiveGoodsInstanceId); } } @@ -3054,7 +3055,7 @@ expensiveGoodsItem.setInvoice(invoice);// 和发货单关联 expensiveGoodsItem - .setInvoiceItemID(invoiceItem.getId());// 明细汇总关联 + .setInvoiceItemId(invoiceItem.getId());// 明细汇总关联 if (!expensiveGoodsItem .isAssociatedInfoValidForExpensiveDisposablegoodsInvoice()) { throw new RuntimeException("关联信息不正确!"); @@ -3104,6 +3105,7 @@ .getBarcodeToDisposableGoodsBatchStockMap(); Map> fixedBarcodeTousseIdToAffiliatedTousseInstanceMap = submitInvoiceContext.getFixedBarcodeTousseIdToAffiliatedTousseInstanceMap(); Invoice invoice = new Invoice(); + invoice.setTotalPrice(0.0); List diposableGoodsItems = new ArrayList(); List expensiveGoodsItems = new ArrayList(); // 获得浮动价格系数