Index: ssts-satisfactionsurvey/src/main/java/com/forgon/disinfectsystem/satisfactionsurvey/service/SatisfactionSurveyTemplateManagerImpl.java =================================================================== diff -u -r18722 -r21282 --- ssts-satisfactionsurvey/src/main/java/com/forgon/disinfectsystem/satisfactionsurvey/service/SatisfactionSurveyTemplateManagerImpl.java (.../SatisfactionSurveyTemplateManagerImpl.java) (revision 18722) +++ ssts-satisfactionsurvey/src/main/java/com/forgon/disinfectsystem/satisfactionsurvey/service/SatisfactionSurveyTemplateManagerImpl.java (.../SatisfactionSurveyTemplateManagerImpl.java) (revision 21282) @@ -2,11 +2,16 @@ import java.util.ArrayList; import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import com.forgon.Constants; import com.forgon.disinfectsystem.customform.formdefinition.service.FormDefinitionManager; import com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinition; + import net.sf.json.JSONArray; + import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.dao.DataAccessException; @@ -187,8 +192,33 @@ } sql += " and po.status='" + SatisfactionSurveyTemplate.STATUS_START + "' "; - return (List) objectDao.findBySql( - SatisfactionSurveyTemplate.class.getSimpleName(), sql); + + //获取所有填写过的满意度表 + @SuppressWarnings("unchecked") + List satisfactionSurveyTable = objectDao.findAllObjects(SatisfactionSurveyTable.class.getSimpleName()); + Set set = new HashSet(); //保存用户满意度调查模版ID用于后面的对比 + Set codes = new HashSet(); //保存用户满意度调查表的科室编号用于后面的对比 + for(SatisfactionSurveyTable st : satisfactionSurveyTable){ + set.add(st.getSatisfactionSurveyTemplateId()); //保存用户满意度调查模版ID + codes.add(st.getDepartCoding()); //保存用户满意度调查表的科室编号 + } + //用于保存不需要显示的满意度调查模版 + List deleteSut = new ArrayList(); + @SuppressWarnings("unchecked") + //获取满意度表定义信息需要提醒的所有记录 + List satisfactionSurveyTemplate = objectDao.getBySql_ForUpdate2 + (SatisfactionSurveyTemplate.class.getSimpleName(), sql); + for(SatisfactionSurveyTemplate sst : satisfactionSurveyTemplate){ + if(sst.getIsfillOutAlone().equals(Constants.STR_YES)){ //判断是否单独填写 + if(codes.contains(loginUserData.getCurrentOrgUnitCode())){ //对比登录科室是否有填写过调查表 + if(set.contains(sst.getId())){ //对比调查模版是否有填写过 + deleteSut.add(sst); //添加填写过的调查模版 + } + } + } + } + satisfactionSurveyTemplate.removeAll(deleteSut); //删除填写过的模版 + return satisfactionSurveyTemplate; } } @@ -235,9 +265,33 @@ if (StringUtils.isNotBlank(readerFilteringSq)) { sql = sql + " and " + readerFilteringSq; } - - return objectDao.countObjectBySql( - SatisfactionSurveyTemplate.class.getSimpleName(), sql); + //获取所有填写过的满意度表 + @SuppressWarnings("unchecked") + List satisfactionSurveyTable = objectDao.findAllObjects(SatisfactionSurveyTable.class.getSimpleName()); + Set set = new HashSet(); //保存用户满意度调查模版ID用于后面的对比 + Set codes = new HashSet(); //保存用户满意度调查表的科室编号用于后面的对比 + for(SatisfactionSurveyTable st : satisfactionSurveyTable){ + set.add(st.getSatisfactionSurveyTemplateId()); //保存用户满意度调查模版ID + codes.add(st.getDepartCoding()); //保存用户满意度调查表的科室编号 + } + //用于保存不需要显示的满意度调查模版 + List deleteSut = new ArrayList(); + @SuppressWarnings("unchecked") + //获取满意度表定义信息需要提醒的所有记录 + List satisfactionSurveyTemplate = objectDao.getBySql_ForUpdate2 + (SatisfactionSurveyTemplate.class.getSimpleName(), sql); + for(SatisfactionSurveyTemplate sst : satisfactionSurveyTemplate){ + if(sst.getIsfillOutAlone().equals(Constants.STR_YES)){ //判断是否单独填写 + if(codes.contains(loginUserData.getCurrentOrgUnitCode())){ //对比登录科室是否有填写过调查表 + if(set.contains(sst.getId())){ //对比调查模版是否有填写过 + deleteSut.add(sst); //添加填写过的调查模版 + } + } + } + } + satisfactionSurveyTemplate.removeAll(deleteSut); //删除填写过的模版 + int count = satisfactionSurveyTemplate.size(); //返回需要提醒的模版记录数 + return count; } public String convertAclFieldValueToDisplayValue(String alcFieldValue) {