You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-develop/src/weaver/interfaces/thwl/action/PersonSingleAddAction.java

108 lines
4.3 KiB
Java

package weaver.interfaces.thwl.action;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.thwl.action.sdk.AddRequest;
import weaver.interfaces.thwl.action.sdk.ArtemisUtil;
import weaver.interfaces.thwl.action.sdk.OrgInfoRequest;
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.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2024/08/14
* @version: 1.0
*/
public class PersonSingleAddAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
try {
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
Property[] properties = mainTableInfo.getProperty();
Map<String, String> mainDataMap = new HashMap<>(16);
for (Property property : properties) {
mainDataMap.put(property.getName(), property.getValue());
}
String ryid = Util.null2String(mainDataMap.get("ryid"));
if (StringUtils.isBlank(ryid)) {
requestInfo.getRequestManager().setMessagecontent("未获取到有效的人员ID请确认");
return Action.FAILURE_AND_CONTINUE;
}
RecordSet rs = new RecordSet();
rs.executeQuery("select t.departmentid,t.lastname,t.sex,t.birthday,t.mobile,t.certificatenum,t.workcode from hrmresource t where t.id = ? ", ryid);
String departmentId = "";
String lastName = "";
String sex = "";
String birthday = "";
String mobile = "";
String certificateNum = "";
String workCode = "";
String departmentCode = "";
if (rs.next()) {
departmentId = rs.getString("departmentid");
lastName = rs.getString("lastname");
sex = rs.getString("sex");
birthday = rs.getString("birthday");
mobile = rs.getString("mobile");
certificateNum = rs.getString("certificatenum");
workCode = rs.getString("workcode");
}
rs.executeQuery("select departmentcode from hrmdepartment where id = ? ", departmentId);
if (rs.next()) {
departmentCode = rs.getString("departmentcode");
}
if (StringUtils.isBlank(departmentCode)) {
requestInfo.getRequestManager().setMessagecontent("未获取到当前人员的部门编号,请确认");
return Action.FAILURE_AND_CONTINUE;
}
ArrayList<String> codeList = new ArrayList<>();
codeList.add(departmentCode);
OrgInfoRequest orgInfoRequest = new OrgInfoRequest();
orgInfoRequest.setOrgIndexCodes(codeList);
// 获取组织唯一标识
String orgIndexCode = ArtemisUtil.getOrgIndexCode(orgInfoRequest);
if (StringUtils.isBlank(orgIndexCode)) {
requestInfo.getRequestManager().setMessagecontent("未获取到当前人员部门的组织唯一标识码,请确认");
return Action.FAILURE_AND_CONTINUE;
}
// 添加人员
AddRequest addRequest = new AddRequest();
addRequest.setPersonName(lastName);
String gender = "0";
if("0".equals(sex)){
gender="1";
}else if("1".equals(sex)){
gender="2";
}
addRequest.setGender(gender);
addRequest.setOrgIndexCode(orgIndexCode);
addRequest.setBirthday(birthday);
addRequest.setPhoneNo(mobile);
addRequest.setCertificateType("111");
addRequest.setCertificateNo(certificateNum);
addRequest.setJobNo(workCode);
ArtemisUtil.personSingleAdd(addRequest);
return Action.SUCCESS;
} catch (Exception e) {
requestInfo.getRequestManager().setMessagecontent(e.getMessage());
new BaseBean().writeLog(e);
return Action.FAILURE_AND_CONTINUE;
}
}
}