一、案例代码
1)、动态set方法
private ReportDiagnosisSurgery setPatientDiagnosisProvide(ReportDiagnosisSurgery surgery, String itemCode, Object itemName) throws Exception {
Class classZ = Class.forName("com.kingseok.business.reportdiagnosissurgery.model.po.ReportDiagnosisSurgery");
Method method;
if (itemCode.contains("SurgeryDate")) {
method = classZ.getMethod("set" + itemCode, Date.class);
} else {
method = classZ.getMethod("set" + itemCode, String.class);
}
method.invoke(surgery, itemName);
return surgery;
}
2)、调用逻辑案例
private void addPatientDiagnosesAndOperates(List<PatientOut> patientOuts, List<ReportDiagnosisSurgery> reportDiagnosisSurgeries) throws Exception {
for (PatientOut patientOut : patientOuts) {
ReportDiagnosisSurgery surgery = new ReportDiagnosisSurgery();
surgery.setOrdinalNo(patientOut.getOrdinalNo());
List<PatientDiagnosis> patientDiagnoses = reportDiagnosisSurgeryDao.selectDiagnosisByOrdinalNo(patientOut.getOrdinalNo());
int diagnosesSize = patientDiagnoses.size()>6?6:patientDiagnoses.size();
for (int j = 0; j < diagnosesSize; j++) {
if(j==0){
setPatientDiagnosisProvide(surgery, "Icd", patientDiagnoses.get(j).getIcd());
setPatientDiagnosisProvide(surgery, "IcdName", patientDiagnoses.get(j).getDiagnosisName());
}else{
setPatientDiagnosisProvide(surgery, "Icd" + j , patientDiagnoses.get(j).getIcd());
setPatientDiagnosisProvide(surgery, "IcdName" + j, patientDiagnoses.get(j).getDiagnosisName());
}
}
List<PatientOperate> operates = reportDiagnosisSurgeryDao.selectSurgeryByOrdinalNo(patientOut.getOrdinalNo());
int operatesSize = operates.size();
for (int j = 0; j < operatesSize; j++) {
setPatientDiagnosisProvide(surgery, "SurgeryCode" + (j + 1), operates.get(j).getOperateCode());
setPatientDiagnosisProvide(surgery, "SurgeryName" + (j + 1), operates.get(j).getOperateName());
setPatientDiagnosisProvide(surgery, "SurgeryDate" + (j + 1), operates.get(j).getInputDate());
}
reportDiagnosisSurgeries.add(surgery);
}
}