Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r14147 -r14177 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14147) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14177) @@ -463,15 +463,22 @@ JSONObject obj = jsonArray.optJSONObject(i); String tousseName = obj.optString("tousseName"); String supplierName = obj.optString("supplierName"); + String tousseDefinitionId = obj.optString("tousseDefinitionId"); Double price = obj.optDouble("price"); Long appid = foreignTousseApplication.getId(); - // 根据外来器械包名称,和申请单ID,以及供应商查找 + if(StringUtils.isBlank(tousseName)){ + throw new RuntimeException("外来器械包名称不能为空!"); + } + if(StringUtils.isBlank(supplierName)){ + throw new RuntimeException("外来器械包供应商不能为空!"); + } + TousseDefinition tousseDefinition = tousseDefinitionManager - .getForeignTousseDefinitionByNameAPPIDAndSupplierName(tousseName,appid.toString(), - supplierName); + .getForeignTousseDefinition(tousseDefinitionId, "" + appid); // 已存在的外来器械包明细信息 if (tousseDefinition != null) { tousseDefinition.setSupplierName(supplierName); + tousseDefinition.setName(tousseName); List foreignMaterialDefinitions = new ArrayList(); // 记录没有删除的材料id List existforeignMaterialDefinitionIds = new ArrayList(); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r13903 -r14177 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 13903) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 14177) @@ -87,6 +87,8 @@ String supplierName); public TousseDefinition getForeignTousseDefinitionByTousseItem(TousseItem tousseItem); + public TousseDefinition getForeignTousseDefinition(String tousseDefinitionId,String invoicePlanId); + public TousseDefinition getInvoicePlanTousseDefinitionByTousseItem(TousseItem tousseItem); public TousseDefinition getTousseDefinitionByTousseItem(TousseItem tousseItem); Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r14149 -r14177 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14149) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14177) @@ -34,7 +34,7 @@ beforeedit: function(editor, context, eOpts){ var record = context.record; var isLeaf = record.get('leaf'); - if(!isLeaf && (context.colIdx == 2 || context.colIdx == 3 || context.colIdx == 4 || context.colIdx == 6 || context.colIdx == 7)){ + if(!isLeaf && (context.colIdx == 3 || context.colIdx == 4 || context.colIdx == 6 || context.colIdx == 7)){ return false; } } @@ -52,6 +52,7 @@ idProperty: 'nodeId', fields: [ {name : 'id'}, + {name : 'tousseDefinitionId'}, {name : 'tousseName'}, {name : 'supplierName'}, {name : 'amount'}, @@ -262,8 +263,16 @@ showResult("必须添加器械包!"); return false; } - for (var i=0; i < nodes.length; i++){ + for (var i = 0; i < nodes.length; i++){ var n = nodes[i]; + if(n.get("supplierName") == null || n.get("supplierName") == ""){ + msg = "外来器械供应商不能为空!"; + break; + } + if(n.get("tousseName") == null || n.get("tousseName") == ""){ + msg = "外来器械名称不能为空!"; + break; + } if(n.get("amount") <= 0){ msg = "外来器械数量必须大于0!"; break; @@ -775,7 +784,15 @@ width : includeImplantUsedAmountHidden ? 200 : 170, sortable: true, xtype : 'treecolumn', - dataIndex: 'supplierName' + dataIndex: 'supplierName', + editor: { + xtype : 'combo', + valueField : 'companyName', + displayField : 'companyName', + store : foldersCompanyJsonStore, + allowBlank: true, + forceSelection : true + } },{ header: '器械包/材料名称', width : includeImplantUsedAmountHidden ? 200 : 170, Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r14149 -r14177 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14149) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14177) @@ -2246,4 +2246,17 @@ } return json; } + + @Override + public TousseDefinition getForeignTousseDefinition(String tousseDefinitionId, String invoicePlanId) { + if(StringUtils.isNotBlank(tousseDefinitionId) && StringUtils.isNotBlank(invoicePlanId)){ + String sql = String + .format("where po.id = '%s' and po.tousseType='%s' and po.invoicePlanID=%s", + tousseDefinitionId, + TousseDefinition.PACKAGE_TYPE_FOREIGN, invoicePlanId); + return (TousseDefinition) objectDao.getBySql( + TousseDefinition.class.getSimpleName(), sql); + } + return null; + } }