99 lines
5.4 KiB
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;
|
||
|
|
}
|
||
|
|
}
|