`
q_wong
  • 浏览: 108567 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

導入員工績效存儲過程

阅读更多

導入7000多筆資料,如果寫Java程式的話就算優化到每筆資料一條SQL語句,半個小時都更新不完

換成存儲過程的話1分多鐘就OK了

 

具體做法是遍歷Excel表中的每一行,把所有資料讀進來,先判斷數據是否合法,不合法的剔除,然後把所有員工工號用stringBuffer串起來,中間用一個特殊字符分割開,大概三四百筆的時候調用一次存儲過程,然後用存儲過程完成字符串的分割和數據更新。

 

CREATE OR REPLACE procedure HTCHR.import_Employee_Performance(--導入員工績效 
employeeNumberStr in varchar2, 
performanceRatingStr in varchar2,
defaultProposedMonthStr in varchar2, 
defaultProposedAmountStr in varchar2,
annualPlanningId in number
) is 

allEmployeeNumber varchar2(4000);--所有員工工號
allPerformanceRating varchar2(4000);--所有員工績效 
allDefaultProposedMonth varchar2(4000);--所有發放月數 
allDefaultProposedAmount varchar2(4000);--所有發放金額 

empNumber varchar2(4000);--員工工號 
rating varchar2(4000);--員工績效 
month varchar2(4000);--發放月數 
amount varchar2(4000);--發放金額 

employeeNumber_index int;--當前員工工號在所有員工工號中的位置 
performanceRating_index int;--當前員工績效在所有員工績效中的位置 
defaultProposedMonth_index int;--當前發放月數在所有發放月數中的位置 
defaultProposedAmount_index int;-- 當前發放金額在所有發放金額中的位置 

begin

allEmployeeNumber := employeeNumberStr;
allPerformanceRating := performanceRatingStr;
allDefaultProposedMonth := defaultProposedMonthStr;
allDefaultProposedAmount := defaultProposedAmountStr;
employeeNumber_index := instr(allEmployeeNumber,'*',2);

while(employeeNumber_index>0) loop

employeeNumber_index := instr(allEmployeeNumber,'*',2);
performanceRating_index := instr(allPerformanceRating,'*',2);
defaultProposedMonth_index := instr(allDefaultProposedMonth,'*',2);
defaultProposedAmount_index := instr(allDefaultProposedAmount,'*',2);

empNumber := substr(allEmployeeNumber,2,employeeNumber_index-2);
rating := substr(allPerformanceRating,2,performanceRating_index-2);
month := substr(allDefaultProposedMonth,2,defaultProposedMonth_index-2);
amount := substr(allDefaultProposedAmount,2,defaultProposedAmount_index-2);

update salaryfinaldetail set performanceRating = rating,
defaultProposedMonth = month,
defaultProposedAmount = amount 
where annualPlanning_id = annualPlanningId and employeenumber = empNumber;

allEmployeeNumber := substr(allEmployeeNumber,employeeNumber_index);
allPerformanceRating := substr(allPerformanceRating,performanceRating_index);
allDefaultProposedMonth := substr(allDefaultProposedMonth,defaultProposedMonth_index);
allDefaultProposedAmount := substr(allDefaultProposedAmount,defaultProposedAmount_index);

end loop;

empNumber := substr(allEmployeeNumber,2);
rating := substr(allPerformanceRating,2);
month := substr(allDefaultProposedMonth,2);
amount := substr(allDefaultProposedAmount,2);

update salaryfinaldetail set performanceRating = rating,
defaultProposedMonth = month,
defaultProposedAmount = amount 
where annualPlanning_id = annualPlanningId and employeenumber = empNumber;

commit;

end;
/

 

分享到:
评论

相关推荐

    绩效管理设计方案(绩效模板动态定义)

    - **机构人员设置**:管理员工信息,包括入职、离职、调动等,确保绩效管理覆盖所有相关人员。 - **操作权限设置**:根据角色和职责分配不同的系统操作权限,保证数据的安全性和合规性。 5. **其他重要方面** - ...

    绩效管理系统源码.zip

    这个系统将复杂的绩效管理流程简化并数字化,使得考核过程更加规范、高效。以下是对该系统的详细解析: 1. **考核设置模块**: - **岗位定义**:在这一模块,管理员可以设定不同的岗位类别,每个岗位可能对应不同...

    基于springboot的月度员工绩效考核管理系统源码数据库.doc

    - **员工信息录入**:支持批量导入员工基本信息,如姓名、职位、所属部门等。 - **员工信息查询**:可通过姓名、工号等关键字搜索特定员工的详细资料。 - **员工信息编辑**:允许对员工的基本信息进行修改。 ##### ...

    绩效考核系统源码

    4. **考核执行与评分**:员工的考核结果由其直接上级或其他指定人员进行评定,系统提供评分界面,可以方便地输入各项指标的得分,同时支持批量导入或导出评分数据。 5. **结果统计与分析**:系统应具备自动计算总分...

    绩效管理系统设计方案.pdf

    3. 绩效考核数据的存储方式:系统支持绩效考核模板的动态定义,根据不同的岗位要求,设置不同的考核指标,并将不同模板下的员工绩效考核数据统一地存储在绩效考核数据库中。 系统架构: 1. 系统结构设计:系统采用...

    工资绩效管理系统的开发

    在工资绩效管理系统中,MySQL用于存储员工信息、工资数据以及绩效考核结果等关键信息,确保数据的安全性和一致性。 在功能实现上,后台分页技术用于处理大量数据的展示,提高用户体验。它允许用户分批次查看和操作...

    基于springboot+vue的响应式企业员工绩效考评系统源码数据库.doc

    ### 基于Spring Boot + Vue的响应式企业员工绩效考评系统 #### 一、引言 随着21世纪科技的飞速发展,计算机技术在各行各业的应用变得日益广泛且深入。计算机作为信息处理的核心工具,不仅提升了工作效率,还极大地...

    绩效管理系统设计方案.doc

    其中,导入导出绩效考核数据采用标准组件Jakarta_POI,以应对大规模数据处理的需求。绩效考核数据的存储方式则需要支持动态定义的考核模板,适应不同岗位的需求。 实施计划则包括了系统的部署、培训和后续维护等...

    员工完整管理系统导入可用

    在系统功能方面,员工信息管理模块是核心部分,它负责存储、更新和检索员工的基本信息,如姓名、工号、部门、职位等。此外,考勤管理功能可以记录员工的上下班时间,自动计算出勤情况,为薪资计算提供依据。薪资福利...

    一个员工管理系统

    - 薪酬福利:根据员工的职务、职级、绩效等因素,系统自动生成薪酬结构,简化了薪资发放过程。 - 培训发展:系统追踪员工的学习进度,记录培训成绩,便于评估培训效果和规划进一步的职业发展。 综上所述,员工管理...

    基于SpringBoot的员工及部门绩效管理系统.zip

    - 数据库:可能使用MySQL或其他关系型数据库,存储员工、部门和绩效数据。 - Spring Data JPA:简化数据库操作,通过Repository接口即可完成CRUD。 - Thymeleaf或Freemarker:用于视图渲染,提供动态HTML页面。 ...

    绩效管理系统设计方案与对策.doc

    绩效管理系统是企业管理中不可或缺的一部分,它旨在通过科学的评估手段,衡量员工的工作表现,从而提升组织效率和员工绩效。在“绩效管理系统设计方案与对策”中,我们深入探讨了设计这样一个系统的关键原则、思路...

    VB绩效评价管理系统设计(源代码+系统+答辩PPT)毕业设计—(包含完整源码可运行).rar

    3. **绩效数据录入**:系统提供界面供管理者输入或导入员工的绩效数据,可能涉及周期性的评估结果或者特定项目的完成情况。 4. **绩效计算**:系统根据设定的指标和权重,自动计算出每个员工的绩效得分,可以是平均...

    绩效管理和知识管理(PPT 24页).pptx

    其次,系统设计了导入步骤,使得高层管理者的战略目标能够落实到基层员工的绩效目标和工作计划中,同时也作为促进组织内部沟通和学习的工具。 通过台湾半导体公司的案例,研究验证了该系统的有效性。该系统不仅强化...

    哥俩好信息管理系统,可以直接导入myEclipse

    系统中的核心模块包括员工信息管理模块,它能够存储和更新员工的基本信息,如姓名、职位、入职日期等。考勤管理模块则负责记录员工的上下班时间,生成考勤报告,帮助人力资源部门进行考勤统计。绩效管理模块则根据...

    员工管理信息系统员工管理系统,帮助管理员工信息,员工姓名等资料

    1. **员工基本信息管理**:这是系统的基础模块,用于存储和更新员工的基本信息,如姓名、性别、出生日期、入职时间、职位、部门等。这个模块通常支持批量导入、导出数据,方便信息的同步与更新,确保数据的准确性。 ...

Global site tag (gtag.js) - Google Analytics