电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

s-HR考勤排班同步

来源:金蝶云社区作者:金蝶2024-09-163

s-HR考勤排班同步

同步排班一般都是采用osf接口来实现的,因此可以先去看看排班的对应的osf接口。

主要的同步接口主要有 CalendarShiftSaveService(日历式排班) ListShiftSaveService(列表式排班)

image.webp

image.webp


我们主要关注的是subparameter这个值,这个值是需要我们传入的。

比如ListShiftSaveService接口的需要传入的是 data  beginDate endDate。

beginDate代表是所选的开始日期,格式为"yyyy-MM-dd"

endDate代表是所选的结束日期,格式为"yyyy-MM-dd"

data则是需要传入的排班数据,因为ListShiftSaveService是基于列表式排班的,因此排班数据的结构如下:


[{
        "2023-01-25": "[工作日]夜晚班次",
	"2023-01-26": "[工作日]行政班次11",
	"2023-01-27": "[工作日]夜班班次",
	personId: "20180927",
	personName: "周游",
	rowNum: 0
  },  {
	"2023-01-25": "[工作日]夜晚班次",
	"2023-01-26": "[工作日]行政班次11",
	"2023-01-27": "[工作日]夜班班次",
	personId: "20180926",
	personName: "欧艳秋",
	rowNum: 1
}]

 以第一组的数据来解释,

2023-01-25表示这一天排什么日期类型的什么班次(这里是工作日排夜晚班次),以下两个日期以此类推。

再者 这个的personId 指的是该员工的编码,即person.fnumber ,并不是person.fid

personName指的是该员工的姓名

rowNum指的是第几个 (此列在代码里好像并没有什么调用处,我也不知道是干什么的)


因此我们通过url的调用方式则是:

http://127.0.0.1:6888/shr/shr/msf/service.do?method=callService&serviceName=listShiftSaveService&data=[{"2023-01-25":"[工作日]夜晚班次","2023-01-26":"[工作日]行政班次11","2023-01-27":"[工作日]夜班班次",personId:"20180927",personName:"周游",rowNum:0},{"2023-01-25":"[工作日]夜晚班次","2023-01-26":"[工作日]行政班次11","2023-01-27":"[工作日]夜班班次",personId:"20180926",personName:"欧艳秋",rowNum:1}]&beginDate=2023-01-25&endDate=2023-01-27


通过js的调用方式是:

shr.callService({
		serviceName: 'listShiftSaveService', 
        param: {
		data:JSON.stringify( [
                {"2023-01-25":"[工作日]夜晚班次","2023-01-26":"[工作日]行政班次11","2023-01-27":"[工作日]夜班班次",personId:"20180927",personName:"周游",rowNum:0},
                {"2023-01-25":"[工作日]夜晚班次","2023-01-26":"[工作日]行政班次11","2023-01-27":"[工作日]夜班班次",personId:"20180926",personName:"欧艳秋",rowNum:1}
            ])
            ,
        beginDate:"2023-01-25",
        endDate:"2023-01-27"
                
		},
        success: function(data) {
                		    			
        }
});

注意:其中data标注的是String类型,必须传String类型,不然会因为传入的不是String类型导致识别不到,data就会变成null。


通过java代码调用:

        Map paraMap = new HashMap();
        JSONArray jsonArray = new JSONArray();
        JSONObject data = new JSONObject();
        data.put("2023-01-25","[工作日]夜晚班次");
        data.put("2023-01-26","[工作日]行政班次11");
        data.put("2023-01-27","[工作日]夜班班次");
        data.put("personId","20180927");
        data.put("personName","周游");
        data.put("rowNum","0");
        jsonArray.add(data);
        paraMap.put("data",jsonArray);
        paraMap.put("beginDate", "2023-01-25");
        paraMap.put("endDate","2023-01-27");

        Map map  = (Map)OSFExecutor.executeOSF(ctx, paraMap, "listShiftSaveService");




CalendarShiftSaveService需要传入 numbers data  beginDate endDate

numbers代表的是排班员工的编码,即person.fnumber

beginDate代表是所选的开始日期,格式为"yyyy-MM-dd"

endDate代表是所选的结束日期,格式为"yyyy-MM-dd"

data则是需要传入的排班数据,CalendarShiftSaveService是日历式排班,因此排班数据格式

s-HR考勤排班同步

同步排班一般都是采用osf接口来实现的,因此可以先去看看排班的对应的osf接口。主要的同步接口主要有 CalendarShiftSaveService(日历式排班)...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信