Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java =================================================================== diff -u -r26543 -r26565 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 26543) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 26565) @@ -194,7 +194,6 @@ import com.forgon.tools.Path; import com.forgon.tools.SpringBeanManger; import com.forgon.tools.SqlBuilder; -import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -4327,9 +4326,9 @@ * @param departCode 科室 * @param startDate 申请开始时间 * @param endDate 申请结束时间 - * @param firstIndex 结果集的开始下标(注意从0开始取值)????? 还是等于(pageNo-1)*pageSize?? + * @param first 结果集的开始下标(注意从0开始取值)????? 还是等于(pageNo-1)*pageSize?? * 请参照PDA获取清洗记录的方法getWashRecordList的同名参数firstIndex - * @param maxResultCount 每页显示条数 + * @param count 每页显示条数 * @param invoicePlanType 申请单类型,多种则,号分隔 * @return */ @@ -4338,21 +4337,14 @@ if (StringUtils.isBlank(departCode)) { return JSONUtil.buildErrorMsgJsonResult("缺失参数departCode"); } - /* - //时间过滤 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date startDate = null; - Date endDate = null; - try { - startDate = sdf.parse(params.optString("startDate")); - endDate = sdf.parse(params.optString("endDate")); - } catch (ParseException e) { - e.printStackTrace(); - } - String dataSql = String.format(" and applicationTime between %s and %s ", dateQueryAdapter.dateAdapter(startDate), dateQueryAdapter.dateAdapter(endDate)); - */ - int firstIndex = params.optInt("firstIndex"); - int maxResultCount = params.optInt("maxResultCount"); + //1、当前登录用户的过滤(即:1、处理科室为自己所属科室的单 2、自己填的单 3、申请科室为自己所属科室的单 + LoginUserData loginUserData = AcegiHelper.getLoginUser(); + String currentOrgUnitCode = loginUserData.getCurrentOrgUnitCode(); + String userName = loginUserData.getUserName(); + String loginUserSql = String.format(" ((po.handleDepartCoding = '%s' and po.committedStatus = 1) or po.applicantCode='%s' or po.departCoding='%s' ) and ", + currentOrgUnitCode, userName, departCode); + int firstIndex = params.optInt("first"); + int maxResultCount = params.optInt("count"); String invoicePlanType = params.optString("invoicePlanType"); String typeSql = ""; Set tousseTypeSet = new HashSet(); @@ -4363,9 +4355,7 @@ } typeSql = " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("type", tousseTypeSet); } - - String sql = String.format("where po.departCoding='%s' and " - + "po.deliverStatus!='%s' %s ", departCode, InvoicePlan.STATUS_END, typeSql); + String sql = String.format("where %s po.deliverStatus!='%s' %s ",loginUserSql, InvoicePlan.STATUS_END, typeSql); Collection invoicePlans = objectDao.findBySql( InvoicePlan.class.getSimpleName(), sql, firstIndex, maxResultCount, "applicationTime desc");