浙文 人员调动计划任务

浙文眼镜
dxfeng 6 months ago
parent 34fb245ed0
commit 3b4e7af398

@ -0,0 +1,258 @@
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.common.DateUtil" %>
<%@ page import="weaver.conn.RecordSetTrans" %>
<%@ page import="org.apache.commons.lang3.StringUtils" %>
<%@ page import="weaver.hrm.job.JobTitlesComInfo" %>
<%@ page import="com.engine.kq.biz.KQGroupMemberComInfo" %>
<%@ page import="weaver.hrm.company.DepartmentComInfo" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="weaver.general.Util" %>
<%
RecordSet rs = new RecordSet();
try {
String id = Util.null2String(request.getParameter("id"));
String currentDate = Util.null2String(request.getParameter("date"));
if (StringUtils.isBlank(id) || StringUtils.isBlank(currentDate)) {
throw new RuntimeException("id or date is null");
}
rs.writeLog("EmployeeTransferJob---start");
//String currentDate = DateUtil.getCurrentDate();
// 查询归档流程,明细表中,调用生效日期为当前日期的数据
rs.executeQuery("select * from uf_ygddxx where ydsxrq = ? and id = ?", currentDate, id);
while (rs.next()) {
RecordSet rst = new RecordSet();
// 调动人
String ddr = rs.getString("xm");
// 调入门店
String ddhbm = rs.getString("ydhbm");
// 调动后岗位
String ddhgw = rs.getString("ydhgw");
// 调动后岗级
String ddhgj = rs.getString("ydhgj");
// 调动生效日期
String ydsxrq = rs.getString("ydsxrq");
// 新直接上级
String xzjsj = rs.getString("drddc");
// 职务交接人
String zwjjr = rs.getString("zwjjr");
// 是否为新店店长
String sfxdzg = rs.getString("sfxdzg");
// 新考勤组
String xkqz = rs.getString("xkqz");
rs.writeLog("ddr==" + ddr + ",ddhbm==" + ddhbm + ",ddhgw==" + ddhgw + ",ddhgj==" + ddhgj + ",ydsxrq==" + ydsxrq + ",xzjsj==" + xzjsj + ",zwjjr==" + zwjjr + ",sfxdzg==" + sfxdzg + ",xkqz==" + xkqz);
// 部门
updateEmployeeDept(rst, ddr, ddhbm);
rs.writeLog("updateEmployeeDept==success");
// 岗位
updateEmployeeJobTitle(rst, ddr, ddhgw);
rs.writeLog("updateEmployeeJobTitle==success");
// 岗位等级
updateEmployeeJobLevel(rst, ddr, ddhgj);
rs.writeLog("updateEmployeeJobLevel==success");
// 直接上级
updateEmployeeManagerId(rst, ddr, xzjsj);
rs.writeLog("updateEmployeeManagerId==success");
// 所有下属的直接上级
updateSubUserManagerId(rst, ddr, zwjjr);
rs.writeLog("updateSubUserManagerId==success");
// 考勤组
updateEmployeeGroup(rst, ddr, ydsxrq, xkqz);
rs.writeLog("updateEmployeeGroup==success");
// 矩阵
updateMatrix(rst, ddr, zwjjr, ddhbm, sfxdzg);
rs.writeLog("updateMatrix==success");
rs.writeLog("EmployeeTransferJob----commit,ddr==" + ddr + ",ydsxrq==" + ydsxrq);
}
rs.writeLog("EmployeeTransferJob---finish");
out.print("success"+DateUtil.getDateTime());
} catch (Exception e) {
rs.writeLog("EmployeeTransferJob---error", e);
out.print(e.getMessage());
}
%>
<%!
/**
* 更新“调动人”的【部门】为:调入门店
*
* @param rst
* @param ddr
* @param ddhbm
*/
private void updateEmployeeDept(RecordSet rst, String ddr, String ddhbm) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddhbm)) {
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
List<String> departmentList = new ArrayList<>();
departmentList.add(null);
departmentList.add(null);
departmentList.add(null);
departmentList.add(null);
dealDepartmentLevel(departmentComInfo, departmentList, ddhbm);
String dept1 = departmentList.get(0);
String dept2 = departmentList.get(1);
String dept3 = departmentList.get(2);
String dept4 = departmentList.get(3);
rst.writeLog("updateEmployeeDept####dept1==" + dept1 + ",dept2==" + dept2 + ",dept3==" + dept3 + ",dept4==" + dept4);
rst.executeUpdate("update hrmresource set departmentid = ? where id = ?", ddhbm, ddr);
rst.executeUpdate("update cus_fielddata set field40 = ? ,field41 = ? , field42 = ? ,field43 = ? where scope = 'HrmCustomFieldByInfoType' and scopeid = -1 and id = ? ", dept1, dept2, dept3, dept4, ddr);
}
}
private void dealDepartmentLevel(DepartmentComInfo departmentComInfo, List<String> departmentList, String departmentId) {
departmentList.add(0, departmentId);
String departmentsupdepid = departmentComInfo.getDepartmentsupdepid(departmentId);
if (StringUtils.isNotBlank(departmentsupdepid) && !"0".equals(departmentsupdepid)) {
dealDepartmentLevel(departmentComInfo, departmentList, departmentsupdepid);
}
}
/**
* 更新“调动人”的【岗位】为:调动后岗位;
*
* @param rst
* @param ddr
* @param ddhgw
*/
private void updateEmployeeJobTitle(RecordSet rst, String ddr, String ddhgw) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddhgw)) {
rst.executeUpdate("update hrmresource set jobtitle = ? where id = ?", ddhgw, ddr);
}
}
/**
* 更新“调动人”的【岗位等级】为:调动后岗级;
*
* @param rst
* @param ddr
* @param ddhgj
*/
private void updateEmployeeJobLevel(RecordSet rst, String ddr, String ddhgj) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddhgj)) {
rst.executeUpdate("update cus_fielddata set field1 = ? where scope ='HrmCustomFieldByInfoType' and scopeid ='-1' and id = ?", ddhgj, ddr);
}
}
/**
* 更新“调动人”的【直接上级】为:新直接上级;
*
* @param rst
* @param ddr
* @param xzjsj
* @throws Exception
*/
private void updateEmployeeManagerId(RecordSet rst, String ddr, String xzjsj) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(xzjsj)) {
rst.executeUpdate("update hrmresource set managerid = ? where id = ?", xzjsj, ddr);
}
}
/**
* 更新“调动人”的所有下属的直接上级为:职务交接人,即:代替“调动人”当领导的
*
* @param rst
* @param ddr
* @param zwjjr
* @throws Exception
*/
private void updateSubUserManagerId(RecordSet rst, String ddr, String zwjjr) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(zwjjr)) {
rst.executeUpdate("update hrmresource set managerid = ? where managerid = ?", zwjjr, ddr);
}
}
/**
* 更新考勤组
*
* @param rst
* @param ddr
* @param ddsxrq
* @param xkqz
* @throws Exception
*/
private void updateEmployeeGroup(RecordSet rst, String ddr, String ddsxrq, String xkqz) throws Exception {
rst.executeQuery("select a.jobtitle ,b.field41 from HrmResource a, cus_fielddata b where a.id=b.id and scopeid=-1 and scope='HrmCustomFieldByInfoType' and a.id = ?", ddr);
rst.writeLog("updateEmployeeGroup---start");
rst.writeLog("xkqz11==" + xkqz);
if (rst.next()) {
String departmentId = rst.getString("field41");
String jobtitle = rst.getString("jobtitle");
String jobactivityid = new JobTitlesComInfo().getJobactivityid(jobtitle);
rst.writeLog("departmentId==" + departmentId);
rst.writeLog("jobtitle==" + jobtitle);
rst.writeLog("jobactivityid==" + jobactivityid);
// 【职务】是督导、经理、总监的
if ("233".equals(jobactivityid) || "236".equals(jobactivityid) || "237".equals(jobactivityid)) {
// 二级部门是:四川一区把“调动人”加入【四川一区】考勤组;
if ("264".equals(departmentId)) {
xkqz = "18";
}
// 二级部门是:四川二区(部门id=258)的,把“调动人”加入【四川二区】考勤组
if ("258".equals(departmentId)) {
xkqz = "19";
}
}
}
rst.writeLog("xkqz222==" + xkqz);
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo();
String kqGroupId = kqGroupMemberComInfo.getKQGroupId(ddr);
rst.writeLog("kqGroupId===" + kqGroupId);
if (!kqGroupId.equals(xkqz)) {
// 更新“调动人”的【考勤组】为:新考勤组;
// 更新“调动人”的新考勤组中的“生效日期”=调动生效日期;
// 更新“调动人”的原考勤组中的“失效日期”=调动生效日期 - 1天
String sql = "insert into kq_groupmember(groupid,typevalue,type,seclevel,seclevelto,validatefrom,validateto) values(?,?,1,0,100,?,'2999-12-31')";
rst.executeUpdate(sql, xkqz, ddr, ddsxrq);
// 如果生效日期小于失效日期,将生效日期也改为失效日期
rst.executeQuery("select * from kq_groupmember where type = 1 and ISNULL(isDelete,0) != 1 and typevalue = ? and groupid = ?", ddr, kqGroupId);
if(rst.next()){
String validatefrom = rst.getString("validatefrom");
}
sql = "update kq_groupmember set validateto = ? where type = 1 and ISNULL(isDelete,0) != 1 and typevalue = ? and groupid = ?";
String yesterday = DateUtil.addDate(ddsxrq, -1);
rst.writeLog("yesterday===" + yesterday);
rst.executeUpdate(sql, yesterday, ddr, kqGroupId);
}
rst.writeLog("updateEmployeeGroup---finish");
}
/**
* >>如果“调动人”是“调出部门”的部门矩阵中的“店长/直接主管”,则更新“调出门店”的部门矩阵中的“店长/直接主管”为:职务交接人;即,更新部门矩阵中我是店长的数据为:职务交接人,别人顶替我;
* >>如果“调动人”的“是否为新店店长==是”,则更新“调入门店”的部门矩阵中的“店长/直接主管”为:调动人;即,更新我为新门店的店长;
*
* @param rst
* @param ddr
* @param zwjjr
* @param ddhbm
* @param sfxdzg
* @throws Exception
*/
private void updateMatrix(RecordSet rst, String ddr, String zwjjr, String ddhbm, String sfxdzg) throws Exception {
// 更新“调出门店”的部门矩阵中的“店长/直接主管”为:职务交接人
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(zwjjr)) {
rst.executeUpdate("update HrmDepartmentDefined set bmfzr = ? where CAST(bmfzr AS varchar) =?", zwjjr, ddr);
rst.executeUpdate("update Matrixtable_2 set bmfzr = ? where bmfzr =?", zwjjr, ddr);
rst.executeUpdate("update uf_mdglb set dc = ? where CAST(dc AS varchar) = ?", zwjjr, ddr);
rst.writeLog("updateMatrix----11111----finish");
}
if (StringUtils.isNotBlank(ddr) && "0".equals(sfxdzg)) {
// 更新“调入门店”的部门矩阵中的“店长/直接主管”为:调动人
rst.executeUpdate("update HrmDepartmentDefined set bmfzr = ? where deptid =?", ddr, ddhbm);
rst.executeUpdate("update Matrixtable_2 set bmfzr = ? where id =?", ddr, ddhbm);
rst.executeUpdate("update uf_mdglb set dc = ? where md = ?", ddr, ddhbm);
rst.writeLog("updateMatrix----22222----finish");
}
}
%>

