empEnrollBizBillHrManEditExt.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. var empTypeInfo = {};
  2. shr.defineClass("shr.affair.hrman.EmpEnrollBizBillHrManEditExt", shr.affair.hrman.EmpEnrollBizBillHrManEdit, {
  3. initalizeDOM : function () {
  4. var _self = this;
  5. shr.affair.hrman.EmpEnrollBizBillHrManEditExt.superClass.initalizeDOM.call(this);
  6. if(this.operateState.toUpperCase() != 'VIEW'){
  7. _self.nameChange();
  8. }
  9. if(this.operateState.toUpperCase() == 'ADDNEW'){
  10. var selectId = shr.getUrlRequestParam("selectId");
  11. if( !selectId){
  12. shr.remoteCall({
  13. method : 'getEmpNumber',
  14. async : false,
  15. success : function(res){
  16. //人员类型
  17. _self.getField("entrys_empNumber").shrTextField('setValue',res.empNumber);
  18. }
  19. });
  20. }
  21. }
  22. },
  23. nameChange:function(){
  24. var that = this;
  25. //监听文本域,数值控件的值变化
  26. that.getField("entrys_surname").on("change", function(){
  27. var surname = $("#entrys_surname").val();
  28. surname = surname.toUpperCase();
  29. that.getField("entrys_surname").shrTextField('setValue',surname);
  30. //用户名赋值
  31. that.updateUserName();
  32. //姓名赋值
  33. that.updateName();
  34. });
  35. that.getField("entrys_givenName").on("change", function(){
  36. //用户名赋值
  37. that.updateUserName();
  38. //姓名赋值
  39. that.updateName();
  40. });
  41. //中间名
  42. that.getField("entrys_middleNames").on("change", function(){
  43. //姓名赋值
  44. that.updateName();
  45. });
  46. //本地名称
  47. that.getField("entrys_localname").on("change", function(){
  48. //姓名赋值
  49. that.updateName();
  50. });
  51. //试用期开始时间
  52. that.getField("entrys_bizDate").on("change", function(){
  53. //预入职日期
  54. var preEnterDate = $("#entrys_bizDate").val();
  55. that.getField("entrys_trialStartDate").shrDateTimePicker('setValue',preEnterDate);
  56. that.updateTransferDate();
  57. });
  58. //预计转正日期
  59. that.getField("entrys_probation").on("change", function(){
  60. that.updateTransferDate();
  61. });
  62. },
  63. //用户名赋值
  64. updateUserName:function(){
  65. var that = this;
  66. //用户名赋值
  67. var surname = $("#entrys_surname").val();
  68. var givenName = $("#entrys_givenName").val();
  69. var userName = givenName + "." + surname;
  70. if(userName.length > 20){
  71. if(surname != '' ){
  72. userName = givenName + "." + surname.slice(0,1).toUpperCase() ;
  73. if(userName.length > 20){
  74. var startLength = userName.length - 20;
  75. userName = userName.substring(startLength,userName.length);
  76. }
  77. }
  78. }
  79. userName = userName.toLowerCase();
  80. that.getField("entrys_userName").shrTextField('setValue',userName);
  81. that.getField("entrys_email").shrTextField('setValue',userName+"@gtiit.edu.cn");
  82. },
  83. updateName: function(){
  84. var that = this;
  85. //姓
  86. var surname = $("#entrys_surname").val();
  87. //名
  88. var givenName = $("#entrys_givenName").val();
  89. //本地名称
  90. var localName = $("#entrys_localname").val();
  91. var name = "";
  92. if(givenName != ''){
  93. name = givenName + " ";
  94. }
  95. if(surname != ''){
  96. name = name + surname + " ";
  97. }
  98. if(localName != ''){
  99. name = name + localName + " ";
  100. }
  101. //姓名
  102. that.getField("entrys_empName").shrTextField('setValue',name);
  103. },
  104. //预计转正日期
  105. updateTransferDate:function(){
  106. var that = this;
  107. //预入职日期
  108. var preEnterDate = $("#entrys_bizDate").val();
  109. //试用期(月)
  110. var tryMonth = $("#entrys_probation").val();
  111. let date = new Date(preEnterDate); // 创建一个 Date 对象
  112. if(tryMonth != '' && tryMonth > 0 && preEnterDate != null ){
  113. tryMonth = parseInt(tryMonth);
  114. date.setMonth(date.getMonth() + tryMonth);
  115. employeeType = {id:"00000000-0000-0000-0000-000000000002A29E85B3", name_l1:"On Probation",name:"试用员工",name_l2:"试用员工"};
  116. }else{
  117. date = null;
  118. employeeType = {id:"00000000-0000-0000-0000-000000000001A29E85B3", name_l1:"Permanent Employee",name:"正式员工",name_l2:"正式员工"};
  119. }
  120. if(empTypeInfo != null ){
  121. employeeType = empTypeInfo
  122. }
  123. that.getField("entrys_planFormalDate").shrDateTimePicker('setValue',date);
  124. $("#entrys_empType").shrPromptBox("setValue", employeeType);
  125. },
  126. /**
  127. * 预入职下推初始化数据
  128. */
  129. preEntryInit:function(){
  130. var _self = this;
  131. var selectId = shr.getUrlRequestParam("selectId");
  132. shr.remoteCall({
  133. url : shr.getContextPath() + "/dynamic.do?method=getPreEntryInitData&uipk="+jsBinder.uipk,
  134. type : "POST",
  135. param:{
  136. "billId" : selectId,
  137. "tempId" : _self.getTemporaryPersonId()//传入tempId以复制一个预入职头像都入职单
  138. },
  139. success : function(res){
  140. if(res.preEntryInfo != undefined){
  141. empTypeInfo = res.preEntryInfo.empType;
  142. var preEntryId = res.preEntryInfo.id;
  143. var talentId = res.preEntryInfo.talent.id;
  144. if(res.preEntryInfo.sourceBillType.value == 2){//offer来的预入职单
  145. shr.callService( {
  146. serviceName : 'getPreEntryInfoOSF',
  147. param : {preEntryId : preEntryId},
  148. async : false,
  149. success : function(data) {
  150. _self.initParameterByRecurit("entrys_probation",data.probationPeriod == undefined ? null : data.probationPeriod,false,'numberField');//试用期
  151. _self.initParameterByRecurit("entrys_empType",data.employeeType == undefined ? null : data.employeeType,true);//用工关系状态
  152. _self.initParameterByRecurit("entrys_jobStartDate",data.jobStartDate == undefined ? null : data.jobStartDate.substring(0,10),false);//参加工作日期
  153. }
  154. });
  155. }
  156. if(res.preEntryInfo.hrOrgUnit != undefined){
  157. //基础资料在HR组织设置前先设置,可以接受HR组织可使用权限校验
  158. _self.initParameterByRecurit("entrys_variationReason",res.preEntryInfo.enrollSource,true);//招聘来源反写变动原因,,handler中用招聘来源按编码匹配查出变动原因放到enrollSource中
  159. var hrOrgUnitObj = {id:res.preEntryInfo.hrOrgUnit.id,name:res.preEntryInfo.hrOrgUnit.name}
  160. _self.initParameterByRecurit("hrOrgUnit",hrOrgUnitObj,true);//人事业务组织
  161. }
  162. if(res.preEntryInfo.talent != undefined){
  163. _self.initParameterByRecurit('entrys_IDCardNo',res.preEntryInfo.talent.idCardNO,false);//身份证号码
  164. _self.initParameterByRecurit("entrys_passportNo",res.preEntryInfo.talent.passportNO,false);//护照号码
  165. }
  166. _self.getField("entrys.preEntryID").val(selectId);//隐藏预入职ID字段发送至后端
  167. if (res.errorMsg){
  168. shr.showError({
  169. message: data.errorMsg,
  170. hideAfter: null
  171. });
  172. }else if (res.personExist && res.personExist=="true") {
  173. $("#entrys_enrollAgain").val(1);
  174. if(res.personOldInfo){
  175. //编码,如果使用原编码,才设置原编码
  176. //osf取回来的 data.personOldInfo.useOldNumber 值为枚举值{0:使用原编码, 1:使用新编码}
  177. if(!res.personOldInfo.useOldNumber && res.personOldInfo.empNumber){
  178. $("#entrys_empNumber").val(res.personOldInfo.empNumber);
  179. $("#entrys_useOldNumber").val(1);
  180. _self.getField('entrys_empNumber').shrTextField('disable');
  181. }
  182. else if(res.personOldInfo.useOldNumber){
  183. $("#entrys_useOldNumber").val(0);
  184. }
  185. //参加工作日期
  186. if (res.personOldInfo.jobStartDate) {
  187. $("#entrys_jobStartDate").shrDateTimePicker('setValue', res.personOldInfo.jobStartDate);
  188. }
  189. }
  190. _self.swapHrbizDefineInfo(_self._hrBizdefine_enrollAgain);
  191. _self.getField("entrys.hrBizDefine").shrPromptBox("setFilter", _self._default_hrBizDefine_filter+" and bizDefineType = 16");//只能选择再入职变动操作
  192. _self.showEnrollAgainMsg(res);
  193. }
  194. //职位放在加载再入职信息之后,避免再入职使用原编码时又按职位刷编码
  195. _self.initParameterByRecurit("entrys_position",res.preEntryInfo.position,true);//入职职位
  196. //根据入职日期填写入职时间
  197. var effdt=_self.getField('entrys.bizDate').shrDateTimePicker("getValue");
  198. _self.getField('entrys.bizTime').shrDateTimePicker('setValue', effdt);
  199. //本地名称
  200. _self.getField("entrys_localname").shrTextField('setValue',res.preEntryInfo.localname_l2);
  201. //姓
  202. _self.getField("entrys_surname").shrTextField('setValue',res.preEntryInfo.surname_l2);
  203. //中间名
  204. _self.getField("entrys_middleNames").shrTextField('setValue',res.preEntryInfo.middlenames_l2);
  205. //名
  206. _self.getField("entrys_givenName").shrTextField('setValue',res.preEntryInfo.givenname_l2);
  207. //员工编码
  208. _self.getField("entrys_empNumber").shrTextField('setValue',res.preEntryInfo.empNumber);
  209. //用户名
  210. _self.getField("entrys_userName").shrTextField('setValue',res.preEntryInfo.username_l2);
  211. //工作邮箱
  212. _self.getField("entrys_email").shrTextField('setValue',res.preEntryInfo.workemail);
  213. //私人邮箱
  214. _self.getField("entrys_pemail").shrTextField('setValue',res.preEntryInfo.email);
  215. //试用期
  216. _self.getField("entrys_probation").shrTextField('setValue',res.preEntryInfo.tryMonth);
  217. //教师年假额度
  218. _self.getField("entrys_faentitlement").shrTextField('setValue',res.preEntryInfo.faentitlement);
  219. //教师病假额度
  220. _self.getField("entrys_fsentitlement").shrTextField('setValue',res.preEntryInfo.fsentitlement);
  221. //教师病假最高额度
  222. _self.getField("entrys_fsmentitlement").shrTextField('setValue',res.preEntryInfo.fsmentitlement);
  223. //Admin Title
  224. _self.getField("entrys_admintitle").shrTextField('setValue',res.preEntryInfo.admintitle);
  225. //时薪
  226. _self.getField("entrys_hwage").shrTextField('setValue',res.preEntryInfo.hwage);
  227. //试用期开始日期
  228. _self.getField("entrys_trialStartDate").shrDateTimePicker('setValue',res.preEntryInfo.trialStartDate);
  229. //居民
  230. $('#entrys_resident').shrSelect('setValue',res.preEntryInfo.resident);
  231. //支付币种
  232. $('#entrys_paycurrency').shrSelect('setValue',res.preEntryInfo.paycurrency);
  233. shr.remoteCall({
  234. method : 'getEmpPreEntryData',
  235. async : false,
  236. param:{
  237. "billId" : selectId
  238. },
  239. success : function(response){
  240. //人员类型
  241. $("#entrys_persontype").shrPromptBox("setValue", {id:response.personTypeId , name : response.personTypeName });
  242. //员工类别
  243. $("#entrys_wcategory").shrPromptBox("setValue", {id:response.wcategoryId , name : response.wcategoryName });
  244. //全职或兼职
  245. $("#entrys_ftorpt").shrPromptBox("setValue", {id:response.ftorptId , name : response.ftorptName });
  246. //直接上级
  247. $("#entrys_lmanager").shrPromptBox("setValue", {id:response.lmanagerId , name : response.lmanagerName });
  248. //Academic Title
  249. $("#entrys_academictitle").shrPromptBox("setValue", {id:response.academictitleId , name : response.academictitleName });
  250. //job2
  251. $("#entrys_jobs").shrPromptBox("setValue", {id:response.jobsId , name : response.jobsName });
  252. //纳税方式
  253. $("#entrys_rmethod").shrPromptBox("setValue", {id:response.rmethodId , name : response.rmethodName });
  254. //职等
  255. $("#entrys_jobGrade").shrPromptBox("setValue", {id:response.jobId , name : response.jobName });
  256. //签发国家
  257. $("#entrys_countryRegion").shrPromptBox("setValue", {id:response.countryId , name : response.countryName });
  258. //签证类型
  259. $("#entrys_credentialsType").shrPromptBox("setValue", {id:response.credentTypeId , name : response.credentTypeName });
  260. }
  261. });
  262. }
  263. }
  264. });
  265. // 预入职转入职后端赋值,需要在前端主动触发一些change事件
  266. _self.autoChange();
  267. },
  268. setEnrollAgainInfo: function(data) {
  269. var that = this;
  270. //根据身份证号和护照号将查出来的再入职人员信息填充到页面
  271. if (data && data.errorMsg){
  272. shr.showError({
  273. message: data.errorMsg,
  274. hideAfter: null
  275. });
  276. }else if ( data && data.personExist == "true") {
  277. that.fillEnrollPersonDataByNo(data);
  278. that.swapHrbizDefineInfo(that._hrBizdefine_enrollAgain);
  279. that.getField("entrys.hrBizDefine").shrPromptBox("setFilter", that._default_hrBizDefine_filter+" and bizDefineType = 16");//只能选择再入职变动操作
  280. that.showEnrollAgainMsg(data);
  281. var idEntity = "";
  282. if(data.personOldInfo.idCardNo){
  283. idEntity = data.personOldInfo.idCardNo;
  284. }else{
  285. idEntity = data.personOldInfo.passportNo;
  286. }
  287. shr.remoteCall({
  288. method : 'getPersonName',
  289. async : false,
  290. param:{
  291. "idEntity" : idEntity
  292. },
  293. success : function(response){
  294. if(response.userName){
  295. //姓
  296. $("#entrys_surname").shrTextField("setValue", response.surName);
  297. //本地名称
  298. $("#entrys_localname").shrTextField("setValue", response.localName);
  299. //中间名
  300. $("#entrys_middleNames").shrTextField("setValue", response.middleName);
  301. //名
  302. $("#entrys_givenName").shrTextField("setValue", response.givenName);
  303. //用户名
  304. $("#entrys_userName").shrTextField("setValue", response.userName);
  305. }
  306. }
  307. });
  308. }else{
  309. // 如果之前输入身份证带出过再入职人员才处理,避免正常情况下多次修改身份证也处理了以下逻辑
  310. if($("#entrys_enrollAgain").val()=="1" || $("#entrys_enrollAgain").val()=="true"){
  311. $("#entrys_enrollAgain").val(0);
  312. // 父类中存储了第一次加载的变动操作,将变动操作还原
  313. that.swapHrbizDefineInfo(that._currentHRBizdefine.id);
  314. that.getField("entrys.hrBizDefine").shrPromptBox("setFilter", that._default_hrBizDefine_filter);//还原默认变动操作可选范围
  315. }
  316. // 如果之前输入身份证带出过再入职人员并且是原编码,才处理,避免正常情况下多次修改身份证也处理了以下逻辑
  317. if($("#entrys_useOldNumber").val()=="1" || $("#entrys_useOldNumber").val()=="true"){
  318. $("#entrys_useOldNumber").val(0);
  319. // 没有编码规则,清空编码
  320. if(that._isAutoNumber == false){
  321. that.getField('entrys_empNumber').shrTextField('enable');
  322. that.getField('entrys_empNumber').val('');
  323. }
  324. // 有编码规则,需要看职位有没有选择
  325. if(that._isAutoNumber == true){
  326. // 如果职位没有选择,则清空编码
  327. if($.isEmptyObject($("#entrys_position_el").val())){
  328. that.getField('entrys_empNumber').val('');
  329. }
  330. // 如果职位不为空,重新按照编码规则刷新编码
  331. if(!$.isEmptyObject($("#entrys_position_el").val())){
  332. that.refreshNumber($("#entrys_position_el").val());
  333. }
  334. }
  335. }
  336. // //姓
  337. // $("#entrys_surname").shrTextField("setValue", "");
  338. // //本地名称
  339. // $("#entrys_localname").shrTextField("setValue", "");
  340. // //中间名
  341. // $("#entrys_middleNames").shrTextField("setValue", "");
  342. // //名
  343. // $("#entrys_givenName").shrTextField("setValue", "");
  344. }
  345. }
  346. });