5cd14698d536311436d4fcddd24757fdb04c3b83.svn-base 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /**
  2. *
  3. */
  4. package com.kingdee.shr.customer.gtiit.imports;
  5. import java.text.ParseException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import java.util.HashMap;
  9. import java.util.Locale;
  10. import com.kingdee.bos.Context;
  11. import com.kingdee.bos.dao.IObjectValue;
  12. import com.kingdee.eas.basedata.person.IPerson;
  13. import com.kingdee.eas.basedata.person.PersonFactory;
  14. import com.kingdee.eas.basedata.person.PersonInfo;
  15. import com.kingdee.eas.hr.affair.AffairBizCheckFacadeFactory;
  16. import com.kingdee.eas.hr.affair.IAffairBizCheckFacade;
  17. import com.kingdee.eas.hr.emp.IBank;
  18. import com.kingdee.eas.hr.emp.IPersonDataSourceOptFacade;
  19. import com.kingdee.eas.hr.emp.IPersonOtherInfo;
  20. import com.kingdee.eas.hr.emp.PersonDataSourceOptFacadeFactory;
  21. import com.kingdee.eas.hr.emp.PersonOtherInfoFactory;
  22. import com.kingdee.shr.base.syssetting.app.io.fileImport.BaseRowInfo;
  23. import com.kingdee.shr.base.syssetting.app.io.fileImport.DynamicModelHelper;
  24. import com.kingdee.shr.base.syssetting.app.io.fileImport.ImportException;
  25. import com.kingdee.shr.base.syssetting.app.io.impl.PersonDataSourceImportUtils;
  26. import com.kingdee.shr.base.syssetting.app.io.impl.PersonOtherDataSourceImportService;
  27. import com.kingdee.shr.base.syssetting.web.dynamic.model.DynamicModelInfo;
  28. import com.kingdee.util.StringUtils;
  29. import com.kingdee.eas.hr.emp.BankFactory;
  30. /**
  31. * @author ISSUSER 教育经历parttime导入 PersonOtherDataSourceImportService
  32. */
  33. public class PersonOtherParttimeImport extends PersonOtherDataSourceImportService {
  34. private boolean isRemovePersonEntity = false;
  35. private IPerson personLocalInstance;
  36. private IPersonDataSourceOptFacade PersonDataSourceOptFacadeLocalInstance;
  37. private IPersonOtherInfo PersonOtherInfoLocalInstance;
  38. private IAffairBizCheckFacade AffairBizCheckFacadeLocalInstance;
  39. private IBank bankLocalInstance;
  40. private String className = "";
  41. @Override
  42. protected void importDataSource(BaseRowInfo row) throws ImportException {
  43. // 获取日期 日期不能大于当天
  44. String graduation = row.getValueOfString("partperson.graduation");
  45. if (org.apache.commons.lang3.StringUtils.isNotBlank(graduation)) {
  46. Date nowdate = new Date();
  47. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  48. String sdate = sdf.format(nowdate);
  49. try {
  50. Date dateGraduation = sdf.parse(graduation);
  51. Date tonowDate = sdf.parse(sdate);
  52. if(tonowDate.before(dateGraduation)) {
  53. throw new ImportException("The graduation time cannot be longer than the current time !");
  54. }
  55. } catch (ParseException e) {
  56. e.printStackTrace();
  57. }
  58. }
  59. DynamicModelHelper dHelper = this.getDynamicModelHelper();
  60. Context ctx = this.getContext();
  61. try {
  62. this.handlerEachRow(ctx, row, dHelper, ctx.getLocale());
  63. } catch (Exception var5) {
  64. throw new ImportException(var5.getMessage(), var5);
  65. }
  66. }
  67. private void handlerEachRow(Context ctx, BaseRowInfo row, DynamicModelHelper helper, Locale locale)
  68. throws Exception {
  69. this.personLocalInstance = PersonFactory.getLocalInstance(ctx);
  70. this.isRemovePersonEntity = PersonDataSourceImportUtils.checkPersonAssociatedAttributes(ctx,
  71. this.getTemplateInfo(), this.getScheme());
  72. this.personLocalInstance = PersonFactory.getLocalInstance(ctx);
  73. this.PersonDataSourceOptFacadeLocalInstance = PersonDataSourceOptFacadeFactory.getLocalInstance(ctx);
  74. this.PersonOtherInfoLocalInstance = PersonOtherInfoFactory.getLocalInstance(ctx);
  75. this.AffairBizCheckFacadeLocalInstance = AffairBizCheckFacadeFactory.getLocalInstance(ctx);
  76. this.bankLocalInstance = BankFactory.getLocalInstance(ctx);
  77. this.className = this.getClass().getName();
  78. String personName = row.getValueOfString("person.name");
  79. String number = row.getValueOfString("person.number");
  80. String personBirthday = row.getValueOfString("person.birthday");
  81. Boolean setBirthdayByIdCard = false;
  82. if (!StringUtils.isEmpty(personBirthday)) {
  83. setBirthdayByIdCard = false;
  84. } else {
  85. setBirthdayByIdCard = true;
  86. }
  87. PersonInfo personInfo = PersonDataSourceImportUtils.getPersonInfo(ctx, this.personLocalInstance, personName,
  88. number, locale);
  89. helper.setCurrentBillid(personInfo.getId().toString());
  90. DynamicModelInfo model = helper.convertRowToDynamicModel(row);
  91. HashMap<String, IObjectValue> saveModels = model.getSaveModelMap();
  92. PersonInfo person = (PersonInfo) saveModels.get("com.kingdee.eas.basedata.person.app.Person");
  93. String permItemId = this.getPermItemId();
  94. PersonDataSourceImportUtils.checkPersonLeffdt(row);
  95. PersonDataSourceImportUtils.calculateSocialServiceYears(ctx, saveModels);
  96. PersonDataSourceImportUtils.checkProjectExperience(saveModels);
  97. PersonDataSourceImportUtils.checkPersonWorkExp(saveModels);
  98. PersonDataSourceImportUtils.checkPersonRewardPunish(saveModels);
  99. PersonDataSourceImportUtils.validateDate(saveModels);
  100. PersonDataSourceImportUtils.checkPersonBasicInformation(ctx, this.personLocalInstance,
  101. this.AffairBizCheckFacadeLocalInstance, this.PersonOtherInfoLocalInstance, saveModels, row, permItemId,
  102. setBirthdayByIdCard, this.className);
  103. PersonDataSourceImportUtils.setPersonContactMethodInfo(saveModels, row);
  104. PersonDataSourceImportUtils.verifyAndCheckMobileAndEmail(ctx, saveModels, person.getId().toString());
  105. PersonDataSourceImportUtils.dealPersonBankRecord(ctx, saveModels, this.bankLocalInstance);
  106. PersonDataSourceImportUtils.setPersonModel(model);
  107. PersonDataSourceImportUtils.removePersonEntity(saveModels, this.isRemovePersonEntity);
  108. PersonDataSourceImportUtils.checkPersonCredentialsTypeModel(ctx, saveModels);
  109. this.PersonDataSourceOptFacadeLocalInstance.saveDataSource(saveModels);
  110. }
  111. }