Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r12799 -r12809 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 12799) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 12809) @@ -231,6 +231,40 @@ } return isExist; } + + public boolean isExistDuplicateCustomTousseDefinition(String tousseDefinitionID, String name){ + boolean isExist = false; + String sql = String.format("where po.name = '%s' and po.tousseType != '%s'", name,TousseDefinition.PACKAGE_TYPE_CUSTOM); + if (StringUtils.isNotEmpty(tousseDefinitionID)) { + sql += " and po.id != " + tousseDefinitionID; + } + + try { + if (objectDao.getBySql(TousseDefinition.class.getSimpleName(), sql) != null) { + isExist = true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return isExist; + } + // 用于界面上保存消毒物品包定义时调用 + public boolean isExistDuplicateTousseDefinitionForSaveDisinfection(String tousseDefinitionID, String name){ + boolean isExist = false; + String sql = String.format("where po.name = '%s' and %s", name,SqlUtils.getBooleanFieldPredicate("po.forDisplay", true)); + if (StringUtils.isNotEmpty(tousseDefinitionID)) { + sql += " and po.id != " + tousseDefinitionID; + } + + try { + if (objectDao.getBySql(TousseDefinition.class.getSimpleName(), sql) != null) { + isExist = true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return isExist; + } public boolean isExistDuplicateTousseDefinitionForDisplay(String tousseDefinitionId, String name, String supplierName){ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r12799 -r12809 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 12799) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 12809) @@ -150,12 +150,26 @@ try { String tousseDefinitionId = StrutsParamUtils.getPraramValue("validateId", null); String name = StrutsParamUtils.getPraramValue("valifateName", null); + String tousseType = StrutsParamUtils.getPraramValue("tousseType", null); String companyName = StrutsParamUtils.getPraramValue( "valifateCompanyId", null); String message = "{success:true,message:'验证成功',stauts:1}"; - boolean isExistDuplicate = tousseDefinitionManager.isExistDuplicateTousseDefinition(tousseDefinitionId, - name, companyName); - if (isExistDuplicate) { + if(tousseType == null){ + tousseType = ""; + } + switch(tousseType){ + case TousseDefinition.PACKAGE_TYPE_DISINFECTION: + validateDuplicateTousseDefinitionForSaveDisinfection(); + return; + } + try { + boolean isExistDuplicate = tousseDefinitionManager.isExistDuplicateTousseDefinition(tousseDefinitionId, + name, companyName); + if (isExistDuplicate) { + message = "{success:false,message:'存在相同名字的器械包,请使用其它名称',stauts:0}"; + } + } catch (Exception e) { + e.printStackTrace(); message = "{success:false,message:'存在相同名字的器械包,请使用其它名称',stauts:0}"; } HttpServletResponse response = StrutsParamUtils.getResponse(); @@ -165,6 +179,62 @@ e.printStackTrace(); } } + // + public void validateDuplicateTousseDefinitionForSaveDisinfection() { + try { + String tousseDefinitionId = StrutsParamUtils.getPraramValue("validateId", null); + String name = StrutsParamUtils.getPraramValue("valifateName", null); + JSONObject json = new JSONObject(); + json.put("success", false); + json.put("stauts", 0); + try { + boolean isExistDuplicate = tousseDefinitionManager.isExistDuplicateTousseDefinitionForSaveDisinfection(tousseDefinitionId,name); + if (isExistDuplicate) { + json.put("message", "存在相同名字的器械包,请使用其它名称"); + }else{ + json.put("success", true); + json.put("message", "验证成功"); + json.put("stauts", 1); + } + } catch (Exception e) { + e.printStackTrace(); + json.put("message", e.getMessage()); + } + HttpServletResponse response = StrutsParamUtils.getResponse(); + response.setCharacterEncoding("UTF-8"); + response.getWriter().println(json.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + // 检查消毒物品 + public void validateDisinfectionTousseDefinitionName() { + try { + String tousseDefinitionId = StrutsParamUtils.getPraramValue("validateId", null); + String name = StrutsParamUtils.getPraramValue("valifateName", null); + JSONObject json = new JSONObject(); + json.put("success", false); + json.put("stauts", 0); + try { + boolean isExistDuplicate = tousseDefinitionManager.isExistDuplicateCustomTousseDefinition(tousseDefinitionId,name); + if (isExistDuplicate) { + json.put("message", "存在相同名字的器械包,请使用其它名称"); + }else{ + json.put("success", true); + json.put("message", "验证成功"); + json.put("stauts", 1); + } + } catch (Exception e) { + e.printStackTrace(); + json.put("message", e.getMessage()); + } + HttpServletResponse response = StrutsParamUtils.getResponse(); + response.setCharacterEncoding("UTF-8"); + response.getWriter().println(json.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } /** * 打印器械包定义条码 Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/customTousseForm.js =================================================================== diff -u -r12332 -r12809 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/customTousseForm.js (.../customTousseForm.js) (revision 12332) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/customTousseForm.js (.../customTousseForm.js) (revision 12809) @@ -665,7 +665,7 @@ top.Ext.getCmp("depart").enable(); } Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!validate.do', + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!validateCustomTousseDefinitionName.do', params : {validateId : tousseId,valifateName:top.Ext.getCmp('name').getValue()}, success : function(response, options) { var result = Ext.decode(response.responseText); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r12806 -r12809 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 12806) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 12809) @@ -962,10 +962,17 @@ return (DisposableGoodsBatch) objectDao.getBySql( DisposableGoodsBatch.class.getSimpleName(), sql); } - public DisposableGoodsStock getDisposableGoodsStockByDisposableGoodsID(Long warehouseID,Long disposableGoodsID){ - String sql = String.format( - " where po.disposableGoodsID=%s", - disposableGoodsID); + + public DisposableGoodsStock getDisposableGoodsStockByDisposableGoodsID( + Long warehouseID, Long disposableGoodsID) { + if (!DatabaseUtil.isPoIdValid(warehouseID) + || !DatabaseUtil.isPoIdValid(disposableGoodsID)) { + return null; + } + String sql = String.format(" where %s and %s", SqlUtils + .getLongFieldPredicate("po.disposableGoodsID", + disposableGoodsID), SqlUtils.getLongFieldPredicate( + "po.warehouseID", warehouseID)); return (DisposableGoodsStock) objectDao.getBySql( DisposableGoodsStock.class.getSimpleName(), sql); } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js =================================================================== diff -u -r12799 -r12809 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js (.../tousseForm.js) (revision 12799) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js (.../tousseForm.js) (revision 12809) @@ -1810,9 +1810,10 @@ } var validateId = (TousseName ==null? top.Ext.getCmp('id').getValue():null); var validateName = (TousseName ==null? top.Ext.getCmp('name').getValue():TousseName); + var tousseType = top.Ext.getCmp('tousseType').getValue(); Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!validate.do', - params : {validateId :validateId,valifateName:validateName}, + params : {validateId :validateId,valifateName:validateName,tousseType: tousseType}, success : function(response, options) { var result = Ext.decode(response.responseText); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r12799 -r12809 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 12799) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 12809) @@ -37,6 +37,10 @@ public boolean isExistDuplicateTousseDefinition(String id, String name, String companyName); + public boolean isExistDuplicateCustomTousseDefinition(String id, String name); + + public boolean isExistDuplicateTousseDefinitionForSaveDisinfection(String id, String name); + public boolean isExistDuplicateTousseDefinitionForDisplay(String id, String name, String companyName); Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r12804 -r12809 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 12804) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 12809) @@ -3400,38 +3400,25 @@ private Collection getDisinfectionTousseInstance( List invoicePlans, TousseDefinition tousseDefinition) { - Set tousseNames = new HashSet(); String tousseDefinitionName = tousseDefinition.getName(); - String tousseDefinitionRawName = TousseDefinitionUtils - .getTousseRawName(tousseDefinitionName); + Set invoicePlanIDSet = new HashSet(); if (invoicePlans != null) { for (InvoicePlan invoicePlan : invoicePlans) { - for (TousseItem applicationItem : invoicePlan - .getApplicationItems()) { - String tousseName = applicationItem.getTousseName(); - String tousseRawName = TousseDefinitionUtils - .getTousseRawName(tousseName); - - if (StringUtils.equals(tousseRawName, - tousseDefinitionRawName)) { - tousseNames.add(tousseName); - } - } + invoicePlanIDSet.add(invoicePlan.getId()); } } - if (tousseNames.isEmpty()) { + if (invoicePlanIDSet.isEmpty()) { return null; } String sql = null; - String tousseNameForLikeSearch = "'%" + tousseDefinitionRawName + "_%'"; sql = String - .format(" where (%s) or (po.tousseName like %s and po.tousseFixedBarcode=false and po.tousseDefinition.materialsMD5 in(select t.materialsMD5 from %s t where %s))", - SqlUtils.getStringFieldInCollectionsPredicate( - "po.tousseName", tousseNames), - tousseNameForLikeSearch, TousseDefinition.class + .format(" where (%s and po.tousseFixedBarcode=false and po.tousseDefinition.materialsMD5 in(select t.materialsMD5 from %s t where %s and %s))", + SqlUtils.getStringFieldPredicate("po.tousseName", + tousseDefinitionName), TousseDefinition.class .getSimpleName(), SqlUtils - .getStringFieldInCollectionsPredicate( - "t.name", tousseNames)); + .getStringFieldPredicate("t.name",tousseDefinitionName), SqlUtils + .getNonStringFieldInCollectionsPredicate( + "t.invoicePlanID", invoicePlanIDSet)); Collection result = tousseInstanceManager .getTousseInstanceBySql(sql); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManagerImpl.java =================================================================== diff -u -r12331 -r12809 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManagerImpl.java (.../BeCleanItemManagerImpl.java) (revision 12331) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManagerImpl.java (.../BeCleanItemManagerImpl.java) (revision 12809) @@ -875,6 +875,8 @@ } else if (Container.CONTAINER_STATUS_WASHED.equals(container .getStatus())) { classifyBasket = getLatestWashedBasketByBarcode(barcode); + }else{ + return "notUsed"; } return loadContainerContent(classifyBasket, isLoadDefaultCleanMethod); }