package com.kingdee.eas.custom.szpgm.osf.service;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.bsf.service.app.IHRMsfService;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.util.app.DbUtil;
import com.kingdee.jdbc.rowset.IRowSet;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 员工信息查询OSF服务
*
* 实现 {@link IHRMsfService} 接口,提供员工综合信息的分页查询功能。
* 支持按员工名称(左模糊)、员工编号(精确)、最后修改时间进行过滤筛选。
*
*
* 关联数据表
*
* - t_bd_person(pe)—— 员工基础信息表,主表
* - T_HR_BDEmployeeType(ty)—— 用工关系类型表
* - T_HR_PERSONCONTACTMETHOD(pm)—— 员工联系方式表
* - t_hr_personposition(ppos)—— 员工岗位关联表
* - t_org_position(pos)—— 组织岗位表
* - T_HR_EMPPOSTEXPERIENCEHIS(phis)—— 岗位任职历史表,取当前上级
* - t_pm_user(puser)—— 用户账号表
*
*
* 入参说明
*
* - modifyDate(String,可选)—— 最后修改日期(格式yyyy-MM-dd),筛选该日期之后修改的记录
* - name(String,可选)—— 员工名称,左模糊匹配
* - code(String,可选)—— 员工编号,精确匹配
* - page(int/String,可选,默认1)—— 页码
* - size(int/String,可选,默认100,上限1000)—— 每页条数
*
*
* 返回结果
* {@code
* {
* "msg": "成功",
* "code": "200",
* "page": 1,
* "size": 100,
* "data": [{
* "id": "员工FID",
* "code": "员工编码",
* "name": "员工名称",
* "idcardno": "身份证号",
* "tyname": "用工关系类型",
* "inservice": "是否在职(1或4为在职)",
* "gender": "性别(1男,2女)",
* "globalroaming": "区号",
* "ncell": "电话号码",
* "joindate": "入司日期",
* "orgid": "组织ID",
* "posid": "岗位ID",
* "leader": ["上级ID列表"],
* "userAccount": "登录账号",
* "officephone": "办公电话",
* "passportno": "护照号码"
* }]
* }
* }
*
* @author szpgm
* @since 2026/07/02
*/
public class GetEmpInfoOsfService implements IHRMsfService {
/**
* 处理员工信息查询请求
*
* @param context EAS上下文对象,用于执行数据库查询
* @param map 入参Map,包含过滤条件和分页参数
* @return Map 包含查询结果、状态码和分页信息
* @throws EASBizException 业务异常
* @throws BOSException 平台异常
*/
@Override
public Object process(Context context, Map map) throws EASBizException, BOSException {
// 返回结果容器
Map result = new HashMap();
List