Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r13940 -r14240 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 13940) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 14240) @@ -570,45 +570,75 @@ if (StringUtils.isNotBlank(barcode)) { BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(barcode); if (bd != null) { + //检测器械包所属科室是否与当前用户所在科室为物品共用科室 + String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); if (bd instanceof TousseInstance) { TousseInstance ti = (TousseInstance) bd; // 检测该器械包有没有被召回 if (TousseInstance.STATUS_WAIT_FOR_RECALL.equals(ti.getStatus()) || TousseInstance.STATUS_RECALLED.equals(ti.getStatus())) { obj.put("msg", "该器械包不能被使用,已被召回!"); } else { - //检测器械包所属科室是否与当前用户所在科室为物品共用科室 - String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); - if(!goodsDepartShareConfigManager.canShareGoodsforTwoDepart(currentOrgUnitCode, ti.getLocation())){ - obj.put("msg", "该器械包所属科室为" + ti.getLocationForDisplay() + ",未配置与当前科室共用,不能录入使用记录!"); + //判断当前用户登录科室是否存在共用科室配置 + if(CollectionUtils.isNotEmpty(goodsDepartShareConfigManager.getGoodsShareDepartList(currentOrgUnitCode))){ + //判断包实例所属科室是否与当前用户登录科室配置物品共享 + if(goodsDepartShareConfigManager.canShareGoodsforTwoDepart(currentOrgUnitCode, ti.getLocation())){ + String validUntilStr = ti.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD); + TousseDefinition td = ti.getTousseDefinition(); + String tousseDefinitionName = ""; + String tousseType = ""; + if (td != null) { + tousseType = td.getTousseType(); + tousseDefinitionName = td.getName(); + } + obj.put("id", ti.getId()); + obj.put("barcode", ti.getBarcode()); + obj.put("tousseDefinitionName", tousseDefinitionName); + obj.put("showTousseName", ti.getShowTousseName()); + obj.put("packageType", ti.getPackageType()); + obj.put("validUntil", validUntilStr); + obj.put("status", ti.getStatus()); + obj.put("location",ti.getLocation()); + obj.put("locationForDisplay",ti.getLocationForDisplay()); + obj.put("materials", null); + obj.put("foreignTousseApp_id",ti.getForeignTousseApp_id()); + obj.put("tousseType", tousseType); + }else{ + obj.put("msg", "该器械包所属科室为" + ti.getLocationForDisplay() + ",未配置与当前科室共用,不能录入使用记录!"); + } }else{ - String validUntilStr = ti.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD); - TousseDefinition td = ti.getTousseDefinition(); - String tousseDefinitionName = ""; - String tousseType = ""; - if (td != null) { - tousseType = td.getTousseType(); - tousseDefinitionName = td.getName(); + //判断包实例所在位置与当前用户所在科室是否一致 + if(StringUtils.equals(currentOrgUnitCode, ti.getLocation())){ + String validUntilStr = ti.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD); + TousseDefinition td = ti.getTousseDefinition(); + String tousseDefinitionName = ""; + String tousseType = ""; + if (td != null) { + tousseType = td.getTousseType(); + tousseDefinitionName = td.getName(); + } + obj.put("id", ti.getId()); + obj.put("barcode", ti.getBarcode()); + obj.put("tousseDefinitionName", tousseDefinitionName); + obj.put("showTousseName", ti.getShowTousseName()); + obj.put("packageType", ti.getPackageType()); + obj.put("validUntil", validUntilStr); + obj.put("status", ti.getStatus()); + obj.put("location",ti.getLocation()); + obj.put("locationForDisplay",ti.getLocationForDisplay()); + obj.put("materials", null); + obj.put("foreignTousseApp_id",ti.getForeignTousseApp_id()); + obj.put("tousseType", tousseType); + }else{ + obj.put("msg", "该器械包所属科室为" + ti.getLocationForDisplay() + ",不能录入使用记录!"); } - obj.put("id", ti.getId()); - obj.put("barcode", ti.getBarcode()); - obj.put("tousseDefinitionName", tousseDefinitionName); - obj.put("showTousseName", ti.getShowTousseName()); - obj.put("packageType", ti.getPackageType()); - obj.put("validUntil", validUntilStr); - obj.put("status", ti.getStatus()); - obj.put("location",ti.getLocation()); - obj.put("locationForDisplay",ti.getLocationForDisplay()); - obj.put("materials", null); - obj.put("foreignTousseApp_id",ti.getForeignTousseApp_id()); - obj.put("tousseType", tousseType); } } } else if (bd instanceof ExpensiveDisposablegoods) { // 高值耗材 ExpensiveDisposablegoods expensiveDisposablegoods = (ExpensiveDisposablegoods) bd; if(!ExpensiveDisposablegoods.STATUS_DELIVERED.equals(expensiveDisposablegoods.getStatus())){ obj.put("success", false); - obj.put("error", String.format("条码为[%s]的高值耗材状态不为%s,不能录使用记录", barcode,ExpensiveDisposablegoods.STATUS_DELIVERED)); + obj.put("error", String.format("条码为[%s]的高值耗材状态为%s,不能录使用记录", barcode,expensiveDisposablegoods.getStatus())); return; } @@ -652,12 +682,21 @@ obj.put("error", String.format("条码为[%s]的高值耗材所属科室与当前登录用户所属科室不一致", barcode)); return; }*/ - //检测器械包所属科室是否与当前用户所在科室为物品共用科室 - String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); - if(!goodsDepartShareConfigManager.canShareGoodsforTwoDepart(currentOrgUnitCode, expensiveDisposablegoods.getLocation())){ - obj.put("success", false); - obj.put("error", String.format("条码为[%s]的高值耗材所属科室为" + invoice.getDepart() + ",未配置与当前科室共用,不能录入使用记录!", barcode)); - return; + //判断当前用户登录科室是否存在共用科室配置 + if(CollectionUtils.isNotEmpty(goodsDepartShareConfigManager.getGoodsShareDepartList(currentOrgUnitCode))){ + //判断包实例所属科室是否与当前用户登录科室配置物品共享 + if(!goodsDepartShareConfigManager.canShareGoodsforTwoDepart(currentOrgUnitCode, expensiveDisposablegoods.getLocation())){ + obj.put("success", false); + obj.put("error", String.format("条码为[%s]的高值耗材所属科室为" + invoice.getDepart() + ",未配置与当前科室共用,不能录入使用记录!", barcode)); + return; + } + }else{ + //判断包实例所在位置与当前用户所在科室是否一致 + if(!StringUtils.equals(currentOrgUnitCode, expensiveDisposablegoods.getLocation())){ + obj.put("success", false); + obj.put("error", String.format("条码为[%s]的高值耗材所属科室为" + invoice.getDepart() + ",未配置与当前科室共用,不能录入使用记录!", barcode)); + return; + } } Long disposableGoodsBatchId = expensiveDisposablegoods.getDisposableGoodsBatchID();