805 lines
32 KiB
Plaintext
805 lines
32 KiB
Plaintext
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
|
||
<%@ page import="weaver.general.Util" %>
|
||
<%@ page import="weaver.conn.RecordSet" %>
|
||
<%@ page import="com.alibaba.fastjson.JSONObject" %>
|
||
<%@ page import="weaver.general.TimeUtil" %>
|
||
<%@ page import="java.util.*" %>
|
||
<%@ page import="weaver.hrm.*" %>
|
||
<%@ page import="weaver.formmode.setup.ModeRightInfo" %>
|
||
<%@ page import="com.engine.kq.service.KQReportService" %>
|
||
<%@ page import="com.engine.common.util.ServiceUtil" %>
|
||
<%@ page import="com.engine.kq.service.impl.KQReportServiceImpl" %>
|
||
<%@ page import="java.text.SimpleDateFormat" %>
|
||
<%@ page import="com.alibaba.fastjson.JSONArray" %>
|
||
<%@ page import="com.alibaba.fastjson.JSON" %>
|
||
<%@ page import="weaver.conn.BatchRecordSet" %>
|
||
<%@ page import="weaver.hrm.resource.ResourceComInfo" %>
|
||
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
|
||
<jsp:useBean id="rst" class="weaver.conn.RecordSet" scope="page" />
|
||
<jsp:useBean id="bb" class="weaver.general.BaseBean" />
|
||
<%
|
||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||
String bool = "0";
|
||
|
||
String startdate = Util.null2String(request.getParameter("startdate"));
|
||
String userids = Util.null2String(request.getParameter("userids"));
|
||
|
||
User user = HrmUserVarify.getUser(request, response);
|
||
int userid = user.getUID();
|
||
String currentdate = TimeUtil.getCurrentDateString();
|
||
String currenttime = TimeUtil.getOnlyCurrentTimeString();
|
||
|
||
String fromdate = startdate + "-01";
|
||
String todate = getEndByDateStr(fromdate,0);
|
||
|
||
if(userids != null && !"".equals(userids)){
|
||
for(String userId : userids.split(",")){
|
||
Map<String, Object> apidatas = new HashMap<String, Object>();
|
||
Map<String, Object> params = new HashMap<String, Object>();
|
||
|
||
String userName = new ResourceComInfo().getLastname(userId);
|
||
|
||
boolean boool = false;
|
||
rs.executeQuery("select * from uf_kqhzb where yf=? and xm=?",startdate,userName);
|
||
while(rs.next()){
|
||
String mxid = Util.null2String(rs.getString("id"));
|
||
//审核状态 0-审核 1-反审核
|
||
String shzt = Util.null2String(rs.getString("shzt"));
|
||
if(shzt != null && !"".equals(shzt)){
|
||
if("1".equals(shzt)){
|
||
boool = true;
|
||
}
|
||
}else{
|
||
boool = true;
|
||
}
|
||
if(boool){
|
||
rst.executeUpdate("delete from uf_kqhzb where id = ?",mxid);
|
||
}
|
||
}
|
||
|
||
params.put("reportType","month");
|
||
Map<String, Object> paramsData = new HashMap<String, Object>();
|
||
paramsData.put("fromDate",fromdate);
|
||
paramsData.put("toDate",todate);
|
||
paramsData.put("pageIndex",0);
|
||
paramsData.put("resourceId",userId);
|
||
paramsData.put("typeselect","6");
|
||
paramsData.put("viewScope","0");
|
||
paramsData.put("status","9");
|
||
paramsData.put("isNoAccount","1");
|
||
paramsData.put("attendanceSerial","");
|
||
params.put("data",JSONObject.toJSONString(paramsData));
|
||
|
||
bb.writeLog("params: "+ params);
|
||
|
||
try {
|
||
apidatas = getService(user).getKQReport(params, user);
|
||
|
||
bb.writeLog("apidatas:" + JSONObject.toJSONString(apidatas));
|
||
|
||
JSONArray jsonArray = JSON.parseArray(Util.null2String(JSONObject.toJSONString(apidatas.get("datas"))));
|
||
|
||
bb.writeLog("jsonArray:" + JSONObject.toJSONString(jsonArray));
|
||
|
||
for (Iterator<Object> iterator = jsonArray.iterator(); iterator.hasNext(); ) {
|
||
List<List<Object>> lsParams = new ArrayList<>();
|
||
List<List<Object>> lsDelParams = new ArrayList<>();
|
||
JSONObject next = (JSONObject) iterator.next();
|
||
|
||
String resourceId = next.getString("resourceId");
|
||
//入离职状态 0-当月入职 1-当月离职
|
||
String rlzzt = null;
|
||
//入职日期
|
||
String rzrq = Util.null2String(getRzrq(resourceId));
|
||
String rzrq_day = rzrq.substring(8,10);
|
||
String rzrq_date = "";
|
||
if(rzrq!=null && !"".equals(rzrq)){
|
||
rzrq_date = rzrq.substring(0,7);
|
||
if(rzrq_date.equals(startdate)){
|
||
rlzzt = "0";
|
||
}
|
||
}
|
||
//预转正日期 = 入职日期+1月-1天
|
||
String yzzrq = addDateDay(addDateMonth(rzrq,1),-1);
|
||
// 1号入职,预转正日期就是 入职日期+1月 否则 就是 入职日期+1月-1天
|
||
if(Integer.parseInt(rzrq_day) == 1){
|
||
yzzrq = addDateMonth(rzrq,1);
|
||
}else{
|
||
yzzrq = addDateDay(addDateMonth(rzrq,1),-1);
|
||
}
|
||
|
||
//离职日期
|
||
String lzrq = Util.null2String(getLzrq(resourceId));
|
||
String lzrq_date = "";
|
||
if(lzrq!=null && !"".equals(lzrq)){
|
||
lzrq_date = lzrq.substring(0,7);
|
||
if(lzrq_date.equals(startdate)){
|
||
rlzzt = "1";
|
||
}
|
||
}
|
||
//转正日期
|
||
String zzrq = Util.null2String(getZzrq(resourceId));
|
||
String zzrq_date = "";
|
||
if(zzrq!=null && !"".equals(zzrq)){
|
||
zzrq_date = zzrq.substring(0,7);
|
||
if(zzrq_date.equals(startdate)){
|
||
rlzzt = "2";
|
||
}
|
||
}
|
||
|
||
//当月既有入职,也有离职,优先算 当月入职
|
||
if(rzrq_date.equals(lzrq_date)){
|
||
rlzzt = "0";
|
||
}
|
||
|
||
//姓名
|
||
String xm = next.getString("lastname");
|
||
//服务处
|
||
String fwc = next.getString("glc");
|
||
//班组
|
||
String bz = next.getString("bz");
|
||
//中心
|
||
String zx = next.getString("zx");
|
||
//外包公司
|
||
String wbgs = next.getString("wbgs");
|
||
//绩效分类
|
||
String jxfl = next.getString("jxfl");
|
||
//考勤来源
|
||
String kqly = next.getString("attendanceSource");
|
||
//应出勤天数(天)
|
||
String ycqtst = next.getString("workdays");
|
||
//实际出勤天数(天)
|
||
String sjcqtst = next.getString("attendancedays");
|
||
//迟到(次)
|
||
String cdc = next.getString("beLate");
|
||
//迟到时长(小时)
|
||
String cdscxs = next.getString("beLateMins");
|
||
//早退(次)
|
||
String ztc = next.getString("leaveEearly");
|
||
//早退时长(小时)
|
||
String ztscxs = next.getString("leaveEarlyMins");
|
||
//旷工(次)
|
||
String kgc = next.getString("absenteeism");
|
||
//旷工时长(小时)
|
||
String kgscxs = next.getString("absenteeismMins");
|
||
//漏签(次)
|
||
String lqc = next.getString("forgotCheck");
|
||
//夜班次数(次)
|
||
String ybcsc = next.getString("ybcs");
|
||
//年假(小时)
|
||
String njxs = next.getString("leaveType_2");
|
||
//调休(小时)
|
||
String dxxs = next.getString("leaveType_5");
|
||
//事假(小时)
|
||
String sjxs = next.getString("leaveType_6");
|
||
//病假(小时)
|
||
String bjxs = next.getString("leaveType_7");
|
||
//产假(小时)
|
||
String cjxs = next.getString("leaveType_8");
|
||
//陪产假(小时)
|
||
String pcjxs = next.getString("leaveType_9");
|
||
//婚假(小时)
|
||
String hjxs = next.getString("leaveType_10");
|
||
//丧假(小时)
|
||
String sjxs1 = next.getString("leaveType_11");
|
||
//哺乳假(小时)
|
||
String brjxs = next.getString("leaveType_12");
|
||
//育儿假(小时)
|
||
String yejxs = next.getString("leaveType_13");
|
||
//产检假(小时)
|
||
String cjjxs = next.getString("leaveType_15");
|
||
//工伤假(小时)
|
||
String gsjxs = next.getString("leaveType_16");
|
||
//工作日加班(小时)(不关联调休)
|
||
String gzrjbxsbgldx = next.getString("workingDayOvertime_nonleave");
|
||
//休息日加班(小时)(不关联调休)
|
||
String xxrjbxsbgldx = next.getString("restDayOvertime_nonleave");
|
||
//节假日加班(小时)(不关联调休)
|
||
String jjrjbxsbgldx = next.getString("holidayOvertime_nonleave");
|
||
//工作日加班(小时)(关联调休)
|
||
String gzrjbxsgldx = next.getString("workingDayOvertime_4leave");
|
||
//休息日加班(小时)(关联调休)
|
||
String xxrjbxsgldx = next.getString("restDayOvertime_4leave");
|
||
//节假日加班(小时)(关联调休)
|
||
String jjrjbxsgldx = next.getString("holidayOvertime_4leave");
|
||
//总计(小时)
|
||
String zjxs = next.getString("overtimeTotal");
|
||
//出差(天)
|
||
String cct = next.getString("businessLeave");
|
||
//公出(小时)
|
||
String gcxs = next.getString("officialBusiness");
|
||
|
||
bb.writeLog("userId: " + resourceId + " workdays: " + ycqtst + " attendancedays: " + sjcqtst);
|
||
|
||
List<Object> par = new ArrayList<>();
|
||
List<Object> parDel = new ArrayList<>();
|
||
|
||
boolean isNoAttend = checkNoAttend(resourceId);
|
||
|
||
par.add(rzrq);
|
||
par.add(lzrq);
|
||
par.add(rlzzt);
|
||
|
||
par.add(xm);
|
||
par.add(startdate);
|
||
par.add(fwc);
|
||
par.add(bz);
|
||
par.add(zx);
|
||
par.add(wbgs);
|
||
par.add(jxfl);
|
||
par.add(kqly);
|
||
par.add(ycqtst);
|
||
par.add(sjcqtst);
|
||
|
||
par.add(cdc);
|
||
par.add(cdscxs);
|
||
par.add(ztc);
|
||
par.add(ztscxs);
|
||
par.add(kgc);
|
||
par.add(kgscxs);
|
||
par.add(lqc);
|
||
|
||
par.add(ybcsc);
|
||
|
||
par.add(njxs);
|
||
par.add(dxxs);
|
||
par.add(sjxs);
|
||
par.add(bjxs);
|
||
par.add(cjxs);
|
||
par.add(pcjxs);
|
||
par.add(hjxs);
|
||
par.add(sjxs1);
|
||
par.add(brjxs);
|
||
par.add(yejxs);
|
||
par.add(cjjxs);
|
||
par.add(gsjxs);
|
||
|
||
par.add(gzrjbxsbgldx);
|
||
par.add(xxrjbxsbgldx);
|
||
par.add(jjrjbxsbgldx);
|
||
par.add(gzrjbxsgldx);
|
||
par.add(xxrjbxsgldx);
|
||
par.add(jjrjbxsgldx);
|
||
|
||
par.add(zjxs);
|
||
par.add(cct);
|
||
par.add(gcxs);
|
||
|
||
par.add(yzzrq);
|
||
|
||
parDel.add(xm);
|
||
parDel.add(startdate);
|
||
lsDelParams.add(parDel);
|
||
|
||
BatchRecordSet bRs = new BatchRecordSet();
|
||
bb.writeLog("开始同步数据");
|
||
bb.writeLog("lsDelParams:" + JSON.toJSONString(lsDelParams));
|
||
|
||
//审核状态 0-审核 1-反审核
|
||
String shzt = getShzt(xm,startdate);
|
||
|
||
boolean bbol = false;
|
||
if(shzt != null && !"".equals(shzt)){
|
||
if("0".equals(shzt)){
|
||
bbol = true;
|
||
}
|
||
}
|
||
// 为空 或者 反审核 才会往下执行
|
||
if(!bbol){
|
||
String sql = "";
|
||
|
||
int modeid = getFormModeIdByCubeName("uf_kqhzb");
|
||
|
||
par.add(modeid);
|
||
par.add(userid);
|
||
par.add("0");
|
||
par.add(currentdate);
|
||
par.add(currenttime);
|
||
|
||
lsParams.add(par);
|
||
// 不是 无需考勤人员
|
||
if(!isNoAttend) {
|
||
|
||
sql = " insert into uf_kqhzb (rzrq, lzrq, rlzzt, xm, yf, fwc, bz, zx, wbgs, " +
|
||
"jxfl,kqly,ycqtst,sjcqtst,cdc,cdscxs,ztc,ztscxs,kgc,kgscxs," +
|
||
"lqc,ybcsc,njxs,dxxs,sjxs,bjxs,cjxs,pcjxs,hjxs,sjxs1," +
|
||
"brjxs,yejxs,cjjxs,gsjxs,gzrjbxsbgldx,xxrjbxsbgldx,jjrjbxsbgldx,gzrjbxsgldx,xxrjbxsgldx,jjrjbxsgldx," +
|
||
"zjxs,cct,gcxs,yzzrq,FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME) "
|
||
+ " values(?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?)";
|
||
bRs.executeBatchSql(sql, lsParams);
|
||
|
||
String idNew = "";
|
||
RecordSet findNew = new RecordSet();
|
||
String sqlFindnew = "select Id from uf_kqhzb where xm = '" + xm + "' and yf = '" + startdate + "' order by" +
|
||
" modedatacreatedate desc,modedatacreatetime desc";
|
||
findNew.execute(sqlFindnew);
|
||
bb.writeLog("findSqlNew:" + sqlFindnew);
|
||
if (findNew.next()) {
|
||
idNew = Util.null2String(findNew.getString("id"));
|
||
}
|
||
bb.writeLog("idNew:" + idNew);
|
||
// 权限重构
|
||
int dataId = Integer.valueOf(idNew);
|
||
ModeRightInfo modeRightInfo = new ModeRightInfo();
|
||
modeRightInfo.editModeDataShare(userid, modeid, dataId);
|
||
}
|
||
}
|
||
}
|
||
}catch (Exception e){
|
||
bool = "0";
|
||
e.printStackTrace();
|
||
bb.writeLog("error: "+ e);
|
||
}
|
||
}
|
||
bool = "1";
|
||
}else{
|
||
boolean boool = false;
|
||
rs.executeQuery("select * from uf_kqhzb where yf=?",startdate);
|
||
while(rs.next()){
|
||
String mxid = Util.null2String(rs.getString("id"));
|
||
//审核状态 0-审核 1-反审核
|
||
String shzt = Util.null2String(rs.getString("shzt"));
|
||
if(shzt != null && !"".equals(shzt)){
|
||
if("1".equals(shzt)){
|
||
boool = true;
|
||
}
|
||
}else{
|
||
boool = true;
|
||
}
|
||
if(boool){
|
||
rst.executeUpdate("delete from uf_kqhzb where id = ?",mxid);
|
||
}
|
||
}
|
||
|
||
Map<String, Object> apidatas = new HashMap<String, Object>();
|
||
Map<String, Object> params = new HashMap<String, Object>();
|
||
params.put("reportType","month");
|
||
Map<String, Object> paramsData = new HashMap<String, Object>();
|
||
paramsData.put("fromDate",fromdate);
|
||
paramsData.put("toDate",todate);
|
||
paramsData.put("pageIndex",0);
|
||
paramsData.put("typeselect","6");
|
||
paramsData.put("viewScope","0");
|
||
paramsData.put("status","9");
|
||
paramsData.put("isNoAccount","1");
|
||
paramsData.put("attendanceSerial","");
|
||
params.put("data",JSONObject.toJSONString(paramsData));
|
||
|
||
bb.writeLog("params: "+ params);
|
||
|
||
try {
|
||
apidatas = getService(user).getKQReport(params, user);
|
||
|
||
bb.writeLog("apidatas:" + JSONObject.toJSONString(apidatas));
|
||
|
||
JSONArray jsonArray = JSON.parseArray(Util.null2String(JSONObject.toJSONString(apidatas.get("datas"))));
|
||
|
||
bb.writeLog("jsonArray:" + JSONObject.toJSONString(jsonArray));
|
||
|
||
for (Iterator<Object> iterator = jsonArray.iterator(); iterator.hasNext(); ) {
|
||
List<List<Object>> lsParams = new ArrayList<>();
|
||
List<List<Object>> lsDelParams = new ArrayList<>();
|
||
JSONObject next = (JSONObject) iterator.next();
|
||
|
||
String resourceId = next.getString("resourceId");
|
||
//入离职状态 0-当月入职 1-当月离职
|
||
String rlzzt = null;
|
||
//入职日期
|
||
String rzrq = Util.null2String(getRzrq(resourceId));
|
||
String rzrq_date = "";
|
||
if(rzrq!=null && !"".equals(rzrq)){
|
||
rzrq_date = rzrq.substring(0,7);
|
||
if(rzrq_date.equals(startdate)){
|
||
rlzzt = "0";
|
||
}
|
||
}
|
||
|
||
//离职日期
|
||
String lzrq = Util.null2String(getLzrq(resourceId));
|
||
String lzrq_date = "";
|
||
if(lzrq!=null && !"".equals(lzrq)){
|
||
lzrq_date = lzrq.substring(0,7);
|
||
if(lzrq_date.equals(startdate)){
|
||
rlzzt = "1";
|
||
}
|
||
}
|
||
//当月既有入职,也有离职,优先算 当月入职
|
||
if(rzrq_date.equals(lzrq_date)){
|
||
rlzzt = "0";
|
||
}
|
||
|
||
//姓名
|
||
String xm = next.getString("lastname");
|
||
//服务处
|
||
String fwc = next.getString("glc");
|
||
//班组
|
||
String bz = next.getString("bz");
|
||
//中心
|
||
String zx = next.getString("zx");
|
||
//外包公司
|
||
String wbgs = next.getString("wbgs");
|
||
//绩效分类
|
||
String jxfl = next.getString("jxfl");
|
||
//考勤来源
|
||
String kqly = next.getString("attendanceSource");
|
||
//应出勤天数(天)
|
||
String ycqtst = next.getString("workdays");
|
||
//实际出勤天数(天)
|
||
String sjcqtst = next.getString("attendancedays");
|
||
//迟到(次)
|
||
String cdc = next.getString("beLate");
|
||
//迟到时长(小时)
|
||
String cdscxs = next.getString("beLateMins");
|
||
//早退(次)
|
||
String ztc = next.getString("leaveEearly");
|
||
//早退时长(小时)
|
||
String ztscxs = next.getString("leaveEarlyMins");
|
||
//旷工(次)
|
||
String kgc = next.getString("absenteeism");
|
||
//旷工时长(小时)
|
||
String kgscxs = next.getString("absenteeismMins");
|
||
//漏签(次)
|
||
String lqc = next.getString("forgotCheck");
|
||
//夜班次数(次)
|
||
String ybcsc = next.getString("ybcs");
|
||
//年假(小时)
|
||
String njxs = next.getString("leaveType_2");
|
||
//调休(小时)
|
||
String dxxs = next.getString("leaveType_5");
|
||
//事假(小时)
|
||
String sjxs = next.getString("leaveType_6");
|
||
//病假(小时)
|
||
String bjxs = next.getString("leaveType_7");
|
||
//产假(小时)
|
||
String cjxs = next.getString("leaveType_8");
|
||
//陪产假(小时)
|
||
String pcjxs = next.getString("leaveType_9");
|
||
//婚假(小时)
|
||
String hjxs = next.getString("leaveType_10");
|
||
//丧假(小时)
|
||
String sjxs1 = next.getString("leaveType_11");
|
||
//哺乳假(小时)
|
||
String brjxs = next.getString("leaveType_12");
|
||
//育儿假(小时)
|
||
String yejxs = next.getString("leaveType_13");
|
||
//产检假(小时)
|
||
String cjjxs = next.getString("leaveType_15");
|
||
//工伤假(小时)
|
||
String gsjxs = next.getString("leaveType_16");
|
||
//工作日加班(小时)(不关联调休)
|
||
String gzrjbxsbgldx = next.getString("workingDayOvertime_nonleave");
|
||
//休息日加班(小时)(不关联调休)
|
||
String xxrjbxsbgldx = next.getString("restDayOvertime_nonleave");
|
||
//节假日加班(小时)(不关联调休)
|
||
String jjrjbxsbgldx = next.getString("holidayOvertime_nonleave");
|
||
//工作日加班(小时)(关联调休)
|
||
String gzrjbxsgldx = next.getString("workingDayOvertime_4leave");
|
||
//休息日加班(小时)(关联调休)
|
||
String xxrjbxsgldx = next.getString("restDayOvertime_4leave");
|
||
//节假日加班(小时)(关联调休)
|
||
String jjrjbxsgldx = next.getString("holidayOvertime_4leave");
|
||
//总计(小时)
|
||
String zjxs = next.getString("overtimeTotal");
|
||
//出差(天)
|
||
String cct = next.getString("businessLeave");
|
||
//公出(小时)
|
||
String gcxs = next.getString("officialBusiness");
|
||
|
||
bb.writeLog("userId: " + resourceId + " workdays: " + ycqtst + " attendancedays: " + sjcqtst);
|
||
|
||
List<Object> par = new ArrayList<>();
|
||
List<Object> parDel = new ArrayList<>();
|
||
|
||
boolean isNoAttend = checkNoAttend(resourceId);
|
||
|
||
par.add(rzrq);
|
||
par.add(lzrq);
|
||
par.add(rlzzt);
|
||
|
||
par.add(xm);
|
||
par.add(startdate);
|
||
par.add(fwc);
|
||
par.add(bz);
|
||
par.add(zx);
|
||
par.add(wbgs);
|
||
par.add(jxfl);
|
||
par.add(kqly);
|
||
par.add(ycqtst);
|
||
par.add(sjcqtst);
|
||
|
||
par.add(cdc);
|
||
par.add(cdscxs);
|
||
par.add(ztc);
|
||
par.add(ztscxs);
|
||
par.add(kgc);
|
||
par.add(kgscxs);
|
||
par.add(lqc);
|
||
|
||
par.add(ybcsc);
|
||
|
||
par.add(njxs);
|
||
par.add(dxxs);
|
||
par.add(sjxs);
|
||
par.add(bjxs);
|
||
par.add(cjxs);
|
||
par.add(pcjxs);
|
||
par.add(hjxs);
|
||
par.add(sjxs1);
|
||
par.add(brjxs);
|
||
par.add(yejxs);
|
||
par.add(cjjxs);
|
||
par.add(gsjxs);
|
||
|
||
par.add(gzrjbxsbgldx);
|
||
par.add(xxrjbxsbgldx);
|
||
par.add(jjrjbxsbgldx);
|
||
par.add(gzrjbxsgldx);
|
||
par.add(xxrjbxsgldx);
|
||
par.add(jjrjbxsgldx);
|
||
|
||
par.add(zjxs);
|
||
par.add(cct);
|
||
par.add(gcxs);
|
||
|
||
parDel.add(xm);
|
||
parDel.add(startdate);
|
||
lsDelParams.add(parDel);
|
||
|
||
BatchRecordSet bRs = new BatchRecordSet();
|
||
bb.writeLog("开始同步数据");
|
||
bb.writeLog("lsDelParams:" + JSON.toJSONString(lsDelParams));
|
||
|
||
//审核状态 0-审核 1-反审核
|
||
String shzt = getShzt(xm,startdate);
|
||
|
||
boolean bbol = false;
|
||
if(shzt != null && !"".equals(shzt)){
|
||
if("0".equals(shzt)){
|
||
bbol = true;
|
||
}
|
||
}
|
||
// 为空 或者 反审核 才会往下执行
|
||
if(!bbol){
|
||
String sql = "";
|
||
|
||
int modeid = getFormModeIdByCubeName("uf_kqhzb");
|
||
|
||
par.add(modeid);
|
||
par.add(userid);
|
||
par.add("0");
|
||
par.add(currentdate);
|
||
par.add(currenttime);
|
||
|
||
lsParams.add(par);
|
||
// 不是 无需考勤人员
|
||
if(!isNoAttend) {
|
||
|
||
sql = " insert into uf_kqhzb (rzrq, lzrq, rlzzt, xm, yf, fwc, bz, zx, wbgs, " +
|
||
"jxfl,kqly,ycqtst,sjcqtst,cdc,cdscxs,ztc,ztscxs,kgc,kgscxs," +
|
||
"lqc,ybcsc,njxs,dxxs,sjxs,bjxs,cjxs,pcjxs,hjxs,sjxs1," +
|
||
"brjxs,yejxs,cjjxs,gsjxs,gzrjbxsbgldx,xxrjbxsbgldx,jjrjbxsbgldx,gzrjbxsgldx,xxrjbxsgldx,jjrjbxsgldx," +
|
||
"zjxs,cct,gcxs,FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME) "
|
||
+ " values(?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?,?,?," +
|
||
"?,?,?,?,?,?,?,?)";
|
||
bRs.executeBatchSql(sql, lsParams);
|
||
|
||
String idNew = "";
|
||
RecordSet findNew = new RecordSet();
|
||
String sqlFindnew = "select Id from uf_kqhzb where xm = '" + xm + "' and yf = '" + startdate + "' order by" +
|
||
" modedatacreatedate desc,modedatacreatetime desc";
|
||
findNew.execute(sqlFindnew);
|
||
bb.writeLog("findSqlNew:" + sqlFindnew);
|
||
if (findNew.next()) {
|
||
idNew = Util.null2String(findNew.getString("id"));
|
||
}
|
||
bb.writeLog("idNew:" + idNew);
|
||
// 权限重构
|
||
int dataId = Integer.valueOf(idNew);
|
||
ModeRightInfo modeRightInfo = new ModeRightInfo();
|
||
modeRightInfo.editModeDataShare(userid, modeid, dataId);
|
||
}
|
||
}
|
||
}
|
||
bool = "1";
|
||
}catch (Exception e){
|
||
bool = "0";
|
||
e.printStackTrace();
|
||
bb.writeLog("error: "+ e);
|
||
}
|
||
}
|
||
|
||
resultMap.put("flag", bool);
|
||
out.print(JSONObject.toJSONString(resultMap));
|
||
%>
|
||
|
||
<%!
|
||
|
||
/**
|
||
* 获取 审核状态
|
||
* @param userid
|
||
* @param nianyue
|
||
* @return
|
||
*/
|
||
public static String getShzt(String userid,String nianyue){
|
||
String result = "";
|
||
RecordSet rs = new RecordSet();
|
||
rs.executeQuery("select shzt from uf_kqhzb where xm = ? and yf = ?",userid,nianyue);
|
||
if(rs.next()){
|
||
result = Util.null2String(rs.getString("shzt"));
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* 获取 入职日期
|
||
* @param userid
|
||
* @return
|
||
*/
|
||
public static String getRzrq(String userid){
|
||
String result = "";
|
||
RecordSet rs = new RecordSet();
|
||
rs.executeQuery("select companystartdate from HrmResource where id = ?",userid);
|
||
while (rs.next()){
|
||
result = Util.null2String(rs.getString("companystartdate"));
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* 获取 离职日期
|
||
* @param userid
|
||
* @return
|
||
*/
|
||
public static String getLzrq(String userid){
|
||
String result = "";
|
||
RecordSet rs = new RecordSet();
|
||
rs.executeQuery("select changedate from HrmStatusHistory where type_n='5' and resourceid=?",userid);
|
||
while (rs.next()){
|
||
result = Util.null2String(rs.getString("changedate"));
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* 获取 转正日期
|
||
* @param userid
|
||
* @return
|
||
*/
|
||
public static String getZzrq(String userid){
|
||
String result = "";
|
||
RecordSet rs = new RecordSet();
|
||
rs.executeQuery("select changedate from HrmStatusHistory where type_n='2' and resourceid=?",userid);
|
||
while (rs.next()){
|
||
result = Util.null2String(rs.getString("changedate"));
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* 根据建模表名获取formModeId
|
||
*
|
||
* @param cubeName 建模表明
|
||
* @return int formModeId
|
||
*/
|
||
private static int getFormModeIdByCubeName(String cubeName) {
|
||
RecordSet rs = new RecordSet();
|
||
rs.executeQuery("select t1.id from modeinfo t1 " +
|
||
" left join workflow_bill t2 " +
|
||
" on t1.formid=t2.id " +
|
||
" where t2.tablename='" + cubeName + "'");
|
||
rs.next();
|
||
return rs.getInt("id");
|
||
}
|
||
|
||
private KQReportService getService(User user) {
|
||
return (KQReportService) ServiceUtil.getService(KQReportServiceImpl.class, user);
|
||
}
|
||
|
||
/**
|
||
* 根据日期字符串获取上下某个月的月末
|
||
*
|
||
* @param dateStr 日期字符串
|
||
* @param num 上下某月
|
||
* @return 月初月末集合
|
||
*/
|
||
public static String getEndByDateStr(String dateStr, int num) {
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||
String res = "";
|
||
try {
|
||
Date date = sdf.parse(dateStr);
|
||
Calendar c1 = Calendar.getInstance();
|
||
c1.setTime(date);
|
||
c1.add(Calendar.MONTH, num);
|
||
c1.set(Calendar.DAY_OF_MONTH, 1);
|
||
String start = sdf.format(c1.getTime());
|
||
Calendar c2 = Calendar.getInstance();
|
||
Date dateTemp = sdf.parse(start);
|
||
c2.setTime(dateTemp);
|
||
c2.add(Calendar.MONTH, 1);
|
||
c2.set(Calendar.DAY_OF_MONTH, 0);
|
||
res = sdf.format(c2.getTime());
|
||
return res;
|
||
} catch (Exception e) {
|
||
return res;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 判断 是否是 无需考勤人员 0 是 1 否
|
||
* @param userid
|
||
* @return
|
||
*/
|
||
public static boolean checkNoAttend(String userid){
|
||
boolean bool = false;
|
||
RecordSet rs = new RecordSet();
|
||
rs.executeQuery("select field100046 as res from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid='3' and id = ?",userid);
|
||
if(rs.next()){
|
||
String noattend = Util.null2String(rs.getString("res"));
|
||
if("0".equals(noattend)){
|
||
bool = true;
|
||
}
|
||
}
|
||
return bool;
|
||
}
|
||
|
||
/**
|
||
* 对时间的月数进行加减
|
||
* @param daytime 时间的格式:yyyy-MM-dd
|
||
* @param month 月数 -1则代表减一月
|
||
* @return
|
||
*/
|
||
public static String addDateMonth(String daytime, int month){
|
||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||
Date date = null;
|
||
try {
|
||
date = format.parse(daytime);
|
||
if (date == null){
|
||
return "";
|
||
}
|
||
Calendar cal = Calendar.getInstance();
|
||
cal.setTime(date);
|
||
cal.add(Calendar.MONTH, month);// 加 day 月
|
||
date = cal.getTime();
|
||
cal = null;
|
||
return format.format(date);
|
||
} catch (Exception ex) {
|
||
ex.printStackTrace();
|
||
}
|
||
return "";
|
||
}
|
||
|
||
/**
|
||
* 对时间的天数进行加减
|
||
* @param daytime 时间的格式:yyyy-MM-dd
|
||
* @param day 天数 -1则代表减一天
|
||
* @return
|
||
*/
|
||
public static String addDateDay(String daytime, int day){
|
||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||
Date date = null;
|
||
try {
|
||
date = format.parse(daytime);
|
||
if (date == null){
|
||
return "";
|
||
}
|
||
Calendar cal = Calendar.getInstance();
|
||
cal.setTime(date);
|
||
cal.add(Calendar.DAY_OF_MONTH, day);// 加一天
|
||
date = cal.getTime();
|
||
cal = null;
|
||
return format.format(date);
|
||
} catch (Exception ex) {
|
||
ex.printStackTrace();
|
||
}
|
||
return "";
|
||
}
|
||
|
||
%>
|