ecology-kq/src/com/api/kq/browser/service/impl/KQLeaveBrowserService.java

99 lines
5.4 KiB
Java

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<String, Object> getBrowserData(Map<String, Object> params) throws Exception {
Map<String, Object> apidatas = new HashMap<String, Object>();
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<SplitTableColBean> cols = new ArrayList<SplitTableColBean>();
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<String, Object> getBrowserConditionInfo(Map<String, Object> params) throws Exception {
Map<String, Object> apidatas = new HashMap<String, Object>();
List<SearchConditionItem> conditions = new ArrayList<SearchConditionItem>();
ConditionFactory conditionFactory = new ConditionFactory(user);
/*假期名称*/
conditions.add(conditionFactory.createCondition(ConditionType.INPUT, 388883, "leaveName", true));
/*请假单位*/
List<SearchConditionOption> optionsList = new ArrayList<SearchConditionOption>();
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<SearchConditionOption>();
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;
}
}