1,AtsOverTimeBillBatchEditHandler中collection的理解

 SelectorItemCollection selectors = new SelectorItemCollection();
//自定义集合SelectorItemCollection的定义
selectors.add(new SelectorItemInfo("id")); //集合selectors中添加id
selectors.add(new SelectorItemInfo("name")); //集合selectors中添加name
viewInfo.setSelector(selectors); //给viewInfo设置属性
viewInfo.setFilter(temFilterInfo); //给viewInfo设置过滤条件

2.

整个代码片段的理解

 protected void afterCreateNewModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo coreBaseInfo)
throws WafException
//这就是HTTP协议的请求和响应对象
{
super.afterCreateNewModel(request, response, coreBaseInfo);
//Super: 代表当前对象父类的引用
AtsOverTimeBillInfo atsOverTimeBillInfo = (AtsOverTimeBillInfo)coreBaseInfo;//对coreBaseInfo的格式改变
Date nowDate = DateTimeUtils.truncateDate(new Date()); //用这个方式获取当前时间 PersonInfo personInfo = SHRBillUtil.getCurrPersonInfo();//获取personInfo(个人信息)
PersonPositionInfo personPositionInfo = SHRBillUtil.getAdminOrgUnit(personInfo.getId().toString());
//获取personPositionInfo(职位信息) getAdminOrgUnit(管理组织单元) atsOverTimeBillInfo.setProposer(personInfo);
atsOverTimeBillInfo.setApplyDate(nowDate); atsOverTimeBillInfo.setAdminOrg(personPositionInfo.getPersonDep()); HROrgUnitInfo hrInfo = null;
hrInfo = ContextUtil.getCurrentHRUnit(this.ctx);
atsOverTimeBillInfo.setHrOrgUnit(hrInfo);
atsOverTimeBillInfo.setBizDate(nowDate); AtsOverTimeBillInfo overTimeBill = new AtsOverTimeBillInfo(); //新的对象overTimeBill boolean hasCodingRule = NumberCodeRule.hasCodingRule(overTimeBill, NumberCodeRule.getMainOrgByCu());//编码规则
if (hasCodingRule == true) {
Map initData = (Map)request.getAttribute("view_initData");
initData.put("overtimeBillNumberFieldCanEdit", Boolean.valueOf(false));
} AtsOverTimeBillEntryInfo entryInfo = new AtsOverTimeBillEntryInfo(); //BOS中接口,用来设置值
entryInfo.setAdminOrgUnit(personPositionInfo.getPersonDep());
entryInfo.setPerson(personInfo);
entryInfo.setPosition(personPositionInfo.getPrimaryPosition());
entryInfo.setOtDate(nowDate);
entryInfo.setApplyOTTime(BigDecimal.valueOf(0L));
entryInfo.setRealOTTime(BigDecimal.valueOf(0L));
entryInfo.setCreateTag(OverTimeCreateTag.userCreate);
try
{
EntityViewInfo entityViewInfo = new EntityViewInfo(); //BOS中接口
SelectorItemCollection sic = new SelectorItemCollection(); //集合
sic.add(new SelectorItemInfo("proposer.id")); //设置属性
sic.add(new SelectorItemInfo("id"));
sic.add(new SelectorItemInfo("attendDate"));
sic.add(new SelectorItemInfo("dayType"));
entityViewInfo.setSelector(sic); //这个指定entityViewInfo的属性是sic中的
FilterInfo filterInfo = new FilterInfo(); //过滤条件代码块
filterInfo.getFilterItems().add(new FilterItemInfo("proposer.id", personInfo.getId().toString()));
filterInfo.getFilterItems().add(new FilterItemInfo("attendDate", nowDate, CompareType.GREATER_EQUALS));
entityViewInfo.setFilter(filterInfo);
//计划改变集合
ScheduleShiftCollection coll = ScheduleShiftFactory.getRemoteInstance().getScheduleShiftCollection(entityViewInfo);
OverTimeTypeInfo defaultType = new OverTimeTypeInfo();//defaultType(缺省类型)
if ((coll != null) && (coll.size() >= 1)) { //这些if-else 组合,就是确定是什么加班类型.
int dayType = coll.get(0).getDayType().getValue(); //dayType赋值 if (dayType == 1) {
defaultType.setName("休息日加班");
defaultType.setNumber("002");
defaultType.setId(BOSUuid.read("zr+ur5D4RA+2bdVZ2VPqp46C/nU="));
} else if (dayType == 2) {
defaultType.setName("法定节假日加班");
defaultType.setNumber("003");
defaultType.setId(BOSUuid.read("sRWUOt7sRpOY0TCo6NMqGY6C/nU="));
} else {
defaultType.setName("工作日加班");
defaultType.setNumber("001");
defaultType.setId(BOSUuid.read("rBy0u1YgQ9C1OxcM85mxyY6C/nU="));
}
}
else {
defaultType.setName("休息日加班");
defaultType.setNumber("002");
defaultType.setId(BOSUuid.read("zr+ur5D4RA+2bdVZ2VPqp46C/nU="));
}
entryInfo.setOtType(defaultType); //赋值给,entryInfo,以便后面操作
} catch (BOSException e1) { //捕捉错误的标准语句
e1.printStackTrace();
}
try
{ //工厂-本地实例-补充集合里面的
OverTimeCompensCollection overTimeCompensCollection = OverTimeCompensFactory.getLocalInstance(this.ctx).getOverTimeCompensCollection(" ");
int size = overTimeCompensCollection.size();
for (int i = 0; i < size; i++)
if ("调休".equals(overTimeCompensCollection.get(i).getName()))//这是判断有没有调休,有就添加进去
entryInfo.setOtCompens(overTimeCompensCollection.get(i));
}
catch (BOSException e) //捕捉错误的标准语句
{
e.printStackTrace();
}
atsOverTimeBillInfo.getEntries().add(entryInfo); //找到对应的实体,把entryInfo,添加进去
}

