package com.api.kq.browser.service.impl; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; import com.api.browser.bean.SplitTableBean; import com.api.browser.bean.SplitTableColBean; import com.api.browser.service.BrowserService; import com.api.browser.util.BoolAttr; import com.api.browser.util.BrowserConstant; import com.api.browser.util.ConditionFactory; import com.api.browser.util.ConditionType; import com.api.browser.util.SplitTableUtil; import weaver.general.Util; import weaver.hrm.resource.ResourceComInfo; import weaver.systeminfo.SystemEnv; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 假期浏览按钮 */ public class KQLeaveBrowserService extends BrowserService { @Override public Map getBrowserData(Map params) throws Exception { Map apidatas = new HashMap(); String resourceId = Util.null2String(params.get("resourceId"));//人员ID String leaveName = Util.null2String(params.get("leaveName"));//假期名称 String minimumUnit = Util.null2String(params.get("minimumUnit"));//请假单位 String computingMode = Util.null2String(params.get("computingMode"));//计算请假时长方式 String backFields = " * "; String sqlFrom = " kq_leaveRules "; String sqlWhere = " where (isdelete is null or isdelete!=1) "; if (!leaveName.equals("")) { sqlWhere += " and leaveName like '%" + leaveName + "%'"; } if (!minimumUnit.equals("") && !minimumUnit.equals("0")) { sqlWhere += " and minimumUnit=" + minimumUnit; } if (!computingMode.equals("") && !computingMode.equals("0")) { sqlWhere += " and computingMode=" + computingMode; } if (resourceId.equals("")) { sqlWhere += " and 1=2 "; } else { try{ ResourceComInfo resourceComInfo = new ResourceComInfo(); sqlWhere += " and organizationType=1 and organizationId=" + resourceComInfo.getSubCompanyID(resourceId) + " union select * from kq_leaveRules " + sqlWhere + " and organizationType=0 " + " and leaveName not in (select leaveName from kq_leaverules where organizationType=1 and organizationId=" + resourceComInfo.getSubCompanyID(resourceId) + ")"; }catch (Exception e){ e.printStackTrace(); } } List cols = new ArrayList(); cols.add(new SplitTableColBean("true", "id")); cols.add(new SplitTableColBean("25%", SystemEnv.getHtmlLabelName(388883, user.getLanguage()), "leaveName").setIsInputCol(BoolAttr.TRUE)); cols.add(new SplitTableColBean("25%", SystemEnv.getHtmlLabelName(388884, user.getLanguage()), "minimumUnit", "", "com.engine.kq.util.KQTransMethod.getMinimumUnitName", "" + user.getLanguage())); cols.add(new SplitTableColBean("25%", SystemEnv.getHtmlLabelName(388888, user.getLanguage()), "computingMode", "", "com.engine.kq.util.KQTransMethod.getComputingModeName", "" + user.getLanguage())); cols.add(new SplitTableColBean("25%", SystemEnv.getHtmlLabelName(388892, user.getLanguage()), "distributionMode", "", "com.engine.kq.util.KQTransMethod.getDistributionModName", "column:balanceEnable+" + user.getLanguage())); SplitTableBean tableBean = new SplitTableBean(backFields, sqlFrom, sqlWhere, "", "id", "asc", cols); apidatas.putAll(SplitTableUtil.makeListDataResult(tableBean)); return apidatas; } @Override public Map getBrowserConditionInfo(Map params) throws Exception { Map apidatas = new HashMap(); List conditions = new ArrayList(); ConditionFactory conditionFactory = new ConditionFactory(user); /*假期名称*/ conditions.add(conditionFactory.createCondition(ConditionType.INPUT, 388883, "leaveName", true)); /*请假单位*/ List optionsList = new ArrayList(); optionsList.add(new SearchConditionOption("0", SystemEnv.getHtmlLabelName(337, user.getLanguage()))); optionsList.add(new SearchConditionOption("1", SystemEnv.getHtmlLabelName(388885, user.getLanguage()))); optionsList.add(new SearchConditionOption("2", SystemEnv.getHtmlLabelName(388886, user.getLanguage()))); optionsList.add(new SearchConditionOption("3", SystemEnv.getHtmlLabelName(388887, user.getLanguage()))); conditions.add(conditionFactory.createCondition(ConditionType.SELECT, 388884, "minimumUnit", optionsList)); /*计算请假时长方式*/ optionsList = new ArrayList(); optionsList.add(new SearchConditionOption("0", SystemEnv.getHtmlLabelName(337, user.getLanguage()))); optionsList.add(new SearchConditionOption("1", SystemEnv.getHtmlLabelName(388890, user.getLanguage()))); optionsList.add(new SearchConditionOption("2", SystemEnv.getHtmlLabelName(388889, user.getLanguage()))); conditions.add(conditionFactory.createCondition(ConditionType.SELECT, 388884, "computingMode", optionsList)); apidatas.put(BrowserConstant.BROWSER_RESULT_CONDITIONS, conditions); return apidatas; } }