package weaver.interfaces.shuzhi.cronjob ;
import com.time.util.DateUtil ;
import tebie.applib.api.S ;
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 、 生 效 日 期 小 于 等 于 当 前 日 期 , 当 前 日 期 = 归 档 日 期 + 1 天 , 更 新 人 力 资 源 表 单 ( hrmresource ) 、 入 职 管 理 建 模 表 ( uf_rzgljmb )
2 、 生 效 日 期 大 于 当 前 日 期 , 当 前 日 期 = 生 效 日 期 , 更 新 人 力 资 源 表 单 ( hrmresource ) 、 入 职 管 理 建 模 表 ( uf_rzgljmb )
*
* 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 、 生 效 日 期 小 于 等 于 当 前 日 期 , 当 前 日 期 = 归 档 日 期 + 1 天 , 根 据 记 录 数 据 更 新 数 据
*
* 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 、 生 效 日 期 小 于 等 于 当 前 日 期 , 当 前 日 期 = 归 档 日 期 + 1 天 , 根 据 记 录 数 据 更 新 数 据
*
* 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" ) ;
String datebefore = DateUtil . formatDate ( DateUtil . getDateAfterDays ( new Date ( ) , - 1 ) , "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 ) | | "" . equals ( gdrq ) ) {
continue ;
}
if ( compareDateLessEquation ( sxrq , date ) & & compareDateEquation ( datebefore , gdrq ) ) {
//1、生效日期小于等于当前日期, 当前日期 - 1 = 归档日期, 更新人力资源表单( hrmresource) 、入职管理建模表( uf_rzgljmb)
zt = updateZZHrmStatus ( userid , "1" , sxrq ) ;
}
if ( ! compareDateLessEquation ( sxrq , date ) & & compareDateEquation ( date , sxrq ) ) {
//2、生效日期大于当前日期, 当前日期=生效日期, 更新人力资源表单( hrmresource) 、入职管理建模表( uf_rzgljmb)
zt = updateZZHrmStatus ( userid , "1" , date ) ;
}
if ( ! "" . equals ( zt ) ) {
updateRecordData ( id , zt , "uf_zzjl" ) ;
}
}
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 ) | | "" . equals ( gdrq ) ) {
continue ;
}
if ( compareDateLessEquation ( sxrq , date ) & & compareDateEquation ( datebefore , gdrq ) ) {
//2、生效日期小于等于当前日期, 当前日期-1 =归档日期,根据记录数据更新数据
//更新hrmresource表( 岗位、部门) 、入职管理建模表uf_rzgljmb( 岗位、职级名称、部门、公司名称-分部)
zt = updateDDHrmStatus ( userid , sxrq , xgw , xbm , xfb , zj ) ;
}
if ( ! compareDateLessEquation ( sxrq , date ) & & compareDateEquation ( date , gdrq ) ) {
//1、生效日期大于当前日期, 当前日期=生效日期,根据记录数据更新数据
zt = updateDDHrmStatus ( userid , date , xgw , xbm , xfb , zj ) ;
}
if ( ! "" . equals ( zt ) ) {
updateRecordData ( id , zt , "uf_ddjl_dt1" ) ;
}
}
//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 ) | | "" . equals ( gdrq ) ) {
continue ;
}
if ( compareDateLessEquation ( sxrq , date ) & & compareDateEquation ( datebefore , gdrq ) ) {
//2、生效日期小于等于当前日期, 当前日期=归档日期+1天, 根据记录数据更新数据
zt = updateLZHrmStatus ( userid , "5" , sxrq ) ;
}
if ( ! compareDateLessEquation ( sxrq , date ) & & compareDateEquation ( date , gdrq ) ) {
//1、生效日期大于当前日期, 当前日期=生效日期,根据记录数据更新数据
zt = updateLZHrmStatus ( userid , "5" , date ) ;
}
if ( ! "" . equals ( zt ) ) {
updateRecordData ( id , zt , "uf_lzblcxbd_dt1" ) ;
}
}
}
//转正
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 + "' ,gzdw = '" + xfb + "' where ygrlzy = '" + userid + "'" ;
rs . execute ( sql ) ;
return "update" ;
}
/ * *
* @Description : 比 较 日 期 相 等
* @Param :
* @return :
* @Author : wangj
* /
private boolean compareDateEquation ( 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 ;
}
/ * *
* @Description : 比 较 日 期 小 于 等 于
* @Param :
* @return :
* @Author : wangj
* /
private boolean compareDateLessEquation ( 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 ;
}
// /**
// * @Description: 比较日期加一天相等
// * @Param:
// * @return:
// * @Author: wangj
// */
// private boolean compareDateOneDayEquation(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;
// }
private void updateRecordData ( String id , String zt , String tablename ) {
RecordSet rs = new RecordSet ( ) ;
rs . execute ( "update " + tablename + " set txlcid = '" + zt + "' where id = '" + id + "'" ) ;
}
}