金蝶handler中 collection 代码片段理解的更多相关文章

  1. es6 代码片段理解

    代码片段理解: [INCREMENT]: (state, action) => { const { payload: { id } } = action //because payload co ...

  2. 使用 Git 来管理 Xcode 中的代码片段

    使用 Git 来管理 Xcode 中的代码片段 代码片段介绍 xcode4 引入了一个新 feature: code snippets,在整个界面的右下角,可以通过快捷键:cmd + ctrl + o ...

  3. 如何在VScode中添加代码片段

    拿 VUE 举例,新建 VUE 文件,输入前缀,出现代码段 文件 --->  首选项 ---> 用户代码片段  在输入框中输入 vue ,找到 vue.json ,然后在 vue.json ...

  4. sublimetext3中保存代码片段

    在日常的开发工作中,不断重复上一次敲过的代码,有时确实感到伐木累."蓝瘦"(难受)."香菇"(想哭),大概表达的也是这样的心境吧!:grinning: 所以,在 ...

  5. 如何在Sublime Text中添加代码片段

    我们在编写代码的时候,总会遇到一些需要反复使用的代码片段.这时候就需要反复的复制和黏贴,大大影响效率.我们利用Sublime Text的snippet(代码片段)功能,就能很好的解决这一问题.通俗的讲 ...

  6. latex在vim中的代码片段

    Gilles Castel写的vim中使用的代码片段,质量很高,原文:https://github.com/gillescastel 下载后,存放到 ~/.vim/plugged/ultisnips/ ...

  7. VS中添加自定义代码片段

    前言 用#4敲出 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; int main(voi ...

  8. VS中自定义代码片段

    VS - 工具 - 代码片段管理器 实现:propnotify 加 Tab 键 生成属性定义代码片段 (包含一个字段定义,一个属性get/set定义,其中set会触发属性值变更事件) <?xml ...

  9. [工作总结]jQuery在工作开发中常用代码片段集锦(1-10)

    1.jQuery,JS实现tab切换 原生JS实现 HTML代码如下: <div class="wrap"> <ul id="tag"> ...

随机推荐

  1. Laravel 发送邮件(最简单的讲解!)

    Laravel集成了SwiftMailer库进行邮件发送,邮件配置文件位于config/mail.php:. return [ 'driver' => env('MAIL_DRIVER', 's ...

  2. @atcoder - AGC035D@ Add and Remove

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 N 张排成一行的卡片,第 i 张卡片上面写着 Ai. 重复 ...

  3. 如何解决iOS内存错误

    由于iOS5.0之前没有自动应用计数机制,也没有Java那样的垃圾回收功能.我们都需要自己管理和控制对象的回收,这是一件很麻烦的事情,也是做iOS项目中最容易出现的问题.如果不掌握这些方法,调试这些问 ...

  4. 在线学编程!十大IT在线教育网站推荐

    在线学编程!十大IT在线教育网站推荐 1.CSDN学院(http://edu.csdn.net/) CSDN学院是CSDN推出的一个面向中国软件开发者和IT专业人员的技术教育服务平台.主要提供IT领域 ...

  5. TOP10!全球顶级云计算公司战斗力排行榜

    TOP10!全球顶级云计算公司战斗力排行榜 1亚马逊\VMware.微软 [PConline 资讯]现如今,不谈“云”,似乎会与这个时代格格不入.无论是企业还是个人,都会与“云”扯上关系.可以说,云计 ...

  6. AtCoder Regular Contest 059

    C - いっしょ / Be Together 数据比较小,暴力就挺好的.O(n^2)可过的好题 #include <bits/stdc++.h> using namespace std; ...

  7. E - D Tree HDU - 4812 点分治+逆元

    这道题非常巧妙!!! 我们进行点分治的时候,算出当前子节点的所有子树中的节点,到当前节点节点的儿子节点的距离,如下图意思就是 当前节点的红色节点,我们要求出红色节点的儿子节点绿色节点,所有绿色的子树节 ...

  8. X-WAF 安装配置指南

    X-WAF 是一款方便易用的云WAF,使用反向代理的方式介入Web服务器和访问者之间,不需要像 modSecurity 和 Naxsin 那样作为nginx的模块,需要进行编译安装 X-WAF使用 O ...

  9. ubuntu环境变量的三种设置方法

    一:设置环境变量的三种方法 1.1 临时设置 export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH 1.2 当前用户的全局设置 打开~/. ...

  10. Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合

    复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...