From 652e492770cebcceed389eb7b33684c19aa5c4e0 Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Sat, 11 Jan 2025 21:06:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=95=B0=E6=8D=AE=E9=9A=94?= =?UTF-8?q?=E7=A6=BB=EF=BC=8Cbug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lSun <15893999301@qq.com> --- .../AttDetailByMonthController.java | 19 ++++ .../system/att/dao/AttendanceDetailsDao.java | 6 +- .../system/att/entity/AttDataDetailsBean.java | 5 + .../system/att/entity/AttDetailBean.java | 5 + .../basic/controller/SysUserController.java | 19 ++++ .../system/download/ExportFileController.java | 84 ++++++++++++++ .../wechat/controller/WechatController.java | 19 ++++ .../bonus/system/wechat/dao/WechatDao.java | 2 +- .../LeaveReporting/LeaveReportingMapper.xml | 4 +- .../mapper/att/AttendanceDetailsMapper.xml | 106 ++++++++++++++---- .../mapper/evection/EvectionMapper.xml | 4 +- .../resources/mapper/wechat/WechatMapper.xml | 21 +++- 12 files changed, 256 insertions(+), 38 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttDetailByMonthController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttDetailByMonthController.java index da22e38..590d708 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttDetailByMonthController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttDetailByMonthController.java @@ -127,6 +127,25 @@ public class AttDetailByMonthController extends BaseController { @GetMapping("/export") public void export(HttpServletResponse response, AttDetailByMonthBean bean) { try { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } MultiSheetExcelExporter exporter = new MultiSheetExcelExporter(); //将表格时间区间取出来做标题 String title = bean.getAttCurrentMonth(); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java index 90271e8..23733fb 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java @@ -26,7 +26,7 @@ public interface AttendanceDetailsDao { * @param bean 参数 * @return list bean */ - List exportAttDetailsList(AttDataDetailsBean bean); + List exportAttDetailsList(@Param("bean") AttDataDetailsBean bean); /** * 获取考勤原始明细列表 @@ -40,7 +40,7 @@ public interface AttendanceDetailsDao { * @param bean 参数 * @return list bean */ - List exportAttOriginalsList(AttDataDetailsBean bean); + List exportAttOriginalsList(@Param("bean") AttDataDetailsBean bean); /** * 修改考勤数据 @@ -84,7 +84,7 @@ public interface AttendanceDetailsDao { */ List getAttDayReportDetailsList(AttDataDetailsBean bean); - List getOutCountList(AttDataDetailsBean bean); + List getOutCountList(@Param("bean") AttDataDetailsBean bean); List getAttDayList(AttDataDetailsBean bean); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java index 204c848..5d6b056 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java @@ -227,6 +227,11 @@ public class AttDataDetailsBean { private String roleType; private String orgListId; + /** + * 自己项目部所在分公司下的所有项目部id + */ + private List orgIdList; + /** * 考勤类型 */ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDetailBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDetailBean.java index 09db60f..2124b63 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDetailBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDetailBean.java @@ -118,4 +118,9 @@ public class AttDetailBean { /** 部门列表 */ private List orgList; + + /** + * 自己项目部所在分公司下的所有项目部id + */ + private List orgIdList; } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java index a747ba4..cd9dfe6 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java @@ -217,6 +217,25 @@ public class SysUserController extends BaseController { @Log(title = "系统管理->人员信息->导出excel", businessType = BusinessType.EXPORT) public void export(HttpServletResponse response, SysUser user) { try{ + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + user.setOrgIdList(ids); + } + } + } List list = userService.selectUserList(user); ExcelUtil util = new ExcelUtil(SysUser.class); util.exportExcel(response, list, "人员数据"); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java index 0f1f774..a60c891 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java @@ -14,6 +14,8 @@ import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.poi.MultiSheetExcelExporter; import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.system.api.domain.MapVo; +import com.bonus.system.api.domain.SysUser; import com.bonus.system.att.entity.*; import com.bonus.system.att.service.AttDetailByMonthService; import com.bonus.system.att.service.AttendanceDetailsService; @@ -21,6 +23,7 @@ import com.bonus.system.att.service.OrgChangeService; import com.bonus.system.basic.domain.SysOrg; import com.bonus.system.basic.domain.SysOrgExport; import com.bonus.system.basic.service.SysOrgService; +import com.bonus.system.dept.dao.ProDeptRoleDao; import com.bonus.system.dept.entity.SubOrgBean; import com.bonus.system.dept.service.SubOrgService; import com.bonus.system.evection.entity.EvectionBean; @@ -130,6 +133,9 @@ public class ExportFileController { @Resource(name = "attDetailByMonthService") private AttDetailByMonthService attDetailByMonthService; + @Resource(name = "ProDeptRoleDao") + private ProDeptRoleDao proDeptRoleDao; + /** * 分公司项目部导出 @@ -222,6 +228,26 @@ public class ExportFileController { @GetMapping("/exportAttRecord") public void att(HttpServletResponse response, AttDataDetailsBean bean) { try { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } + List attList; if ("考勤明细".equals(bean.getExportType())) { attList = attendanceDetailsService.exportAttDetailsList(bean); @@ -550,6 +576,26 @@ public class ExportFileController { @GetMapping("/exportMonthReport") public void exportMonthReport(HttpServletResponse response, AttMonthReportBean bean) { try { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if (roleId != null && !roleId.isEmpty()) { + if (Collections.frequency(roleId, "1") == 0 && Collections.frequency(roleId, "16") == 0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } + MultiSheetExcelExporter exporter = new MultiSheetExcelExporter(); //将表格时间区间取出来做标题 String title = bean.getMonth(); @@ -954,6 +1000,25 @@ public class ExportFileController { @GetMapping("/exportWechatLeaveReporting") public void exportWechatLeaveReporting(HttpServletResponse response, WechatLeaveReportingBean bean) { try { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } List personExportVoList = new ArrayList<>(); List personLists = wechatLeaveReportingService.getLeaveReportingList(bean); for (int i = 0; i < personLists.size(); i++) { @@ -994,6 +1059,25 @@ public class ExportFileController { @GetMapping("/exportWechatEvection") public void exportWechatEvection(HttpServletResponse response, WechatEvectionBean bean) { try { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if (roleId != null && !roleId.isEmpty()) { + if (Collections.frequency(roleId, "1") == 0 && Collections.frequency(roleId, "16") == 0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } List personExportVoList = new ArrayList<>(); List personLists = wechatevectionService.getEvectionList(bean); for (int i = 0; i < personLists.size(); i++) { diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/controller/WechatController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/controller/WechatController.java index 55d1ccb..d10200f 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/controller/WechatController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/controller/WechatController.java @@ -97,6 +97,25 @@ public class WechatController extends BaseController { @SysLog(title = "小程序打卡数据", businessType = OperaType.EXPORT,module = "小程序打卡数据") public void export(HttpServletResponse response, WechatBean bean) { try { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { +// ids.add(String.valueOf(mapVo.getId())); + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); + } + bean.setOrgList(ids); + } + } + } //先查询小程序打卡数据 List list = wechatService.getWechatList(bean); //轮休数据 diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/dao/WechatDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/dao/WechatDao.java index 5d851ba..2d53794 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/dao/WechatDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/dao/WechatDao.java @@ -28,5 +28,5 @@ public interface WechatDao { * @param bean * @return */ - List getWechatUserList(WechatBean bean); + List getWechatUserList(@Param("bean") WechatBean bean); } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml index 3b5f533..49831dc 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml @@ -15,7 +15,7 @@ leave_end_interval, leave_duration, source, create_user_id, is_agree, location, host_user_id,host_user_name, remark,examine_status) - VALUES (#{userId}, #{userName}, #{orgId}, #{orgName}, '请假' , #{type}, #{leaveReason}, + VALUES (#{userId}, #{userName}, #{orgId}, #{orgName}, #{type} , '请假', #{leaveReason}, #{leaveStartDate}, #{leaveStartInterval}, @@ -44,7 +44,7 @@ - type = #{type}, + leave_type = #{type}, host_user_id = #{hostUserId}, diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml index 36b4939..7c4fb44 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml @@ -67,17 +67,42 @@ v_att_update_data v LEFT JOIN sys_user su ON su.user_id = v.user_id LEFT JOIN sys_organization so ON so.id = v.org_id + LEFT JOIN (SELECT user_id,att_current_day,count(user_id) as outCount FROM att_work_abnormal GROUP BY att_current_day,user_id) awa ON v.user_id = awa.user_id + AND v.att_current_day = awa.att_current_day + LEFT JOIN att_source_data asd ON su.user_name = asd.`name` and asd.att_current_day = v.att_current_day WHERE - v.att_current_day BETWEEN #{startDate} AND #{endDate} and su.is_active = 1 - - AND v.org_id = #{orgId} + v.att_current_day BETWEEN #{bean.startDate} AND #{bean.endDate} and su.is_active = 1 + + AND v.org_id = #{bean.orgId} - - AND su.user_name like concat('%', #{userName}, '%') + + AND su.user_name like concat('%', #{bean.userName}, '%') - - AND v.toWorkAttStatus = #{attStatus} AND v.offWorkAttStatus = #{attStatus} + + + and (v.toWorkAttStatus in (SELECT dict_value + FROM sys_dict_data + where dict_type = 'att_status' and is_leave = '1') or v.offWorkAttStatus in (SELECT dict_value + FROM sys_dict_data + where dict_type = 'att_status' and is_leave = '1')) + + + and ( toWorkAttStatus = #{bean.attStatus} and offWorkAttStatus = #{bean.attStatus} ) + + + and ( toWorkAttStatus = #{bean.attStatus} or offWorkAttStatus = #{bean.attStatus} ) + + + + + and v.org_id in ( + + #{item} + + ) + + GROUP BY v.user_id,v.att_current_day ORDER BY CHAR_LENGTH(GROUP_CONCAT(DISTINCT so.org_name)) DESC @@ -98,17 +123,42 @@ v_att_data v LEFT JOIN sys_user su ON su.user_id = v.user_id LEFT JOIN sys_organization so ON so.id = v.org_id + LEFT JOIN (SELECT user_id,att_current_day,count(user_id) as outCount FROM att_work_abnormal GROUP BY att_current_day,user_id) awa ON v.user_id = awa.user_id + AND v.att_current_day = awa.att_current_day + LEFT JOIN att_source_data asd ON su.user_name = asd.`name` and asd.att_current_day = v.att_current_day WHERE - v.att_current_day BETWEEN #{startDate} AND #{endDate} and su.is_active = 1 - - AND v.org_id = #{orgId} + v.att_current_day BETWEEN #{bean.startDate} AND #{bean.endDate} and su.is_active = 1 + + AND v.org_id = #{bean.orgId} - - AND su.user_name like concat('%', #{userName}, '%') + + AND su.user_name like concat('%', #{bean.userName}, '%') - - AND v.toWorkAttStatus = #{attStatus} AND v.offWorkAttStatus = #{attStatus} + + + and (v.toWorkAttStatus in (SELECT dict_value + FROM sys_dict_data + where dict_type = 'att_status' and is_leave = '1') or v.offWorkAttStatus in (SELECT dict_value + FROM sys_dict_data + where dict_type = 'att_status' and is_leave = '1')) + + + and ( toWorkAttStatus = #{bean.attStatus} and offWorkAttStatus = #{bean.attStatus} ) + + + and ( toWorkAttStatus = #{bean.attStatus} or offWorkAttStatus = #{bean.attStatus} ) + + + + + and v.org_id in ( + + #{item} + + ) + + GROUP BY v.user_id,v.att_current_day ORDER BY CHAR_LENGTH(GROUP_CONCAT(DISTINCT so.org_name)) DESC @@ -236,20 +286,28 @@ att_work_abnormal awa LEFT JOIN sys_organization so ON so.id = awa.org_id and so.is_active = '1' - - and awa.att_current_day = #{attCurrentDay} + + and awa.att_current_day = #{bean.attCurrentDay} - - and awa.att_current_day between #{startDate} AND #{endDate} + + and awa.att_current_day between #{bean.startDate} AND #{bean.endDate} - - and awa.user_id = #{userId} + + and awa.user_id = #{bean.userId} - - and locate(#{userName},awa.user_name) + + and locate(#{bean.userName},awa.user_name) - - and locate(#{attCurrentMonth},awa.att_current_day) + + and locate(#{bean.attCurrentMonth},awa.att_current_day) + + + + and so.id in ( + + #{item} + + ) ORDER BY diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml index 2f9d23e..0b0eea1 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml @@ -5,7 +5,7 @@ - INSERT INTO leave_apply(user_id, user_name, org_id, org_name, leave_type, leave_reason, + INSERT INTO leave_apply(user_id, user_name, org_id, org_name, leave_type,type, leave_reason, leave_start_date, leave_start_interval, @@ -16,7 +16,7 @@ leave_duration, source, create_user_id, is_agree, location, host_user_id,host_user_name, remark , leave_form_id, submit_id,examine_status,is_outside,is_xizang) - VALUES (#{userId}, #{userName}, #{orgId}, #{orgName}, '出差', #{leaveReason}, + VALUES (#{userId}, #{userName}, #{orgId}, #{orgName}, '出差','出差', #{leaveReason}, #{leaveStartDate}, #{leaveStartInterval}, diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/wechat/WechatMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/wechat/WechatMapper.xml index d0a0123..1e059c8 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/wechat/WechatMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/wechat/WechatMapper.xml @@ -71,22 +71,31 @@ FROM att_data ad LEFT JOIN sys_user su ON ad.user_id = su.user_id + LEFT JOIN sys_user_org suo on su.user_id = suo.user_id LEFT JOIN ( SELECT * FROM sys_dict_data WHERE dict_type = 'att_status' ) sd ON ad.att_status = sd.dict_value WHERE ad.is_active = '1' AND ad.data_source = '3' AND sd.dict_value IN ( '1', '2', '4', '7', '8', '9', '10', '19' ) - - AND ad.user_id = #{userId} + + AND ad.user_id = #{bean.userId} - - AND su.user_name like concat('%', #{userName}, '%') + + AND su.user_name like concat('%', #{bean.userName}, '%') - - AND ad.att_current_day BETWEEN #{startDate} AND #{endDate} + + AND ad.att_current_day BETWEEN #{bean.startDate} AND #{bean.endDate} + + + + and suo.org_id in ( + + #{item} + + ) ORDER BY att_current_time DESC