package com.product.org.admin.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.alibaba.druid.util.StringUtils; import com.product.admin.service.CodeService; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.permission.PermissionService; import com.product.core.service.support.AbstractBaseService; import com.product.core.service.support.QueryFilterService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.org.admin.config.CmnConst; import com.product.util.BaseUtil; /** * * Copyright LX-BASE * * @Title: LX-BASE- * @Project: StaffChangeService * @Date: 2020-06-09 15:27 * @Author: 杜洪波 * @Description:人员变更 */ @Component public class StaffChangeService extends AbstractBaseService { @Autowired public BaseDao baseDao; @Autowired PermissionService permissionService; @Autowired public CodeService codeService; @Autowired QueryFilterService queryFilterService; /** * 人员变更信息列表 * * @param cpage * @param pageSize * @return * @throws BaseException */ public DataTableEntity listStaffChange(Integer cpage, Integer pageSize ,FieldSetEntity fse) throws BaseException { //数据策略 String dataFilter=permissionService.getDataFilter("b."+CmnConst.ORG_LEVEL_UUID) ; //高级查询 String searchFilter=queryFilterService.getQueryFilter(fse); if(!StringUtils.isEmpty(dataFilter)) { dataFilter=" WHERE "+dataFilter; if (!StringUtils.isEmpty(searchFilter)) { dataFilter+=" AND "+ searchFilter; } }else { if (!StringUtils.isEmpty(searchFilter)) { dataFilter=searchFilter; } } StringBuilder sql=new StringBuilder(); sql.append(" SELECT * FROM ( "); sql.append(" SELECT a.uuid uuid,b.uuid uuid1,c.uuid uuid2,d.uuid uuid3,e.uuid uuid4,f.uuid uuid5,a.staff_uuid,a.transferred_staff_post_uuid,a.movement_effective_utc_date,a.result_status,b.show_name,b.preferred_name,c.client_name,d.org_level_all,e.job_post_name,f.job_grade_name "); sql.append(" FROM product_sys_staff_movement a "); sql.append(" LEFT JOIN product_sys_staffs b ON a.staff_uuid=b.uuid "); sql.append(" LEFT JOIN product_sys_clients c ON c.uuid=b.client_uuid "); sql.append(" LEFT JOIN product_sys_org_levels d ON d.uuid=b.dept_uuid "); sql.append(" LEFT JOIN product_sys_job_posts e ON e.uuid=b.job_post_uuid "); sql.append(" LEFT JOIN product_sys_job_post_grades f ON f.uuid=b.job_post_grade_uuid "); sql.append(dataFilter); sql.append(" )b "); DataTableEntity dt=baseDao.listTable(sql.toString(), null, pageSize, cpage); dt.getMeta().addAliasTable("product_sys_staff_movement","a"); dt.getMeta().addAliasTable("product_sys_staffs","b"); dt.getMeta().addAliasTable("product_sys_clients","c"); dt.getMeta().addAliasTable(CmnConst.PRODUCT_SYS_ORG_LEVELS,"d"); dt.getMeta().addAliasTable("product_sys_job_posts","e"); dt.getMeta().addAliasTable("product_sys_job_post_grades","f"); dt.getMeta().addAliasField("product_sys_staffs.uuid", "uuid1"); dt.getMeta().addAliasField("product_sys_staffs.show_name", "show_name"); if (!BaseUtil.dataTableIsEmpty(dt)) { baseDao.listInternationDataTable(dt, null); baseDao.loadPromptData(dt); } return dt; } /** * 人员变更信息详情 * * @param uuid * @return * @throws BaseException */ public FieldSetEntity findStaffChange(String uuid) throws BaseException { return baseDao.getFieldSetEntity("product_sys_staff_movement", uuid, false); } /** * 格式化员工信息 * * @return * @throws BaseException */ public DataTableEntity formatStaff(DataTableEntity dt) throws BaseException { if (dt.getRows() > 0) { for (int i = 0; i < dt.getRows(); i++) { FieldSetEntity staff = dt.getFieldSetEntity(i); FieldSetEntity staffInfo = baseDao.getFieldSetEntityByFilter("product_sys_staffs", "uuid=?",new String[] { staff.getString("uuid") }, false); FieldSetEntity org_level = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_ORG_LEVELS, "uuid=?",new String[] { staffInfo.getString("org_level_uuid") }, false); if (org_level != null) { staff.setValue("org_level", org_level.getString(CmnConst.ORG_LEVEL_ALL)); } FieldSetEntity dept_level = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_ORG_LEVELS, "uuid=?",new String[] { staffInfo.getString("dept_uuid") }, false); dept_level.getMeta().addAliasField(CmnConst.PRODUCT_SYS_ORG_LEVELS, CmnConst.ORG_LEVEL_ALL); dept_level.getMeta().addAliasField(CmnConst.PRODUCT_SYS_ORG_LEVELS, CmnConst.ORG_LEVEL_NAME); FieldSetEntity dept_levels = baseDao.listInternationDataTable(dept_level, null); if (dept_levels != null) { staff.setValue("client_and_org", dept_levels.getSubDataTable(CmnConst.ORG_LEVEL_ALL)); staff.setValue("dept_name", dept_levels.getSubDataTable(CmnConst.ORG_LEVEL_NAME)); } } } dt.getMeta().addAliasField("product_sys_staffs.show_name", "show_name"); dt.getMeta().addAliasField("product_sys_job_posts.job_post_name", "job_post_name"); dt.getMeta().addAliasField("product_sys_job_post_grades.job_grade_name", "job_grade_name"); dt.getMeta().addAliasField("product_sys_clients.client_name", "client_name"); dt.getMeta().addAliasField("product_sys_org_levels.org_level_all", CmnConst.ORG_LEVEL_ALL); DataTableEntity listInternationDataTable = baseDao.listInternationDataTable(dt, null); return listInternationDataTable; } /** * 格式化员工信息 * * @return * @throws BaseException */ public void moreStaffs() throws BaseException { // String sql="select * from mrbase_sys_users a, mrbase_sys_staffs b where a.user_id=b.user_id"; // DataTableEntity adt=baseDao.listTable(sql, new Object[] {}); // DataTableEntity dt=baseDao.listTable(sql, new Object[] {}, 100, 1, null); // // String sql1="select a.user_id,(select first_employment_date from mrbase_sys_staff_employment_info c where c.staff_uuid=b.uuid) first_employment_date from mrbase_sys_users a, mrbase_sys_staffs b where a.user_id=b.user_id"; // DataTableEntity adt1=baseDao.listTable(sql1, new Object[] {}); // DataTableEntity dt1=baseDao.listTable(sql1, new Object[] {}, 100, 1, null); // // String sql2="SELECT a.*,CONCAT(CONVERT(a.file_size / 1024, decimal(10,2)), 'KB') file_size_kb,b.show_name FROM (" // + "SELECT * FROM mrbase_sys_document WHERE directory_uuid = '' " // + ") a " // + "LEFT JOIN mrbase_sys_staffs b ON a.created_by = b.user_id LEFT JOIN mrbase_sys_attachments c ON b.staff_avatar=c.uuid "; // DataTableEntity adt2=baseDao.listTable(sql2, new Object[] {}); // DataTableEntity dt2=baseDao.listTable(sql2, new Object[] {}, 100, 1, null); // // String sql3="SELECT * FROM mrbase_sys_users t JOIN mrbase_sys_staffs n ON t.user_id = n.user_id AND n.uuid = (SELECT uuid from mrbase_sys_staffs where show_name='dfd') "; // DataTableEntity adt3=baseDao.listTable(sql3, new Object[] {}); // DataTableEntity dt3=baseDao.listTable(sql3, new Object[] {}, 100, 1, null); // // String sql4="SELECT a.dict_id,a.uuid,a.dict_name,a.dict_label,a.is_used,a.sequence,a.dict_value FROM (SELECT * FROM (select dict_id,uuid,dict_name,dict_label,is_used,sequence,dict_value from mrbase_sys_dict WHERE (client_uuid is null or client_uuid='') and is_used=1 and CONCAT(dict_name,dict_value ) not in( select CONCAT(dict_name,dict_value ) from mrbase_sys_dict WHERE client_uuid='781cb807-b7a6-43ec-8c60-f7d23499dfb7') union all select dict_id,uuid,dict_name,dict_label,is_used,sequence,dict_value from mrbase_sys_dict b WHERE is_used=1 and client_uuid='781cb807-b7a6-43ec-8c60-f7d23499dfb7') a) a "; // DataTableEntity adt4=baseDao.listTable(sql4, new Object[] {}); // DataTableEntity dt4=baseDao.listTable(sql4, new Object[] {}, 100, 1, null); // // String sql5="SELECT *, ? AS 'data_type', ? , (select 'sge ?* esg' FROM mrbase_sys_staffs AS r WHERE r.user_id= a.user_id ) as k from mrbase_sys_users a where user_id=? "; // DataTableEntity adt5=baseDao.listTable(sql5, new Object[] {5,1,186}); // DataTableEntity dt5=baseDao.listTable(sql5, new Object[] {5,1,186}, 100, 1, null); // // String sql6="SELECT ? AS 'data_type', ? , (select 'sge ?* esg' FROM mrbase_sys_staffs AS r WHERE r.user_id= a.user_id ) as k from mrbase_sys_users a where user_id=? union all select 6,3,'sdgsd' from mrbase_sys_users a where user_id=?"; // DataTableEntity adt6=baseDao.listTable(sql6, new Object[] {5,1,186,186}); // DataTableEntity dt6=baseDao.listTable(sql6, new Object[] {5,1,186,186}, 100, 1, null); // // String sql7=" select distinct uuid,user_account from mrbase_sys_users "; // // //报错:select count(distinct a.*,b.show_name) from mrbase_sys_users a join mrbase_sys_staffs b on a.user_id=b.user_id // //DataTableEntity dt=baseDao.listTable(sql, new Object[] {}, 100, 1, null); // //DataTableEntity dt1=baseDao.listTable(sql1, new Object[] {}, 100, 1, null); // DataTableEntity adt7=baseDao.listTable(sql7, new Object[] {}); // DataTableEntity dt7=baseDao.listTable(sql7, new Object[] {}, 100, 1, null); // // String sql8="select uuid from mrbase_sys_users union all select uuid from mrbase_sys_staffs"; // DataTableEntity adt8=baseDao.listTable(sql8, new Object[] {}); // DataTableEntity dt8=baseDao.listTable(sql8, new Object[] {}, 100, 1, null); // // String sql9="select uuid from mrbase_sys_users"; // DataTableEntity adt9=baseDao.listTable(sql9, new Object[] {}); // DataTableEntity dt9=baseDao.listTable(sql9, new Object[] {}, 100, 1, null); // // String sql10="select ? as 'uuid' from mrbase_sys_users"; // DataTableEntity adt10=baseDao.listTable(sql10, new Object[] {3433}); // DataTableEntity dt10=baseDao.listTable(sql10, new Object[] {3433}, 100, 1, null); // // String sql12="SELECT DISTINCT preferred_name AS name FROM mrbase_sys_staffs"; // DataTableEntity adt12=baseDao.listTable(sql12, new Object[] {}); // DataTableEntity dt12=baseDao.listTable(sql12, new Object[] {}, 100, 1, null); // // String sql11="SELECT DISTINCT s.uuid, ? AS 'data_type' FROM mrbase_sys_staffs s"; // DataTableEntity adt11=baseDao.listTable(sql11, new Object[] {1}); // DataTableEntity dt11=baseDao.listTable(sql11, new Object[] {1}, 100, 1, null); String sql13="select * from (select a53.uuid value_field,a53.job_post_name view_fields,a74.org_level_all f1,a53.job_post_name f2,a74.uuid f3,a53.uuid uuid0,a74.uuid uuid1 FROM product_sys_job_posts a53 left join product_sys_org_levels a74 on a53.dept_uuid=a74.uuid where (a53.dept_uuid='' and is_used=1) order by a53.sequence asc ) b "; DataTableEntity adt13=baseDao.listTable(sql13, new Object[] {}); DataTableEntity dt13=baseDao.listTable(sql13, new Object[] {}, 100, 1, null); String sql14="SELECT\r\n" + " t.attendance_master_id,\r\n" + " t.uuid,\r\n" + " t.utc_att_date,\r\n" + " t.utc_att_time_zone,\r\n" + " t.staff_uuid,\r\n" + " t.raw_shift_uuid,\r\n" + " t.raw_start_utc_time,\r\n" + " t.raw_start_time_zone,\r\n" + " t.raw_end_utc_time,\r\n" + " t.raw_end_time_zone,\r\n" + " t.schedule_shift_uuid,\r\n" + " t.schedule_start_utc_time,\r\n" + " t.schedule_start_time_zone,\r\n" + " t.schedule_end_utc_time,\r\n" + " t.schedule_end_time_zone,\r\n" + " t.prefix_shift_abbr,\r\n" + " t.suffix_shift_abbr,\r\n" + " t.official_shift_uuid,\r\n" + " t.official_start_utc_time,\r\n" + " t.official_start_time_zone,\r\n" + " t.official_end_utc_time,\r\n" + " t.official_end_time_zone,\r\n" + " t.shift_modification_reason_uuid,\r\n" + " t.shift_modification_reason_text,\r\n" + " t.status_uuid,\r\n" + " t.is_punch_in_required,\r\n" + " t.is_punch_out_required,\r\n" + " t.actual_punch_in_uuid,\r\n" + " t.actual_punch_out_uuid,\r\n" + " t.actual_punch_in_utc_datetime,\r\n" + " t.actual_punch_in_time_zone,\r\n" + " t.actual_punch_out_utc_datetime,\r\n" + " t.actual_punch_out_time_zone,\r\n" + " t.modified_flow_task_uuid,\r\n" + " t.modified_punch_in_utc_datetime,\r\n" + " t.modified_punch_in_time_zone,\r\n" + " t.modified_punch_out_utc_datetime,\r\n" + " t.modified_punch_out_time_zone,\r\n" + " t.official_punch_in_utc_datetime,\r\n" + " t.official_punch_in_time_zone,\r\n" + " t.official_punch_out_utc_datetime,\r\n" + " t.official_punch_out_time_zone,\r\n" + " t.schedule_working_minutes,\r\n" + " t.actual_working_minutes,\r\n" + " t.modified_working_minutes,\r\n" + " t.official_working_minutes,\r\n" + " t.actual_meal_minutes,\r\n" + " t.modified_meal_mintues,\r\n" + " t.official_meal_minutes,\r\n" + " t.actual_break_minutes,\r\n" + " t.modified_break_minutes,\r\n" + " t.official_break_minutes,\r\n" + " t.actual_ot_minutes,\r\n" + " t.modified_ot_minutes,\r\n" + " t.official_total_ot_minutes,\r\n" + " t.actual_late_minutes,\r\n" + " t.modified_late_minutes,\r\n" + " t.official_total_late_minutes,\r\n" + " t.actual_early_leave_minutes,\r\n" + " t.modified_early_leave_minutes,\r\n" + " t.official_total_early_leave_minutes,\r\n" + " t.is_adhoc,\r\n" + " t.is_late,\r\n" + " t.is_early_leave,\r\n" + " t.is_ot,\r\n" + " t.is_absense,\r\n" + " t.is_on_leave,\r\n" + " t.leave_type_uuid,\r\n" + " t.leave_type_remark_uuid,\r\n" + " t.is_holiday,\r\n" + " t.holiday_uuid,\r\n" + " t.is_onduty,\r\n" + " t.is_pre_locked,\r\n" + " t.is_locked,\r\n" + " t.is_work_from_home,\r\n" + " t.is_out_of_office,\r\n" + " t.is_missing_punch,\r\n" + " t.shift_property_group_uuid,\r\n" + " t.org_level_uuid,\r\n" + " t.attendance_modification_reason_uuid,\r\n" + " t.attendance_modification_reason_text,\r\n" + " t.remarks,\r\n" + " t.application_uuid,\r\n" + " t.site_uuid,\r\n" + " t.cost_center_uuid,\r\n" + " t.actual_absense_minutes,\r\n" + " t.modified_absense_minutes,\r\n" + " t.official_absense_minutes,\r\n" + " t.actual_before_work_minutes,\r\n" + " t.modified_before_work_minutes,\r\n" + " t.official_before_work_minutes,\r\n" + " t.actual_after_work_minutes,\r\n" + " t.modified_after_work_minutes,\r\n" + " t.official_after_work_minutes,\r\n" + " t.is_punch_criteria_matched,\r\n" + " t.is_temp,\r\n" + " t.actual_leave_minutes,\r\n" + " t.modified_leave_minutes,\r\n" + " t.official_total_leave_minutes \r\n" + "FROM\r\n" + " ess_att_attendance_master t,(\r\n" + " SELECT\r\n" + " '6973' AS staff_uuid from dual UNION ALL\r\n" + " SELECT\r\n" + " '6982' AS staff_uuid from dual UNION ALL\r\n" + " SELECT\r\n" + " '6983' AS staff_uuid from dual \r\n" + " ) AS jt \r\n" + "WHERE jt.staff_uuid = t.staff_uuid \r\n" + " AND t.utc_att_date BETWEEN '2021-09-01T00:00Z[UTC]' \r\n" + " AND '2021-09-30T23:59:59.847Z[UTC]' \r\n" + "ORDER BY\r\n" + " t.utc_att_date DESC,\r\n" + " t.staff_uuid \r\n"; DataTableEntity adt14=baseDao.listTable(sql14, new Object[] {}); DataTableEntity dt14=baseDao.listTable(sql14, new Object[] {}, 20, 1, null); SpringMVCContextHolder.getSystemLogger().info("---------------------------------------------"); // if(adt.getRows()!=dt.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------0查询不正确:"+adt.getRows()+" "+dt.getSqle().getTotalCount()); // } // if(adt1.getRows()!=dt1.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------1查询不正确:"+adt1.getRows()+" "+dt1.getSqle().getTotalCount()); // } // if(adt2.getRows()!=dt2.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------2查询不正确:"+adt2.getRows()+" "+dt2.getSqle().getTotalCount()); // } // if(adt3.getRows()!=dt3.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------3查询不正确:"+adt3.getRows()+" "+dt3.getSqle().getTotalCount()); // } // if(adt4.getRows()!=dt4.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------4查询不正确:"+adt4.getRows()+" "+dt4.getSqle().getTotalCount()); // } // if(adt5.getRows()!=dt5.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------5查询不正确:"+adt5.getRows()+" "+dt5.getSqle().getTotalCount()); // } // if(adt6.getRows()!=dt6.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------6查询不正确:"+adt6.getRows()+" "+dt6.getSqle().getTotalCount()); // } // if(adt7.getRows()!=dt7.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------7查询不正确:"+adt7.getRows()+" "+dt7.getSqle().getTotalCount()); // } // if(adt8.getRows()!=dt8.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------8查询不正确:"+adt8.getRows()+" "+dt8.getSqle().getTotalCount()); // } // if(adt9.getRows()!=dt9.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------9查询不正确:"+adt9.getRows()+" "+dt9.getSqle().getTotalCount()); // } // if(adt10.getRows()!=dt10.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------10查询不正确:"+adt10.getRows()+" "+dt10.getSqle().getTotalCount()); // } // // if(adt11.getRows()!=dt11.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------11查询不正确:"+adt11.getRows()+" "+dt11.getSqle().getTotalCount()); // } // if(adt12.getRows()!=dt12.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------12查询不正确:"+adt12.getRows()+" "+dt12.getSqle().getTotalCount()); // } // if(adt13.getRows()!=dt13.getSqle().getTotalCount()) { // SpringMVCContextHolder.getSystemLogger().error("----------------------13查询不正确:"+adt13.getRows()+" "+dt13.getSqle().getTotalCount()); // } if(adt14.getRows()!=dt14.getSqle().getTotalCount()) { SpringMVCContextHolder.getSystemLogger().error("----------------------14查询不正确:"+adt14.getRows()+" "+dt14.getSqle().getTotalCount()); } } }