package weaver.interfaces.shuzhi.cronjob ;
import com.time.util.DateUtil ;
import weaver.conn.RecordSet ;
import weaver.general.BaseBean ;
import weaver.general.Util ;
import weaver.interfaces.schedule.BaseCronJob ;
import weaver.interfaces.shuzhi.util.WorkflowUtil ;
import java.util.Date ;
import java.util.HashMap ;
import java.util.Map ;
/ * *
* 员 工 关 系 提 醒 流 程 - 计 划 任 务
* < p >
* 从 转 正 记 录 ( uf_zzjl ) 、 员 工 调 动 记 录 ( uf_ddjl ) 、 离 职 办 理 查 询 表 单 ( uf_lzblcxbd ) ,
* 1 、 生 效 日 期 早 于 当 前 日 期 且 无 归 档 日 期 , 生 成 流 程 到 人 员 , 手 动 调 整 ;
* 2 、 生 效 日 期 等 于 当 前 日 期 , 根 据 记 录 数 据 更 新 到 hrmresource
*
* < p >
* uf_zzjl : 生 效 日 期 = zzrq ( 转 正 日 期 ) 、 归 档 日 期 = gdrq ( 归 档 日 期 )
* 1 、 生 效 日 期 早 于 当 前 日 期 且 无 归 档 日 期 , 生 成 流 程 到 人 员 , 手 动 调 整 ;
* 2 、 生 效 日 期 等 于 当 前 日 期 , 根 据 记 录 数 据 更 新 数 据
*
* hrmresource 表 : 根 据 人 员 id 更 新 status = '1'
* uf_rzgljmb 表 : ( 员 工 状 态 : ygzt , 转 正 日 期 : zzrq , 员 工 ( 人 力 资 源 ) : ygrlzy )
* update uf_rzgljmb set ygzt = '1' , zzrq = ' " + date + " ' where ygrlzy = ' " + userid + " '
*
* < p >
* uf_ddjl : 生 效 日 期 = ddrq ( 调 动 日 期 ) 、 归 档 日 期 = gdrq ( 归 档 日 期 )
* 1 、 生 效 日 期 早 于 当 前 日 期 且 无 归 档 日 期 , 生 成 流 程 到 人 员 , 手 动 调 整 ;
* 2 、 生 效 日 期 等 于 当 前 日 期 , 根 据 记 录 数 据 更 新 数 据
*
* hrmresource 表 : 根 据 人 员 id 更 新 jobtitle ( 岗 位 ) 、 departmentid ( 部 门 ) 、 subcompanyid1 ( 分 部 )
* uf_rzgljmb 表 : ( 岗 位 名 称 : gwmc , 职 级 : xl , 部 门 : bm , 公 司 分 部 : gsfb , 员 工 ( 人 力 资 源 ) : ygrlzy )
* update uf_rzgljmb set gwmc = ' "+xgw+" ' , xl = ' " + zj + " ' , bm = ' "+xbm+" ' , gsfb = ' "+xfb+" ' where ygrlzy = ' " + userid + " '
*
* < p >
* uf_lzblcxbd : 生 效 日 期 = jhlzrq ( uf_lzblcxbd_dt1 计 划 离 职 日 期 ) 、 归 档 日 期 = gdrq ( 归 档 日 期 )
* 1 、 生 效 日 期 早 于 当 前 日 期 且 无 归 档 日 期 , 生 成 流 程 到 人 员 , 手 动 调 整 ;
* 2 、 生 效 日 期 等 于 当 前 日 期 , 根 据 记 录 数 据 更 新 数 据
*
* hrmresource 表 : 根 据 人 员 id 更 新 status = '5'
* uf_rzgljmb 表 : ( 员 工 状 态 : ygzt , 离 职 日 期 : lzrq , 员 工 ( 人 力 资 源 ) : ygrlzy )
* update uf_rzgljmb set ygzt = '3' , lzrq = ' " + date + " ' where ygrlzy = ' " + userid + " '
*
* @author wangj
* @version 1.00 版 本
* @Date 2023 / 7 / 3
* /
public class RelationshipReminderJob extends BaseCronJob {
@Override
public void execute ( ) {
BaseBean bb = new BaseBean ( ) ;
String workflowid = bb . getPropValue ( "relationship" , "workflowid" ) ;
String id = "" ;
String lastname = "" ;
String userid = "" ;
String sxrq = "" ;
String gdrq = "" ;
String date = DateUtil . getCurrentTime ( "yyyy-MM-dd" ) ;
RecordSet rs = new RecordSet ( ) ;
//转正记录( uf_zzjl) uf_zzjl: 生效日期=zzrq( 转正日期) 、归档日期=gdrq( 归档日期)
String sql = "select a.id,b.lastname,a.zzry,a.zzrq,a.gdrq from uf_zzjl a left join hrmresource b on a.zzry = b.id where a.txlcid is null" ;
rs . execute ( sql ) ;
while ( rs . next ( ) ) {
String zt = "" ;
id = Util . null2String ( rs . getString ( "id" ) ) ;
lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
sxrq = Util . null2String ( rs . getString ( "zzrq" ) ) ;
gdrq = Util . null2String ( rs . getString ( "gdrq" ) ) ;
userid = Util . null2String ( rs . getString ( "zzry" ) ) ;
if ( "" . equals ( id ) | | "" . equals ( sxrq ) | | "" . equals ( userid ) ) {
continue ;
}
if ( sxrq . equals ( date ) ) {
//2、生效日期等于当前日期, 根据记录数据更新到hrmresource
zt = updateZZHrmStatus ( userid , "1" , date ) ;
}
boolean flag = compareDate ( sxrq , date ) ;
if ( "" . equals ( gdrq ) & & flag ) {
//生效日期早于当前日期且无归档日期,生成流程到人员,手动调整;
String requestName = "员工关系更新提醒-" + lastname + "-" + date ;
Map < String , String > mainMap = new HashMap < > ( ) ;
mainMap . put ( "ygxm" , userid ) ;
mainMap . put ( "gxlx" , "0" ) ;
mainMap . put ( "sxrq" , sxrq ) ;
// mainMap.put("gdrq",gdrq);
zt = new WorkflowUtil ( ) . WorkflowCreateByMainTableMap ( userid , workflowid , requestName , "0" , mainMap ) ;
if ( Util . getIntValue ( zt ) < 0 ) {
zt = "" ;
}
}
}
String xbm = "" ;
String xgw = "" ;
String zj = "" ;
String xfb = "" ;
//员工调动记录( uf_ddjl) uf_ddjl: 生效日期=ddrq( 调动日期) 、归档日期=gdrq( 归档日期)
sql = " select b.id,b.nzzry,b.xbm,d.subcompanyid1,b.xgw,c.lastname,b.zj,a.ddrq,a.gdrq from uf_ddjl a left join uf_ddjl_dt1 b on a.id = b.mainid left join hrmresource c on c.id = b.nzzry left join hrmdepartment d on d.id = b.xbm where b.txlcid is null" ;
rs . execute ( sql ) ;
while ( rs . next ( ) ) {
String zt = "" ;
id = Util . null2String ( rs . getString ( "id" ) ) ;
lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
sxrq = Util . null2String ( rs . getString ( "ddrq" ) ) ;
gdrq = Util . null2String ( rs . getString ( "gdrq" ) ) ;
userid = Util . null2String ( rs . getString ( "nzzry" ) ) ;
xbm = Util . null2String ( rs . getString ( "xbm" ) ) ;
xgw = Util . null2String ( rs . getString ( "xgw" ) ) ;
zj = Util . null2String ( rs . getString ( "zj" ) ) ;
xfb = Util . null2String ( rs . getString ( "subcompanyid1" ) ) ;
if ( "" . equals ( id ) | | "" . equals ( sxrq ) | | "" . equals ( userid ) ) {
continue ;
}
if ( sxrq . equals ( date ) ) {
//2、生效日期等于当前日期, 根据记录数据更新到hrmresource
//更新hrmresource表( 岗位、部门) 、入职管理建模表uf_rzgljmb( 岗位、职级名称、部门、公司名称-分部)
zt = updateDDHrmStatus ( userid , date , xgw , xbm , xfb , zj ) ;
}
boolean flag = compareDate ( sxrq , date ) ;
if ( "" . equals ( gdrq ) & & flag ) {
//生效日期早于当前日期且无归档日期,生成流程到人员,手动调整;
String requestName = "员工关系更新提醒-" + lastname + "-" + date ;
Map < String , String > mainMap = new HashMap < > ( ) ;
mainMap . put ( "ygxm" , userid ) ;
mainMap . put ( "gxlx" , "1" ) ;
mainMap . put ( "sxrq" , sxrq ) ;
zt = new WorkflowUtil ( ) . WorkflowCreateByMainTableMap ( userid , workflowid , requestName , "0" , mainMap ) ;
if ( Util . getIntValue ( zt ) < 0 ) {
zt = "" ;
}
}
}
//uf_lzblcxbd: 生效日期=jhlzrq( uf_lzblcxbd_dt1 计划离职日期)、归档日期=gdrq( 归档日期)
sql = "select b.id,b.lzry,c.lastname,b.jhlzrq,a.gdrq from uf_lzblcxbd a left join uf_lzblcxbd_dt1 b on a.id = b.mainid left join hrmresource c on c.id = b.lzry where b.txlcid is null" ;
rs . execute ( sql ) ;
while ( rs . next ( ) ) {
String zt = "" ;
id = Util . null2String ( rs . getString ( "id" ) ) ;
lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
sxrq = Util . null2String ( rs . getString ( "jhlzrq" ) ) ;
gdrq = Util . null2String ( rs . getString ( "gdrq" ) ) ;
userid = Util . null2String ( rs . getString ( "lzry" ) ) ;
if ( "" . equals ( id ) | | "" . equals ( sxrq ) | | "" . equals ( userid ) ) {
continue ;
}
if ( sxrq . equals ( date ) ) {
//2、生效日期等于当前日期, 根据记录数据更新到hrmresource
zt = updateLZHrmStatus ( userid , "5" , date ) ;
}
boolean flag = compareDate ( sxrq , date ) ;
if ( "" . equals ( gdrq ) & & flag ) {
//生效日期早于当前日期且无归档日期,生成流程到人员,手动调整;
String requestName = "员工关系更新提醒-" + lastname + "-" + date ;
Map < String , String > mainMap = new HashMap < > ( ) ;
mainMap . put ( "ygxm" , userid ) ;
mainMap . put ( "gxlx" , "2" ) ;
mainMap . put ( "sxrq" , sxrq ) ;
zt = new WorkflowUtil ( ) . WorkflowCreateByMainTableMap ( userid , workflowid , requestName , "0" , mainMap ) ;
if ( Util . getIntValue ( zt ) < 0 ) {
zt = "" ;
}
}
}
}
//转正
private String updateZZHrmStatus ( String userid , String status , String date ) {
RecordSet rs = new RecordSet ( ) ;
String sql = "update hrmresource set status = '" + status + "' where id = '" + userid + "'" ;
rs . execute ( sql ) ;
sql = "update uf_rzgljmb set ygzt = '1' , zzrq = '" + date + "' where ygrlzy = '" + userid + "'" ;
rs . execute ( sql ) ;
return "update" ;
}
//离职
private String updateLZHrmStatus ( String userid , String status , String date ) {
RecordSet rs = new RecordSet ( ) ;
String sql = "update hrmresource set status = '" + status + "' where id = '" + userid + "'" ;
rs . execute ( sql ) ;
sql = "update uf_rzgljmb set ygzt = '3' , lzrq = '" + date + "' where ygrlzy = '" + userid + "'" ;
rs . execute ( sql ) ;
return "update" ;
}
//调动
private String updateDDHrmStatus ( String userid , String date , String xgw , String xbm , String xfb , String zj ) {
RecordSet rs = new RecordSet ( ) ;
String sql = "update hrmresource set jobtitle = '" + xgw + "' ,departmentid = '" + xbm + "' ,subcompanyid1 = '" + xfb + "' where id = '" + userid + "'" ;
rs . execute ( sql ) ;
//岗位、职级名称、部门、公司名称-分部
sql = "update uf_rzgljmb set gwmc = '" + xgw + "' , xl = '" + zj + "' ,bm = '" + xbm + "' ,gsfb = '" + xfb + "' where ygrlzy = '" + userid + "'" ;
rs . execute ( sql ) ;
return "update" ;
}
private boolean compareDate ( String start , String end ) {
boolean flag = false ;
Date sdate = DateUtil . parseDate ( start , "yyyy-MM-dd" ) ;
Date edate = DateUtil . parseDate ( end , "yyyy-MM-dd" ) ;
if ( sdate . getTime ( ) < edate . getTime ( ) ) {
flag = true ;
}
return flag ;
}
}