金蝶handler中 collection 代码片段理解
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 代码片段理解的更多相关文章
- es6 代码片段理解
代码片段理解: [INCREMENT]: (state, action) => { const { payload: { id } } = action //because payload co ...
- 使用 Git 来管理 Xcode 中的代码片段
使用 Git 来管理 Xcode 中的代码片段 代码片段介绍 xcode4 引入了一个新 feature: code snippets,在整个界面的右下角,可以通过快捷键:cmd + ctrl + o ...
- 如何在VScode中添加代码片段
拿 VUE 举例,新建 VUE 文件,输入前缀,出现代码段 文件 ---> 首选项 ---> 用户代码片段 在输入框中输入 vue ,找到 vue.json ,然后在 vue.json ...
- sublimetext3中保存代码片段
在日常的开发工作中,不断重复上一次敲过的代码,有时确实感到伐木累."蓝瘦"(难受)."香菇"(想哭),大概表达的也是这样的心境吧!:grinning: 所以,在 ...
- 如何在Sublime Text中添加代码片段
我们在编写代码的时候,总会遇到一些需要反复使用的代码片段.这时候就需要反复的复制和黏贴,大大影响效率.我们利用Sublime Text的snippet(代码片段)功能,就能很好的解决这一问题.通俗的讲 ...
- latex在vim中的代码片段
Gilles Castel写的vim中使用的代码片段,质量很高,原文:https://github.com/gillescastel 下载后,存放到 ~/.vim/plugged/ultisnips/ ...
- VS中添加自定义代码片段
前言 用#4敲出 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; int main(voi ...
- VS中自定义代码片段
VS - 工具 - 代码片段管理器 实现:propnotify 加 Tab 键 生成属性定义代码片段 (包含一个字段定义,一个属性get/set定义,其中set会触发属性值变更事件) <?xml ...
- [工作总结]jQuery在工作开发中常用代码片段集锦(1-10)
1.jQuery,JS实现tab切换 原生JS实现 HTML代码如下: <div class="wrap"> <ul id="tag"> ...
随机推荐
- 因为对 Docker 不熟悉建了 N 多个 Nginx
因为对 Docker 不熟悉建了 N 多个 Nginx 一直不停的 docker run nginx 结果出现无数个 nginx. 然后最原来的 nginx 启动不了了. 使用 docker ps - ...
- oracle函数 lag()和lead()
[语法] lag(EXPR,<OFFSET>,<DEFAULT>) LEAD(EXPR,<OFFSET>,<DEFAULT>) [功能]表示根据COL1 ...
- MaxCompute Studio使用心得系列7——作业对比
在数据开发过程中,我们通常需要将两个作业进行对比从而定位作业运行性能或者结果有差异的问题,但是对比作业时需要同时打开两个studio 的tab页,或者两个Logview页,不停切换进行对比,使用起来非 ...
- 「BZOJ1005」[HNOI2008] 明明的烦恼
「BZOJ1005」[HNOI2008] 明明的烦恼 先放几个prufer序列的结论: Prufer序列是一种对有标号无根树的编码,长度为节点数-2. 具体存在无根树转化为prufer序列和prufe ...
- Android 字体库的使用
开发Android的人大多都知道,Android里面对字体的支持少得可怜,默认情况下,TextView 的 typeface 属性支持 "Sans","serif&qu ...
- jasperReports 通过java导出各种格式报表,及javaweb项目整合显示各种报表
注意:编写此项目时,请先手动编写**.jrxml 或者用IReport生成**.jrxml或**.jasper 注:java导出报表与web项目显示报表方法其实是相同的,只不过有一句代码不同,如下 ...
- oracle 尽量多使用COMMIT
只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少: COMMIT所释放的资源: a. 回滚段上用于恢复数据的信息. b. ...
- 解决某些手机RadioGroup中的RadioButton不居中(右移)问题
最近一直在忙一个项目,页面的基本框架类似于QQ那样,有底部导航栏的,遂采用的是RadioButton来实现的.本来一直在我的模拟器上测试,页面展示是没啥问题的,效果图如下: 可是,坑爹的事今天却发生了 ...
- H3C 网络层
- H3C ISDN与OSI参考模型