七巧低代码开发——场景案例:根据每月的工作日期和员工在七巧提交的请假单自动生成所有员工的考勤数据

客户需求: 根据每月的工作日期和员工在七巧提交的请假单自动生成所有员工的考勤数据 实现方式/思路(关键信息): 1)维护每年的工作日历表 2)通过工作日历获取每月的应出勤天数 3)获取七巧...
客户需求
根据每月的工作日期和员工在七巧提交的请假单自动生成所有员工的考勤数据
实现方式/思路(关键信息):
1)维护每年的工作日历表
2)通过工作日历获取每月的应出勤天数
3)获取七巧中请假单的数据
4)进行汇总和计算后得到员工的完整考勤数据
 
(function() {
    var doc = $.context.getCurrentDocument();
    var appId = $.context.getCurrentApplicationId();
    //var nowtime=$.date.getCurrentDate();
    //var format = "yyyy-MM-01";
    //var nowtimestr =$.date.dateToString(nowtime,format);
    //var salarymonth=$.date.stringToDate(nowtimestr,format);
    //salarymonth.setMonth(salarymonth.getMonth()-1);
    var salarymonth = $.date.timestampToDate(doc.getElementByName("计薪月").getValue());
    //根据公司人员名单表
    var appId = $.context.getCurrentApplicationId();
    var fieldMaps = new Packages.java.util.HashMap();
    fieldMaps.put("id", doc.getElementByName("选择公司").getValue());
    var emps = $.form.getFormDocumentsByFieldNameAndValue(appId, "工资数据审批名单", fieldMaps);
    //清除该公司,当月考勤数据
    var delmap = new Packages.java.util.HashMap();
    delmap.put("所属公司", doc.getElementByName("选择公司").getValue());
    delmap.put("薪资月", salarymonth);
    $.form.deleteFormDocumentsByFieldNameAndValue(appId, "考勤表", delmap);
    //根据月份获取当月应出勤天数
    var map2 = new Packages.java.util.HashMap();
    map2.put("所属月份", salarymonth);
    map2.put("是否工作日", "1");
    var ycqts = 0;
    var ycq = $.form.getFormDocumentsByFieldNameAndValue(appId, "工作日期维护表", map2);
    if (ycq != null) {
        ycqts = ycq.size();
    }
    var users = new Packages.java.util.ArrayList();
    if (emps != null) {
        users = emps.get(0).getElementByName("人员名单").getValue();
    }
    if (users != null) {
        for (var i = 0; i < users.size(); i++) {
            var nj = 0; //年假
            var sj = 0; //事假
            var bj = 0; //病假
            var hj = 0; //婚假
            var cj = 0; //产假
            var pcj = 0; //陪产假
            var sangj = 0; //丧假
            var txj = 0; //调休假
            //查询该员工所有假期
            var map3 = new Packages.java.util.HashMap();
            map3.put("所属月份", salarymonth);
            map3.put("是否工作日", "1");
            map3.put("姓名", users.get(i));
            var qjdocs = $.form.getFormDocumentsByFieldNameAndValue(appId, "请假日期记录表", map3);
            if (qjdocs != null) {
                for (var x = 0; x < qjdocs.size(); x++) {
                    var qdoc = qjdocs.get(x);
                    if (qdoc.getElementByName("请假类型").getValue() == "1") {
                        nj = nj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "2") {
                        sj = sj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "3") {
                        bj = bj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "4") {
                        hj = hj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "5") {
                        cj = cj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "6") {
                        pcj = pcj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "7") {
                        sangj = sangj + qdoc.getElementByName("请假时长").getFloatValue();
                    } else if (qdoc.getElementByName("请假类型").getValue() == "8") {
                        txj = txj + qdoc.getElementByName("请假时长").getFloatValue();
                    }
                }
            }
            var adddoc = $.form.createEmptyDocument(appId, "考勤表");
            adddoc.addElement("应出勤天数", ycqts);
            adddoc.addElement("所属公司", doc.getElementByName("选择公司").getValue());
            adddoc.addElement("姓名", users.get(i));
            adddoc.addElement("薪资月", salarymonth);
            adddoc.addElement("年假天数", nj) adddoc.addElement("病假天数", bj) adddoc.addElement("事假天数", sj) adddoc.addElement("婚假天数", hj) adddoc.addElement("丧假天数", sangj) adddoc.addElement("换休假天数", txj) adddoc.addElement("产假天数", cj) adddoc.addElement("陪产假天数", pcj) adddoc.addElement("旷工天数", 0) adddoc.addElement("实际出勤天数", ycqts - nj - bj - sj - hj - sangj - txj - cj - pcj);
            $.form.saveFormDocument(adddoc, appId);
        }
    }
})()
  • 发表于 2024-04-01 11:08
  • 阅读 ( 1579 )
  • 分类:专题案例

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
七小妹
七小妹

12 篇文章

作家榜 »

  1. 七小妹 12 文章
  2. 你是猴子派来的吧 3 文章
  3. 七巧低代码 2 文章
  4. 低代码小刘 2 文章
  5. 彭杏怡 0 文章
  6. 林友景 0 文章
  7. 0 文章
  8. 赵泽伟 0 文章