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. 【NS2】cygwin+NS2.29安装之道 (转载)

    最近接了一个需要进行网络模拟的项目.对与网络模拟一窍不通的本人算是一个挑战.于是乎开始整日上网搜索相关的资料,没想到这个世界的资源真是丰富多彩.最后发现了一个网络模拟的流行软件NS2,在经过多次尝试后 ...

  2. pycharm 快捷键使用

    1.Ctrl+/?键 = 选中行全部注释/解封: 2.Ctrl+D = 复制前一行: 3.Ctrl+Z = 撤销: 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性 ...

  3. java 简单实现FtpClient

    1. 引入喜闻乐见的maven地址 <dependency> <groupId>commons-net</groupId> <artifactId>co ...

  4. 【牛腩视频】之SQL触发器 标签: 数据库 2015-05-23 09:44 1339人阅读 评论(40) 收藏

    之前在学习机房管理系统.net版的时候,已经写过了关于数据库的操作,但是现在开始学习牛腩,才发现之前自己理解的太浅显,很多东西看似好像会了,不去实际操作一下,不把代码从头到尾敲出来,到头来还是不会,所 ...

  5. @gym - 101137K@ Knights of the Old Republic

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 N 个点 M 条边的一张图. 每个点有两个属性 Ai, B ...

  6. 解锁当前XXX用户

    pam_tally2 查看当前锁账户 pam_tally2 --user=XXX用户 --reset 解锁当前XXX用户

  7. CondaHTTPError: HTTP 000 CONNECTION FAILED

    [root@localhost ~]# conda install samtools Solving environment: failed CondaHTTPError: HTTP 000 CONN ...

  8. Spring Boot版本,Spring Cloud版本与组件版本关系

    我们在学习Spring Cloud时,可能总是碰到以下问题: 1.Spring Boot版本与Spring Cloud版本关系 2.启动时,报莫名其妙的错,稀里糊涂的换个版本就好了 3.这么多版本,用 ...

  9. Python--day26--反射

    反射对象的属性:(非常重要) getattr(类名,‘属性名’):获得属性值 使用getattr的好处:需要查看某个属性值的时候,不用再在代码中用if else elif 去判断输入(input函数) ...

  10. tensorflow学习笔记(四十五):sess.run(tf.global_variables_initializer()) 做了什么?

    当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数.那么,它到 ...