编辑代码

import groovy.json.*
import java.text.SimpleDateFormat
class UnifiedResShell{
    int code;
    String message;
    Object data;
}
class ErrorUnifiedResShell{
    int code;
    String message;
}
class RecordInfo{
    String report_id;
    String his_order_id;
    String his_reg_no;
    Date exam_date;
    String name;
    String idcard;
    String gender;
    String age;
    Date birthday;
    String marriage;
    String mobile;
    String department;
    String enterprise_code;
    String enterprise_name;
    String group_name;
    int exam_status
}
class ReportInfo extends RecordInfo{
    ReportResult report_result;
    ReportDepartment[] report_department;
    ReportDetail[] report_detail;
    ReportDiagnosis[] report_diagnosis
}
class ReportResult{
    String report_doctor;
    Date report_time;
    String audit_doctor;
    Date audit_time;
    String result;
    String advice;
    String diagnosis
}
class ReportDepartment{
    String department_id;
    String department_name;
    String department_result;
    String exam_doctor;
    Date exam_time
}
class ReportDetail{
    String department_id;
    String department_name;
    String class_id;
    String class_name;
    String class_result;
    String item_id;
    String item_name;
    String item_result;
    String explain;
    String reference;
    String unit;
    String item_TIP;
    String exam_doctor;
    Date exam_time 
}
class ReportDiagnosis{
    String diagnosisno;
    String diagnosis;
    String advice
}
class ReportPdf{
    String report_id;
    String pdf_url;
    String pdf_base64
}

def paramConvert(param){
    def jsonSlurper = new JsonSlurper()
    if(param.code != "0"){
        return JsonOutput.toJson(new ErrorUnifiedResShell(code:0,message:param.message));
    }
    def method = param.data.methodName;
    def returnParam;
    switch(method){
        case "PE_REPORT_HISTORY":returnParam =  reportHistoryConvert(param);break;
        case "PE_REPORT_INFO":returnParam = reportInfoConvert(param);break;
        case "PE_REPORT_PDF_BASE64":returnParam = reportInfoConvert(param);break;
        case "PE_EXAM_INFO_BASE":returnParam = recordInfoConvert(param);break;
    }
    return returnParam;
}
def reportHistoryConvert(param){
    def records = param.data.records;
    def recordList = [];
    for(record in records){
        recordList.add(String.valueOf(record));
    }
    def unifiedResShell = new UnifiedResShell(code:1,message:param.message,data:recordList);
    return JsonOutput.toJson(unifiedResShell);
}
def reportPdfConvert(param){
    def data = param.data;
    def reportPdf = new ReportPdf(report_id:String.valueOf(data.checkRecordId),pdf_url:data.url,pdf_base64:data.base64)
    def unifiedResShell = new UnifiedResShell(code:1,message:param.message,data:reportPdf);
    return JsonOutput.toJson(unifiedResShell);
}
def reportInfoConvert(param){
    def sdf = new SimpleDateFormat("yyyy-MM-dd")
    def reports = param.data.unifiedReportInfoVOS;
    def reportsList = [];
    for(report in reports){
        def reportDepartmentList = [];
        for(reportDepartment in report.departmentInfo) {
            def reportDepartmentVO  = new ReportDepartment(department_id:reportDepartment.departmentId,
            department_name:reportDepartment.departmentName,department_result:reportDepartment.departmentResult,
            exam_doctor:reportDepartment.examDoctorName,exam_time:reportDepartment.examTime);
            reportDepartmentList.add(reportDepartmentVO);
        }
        def reportDetailList  = [];
        for(reportDetail in report.itemDetailInfo){
            def reportDetailVO = new ReportDetail(department_id:reportDetail.departmentId,department_name:reportDetail.departmentName,
            class_id:reportDetail.combinationItemId,class_name:reportDetail.combinationItemName,class_result:reportDetail.combinationItemConclusion,
            item_id:reportDetail.itemId,item_name:reportDetail.itemName,item_result:reportDetail.result,explain:"",
            reference:reportDetail.referenceRange,unit:reportDetail.unit,item_TIP:reportDetail.tips,exam_doctor:reportDetail.checkDoctor,
            exam_time:reportDetail.checkTime);
            reportDetailList.add(reportDetailVO);
        }
        def reportDiagnosisList = [];
        for(reportDiagnosis in report.unifiedDiagnosisInfo){
            def reportDiagnosisVO = new ReportDiagnosis(diagnosisno:reportDiagnosis.diagnosisId,diagnosis:reportDiagnosis.diagnosisName,
            advice:reportDiagnosis.diagnosisAdvice);
            reportDiagnosisList.add(reportDiagnosisVO);
        }
        def examDate = sdf.parse(report.arrangeDate);
        def birthdayTime = sdf.parse(report.birthday);
        def inspection = report.generalInspection;
        def reportResult = new ReportResult(report_doctor:inspection.inspectionDoctorName,report_time:inspection.inspectionDate,
        audit_doctor:inspection.examineDoctorName,audit_time:inspection.examineDate,result:inspection.inspectionShort,advice:inspection.advice)
        def reportVO = new ReportInfo(report_id:report.checkRecordId,his_order_id:report.checkNumber,his_reg_no:report.patientId,exam_date:examDate,name:report.name,
        idcard:report.idcard,gender:genderConvert(report.sex),age:report.age,birthday:birthdayTime,marriage:marriageConvert(report.marriage),mobile:report.phone,
        department:report.department,enterprise_code:report.companyId,enterprise_name:report.companyName,group_name:report.groupName,
        exam_status:checkupStateConvert(report.checkupState),report_result:reportResult,report_department:reportDepartmentList,report_detail:reportDetailList,report_diagnosis:reportDiagnosisList);
        reportsList.add(reportVO);
    }
    def unifiedResShell = new UnifiedResShell(code:1,message:param.message,data:reportsList);
    return JsonOutput.toJson(unifiedResShell);
}
def recordInfoConvert(param){
    def sdf = new SimpleDateFormat("yyyy-MM-dd")
    def recordList = []
    for(record in param.data.records){
        def examDate = sdf.parse(record.arrangeDate);
        def birthdayTime = sdf.parse(record.birthday);
        def recordVO = new RecordInfo(report_id:record.checkRecordId,his_order_id:record.checkNumber,his_reg_no:record.patientId,exam_date:examDate,name:record.name,
        idcard:record.idcard,gender:genderConvert(record.sex),age:record.age,birthday:birthdayTime,marriage:marriageConvert(record.marriage),mobile:record.phone,
        department:record.department,enterprise_code:record.companyId,enterprise_name:record.companyName,group_name:record.groupName,exam_status:checkupStateConvert(record.checkupState));
        recordList.add(recordVO);
    }
    def unifiedResShell = new UnifiedResShell(code:1,message:param.message,data:recordList);
    return JsonOutput.toJson(unifiedResShell);
}
def genderConvert(param){
    def genderStr = param;
    if(genderStr == "0"){
        genderStr = "3";
    }
    return genderStr;
}
def marriageConvert(param){
    def marriageInt = param;
    if(marriageInt == 0 || marriageInt == null){
        marriageInt = 3;
    }
    return marriageInt.toInteger();
}
def checkupStateConvert(param){
    def checkupState = param;
    if(checkupState >= 2 && checkupState <= 5){
        checkupState = 2;
    }
    if(checkupState == 6 || checkupState == 7){
        checkupState = 3;
    }
    if(checkupState == 8){
        checkupState = 4;
    }
    if(checkupState == 9){
        checkupState == 6;
    }
    return checkupState;
}