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