Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r33801 -r33804 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33801) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33804) @@ -8307,7 +8307,7 @@ public void getBarcodeInfo(Map map, String recyclingRecordId, String formType, String barcode, Long invoicePlanId) throws Exception { try { //单据类型 - OrgUnit orgUnit = null; + JSONObject orgUnit = null; ClassifyBasket classifyBasket = null; TousseInstance tousseInstance = null; User user = null; @@ -8326,10 +8326,10 @@ JSONObject tousseInstanceOrgUnit = null;//器械包对应的科室,用来回收扫码标识牌或包实例时,自动填入科室。如果包的状态为已使用,则取该包所在的使用记录的录入科室;包的状态为已签收,则取签收科室;包的状态为已发货,则取发货到的科室。 Exception exception = null; out : if (StringUtils.isNotBlank(barcode)) { - orgUnit = orgUnitManager.getOrgUnitByBarcode(barcode); + orgUnit = orgUnitManager.getOrgUnitJsonByBarcode(barcode); if (orgUnit != null) { - if(orgUnit.getStatus() != null && OrgUnit.STATUS_DISABLED.intValue() == orgUnit.getStatus().intValue()){ - errorMessage = "【" + orgUnit.getName() + "】已经停用,请扫描其它科室条码"; + if(OrgUnit.STATUS_DISABLED.intValue() == orgUnit.optInt("status")){ + errorMessage = "【" + orgUnit.optString("name") + "】已经停用,请扫描其它科室条码"; } } else { BarcodeDevice barcodeDevice = barcodeManager Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r33761 -r33804 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 33761) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 33804) @@ -301,5 +301,11 @@ * @return */ public List getTousseDefinitionBelongOrgUnitCodeBytdId(String tousseDefinitionId); - + /** + * 通过条码获取科室的部分属性 只获取状态名称科室编码。(后续加其他的属性请注意性能问题,特别是一些对象 数组之类的,不要影响其他调用的地方的性能) + * status为null时 值赋为1 + * @param barcode 科室条码 + * @return + */ + public JSONObject getOrgUnitJsonByBarcode(String barcode); } Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r33761 -r33804 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 33761) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 33804) @@ -2340,5 +2340,35 @@ return belongOrgUnitCodeList; } - + @Override + public JSONObject getOrgUnitJsonByBarcode(String barcode) { + ResultSet result = objectDao.executeSql("select name,orgUnitCoding,status from " + + OrgUnit.class.getSimpleName() + + " ou join " + + BarcodeDevice.class.getSimpleName() + +" bd on bd.id=ou.barcodeDevice_id where bd.barcode='"+ + barcode + +"'"); + JSONObject orgUnit = null; + OrgUnit o = new OrgUnit(); + try { + while(result.next()){ + orgUnit = new JSONObject(); + orgUnit.put("name", result.getString("name")); + orgUnit.put("orgUnitCoding", result.getString("orgUnitCoding")); + Object statusObj = result.getObject("status"); + if(statusObj == null){ + orgUnit.put("status", 1); + }else{ + orgUnit.put("status", result.getInt("status")); + } + break; + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + return orgUnit; + } }