Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r15810 -r15856 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 15810) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 15856) @@ -16,6 +16,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import com.beust.jcommander.ParameterException; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -2350,4 +2351,40 @@ } return 0L; } + + @Override + public JSONObject validateRepeatedTd(Map> checkList, TousseItemVo tousseItemVo) { + //根据类型去判断对应的list是否存在重复的申请物品 + if (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseItemVo.getTousseType())){ + return this.validateRepeatedList(checkList.get(TousseDefinition.PACKAGE_TYPE_INSIDE), tousseItemVo); + } + else if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseItemVo.getTousseType())){ + return this.validateRepeatedList(checkList.get(TousseDefinition.PACKAGE_TYPE_DISINFECTION), tousseItemVo); + } + else if (DisposableGoods.TYPE_NAME.equals(tousseItemVo.getTousseType())){ + return this.validateRepeatedList(checkList.get(DisposableGoods.TYPE_NAME), tousseItemVo); + } + return null; + } + + /** + * 校验是否存在重复的物品 + * @param list 要校验的对应的list + * @param tousseItemVo + * @return + */ + private JSONObject validateRepeatedList(List list, TousseItemVo tousseItemVo){ + if (StringUtils.isBlank(tousseItemVo.getTousseName())){ + throw new ParameterException("器械包名字不能为空!"); + } + if (!list.contains(tousseItemVo.getTousseName())){ + list.add(tousseItemVo.getTousseName()); + return null; + } + else { + logger.debug("list:" + list); + return JSONUtil.buildJsonObject(false, "已存在:" + tousseItemVo.getTousseName() + ",请不要重复添加!"); + } + } + } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r15249 -r15856 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 15249) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 15856) @@ -281,4 +281,13 @@ * @return */ public Long getAncestorIdOrId(TousseDefinition tousseDefinition); + + /** + * 校验页面提交的数据,是否包含重复的物品(暂时用名字来判断,不能能用tousseDefinitionID来判断, + * 如果申请的是消毒物品,tousseDefinitionID在页面提交的值和保存到数据库的值是不一样的) + * @param checkList 要校验的list 这个map里面有三种list,器械包,一次性物品,消毒物品 + * @param tousseItemVo 页面的数据vo + * @return + */ + JSONObject validateRepeatedTd(Map> checkList, TousseItemVo tousseItemVo); } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r15749 -r15856 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 15749) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 15856) @@ -36,6 +36,7 @@ import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; import com.forgon.tools.json.JsonPropertyFilter; import com.forgon.tools.string.StringTools; import com.google.common.reflect.TypeToken; @@ -438,12 +439,21 @@ private JSONObject createReturnApplicationOrRecyclingApplication() { Collection srcTousseItemVoList = getTousseItemVos(); + Map> checkList = new HashMap<>(); + checkList.put(TousseDefinition.PACKAGE_TYPE_INSIDE, new ArrayList<>()); + checkList.put(TousseDefinition.PACKAGE_TYPE_DISINFECTION, new ArrayList<>()); + checkList.put(DisposableGoods.TYPE_NAME, new ArrayList<>()); //遍历提交的数据,如果加急数量大于申请数量则提示失败 for (TousseItemVo tousseItemVo : srcTousseItemVoList) { JSONObject jsonObject = tousseDefinitionManager.handleUrgentAmountAndAmount(tousseItemVo); if (jsonObject != null){ return jsonObject; } + //校验提交的数据是否存在相同名字的器械包 + JSONObject repeatObj = tousseDefinitionManager.validateRepeatedTd(checkList, tousseItemVo); + if (repeatObj != null){ + return repeatObj; + } } boolean autoReturnTheBorrowingTousse = "true".equals(StrutsParamUtils