Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r25246 -r25521 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 25246) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 25521) @@ -2,7 +2,6 @@ import java.io.IOException; import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; @@ -80,6 +79,8 @@ import com.forgon.disinfectsystem.vo.RecyclingApplicationVo; import com.forgon.disinfectsystem.vo.TousseItemVo; import com.forgon.log.enums.ApplicationLogStatusEnum; +import com.forgon.log.model.Log; +import com.forgon.log.service.LogManager; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.MathTools; @@ -148,8 +149,9 @@ private OrgUnitManager orgUnitManager; private WareHouseManager wareHouseManager; - + private LogManager appLogManager; + public void setWareHouseManager(WareHouseManager wareHouseManager) { this.wareHouseManager = wareHouseManager; } @@ -210,6 +212,10 @@ this.projectManager = projectManager; } + public void setAppLogManager(LogManager appLogManager) { + this.appLogManager = appLogManager; + } + public void setIds(String ids) { this.ids = ids; } @@ -485,6 +491,10 @@ // 检查并创建还物单或通用申请单 private JSONObject createReturnApplicationOrRecyclingApplication() { + Collection srcTousseItemVoList = getTousseItemVos(); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_APPLICATION, Log.TYPE_ADD, + "保存申请单:recyclingApplication=" + JSONUtil.toJsonObjecttWithSimpleProperty(recyclingApplication) + + ",tousseItems=" + JSONUtil.toJsonArraytWithSimpleProperty(srcTousseItemVoList)); //验证科室名称和科室编码是否一致 if (!validateDepartment(recyclingApplication.getDepartCoding(), recyclingApplication.getDepart())) { return JSONUtil.buildJsonObject(false, "申请科室名称和科室编码不一致,请联系系统管理员!"); @@ -495,7 +505,7 @@ if (!validateDepartment(recyclingApplication.getHandleDepartCoding(), recyclingApplication.getHandleDepart())) { return JSONUtil.buildJsonObject(false, "处理科室名称和科室编码不一致,请联系系统管理员!"); } - + //设置includeSpecifyDisposableTypes属性 String specifyDisposableTypes = StrutsParamUtils.getPraramValue("specifyDisposableTypes", ""); if (recyclingApplication.isDiposableGoodsAppliaction() && StringTools.isNotBlank(specifyDisposableTypes)) { @@ -507,7 +517,6 @@ } } - Collection srcTousseItemVoList = getTousseItemVos(); Map> checkList = new HashMap<>(); checkList.put(TousseDefinition.PACKAGE_TYPE_INSIDE, new ArrayList<>()); @@ -516,12 +525,15 @@ //遍历提交的数据,如果加急数量大于申请数量则提示失败 JSONArray urgentItems = new JSONArray(); JSONArray tempItemsForTest = new JSONArray(); //用于调试程序 + //申请项的类型 + Set tousseTypesForTousseItem = new HashSet(); for (TousseItemVo tousseItemVo : srcTousseItemVoList) { JSONObject tempObj = new JSONObject(); tempObj.put("tousseDefinitionId", tousseItemVo.getTousseDefinitionID()); tempObj.put("tousseName", tousseItemVo.getTousseName()); tempObj.put("tousseType", tousseItemVo.getTousseType()); tempItemsForTest.add(tempObj); + tousseTypesForTousseItem.add(tousseItemVo.getTousseType()); Integer urgentAmount = tousseItemVo.getUrgentAmount(); if (!tousseItemVo.disposable() && urgentAmount != null && urgentAmount.intValue() > 0) { @@ -540,6 +552,28 @@ return repeatObj; } } + //如果单类型与物品类型出现不相匹配的时,给出失败的提示 + if(recyclingApplication.isTousseAppliaction()){ + //1.器械包申请单必须有且只有器械包、消毒物品、敷料包其中的一种类型物品,不允许有其它类型的物品 + if(!tousseTypesForTousseItem.contains(TousseDefinition.PACKAGE_TYPE_INSIDE) + && !tousseTypesForTousseItem.contains(TousseDefinition.PACKAGE_TYPE_DISINFECTION) + && !tousseTypesForTousseItem.contains(TousseDefinition.PACKAGE_TYPE_DRESSING)){ + return JSONUtil.buildJsonObject(false, "器械包申请单必须申请器械包、消毒物品、敷料包中的其中至少一种类型物品"); + } + if(tousseTypesForTousseItem.contains(DisposableGoods.TYPE_NAME)){ + return JSONUtil.buildJsonObject(false, "器械包申请单不能申请一次性物品"); + } + }else if(recyclingApplication.isDisinfectGoodsAppliaction()){ + //2.消毒物品申请单必须有且只有消毒物品,不允许有其它类型的物品 + if(!tousseTypesForTousseItem.contains(TousseDefinition.PACKAGE_TYPE_DISINFECTION) || tousseTypesForTousseItem.size() > 1){ + return JSONUtil.buildJsonObject(false, "消毒物品申请单必须且只能申请消毒物品,不能申请其它类型物品"); + } + }else if(recyclingApplication.isDiposableGoodsAppliaction()){ + //3.一次性物品申请单必须有且只有一次性物品,不允许有其它类型的物品 + if(!tousseTypesForTousseItem.contains(DisposableGoods.TYPE_NAME) || tousseTypesForTousseItem.size() > 1){ + return JSONUtil.buildJsonObject(false, "一次性物品申请单必须且只能申请一次性物品,不能申请其它类型物品"); + } + } boolean autoReturnTheBorrowingTousse = "true".equals(StrutsParamUtils .getPraramValue("autoReturnTheBorrowingTousse", "").trim());