Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r13430 -r13431 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 13430) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 13431) @@ -1373,7 +1373,7 @@ + "td.id as tousseDefinitionId,td.name,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable," + "td.isPrint,td.isReview,td.note,td.uuid_vedioNames,td.isUploadVideo,td.supplierName from PackingTask as po , CssdHandleTousses as ct , TousseDefinition as td " + "where po.tousseDefinition_id = ct.tousseDefinitionId and ct.tousseDefinitionId=td.id and po.orgUnitCoding = ct.orgUnitCode " - + "and td.taskGroup = '"+taskGroup+"' and po.orgUnitCoding = '" + orgCode + "'"; + + "and ct.taskGroup = '"+taskGroup+"' and po.orgUnitCoding = '" + orgCode + "'"; if(StringUtils.isNotBlank(basketBarcode)){ //验证篮筐是否清洗 Container basket = containerManager Index: ssts-web/src/main/java/com/forgon/disinfectsystem/component/grid/GridManagerImpl.java =================================================================== diff -u -r13181 -r13431 --- ssts-web/src/main/java/com/forgon/disinfectsystem/component/grid/GridManagerImpl.java (.../GridManagerImpl.java) (revision 13181) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/component/grid/GridManagerImpl.java (.../GridManagerImpl.java) (revision 13431) @@ -30,6 +30,7 @@ import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.tools.MathTools; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; @@ -171,9 +172,9 @@ List list = objectDao .findBySql(poClass, sql, start, pageSize, orderStr); - //如果是材料定义,则库存根据当前科室查找 + String orgUnitCoding = AcegiHelper.getCurrentOrgUnitCode(); + //如果查询材料定义,则库存根据当前科室查找 if(MaterialDefinition.class.getSimpleName().equals(poClass) && CollectionUtils.isNotEmpty(list)){ - String orgUnitCoding = AcegiHelper.getCurrentOrgUnitCode(); for(Object obj : list){ MaterialDefinition md = (MaterialDefinition)obj; ResultSet rs = @@ -193,6 +194,28 @@ md.setStorage(new Long(totalAmount)); } } + + //如果为包实例,且条件有任务组时(只过滤出本任务组的器械包实例) + if(TousseInstance.class.getSimpleName().equals(poClass) && CollectionUtils.isNotEmpty(list)){ + //任务组条件 + Map sqlWhereParamMap = getParamFromView(parameterMap); + String taskGroup = sqlWhereParamMap.get("taskGroup"); + if (StringUtils.isNotBlank(taskGroup)) { + List tousseInstanceList = new ArrayList(); + for(Object obj : list){ + TousseInstance tousseInstance = (TousseInstance)obj; + if(StringUtils.equals(taskGroup, getTousseTaskGroupByOrgUnitCode(tousseInstance.getTousseDefinition(),orgUnitCoding))){ + tousseInstance.setTaskGroup(taskGroup); + tousseInstanceList.add(tousseInstance); + } + } + list = tousseInstanceList; + + //数量重新计算 + totalResults = objectDao.countBySql("select count(0) from TousseInstance ti join CssdHandleTousses ct on ti.tousseDefinition_id=ct.tousseDefinitionId " + + "where ti.status = '" + TousseInstance.STATUS_PACKED + "' and ct.taskGroup='" + taskGroup + "' and ct.orgUnitCode='" + orgUnitCoding + "'"); + } + } Map map = new HashMap(); map.put("totalResults", totalResults); @@ -202,6 +225,28 @@ return map; } + /** + * 根据科室编码及包定义查询其任务组 + * @param orgUnitCoding + * @return + */ + private String getTousseTaskGroupByOrgUnitCode(TousseDefinition td, String orgUnitCoding){ + String taskGroup = td.getTaskGroup(); + String sql = "select ct.taskGroup from CssdHandleTousses ct where ct.tousseDefinitionId = " + td.getId(); + ResultSet rs = null; + try{ + rs = objectDao.executeSql(sql); + while(rs.next()){ + taskGroup = rs.getString("taskGroup"); + } + }catch(Exception e){ + + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + return taskGroup; + } + public String renderGrid2(Map parameterMap, String poClass, String sql, String[] filterProperties) { Map map = getObjectList2(parameterMap, poClass, sql,