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. 火狐自动填写表单autofill forms的用法和注意事项

    1.安装后,打开要表单页面,右键

  2. Python数据集变量及相关含义

  3. Python基础:18类和实例之二

    1:绑定和非绑定 当存在一个实例时,方法才被认为是绑定到那个实例了.没有实例时方法就是未绑定的.在很多情况下,调用的都是一个绑定的方法. 调用非绑定方法并不经常用到,其中一个主要的场景是:派生一个子类 ...

  4. LeetCode63 Unique Paths II

    题目: Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. H ...

  5. huyingsakai的Python学习day1:计算机硬件

    1.python是什么?Python是一门编程语言 2.什么是编程语言?(*****)程序员和计算机沟通交流的介质 3.什么是编程?(*****)编程就是程序员想把内心表达的方法用某种计算机语言思维表 ...

  6. 【转载】字符编码笔记:ASCII,Unicode和UTF-8

    字符编码笔记:ASCII,Unicode和UTF-8 作者: 阮一峰 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直 ...

  7. uni-app获取dom元素到顶部的距离以及操作dom元素的一些样式

    一. 1.首先有一个元素 <view class="activity" ref="btn"></view> 2.确认指针指向 this. ...

  8. vue项目配置同一局域网可使用ip访问

    1.检查 package.json文件,scripts.dev设置 host改成 "0.0.0.0" 2.config文件中找到 index.js 文件的host改成 " ...

  9. C++高精度加减乘除模板

    其中高精度乘法通过了POJ2389,其他没有测过,不过应该是没有问题的. 其中高精度除法返回一对string,分别表示商和余数. 代码: #include <bits/stdc++.h> ...

  10. SQLSTATE[HY000] [2002] 错误

    http://www.thinkphp.cn/topic/36194.html 使用tp框架 3.2.3 ,在windows上跑的时候没有任何问题,但是部署到linux系统和是哪个,就会报这个错,不知 ...