Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r15518 -r15529 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 15518) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 15529) @@ -19,9 +19,11 @@ import java.util.Map.Entry; import java.util.Set; import java.util.stream.Collectors; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; + import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections4.Closure; import org.apache.commons.collections4.CollectionUtils; @@ -36,6 +38,7 @@ import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; + import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; @@ -4017,34 +4020,11 @@ // } // 根据器械包实例的条码,获取包含该器械包的待回收的申请单的ID,取满足条件的第一张申请单 - public String getWaitingRecycleApplicationIdContaintTousseInstance(String instantceBarcode){ - - String id = ""; - try{ - Session session = objectDao.getHibernateSession(); - - Query query = session - .createQuery("select po.id from RecyclingApplication po,InvoicePlan bo where po.id = bo.id and bo.recyclingStatus != '" - + InvoicePlan.RECYCLINGSTATUS_RECYCLED - + "' and bo.committedStatus = 1 and bo.endStatus is null and po.tousseBarcodes like :barcode"); - - query.setString("barcode", "%;" - + instantceBarcode + ";%"); - - @SuppressWarnings("unchecked") - List rows = query.list(); - - if ( rows != null && rows.size() > 0){ - Long foundId = (Long)rows.get(0); - - if (foundId != null) { - id = foundId.toString(); - } - } - }catch(Exception e){ - e.printStackTrace(); - } - return id; + public RecyclingApplication getWaitingRecycleApplicationIdContaintTousseInstance(String instantceBarcode){ + String sql = String + .format("where po.recyclingStatus != '%s' and po.committedStatus = 1 and po.endStatus is null and po.tousseBarcodes like '%%%s%%'", + InvoicePlan.RECYCLINGSTATUS_RECYCLED, instantceBarcode); + return (RecyclingApplication)objectDao.getBySql(RecyclingApplication.class.getSimpleName(), sql); } // 保存消毒物品申请单 Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r15493 -r15529 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 15493) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 15529) @@ -284,14 +284,30 @@ if(tousseInstance != null){ - id = recyclingApplicationManager.getWaitingRecycleApplicationIdContaintTousseInstance(tousseInstance.getBarcode()); - - if (StringUtils.isBlank(id)){ - //获取提示信息 - if(tousseInstance.getUseRecord_id() != null){ - UseRecord useRecord = (UseRecord)objectDao.getByProperty(UseRecord.class.getSimpleName(), "id", tousseInstance.getUseRecord_id()); - if(useRecord != null && StringUtils.isNotBlank(useRecord.getStatus())){ - switch(useRecord.getStatus()){ + RecyclingApplication application = recyclingApplicationManager + .getWaitingRecycleApplicationIdContaintTousseInstance(tousseInstance + .getBarcode()); + if (application != null) { + id = application.getId().toString(); + String handleDepartCoding = AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig(); + if (StringUtils.isNotBlank(handleDepartCoding) + && !handleDepartCoding.equals(application + .getHandleDepartCoding())) { + message = "该器械包关联的申请单处理科室与当前登录科室不一致!"; + } else { + message = ""; + } + } else { + // 获取提示信息 + if (tousseInstance.getUseRecord_id() != null) { + UseRecord useRecord = (UseRecord) objectDao + .getByProperty(UseRecord.class.getSimpleName(), + "id", tousseInstance.getUseRecord_id()); + if (useRecord != null + && StringUtils + .isNotBlank(useRecord.getStatus())) { + switch (useRecord.getStatus()) { case UseRecord.STATUS_UNAUDITED: message = "该器械包的使用记录未审核,请审核后再回收"; break; @@ -304,8 +320,6 @@ } } } - }else{ - message = ""; } } } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r15518 -r15529 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 15518) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 15529) @@ -31,7 +31,7 @@ public RecyclingApplication getRecyclingApplicationById(String id); // 根据器械包实例的条码,获取包含该器械包的待回收的申请单 - public String getWaitingRecycleApplicationIdContaintTousseInstance(String instantceBarcode); + public RecyclingApplication getWaitingRecycleApplicationIdContaintTousseInstance(String instantceBarcode); public InvoicePlan getRecyclingApplicationByIdForRecycle(String id); public RecyclingApplication findRecyclingApplicationBySql(String sql);