Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Mass Loading in USPS-R is overly complicated and impossible to maintain (uses groovy 'magic' and recursive reflection). This has made the loaders unable to handle specific scenarios users need as well as forced only concrete classes to be loaded in the same file. The service is build on query build and should be removed in favor of loaders for specific entity types. 

Entities that need to have spreadsheet loading in USPS

  • Compensation
  • Compensation Adjustment
  • Employee
  • Position
  • Payroll Items
  • Payroll Item Config
  • Payroll Item Employee Error Adjustments
  • Payroll Item Employer Error Adjustments
  • Payroll Accounts
  • Pay Distributions
  • Leaves?

 Current 'supported' types that should be removed

  • Absence / Attendance (Attendance Import should be used)
  • Concrete Payroll Item classes
  • Concrete Payroll Item Config classes
  • Non Contract compensations
  • Date Text Fields
  • Leaves?


The User Interface only displays a upload box and import buttons. We have a lot of white space to work with. Maybe we could display the require headers for each type right in the application? We could also return more robust results to the user after the file has been processed.


When we begin this epic we might want to look at OpenCSV to see if it will handle the loading for us

A new module should be created in USPS and all things related to mass loading should be kept there (unit tests, dtos, dependencies...etc)

Epic for Mass Loaders USPSR-4932

Employee Mass Loader

This section will detail all property headers for the Employee CSV file

CSV HeaderHeader Value (if specific input required)Required Header when CreatingRequired Header when Updating
number
YY
name.lastName
Y

N

name.firstName
YN
name.middleName
NN
name.suffix
NN
ssn
YN
legalName.lastName
NN
legalName.firstName
NN
legalName.middleName
NN
legalName.suffix
NN
address.street1
NN
address.street2
NN
address.city
NN
address.state
NN
address.postalCode
NN
address.foreignAddress

true

false

NN
address.province
NN
address.country
NN
birthDateMM/dd/YYYYNN
maritalStatus

Single

Married

Unstated

NN
race.white

true

false

NN
race.black

true

false

NN
race.asian

true

false

NN
race.americanIndianAlaskaNative

true

false

NN
race.nativeHawaiianPacificIslander

true

false

NN
race.hispanicLatinoOptions

HispanicOrLatino

NotHispanicOrLatino

Unknown

NN
hireDateMM/dd/YYYYNN
newHireReportedODJFS

true

false

NN
terminationDateMM/dd/YYYYNN
odjfsHireDateMM/dd/YYYYNN
osdiCode
NN
emailDirectDeposit

true

false

NN
reportToEmis

true

false

NN
archived

true

false

NN
odjfsReportable

true

false

NN
customFields.accredDistrictExperience.value
NN
customFields.authorizedExperience.value
NN
customFields.buildingExperience.value
NN
customFields.checkDistribution.value
NN
customFields.credentialID.value
NN
customFields.degreeType.value
NN
customFields.districtExperience.value
NN
customFields.ECEQualification.value
NN
customFields.eligibleForRetirement.value
NN
customFields.emisId.value
NN
customFields.gender.value
NN
customFields.handicapStatus.value
NN
customFields.homePhone.value
NN
customFields.homePhoneUnlisted.value
NN
customFields.lastEvaluation.value
NN
customFields.longTermIllness.value
NN
customFields.militaryExperience.value
NN
customFields.multilingual.value
NN
customFields.nextEvaluation.value
NN
customFields.nonCertificateEmployeeID.value
NN
customFields.nonOhioPrivateExperience.value
NN
customFields.nonOhioPublicExperience.value
NN
customFields.otherEmail.value
NN
customFields.ohioPrivateExperience.value
NN
customFields.ohioPublicExperience.value
NN
customFields.otherCredentials.value
NN
customFields.partTime.value
NN
customFields.payrollCode1.value
NN
customFields.payrollCode2.value
NN
customFields.payrollCode3.value
NN
customFields.payrollCode4.value
NN
customFields.payrollDate1.value
NN
customFields.payrollDate2.value
NN
customFields.payrollMoney1.value
NN
customFields.payrollMoney2.value
NN
customFields.payrollMoney3.value
NN
customFields.payrollMoney4.value
NN
customFields.payrollText1.value
NN
customFields.payrollText2.value
NN
customFields.personnelCode1.value
NN
customFields.personnelCode2.value
NN
customFields.personnelCode3.value
NN
customFields.personnelCode4.value
NN
customFields.personnelDate1.value
NN
customFields.personnelDate2.value
NN
customFields.personnelMoney1.value
NN
customFields.personnelMoney2.value
NN
customFields.personnelMoney3.value
NN
customFields.personnelMoney4.value
NN
customFields.personnelText1.value
NN
customFields.personnelText2.value
NN
customFields.primaryEmail.value
NN
customFields.primaryRace.value
NN
customFields.principalExperience.value
NN
customFields.purchasedExperience.value
NN
customFields.retireSystemExperience.value
NN
customFields.secondaryEmail.value
NN
customFields.semesterHours.value
NN
customFields.spouseFirstName.value
NN
customFields.subDays.value
NN
customFields.totalExperience.value
NN
customFields.tradeExperience.value
NN
customFields.workPhone.value
NN


Compensation Mass Loader

Compensation Adjustment Mass Loader

Position Mass Loader

Payroll Item Configuration Mass Loader

Payroll Item Mass Loader

Payroll Item Error Adjustment Loader

Payroll Accounts Mass Loader

Pay Distributions Mass Loader

Leaves Mass Loader

Adjustment Journal Mass Loader