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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}
}