package com.kingdee.shr.ats.service; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.bsf.service.app.IHRMsfService; import com.kingdee.eas.basedata.org.AdminOrgUnitCollection; import com.kingdee.eas.basedata.org.AdminOrgUnitFactory; import com.kingdee.eas.basedata.org.AdminOrgUnitInfo; import com.kingdee.eas.common.EASBizException; import com.kingdee.eas.hr.ats.AttendanceProjectCollection; import com.kingdee.eas.hr.ats.AttendanceProjectFactory; import com.kingdee.eas.hr.ats.AttendanceProjectInfo; import com.kingdee.eas.hr.ats.util.common.AtsCommonUtile; import com.kingdee.eas.util.app.DbUtil; import com.kingdee.jdbc.rowset.IRowSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; public class GetAtsCusService implements IHRMsfService { private static Logger logger = Logger.getLogger(GetAtsCusService.class); public Object process(Context ctx, Map param) throws EASBizException, BOSException { List> successResList = new ArrayList(); List> errorResList = new ArrayList(); String personIds = AtsCommonUtile.decodeEmpBase64((String)param.get("personIds")); String companyLongNumber = ""; if(ObjectUtils.anyNotNull(param.get("companyLongNumber"))) { param.get("companyLongNumber"); companyLongNumber = AtsCommonUtile.decodeEmpBase64((String)param.get("companyLongNumber")); } Boolean haveSubOrg = (Boolean)param.get("haveSubOrg"); String periodYear = (String)param.get("year"); String periodMonth = (String)param.get("month"); String periodTimes = (String)param.get("times"); String attendProject = (String)param.get("attendProject"); StringBuffer sqlBuffer = new StringBuffer(); AttendanceProjectCollection attendanceProjectColl = AttendanceProjectFactory.getLocalInstance(ctx).getAttendanceProjectCollection("SELECT ID,COLUMNNO where NAME = '" + attendProject + "' or number ='" + attendProject + "'"); if (attendanceProjectColl != null && attendanceProjectColl.size() > 0) { AttendanceProjectInfo oldModel = attendanceProjectColl.get(0); if (oldModel == null) { return null; } else { String columnName = "S" + oldModel.getColumnNO(); String salaryPeriod = periodYear + "-" + periodMonth + "-" + periodTimes; Map errorResMap = new HashMap(); if (StringUtils.isEmpty(personIds)) { return null; } else if (StringUtils.isEmpty(attendProject)) { return null; } else { errorResList.add((HashMap)errorResMap); sqlBuffer.append("select FPROPOSERID, sum(" + columnName + ") sumResult from T_HR_ATS_AttendanceResult where FProposerID in (" + personIds + ")"); if (!StringUtils.isEmpty(companyLongNumber)) { String sql = "select * from t_org_admin where FLONGNUMBER in (" + companyLongNumber + ") and fid = FCOMPANYID"; IRowSet executeQuery = DbUtil.executeQuery(ctx, sql); Boolean isCompany = false; try { if (executeQuery.next()) { isCompany = true; } } catch (SQLException var26) { var26.printStackTrace(); } AdminOrgUnitCollection adminOrgColl = AdminOrgUnitFactory.getLocalInstance(ctx).getAdminOrgUnitCollection(" where longNumber in (" + companyLongNumber + ")"); String companyID = ""; String adminOrgUnitId = ""; AdminOrgUnitInfo row; if (adminOrgColl != null && adminOrgColl.size() > 0) { row = adminOrgColl.get(0); companyLongNumber = row.getLongNumber(); adminOrgUnitId = row.getId().toString(); } if (haveSubOrg) { sqlBuffer.append(" and FADMINORGUNITID in (SELECT FID FROM T_ORG_ADMIN where FlongNumber like '" + companyLongNumber + "%')"); } else { sqlBuffer.append(" and FADMINORGUNITID in ('" + adminOrgUnitId + "')"); } } sqlBuffer.append(" and FAttenceDate ='" + salaryPeriod + "'"); sqlBuffer.append(" group by FPROPOSERID"); IRowSet rowset = DbUtil.executeQuery(ctx, sqlBuffer.toString()); try { while(rowset.next()) { rowset.getString("FPROPOSERID"); rowset.getString("sumResult"); Map successResMap = new HashMap(); successResMap.put(attendProject, rowset.getString("sumResult")); successResMap.put("personId", rowset.getString("FPROPOSERID")); successResList.add((HashMap)successResMap); } } catch (SQLException var27) { var27.printStackTrace(); } return successResList; } } } else { return null; } } }