新美光考勤代码第一次拉取svn 不做后续备案文件
parent
6733d55725
commit
6efd593e65
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,979 @@
|
||||
package com.engine.kq.cmd.group;
|
||||
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.api.browser.bean.SearchConditionOption;
|
||||
import com.api.hrm.bean.HrmFieldBean;
|
||||
import com.api.hrm.util.HrmFieldSearchConditionComInfo;
|
||||
import com.cloudstore.dev.api.util.Util_TableMap;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.kq.biz.KQGroupComInfo;
|
||||
import com.engine.kq.cmd.shiftmanagement.toolkit.ShiftManagementToolKit;
|
||||
import com.engine.kq.util.PageUidFactory;
|
||||
import com.engine.kq.util.UtilKQ;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.moduledetach.ManageDetachComInfo;
|
||||
import weaver.hrm.settings.ChgPasswdReminder;
|
||||
import weaver.hrm.settings.RemindSettings;
|
||||
import weaver.proj.util.SQLUtil;
|
||||
import weaver.systeminfo.SystemEnv;
|
||||
import weaver.systeminfo.systemright.CheckSubCompanyRight;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class GetGroupFormCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
public GetGroupFormCmd(Map<String, Object> params, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String,Object> retmap = new HashMap<String,Object>();
|
||||
List<Map<String,Object>> grouplist = new ArrayList<Map<String,Object>>();
|
||||
Map<String,Object> groupitem = null;
|
||||
List<Object> itemlist = null;
|
||||
Map<String, Object> otherparam = null;
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "";
|
||||
try{
|
||||
//必要的权限判断
|
||||
if(!HrmUserVarify.checkUserRight("HrmKQGroup:Add",user)) {
|
||||
retmap.put("status", "-1");
|
||||
retmap.put("message", SystemEnv.getHtmlLabelName(2012, user.getLanguage()));
|
||||
return retmap;
|
||||
}
|
||||
|
||||
ChgPasswdReminder reminder=new ChgPasswdReminder();
|
||||
RemindSettings settings=reminder.getRemindSettings();
|
||||
KQGroupComInfo kQGroupComInfo = new KQGroupComInfo();
|
||||
ManageDetachComInfo manageDetachComInfo = new ManageDetachComInfo();
|
||||
boolean hrmdetachable = manageDetachComInfo.isUseHrmManageDetach();//是否开启了人力资源模块的管理分权
|
||||
|
||||
String id = Util.null2String(params.get("id"));
|
||||
String subcompanyid = Util.null2String(params.get("subcompanyid"));//所属分部
|
||||
String tabKey = Util.null2String(params.get("tabKey"));
|
||||
Map<String, List<HrmFieldBean>> fieldGroups= new LinkedHashMap<String, List<HrmFieldBean>>();
|
||||
List<HrmFieldBean> lsField = new ArrayList<HrmFieldBean>();
|
||||
HrmFieldBean hrmFieldBean = null;
|
||||
List<SearchConditionOption> options = null;
|
||||
|
||||
String groupname = "";//考勤组名称
|
||||
String kqtype = "1";//考勤类型 默认固定班制
|
||||
String excludeid = "";//考勤组排除人员
|
||||
String excludecount = "";//考勤组排除人员是否参与统计
|
||||
String serialids = "";//考勤班次
|
||||
String overtimeRuleId = "";//加班班次
|
||||
String overtimeType = "0";//加班类型
|
||||
List<Integer> lsWeekday = new ArrayList<>();//考勤工作日
|
||||
String weekday = "";
|
||||
String signstart = "";//考勤开始时间
|
||||
String workhour = "";//工作时长
|
||||
String signintype = "1";//打卡方式
|
||||
String ipscope = "";//应用IP范围
|
||||
String ipscope_v4_pc = "";//应用IP范围 v4 pc端
|
||||
String ipscope_v4_em = "";//应用IP范围 v4 移动端
|
||||
String ipscope_v6_pc = "";//应用IP范围 v6 pc端
|
||||
String ipscope_v6_em = "";//应用IP范围 v6 移动端
|
||||
String locationcheck = "";//启用办公地点考勤
|
||||
//String locationcheckscope = "300";//有效范围
|
||||
String wificheck = "";//启用wifi考勤
|
||||
String outsidesign = "";//允许外勤打卡
|
||||
String outsignapprove = "";//545427 外勤打卡需要审批
|
||||
String validity = "";//考勤组有效期
|
||||
String validityfromdate = "";//考勤组有效期开始时间
|
||||
String validityenddate = "";//考勤组有效期结束时间
|
||||
String locationfacecheck = "";//办公地点启用人脸识别拍照打卡
|
||||
String locationfacechecktype = "";//办公地点启用人脸识别拍照打卡方式
|
||||
String locationshowaddress = "";//有效识别半径内显示同一地址
|
||||
String wififacecheck = "";//wifi启用人脸识别拍照打卡
|
||||
String wififacechecktype = "";//wifi启用人脸识别拍照打卡方式
|
||||
String self_shift = "0";//启用员工自我排班
|
||||
String auto_checkin = "0";//允许客户端设置自动考勤 上班卡
|
||||
String auto_checkin_before = "30";//允许客户端设置自动考勤 上班卡开始分钟数
|
||||
String auto_checkin_after = "30";//允许客户端设置自动考勤 上班卡结束分钟时
|
||||
String auto_checkout = "0";//允许客户端设置自动考勤 下班卡
|
||||
String auto_checkout_before = "5";//允许客户端设置自动考勤 下班卡 下班卡开始分钟数
|
||||
String auto_checkout_after = "60";//允许客户端设置自动考勤 下班卡 下班卡结束分钟时
|
||||
String calmethod = "1";//工作时长计算方式 1是打卡时间累加计算 2是打卡时间成对计算
|
||||
String abnormalremind = "0";//考勤异常提醒 1是打开 0是关闭
|
||||
String isPhotoPunchEnabled = "0";//启用考勤拍照打卡
|
||||
|
||||
List<Map<String,Object>> replaceDatas = new ArrayList<Map<String,Object>>();
|
||||
if(id.length()>0){
|
||||
sql = "select * from kq_group where id=?";
|
||||
rs.executeQuery(sql,id);
|
||||
if(rs.next()){
|
||||
groupname = Util.null2String(rs.getString("groupname"));
|
||||
excludeid = Util.null2String(rs.getString("excludeid"));
|
||||
excludecount = Util.null2String(rs.getString("excludecount"));
|
||||
subcompanyid = Util.null2String(rs.getString("subcompanyid"));
|
||||
kqtype = Util.null2String(rs.getString("kqtype"));
|
||||
serialids=Util.null2String(rs.getString("serialids"));
|
||||
overtimeType=Util.null2s(rs.getString("overtime_type"),"0");
|
||||
weekday = Util.null2String(rs.getString("weekday"));
|
||||
signstart = Util.null2String(rs.getString("signstart"));
|
||||
workhour = Util.null2String(rs.getString("workhour"));
|
||||
signintype = Util.null2String(rs.getString("signintype"));
|
||||
ipscope = Util.null2String(rs.getString("ipscope"));
|
||||
ipscope_v4_pc = Util.null2String(rs.getString("ipscope_v4_pc"));
|
||||
ipscope_v4_em = Util.null2String(rs.getString("ipscope_v4_em"));
|
||||
ipscope_v6_pc = Util.null2String(rs.getString("ipscope_v6_pc"));
|
||||
ipscope_v6_em = Util.null2String(rs.getString("ipscope_v6_em"));
|
||||
locationcheck = Util.null2String(rs.getString("locationcheck"));
|
||||
//locationcheckscope = Util.null2String(rs.getString("locationcheckscope"));
|
||||
wificheck = Util.null2String(rs.getString("wificheck"));
|
||||
outsidesign = Util.null2String(rs.getString("outsidesign"));
|
||||
outsignapprove = Util.null2String(rs.getString("outsignapprove"));
|
||||
validity = Util.null2String(rs.getString("validity"));
|
||||
validityfromdate = Util.null2String(rs.getString("validityfromdate"));
|
||||
validityenddate = Util.null2String(rs.getString("validityenddate"));
|
||||
locationfacecheck = Util.null2String(rs.getString("locationfacecheck"));
|
||||
locationfacechecktype = Util.null2String(rs.getString("locationfacechecktype"));
|
||||
locationshowaddress = Util.null2String(rs.getString("locationshowaddress"));
|
||||
wififacecheck = Util.null2String(rs.getString("wififacecheck"));
|
||||
wififacechecktype = Util.null2String(rs.getString("wififacechecktype"));
|
||||
self_shift = Util.null2String(rs.getString("self_shift"));
|
||||
auto_checkin = Util.null2String(rs.getString("auto_checkin"),"0");
|
||||
auto_checkin_before = Util.null2String(rs.getString("auto_checkin_before"),"30");
|
||||
auto_checkin_after = Util.null2String(rs.getString("auto_checkin_after"),"30");
|
||||
auto_checkout = Util.null2String(rs.getString("auto_checkout"),"0");
|
||||
auto_checkout_before = Util.null2String(rs.getString("auto_checkout_before"),"5");
|
||||
auto_checkout_after = Util.null2String(rs.getString("auto_checkout_after"),"60");
|
||||
calmethod = Util.null2s(rs.getString("calmethod"),"1");
|
||||
isPhotoPunchEnabled = Util.null2s(rs.getString("isPhotoPunchEnabled"),"0");
|
||||
abnormalremind = Util.null2String(rs.getString("abnormalremind"));
|
||||
}
|
||||
if("0".equals(overtimeType)){
|
||||
String dbtype = rs.getDBType();
|
||||
String overSql = "select * from kq_overtimerules where ','+convert(varchar(2000),groupids)+',' like '%," + id + ",%' and (isDelete is null or isDelete!=1) ";
|
||||
if ("oracle".equalsIgnoreCase(dbtype)) {
|
||||
overSql = "select * from kq_overtimerules where "+SQLUtil.filteSql(rs.getDBType(), " ','+groupids+',' like '%," + id + ",%' and (isDelete is null or isDelete!=1) ");
|
||||
}else if("mysql".equalsIgnoreCase(dbtype)){
|
||||
overSql = "select * from kq_overtimerules where CONCAT(',',cast(groupids as char),',') like '%,"+id+",%' and (isDelete is null or isDelete!=1) ";
|
||||
}else if ("postgresql".equalsIgnoreCase(dbtype)) {
|
||||
overSql = "select * from kq_overtimerules where CONCAT(',',groupids,',') like '%,"+id+",%' and (isDelete is null or isDelete!=1) ";
|
||||
}
|
||||
Map<String,Object> map = new HashMap<String,Object>();
|
||||
rs.execute(overSql);
|
||||
if(rs.next()){
|
||||
String oId = rs.getString("id");
|
||||
overtimeRuleId = oId;
|
||||
String name = rs.getString("name");
|
||||
map.put("id", oId);
|
||||
map.put("name", name);
|
||||
replaceDatas.add(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(tabKey.equals("1")){
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("groupname");
|
||||
hrmFieldBean.setFieldlabel("388700");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(groupname);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setRules("required|string");
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("excludeid");
|
||||
hrmFieldBean.setFieldlabel("388703");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("17");
|
||||
hrmFieldBean.setFieldvalue(excludeid);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("overtime_type");
|
||||
hrmFieldBean.setFieldlabel("388881");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("3");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("0",SystemEnv.getHtmlLabelName(126821, user.getLanguage()),overtimeType.equals("0")));
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(546276, user.getLanguage()),overtimeType.equals("1")));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setFieldvalue(overtimeType);
|
||||
hrmFieldBean.setViewAttr(2);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("overtime_rule_id");
|
||||
hrmFieldBean.setFieldlabel("388881");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("kqovertimerule");
|
||||
hrmFieldBean.setFieldvalue(overtimeRuleId);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("excludecount");
|
||||
hrmFieldBean.setFieldlabel("507794");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(excludecount);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
//增加有效期设置
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("validity");
|
||||
hrmFieldBean.setFieldlabel("15030");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(validity);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
//考勤异常提醒
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("abnormalremind");
|
||||
hrmFieldBean.setFieldlabel("547511");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(abnormalremind);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("validityfromdate");
|
||||
hrmFieldBean.setFieldlabel("742");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(validityfromdate);
|
||||
hrmFieldBean.setRules("required|string");
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setIsFormField(true);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("validityenddate");
|
||||
hrmFieldBean.setFieldlabel("743");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(validityenddate);
|
||||
hrmFieldBean.setRules("required|string");
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setIsFormField(true);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("self_shift");
|
||||
hrmFieldBean.setFieldlabel("517026");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(self_shift);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
String defaultSubcompanyid = "";
|
||||
if(hrmdetachable){
|
||||
CheckSubCompanyRight newCheck=new CheckSubCompanyRight();
|
||||
int[] subcomids = newCheck.getSubComByUserRightId(user.getUID(),"HrmKQGroup:Add",0);
|
||||
ManageDetachComInfo detachComInfo = new ManageDetachComInfo();
|
||||
if(detachComInfo.isUseHrmManageDetach()){
|
||||
defaultSubcompanyid = detachComInfo.getHrmdftsubcomid();
|
||||
}else{
|
||||
rs.executeProc("SystemSet_Select","");
|
||||
if(rs.next()){
|
||||
if(subcompanyid.length()==0||subcompanyid.equals("0")){
|
||||
defaultSubcompanyid = Util.null2String(rs.getString("dftsubcomid"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean hasRight = false;
|
||||
for (int i = 0; subcomids!=null&& i < subcomids.length; i++) {
|
||||
if((""+subcomids[i]).equals(defaultSubcompanyid)){
|
||||
hasRight = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!hasRight){
|
||||
defaultSubcompanyid = "";
|
||||
}
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("subcompanyid");
|
||||
hrmFieldBean.setFieldlabel("19799");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("169");
|
||||
hrmFieldBean.setFieldvalue(subcompanyid.length()==0&&id.length()==0?defaultSubcompanyid:subcompanyid);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setRules("required|integer");
|
||||
lsField.add(hrmFieldBean);
|
||||
}
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("kqtype");
|
||||
hrmFieldBean.setFieldlabel("388704");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("3");
|
||||
hrmFieldBean.setFieldvalue(kqtype);
|
||||
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(500385, user.getLanguage()),kqtype.equals("1")));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(500386, user.getLanguage()),kqtype.equals("2")));
|
||||
options.add(new SearchConditionOption("3",SystemEnv.getHtmlLabelName(500387, user.getLanguage()),kqtype.equals("3")));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setViewAttr(id.length()>0?1:2);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
//固定班制
|
||||
retmap.put("fixedSchedulce",getFixedSchedulce());
|
||||
//排班制
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("serialids");
|
||||
hrmFieldBean.setFieldlabel("389098");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("mkqshift");
|
||||
hrmFieldBean.setFieldvalue(serialids);
|
||||
lsField.add(hrmFieldBean);
|
||||
retmap.put("shiftSchedulceTable",getShiftSchedulceTable());
|
||||
|
||||
//自由班制
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("weekday");
|
||||
hrmFieldBean.setFieldlabel("389097");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(weekday);
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
for(int i=0;i<7;i++){
|
||||
options.add(new SearchConditionOption(""+i,UtilKQ.getWeekDay(i,user.getLanguage()),lsWeekday.contains(i)));
|
||||
}
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("signstart");
|
||||
hrmFieldBean.setFieldlabel("16039");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("19");
|
||||
hrmFieldBean.setFieldvalue(signstart);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setRules("required|string");
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("workhour");
|
||||
hrmFieldBean.setFieldlabel("390053");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(workhour);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setRules("required|numeric");
|
||||
otherparam = new HashMap<String, Object>();
|
||||
otherparam.put("min","1");
|
||||
otherparam.put("precision",1);
|
||||
otherparam.put("max","24");
|
||||
hrmFieldBean.setOtherparam(otherparam);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
if(id.length()>0){
|
||||
// 编辑的时候只有弹性的显示这个说明
|
||||
if(kqtype.equals("3")){
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("calmethod");
|
||||
hrmFieldBean.setFieldlabel("529683");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("3");
|
||||
hrmFieldBean.setFieldvalue(calmethod);
|
||||
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(529686, user.getLanguage()),calmethod.equals("1")));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(529685, user.getLanguage()),calmethod.equals("2")));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
lsField.add(hrmFieldBean);
|
||||
}
|
||||
}else{
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("calmethod");
|
||||
hrmFieldBean.setFieldlabel("529683");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("3");
|
||||
hrmFieldBean.setFieldvalue(calmethod);
|
||||
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(529686, user.getLanguage()),calmethod.equals("1")));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(529685, user.getLanguage()),calmethod.equals("2")));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
lsField.add(hrmFieldBean);
|
||||
}
|
||||
|
||||
if(id.length()>0){
|
||||
// 编辑的时候只有弹性的显示这个说明
|
||||
if(kqtype.equals("3")){
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("desc");
|
||||
hrmFieldBean.setFieldlabel("85");
|
||||
hrmFieldBean.setFieldhtmltype("8");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(SystemEnv.getHtmlLabelName(520468, Util.getIntValue(user.getLanguage()))
|
||||
+"<br/>"+SystemEnv.getHtmlLabelName(520469, Util.getIntValue(user.getLanguage()))
|
||||
+"<br/>"+SystemEnv.getHtmlLabelName(520859, Util.getIntValue(user.getLanguage())));
|
||||
hrmFieldBean.setViewAttr(1);
|
||||
lsField.add(hrmFieldBean);
|
||||
}
|
||||
}else{
|
||||
//新增的时候需要前端控制显示这个字段
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("desc");
|
||||
hrmFieldBean.setFieldlabel("85");
|
||||
hrmFieldBean.setFieldhtmltype("8");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(SystemEnv.getHtmlLabelName(520468, Util.getIntValue(user.getLanguage()))
|
||||
+"<br/>"+SystemEnv.getHtmlLabelName(520469, Util.getIntValue(user.getLanguage()))
|
||||
+"<br/>"+SystemEnv.getHtmlLabelName(520859, Util.getIntValue(user.getLanguage())));
|
||||
hrmFieldBean.setViewAttr(1);
|
||||
lsField.add(hrmFieldBean);
|
||||
}
|
||||
|
||||
fieldGroups.put("1361", lsField);
|
||||
}else if(tabKey.equals("2")){
|
||||
//signintype,ipscope,locationcheck,locationcheckscope,wificheck
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("signintype");
|
||||
hrmFieldBean.setFieldlabel("388708");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("3");
|
||||
hrmFieldBean.setFieldvalue(signintype);
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(389938, user.getLanguage()),signintype.equals("1")));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(388710, user.getLanguage()),signintype.equals("2")));
|
||||
options.add(new SearchConditionOption("3",SystemEnv.getHtmlLabelName(389939, user.getLanguage()),signintype.equals("3")));
|
||||
options.add(new SearchConditionOption("4",SystemEnv.getHtmlLabelName(502765, user.getLanguage()),signintype.equals("4")));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("ipscope_v4_pc");
|
||||
hrmFieldBean.setFieldlabel("388712");
|
||||
hrmFieldBean.setFieldlabelname(SystemEnv.getHtmlLabelName(388712, Util.getIntValue(user.getLanguage()))+"( ipv4 )");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(ipscope_v4_pc);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("ipscope_v4_em");
|
||||
hrmFieldBean.setFieldlabel("388712");
|
||||
hrmFieldBean.setFieldlabelname(SystemEnv.getHtmlLabelName(388712, Util.getIntValue(user.getLanguage()))+"( ipv4 )");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(ipscope_v4_em);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
// hrmFieldBean = new HrmFieldBean();
|
||||
// hrmFieldBean.setFieldname("ipscope_v6_pc");
|
||||
// hrmFieldBean.setFieldlabel("388712");
|
||||
// hrmFieldBean.setFieldlabelname(SystemEnv.getHtmlLabelName(388712,weaver.general.Util.getIntValue(user.getLanguage()))+"( ipv6 )");
|
||||
// hrmFieldBean.setFieldhtmltype("1");
|
||||
// hrmFieldBean.setType("1");
|
||||
// hrmFieldBean.setFieldvalue(ipscope_v6_pc);
|
||||
// lsField.add(hrmFieldBean);
|
||||
//
|
||||
// hrmFieldBean = new HrmFieldBean();
|
||||
// hrmFieldBean.setFieldname("ipscope_v6_em");
|
||||
// hrmFieldBean.setFieldlabel("388712");
|
||||
// hrmFieldBean.setFieldlabelname(SystemEnv.getHtmlLabelName(388712,weaver.general.Util.getIntValue(user.getLanguage()))+"( ipv6 )");
|
||||
// hrmFieldBean.setFieldhtmltype("1");
|
||||
// hrmFieldBean.setType("1");
|
||||
// hrmFieldBean.setFieldvalue(ipscope_v6_em);
|
||||
// lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("outsidesign");
|
||||
hrmFieldBean.setFieldlabel("390302");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelNames("545433,545434,545435" ,user.getLanguage()));
|
||||
hrmFieldBean.setFieldvalue(outsidesign);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("isPhotoPunchEnabled");
|
||||
hrmFieldBean.setFieldlabel("547013");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(isPhotoPunchEnabled);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("outsignapprove");
|
||||
hrmFieldBean.setFieldlabel("545427");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelName(545466,user.getLanguage()));
|
||||
hrmFieldBean.setFieldvalue(outsignapprove);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("locationcheck");
|
||||
hrmFieldBean.setFieldlabel("388713");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(locationcheck);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
// hrmFieldBean = new HrmFieldBean();
|
||||
// hrmFieldBean.setFieldname("locationcheckscope");
|
||||
// hrmFieldBean.setFieldlabel("388714");
|
||||
// hrmFieldBean.setFieldhtmltype("5");
|
||||
// hrmFieldBean.setType("1");
|
||||
// hrmFieldBean.setFieldvalue(locationcheckscope);
|
||||
// options = new ArrayList<SearchConditionOption>();
|
||||
// options.add(new SearchConditionOption("50","50"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("50")));
|
||||
// options.add(new SearchConditionOption("100","100"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("100")));
|
||||
// options.add(new SearchConditionOption("200","200"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("200")));
|
||||
// options.add(new SearchConditionOption("300","300"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("300")));
|
||||
// options.add(new SearchConditionOption("400","400"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("400")));
|
||||
// options.add(new SearchConditionOption("500","500"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("500")));
|
||||
// options.add(new SearchConditionOption("600","600"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("600")));
|
||||
// options.add(new SearchConditionOption("700","700"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("700")));
|
||||
// options.add(new SearchConditionOption("800","800"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("800")));
|
||||
// options.add(new SearchConditionOption("900","900"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("900")));
|
||||
// options.add(new SearchConditionOption("1000","1000"+SystemEnv.getHtmlLabelName(125675, user.getLanguage()),locationcheckscope.equals("1000")));
|
||||
// hrmFieldBean.setSelectOption(options);
|
||||
// lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("locationfacecheck");
|
||||
hrmFieldBean.setFieldlabel("507921");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(locationfacecheck);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("locationfacechecktype");
|
||||
hrmFieldBean.setFieldlabel("537091");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(locationfacechecktype);
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(537092,user.getLanguage()),true));
|
||||
if("1".equals(settings.getSecondCL())){
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(537093,user.getLanguage())));
|
||||
}
|
||||
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelName(537095,user.getLanguage()));
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("locationshowaddress");
|
||||
hrmFieldBean.setFieldlabel("507922");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(locationshowaddress);
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelName(507990,user.getLanguage()));
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("wificheck");
|
||||
hrmFieldBean.setFieldlabel("388715");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(wificheck);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("wififacecheck");
|
||||
hrmFieldBean.setFieldlabel("507921");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(wififacecheck);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("wififacechecktype");
|
||||
hrmFieldBean.setFieldlabel("537091");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue(wififacechecktype);
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(537092,user.getLanguage())));
|
||||
if("1".equals(settings.getSecondCL())){
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(537093,user.getLanguage())));
|
||||
}
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelName(537095,user.getLanguage()));
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
if(!"3".equalsIgnoreCase(kqtype)){
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("auto_checkin");
|
||||
hrmFieldBean.setFieldlabel("518736");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(Util.null2s(auto_checkin,"0"));
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelName(521383,user.getLanguage()));
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("auto_checkin_before");
|
||||
hrmFieldBean.setFieldlabel("518737");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(Util.null2s(auto_checkin_before,"30"));
|
||||
hrmFieldBean.setRules("required|integer");
|
||||
otherparam = new HashMap<String, Object>();
|
||||
otherparam.put("min","1");
|
||||
hrmFieldBean.setOtherparam(otherparam);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("auto_checkin_after");
|
||||
hrmFieldBean.setFieldlabel("518737");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(Util.null2s(auto_checkin_after,"30"));
|
||||
hrmFieldBean.setRules("required|integer");
|
||||
otherparam = new HashMap<String, Object>();
|
||||
otherparam.put("min","0");
|
||||
hrmFieldBean.setOtherparam(otherparam);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("auto_checkout");
|
||||
hrmFieldBean.setFieldlabel("518738");
|
||||
hrmFieldBean.setFieldhtmltype("4");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(Util.null2s(auto_checkout,"0"));
|
||||
hrmFieldBean.setTip(SystemEnv.getHtmlLabelName(521383,user.getLanguage()));
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("auto_checkout_before");
|
||||
hrmFieldBean.setFieldlabel("518739");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(Util.null2s(auto_checkout_before,"5"));
|
||||
hrmFieldBean.setRules("required|integer");
|
||||
otherparam = new HashMap<String, Object>();
|
||||
otherparam.put("min","0");
|
||||
hrmFieldBean.setOtherparam(otherparam);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("auto_checkout_after");
|
||||
hrmFieldBean.setFieldlabel("518739");
|
||||
hrmFieldBean.setFieldhtmltype("1");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setFieldvalue(Util.null2s(auto_checkout_after,"60"));
|
||||
hrmFieldBean.setRules("required|integer");
|
||||
otherparam = new HashMap<String, Object>();
|
||||
otherparam.put("min","0");
|
||||
hrmFieldBean.setOtherparam(otherparam);
|
||||
lsField.add(hrmFieldBean);
|
||||
}
|
||||
|
||||
//排班校验下拉框
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("pbcheck");
|
||||
hrmFieldBean.setFieldlabel("-85230");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue("1");
|
||||
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1", "不校验"));
|
||||
options.add(new SearchConditionOption("2", "做五休二"));
|
||||
options.add(new SearchConditionOption("3", "做四休二"));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
hrmFieldBean.setViewAttr(id.length()>0?1:2);
|
||||
|
||||
fieldGroups.put("20331", lsField);
|
||||
retmap.put("locationSessionKey",getKQLocationList(""));
|
||||
retmap.put("wifiSessionKey",getKQWifiList(""));
|
||||
Map<String,Object> helpTipMap = Maps.newHashMap();
|
||||
helpTipMap.put("auto_checkin_before", SystemEnv.getHtmlLabelName(521211, user.getLanguage()));
|
||||
helpTipMap.put("auto_checkout_before", SystemEnv.getHtmlLabelName(521211, user.getLanguage()));
|
||||
retmap.put("helpTipMap",helpTipMap);
|
||||
|
||||
}
|
||||
|
||||
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo();
|
||||
SearchConditionItem searchConditionItem = null;
|
||||
Iterator<Map.Entry<String, List<HrmFieldBean>>> iter = fieldGroups.entrySet().iterator();
|
||||
while (iter.hasNext()) {
|
||||
Map.Entry<String, List<HrmFieldBean>> entry = iter.next();
|
||||
String grouplabel = entry.getKey();
|
||||
List<HrmFieldBean> fields = entry.getValue();
|
||||
groupitem = new HashMap<String, Object>();
|
||||
groupitem.put("title", SystemEnv.getHtmlLabelNames(grouplabel, user.getLanguage()));
|
||||
groupitem.put("defaultshow", true);
|
||||
|
||||
itemlist = new ArrayList<Object>();
|
||||
for (int j = 0; j < fields.size(); j++) {
|
||||
hrmFieldBean = fields.get(j);
|
||||
searchConditionItem = hrmFieldSearchConditionComInfo.getSearchConditionItem(hrmFieldBean, user);
|
||||
if(hrmFieldBean.getFieldname().equals("subcompanyid")){
|
||||
searchConditionItem.getBrowserConditionParam().getDataParams().put("rightStr", "HrmKQGroup:Add");
|
||||
searchConditionItem.getBrowserConditionParam().getCompleteParams().put("rightStr", "HrmKQGroup:Add");
|
||||
}
|
||||
if(hrmFieldBean.getFieldname().equals("overtime_rule_id")){
|
||||
if(CollectionUtils.isNotEmpty(replaceDatas)){
|
||||
searchConditionItem.getBrowserConditionParam().setReplaceDatas(replaceDatas);
|
||||
}
|
||||
}
|
||||
if(hrmFieldBean.getFieldname().equals("overtime_type")){
|
||||
searchConditionItem.setHelpfulTip(SystemEnv.getHtmlLabelName(546300, user.getLanguage()));
|
||||
}
|
||||
itemlist.add(searchConditionItem);
|
||||
}
|
||||
groupitem.put("items", itemlist);
|
||||
grouplist.add(groupitem);
|
||||
}
|
||||
retmap.put("formField", grouplist);
|
||||
retmap.put("status", "1");
|
||||
int operatelevel = -1;
|
||||
if(hrmdetachable){
|
||||
if(subcompanyid.length()>0 && !subcompanyid.equalsIgnoreCase("0")){
|
||||
CheckSubCompanyRight checkSubCompanyRight = new CheckSubCompanyRight();
|
||||
operatelevel=checkSubCompanyRight.ChkComRightByUserRightCompanyId(user.getUID(),"HrmKQGroup:Add",Util.getIntValue(subcompanyid,-1));
|
||||
}
|
||||
}else{
|
||||
operatelevel = 2;
|
||||
}
|
||||
|
||||
if(user.getUID() == 1 || subcompanyid.length()==0 || subcompanyid.equalsIgnoreCase("0")){
|
||||
operatelevel = 2;
|
||||
}
|
||||
if(operatelevel > 0){
|
||||
retmap.put("canAdd", true);
|
||||
}else{
|
||||
retmap.put("canAdd", false);
|
||||
}
|
||||
retmap.put("kqtype", kqtype);
|
||||
}catch (Exception e) {
|
||||
retmap.put("status", "-1");
|
||||
retmap.put("message", SystemEnv.getHtmlLabelName(382661,user.getLanguage()));
|
||||
writeLog(e);
|
||||
}
|
||||
return retmap;
|
||||
}
|
||||
|
||||
public String getKQLocationList(String locationname){
|
||||
String sessionKey = "";
|
||||
String groupId = Util.null2String(params.get("id"));
|
||||
String backFields = " id,locationname,longitude,latitude,address,checkscope ";
|
||||
String sqlFrom = " kq_location ";
|
||||
String sqlWhere = " where groupid= "+groupId;
|
||||
String orderby = " id " ;
|
||||
String tableString = "";
|
||||
|
||||
if (locationname.length() > 0){
|
||||
sqlWhere += " and locationname like '%"+locationname+"%' ";
|
||||
}
|
||||
|
||||
String pageUid = PageUidFactory.getHrmPageUid("KQLocationList");
|
||||
|
||||
tableString=""+
|
||||
"<table pageUid=\""+pageUid+"\" pagesize=\"10\" tabletype=\"checkbox\">"+
|
||||
"<sql backfields=\""+backFields+"\" sqlform=\""+sqlFrom+"\" sqlprimarykey=\"id\" sqlorderby=\""+orderby+"\" sqlsortway=\"asc\" sqldistinct=\"true\" sqlwhere=\""+Util.toHtmlForSplitPage(sqlWhere)+"\"/>"+
|
||||
"<head>"+
|
||||
" <col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(388717,user.getLanguage())+"\" column=\"locationname\"/>"+
|
||||
" <col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(801,user.getLanguage())+"\" column=\"longitude\" orderkey=\"longitude\"/>"+
|
||||
" <col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(802,user.getLanguage())+"\" column=\"latitude\" orderkey=\"latitude\"/>"+
|
||||
" <col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(507863,user.getLanguage())+"\" column=\"checkscope\" orderkey=\"checkscope\"/>"+
|
||||
" <col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(104,user.getLanguage())+"\" column=\"id\" orderkey=\"id\"/>"+
|
||||
" <col width=\"0%\" hide=\"true\" display=\"true\" text=\"\" column=\"address\"/>"+
|
||||
"</head>"+
|
||||
"</table>";
|
||||
|
||||
//主要用于 显示定制列以及 表格 每页展示记录数选择
|
||||
sessionKey = pageUid + "_" + Util.getEncrypt(Util.getRandom());
|
||||
Util_TableMap.setVal(sessionKey, tableString);
|
||||
|
||||
return sessionKey;
|
||||
}
|
||||
|
||||
public String getKQWifiList(String wifiname){
|
||||
String sessionKey = "";
|
||||
String groupId = Util.null2String(params.get("id"));
|
||||
String backFields = " id,wifiname,mac ";
|
||||
String sqlFrom = " kq_wifi ";
|
||||
String sqlWhere = " where groupid= "+groupId;
|
||||
String orderby = " id " ;
|
||||
String tableString = "";
|
||||
|
||||
if (wifiname.length() > 0){
|
||||
sqlWhere += " and wifiname like '%"+wifiname+"%' ";
|
||||
}
|
||||
|
||||
String pageUid = PageUidFactory.getHrmPageUid("KQLocationList");
|
||||
|
||||
tableString=""+
|
||||
"<table pageUid=\""+pageUid+"\" pagesize=\"10\" tabletype=\"checkbox\">"+
|
||||
"<sql backfields=\""+backFields+"\" sqlform=\""+sqlFrom+"\" sqlprimarykey=\"id\" sqlorderby=\""+orderby+"\" sqlsortway=\"asc\" sqldistinct=\"true\" sqlwhere=\""+Util.toHtmlForSplitPage(sqlWhere)+"\"/>"+
|
||||
"<head>"+
|
||||
" <col width=\"35%\" text=\""+SystemEnv.getHtmlLabelName(195,user.getLanguage())+"\" column=\"wifiname\"/>"+
|
||||
" <col width=\"35%\" text=\""+SystemEnv.getHtmlLabelName(32072,user.getLanguage())+"\" column=\"mac\"/>"+
|
||||
" <col width=\"30%\" text=\""+SystemEnv.getHtmlLabelName(104,user.getLanguage())+"\" column=\"id\" orderkey=\"id\"/>"+
|
||||
"</head>"+
|
||||
"</table>";
|
||||
|
||||
//主要用于 显示定制列以及 表格 每页展示记录数选择
|
||||
sessionKey = pageUid + "_" + Util.getEncrypt(Util.getRandom());
|
||||
Util_TableMap.setVal(sessionKey, tableString);
|
||||
|
||||
return sessionKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* 固定班制
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> getFixedSchedulce(){
|
||||
Map<String,Object> fixedSchedulce = new HashMap<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "";
|
||||
try{
|
||||
String groupid = Util.null2String(params.get("id"));
|
||||
//固定班次
|
||||
Map<String, Object> table = new HashMap<String, Object>();
|
||||
List<Object> columns = new ArrayList<Object>();
|
||||
Map<String, Object> column = null;
|
||||
LinkedList<Map<String, Object>> datas = new LinkedList<Map<String, Object>>();
|
||||
Map<String, Object> data = null;
|
||||
ShiftManagementToolKit shiftManagementToolKit = new ShiftManagementToolKit();
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(28387, user.getLanguage()));
|
||||
column.put("dataIndex", "weekday");
|
||||
column.put("width", "30%");
|
||||
columns.add(column);
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(388984, user.getLanguage()));
|
||||
column.put("dataIndex", "serialinfo");
|
||||
column.put("width", "40%");
|
||||
columns.add(column);
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(104, user.getLanguage()));
|
||||
column.put("dataIndex", "operate");
|
||||
column.put("width", "30%");
|
||||
columns.add(column);
|
||||
|
||||
if(groupid.length()>0){
|
||||
List<Integer> lsWeeks = new ArrayList<>();
|
||||
|
||||
sql = " select * from kq_fixedschedulce where groupid = ? order by weekday asc ";
|
||||
rs.executeQuery(sql,groupid);
|
||||
while(rs.next()){
|
||||
data = new HashMap<String, Object>();
|
||||
data.put("id",rs.getString("id"));
|
||||
data.put("weekday",UtilKQ.getWeekDay(rs.getInt("weekday"),user.getLanguage()));
|
||||
data.put("serialid",rs.getString("serialid"));
|
||||
data.put("serialinfo",shiftManagementToolKit.getShiftOnOffWorkSections(rs.getString("serialid"),user.getLanguage()));
|
||||
datas.add(data);
|
||||
lsWeeks.add(rs.getInt("weekday"));
|
||||
}
|
||||
|
||||
//加强性修改
|
||||
for(int i=0;i<7;i++){
|
||||
if(!lsWeeks.contains(i)){
|
||||
data = new HashMap<String, Object>();
|
||||
data.put("id",i);
|
||||
data.put("weekday",UtilKQ.getWeekDay(i,user.getLanguage()));
|
||||
data.put("serialid","");
|
||||
data.put("serialinfo",SystemEnv.getHtmlLabelName(26593, user.getLanguage()));
|
||||
datas.add(data);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
for(int i=0;i<7;i++){
|
||||
data = new HashMap<String, Object>();
|
||||
data.put("id",i);
|
||||
data.put("weekday",UtilKQ.getWeekDay(i,user.getLanguage()));
|
||||
data.put("serialid","");
|
||||
data.put("serialinfo",SystemEnv.getHtmlLabelName(26593, user.getLanguage()));
|
||||
datas.add(data);
|
||||
}
|
||||
}
|
||||
fixedSchedulce.put("columns",columns);
|
||||
fixedSchedulce.put("datas",datas);
|
||||
|
||||
}catch (Exception e){
|
||||
writeLog(e);
|
||||
}
|
||||
return fixedSchedulce;
|
||||
}
|
||||
|
||||
/**
|
||||
* 排班制
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> getShiftSchedulceTable(){
|
||||
Map<String,Object> shiftSchedulce = new HashMap<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "";
|
||||
try{
|
||||
String groupid = Util.null2String(params.get("id"));
|
||||
//排班制
|
||||
List<Object> columns = new ArrayList<Object>();
|
||||
Map<String, Object> column = null;
|
||||
LinkedList<Map<String, Object>> datas = new LinkedList<Map<String, Object>>();
|
||||
Map<String, Object> data = null;
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(388722, user.getLanguage()));
|
||||
column.put("dataIndex", "shiftcyclename");
|
||||
column.put("width", "30%");
|
||||
columns.add(column);
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(500480, user.getLanguage()));
|
||||
column.put("dataIndex", "serial");
|
||||
column.put("width", "30%");
|
||||
columns.add(column);
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(500481, user.getLanguage()));
|
||||
column.put("dataIndex", "shiftcycleday");
|
||||
column.put("width", "20%");
|
||||
columns.add(column);
|
||||
|
||||
column = new HashMap<String, Object>();
|
||||
column.put("title", SystemEnv.getHtmlLabelName(30585, user.getLanguage()));
|
||||
column.put("dataIndex", "operate");
|
||||
column.put("width", "20%");
|
||||
columns.add(column);
|
||||
|
||||
if(groupid.length()>0){
|
||||
sql = " select id,shiftcyclename,shiftcycleserialids,groupid from kq_group_shiftcycle where groupid = ? order by id asc ";
|
||||
rs.executeQuery(sql,groupid);
|
||||
while(rs.next()){
|
||||
data = new HashMap<String, Object>();
|
||||
data.put("id",rs.getString("id"));
|
||||
data.put("shiftcyclename",rs.getString("shiftcyclename"));
|
||||
data.put("serial",rs.getString("shiftcycleserialids"));
|
||||
data.put("shiftcycleday",Util.splitString(Util.null2String(rs.getString("shiftcycleserialids")),",").length);
|
||||
datas.add(data);
|
||||
}
|
||||
}
|
||||
shiftSchedulce.put("columns",columns);
|
||||
shiftSchedulce.put("datas",datas);
|
||||
}catch (Exception e){
|
||||
writeLog(e);
|
||||
}
|
||||
return shiftSchedulce;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,902 @@
|
||||
package com.engine.kq.cmd.report;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.kq.biz.*;
|
||||
import com.engine.kq.util.ExcelUtil;
|
||||
import com.engine.kq.util.KQDurationCalculatorUtil;
|
||||
import com.engine.kq.util.UtilKQ;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.TimeUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.company.DepartmentComInfo;
|
||||
import weaver.hrm.company.SubCompanyComInfo;
|
||||
import weaver.hrm.job.JobTitlesComInfo;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
import weaver.systeminfo.SystemEnv;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
public class ExportExcelCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
private HttpServletRequest request;
|
||||
private HttpServletResponse response;
|
||||
private List<String> lsFieldDataKey;
|
||||
|
||||
private boolean isKqReportHalfOpen = "1".equals(new KQSettingsComInfo().getMain_val("kq_report_half"));
|
||||
|
||||
public ExportExcelCmd(Map<String, Object> params, HttpServletRequest request, HttpServletResponse response, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
this.request = request;
|
||||
this.response = response;
|
||||
this.lsFieldDataKey = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> retmap = new HashMap<String, Object>();
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "";
|
||||
try {
|
||||
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
||||
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
||||
ResourceComInfo resourceComInfo = new ResourceComInfo();
|
||||
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo();
|
||||
KQLeaveRulesBiz kqLeaveRulesBiz = new KQLeaveRulesBiz();
|
||||
KQSettingsComInfo kqSettingsComInfo = new KQSettingsComInfo();
|
||||
String leavetype_is_on = Util.null2String(kqSettingsComInfo.getMain_val("leavetype_is_on"),"0");
|
||||
|
||||
KQReportBiz kqReportBiz = new KQReportBiz();
|
||||
new KQReportBiz().insertKqReportExportLog(params, user);
|
||||
JSONObject jsonObj = JSON.parseObject(Util.null2String(params.get("data")));
|
||||
String attendanceSerial = Util.null2String(jsonObj.get("attendanceSerial"));
|
||||
String fromDate = Util.null2String(jsonObj.get("fromDate"));
|
||||
String toDate = Util.null2String(jsonObj.get("toDate"));
|
||||
String typeselect = Util.null2String(jsonObj.get("typeselect"));
|
||||
if (typeselect.length() == 0) typeselect = "3";
|
||||
if (!typeselect.equals("") && !typeselect.equals("0") && !typeselect.equals("6")) {
|
||||
if (typeselect.equals("1")) {
|
||||
fromDate = TimeUtil.getCurrentDateString();
|
||||
toDate = TimeUtil.getCurrentDateString();
|
||||
} else {
|
||||
fromDate = TimeUtil.getDateByOption(typeselect, "0");
|
||||
toDate = TimeUtil.getDateByOption(typeselect, "1");
|
||||
}
|
||||
}
|
||||
//人员状态
|
||||
String status = Util.null2String(jsonObj.get("status"));
|
||||
String subCompanyId = Util.null2String(jsonObj.get("subCompanyId"));
|
||||
String departmentId = Util.null2String(jsonObj.get("departmentId"));
|
||||
String resourceId = Util.null2String(jsonObj.get("resourceId"));
|
||||
String allLevel = Util.null2String(jsonObj.get("allLevel"));
|
||||
String isNoAccount = Util.null2String(jsonObj.get("isNoAccount"));
|
||||
String viewScope = Util.null2String(jsonObj.get("viewScope"));
|
||||
List<String> showColumns = Util.splitString2List(Util.null2String(jsonObj.get("showColumns")), ",");
|
||||
showColumns.add("lastname");
|
||||
showColumns.removeIf(showColumn->showColumn.trim().equals(""));
|
||||
|
||||
List<String> tmpShowColumns = new ArrayList<>();
|
||||
for(String showColumn:showColumns){
|
||||
tmpShowColumns.add(showColumn);
|
||||
String cascadekey = "";
|
||||
if(showColumn.equals("beLate")){
|
||||
cascadekey = "beLateMins";
|
||||
}else if(showColumn.equals("leaveEearly")){
|
||||
cascadekey = "leaveEarlyMins";
|
||||
}else if(showColumn.equals("graveBeLate")){
|
||||
cascadekey = "graveBeLateMins";
|
||||
}else if(showColumn.equals("graveLeaveEarly")){
|
||||
cascadekey = "graveLeaveEarlyMins";
|
||||
}else if(showColumn.equals("absenteeism")){
|
||||
cascadekey = "absenteeismMins";
|
||||
}else if(showColumn.equals("overtime")){
|
||||
tmpShowColumns.add("overtime_4leave");
|
||||
tmpShowColumns.add("overtime_nonleave");
|
||||
tmpShowColumns.add("workingDayOvertime_nonleave");
|
||||
tmpShowColumns.add("workingDayOvertime_4leave");
|
||||
tmpShowColumns.add("restDayOvertime_nonleave");
|
||||
tmpShowColumns.add("restDayOvertime_4leave");
|
||||
tmpShowColumns.add("holidayOvertime_4leave");
|
||||
tmpShowColumns.add("holidayOvertime_nonleave");
|
||||
}
|
||||
if(cascadekey.length()>0){
|
||||
tmpShowColumns.add(cascadekey);
|
||||
}
|
||||
}
|
||||
showColumns = tmpShowColumns;
|
||||
|
||||
String rightSql = new KQReportBiz().getReportRight("1", "" + user.getUID(), "a");
|
||||
|
||||
LinkedHashMap<String, Object> workbook = new LinkedHashMap<>();
|
||||
List<Object> lsSheet = new ArrayList<>();
|
||||
Map<String, Object> sheet = null;
|
||||
List<Object> titleList = new ArrayList<>();
|
||||
Map<String, Object> title = null;
|
||||
List<List<Object>> dataList = new ArrayList<>();
|
||||
List<Object> data = null;
|
||||
List<Map<String, Object>> constraintList = null;
|
||||
|
||||
sheet = new HashMap<>();
|
||||
sheet.put("sheetName", SystemEnv.getHtmlLabelName(390351, user.getLanguage()));
|
||||
sheet.put("sheetTitle", SystemEnv.getHtmlLabelName(390351, user.getLanguage()));
|
||||
boolean isEnd = false;
|
||||
Calendar cal = DateUtil.getCalendar();
|
||||
|
||||
List<Map<String, Object>> leaveRules = kqLeaveRulesBiz.getAllLeaveRules();
|
||||
Map<String, Object> mapChildColumnInfo = null;
|
||||
List<Object> childColumns = null;
|
||||
KQReportFieldComInfo kqReportFieldComInfo = new KQReportFieldComInfo();
|
||||
while (kqReportFieldComInfo.next()) {
|
||||
if (Util.null2String(kqReportFieldComInfo.getParentid()).length() > 0) continue;
|
||||
if(kqReportFieldComInfo.getFieldname().equals("kqCalendar"))continue;
|
||||
if(KQReportFieldComInfo.cascadekey2fieldname.keySet().contains(kqReportFieldComInfo.getFieldname()))continue;
|
||||
if (!kqReportFieldComInfo.getReportType().equals("all") && !kqReportFieldComInfo.getReportType().equals("month"))
|
||||
continue;
|
||||
if (!showColumns.contains(kqReportFieldComInfo.getFieldname())&&!showColumns.contains(kqReportFieldComInfo.getParentid())) continue;
|
||||
if("leave".equalsIgnoreCase(kqReportFieldComInfo.getFieldname())&&leaveRules.size()==0){
|
||||
continue;
|
||||
}
|
||||
title = new HashMap<>();
|
||||
String unitType = KQReportBiz.getUnitType(kqReportFieldComInfo, user);
|
||||
if(unitType.length()>0){
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage())+ "(" + unitType + ")");
|
||||
}else{
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
}
|
||||
title.put("width", 30 * 256);
|
||||
this.lsFieldDataKey.add(kqReportFieldComInfo.getFieldname());
|
||||
mapChildColumnInfo = this.getChildColumnsInfo(kqReportFieldComInfo.getFieldname(), user);
|
||||
childColumns = (List<Object>) mapChildColumnInfo.get("childColumns");
|
||||
if (childColumns.size() > 0) {//跨列width取子列的width
|
||||
title.put("children", childColumns);
|
||||
title.put("colSpan", childColumns.size());
|
||||
} else {
|
||||
title.put("rowSpan", 3);
|
||||
}
|
||||
titleList.add(title);
|
||||
|
||||
titleList.addAll(this.getCascadeKeyColumnsInfo(kqReportFieldComInfo.getCascadekey(),user));
|
||||
}
|
||||
|
||||
String today = DateUtil.getCurrentDate();
|
||||
// if (DateUtil.compDate(today, toDate) > 0) {//结束如期不大于今天
|
||||
// toDate = today;
|
||||
// }
|
||||
|
||||
if(showColumns.contains("kqCalendar")) {
|
||||
childColumns = new ArrayList<>();
|
||||
for (String date = fromDate; !isEnd; ) {
|
||||
if (date.equals(toDate)) isEnd = true;
|
||||
title = new HashMap<>();
|
||||
title.put("title", UtilKQ.getWeekDayShort(DateUtil.getWeek(date)-1,user.getLanguage()) +"\r\n"+ DateUtil.geDayOfMonth(date));
|
||||
title.put("width", 30 * 256);
|
||||
childColumns.add(title);
|
||||
cal.setTime(DateUtil.parseToDate(date));
|
||||
date = DateUtil.getDate(cal.getTime(), 1);
|
||||
}
|
||||
|
||||
title = new HashMap();
|
||||
title.put("title", SystemEnv.getHtmlLabelName(386476, user.getLanguage()));
|
||||
if (childColumns.size() > 0) {//跨列width取子列的width
|
||||
title.put("children", childColumns);
|
||||
title.put("colSpan", childColumns.size());
|
||||
}
|
||||
titleList.add(title);
|
||||
}
|
||||
sheet.put("titleList", titleList);
|
||||
|
||||
// 没有权限的人最大只支持查询本季
|
||||
Map<String, String> getRealDate = new KQReportBiz().realDate(fromDate, toDate, user, "1");
|
||||
fromDate = getRealDate.get("fromDate");
|
||||
toDate = getRealDate.get("toDate");
|
||||
if("-1".equals(fromDate) || "-1".equals(toDate)) {
|
||||
retmap.put("status", "1");
|
||||
return retmap;
|
||||
}
|
||||
|
||||
List<List> paramLists = new ArrayList<>();
|
||||
List<Object> paramList = null;
|
||||
String forgotBeginWorkCheck_field = " sum(b.forgotBeginWorkCheck) ";
|
||||
|
||||
if(rs.getDBType().equalsIgnoreCase("oracle")) {
|
||||
forgotBeginWorkCheck_field = " sum(nvl(b.forgotBeginWorkCheck,0)) ";
|
||||
}else if((rs.getDBType()).equalsIgnoreCase("mysql")){
|
||||
forgotBeginWorkCheck_field = " sum(ifnull(b.forgotBeginWorkCheck,0)) ";
|
||||
}else {
|
||||
forgotBeginWorkCheck_field = " sum(isnull(b.forgotBeginWorkCheck,0)) ";
|
||||
}
|
||||
|
||||
Map<String,Object> definedFieldInfo = new KQFormatBiz().getDefinedField();
|
||||
String definedFieldSum = Util.null2String(definedFieldInfo.get("definedFieldSum"));
|
||||
String backFields = " a.id,a.lastname,a.workcode,a.dsporder,b.resourceid,a.subcompanyid1 as subcompanyid,a.departmentid,a.jobtitle," +
|
||||
" sum(b.workdays) as workdays,sum(b.workMins) as workMins,sum(b.attendancedays) as attendancedays," +
|
||||
" sum(b.attendanceMins) as attendanceMins,sum(b.beLate) as beLate,sum(b.beLateMins) as beLateMins, " +
|
||||
" sum(b.graveBeLate) as graveBeLate, sum(b.graveBeLateMins) as graveBeLateMins,sum(b.leaveEearly) as leaveEearly," +
|
||||
" sum(b.leaveEarlyMins) as leaveEarlyMins, sum(b.graveLeaveEarly) as graveLeaveEarly, " +
|
||||
" sum(b.graveLeaveEarlyMins) as graveLeaveEarlyMins,sum(b.absenteeism) as absenteeism, " +
|
||||
" sum(b.signdays) as signdays,sum(b.signmins) as signmins, "+
|
||||
" sum(b.absenteeismMins) as absenteeismMins, sum(b.forgotCheck)+"+forgotBeginWorkCheck_field+" as forgotCheck "+(definedFieldSum.length()>0?","+definedFieldSum+"":"");
|
||||
if(rs.getDBType().equals("oracle")){
|
||||
backFields = "/*+ index(kq_format_total IDX_KQ_FORMAT_TOTAL_KQDATE) */ "+backFields;
|
||||
}
|
||||
String sqlFrom = " from hrmresource a, kq_format_total b where a.id= b.resourceid and b.kqdate >='" + fromDate + "' and b.kqdate <='" + toDate + "'";
|
||||
String sqlWhere = rightSql;
|
||||
String groupBy = " group by a.id,a.lastname,a.workcode,a.dsporder,b.resourceid,a.subcompanyid1,a.departmentid,a.jobtitle ";
|
||||
if (subCompanyId.length() > 0) {
|
||||
sqlWhere +=" and a.subcompanyid1 in("+KQReportBiz.splitParamStr(subCompanyId)+") ";
|
||||
for(String bean : subCompanyId.split(",")) {
|
||||
paramList = new ArrayList<>();
|
||||
paramList.add(bean);
|
||||
paramLists.add(paramList);
|
||||
}
|
||||
}
|
||||
|
||||
if (departmentId.length() > 0) {
|
||||
sqlWhere +=" and a.departmentid in("+KQReportBiz.splitParamStr(departmentId)+") ";
|
||||
for(String bean : departmentId.split(",")) {
|
||||
paramList = new ArrayList<>();
|
||||
paramList.add(bean);
|
||||
paramLists.add(paramList);
|
||||
}
|
||||
}
|
||||
|
||||
if (resourceId.length() > 0) {
|
||||
sqlWhere +=" and a.id in("+KQReportBiz.splitParamStr(resourceId)+") ";
|
||||
for(String bean : resourceId.split(",")) {
|
||||
paramList = new ArrayList<>();
|
||||
paramList.add(bean);
|
||||
paramLists.add(paramList);
|
||||
}
|
||||
}
|
||||
|
||||
if (viewScope.equals("4")) {//我的下属
|
||||
if (allLevel.equals("1")) {//所有下属
|
||||
sqlWhere += " and a.managerstr like '%," + user.getUID() + ",%'";
|
||||
} else {
|
||||
sqlWhere += " and a.managerid=" + user.getUID();//直接下属
|
||||
}
|
||||
}
|
||||
if (!"1".equals(isNoAccount)) {
|
||||
sqlWhere += " and a.loginid is not null " + (rs.getDBType().equals("oracle") ? "" : " and a.loginid<>'' ");
|
||||
}
|
||||
|
||||
if(status.length()>0){
|
||||
if (!status.equals("8") && !status.equals("9")) {
|
||||
sqlWhere += " and a.status = ?";
|
||||
paramList = new ArrayList<>();
|
||||
paramList.add(status);
|
||||
paramLists.add(paramList);
|
||||
}else if (status.equals("8")) {
|
||||
sqlWhere += " and (a.status = 0 or a.status = 1 or a.status = 2 or a.status = 3) ";
|
||||
}
|
||||
}
|
||||
|
||||
String orderBy = " order by a.dsporder asc, a.lastname asc ";
|
||||
String descOrderBy = " order by a.dsporder desc, a.lastname desc ";
|
||||
sql = "select " + backFields + sqlFrom + sqlWhere + groupBy + orderBy;
|
||||
|
||||
//System.out.println("start" + DateUtil.getFullDate());
|
||||
|
||||
|
||||
String show_card_source = Util.null2String(kqSettingsComInfo.getMain_val("show_card_source"),"0");//是否显示打卡数据,以及打卡数据来源
|
||||
params.put("show_card_source",show_card_source);
|
||||
KQOvertimeRulesBiz kqOvertimeRulesBiz = new KQOvertimeRulesBiz();
|
||||
int uintType = kqOvertimeRulesBiz.getMinimumUnit();//当前加班单位
|
||||
double hoursToDay = kqOvertimeRulesBiz.getHoursToDay();//当前天跟小时计算关系
|
||||
params.put("uintType",uintType);
|
||||
params.put("hoursToDay",hoursToDay);
|
||||
Map<String, Object> flowData = new KQReportBiz().getFlowData(params, user);
|
||||
//System.out.println("end" + DateUtil.getFullDate());
|
||||
|
||||
// #1475814-概述:满足考勤报分部部门显示及导出时显示全路径
|
||||
String fullPathMainKey = "show_full_path";
|
||||
String isShowFullPath = Util.null2String(kqSettingsComInfo.getMain_val(fullPathMainKey),"0");
|
||||
|
||||
rs.executeQuery(sql, paramLists);
|
||||
int calIndex = -1;
|
||||
while (rs.next()) {
|
||||
data = new ArrayList<>();
|
||||
String id = rs.getString("id");
|
||||
for (int fieldDataKeyIdx =0;fieldDataKeyIdx<lsFieldDataKey.size();fieldDataKeyIdx++) {
|
||||
String fieldName = lsFieldDataKey.get(fieldDataKeyIdx);
|
||||
String fieldid = KQReportFieldComInfo.field2Id.get(fieldName);
|
||||
String fieldValue = "";
|
||||
if (fieldName.equals("subcompany")) {
|
||||
String tmpSubcompanyId = Util.null2String(rs.getString("subcompanyid"));
|
||||
if (tmpSubcompanyId.length() == 0) {
|
||||
tmpSubcompanyId = Util.null2String(resourceComInfo.getSubCompanyID(id));
|
||||
}
|
||||
|
||||
fieldValue = "1".equals(isShowFullPath) ?
|
||||
SubCompanyComInfo.getSubcompanyRealPath(tmpSubcompanyId, "/", "0") :
|
||||
subCompanyComInfo.getSubCompanyname(tmpSubcompanyId);
|
||||
|
||||
// fieldValue = subCompanyComInfo.getSubCompanyname(tmpSubcompanyId);
|
||||
} else if (fieldName.equals("department")) {
|
||||
String tmpDepartmentId = Util.null2String(rs.getString("departmentid"));
|
||||
if (tmpDepartmentId.length() == 0) {
|
||||
tmpDepartmentId = Util.null2String(resourceComInfo.getDepartmentID(id));
|
||||
}
|
||||
|
||||
fieldValue = "1".equals(isShowFullPath) ?
|
||||
departmentComInfo.getDepartmentRealPath(tmpDepartmentId, "/", "0") :
|
||||
departmentComInfo.getDepartmentname(tmpDepartmentId);
|
||||
|
||||
// fieldValue = departmentComInfo.getDepartmentname(tmpDepartmentId);
|
||||
} else if(fieldName.equals("zcgzts")){
|
||||
String rlzqqxsTime = getXcqts(fromDate,id);
|
||||
fieldValue = rlzqqxsTime;
|
||||
} else if (fieldName.equals("jobtitle")) {
|
||||
String tmpJobtitleId = Util.null2String(rs.getString("jobtitle"));
|
||||
if (tmpJobtitleId.length() == 0) {
|
||||
tmpJobtitleId = Util.null2String(resourceComInfo.getJobTitle(id));
|
||||
}
|
||||
fieldValue = jobTitlesComInfo.getJobTitlesname(tmpJobtitleId);
|
||||
} else if (fieldName.equals("attendanceSerial")) {
|
||||
List<String> serialIds = null;
|
||||
if (Util.null2String(jsonObj.get("attendanceSerial")).length() > 0) {
|
||||
serialIds = Util.splitString2List(Util.null2String(jsonObj.get("attendanceSerial")), ",");
|
||||
for(int i=0;serialIds!=null&&i<serialIds.size();i++){
|
||||
data.add(kqReportBiz.getSerialCount(id,fromDate,toDate,serialIds.get(i)));
|
||||
}
|
||||
}else{
|
||||
data.add("");
|
||||
}
|
||||
continue;
|
||||
} else if (fieldName.equals("leave")) {//请假
|
||||
List<Map<String, Object>> allLeaveRules = kqLeaveRulesBiz.getAllLeaveRules();
|
||||
if (("1").equals(leavetype_is_on)) {
|
||||
KQLeaveRulesComInfo kqLeaveRulesComInfo = new KQLeaveRulesComInfo();
|
||||
for (int i = allLeaveRules.size() - 1; i >= 0; i--) {
|
||||
Map<String, Object> leaveRule = allLeaveRules.get(i);
|
||||
String leaveId = Util.null2String(leaveRule.get("id"));
|
||||
boolean flag = kqLeaveRulesBiz.filterSubLeaveRule(kqLeaveRulesComInfo, user, leaveId);
|
||||
if (flag) {
|
||||
allLeaveRules.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
Map<String, Object> leaveRule = null;
|
||||
for (int i = 0; allLeaveRules != null && i < allLeaveRules.size(); i++) {
|
||||
leaveRule = allLeaveRules.get(i);
|
||||
String flowType = Util.null2String("leaveType_" + leaveRule.get("id"));
|
||||
String leaveData = Util.null2String(flowData.get(id + "|" + flowType));
|
||||
String flowLeaveBackType = Util.null2String("leavebackType_" + leaveRule.get("id"));
|
||||
String leavebackData = Util.null2s(Util.null2String(flowData.get(id + "|" + flowLeaveBackType)), "0.0");
|
||||
String b_flowLeaveData = "";
|
||||
String flowLeaveData = "";
|
||||
try {
|
||||
//以防止出现精度问题
|
||||
if (leaveData.length() == 0) {
|
||||
leaveData = "0.0";
|
||||
}
|
||||
if (leavebackData.length() == 0) {
|
||||
leavebackData = "0.0";
|
||||
}
|
||||
BigDecimal b_leaveData = new BigDecimal(leaveData);
|
||||
BigDecimal b_leavebackData = new BigDecimal(leavebackData);
|
||||
b_flowLeaveData = b_leaveData.subtract(b_leavebackData).toString();
|
||||
if(Util.getDoubleValue(b_flowLeaveData, -1) < 0){
|
||||
b_flowLeaveData = "0.0";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
writeLog("GetKQReportCmd:leaveData" + leaveData + ":leavebackData:" + leavebackData + ":" + e);
|
||||
}
|
||||
|
||||
if (b_flowLeaveData.length() > 0) {
|
||||
flowLeaveData = KQDurationCalculatorUtil.getDurationRound(b_flowLeaveData);
|
||||
} else {
|
||||
flowLeaveData = KQDurationCalculatorUtil.getDurationRound(Util.null2String(Util.getDoubleValue(leaveData, 0.0) - Util.getDoubleValue(leavebackData, 0.0)));
|
||||
}
|
||||
data.add(flowLeaveData);
|
||||
}
|
||||
continue;
|
||||
}else if(fieldName.equals("overtime")){
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|workingDayOvertime_nonleave")));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_nonleave"))));
|
||||
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|restDayOvertime_nonleave")));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("restDayOvertime_nonleave"))));
|
||||
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|holidayOvertime_nonleave")));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("holidayOvertime_nonleave"))));
|
||||
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|workingDayOvertime_4leave")));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("workingDayOvertime_4leave"))));
|
||||
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|restDayOvertime_4leave")));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("restDayOvertime_4leave"))));
|
||||
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(Util.null2String(flowData.get(id + "|holidayOvertime_4leave")));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("holidayOvertime_4leave"))));
|
||||
|
||||
double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(flowData.get(id+"|workingDayOvertime_4leave")));
|
||||
workingDayOvertime_4leave = workingDayOvertime_4leave<0?0:workingDayOvertime_4leave;
|
||||
double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(flowData.get(id+"|restDayOvertime_4leave")));
|
||||
restDayOvertime_4leave = restDayOvertime_4leave<0?0:restDayOvertime_4leave;
|
||||
double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(flowData.get(id+"|holidayOvertime_4leave")));
|
||||
holidayOvertime_4leave = holidayOvertime_4leave<0?0:holidayOvertime_4leave;
|
||||
|
||||
double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(flowData.get(id+"|workingDayOvertime_nonleave")));
|
||||
workingDayOvertime_nonleave = workingDayOvertime_nonleave<0?0:workingDayOvertime_nonleave;
|
||||
double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(flowData.get(id+"|restDayOvertime_nonleave")));
|
||||
restDayOvertime_nonleave = restDayOvertime_nonleave<0?0:restDayOvertime_nonleave;
|
||||
double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(flowData.get(id+"|holidayOvertime_nonleave")));
|
||||
holidayOvertime_nonleave = holidayOvertime_nonleave<0?0:holidayOvertime_nonleave;
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(workingDayOvertime_4leave+restDayOvertime_4leave+holidayOvertime_4leave+
|
||||
workingDayOvertime_nonleave+restDayOvertime_nonleave+holidayOvertime_nonleave));
|
||||
data.add(getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(KQReportFieldComInfo.field2Id.get("overtimeTotal"))));
|
||||
continue;
|
||||
}else if(fieldName.equals("businessLeave") || fieldName.equals("officialBusiness")){
|
||||
String businessLeaveData = Util.null2s(Util.null2String(flowData.get(id+"|"+fieldName)),"0.0");
|
||||
String backType = fieldName+"_back";
|
||||
String businessLeavebackData = Util.null2s(Util.null2String(flowData.get(id+"|"+backType)),"0.0");
|
||||
String businessLeave = "";
|
||||
try{
|
||||
//以防止出现精度问题
|
||||
if(businessLeaveData.length() == 0){
|
||||
businessLeaveData = "0.0";
|
||||
}
|
||||
if(businessLeavebackData.length() == 0){
|
||||
businessLeavebackData = "0.0";
|
||||
}
|
||||
BigDecimal b_businessLeaveData = new BigDecimal(businessLeaveData);
|
||||
BigDecimal b_businessLeavebackData = new BigDecimal(businessLeavebackData);
|
||||
businessLeave = b_businessLeaveData.subtract(b_businessLeavebackData).toString();
|
||||
if(Util.getDoubleValue(businessLeave, -1) < 0){
|
||||
businessLeave = "0.0";
|
||||
}
|
||||
}catch (Exception e){
|
||||
}
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(businessLeave);
|
||||
} else if(Util.null2String(kqReportFieldComInfo.getCascadekey(fieldid)).length()>0){
|
||||
fieldValue = Util.formatMultiLang(Util.null2String(rs.getString(fieldName)),""+user.getLanguage());
|
||||
data.add(fieldValue);
|
||||
|
||||
List<String> lsCascadekey = Util.splitString2List(kqReportFieldComInfo.getCascadekey(fieldid),",");
|
||||
for(int i=0;i<lsCascadekey.size();i++){
|
||||
if(Util.null2String(rs.getString(lsCascadekey.get(i))).length()>0){
|
||||
fieldid = KQReportFieldComInfo.field2Id.get(lsCascadekey.get(i));
|
||||
fieldValue = getFieldValueByUnitType(rs.getString(lsCascadekey.get(i)),kqReportFieldComInfo.getUnittype(fieldid));
|
||||
}else{
|
||||
fieldValue = "0";
|
||||
}
|
||||
data.add(fieldValue);
|
||||
}
|
||||
continue;
|
||||
}else {
|
||||
fieldValue = Util.formatMultiLang(Util.null2String(rs.getString(fieldName)),""+user.getLanguage());
|
||||
fieldValue = getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(fieldid));
|
||||
}
|
||||
fieldValue = Util.formatMultiLang(fieldValue,""+user.getLanguage());
|
||||
data.add(fieldValue);
|
||||
}
|
||||
|
||||
List<Object> amData = Lists.newArrayList();
|
||||
List<Object> pmData = Lists.newArrayList();
|
||||
if(isKqReportHalfOpen) {
|
||||
amData.addAll(data);
|
||||
pmData.addAll(data);
|
||||
calIndex = data.size();
|
||||
}
|
||||
|
||||
if(showColumns.contains("kqCalendar")) {
|
||||
// Map<String, Object> detialDatas = kqReportBiz.getDetialDatas(id, fromDate, toDate, user,flowData,true);
|
||||
Map<String, Object> detialDatas = kqReportBiz.getDetialDatas(id, fromDate, toDate, user,flowData,true,uintType,show_card_source);
|
||||
String user_endDate = Util.null2String(resourceComInfo.getEndDate(id));
|
||||
String user_status = Util.null2String(resourceComInfo.getStatus(id));
|
||||
String begindate = Util.null2String(resourceComInfo.getCreatedate(id)).trim();
|
||||
String companyStartDate = Util.null2String(resourceComInfo.getCompanyStartDate(id)).trim();
|
||||
if(companyStartDate.length()!=10){
|
||||
companyStartDate = "";
|
||||
}
|
||||
if(companyStartDate.length()>0 && companyStartDate.indexOf("-")>0){
|
||||
begindate=companyStartDate;
|
||||
}
|
||||
isEnd = false;
|
||||
for (String date = fromDate; !isEnd; ) {
|
||||
if (date.equals(toDate)) isEnd = true;
|
||||
if(DateUtil.compDate(today, date)>0){
|
||||
if(isKqReportHalfOpen) {
|
||||
amData.add("");
|
||||
pmData.add("");
|
||||
} else {
|
||||
data.add("");
|
||||
}
|
||||
}else{
|
||||
if(!(user_status.equals("0")||user_status.equals("1")||user_status.equals("2")||user_status.equals("3"))){
|
||||
//其他状态
|
||||
if(user_endDate.length()>0 && date.compareTo(user_endDate)>0){//人员合同结束日期之后
|
||||
if(isKqReportHalfOpen) {
|
||||
amData.add("");
|
||||
pmData.add("");
|
||||
} else {
|
||||
data.add("");
|
||||
}
|
||||
cal.setTime(DateUtil.parseToDate(date));
|
||||
date = DateUtil.getDate(cal.getTime(), 1);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if(begindate.length()>0 && date.compareTo(begindate)<0 ){//人员入职日期前无需计算考勤,如果没有入职日期,已创建日期为准
|
||||
if(isKqReportHalfOpen) {
|
||||
amData.add("");
|
||||
pmData.add("");
|
||||
} else {
|
||||
data.add("");
|
||||
}
|
||||
cal.setTime(DateUtil.parseToDate(date));
|
||||
date = DateUtil.getDate(cal.getTime(), 1);
|
||||
continue;
|
||||
}
|
||||
if (detialDatas.get(id + "|" + date) != null) {
|
||||
if(isKqReportHalfOpen) {
|
||||
amData.add(((Map<String, Object>) detialDatas.get(id + "|" + date)).get("textAM"));
|
||||
pmData.add(((Map<String, Object>) detialDatas.get(id + "|" + date)).get("textPM"));
|
||||
} else {
|
||||
data.add(((Map<String, Object>) detialDatas.get(id + "|" + date)).get("text"));
|
||||
}
|
||||
} else {
|
||||
if(isKqReportHalfOpen) {
|
||||
amData.add(SystemEnv.getHtmlLabelName(26593, user.getLanguage()));
|
||||
pmData.add(SystemEnv.getHtmlLabelName(26593, user.getLanguage()));
|
||||
} else {
|
||||
data.add(SystemEnv.getHtmlLabelName(26593, user.getLanguage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
cal.setTime(DateUtil.parseToDate(date));
|
||||
date = DateUtil.getDate(cal.getTime(), 1);
|
||||
}
|
||||
}
|
||||
if(isKqReportHalfOpen) {
|
||||
dataList.add(amData);
|
||||
dataList.add(pmData);
|
||||
} else {
|
||||
dataList.add(data);
|
||||
}
|
||||
}
|
||||
sheet.put("dataList", dataList);
|
||||
if(isKqReportHalfOpen) {
|
||||
sheet.put("calIndex", calIndex);
|
||||
}
|
||||
sheet.put("constraintList", constraintList);
|
||||
sheet.put("createFile", "1");
|
||||
lsSheet.add(sheet);
|
||||
|
||||
workbook.put("sheet", lsSheet);
|
||||
String fileName = SystemEnv.getHtmlLabelName(390351, user.getLanguage())+" "+fromDate+" "+toDate;
|
||||
workbook.put("fileName", fileName);
|
||||
ExcelUtil ExcelUtil = new ExcelUtil();
|
||||
Map<String, Object> exportMap = ExcelUtil.export(workbook, request, response,true);
|
||||
retmap.putAll(exportMap);
|
||||
retmap.put("status", "1");
|
||||
} catch (Exception e) {
|
||||
retmap.put("status", "-1");
|
||||
retmap.put("message", SystemEnv.getHtmlLabelName(382661, user.getLanguage()));
|
||||
writeLog(e);
|
||||
}
|
||||
return retmap;
|
||||
}
|
||||
|
||||
private Map<String, Object> getChildColumnsInfo(String parentid, User user) {
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
List<Object> titleList = new ArrayList<>();
|
||||
Map<String, Object> title = null;
|
||||
KQSettingsComInfo kqSettingsComInfo = new KQSettingsComInfo();
|
||||
String leavetype_is_on = Util.null2String(kqSettingsComInfo.getMain_val("leavetype_is_on"),"0");
|
||||
if (parentid.equals("attendanceSerial")) {//考勤班次
|
||||
KQShiftManagementComInfo kqShiftManagementComInfo = new KQShiftManagementComInfo();
|
||||
JSONObject jsonObj = JSON.parseObject(Util.null2String(params.get("data")));
|
||||
List<String> serialIds = null;
|
||||
if (Util.null2String(jsonObj.get("attendanceSerial")).length() > 0) {
|
||||
serialIds = Util.splitString2List(Util.null2String(jsonObj.get("attendanceSerial")), ",");
|
||||
}
|
||||
for (int i = 0; serialIds != null && i < serialIds.size(); i++) {
|
||||
title = new HashMap<>();
|
||||
title.put("title", Util.formatMultiLang(kqShiftManagementComInfo.getSerial(serialIds.get(i)),""+user.getLanguage()));
|
||||
title.put("width", 30 * 256);
|
||||
titleList.add(title);
|
||||
}
|
||||
} else if (parentid.equals("leave")) {
|
||||
KQLeaveRulesBiz kqLeaveRulesBiz = new KQLeaveRulesBiz();
|
||||
List<Map<String, Object>> leaveRules = kqLeaveRulesBiz.getAllLeaveRules();
|
||||
if (("1").equals(leavetype_is_on)) {
|
||||
KQLeaveRulesComInfo kqLeaveRulesComInfo = new KQLeaveRulesComInfo();
|
||||
for (int i = leaveRules.size() - 1; i >= 0; i--) {
|
||||
Map<String, Object> leaveRule = leaveRules.get(i);
|
||||
String leaveId = Util.null2String(leaveRule.get("id"));
|
||||
boolean flag = kqLeaveRulesBiz.filterSubLeaveRule(kqLeaveRulesComInfo, user, leaveId);
|
||||
if (flag) {
|
||||
leaveRules.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; leaveRules != null && i < leaveRules.size(); i++) {
|
||||
Map<String, Object> leaveRule = leaveRules.get(i);
|
||||
String name = Util.formatMultiLang(Util.null2String(leaveRule.get("name")),""+user.getLanguage());
|
||||
String unitType = Util.null2String(leaveRule.get("unitType"));
|
||||
String unitName = (KQUnitBiz.isLeaveHour(unitType)) ? SystemEnv.getHtmlLabelName(391, user.getLanguage()) : SystemEnv.getHtmlLabelName(1925, user.getLanguage());
|
||||
title = new HashMap<>();
|
||||
title.put("title", name + "(" + unitName + ")");
|
||||
title.put("width", 30 * 256);
|
||||
titleList.add(title);
|
||||
}
|
||||
}else if(parentid.equals("overtime")){
|
||||
String[] overtimeChild = {"overtime_nonleave","overtime_4leave","overtimeTotal"};
|
||||
for(int i=0;i<overtimeChild.length;i++){
|
||||
String id = overtimeChild[i];
|
||||
title = new HashMap();
|
||||
String fieldlabel = "";
|
||||
if("overtime_nonleave".equalsIgnoreCase(id)){
|
||||
fieldlabel = "125805";
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage()));
|
||||
title.put("rowSpan","2");
|
||||
}else if("overtime_4leave".equalsIgnoreCase(id)){
|
||||
fieldlabel = "125804";
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage()));
|
||||
title.put("rowSpan","2");
|
||||
}else{
|
||||
fieldlabel = "523";
|
||||
title.put("showDetial","1");
|
||||
String unitType = (KQOvertimeRulesBiz.getMinimumUnit()==3 || KQOvertimeRulesBiz.getMinimumUnit()==5 ||KQOvertimeRulesBiz.getMinimumUnit()==6)?"2":"1";
|
||||
String unitTypeName = "";
|
||||
if(Util.null2String(unitType).length()>0){
|
||||
if(unitType.equals("1")){
|
||||
unitTypeName=SystemEnv.getHtmlLabelName(1925, user.getLanguage());
|
||||
}else if(unitType.equals("2")){
|
||||
unitTypeName=SystemEnv.getHtmlLabelName(391, user.getLanguage());
|
||||
}else if(unitType.equals("3")){
|
||||
unitTypeName=SystemEnv.getHtmlLabelName(18083, user.getLanguage());
|
||||
}
|
||||
}
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage())+ "(" + unitTypeName + ")");
|
||||
}
|
||||
|
||||
Map<String,Object> mapChildColumnInfo = getChildColumnsInfo(id, user);
|
||||
int childWidth = 65;
|
||||
List<Object> childColumns = (List<Object>)mapChildColumnInfo.get("childColumns");
|
||||
if(childColumns.size()>0) {//跨列width取子列的width
|
||||
title.put("children", childColumns);
|
||||
childWidth = Util.getIntValue(Util.null2String(mapChildColumnInfo.get("sumChildColumnWidth")),65);
|
||||
}
|
||||
title.put("width", childWidth+"");
|
||||
titleList.add(title);
|
||||
}
|
||||
} else {
|
||||
KQReportFieldComInfo kqReportFieldComInfo = new KQReportFieldComInfo();
|
||||
while (kqReportFieldComInfo.next()) {
|
||||
if (kqReportFieldComInfo.getParentid().equals(parentid)) {
|
||||
if(!kqReportFieldComInfo.getReportType().equals("month"))continue;
|
||||
title = new HashMap<>();
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()) + "(" + KQReportBiz.getUnitType(kqReportFieldComInfo, user) + ")");
|
||||
title.put("width", 30 * 256);
|
||||
titleList.add(title);
|
||||
}
|
||||
}
|
||||
}
|
||||
returnMap.put("childColumns", titleList);
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
private List<Object> getCascadeKeyColumnsInfo(String cascadeKey, User user){
|
||||
List<Object> titleList = new ArrayList<>();
|
||||
Map<String, Object> title = null;
|
||||
if(Util.null2String(cascadeKey).length()==0){
|
||||
return titleList;
|
||||
}
|
||||
List<String> lsCascadeKey = Util.splitString2List(cascadeKey,",");
|
||||
KQReportFieldComInfo kqReportFieldComInfo = new KQReportFieldComInfo();
|
||||
for(int i=0;i<lsCascadeKey.size();i++){
|
||||
kqReportFieldComInfo.setTofirstRow();
|
||||
while (kqReportFieldComInfo.next()) {
|
||||
if(!kqReportFieldComInfo.getReportType().equals("month"))continue;
|
||||
if (kqReportFieldComInfo.getFieldname().equals(lsCascadeKey.get(i))){
|
||||
title = new HashMap<>();
|
||||
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()) + "(" + KQReportBiz.getUnitType(kqReportFieldComInfo, user) + ")");
|
||||
title.put("width", 30 * 256);
|
||||
|
||||
titleList.add(title);
|
||||
}
|
||||
}
|
||||
}
|
||||
return titleList;
|
||||
}
|
||||
|
||||
private String getFieldValueByUnitType(String fieldValue,String unittype){
|
||||
if (Util.null2String(unittype).length() > 0) {
|
||||
if (fieldValue.length() == 0) {
|
||||
fieldValue = "0";
|
||||
} else {
|
||||
if (unittype.equals("2")) {
|
||||
fieldValue = KQDurationCalculatorUtil.getDurationRound(("" + (Util.getDoubleValue(fieldValue) / 60.0)));
|
||||
}
|
||||
}
|
||||
}
|
||||
return fieldValue;
|
||||
}
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 找到人员入职日期
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String findRzrq(String jbr) {
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "select id,companystartdate from hrmresource where id ="+jbr;
|
||||
rs.executeQuery(sql);
|
||||
String companystartdate = "";
|
||||
if (rs.next()) {
|
||||
companystartdate = Util.null2String(rs.getString("companystartdate"));
|
||||
}
|
||||
return companystartdate;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 找到人员离职日期
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String findLzrq(String jbr) {
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "select changedate from HrmStatusHistory where RESOURCEID ="+jbr+" and type_n = 5";
|
||||
rs.executeQuery(sql);
|
||||
String changedate = "";
|
||||
if (rs.next()) {
|
||||
changedate = Util.null2String(rs.getString("changedate"));
|
||||
}
|
||||
return changedate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入离职缺勤小时
|
||||
* @param dateOri
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public String getXcqts(String dateOri,String userId){
|
||||
//需出勤天数
|
||||
Integer xcqtsAll = 0;
|
||||
//获取员工的入职日期
|
||||
String rzrq = findRzrq(userId);
|
||||
//获取员工的离职日期
|
||||
String lzrq = findLzrq(userId);
|
||||
String dateOriSub = dateOri.substring(0,7);
|
||||
//本月第一天
|
||||
String fromDate = TimeUtil.getMonthBeginDay(dateOri);
|
||||
//本月最后一天
|
||||
String toDate = TimeUtil.getMonthEndDay(dateOri);
|
||||
//入职日期处理
|
||||
if(StringUtils.isNotBlank(rzrq)){
|
||||
String rzrqSub = rzrq.substring(0,7);
|
||||
if(rzrqSub.equals(dateOriSub)){
|
||||
//入职日期在当月
|
||||
Set<String> all = new HashSet<>();
|
||||
all.add(fromDate);
|
||||
List<String> back = days(fromDate,rzrq);
|
||||
all.addAll(back);
|
||||
for (String date : all) {
|
||||
Integer zcgzts = 0;
|
||||
KQHolidaySetComInfo holidaySetComInfo = new KQHolidaySetComInfo();
|
||||
String changeTypeNew = holidaySetComInfo.getChangeType("1", date);
|
||||
// if("2".equals(changeTypeNew)){
|
||||
// //调配工作日计正常工作天数
|
||||
// zcgzts = 1;
|
||||
// }
|
||||
if(DateUtil.getWeek(date) != 6 && DateUtil.getWeek(date) != 7){
|
||||
//不为周六周日
|
||||
if(!"3".equals(changeTypeNew)){
|
||||
//不为休息日
|
||||
zcgzts = 1;
|
||||
}
|
||||
}
|
||||
|
||||
xcqtsAll = xcqtsAll+zcgzts;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//离职日期处理
|
||||
if(StringUtils.isNotBlank(lzrq)){
|
||||
String lzrqSub = lzrq.substring(0,7);
|
||||
if(lzrqSub.equals(dateOriSub)){
|
||||
//离职日期在当月
|
||||
Set<String> all = new HashSet<>();
|
||||
List<String> back = days(lzrq,toDate);
|
||||
all.addAll(back);
|
||||
all.add(toDate);
|
||||
for (String date : all) {
|
||||
Integer zcgzts = 0;
|
||||
KQHolidaySetComInfo holidaySetComInfo = new KQHolidaySetComInfo();
|
||||
String changeTypeNew = holidaySetComInfo.getChangeType("1", date);
|
||||
// if("2".equals(changeTypeNew)){
|
||||
// //调配工作日计正常工作天数
|
||||
// zcgzts = 1;
|
||||
// }
|
||||
if(DateUtil.getWeek(date) != 6 && DateUtil.getWeek(date) != 7){
|
||||
//不为周六周日
|
||||
if(!"3".equals(changeTypeNew)){
|
||||
//不为休息日
|
||||
zcgzts = 1;
|
||||
}
|
||||
}
|
||||
|
||||
xcqtsAll = xcqtsAll+zcgzts;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Integer newXcqTime = xcqtsAll * 8;
|
||||
new BaseBean().writeLog(userId+"newXcqTime"+newXcqTime);
|
||||
return String.valueOf(newXcqTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取两个日期之间所有的日期
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static ArrayList days(String date1, String date2) {
|
||||
String dateFormat = "yyyy-MM-dd";
|
||||
SimpleDateFormat format = new SimpleDateFormat(dateFormat);
|
||||
ArrayList L = new ArrayList();
|
||||
if (date1.equals(date2)) {
|
||||
System.out.println("两个日期相等!");
|
||||
return L;
|
||||
}
|
||||
|
||||
String tmp;
|
||||
if (date1.compareTo(date2) > 0) { // 确保 date1的日期不晚于date2
|
||||
tmp = date1;
|
||||
date1 = date2;
|
||||
date2 = tmp;
|
||||
}
|
||||
|
||||
tmp = format.format(str2Date(date1).getTime() + 3600 * 24 * 1000);
|
||||
|
||||
int num = 0;
|
||||
while (tmp.compareTo(date2) < 0) {
|
||||
L.add(tmp);
|
||||
num++;
|
||||
tmp = format.format(str2Date(tmp).getTime() + 3600 * 24 * 1000);
|
||||
}
|
||||
|
||||
if (num == 0)
|
||||
System.out.println("两个日期相邻!");
|
||||
return L;
|
||||
}
|
||||
|
||||
private static Date str2Date(String str) {
|
||||
String dateFormat = "yyyy-MM-dd";
|
||||
SimpleDateFormat format = new SimpleDateFormat(dateFormat);
|
||||
if (str == null)
|
||||
return null;
|
||||
|
||||
try {
|
||||
return format.parse(str);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,407 @@
|
||||
package com.engine.kq.cmd.shiftschedule;
|
||||
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.api.browser.bean.SearchConditionOption;
|
||||
import com.api.browser.util.ConditionFactory;
|
||||
import com.api.browser.util.ConditionType;
|
||||
import com.api.hrm.bean.HrmFieldBean;
|
||||
import com.api.hrm.bean.SelectOption;
|
||||
import com.api.hrm.bean.WeaRadioGroup;
|
||||
import com.api.hrm.util.HrmFieldSearchConditionComInfo;
|
||||
import com.cloudstore.dev.api.util.Util_TableMap;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.kq.biz.KQGroupBiz;
|
||||
import com.engine.kq.biz.KQGroupComInfo;
|
||||
import com.engine.kq.biz.KQHolidaySetBiz;
|
||||
import com.engine.kq.biz.KQShiftManagementComInfo;
|
||||
import com.engine.kq.util.PageUidFactory;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.filter.XssUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.company.DepartmentComInfo;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
import weaver.systeminfo.SystemEnv;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class GetBatchShiftScheduleFromCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
public GetBatchShiftScheduleFromCmd(Map<String, Object> params, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> retmap = new HashMap<String, Object>();
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "";
|
||||
List<HrmFieldBean> lsField = new ArrayList<HrmFieldBean>();
|
||||
HrmFieldBean hrmFieldBean = null;
|
||||
List<SearchConditionOption> options = null;
|
||||
Map<String,SearchConditionItem> mapItem = new HashMap<>();
|
||||
try{
|
||||
//必要的权限判断
|
||||
if(!HrmUserVarify.checkUserRight("HrmKQGroup:Add",user)) {
|
||||
retmap.put("status", "-1");
|
||||
retmap.put("message", SystemEnv.getHtmlLabelName(2012, user.getLanguage()));
|
||||
return retmap;
|
||||
}
|
||||
|
||||
KQGroupComInfo kQGroupComInfo = new KQGroupComInfo();
|
||||
KQShiftManagementComInfo kQShiftManagementComInfo = new KQShiftManagementComInfo();
|
||||
String groupId = Util.null2String(params.get("groupId"));//考勤组id
|
||||
|
||||
//排班类型、排班日期、排班人员、班次
|
||||
//排班类型、排班开始日期、排班人员、遇节假日、排班周期
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("shiftScheduleType");
|
||||
hrmFieldBean.setFieldlabel("389494");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
hrmFieldBean.setFieldvalue("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(389506, user.getLanguage()),true));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(389507, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("shiftScheduleDate");
|
||||
hrmFieldBean.setFieldlabel("16694");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setIsFormField(true);
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("shiftScheduleBeginDate");
|
||||
hrmFieldBean.setFieldlabel("16694");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setIsFormField(true);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("shiftScheduleEndDate");
|
||||
hrmFieldBean.setFieldlabel("16694");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("2");
|
||||
hrmFieldBean.setViewAttr(3);
|
||||
hrmFieldBean.setIsFormField(true);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("shiftScheduleMember");
|
||||
hrmFieldBean.setFieldlabel("125839");
|
||||
hrmFieldBean.setFieldhtmltype("3");
|
||||
hrmFieldBean.setType("17");
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("holidayType");
|
||||
hrmFieldBean.setFieldlabel("500436");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("meetHolidays");
|
||||
hrmFieldBean.setFieldlabel("529182");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("meetRestDays");
|
||||
hrmFieldBean.setFieldlabel("528922");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
options.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
options.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("serialId");
|
||||
hrmFieldBean.setFieldlabel("24803");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
String[] serialids = Util.splitString(Util.null2String(kQGroupComInfo.getSerialids(groupId)),",");
|
||||
for(int i=0;serialids!=null&&i<serialids.length;i++){
|
||||
options.add(new SearchConditionOption(serialids[i],kQShiftManagementComInfo.getSerial(serialids[i]),i==0));
|
||||
}
|
||||
options.add(new SearchConditionOption("-1", SystemEnv.getHtmlLabelName(26593, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("serialIdSx");
|
||||
hrmFieldBean.setFieldlabel("24803");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
for(int i=0;serialids!=null&&i<serialids.length;i++){
|
||||
options.add(new SearchConditionOption(serialids[i],kQShiftManagementComInfo.getSerial(serialids[i]),i==0));
|
||||
}
|
||||
options.add(new SearchConditionOption("-1", SystemEnv.getHtmlLabelName(26593, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("serialIdJjr");
|
||||
hrmFieldBean.setFieldlabel("24803");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
for(int i=0;serialids!=null&&i<serialids.length;i++){
|
||||
options.add(new SearchConditionOption(serialids[i],kQShiftManagementComInfo.getSerial(serialids[i]),i==0));
|
||||
}
|
||||
options.add(new SearchConditionOption("-1", SystemEnv.getHtmlLabelName(26593, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("serialIdXxr");
|
||||
hrmFieldBean.setFieldlabel("24803");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
for(int i=0;serialids!=null&&i<serialids.length;i++){
|
||||
options.add(new SearchConditionOption(serialids[i],kQShiftManagementComInfo.getSerial(serialids[i]),i==0));
|
||||
}
|
||||
options.add(new SearchConditionOption("-1", SystemEnv.getHtmlLabelName(26593, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("serialIdGzr");
|
||||
hrmFieldBean.setFieldlabel("24803");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
for(int i=0;serialids!=null&&i<serialids.length;i++){
|
||||
options.add(new SearchConditionOption(serialids[i],kQShiftManagementComInfo.getSerial(serialids[i]),i==0));
|
||||
}
|
||||
options.add(new SearchConditionOption("-1", SystemEnv.getHtmlLabelName(26593, user.getLanguage())));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
hrmFieldBean = new HrmFieldBean();
|
||||
hrmFieldBean.setFieldname("shiftcycleId");
|
||||
hrmFieldBean.setFieldlabel("389103");
|
||||
hrmFieldBean.setFieldhtmltype("5");
|
||||
hrmFieldBean.setType("1");
|
||||
options = new ArrayList<SearchConditionOption>();
|
||||
sql = "select id,shiftcyclename,shiftcycleserialids from kq_group_shiftcycle where groupid = ? order by id asc ";
|
||||
rs.executeQuery(sql,groupId);
|
||||
while(rs.next()){
|
||||
options.add(new SearchConditionOption(Util.null2String(rs.getString("id")),Util.null2String(rs.getString("shiftcyclename")),true));
|
||||
hrmFieldBean.setSelectOption(options);
|
||||
}
|
||||
lsField.add(hrmFieldBean);
|
||||
|
||||
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo();
|
||||
SearchConditionItem searchConditionItem = null;
|
||||
for (int i = 0; i < lsField.size(); i++) {
|
||||
searchConditionItem = hrmFieldSearchConditionComInfo.getSearchConditionItem(lsField.get(i), user);
|
||||
if(lsField.get(i).getFieldname().equals("shiftScheduleMember")){
|
||||
XssUtil xssUtil = new XssUtil();
|
||||
Map<String,Object> tmpParams = new HashMap<>();
|
||||
tmpParams.put("groupId",groupId);
|
||||
tmpParams.put("isNoAccount",1);
|
||||
String groupMemberSql = new KQGroupBiz().getGroupMemberSql(tmpParams);
|
||||
String inSqlWhere = " hr.id in (select resourceid from (" + groupMemberSql + ") t1)";
|
||||
String inSqlWhere1 = " t1.id in (select resourceid from (" + groupMemberSql + ") t1)";
|
||||
if(!Util.null2String(kQGroupComInfo.getExcludecount(groupId)).equals("1")) {
|
||||
//剔除无需排班人员
|
||||
String excludeid = Util.null2String(kQGroupComInfo.getExcludeid(groupId));
|
||||
if (excludeid.length() > 0) {
|
||||
inSqlWhere += " and hr.id not in (" + excludeid + ")";
|
||||
inSqlWhere1 += " and t1.id not in (" + excludeid + ")";
|
||||
}
|
||||
}
|
||||
searchConditionItem.getBrowserConditionParam().getDataParams().put("sqlwhere", xssUtil.put(inSqlWhere));
|
||||
searchConditionItem.getBrowserConditionParam().getCompleteParams().put("sqlwhere", xssUtil.put(inSqlWhere1));
|
||||
}
|
||||
mapItem.put(lsField.get(i).getFieldname(),searchConditionItem);
|
||||
}
|
||||
|
||||
//下拉
|
||||
List<Object> condition = new ArrayList<Object>();
|
||||
condition.add(mapItem.get("shiftScheduleType"));
|
||||
|
||||
//按天排班
|
||||
Map<String,Object> conditionMap = new HashMap<String, Object>();
|
||||
List<Object> conditionlist = null;
|
||||
List<Object> conditionlist2 = null;
|
||||
|
||||
conditionlist = new ArrayList<Object>();
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
conditionlist2.add(mapItem.get("shiftScheduleDate"));
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
WeaRadioGroup wrg = new WeaRadioGroup();
|
||||
wrg.setLabel(SystemEnv.getHtmlLabelName(125839, user.getLanguage()));
|
||||
List<Object> option = new ArrayList<>();
|
||||
Map<String, Object> selectLinkageDatas = new HashMap<String, Object>();
|
||||
selectLinkageDatas.put("2" ,mapItem.get("shiftScheduleMember"));
|
||||
wrg.setSelectLinkageDatas(selectLinkageDatas);
|
||||
option.add(new SelectOption("1",SystemEnv.getHtmlLabelName(389496, user.getLanguage()),true));
|
||||
option.add(new SelectOption("2",SystemEnv.getHtmlLabelName(33210, user.getLanguage())));
|
||||
|
||||
List<String> domkey = new ArrayList<String>();
|
||||
wrg.setOptions(option);
|
||||
wrg.setConditionType("SELECT_LINKAGE");
|
||||
wrg.setFieldcol(18);
|
||||
wrg.setLabelcol(6);
|
||||
domkey.add("shiftScheduleMemberType");
|
||||
wrg.setDomkey(domkey);
|
||||
conditionlist2.add(wrg);
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
conditionlist2.add(mapItem.get("serialId"));
|
||||
conditionlist.add(conditionlist2);
|
||||
conditionMap.put("1",conditionlist);
|
||||
|
||||
//按周期排班
|
||||
conditionlist = new ArrayList<Object>();
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
conditionlist2.add(mapItem.get("shiftScheduleBeginDate"));
|
||||
conditionlist2.add(mapItem.get("shiftScheduleEndDate"));
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
conditionlist2.add(wrg);
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
|
||||
WeaRadioGroup wrgH = new WeaRadioGroup();
|
||||
wrgH.setLabel(SystemEnv.getHtmlLabelName(500436, user.getLanguage()));
|
||||
List<Object> optionH = new ArrayList<>();
|
||||
Map<String, Object> selectLinkageDatasH = new HashMap<String, Object>();
|
||||
selectLinkageDatasH.put("3" ,mapItem.get("serialIdSx"));
|
||||
wrgH.setSelectLinkageDatas(selectLinkageDatasH);
|
||||
optionH.add(new SelectOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
optionH.add(new SelectOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
optionH.add(new SelectOption("3","替换为指定班次"));
|
||||
List<String> domkeyH = new ArrayList<String>();
|
||||
wrgH.setOptions(optionH);
|
||||
wrgH.setConditionType("SELECT_LINKAGE");
|
||||
wrgH.setFieldcol(18);
|
||||
wrgH.setLabelcol(6);
|
||||
domkeyH.add("holidayType");
|
||||
wrgH.setDomkey(domkeyH);
|
||||
conditionlist2.add(wrgH);
|
||||
|
||||
// conditionlist2.add(mapItem.get("holidayType"));
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
|
||||
WeaRadioGroup wrgJ = new WeaRadioGroup();
|
||||
wrgJ.setLabel(SystemEnv.getHtmlLabelName(529182, user.getLanguage()));
|
||||
List<Object> optionJ = new ArrayList<>();
|
||||
Map<String, Object> selectLinkageDatasJ = new HashMap<String, Object>();
|
||||
selectLinkageDatasJ.put("3" ,mapItem.get("serialIdJjr"));
|
||||
wrgJ.setSelectLinkageDatas(selectLinkageDatasJ);
|
||||
optionJ.add(new SelectOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
optionJ.add(new SelectOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
optionJ.add(new SelectOption("3","替换为指定班次"));
|
||||
List<String> domkeyJ = new ArrayList<String>();
|
||||
wrgJ.setOptions(optionJ);
|
||||
wrgJ.setConditionType("SELECT_LINKAGE");
|
||||
wrgJ.setFieldcol(18);
|
||||
wrgJ.setLabelcol(6);
|
||||
domkeyJ.add("meetHolidays");
|
||||
wrgJ.setDomkey(domkeyJ);
|
||||
conditionlist2.add(wrgJ);
|
||||
// conditionlist2.add(mapItem.get("meetHolidays"));
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
WeaRadioGroup wrgX = new WeaRadioGroup();
|
||||
wrgX.setLabel(SystemEnv.getHtmlLabelName(528922, user.getLanguage()));
|
||||
List<Object> optionX = new ArrayList<>();
|
||||
Map<String, Object> selectLinkageDatasX = new HashMap<String, Object>();
|
||||
selectLinkageDatasX.put("3" ,mapItem.get("serialIdXxr"));
|
||||
wrgX.setSelectLinkageDatas(selectLinkageDatasX);
|
||||
optionX.add(new SelectOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
optionX.add(new SelectOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
optionX.add(new SelectOption("3","替换为指定班次"));
|
||||
List<String> domkeyX = new ArrayList<String>();
|
||||
wrgX.setOptions(optionX);
|
||||
wrgX.setConditionType("SELECT_LINKAGE");
|
||||
wrgX.setFieldcol(18);
|
||||
wrgX.setLabelcol(6);
|
||||
domkeyX.add("meetRestDays");
|
||||
wrgX.setDomkey(domkeyX);
|
||||
conditionlist2.add(wrgX);
|
||||
|
||||
// conditionlist2.add(mapItem.get("meetRestDays"));
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
WeaRadioGroup wrgG = new WeaRadioGroup();
|
||||
wrgG.setLabel("遇调配工作日");
|
||||
List<Object> optionG = new ArrayList<>();
|
||||
Map<String, Object> selectLinkageDatasG = new HashMap<String, Object>();
|
||||
selectLinkageDatasG.put("3" ,mapItem.get("serialIdGzr"));
|
||||
wrgG.setSelectLinkageDatas(selectLinkageDatasG);
|
||||
optionG.add(new SelectOption("1",SystemEnv.getHtmlLabelName(125899, user.getLanguage()),true));
|
||||
optionG.add(new SelectOption("2",SystemEnv.getHtmlLabelName(125837, user.getLanguage())));
|
||||
optionG.add(new SelectOption("3","替换为指定班次"));
|
||||
List<String> domkeyG = new ArrayList<String>();
|
||||
wrgG.setOptions(optionG);
|
||||
wrgG.setConditionType("SELECT_LINKAGE");
|
||||
wrgG.setFieldcol(18);
|
||||
wrgG.setLabelcol(6);
|
||||
domkeyG.add("meetworkDays");
|
||||
wrgG.setDomkey(domkeyG);
|
||||
conditionlist2.add(wrgG);
|
||||
|
||||
// conditionlist2.add(mapItem.get("meetRestDays"));
|
||||
conditionlist.add(conditionlist2);
|
||||
|
||||
conditionlist2 = new ArrayList<Object>();
|
||||
conditionlist2.add(mapItem.get("shiftcycleId"));
|
||||
conditionlist.add(conditionlist2);
|
||||
conditionMap.put("2",conditionlist);
|
||||
condition.add(conditionMap);
|
||||
|
||||
retmap.put("conditions", condition);
|
||||
retmap.put("status", "1");
|
||||
}catch (Exception e) {
|
||||
retmap.put("status", "-1");
|
||||
retmap.put("message", SystemEnv.getHtmlLabelName(382661,user.getLanguage()));
|
||||
writeLog(e);
|
||||
}
|
||||
return retmap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue