Compare commits

...

13 Commits

@ -0,0 +1,277 @@
<%@ 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" %>
<%@ page import="weaver.hrm.resource.ResourceComInfo" %>
<%
RecordSet rs = new RecordSet();
try {
String id = Util.null2String(request.getParameter("id"));
String currentDate = Util.null2String(request.getParameter("date"));
if (StringUtils.isBlank(currentDate)) {
throw new RuntimeException("date is null");
}
rs.writeLog("EmployeeTransferJob---start");
// 查询归档流程,明细表中,调用生效日期为当前日期的数据
if(StringUtils.isNotBlank(id)){
rs.executeQuery("select * from uf_ygddxx where ydsxrq = ? and id = ?", currentDate, id);
}else{
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");
// 调动人新下级
String ddrxxj = rs.getString("ddrxxj");
// 调动人下级
String ddrxj = rs.getString("ddrxj");
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, ddrxj, ddrxxj);
rs.writeLog("updateSubUserManagerId==success");
// 考勤组
updateEmployeeGroup(rst, ddr, ydsxrq, xkqz);
rs.writeLog("updateEmployeeGroup==success");
// 矩阵
updateMatrix(rst, ddr, zwjjr, ddhbm, sfxdzg);
rs.writeLog("updateMatrix==success");
new ResourceComInfo().removeResourceCache();
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
* @param ddrxj
* @param ddrxxj
* @throws Exception
*/
private void updateSubUserManagerId(RecordSet rst, String ddr, String zwjjr, String ddrxj, String ddrxxj) throws Exception {
// 更新调动人下级
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddrxxj)) {
String[] split = ddrxxj.split(",");
for (String s : split) {
rst.executeUpdate("update hrmresource set managerid = ? where id = ?", ddr, s);
}
}
// 更新职务交接人下级
if (StringUtils.isNotBlank(zwjjr) && StringUtils.isNotBlank(ddrxj)) {
String[] split = ddrxj.split(",");
for (String s : split) {
rst.executeUpdate("update hrmresource set managerid = ? where id = ?", zwjjr, s);
}
}
}
/**
* 更新考勤组
*
* @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);
if (StringUtils.isNotBlank(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);
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");
}
}
%>

@ -1,13 +0,0 @@
package com.api.jygf.web;
import javax.ws.rs.Path;
/**
* @Author weaver_cl
* @Description:
* @Date 2022/10/9
* @Version V1.0
**/
@Path("/mobile/permission")
public class MobilePermissionsAction extends com.engine.jygf.web.MobilePermissionsAction {
}

@ -1,68 +0,0 @@
package com.engine.jygf.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.hrm.User;
import weaver.wechat.util.Utils;
import java.util.*;
/**
* @Author weaver_cl
* @Description:
* @Date 2022/10/9
* @Version V1.0
**/
public class MobilePermissionsCmd extends AbstractCommonCommand<Map<String, Object>> {
private static final String FIELDID = "field100026"; //移动电话自定义字段
private static final String SCOPE = "HrmCustomFieldByInfoType";
private static final String SCOPEID = "-1";
public MobilePermissionsCmd(Map<String, Object> params, User user) {
this.user = user;
this.params = params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> data = new HashMap<>();
String uid = Utils.null2String(user.getUID());
RecordSet rs = new RecordSet();
HashSet<String> ids = new HashSet<>();
ids.add(uid);
rs.executeQuery("select ckr,bckr from uf_yddhqx_dt1");
while (rs.next()) {
String ckr = Utils.null2String(rs.getString("ckr"));
String bckr = Utils.null2String(rs.getString("bckr"));
if (Arrays.asList(ckr.split(",")).contains(uid)) {
ids.addAll(Arrays.asList(bckr.split(",")));
}
}
Map<String,String> mobileInfo = new HashMap<>();
String value = StringUtils.join(ids,",");
rs.executeQuery("select id,"+FIELDID+" from cus_fielddata where scope = ? and scopeid = ?" +
" and id in ("+value+")",SCOPE,SCOPEID);
while (rs.next()){
mobileInfo.put(Utils.null2String(rs.getString("id")),rs.getString(FIELDID));
}
data.put("ids",ids);
data.put("mobileInfo",mobileInfo);
return data;
}
}

@ -1,16 +0,0 @@
package com.engine.jygf.service;
import weaver.hrm.User;
import java.util.Map;
/**
* @Author weaver_cl
* @Description:
* @Date 2022/10/9
* @Version V1.0
**/
public interface MobilePermissionsService {
Map<String, Object> getPermissionInfo(Map<String, Object> params, User user);
}

@ -1,24 +0,0 @@
package com.engine.jygf.service.impl;
import com.engine.core.impl.Service;
import com.engine.jygf.cmd.MobilePermissionsCmd;
import com.engine.jygf.service.MobilePermissionsService;
import weaver.hrm.User;
import java.util.Map;
/**
* @Author weaver_cl
* @Description:
* @Date 2022/10/9
* @Version V1.0
**/
public class MobilePermissionsServiceImpl extends Service implements MobilePermissionsService {
@Override
public Map<String, Object> getPermissionInfo(Map<String, Object> params, User user) {
return commandExecutor.execute(new MobilePermissionsCmd(params,user));
}
}

@ -1,57 +0,0 @@
package com.engine.jygf.web;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.jygf.service.MobilePermissionsService;
import com.engine.jygf.service.impl.MobilePermissionsServiceImpl;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Map;
/**
* @Author weaver_cl
* @Description:
* @Date 2022/10/9
* @Version V1.0
**/
public class MobilePermissionsAction {
public MobilePermissionsService getMobilePermissionsService(User user) {
return ServiceUtil.getService(MobilePermissionsServiceImpl.class,user);
}
/**
*
* @param request
* @param response
* @return
*/
@GET
@Path("/controller")
@Produces(MediaType.APPLICATION_JSON)
public String getPermissionInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String, Object> apidatas = new HashMap<>();
try {
User user = HrmUserVarify.getUser(request, response);
//实例化Service 并调用业务类处理
apidatas = getMobilePermissionsService(user).getPermissionInfo(ParamUtil.request2Map(request), user);
} catch (Exception e) {
//异常处理
apidatas.put("api_status", false);
}
return JSONObject.toJSONString(apidatas);
}
}

@ -0,0 +1,22 @@
package com.engine.zhewen.exception;
/**
* @Author weaver_cl
* @Description:
* @Date 2023/2/21
* @Version V1.0
**/
public class CustomizeRunTimeException extends RuntimeException{
public CustomizeRunTimeException(String message) {
super(message);
}
public CustomizeRunTimeException(Throwable cause) {
super(cause);
}
public CustomizeRunTimeException(String message, Throwable cause) {
super(message, cause);
}
}

@ -0,0 +1,20 @@
package com.engine.zhewen.util;
/**
* @Author weaver_cl
* @Description:
* @Date 2023/2/21
* @Version V1.0
**/
public class ExceptionUtil {
public static String getRealMessage(Throwable e) {
while (e != null) {
Throwable cause = e.getCause();
if (cause == null) {
return e.getMessage();
}
e = cause;
}
return "";
}
}

@ -0,0 +1,192 @@
package com.engine.zhewen.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.engine.core.exception.ECException;
import com.engine.zhewen.exception.CustomizeRunTimeException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import weaver.general.BaseBean;
import weaver.hrm.User;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
/**
*
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: </p>
*
* @author qiantao
* @version 1.0
**/
@Slf4j
public class ResponseResult<T, R> {
private static final long serialVersionUID = 1L;
private final User user;
private final BaseBean baseBean = new BaseBean();
private final Boolean isLog = "true".equals(baseBean.getPropValue("hrmSalary", "log"));
public ResponseResult(User user) {
this.user = user;
}
/**
* ()
*/
public String customRun(Function<T, R> f, T t) {
try {
if (isLog) {
log.info("run api , param {}", t);
}
return getJsonString(f.apply(t));
} catch (com.engine.zhewen.exception.CustomizeRunTimeException e) {
log.error("api run fail", e);
return Error(e.getMessage());
} catch (ECException e) {
log.error("api run fail", e);
Throwable cause = e.getCause();
return Error(cause.getMessage());
} catch (Exception e) {
log.error("api run fail", e);
return Error("系统异常!");
}
}
/**
*
*/
public String run(Function<T, R> f, T t) {
try {
if (isLog) {
log.info("run api , param {}", t);
}
return Ok(f.apply(t));
} catch (com.engine.zhewen.exception.CustomizeRunTimeException e) {
log.error("api run fail", e);
return Error(e.getMessage());
} catch (ECException e) {
log.error("api run fail", e);
Throwable cause = e.getCause();
return Error(cause.getMessage());
} catch (Exception e) {
log.error("api run fail", e);
return Error("系统异常!");
}
}
/**
*
*/
public String run(Consumer<T> f, T t) {
try {
if (isLog) {
log.info("run api , param {}", t);
}
f.accept(t);
return Ok();
} catch (com.engine.zhewen.exception.CustomizeRunTimeException e) {
log.error("api run fail", e);
return Error(e.getMessage());
} catch (ECException e) {
log.error("api run fail", e);
return Error(ExceptionUtil.getRealMessage(e));
} catch (Exception e) {
log.error("api run fail", e);
return Error("系统异常!", e);
}
}
/**
*
*/
public String run(Supplier<R> f) {
try {
if (isLog) {
log.info("run api");
}
return Ok(f.get());
} catch (CustomizeRunTimeException e) {
log.error("api run fail", e);
return Error(e.getMessage());
} catch (ECException e) {
log.error("api run fail", e);
Throwable cause = e.getCause();
return Error(cause.getMessage());
} catch (Exception e) {
log.error("api run fail", e);
return Error("系统异常!", e);
}
}
private static String getJsonString(Object apidatas) {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.writeValueAsString(apidatas);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return "";
}
/**
*
*/
private String Ok() {
Map<String, Object> apidatas = new HashMap<>();
apidatas.put("api_status", true);
return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect);
}
/**
*
*/
private String Ok(R r) {
Map<String, Object> apidatas = new HashMap<>();
apidatas.put("api_status", true);
apidatas.put("data", r);
String success = JSON.toJSONString(apidatas);
if (isLog) {
log.info("run salary api success return {}", success);
}
return success;
}
/**
*
*/
private static String Error(String message) {
Map<String, Object> apidatas = new HashMap<>();
apidatas.put("api_status", false);
apidatas.put("errormsg", message);
return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect);
}
/**
*
*/
private static String Error(String message, Exception e) {
Map<String, Object> apidatas = new HashMap<>();
apidatas.put("api_status", false);
apidatas.put("errormsg", message);
apidatas.put("error", e.getMessage());
return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect);
}
}

@ -1,135 +0,0 @@
package weaver.interfaces.gsjrkg.action;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import java.util.*;
/**
* @Description:
* @author:dxfeng
* @createTime: 2023/02/20
* @version: 1.0
*/
public class SyncCertificateAction implements Action {
/**
*
*/
private String modeTableName;
/**
*
*/
private String params;
private String resourceFieldGroup;
@Override
public String execute(RequestInfo requestInfo) {
if (StringUtils.isBlank(params)) {
requestInfo.getRequestManager().setMessagecontent("自定义接口参数值配置错误");
return Action.FAILURE_AND_CONTINUE;
}
if (StringUtils.isBlank(resourceFieldGroup)) {
// -1:基本信息,1:个人信息,3:工作信息
resourceFieldGroup = "1";
}
Map<String, String> fieldMap = new HashMap<>();
String[] fieldsArray = params.split(";");
for (String fields : fieldsArray) {
String[] field = fields.split(":");
if (field.length == 2) {
fieldMap.put(field[0], field[1]);
}
}
if (fieldMap.size() != fieldsArray.length) {
requestInfo.getRequestManager().setMessagecontent("自定义接口参数值格式错误,请检查");
return Action.FAILURE_AND_CONTINUE;
}
Set<String> modeFields = fieldMap.keySet();
Map<String, Set<String>> modeMap = new HashMap<>();
RecordSet rs = new RecordSet();
String resourceId = "";
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
Property[] property = mainTableInfo.getProperty();
for (Property item : property) {
String name = item.getName();
String value = Util.null2String(item.getValue());
if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) {
if ("xm".equals(name)) {
resourceId = value;
}
}
}
// 查询当前人员的所有数据
StringBuilder sqlBuilder = new StringBuilder("select ").append(StringUtils.join(modeFields, ",")).append(" from ").append(modeTableName).append(" where xm = ").append(resourceId).append(" order by id");
rs.executeQuery(sqlBuilder.toString());
while (rs.next()) {
appendIds(modeFields, rs, modeMap);
}
// 判断有无数据,没有的话插入数据
sqlBuilder = new StringBuilder("SELECT id FROM CUS_FIELDDATA where scope ='HrmCustomFieldByInfoType' and scopeid = '").append(resourceFieldGroup).append("' and id =? ");
rs.executeQuery(sqlBuilder.toString(), resourceId);
if (!rs.next()) {
// 插入人员信息数据
rs.executeUpdate("insert into cus_fielddata (scope,scopeid,id) values ('HrmCustomFieldByInfoType','" + resourceFieldGroup + "',?)", resourceId);
}
// 组装更新SQL语句
sqlBuilder = new StringBuilder("update cus_fielddata set ");
for (Map.Entry<String, String> entry : fieldMap.entrySet()) {
Set<String> valueSet = modeMap.get(entry.getKey());
String values = CollectionUtils.isEmpty(valueSet) ? "" : StringUtils.join(valueSet, ",");
sqlBuilder.append(" ").append(entry.getValue()).append(" = '").append(values).append("',");
}
sqlBuilder.deleteCharAt(sqlBuilder.length() - 1);
sqlBuilder.append(" where scope ='HrmCustomFieldByInfoType' and scopeid = ").append(resourceFieldGroup).append(" and id = ").append(resourceId);
rs.executeUpdate(sqlBuilder.toString());
return Action.SUCCESS;
}
private void appendIds(Set<String> modeFields, RecordSet rs, Map<String, Set<String>> modeMap) {
for (String modeField : modeFields) {
String ids = rs.getString(modeField);
if (StringUtils.isBlank(ids)) {
return;
}
if (CollectionUtils.isEmpty(modeMap.get(modeField))) {
modeMap.put(modeField, new HashSet<>());
}
modeMap.get(modeField).addAll(Arrays.asList(ids.split(",")));
}
}
public String getParams() {
return params;
}
public void setParams(String params) {
this.params = params;
}
public String getModeTableName() {
return modeTableName;
}
public void setModeTableName(String modeTableName) {
this.modeTableName = modeTableName;
}
public String getResourceFieldGroup() {
return resourceFieldGroup;
}
public void setResourceFieldGroup(String resourceFieldGroup) {
this.resourceFieldGroup = resourceFieldGroup;
}
}

@ -0,0 +1,44 @@
package weaver.interfaces.zhewen.cronjob;
import org.apache.commons.collections.CollectionUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.ArrayList;
import java.util.List;
/**
* @author:dxfeng
* @createTime: 2025/03/04
* @version: 1.0
*/
public class EmployeeRegularizationJob extends BaseCronJob {
@Override
public void execute() {
RecordSet rs = new RecordSet();
try {
rs.writeLog("EmployeeRegularizationJob---start");
String currentDate = DateUtil.getCurrentDate();
List<String> userList = new ArrayList<>();
rs.executeQuery("select xm from uf_ygzzxx where zzrq = ? ", currentDate);
while (rs.next()) {
userList.add(rs.getString("xm"));
}
if (CollectionUtils.isNotEmpty(userList)) {
for (String user : userList) {
rs.writeLog(user + "==已转正");
rs.executeUpdate("update hrmresource set status = 1 where id = ? ", user);
}
} else {
rs.writeLog(currentDate + "---未查询到数据");
}
rs.writeLog("EmployeeRegularizationJob---finish");
} catch (Exception e) {
rs.writeLog("EmployeeRegularizationJob", e);
}
}
}

@ -0,0 +1,277 @@
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.hrm.resource.ResourceComInfo;
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");
// 调动人新下级
String ddrxxj = rs.getString("ddrxxj");
// 调动人下级
String ddrxj = rs.getString("ddrxj");
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, ddrxj, ddrxxj);
rs.writeLog("updateSubUserManagerId==success");
// 考勤组
updateEmployeeGroup(rst, ddr, ydsxrq, xkqz);
rs.writeLog("updateEmployeeGroup==success");
// 矩阵
updateMatrix(rst, ddr, zwjjr, ddhbm, sfxdzg);
rs.writeLog("updateMatrix==success");
new ResourceComInfo().removeResourceCache();
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
* @param ddrxj
* @param ddrxxj
* @throws Exception
*/
private void updateSubUserManagerId(RecordSet rst, String ddr, String zwjjr, String ddrxj, String ddrxxj) throws Exception {
// 更新调动人下级
if (StringUtils.isNotBlank(ddr) && StringUtils.isNotBlank(ddrxxj)) {
String[] split = ddrxxj.split(",");
for (String s : split) {
rst.executeUpdate("update hrmresource set managerid = ? where id = ?", ddr, s);
}
}
// 更新职务交接人下级
if (StringUtils.isNotBlank(zwjjr) && StringUtils.isNotBlank(ddrxj)) {
String[] split = ddrxj.split(",");
for (String s : split) {
rst.executeUpdate("update hrmresource set managerid = ? where id = ?", zwjjr, s);
}
}
}
/**
*
*
* @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);
if (StringUtils.isNotBlank(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);
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