|
|
本帖最后由 问题汇总专家 于 2021-4-2 12:18 编辑
版本:V4.4 SP21 2021-01-24版
具体场景:系统使用定时任务,每天晚上自动核算每个老师的课时总额,根据课时总额计算课时单价 因带班人数不断变化,所以需要每天核算
实现方法:定时任务,设定每晚凌晨一点,通过角色id获取每个老师的用户id 根据用户id去数据库中统计每个老师的总课时量,根据总课时量计算单次课时工资单价,并把计算好的结果写入表单
当前通过按钮已测试通过的代码:
(function(){
var day= getToday();
var rq = format(day,"yyyy-MM-dd");
var applicationid="11de-f053-df18d577-aeb6-19a7865cfdb6";
var domainid="11e7-07e8-6ad6ab7f-977a-25e53bf4caad";
var roleid= getRoleIdByName("教师"); //获取角色id
var deptUnderList=getDepartmentByLevel(1);
for(var iter1=deptUnderList.iterator();iter1.hasNext();){
var deptUnder=iter1.next();
var xqid=deptUnder.getId(); //获取校区id
Packages.java.lang.System.out.println(xqid);
var roles = getUsersByDptIdAndRoleId(xqid,roleid);
for(var iter=roles.iterator();roles !=null && iter.hasNext();){
var roles1 = iter.next();
var user = roles1.getId();
Packages.java.lang.System.out.println(user);
var UserProcessBean = new Packages.cn.myapps.authtime.user.service.UserProcessBean();
var UserVO = UserProcessBean.doView(user);
var webUser = new Packages.cn.myapps.base.web.WebUser(UserVO);
var username = webUser.getName();
Packages.java.lang.System.out.println(username);
var dbssql=" select * from v_bjxx where 主班老师='"+username+"' and item_状态='开课' ";
var dbsprocess = getDocProcess(applicationid);
var dbs=dbsprocess.countBySQL(dbssql,domainid);
var dykssql=" select sum(单月课时) from v_bjxx where 主班老师='"+username+"' and item_状态='开课' ";
var dyksprocess = getDocProcess(applicationid);
var dyks=dyksprocess.sumBySQL(dykssql,domainid);
var value="";
var yj = dyks;
if ( yj <= 300 ){
value = 1.2;
}else if ( yj <= 460 ){
value = 1.4;
}else if ( yj <= 650 ){
value = 1.6;
}else if ( yj <= 800 ){
value = 1.8;
}else if ( yj > 800 ){
value = 2.2;
}else {
value = "系统错误";
}
var process = getDocumentProcess();
var formProcess = getFormProcess();
var subform = formProcess.doView("11e9-e533-3fb4b1b5-8890-e77511fb2d96");//需要插入数据的表单ID值。可以通过数据库客户端查看那张表的formid字段值就可以。
var newDoc = process.doNew(subform,webUser,createParamsTable());
newDoc.setAuthor(user);
newDoc.setIstmp(false);
newDoc.setApplicationid(applicationid);
newDoc.setDomainid(domainid);
newDoc.addStringItem("教师ID",user);
newDoc.addStringItem("教师姓名",username);
newDoc.addStringItem("带班数",dbs);
newDoc.addStringItem("月基准课时",dyks);
newDoc.addStringItem("课时单价",value);
newDoc.addDateItem("日期", getToday());
process.doCreate(newDoc);
}
}
})();
问题描述:在按钮中自定义脚本测试没问题,放到任务中无任何反应,由于任务并没有输出和调试界面,所以也不清楚具体出错在哪?
问题需求:1.能否提供一下具体任务脚本开发调试 的界面 或者输出到控制台或者debug页面的方法
2.由于后期主要涉及数据库操作,能否提供一下以下函数的任务界面写法
queryBySQL(sql)
findBySQL(sql)
countBySQL(sql)
sumBySQL(sql)
queryByDSName(dsName,sql)
insertByDSName(dsName,sql)
updateByDSName(dsName,sql)
deleteByDSName(dsName,sql)
|
|