Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingapplication/RecyclingApplication.java =================================================================== diff -u -r17875 -r18041 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingapplication/RecyclingApplication.java (.../RecyclingApplication.java) (revision 17875) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingapplication/RecyclingApplication.java (.../RecyclingApplication.java) (revision 18041) @@ -4,7 +4,6 @@ import java.util.List; import javax.persistence.CascadeType; -import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Index; @@ -23,6 +22,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.forgon.Constants; +import com.forgon.directory.model.CssdHandleTousses; +import com.forgon.directory.model.CssdServiceDepts; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; @@ -292,6 +293,12 @@ continue; } } + + //判断包实例被转换后的申请单的处理科室与该申请单的处理科室不一致时,则continue本轮循环,进入下一轮循环 + if(!StringUtils.equals(getTousseInstanceConvertApplicationHandleDepartCode(objectDao, getUseRecord().getDepartCoding() , tousseInstance) , getHandleDepartCoding())){ + continue; + } + TousseItem currentTousseItem = null; if(CollectionUtils.isNotEmpty(tousseItemList)){ boolean foundTousseItem = false; @@ -418,4 +425,28 @@ } return null; } + + /** + * 根据器械包实例与使用记录录入科室查询该物品转换生成申请单的处理科室 + * @return + */ + @Transient + private String getTousseInstanceConvertApplicationHandleDepartCode(ObjectDao objectDao , String useRecordDepartCode , TousseInstance tousseInstance){ + //处理科室 + String handleDepartCode = tousseInstance.getTousseDefinition().getHandlerDepartCode(); + String condition = " where po.tousseDefinitionId="+ tousseInstance.getTousseDefinition().getId() + +" and po.orgUnitCode in (select cssdOrgUnitCode from "+ CssdServiceDepts.class.getSimpleName() + +" csd where csd.cssdOrgUnitCode = po.orgUnitCode " + +" and csd.clinicOrgUnitCode='"+ useRecordDepartCode + +"' and csd.tousseType='"+ CssdServiceDepts.TOUSSETYPE_TOUSSE +"')"; + @SuppressWarnings("unchecked") + List cssdHandleToussesList = objectDao.findBySql(CssdHandleTousses.class.getSimpleName(), condition); + if(CollectionUtils.isNotEmpty(cssdHandleToussesList) && cssdHandleToussesList.size() == 1){ + CssdHandleTousses cssdHandleTousses = cssdHandleToussesList.get(0); + if(StringUtils.isNotBlank(cssdHandleTousses.getOrgUnitCode())){ + handleDepartCode = cssdHandleTousses.getOrgUnitCode(); + } + } + return handleDepartCode; + } }