|
@@ -0,0 +1,517 @@
|
|
|
|
|
+package com.kingdee.eas.custom.adminorgatscalculate.handler;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.kingdee.bos.BOSException;
|
|
|
|
|
+import com.kingdee.bos.Context;
|
|
|
|
|
+import com.kingdee.bos.ctrl.swing.StringUtils;
|
|
|
|
|
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
|
|
|
|
|
+import com.kingdee.bos.metadata.entity.FilterInfo;
|
|
|
|
|
+import com.kingdee.bos.metadata.entity.FilterItemCollection;
|
|
|
|
|
+import com.kingdee.bos.metadata.entity.FilterItemInfo;
|
|
|
|
|
+import com.kingdee.bos.metadata.query.util.CompareType;
|
|
|
|
|
+import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
|
|
|
|
|
+import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
|
|
|
|
|
+import com.kingdee.eas.basedata.org.IAdminOrgUnit;
|
|
|
|
|
+import com.kingdee.eas.common.EASBizException;
|
|
|
|
|
+import com.kingdee.eas.hr.ats.AttendancePeriodFactory;
|
|
|
|
|
+import com.kingdee.eas.hr.ats.AttendancePeriodInfo;
|
|
|
|
|
+import com.kingdee.eas.hr.ats.IAttendancePeriod;
|
|
|
|
|
+import com.kingdee.eas.util.app.DbUtil;
|
|
|
|
|
+import com.kingdee.jdbc.rowset.IRowSet;
|
|
|
|
|
+import com.kingdee.shr.base.syssetting.context.SHRContext;
|
|
|
|
|
+import com.kingdee.shr.base.syssetting.exception.SHRWebException;
|
|
|
|
|
+import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
|
|
|
|
|
+import com.kingdee.shr.base.syssetting.json.GridDataEntity;
|
|
|
|
|
+import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
|
|
|
|
|
+import com.kingdee.util.DateTimeUtils;
|
|
|
|
|
+import org.apache.log4j.Logger;
|
|
|
|
|
+
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
+import java.sql.SQLException;
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @author qingwu
|
|
|
|
|
+ * @date 2025/6/18
|
|
|
|
|
+ * @apiNote 组织考勤计算进度报表
|
|
|
|
|
+ */
|
|
|
|
|
+public class AdminOrgAtsCalculateListHandler extends ListHandler {
|
|
|
|
|
+ Context ctx = SHRContext.getInstance().getContext();
|
|
|
|
|
+ private static Logger logger = Logger.getLogger(AdminOrgAtsCalculateListHandler.class);
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ protected FilterInfo getTreeDomainFilter(HttpServletRequest request) throws SHRWebException {
|
|
|
|
|
+ FilterInfo filterInfo = null;
|
|
|
|
|
+ String fastFilterItems = request.getParameter("fastFilterItems");
|
|
|
|
|
+ JSONObject tofastFilterItems = JSONObject.parseObject(fastFilterItems);
|
|
|
|
|
+ String adminOrgId = tofastFilterItems.getJSONObject("adminOrg").getString("values");
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (!StringUtils.isEmpty(adminOrgId)) {
|
|
|
|
|
+ IAdminOrgUnit iAdminOrgUnit = AdminOrgUnitFactory.getLocalInstance(ctx);
|
|
|
|
|
+ AdminOrgUnitInfo adminOrgUnitInfo = iAdminOrgUnit.getAdminOrgUnitInfo(new ObjectUuidPK(adminOrgId));
|
|
|
|
|
+ filterInfo = new FilterInfo();
|
|
|
|
|
+ FilterItemCollection filterItems = filterInfo.getFilterItems();
|
|
|
|
|
+ Integer includeSub = tofastFilterItems.getJSONObject("adminOrg").getInteger("includeSub");
|
|
|
|
|
+ //是否包含下级
|
|
|
|
|
+ if (tofastFilterItems.getJSONObject("adminOrg").getBoolean("isIncludeSub")) {
|
|
|
|
|
+ if (includeSub == 0) {
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("longNumber", adminOrgUnitInfo.getLongNumber()));
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("longNumber", adminOrgUnitInfo.getLongNumber() + "!%", CompareType.LIKE));
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("isSealUp", 0));
|
|
|
|
|
+ filterInfo.setMaskString("(#0 or (#1)) and #2");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("longNumber", adminOrgUnitInfo.getLongNumber()));
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("longNumber", adminOrgUnitInfo.getLongNumber() + "!%", CompareType.LIKE));
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("level", includeSub + 1, CompareType.LESS_EQUALS));
|
|
|
|
|
+ filterInfo.setMaskString("(#0 or #1) and #2");
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("longNumber", adminOrgUnitInfo.getLongNumber()));
|
|
|
|
|
+ //filterItems.add(new FilterItemInfo("longNumber", adminOrgUnitInfo.getLongNumber() + "!%", CompareType.LIKE));
|
|
|
|
|
+ filterItems.add(new FilterItemInfo("isSealUp", 0));
|
|
|
|
|
+ filterInfo.setMaskString("#0 and #1");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (BOSException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ } catch (EASBizException e) {
|
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return filterInfo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ protected void afterGetListData(HttpServletRequest request, HttpServletResponse response, GridDataEntity gridDataEntity) throws SHRWebException {
|
|
|
|
|
+ List rows = gridDataEntity.getRows();
|
|
|
|
|
+ // 获取过滤条件
|
|
|
|
|
+ String fastFilterItems = request.getParameter("fastFilterItems");
|
|
|
|
|
+ JSONObject tofastFilterItems = JSONObject.parseObject(fastFilterItems);
|
|
|
|
|
+ String attendancePeriodId = tofastFilterItems.getJSONObject("attendancePeriod").getString("values");
|
|
|
|
|
+ if (StringUtils.isEmpty(attendancePeriodId)) {
|
|
|
|
|
+ throw new ShrWebBizException("请选择考勤周期!");
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ IAttendancePeriod iAttendancePeriod = AttendancePeriodFactory.getLocalInstance(ctx);
|
|
|
|
|
+ IAdminOrgUnit iAdminOrgUnit = AdminOrgUnitFactory.getLocalInstance(ctx);
|
|
|
|
|
+ AttendancePeriodInfo attendancePeriodInfo = iAttendancePeriod.getAttendancePeriodInfo(new ObjectUuidPK(attendancePeriodId));
|
|
|
|
|
+ Date startDate = attendancePeriodInfo.getStartDate();
|
|
|
|
|
+ Date endDate = attendancePeriodInfo.getEndDate();
|
|
|
|
|
+ String adminOrgId = tofastFilterItems.getJSONObject("adminOrg").getString("values");
|
|
|
|
|
+ //isIncludeSub = 是否包含下级
|
|
|
|
|
+ Boolean isIncludeSub = tofastFilterItems.getJSONObject("adminOrg").getBoolean("isIncludeSub");
|
|
|
|
|
+ //未计算Map
|
|
|
|
|
+ Map<String, List> unCalculateMap = getUnCalculateSql(DateTimeUtils.format(startDate, "yyyy-MM-dd"), DateTimeUtils.format(endDate, "yyyy-MM-dd"));
|
|
|
|
|
+ logger.error("unCalculateMap--" + unCalculateMap.size());
|
|
|
|
|
+ //已计算
|
|
|
|
|
+ Map<String, List> hasCalculateMap = getHasCalculateSql(DateTimeUtils.format(startDate, "yyyy-MM-dd"), DateTimeUtils.format(endDate, "yyyy-MM-dd"));
|
|
|
|
|
+ logger.error("hasCalculateMap--" + hasCalculateMap.size());
|
|
|
|
|
+ //已审批
|
|
|
|
|
+ Map<String, List> hasAuditMap = getHasAuditSql(DateTimeUtils.format(startDate, "yyyy-MM-dd"), DateTimeUtils.format(endDate, "yyyy-MM-dd"));
|
|
|
|
|
+ logger.error("hasAuditMap--" + hasAuditMap.size());
|
|
|
|
|
+ //未审批
|
|
|
|
|
+ Map<String, List> unAuditMap = getUnAuditSql(DateTimeUtils.format(startDate, "yyyy-MM-dd"), DateTimeUtils.format(endDate, "yyyy-MM-dd"));
|
|
|
|
|
+ logger.error("unAuditMap--" + unCalculateMap.size());
|
|
|
|
|
+ //已转薪资
|
|
|
|
|
+ Map<String, List> transferSalaryMap = getTransferSalarySql(DateTimeUtils.format(startDate, "yyyy-MM-dd"), DateTimeUtils.format(endDate, "yyyy-MM-dd"));
|
|
|
|
|
+ logger.error("transferSalaryMap--" + transferSalaryMap.size());
|
|
|
|
|
+ logger.error("isIncludeSub--" + isIncludeSub);
|
|
|
|
|
+ for (int i = 0; i < rows.size(); i++) {
|
|
|
|
|
+ Map map = (Map) rows.get(i);
|
|
|
|
|
+ adminOrgId = map.get("id").toString().trim();
|
|
|
|
|
+ logger.error("adminOrgId--" + adminOrgId);
|
|
|
|
|
+ List list = childAdminOrg(adminOrgId);
|
|
|
|
|
+ logger.error("list--" + list);
|
|
|
|
|
+ int unCalculate = 0;
|
|
|
|
|
+ int hasCalculate = 0;
|
|
|
|
|
+ int unAudit = 0;
|
|
|
|
|
+ int hasAudit = 0;
|
|
|
|
|
+ int transferSalary = 0;
|
|
|
|
|
+ int personNum = getPersonNum(adminOrgId);
|
|
|
|
|
+ if (isIncludeSub) {
|
|
|
|
|
+ for (String key : unCalculateMap.keySet()) {
|
|
|
|
|
+ if (list.contains(key)) {
|
|
|
|
|
+ unCalculate += unCalculateMap.get(key).size();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String key : hasCalculateMap.keySet()) {
|
|
|
|
|
+ if (list.contains(key)) {
|
|
|
|
|
+ hasCalculate += hasCalculateMap.get(key).size();
|
|
|
|
|
+ logger.error("hasCalculate--" + hasCalculate);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String key : unAuditMap.keySet()) {
|
|
|
|
|
+ if (list.contains(key)) {
|
|
|
|
|
+ unAudit += unAuditMap.get(key).size();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String key : hasAuditMap.keySet()) {
|
|
|
|
|
+ if (list.contains(key)) {
|
|
|
|
|
+ hasAudit += hasAuditMap.get(key).size();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String key : transferSalaryMap.keySet()) {
|
|
|
|
|
+ if (list.contains(key)) {
|
|
|
|
|
+ transferSalary += transferSalaryMap.get(key).size();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ personNum -= (hasAudit + unAudit + transferSalary);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ unCalculate = unCalculateMap.get(adminOrgId) == null ? 0 : unCalculateMap.get(adminOrgId).size();
|
|
|
|
|
+ hasCalculate = hasCalculateMap.get(adminOrgId) == null ? 0 : hasCalculateMap.get(adminOrgId).size();
|
|
|
|
|
+ unAudit = unAuditMap.get(adminOrgId) == null ? 0 : unAuditMap.get(adminOrgId).size();
|
|
|
|
|
+ hasAudit = hasAuditMap.get(adminOrgId) == null ? 0 : hasAuditMap.get(adminOrgId).size();
|
|
|
|
|
+ transferSalary = transferSalaryMap.get(adminOrgId) == null ? 0 : transferSalaryMap.get(adminOrgId).size();
|
|
|
|
|
+ }
|
|
|
|
|
+ int sum = (hasAudit + unAudit + transferSalary);
|
|
|
|
|
+ personNum = sum <= 0 ? 0 : personNum - sum;
|
|
|
|
|
+ map.put("unCollect", personNum);//未汇总
|
|
|
|
|
+ map.put("transferSalary", transferSalary);//已转薪资
|
|
|
|
|
+ map.put("hasAudit", hasAudit);//已审核
|
|
|
|
|
+ map.put("unAudit", unAudit);//未审批
|
|
|
|
|
+ map.put("hasCalculate", hasCalculate);//已计算
|
|
|
|
|
+ map.put("unCalculate", unCalculate);//未计算
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ throw new SHRWebException(e);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 辅助方法:统计子组织中各项数量
|
|
|
|
|
+ private int countItemsInMaps(List<String> childOrgs, Map<String, ?> targetMap) {
|
|
|
|
|
+ return targetMap.entrySet().stream()
|
|
|
|
|
+ .filter(entry -> childOrgs.contains(entry.getKey()))
|
|
|
|
|
+ .mapToInt(entry -> ((Collection<?>) entry.getValue()).size())
|
|
|
|
|
+ .sum();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 辅助方法:安全获取Map大小
|
|
|
|
|
+ private int getMapSize(Map<String, ?> map, String key) {
|
|
|
|
|
+ Collection<?> collection = (Collection<?>) map.get(key);
|
|
|
|
|
+ return collection == null ? 0 : collection.size();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ protected FilterInfo getFastFilter(HttpServletRequest request) throws SHRWebException {
|
|
|
|
|
+ return new FilterInfo();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取未计算数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param startDate
|
|
|
|
|
+ * @param endDate
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Map getUnCalculateSql(String startDate, String endDate) throws BOSException, SQLException {
|
|
|
|
|
+ Map<String, List> map = new HashMap();
|
|
|
|
|
+ List list = null;
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select \"ADMINORGUNIT\".fid as adminOrgId,\"PERSON\".fid as personId FROM T_HR_ATS_DATESET AS \"DATESET\"").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCEFILEHIS AS \"FILEHIS\" ON \"FILEHIS\".FEFFDT<=\"DATESET\".FDATE AND \"FILEHIS\".FLEFFDT>=\"DATESET\".FDATE").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_BD_PERSON AS \"PERSON\" ON \"PERSON\".FID=\"FILEHIS\".FPROPOSERID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCERESULT AS \"ATS_RESULT\" ON \"ATS_RESULT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"ATS_RESULT\".FAttenceDate=\"DATESET\".FDate and \"ATS_RESULT\".FAttenceDate<= {ts '" + endDate + "'} and \"ATS_RESULT\".FAttenceDate>= {ts '" + startDate + "'})").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGRESULT\" ON \"ADMINORGRESULT\".FID=\"ATS_RESULT\".FADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORGRESULT\" ON \"HRORGRESULT\".FID=\"ATS_RESULT\".FATTHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORG\" ON \"HRORG\".FID=\"FILEHIS\".FHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ATTADMINRESULT\" ON \"ATTADMINRESULT\".FID=\"ATS_RESULT\".FATTADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SCHEDULESHIFT AS \"SCHEDULESHIFT\" ON \"SCHEDULESHIFT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"SCHEDULESHIFT\".FAttendDate=\"DATESET\".FDate)").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFT AS \"ATSSHIFT\" ON \"ATSSHIFT\".FID=\"SCHEDULESHIFT\".FDEFAULTSHIFTID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFTITEM AS \"ITEMTWO\" ON \"ITEMTWO\".FGroupID=\"ATSSHIFT\".FID AND (\"ITEMTWO\".FSegment= '2')").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID=\"FILEHIS\".FADMINORGUNITID WHERE ( \"HRORG\".FID in ('00000000-0000-0000-0000-000000000000CCE7AED4') and \"DATESET\".FDate>= {ts '" + startDate + "'} and \"DATESET\".FDate<= {ts '" + endDate + "'} ) ").append("\n");
|
|
|
|
|
+ sb.append("and ( \"ATS_RESULT\".FAttenceStatus is null)").append("\n");
|
|
|
|
|
+ sb.append(" GROUP BY \"ADMINORGUNIT\".fid,\"PERSON\".fid").append("\n");
|
|
|
|
|
+ logger.error("getUnCalculateSql--" + sb.toString());
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+ while (rs.next()) {
|
|
|
|
|
+ String adminOrgId = rs.getString("adminOrgId");
|
|
|
|
|
+ String personId = rs.getString("personId");
|
|
|
|
|
+ if (map.containsKey(adminOrgId)) {
|
|
|
|
|
+ list = map.get(adminOrgId);
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ list = new ArrayList();
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ map.put(adminOrgId, list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取已计算数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param startDate
|
|
|
|
|
+ * @param endDate
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Map getHasCalculateSql(String startDate, String endDate) throws BOSException, SQLException {
|
|
|
|
|
+ Map<String, List> map = new HashMap();
|
|
|
|
|
+ List list = null;
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select \"ADMINORGUNIT\".fid as adminOrgId,\"PERSON\".fid as personId FROM T_HR_ATS_DATESET AS \"DATESET\"").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCEFILEHIS AS \"FILEHIS\" ON \"FILEHIS\".FEFFDT<=\"DATESET\".FDATE AND \"FILEHIS\".FLEFFDT>=\"DATESET\".FDATE").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_BD_PERSON AS \"PERSON\" ON \"PERSON\".FID=\"FILEHIS\".FPROPOSERID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCERESULT AS \"ATS_RESULT\" ON \"ATS_RESULT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"ATS_RESULT\".FAttenceDate=\"DATESET\".FDate and \"ATS_RESULT\".FAttenceDate<= {ts '" + endDate + "'} and \"ATS_RESULT\".FAttenceDate>= {ts '" + startDate + "'})").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGRESULT\" ON \"ADMINORGRESULT\".FID=\"ATS_RESULT\".FADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORGRESULT\" ON \"HRORGRESULT\".FID=\"ATS_RESULT\".FATTHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORG\" ON \"HRORG\".FID=\"FILEHIS\".FHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ATTADMINRESULT\" ON \"ATTADMINRESULT\".FID=\"ATS_RESULT\".FATTADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SCHEDULESHIFT AS \"SCHEDULESHIFT\" ON \"SCHEDULESHIFT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"SCHEDULESHIFT\".FAttendDate=\"DATESET\".FDate)").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFT AS \"ATSSHIFT\" ON \"ATSSHIFT\".FID=\"SCHEDULESHIFT\".FDEFAULTSHIFTID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFTITEM AS \"ITEMTWO\" ON \"ITEMTWO\".FGroupID=\"ATSSHIFT\".FID AND (\"ITEMTWO\".FSegment= '2')").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID=\"FILEHIS\".FADMINORGUNITID WHERE ( \"HRORG\".FID in ('00000000-0000-0000-0000-000000000000CCE7AED4') and \"DATESET\".FDate>= {ts '" + startDate + "'} and \"DATESET\".FDate<= {ts '" + endDate + "'} ) ").append("\n");
|
|
|
|
|
+ sb.append("and ( \"ATS_RESULT\".FAttenceStatus =1) ").append("\n");
|
|
|
|
|
+ sb.append(" GROUP BY \"ADMINORGUNIT\".fid,\"PERSON\".fid ").append("\n");
|
|
|
|
|
+ logger.error("getHasCalculateSql--" + sb.toString());
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+ while (rs.next()) {
|
|
|
|
|
+ String adminOrgId = rs.getString("adminOrgId");
|
|
|
|
|
+ String personId = rs.getString("personId");
|
|
|
|
|
+ if (map.containsKey(adminOrgId)) {
|
|
|
|
|
+ list = map.get(adminOrgId);
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ list = new ArrayList();
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ map.put(adminOrgId, list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取已审批数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param startDate
|
|
|
|
|
+ * @param endDate
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Map getHasAuditSql(String startDate, String endDate) throws BOSException, SQLException {
|
|
|
|
|
+ Map<String, List> map = new HashMap();
|
|
|
|
|
+ List list = null;
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select \"ADMINORGUNIT\".fid as adminOrgId ,attendResultSum.fid as attendResultSumId from T_HR_ATS_AttendanceResultSum attendResultSum").append("\n");
|
|
|
|
|
+ sb.append("left join T_HR_ATS_AttendancePeriod attendReriod on attendReriod.fid = attendResultSum.FAttendancePeriodID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID = attendResultSum.FAdminOrgUnitID").append("\n");
|
|
|
|
|
+ sb.append("where (FStartDate>= {ts '" + startDate + "'} and FStartDate <= {ts '" + endDate + "'}) and (FEndDate>={ts '" + startDate + "'} and FEndDate <= {ts '" + endDate + "'})").append("\n");
|
|
|
|
|
+ sb.append("and FSalaryStatus =3 ").append("\n");
|
|
|
|
|
+ sb.append(" GROUP BY \"ADMINORGUNIT\".fid,attendResultSum.fid ").append("\n");
|
|
|
|
|
+ logger.error("getHasAuditSql--" + sb.toString());
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+ while (rs.next()) {
|
|
|
|
|
+ String adminOrgId = rs.getString("adminOrgId");
|
|
|
|
|
+ String personId = rs.getString("attendResultSumId");
|
|
|
|
|
+ if (map.containsKey(adminOrgId)) {
|
|
|
|
|
+ list = map.get(adminOrgId);
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ list = new ArrayList();
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ map.put(adminOrgId, list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取未审批数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param startDate
|
|
|
|
|
+ * @param endDate
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Map getUnAuditSql(String startDate, String endDate) throws BOSException, SQLException {
|
|
|
|
|
+ Map<String, List> map = new HashMap();
|
|
|
|
|
+ List list = null;
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select \"ADMINORGUNIT\".fid as adminOrgId ,attendResultSum.fid as attendResultSumId from T_HR_ATS_AttendanceResultSum attendResultSum").append("\n");
|
|
|
|
|
+ sb.append("left join T_HR_ATS_AttendancePeriod attendReriod on attendReriod.fid = attendResultSum.FAttendancePeriodID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID = attendResultSum.FAdminOrgUnitID").append("\n");
|
|
|
|
|
+ sb.append("where (FStartDate>= {ts '" + startDate + "'} and FStartDate <= {ts '" + endDate + "'}) and (FEndDate>={ts '" + startDate + "'} and FEndDate <= {ts '" + endDate + "'})").append("\n");
|
|
|
|
|
+ sb.append("and FSalaryStatus =2 ").append("\n");
|
|
|
|
|
+ sb.append(" GROUP BY \"ADMINORGUNIT\".fid,attendResultSum.fid ").append("\n");
|
|
|
|
|
+ logger.error("getUnAuditSql--" + sb.toString());
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+ while (rs.next()) {
|
|
|
|
|
+ String adminOrgId = rs.getString("adminOrgId");
|
|
|
|
|
+ String personId = rs.getString("attendResultSumId");
|
|
|
|
|
+ if (map.containsKey(adminOrgId)) {
|
|
|
|
|
+ list = map.get(adminOrgId);
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ list = new ArrayList();
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ map.put(adminOrgId, list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取已转薪资数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param startDate
|
|
|
|
|
+ * @param endDate
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Map getTransferSalarySql(String startDate, String endDate) throws BOSException, SQLException {
|
|
|
|
|
+ Map<String, List> map = new HashMap();
|
|
|
|
|
+ List list = null;
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select \"ADMINORGUNIT\".fid as adminOrgId ,attendResultSum.fid as attendResultSumId from T_HR_ATS_AttendanceResultSum attendResultSum").append("\n");
|
|
|
|
|
+ sb.append("left join T_HR_ATS_AttendancePeriod attendReriod on attendReriod.fid = attendResultSum.FAttendancePeriodID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID = attendResultSum.FAdminOrgUnitID").append("\n");
|
|
|
|
|
+ sb.append("where (FStartDate>= {ts '" + startDate + "'} and FStartDate <= {ts '" + endDate + "'}) and (FEndDate>={ts '" + startDate + "'} and FEndDate <= {ts '" + endDate + "'})").append("\n");
|
|
|
|
|
+ sb.append("and FSalaryStatus =1 ").append("\n");
|
|
|
|
|
+ sb.append(" GROUP BY \"ADMINORGUNIT\".fid,attendResultSum.fid ").append("\n");
|
|
|
|
|
+ logger.error("getTransferSalarySql--" + sb.toString());
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+ while (rs.next()) {
|
|
|
|
|
+ String adminOrgId = rs.getString("adminOrgId");
|
|
|
|
|
+ String personId = rs.getString("attendResultSumId");
|
|
|
|
|
+ if (map.containsKey(adminOrgId)) {
|
|
|
|
|
+ list = map.get(adminOrgId);
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ list = new ArrayList();
|
|
|
|
|
+ list.add(personId);
|
|
|
|
|
+ map.put(adminOrgId, list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取所以下级组织
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param adminOrgId
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @throws BOSException
|
|
|
|
|
+ * @throws SQLException
|
|
|
|
|
+ */
|
|
|
|
|
+ public List childAdminOrg(String adminOrgId) throws BOSException, SQLException {
|
|
|
|
|
+ List list = new ArrayList();
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select child.fid as id from T_ORG_Admin adcount ").append("\n");
|
|
|
|
|
+ sb.append("left join T_ORG_Admin child on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber)").append("\n");
|
|
|
|
|
+ sb.append("where adcount.fid = '" + adminOrgId + "'").append("\n");
|
|
|
|
|
+ //logger.error("childAdminOrgSql--" + sb.toString());
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+
|
|
|
|
|
+ while (rs.next()) {
|
|
|
|
|
+ list.add(rs.getString("id"));
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public String getSql(String startDate, String endDate, String adminOrgNumber, boolean isIncludeSub) {
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("").append("\n");
|
|
|
|
|
+ sb.append("select ").append("\n");
|
|
|
|
|
+ sb.append("(").append("\n");
|
|
|
|
|
+ sb.append("select count(1) from (").append("\n");
|
|
|
|
|
+ sb.append("select \"PERSON\".fid FROM T_HR_ATS_DATESET AS \"DATESET\"").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCEFILEHIS AS \"FILEHIS\" ON \"FILEHIS\".FEFFDT<=\"DATESET\".FDATE AND \"FILEHIS\".FLEFFDT>=\"DATESET\".FDATE").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_BD_PERSON AS \"PERSON\" ON \"PERSON\".FID=\"FILEHIS\".FPROPOSERID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCERESULT AS \"ATS_RESULT\" ON \"ATS_RESULT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"ATS_RESULT\".FAttenceDate=\"DATESET\".FDate and \"ATS_RESULT\".FAttenceDate<= {ts '" + endDate + "'} and \"ATS_RESULT\".FAttenceDate>= {ts '" + startDate + "'})").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGRESULT\" ON \"ADMINORGRESULT\".FID=\"ATS_RESULT\".FADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORGRESULT\" ON \"HRORGRESULT\".FID=\"ATS_RESULT\".FATTHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORG\" ON \"HRORG\".FID=\"FILEHIS\".FHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ATTADMINRESULT\" ON \"ATTADMINRESULT\".FID=\"ATS_RESULT\".FATTADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SCHEDULESHIFT AS \"SCHEDULESHIFT\" ON \"SCHEDULESHIFT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"SCHEDULESHIFT\".FAttendDate=\"DATESET\".FDate)").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFT AS \"ATSSHIFT\" ON \"ATSSHIFT\".FID=\"SCHEDULESHIFT\".FDEFAULTSHIFTID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFTITEM AS \"ITEMTWO\" ON \"ITEMTWO\".FGroupID=\"ATSSHIFT\".FID AND (\"ITEMTWO\".FSegment= '2')").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID=\"FILEHIS\".FADMINORGUNITID WHERE ( \"HRORG\".FID in ('00000000-0000-0000-0000-000000000000CCE7AED4') and \"DATESET\".FDate>= {ts '" + startDate + "'} and \"DATESET\".FDate<= {ts '" + endDate + "'} ) ").append("\n");
|
|
|
|
|
+ sb.append("and ( \"ATS_RESULT\".FAttenceStatus is null) ").append("\n");
|
|
|
|
|
+ if (isIncludeSub) {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".FLongNumber LIKE '%" + adminOrgNumber + "%'").append("\n");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".fnumber = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ sb.append(" GROUP BY \"PERSON\".fid )as temp ").append("\n");
|
|
|
|
|
+ sb.append(") as unCalculate,").append("\n");
|
|
|
|
|
+ sb.append("(").append("\n");
|
|
|
|
|
+ sb.append("select count(1) from (").append("\n");
|
|
|
|
|
+ sb.append("select \"PERSON\".fid FROM T_HR_ATS_DATESET AS \"DATESET\"").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCEFILEHIS AS \"FILEHIS\" ON \"FILEHIS\".FEFFDT<=\"DATESET\".FDATE AND \"FILEHIS\".FLEFFDT>=\"DATESET\".FDATE").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_BD_PERSON AS \"PERSON\" ON \"PERSON\".FID=\"FILEHIS\".FPROPOSERID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_ATTENDANCERESULT AS \"ATS_RESULT\" ON \"ATS_RESULT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"ATS_RESULT\".FAttenceDate=\"DATESET\".FDate and \"ATS_RESULT\".FAttenceDate<= {ts '" + endDate + "'} and \"ATS_RESULT\".FAttenceDate>= {ts '" + startDate + "'})").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGRESULT\" ON \"ADMINORGRESULT\".FID=\"ATS_RESULT\".FADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORGRESULT\" ON \"HRORGRESULT\".FID=\"ATS_RESULT\".FATTHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_HRO AS \"HRORG\" ON \"HRORG\".FID=\"FILEHIS\".FHRORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ATTADMINRESULT\" ON \"ATTADMINRESULT\".FID=\"ATS_RESULT\".FATTADMINORGUNITID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SCHEDULESHIFT AS \"SCHEDULESHIFT\" ON \"SCHEDULESHIFT\".FProposerID=\"FILEHIS\".FPROPOSERID AND (\"SCHEDULESHIFT\".FAttendDate=\"DATESET\".FDate)").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFT AS \"ATSSHIFT\" ON \"ATSSHIFT\".FID=\"SCHEDULESHIFT\".FDEFAULTSHIFTID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_HR_ATS_SHIFTITEM AS \"ITEMTWO\" ON \"ITEMTWO\".FGroupID=\"ATSSHIFT\".FID AND (\"ITEMTWO\".FSegment= '2')").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID=\"FILEHIS\".FADMINORGUNITID WHERE ( \"HRORG\".FID in ('00000000-0000-0000-0000-000000000000CCE7AED4') and \"DATESET\".FDate>= {ts '" + startDate + "'} and \"DATESET\".FDate<= {ts '" + endDate + "'} ) ").append("\n");
|
|
|
|
|
+ sb.append("and ( \"ATS_RESULT\".FAttenceStatus=1) ").append("\n");
|
|
|
|
|
+ if (isIncludeSub) {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".FLongNumber LIKE '%" + adminOrgNumber + "%'").append("\n");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".fnumber = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ sb.append(" GROUP BY \"PERSON\".fid )as temp ").append("\n");
|
|
|
|
|
+ sb.append(") as hasCalculate,").append("\n");
|
|
|
|
|
+ sb.append("(").append("\n");
|
|
|
|
|
+ sb.append("select count(*) from T_HR_ATS_AttendanceResultSum attendResultSum").append("\n");
|
|
|
|
|
+ sb.append("left join T_HR_ATS_AttendancePeriod attendReriod on attendReriod.fid = attendResultSum.FAttendancePeriodID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID = attendResultSum.FAdminOrgUnitID").append("\n");
|
|
|
|
|
+ sb.append("where (FStartDate>= {ts '" + startDate + "'} and FStartDate <= {ts '" + endDate + "'}) and (FEndDate>={ts '" + startDate + "'} and FEndDate <= {ts '" + endDate + "'})").append("\n");
|
|
|
|
|
+ sb.append("and FSalaryStatus =3 ").append("\n");
|
|
|
|
|
+ if (isIncludeSub) {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".FLongNumber LIKE '%" + adminOrgNumber + "%'").append("\n");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".fnumber = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ sb.append(") as hasAudit,").append("\n");
|
|
|
|
|
+ sb.append("(").append("\n");
|
|
|
|
|
+ sb.append("select count(*) from T_HR_ATS_AttendanceResultSum attendResultSum").append("\n");
|
|
|
|
|
+ sb.append("left join T_HR_ATS_AttendancePeriod attendReriod on attendReriod.fid = attendResultSum.FAttendancePeriodID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID = attendResultSum.FAdminOrgUnitID").append("\n");
|
|
|
|
|
+ sb.append("where (FStartDate>= {ts '" + startDate + "'} and FStartDate <= {ts '" + endDate + "'}) and (FEndDate>={ts '" + startDate + "'} and FEndDate <= {ts '" + endDate + "'})").append("\n");
|
|
|
|
|
+ sb.append("and FSalaryStatus =2 ").append("\n");
|
|
|
|
|
+ if (isIncludeSub) {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".FLongNumber LIKE '%" + adminOrgNumber + "%'").append("\n");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".fnumber = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ sb.append(") as unAudit,").append("\n");
|
|
|
|
|
+ sb.append("(").append("\n");
|
|
|
|
|
+ sb.append("select count(*) from T_HR_ATS_AttendanceResultSum attendResultSum").append("\n");
|
|
|
|
|
+ sb.append("left join T_HR_ATS_AttendancePeriod attendReriod on attendReriod.fid = attendResultSum.FAttendancePeriodID").append("\n");
|
|
|
|
|
+ sb.append(" LEFT JOIN T_ORG_ADMIN AS \"ADMINORGUNIT\" ON \"ADMINORGUNIT\".FID = attendResultSum.FAdminOrgUnitID").append("\n");
|
|
|
|
|
+ sb.append("where (FStartDate>= {ts '" + startDate + "'} and FStartDate <= {ts '" + endDate + "'}) and (FEndDate>={ts '" + startDate + "'} and FEndDate <= {ts '" + endDate + "'})").append("\n");
|
|
|
|
|
+ sb.append("and FSalaryStatus =1 ").append("\n");
|
|
|
|
|
+ if (isIncludeSub) {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".FLongNumber LIKE '%" + adminOrgNumber + "%'").append("\n");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sb.append(" and \"ADMINORGUNIT\".fnumber = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ sb.append(") as transferSalary").append("\n");
|
|
|
|
|
+ sb.append(" from T_ORG_ADMIN ").append("\n");
|
|
|
|
|
+ if (!StringUtils.isEmpty(adminOrgNumber)) {
|
|
|
|
|
+ sb.append(" where fnumber = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ logger.equals("getSql--" + sb.toString());
|
|
|
|
|
+ return sb.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public int getPersonNum(String adminOrgNumber) throws BOSException, SQLException {
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ sb.append("select count(*) as num from T_HR_ATS_AttendanceFile AttendanceFile where FAdminOrgUnitID in(select child.fid from T_ORG_Admin adcount ").append("\n");
|
|
|
|
|
+ sb.append("left join T_ORG_Admin child on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber)").append("\n");
|
|
|
|
|
+ sb.append("where adcount.fid = '" + adminOrgNumber + "'").append("\n");
|
|
|
|
|
+ sb.append(")").append("\n");
|
|
|
|
|
+ int num = 0;
|
|
|
|
|
+ IRowSet rs = DbUtil.executeQuery(this.ctx, sb.toString());
|
|
|
|
|
+ if (rs.next()) {
|
|
|
|
|
+ num = rs.getInt("num");
|
|
|
|
|
+ }
|
|
|
|
|
+ return num;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|