@ -0,0 +1,259 @@
package weaver.interfaces.zhewen.cronjob;
import com.engine.kq.biz.KQGroupMemberComInfo;
import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.hrm.company.DepartmentComInfo;
import weaver.hrm.job.JobTitlesComInfo;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.ArrayList;
import java.util.List;
/**
* @author:dxfeng
* @createTime: 2024/10/30
* @version: 1.0
*/
public class EmployeeTransferJob extends BaseCronJob {
@Override
public void execute() {
RecordSet rs = new RecordSet();
try {
rs.writeLog("EmployeeTransferJob---start");
String currentDate = DateUtil.getCurrentDate();
// 查询归档流程,明细表中,调用生效日期为当前日期的数据
rs.executeQuery("select * from uf_ygddxx where ydsxrq = ? ", currentDate);
while (rs.next()) {
RecordSet rst = new RecordSet();
// 调动人
String ddr = rs.getString("xm");
// 调入门店
String ddhbm = rs.getString("ydhbm");
// 调动后岗位
String ddhgw = rs.getString("ydhgw");
// 调动后岗级
String ddhgj = rs.getString("ydhgj");
// 调动生效日期
String ydsxrq = rs.getString("ydsxrq");
// 新直接上级
String xzjsj = rs.getString("drddc");
// 职务交接人
String zwjjr = rs.getString("zwjjr");
// 是否为新店店长
String sfxdzg = rs.getString("sfxdzg");
// 新考勤组
String xkqz = rs.getString("xkqz");
rs.writeLog("ddr==" + ddr + ",ddhbm==" + ddhbm + ",ddhgw==" + ddhgw + ",ddhgj==" + ddhgj + ",ydsxrq==" + ydsxrq + ",xzjsj==" + xzjsj + ",zwjjr==" + zwjjr + ",sfxdzg==" + sfxdzg + ",xkqz==" + xkqz);
// 部门
updateEmployeeDept(rst, ddr, ddhbm);
rs.writeLog("updateEmployeeDept==success");
// 岗位
updateEmployeeJobTitle(rst, ddr, ddhgw);
rs.writeLog("updateEmployeeJobTitle==success");
// 岗位等级
updateEmployeeJobLevel(rst, ddr, ddhgj);
rs.writeLog("updateEmployeeJobLevel==success");
// 直接上级
updateEmployeeManagerId(rst, ddr, xzjsj);
rs.writeLog("updateEmployeeManagerId==success");
// 所有下属的直接上级
updateSubUserManagerId(rst, ddr, zwjjr);
rs.writeLog("updateSubUserManagerId==success");
// 考勤组
updateEmployeeGroup(rst, ddr, ydsxrq, xkqz);
rs.writeLog("updateEmployeeGroup==success");
// 矩阵
updateMatrix(rst, ddr, zwjjr, ddhbm, sfxdzg);
rs.writeLog("updateMatrix==success");
rs.writeLog("EmployeeTransferJob----commit,ddr==" + ddr + ",ydsxrq==" + ydsxrq);
}
rs.writeLog("EmployeeTransferJob---finish");
} catch (Exception e) {
rs.writeLog("EmployeeTransferJob执行异常", e);
}
}
/**
*
*
* @param rst
* @param ddr
* @param ddhbm
*/
private void updateEmployeeDept(RecordSet rst, String ddr, String ddhbm) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddhbm)) {
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
List<String> departmentList = new ArrayList<>();
departmentList.add(null);
departmentList.add(null);
departmentList.add(null);
departmentList.add(null);
dealDepartmentLevel(departmentComInfo, departmentList, ddhbm);
String dept1 = departmentList.get(0);
String dept2 = departmentList.get(1);
String dept3 = departmentList.get(2);
String dept4 = departmentList.get(3);
rst.writeLog("updateEmployeeDept####dept1==" + dept1 + ",dept2==" + dept2 + ",dept3==" + dept3 + ",dept4==" + dept4);
rst.executeUpdate("update hrmresource set departmentid = ? where id = ?", ddhbm, ddr);
rst.executeUpdate("update cus_fielddata set field40 = ? ,field41 = ? , field42 = ? ,field43 = ? where scope = 'HrmCustomFieldByInfoType' and scopeid = -1 and id = ? ", dept1, dept2, dept3, dept4, ddr);
}
}
private void dealDepartmentLevel(DepartmentComInfo departmentComInfo, List<String> departmentList, String departmentId) {
departmentList.add(0, departmentId);
String departmentsupdepid = departmentComInfo.getDepartmentsupdepid(departmentId);
if (StringUtils.isNotBlank(departmentsupdepid) && !"0".equals(departmentsupdepid)) {
dealDepartmentLevel(departmentComInfo, departmentList, departmentsupdepid);
}
}
/**
*
*
* @param rst
* @param ddr
* @param ddhgw
*/
private void updateEmployeeJobTitle(RecordSet rst, String ddr, String ddhgw) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddhgw)) {
rst.executeUpdate("update hrmresource set jobtitle = ? where id = ?", ddhgw, ddr);
}
}
/**
*
*
* @param rst
* @param ddr
* @param ddhgj
*/
private void updateEmployeeJobLevel(RecordSet rst, String ddr, String ddhgj) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddhgj)) {
rst.executeUpdate("update cus_fielddata set field1 = ? where scope ='HrmCustomFieldByInfoType' and scopeid ='-1' and id = ?", ddhgj, ddr);
}
}
/**
*
*
* @param rst
* @param ddr
* @param xzjsj
* @throws Exception
*/
private void updateEmployeeManagerId(RecordSet rst, String ddr, String xzjsj) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(xzjsj)) {
rst.executeUpdate("update hrmresource set managerid = ? where id = ?", xzjsj, ddr);
}
}
/**
*
*
* @param rst
* @param ddr
* @param zwjjr
* @throws Exception
*/
private void updateSubUserManagerId(RecordSet rst, String ddr, String zwjjr) throws Exception {
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(zwjjr)) {
rst.executeUpdate("update hrmresource set managerid = ? where managerid = ?", zwjjr, ddr);
}
}
/**
*
*
* @param rst
* @param ddr
* @param ddsxrq
* @param xkqz
* @throws Exception
*/
private void updateEmployeeGroup(RecordSet rst, String ddr, String ddsxrq, String xkqz) throws Exception {
rst.executeQuery("select a.jobtitle ,b.field41 from HrmResource a, cus_fielddata b where a.id=b.id and scopeid=-1 and scope='HrmCustomFieldByInfoType' and a.id = ?", ddr);
rst.writeLog("updateEmployeeGroup---start");
rst.writeLog("xkqz11==" + xkqz);
if (rst.next()) {
String departmentId = rst.getString("field41");
String jobtitle = rst.getString("jobtitle");
String jobactivityid = new JobTitlesComInfo().getJobactivityid(jobtitle);
rst.writeLog("departmentId==" + departmentId);
rst.writeLog("jobtitle==" + jobtitle);
rst.writeLog("jobactivityid==" + jobactivityid);
// 【职务】是督导、经理、总监的
if ("233".equals(jobactivityid) || "236".equals(jobactivityid) || "237".equals(jobactivityid)) {
// 二级部门是:四川一区把“调动人”加入【四川一区】考勤组;
if ("264".equals(departmentId)) {
xkqz = "18";
}
// 二级部门是:四川二区(部门id=258)的,把“调动人”加入【四川二区】考勤组
if ("258".equals(departmentId)) {
xkqz = "19";
}
}
}
rst.writeLog("xkqz222==" + xkqz);
KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo();
String kqGroupId = kqGroupMemberComInfo.getKQGroupId(ddr);
rst.writeLog("kqGroupId===" + kqGroupId);
if (!kqGroupId.equals(xkqz)) {
// 更新“调动人”的【考勤组】为:新考勤组;
// 更新“调动人”的新考勤组中的“生效日期”=调动生效日期;
// 更新“调动人”的原考勤组中的“失效日期”=调动生效日期 - 1天
String sql = "insert into kq_groupmember(groupid,typevalue,type,seclevel,seclevelto,validatefrom,validateto) values(?,?,1,0,100,?,'2999-12-31')";
rst.executeUpdate(sql, xkqz, ddr, ddsxrq);
// 如果生效日期小于失效日期,将生效日期也改为失效日期
rst.executeQuery("select * from kq_groupmember where type = 1 and ISNULL(isDelete,0) != 1 and typevalue = ? and groupid = ?", ddr, kqGroupId);
if(rst.next()){
String validatefrom = rst.getString("validatefrom");
}
sql = "update kq_groupmember set validateto = ? where type = 1 and ISNULL(isDelete,0) != 1 and typevalue = ? and groupid = ?";
String yesterday = DateUtil.addDate(ddsxrq, -1);
rst.writeLog("yesterday===" + yesterday);
rst.executeUpdate(sql, yesterday, ddr, kqGroupId);
}
rst.writeLog("updateEmployeeGroup---finish");
}
/**
* >>//
* >>==/
*
* @param rst
* @param ddr
* @param zwjjr
* @param ddhbm
* @param sfxdzg
* @throws Exception
*/
private void updateMatrix(RecordSet rst, String ddr, String zwjjr, String ddhbm, String sfxdzg) throws Exception {
// 更新“调出门店”的部门矩阵中的“店长/直接主管”为:职务交接人
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(zwjjr)) {
rst.executeUpdate("update HrmDepartmentDefined set bmfzr = ? where CAST(bmfzr AS varchar) =?", zwjjr, ddr);
rst.executeUpdate("update Matrixtable_2 set bmfzr = ? where bmfzr =?", zwjjr, ddr);
rst.executeUpdate("update uf_mdglb set dc = ? where CAST(dc AS varchar) = ?", zwjjr, ddr);
rst.writeLog("updateMatrix----11111----finish");
}
if (StringUtils.isNotBlank(ddr) && "0".equals(sfxdzg)) {
// 更新“调入门店”的部门矩阵中的“店长/直接主管”为:调动人
rst.executeUpdate("update HrmDepartmentDefined set bmfzr = ? where deptid =?", ddr, ddhbm);
rst.executeUpdate("update Matrixtable_2 set bmfzr = ? where id =?", ddr, ddhbm);
rst.executeUpdate("update uf_mdglb set dc = ? where md = ?", ddr, ddhbm);
rst.writeLog("updateMatrix----22222----finish");
}
}
}
Loading…
Cancel
Save