@isTest
private class eSignHospitalConfirmControllerTest {

    @TestSetup
    static void makeData(){
        List<String> strList= new List<String>();
        strList.add('Document');
        TestDataUtility.CreatePIPolicyConfigurations(strList);
    }
    
    static testMethod void testMethod1() {
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectCo.size() == 0) {
            return;
        }
        List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科'];
        if (rectSct.size() == 0) {
            return;
        }
        List<RecordType> rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc];
        if (rectDpt.size() == 0) {
            return;
        }
         List<RecordType> rectAs = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Asset' and Name = '备品'];
        if (rectAs.size() == 0) {
            return;
        }

     
        // insert hospital
        Account company1 = new Account();
        company1.RecordTypeId = rectCo[0].Id;
        company1.Name = '病院テスト1';
        company1.OCM_man_province_txt__c = '江西';
        List<Account> hps = new Account[]{company1};
        insert hps;
          
        List<Account> dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = :company1.Id order by Department_Class_Label__c];
        
        Account depart1 = new Account();
        depart1.RecordTypeId = rectDpt[0].Id;
        depart1.Name         = '*';
        depart1.Department_Name__c  = '診療科1';
        depart1.ParentId            = dc1s[0].Id;
        depart1.Department_Class__c = dc1s[0].Id;
        depart1.Hospital__c         = company1.Id;
        depart1.OCM_man_province_txt__c = '江西';
        
        insert new Account[] {depart1};

        List<Product2> prdList = new List<Product2>();
        Product2 prd1 = new Product2();
        prd1.ProductCode_Ext__c     = 'HistoryPrd1';
        prd1.ProductCode            = 'HistoryPrd1';
        prd1.Repair_Product_Code__c = 'HistoryPrd1_RP';
        prd1.Name                   = 'HistoryPrd1';
        prd1.Manual_Entry__c        = false;
        prd1.Extend_new_product_gurantee__c = true;
        prd1.Extend_Gurantee_Start__c = Date.today().addDays(-60);
        prd1.Extend_Gurantee_End__c = Date.today().addDays(60);
        prdList.add(prd1);
        insert prdList;
    
        Asset ast = new Asset();

        ast.RecordTypeId = rectAs[0].Id;
        ast.SerialNumber = 'abcdefg';
        ast.Name = '测试资产1';
        ast.AccountId              = depart1.Id;
        ast.Department_Class__c    = dc1s[0].Id;
        ast.Hospital__c            = company1.Id;
        ast.Product2Id             = prd1.Id;
        ast.Guarantee_period_for_products__c = Date.today();
        ast.InstallDate                      = Date.today();
        ast.Manage_type__c = '个体管理';
        ast.FirstApproveDate_old__c = Date.today().addDays(-30);

        Oly_TriggerHandler.bypass('AssetHandler');

        insert ast;
        
        Asset ast1 = [select RecordTypeID__c from Asset where Id =: ast.Id];
        
        String RecordTypeID = ast1.RecordTypeID__c;
           
        System.assertEquals(RecordTypeID , ast.RecordTypeId);

        RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ];
        Opportunity opp = new Opportunity(
               Name='testOpp1',
               StageName='引合',
               CloseDate=Date.today(),
               AccountId=depart1.Id,
               Sales_Root__c = '販売店',
               Competitor__c ='A',
               Click_Close_Date__c = null,
               RecordType = rectOpp
        );
        insert opp;

        //注残
        Statu_Achievements__c Sac = new Statu_Achievements__c(
            name = 'zhucan_one',
            Opportunity__c = opp.id,
            DeliveryDate__c = Date.today(),
            ContractNO__c = 'ContractNO1',
            ContractAmount__c = 1000
        );
        insert Sac;

        //新建电子签收单
    	eSignForm__c eSignForm = new eSignForm__c();
    	eSignForm.Statu_Achievements__c = Sac.Id;
    	eSignForm.Name = '::测试电子签收单';
    	eSignForm.DNName__c = '112233';

    	insert eSignForm;

        eSignFormEntry__c eSignFormEntry1 = new eSignFormEntry__c();
        eSignFormEntry1.Name = '::电子签收单录入表1';
        eSignFormEntry1.eSignForm__c = eSignForm.Id;
        eSignFormEntry1.entryType__c = '医院收货';
        
        insert eSignFormEntry1;

    	// eSignFormEntry__c eSignFormEntry2 = new eSignFormEntry__c();
    	// eSignFormEntry2.Name = '::电子签收单录入表2';
    	// eSignFormEntry2.eSignForm__c = eSignForm.Id;
    	// eSignFormEntry2.entryType__c = '医院收货';
     //    eSignFormEntry2.IsSubmit__c = true;
    	// // eSignFormEntry2.createdDate = Date.today().addDays(-2);
    	// insert eSignFormEntry2;


        //新建电子签收单明细
        eSignFormLineItem__c eSignFormLineItem = new eSignFormLineItem__c();
        eSignFormLineItem.Name = '::电子签收单明细';
        eSignFormLineItem.eSignForm__c = eSignForm.Id;
        eSignFormLineItem.HPGoodStatus__c = '完好';

        insert eSignFormLineItem;

        //新建电子签收单明细录入表

        eSignFormLineItemEntry__c eSignFormLineItemEntry1 = new eSignFormLineItemEntry__c();
        eSignFormLineItemEntry1.Name = '::电子签收单明细录入1';
        eSignFormLineItemEntry1.eSignFormEntry__c =eSignFormEntry1.Id;
        eSignFormLineItemEntry1.eSignFormLineItem__c = eSignFormLineItem.Id;
        eSignFormLineItemEntry1.HPGoodStatus__c = '完好';

        insert eSignFormLineItemEntry1;

        // eSignFormLineItemEntry__c eSignFormLineItemEntry2 = new eSignFormLineItemEntry__c();
        // eSignFormLineItemEntry2.Name = '::电子签收单明细录入2';
        // eSignFormLineItemEntry2.eSignFormEntry__c =eSignFormEntry2.Id;
        // eSignFormLineItemEntry2.eSignFormLineItem__c = eSignFormLineItem.Id;

        // insert eSignFormLineItemEntry2;

        eSignHospitalConfirmController.geteSigns('112233');
        eSignHospitalConfirmController.saveeSignFormEntry(eSignHospitalConfirmController.geteSigns('112233').eSignFormLineItems,eSignForm,'医院确认',true);
        // list<Attachment> attachmentList = new list<Attachment>();
        // Attachment attach=new Attachment();     
        // attach.Name='Unit Test Attachment';
        // Blob bodyBlob=Blob.valueOf('Unit Test Attachment Body');
        // attach.body=bodyBlob;
        // attach.parentId=eSignForm.id;

        // attachmentList.add(attach);

        // // insert attach;
        // Attachment attach1=new Attachment();     
        // attach1.Name='Unit Test Attachment';
        // Blob bodyBlob1=Blob.valueOf('Unit Test Attachment Body');
        // attach1.body=bodyBlob1;
        // attach1.parentId=eSignForm.id;

        // insert attach1;

        // String fileId = String.valueOf(attach1.Id);
        // String body1 = '%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj%2F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj%2FwAARCALuAegDASIAAhEBAxEB%2F8QAHAAAAgIDAQEAAAAAAAAAAAAAAwQCBQABBgcI%2F8QARRAAAgEDAwIFAgMGBAUCBQQDAQIDAAQRBRIhMUEGEyJRYTJxFIGRByNCUqHBFTOx0SRDYuHwcvEWNFNjggglc5ImotL%2FxAAbAQACAwEBAQAAAAAAAAAAAAADBAECBQAGB%2F%2FEADMRAAICAQQCAQQABQMEAwEAAAECAAMRBBIhMRNBIgUyUWEUI0JxgQYzkRWhsdEkUsHw%2F9oADAMBAAIRAxEAPwDwgQg8kc1IRjB4o7DHSgvKFB96yASZ63EE6gGtNgLQXnzmoebRNsuqD3Dq3fijxeUxxICM9xSQkrYkqCpjAWvEsmg2epG3LS7DFBSUjuRRBKCfVzUYIg2rB%2B2SNDbk0XaGwVPFZ5RLVAIlFqdzgCBjiMj9Mir%2By%2FcxbAcA9ar7WMJTikk0vc27iel%2BmaYacbj3Gi%2FtWg5oSDJwaOI%2BKXOBN5SzcyPWoScjFEUgVAjJzXCQ4yJX3ScfalRLtcU9fEAGqgHLinKxlZ53WN47MLOktZAyimQaq7J%2BFqwVvVSbrgz0elu3IMyx09lIZWPGanBA9zcBYslc0vp8RmkIGcZrq7CzMUWYkOcdaSusFf8AeZeqYmwzECwQCKPt9VRSwlvXywOAMCrfS7GMzBZCMtz96NcEWdyQhDLntWebjkhYpu9SrbS4oWAlUEjGasLq0S3tYXjwEbkgVHU7xLpt4GwgAE%2FFINdeYqqrF1XAA%2BKgB2wTK5JwZcWs6S6e0Z459P5UsLxrJ2YHlhtwPbOaRjufMhm2cMvCj5qOmDiW4uSHK8bakVAA5ltpkptRXznk6O%2Bc0lK5mcFY%2BTzk1jKnmPKw9Lsdo9qNKRDHu%2BOBR1AU8CGCcRc%2BYqkSPge1QtrX8Q4YjEa1KOF5m3SHC1bJEItIR1%2BqViF%2BwqWfbwJJAGBK1rYxNgjMZokatCfMX1KfTzVjdQs8EBxjfHu%2FMCkmV4Yxu5QnkVG%2FcJHBGYWO5COApKGslK7t7chjurVxGmPMUZUgUxaWayyLBK21CCyt80I4HMqwwMyN9cJdOpcYUDH59TSt9psPkI6kbn6imri3ELPFI4LDkUi%2B7AAY%2FGalAeCsjuVsmkYQuPfBqK2p27SMYq4M5FsUK985FbiCSLzjAFENje4VOJWKjIqqwyCMUheRukLRA%2Bhj0q%2FeISRMUxlRwKq7iNuN4980Suzmc6gymSHfHtHuSKXltQC27r1NWU6GMgp%2FShFS4LEcmnFcjmKWVxRrXyrfB6kZNZZQAcnjn%2BlWU0W6MHHWpW1rvyahrPjBbB7kraZrWUNH0PWrGO9jnk2TYwOi%2FNJvDtiY%2FwAtJyIQiPnDdTQcB%2BZY5lhfxLKSyZ%2BB%2FvVK6BXYNyadiuGTKk9e9bEYnbj8zVkJSQTnuLw2%2Begp%2B2tCZBxTFnb%2FABxVrDCkSl5MKqjJJ7UCy4ngQbj8QUNphMtwO9VGtatHagw2xDS9Cewoeu6%2F5gaCxOEHDP71zBOSSxyT3o%2Bn0x%2B%2ByOUaPd8rJtsvIXc7mJyTUsjHNDLYqO%2BnsZmmGVBgSbyYWk5W5NEduKUlYk0VFiWpuMhI9D9TdKMkQ6saIAAeOKLuA6md42c5MhFGf4qyi1lUJzGlQKMQNzKFHB5qtdyzVAyFzk1HdzTapieZ3CT61o8VHdWZq2J27MkDUqgKnnNQZZTJg5xUhQgampBFVMKphVcqRg0ylyMeoc0iWxWg1QVBhUvNZ4lnHOueKeikBHFUKueKPHOVI5oLVZmjp9eV7nQQ4LUfNVllchiBT2%2FFJupBxPR6a9XTImSDnionhD71MNnrS88gANcozxLWsFUtK7UpeAKSjGWqN3Jvm%2B1EgHIp8Das8i9vmuJlnbAjaafBpSBfRTAPppN%2BTPS6b4LOq8IwrNHdk43LgjNdLaXy2zOCA2egFcn4RR5GuNrbUwN1dNP5dqilRkn3rG1K5sIil3ycyQeZ5A30IDxioS3B5VMs2etL%2BfLccAHmnra1EMMk0v1AHFBwB3KbQO5SziWWXZuOOM0a2RoUKpjoW%2FKiRr%2B7Zv4j1ocq7yvOD0%2FKjbs8S%2B2AjLQFpI%2FUpO7NDgvfLnLcndwRTEOFk2qCCp71qRI%2FxzIowGOR8cVcEc5lB3iEjxcTFyCsfUCtzjfcxoemN1MwLC0oj34PQYpW45nBTnb6TQweYVYWZmjG3GB9P6jNORkS2NvESd6MSPtSMCtM0Yb1eZ0%2BD0rp44YbGWCFVWWYnLZ7DFCsbbge4OxsGJ3szbIkRMIiCPJHXPWkLiVJpXRB6QSoFX0zQzW5kRQJEba69vvXOSqIJQy5Yf8Aaq0nPBkIMiG05hLaTQSDkcA0J5Hd1EpCBCKNYKEhZ5Mqp%2FqaFexrM%2FmHgHpVxgsfxCbcCL6k7S3pGeFACn3FCnmMsaKF9SdT8VYPapGsYPLsu7J7Clp4GiXehyM5IogYHAkLzFQ7R8ZyPY1sSIehKmgS73jaQZzmtRqW5q5AhSojkcjQ%2FwDUDUPMErMCB15%2BKExdOc5FaBVz7NVQsrgiQktlMhUdKD%2BG5IphCyyNu5BopdC%2FFXDMJVlibLtTaaD5rxZ296dlYYKnv3pWaPMWR1zRFbPBgDXIMzcAnINCfLSFSeooLSsGwakXPnJ89aIFxBkTFTJyexxTlmmHK%2B4oIGXI7ZqxtgqDzHIAA5Jodh9CAb9R%2BDy4YjLKQqqMmuV1zWXvXMcLFLcdB%2FNQ9a1R7uQxREiAHp%2FN8mqdzzjNH0%2BmCfJu4%2Fp6NvybuYWqDPjNRd8CgM9OhMwr3AQpfmsBzQd4qSMCauVgRaDNyHaOaUeUA8UO6uC8hVOgoaxsRzRlTA5mbdqS7YQQnnEnvRUkUDLHmoRwcVI24Irjt6kILQMyRu46ygtae1ZXYSQW1P4lSGqQOaBk1IMadxPNiyGrYqAPFbBquIVWkw2KkDmh5rY4qCIQNCc1tTUQRWVXEIGkzWq1mt5qCJbOZsHFS3VCt10sGh4ZSjAg1eQSiWBWHXvXOg4p7Trgq%2B0n0nigXV7hmaf0%2FVmt9p6MuVekL%2BbCk0cnBxVVqcnIFBpT5TS%2BoagrSYmDuYk09a8mkI%2BtP2vBpqzqYWj5YS4t%2FpqbcZqFv0ojDLVnnuevT7BOj8LqVtp2BxkirrzGuWXzDwvAqp8OjbYkYySxq0jiY4C8Z7msu85cxcy0REUAqOBxUL2YmLys8k4oCSSQt5L84PNTUGSVpD0HSlduOZQCR8tvLKrngZNV8YZrkKTyvWrDzts6Rno55qN2qQauBwqtGOe2TVlJHEk8RGSXZMzuMEnnnisWLzdU2xsGwpk4%2FXFP3enR3FqQrEOAGHt9qBp9uli8kzby5G0cdAQaIHBH7lCQRx3CSxJhXtzggE5Pt1oVuCoVmBJbtRXlMnlpEowo2kDvRCo%2FdhiAdoxjpxVMkDEsuRwYrBMYLk%2Fyq3%2Fer%2B2t%2FwAZK03mHJw457HqKoJIn3MqAMGOf60O3acO4jZgI1JODjArmTeODOsTPM6Ag2QlO7Kn0n5Jqstybi6RH%2BjdnApSFp55NrFn%2Fjwf9ad0%2BN%2FxgYgqozzVCNoI9wqrhcyyuoRNPHbLwm7BNVmoB4HhU8gen86tLgn8RCz5VBzn3NIalB%2BIs2SJ%2FWkhce5qlZAIBnIeR%2BJG6uN6pGwIdQASandyrNZI4G1skE%2FFIafZXEtw7zyelV5Oeppq7jEdljd6vMH50XgMAJxVdwAktN078VA%2B447CqyZWiuTGRjYcGr21nFvZytnnJAH3qpjJe9M0w3KxyahCckmVw2SYnMTs9PStwMjEF%2BDTF2qh3Ef0nkUCKFpXCIMnFG3DE7HuFaF0RnzlaW2knKdasH8yKJ4pB2zzSNrIUl4AOfeuViRmVPUBI54z1oe5j9qfnjExKsu1qQlUxuVbtRUYEThz3F7iPd6l%2FOhxAmVSaYU4z81MRAOpFE3YGIJ6%2Fc3s2%2BqqzVL4sghRsIPqPvTOr3a28G0MN7f0FcjcXbO3H00zRQW%2BRi2Vrbc0bkmAOFoEk1KFzjmhs5p5a5WzWH1DvL80BpeaEzUJnooWIWakxkyk96Omdh560jHyQaO0uBiuKzq7uMtJiNUGTya20gA4FL7%2FAJrW6u2%2Fmd5gOFEMs5z1oqy80lU06VxUGcl7Ax5Jx3rKSJOayo2CGGsYSkJOa2DQw2TzUh1p%2BePDZhQxqatmgjrRF61UwysYQGp5yOKFUl6VWHUyYNSBqHapCohVaTrKxaw9aoTCibHSpVFakaiWEytxMVYGo5qVQRLKSDkS4STdGj%2FkaqtRbM%2FHSnLJ90bIarrps3BqlS4aPa27fSv7m4etWFuPUKQgHqqxgHqFRaZ2hHUtbccUTHqqMA9NEQZkFZ5PM9YBisTvvCmnh9MV5B6CCaeu7dEZccY7UTSJAukWUY4AUE%2FOTQb2bN3IwGQDWESzWEmZ6ZYnMDIC0hcnOec%2FbpW87YVC9P71KAFh8GoT5iyhHpard8S4PqKXJdZ4nUHKnP8AWmL9PxkzMnTcNvwO1WD2gmtlmjGR147HuKTKnzMqBuC5wP4h8fIqFfPU4W';
        // eSignHospitalConfirmController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg','');



        Test.startTest();
        List<ContentVersion> versionList = new List<ContentVersion>();
        ContentVersion version = new ContentVersion();
        Blob bodyBlob=Blob.valueOf('Unit Test Attachment Body');
        version.VersionData = bodyBlob;
        version.Title = 'Unit Test Attachment';
        version.PathOnClient = 'Unit Test Attachment.txt';
        version.ContentLocation = 's';
        versionList.add(version);
        insert versionList;
        version = [select Id,ContentDocumentId from ContentVersion where Id =: version.Id];
        String fileId = String.valueOf(version.ContentDocumentId);
        String body1 = '%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj%2F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj%2FwAARCALuAegDASIAAhEBAxEB%2F8QAHAAAAgIDAQEAAAAAAAAAAAAAAwQCBQABBgcI%2F8QARRAAAgEDAwIFAgMGBAUCBQQDAQIDAAQRBRIhMUEGEyJRYTJxFIGRByNCUqHBFTOx0SRDYuHwcvEWNFNjggglc5ImotL%2FxAAbAQACAwEBAQAAAAAAAAAAAAADBAECBQAGB%2F%2FEADMRAAICAQQCAQQABQMEAwEAAAECAAMRBBIhMRNBIgUyUWEUI0JxgQYzkRWhsdEkUsHw%2F9oADAMBAAIRAxEAPwDwgQg8kc1IRjB4o7DHSgvKFB96yASZ63EE6gGtNgLQXnzmoebRNsuqD3Dq3fijxeUxxICM9xSQkrYkqCpjAWvEsmg2epG3LS7DFBSUjuRRBKCfVzUYIg2rB%2B2SNDbk0XaGwVPFZ5RLVAIlFqdzgCBjiMj9Mir%2By%2FcxbAcA9ar7WMJTikk0vc27iel%2BmaYacbj3Gi%2FtWg5oSDJwaOI%2BKXOBN5SzcyPWoScjFEUgVAjJzXCQ4yJX3ScfalRLtcU9fEAGqgHLinKxlZ53WN47MLOktZAyimQaq7J%2BFqwVvVSbrgz0elu3IMyx09lIZWPGanBA9zcBYslc0vp8RmkIGcZrq7CzMUWYkOcdaSusFf8AeZeqYmwzECwQCKPt9VRSwlvXywOAMCrfS7GMzBZCMtz96NcEWdyQhDLntWebjkhYpu9SrbS4oWAlUEjGasLq0S3tYXjwEbkgVHU7xLpt4GwgAE%2FFINdeYqqrF1XAA%2BKgB2wTK5JwZcWs6S6e0Z459P5UsLxrJ2YHlhtwPbOaRjufMhm2cMvCj5qOmDiW4uSHK8bakVAA5ltpkptRXznk6O%2Bc0lK5mcFY%2BTzk1jKnmPKw9Lsdo9qNKRDHu%2BOBR1AU8CGCcRc%2BYqkSPge1QtrX8Q4YjEa1KOF5m3SHC1bJEItIR1%2BqViF%2BwqWfbwJJAGBK1rYxNgjMZokatCfMX1KfTzVjdQs8EBxjfHu%2FMCkmV4Yxu5QnkVG%2FcJHBGYWO5COApKGslK7t7chjurVxGmPMUZUgUxaWayyLBK21CCyt80I4HMqwwMyN9cJdOpcYUDH59TSt9psPkI6kbn6imri3ELPFI4LDkUi%2B7AAY%2FGalAeCsjuVsmkYQuPfBqK2p27SMYq4M5FsUK985FbiCSLzjAFENje4VOJWKjIqqwyCMUheRukLRA%2Bhj0q%2FeISRMUxlRwKq7iNuN4980Suzmc6gymSHfHtHuSKXltQC27r1NWU6GMgp%2FShFS4LEcmnFcjmKWVxRrXyrfB6kZNZZQAcnjn%2BlWU0W6MHHWpW1rvyahrPjBbB7kraZrWUNH0PWrGO9jnk2TYwOi%2FNJvDtiY%2FwAtJyIQiPnDdTQcB%2BZY5lhfxLKSyZ%2BB%2FvVK6BXYNyadiuGTKk9e9bEYnbj8zVkJSQTnuLw2%2Begp%2B2tCZBxTFnb%2FABxVrDCkSl5MKqjJJ7UCy4ngQbj8QUNphMtwO9VGtatHagw2xDS9Cewoeu6%2F5gaCxOEHDP71zBOSSxyT3o%2Bn0x%2B%2ByOUaPd8rJtsvIXc7mJyTUsjHNDLYqO%2BnsZmmGVBgSbyYWk5W5NEduKUlYk0VFiWpuMhI9D9TdKMkQ6saIAAeOKLuA6md42c5MhFGf4qyi1lUJzGlQKMQNzKFHB5qtdyzVAyFzk1HdzTapieZ3CT61o8VHdWZq2J27MkDUqgKnnNQZZTJg5xUhQgampBFVMKphVcqRg0ylyMeoc0iWxWg1QVBhUvNZ4lnHOueKeikBHFUKueKPHOVI5oLVZmjp9eV7nQQ4LUfNVllchiBT2%2FFJupBxPR6a9XTImSDnionhD71MNnrS88gANcozxLWsFUtK7UpeAKSjGWqN3Jvm%2B1EgHIp8Das8i9vmuJlnbAjaafBpSBfRTAPppN%2BTPS6b4LOq8IwrNHdk43LgjNdLaXy2zOCA2egFcn4RR5GuNrbUwN1dNP5dqilRkn3rG1K5sIil3ycyQeZ5A30IDxioS3B5VMs2etL%2BfLccAHmnra1EMMk0v1AHFBwB3KbQO5SziWWXZuOOM0a2RoUKpjoW%2FKiRr%2B7Zv4j1ocq7yvOD0%2FKjbs8S%2B2AjLQFpI%2FUpO7NDgvfLnLcndwRTEOFk2qCCp71qRI%2FxzIowGOR8cVcEc5lB3iEjxcTFyCsfUCtzjfcxoemN1MwLC0oj34PQYpW45nBTnb6TQweYVYWZmjG3GB9P6jNORkS2NvESd6MSPtSMCtM0Yb1eZ0%2BD0rp44YbGWCFVWWYnLZ7DFCsbbge4OxsGJ3szbIkRMIiCPJHXPWkLiVJpXRB6QSoFX0zQzW5kRQJEba69vvXOSqIJQy5Yf8Aaq0nPBkIMiG05hLaTQSDkcA0J5Hd1EpCBCKNYKEhZ5Mqp%2FqaFexrM%2FmHgHpVxgsfxCbcCL6k7S3pGeFACn3FCnmMsaKF9SdT8VYPapGsYPLsu7J7Clp4GiXehyM5IogYHAkLzFQ7R8ZyPY1sSIehKmgS73jaQZzmtRqW5q5AhSojkcjQ%2FwDUDUPMErMCB15%2BKExdOc5FaBVz7NVQsrgiQktlMhUdKD%2BG5IphCyyNu5BopdC%2FFXDMJVlibLtTaaD5rxZ296dlYYKnv3pWaPMWR1zRFbPBgDXIMzcAnINCfLSFSeooLSsGwakXPnJ89aIFxBkTFTJyexxTlmmHK%2B4oIGXI7ZqxtgqDzHIAA5Jodh9CAb9R%2BDy4YjLKQqqMmuV1zWXvXMcLFLcdB%2FNQ9a1R7uQxREiAHp%2FN8mqdzzjNH0%2BmCfJu4%2Fp6NvybuYWqDPjNRd8CgM9OhMwr3AQpfmsBzQd4qSMCauVgRaDNyHaOaUeUA8UO6uC8hVOgoaxsRzRlTA5mbdqS7YQQnnEnvRUkUDLHmoRwcVI24Irjt6kILQMyRu46ygtae1ZXYSQW1P4lSGqQOaBk1IMadxPNiyGrYqAPFbBquIVWkw2KkDmh5rY4qCIQNCc1tTUQRWVXEIGkzWq1mt5qCJbOZsHFS3VCt10sGh4ZSjAg1eQSiWBWHXvXOg4p7Trgq%2B0n0nigXV7hmaf0%2FVmt9p6MuVekL%2BbCk0cnBxVVqcnIFBpT5TS%2BoagrSYmDuYk09a8mkI%2BtP2vBpqzqYWj5YS4t%2FpqbcZqFv0ojDLVnnuevT7BOj8LqVtp2BxkirrzGuWXzDwvAqp8OjbYkYySxq0jiY4C8Z7msu85cxcy0REUAqOBxUL2YmLys8k4oCSSQt5L84PNTUGSVpD0HSlduOZQCR8tvLKrngZNV8YZrkKTyvWrDzts6Rno55qN2qQauBwqtGOe2TVlJHEk8RGSXZMzuMEnnnisWLzdU2xsGwpk4%2FXFP3enR3FqQrEOAGHt9qBp9uli8kzby5G0cdAQaIHBH7lCQRx3CSxJhXtzggE5Pt1oVuCoVmBJbtRXlMnlpEowo2kDvRCo%2FdhiAdoxjpxVMkDEsuRwYrBMYLk%2Fyq3%2Fer%2B2t%2FwAZK03mHJw457HqKoJIn3MqAMGOf60O3acO4jZgI1JODjArmTeODOsTPM6Ag2QlO7Kn0n5Jqstybi6RH%2BjdnApSFp55NrFn%2Fjwf9ad0%2BN%2FxgYgqozzVCNoI9wqrhcyyuoRNPHbLwm7BNVmoB4HhU8gen86tLgn8RCz5VBzn3NIalB%2BIs2SJ%2FWkhce5qlZAIBnIeR%2BJG6uN6pGwIdQASandyrNZI4G1skE%2FFIafZXEtw7zyelV5Oeppq7jEdljd6vMH50XgMAJxVdwAktN078VA%2B447CqyZWiuTGRjYcGr21nFvZytnnJAH3qpjJe9M0w3KxyahCckmVw2SYnMTs9PStwMjEF%2BDTF2qh3Ef0nkUCKFpXCIMnFG3DE7HuFaF0RnzlaW2knKdasH8yKJ4pB2zzSNrIUl4AOfeuViRmVPUBI54z1oe5j9qfnjExKsu1qQlUxuVbtRUYEThz3F7iPd6l%2FOhxAmVSaYU4z81MRAOpFE3YGIJ6%2Fc3s2%2BqqzVL4sghRsIPqPvTOr3a28G0MN7f0FcjcXbO3H00zRQW%2BRi2Vrbc0bkmAOFoEk1KFzjmhs5p5a5WzWH1DvL80BpeaEzUJnooWIWakxkyk96Omdh560jHyQaO0uBiuKzq7uMtJiNUGTya20gA4FL7%2FAJrW6u2%2Fmd5gOFEMs5z1oqy80lU06VxUGcl7Ax5Jx3rKSJOayo2CGGsYSkJOa2DQw2TzUh1p%2BePDZhQxqatmgjrRF61UwysYQGp5yOKFUl6VWHUyYNSBqHapCohVaTrKxaw9aoTCibHSpVFakaiWEytxMVYGo5qVQRLKSDkS4STdGj%2FkaqtRbM%2FHSnLJ90bIarrps3BqlS4aPa27fSv7m4etWFuPUKQgHqqxgHqFRaZ2hHUtbccUTHqqMA9NEQZkFZ5PM9YBisTvvCmnh9MV5B6CCaeu7dEZccY7UTSJAukWUY4AUE%2FOTQb2bN3IwGQDWESzWEmZ6ZYnMDIC0hcnOec%2FbpW87YVC9P71KAFh8GoT5iyhHpard8S4PqKXJdZ4nUHKnP8AWmL9PxkzMnTcNvwO1WD2gmtlmjGR147HuKTKnzMqBuC5wP4h8fIqFfPU4W';
        eSignHospitalConfirmController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg','');
        eSignHospitalConfirmController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg',fileId);
        eSignHospitalConfirmController.deleteChunk(fileId);
        Test.stopTest();
        // eSignHospitalConfirmController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg',fileId);
        // eSignHospitalConfirmController.deleteChunk(attach1.Id);
    }

    static testMethod void testMethod2() {
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectCo.size() == 0) {
            return;
        }
        List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科'];
        if (rectSct.size() == 0) {
            return;
        }
        List<RecordType> rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc];
        if (rectDpt.size() == 0) {
            return;
        }
         List<RecordType> rectAs = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Asset' and Name = '备品'];
        if (rectAs.size() == 0) {
            return;
        }

     
        // insert hospital
        Account company1 = new Account();
        company1.RecordTypeId = rectCo[0].Id;
        company1.Name = '病院テスト1';
        company1.OCM_man_province_txt__c = '江西';
        List<Account> hps = new Account[]{company1};
        insert hps;
          
        List<Account> dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = :company1.Id order by Department_Class_Label__c];
        
        Account depart1 = new Account();
        depart1.RecordTypeId = rectDpt[0].Id;
        depart1.Name         = '*';
        depart1.Department_Name__c  = '診療科1';
        depart1.ParentId            = dc1s[0].Id;
        depart1.Department_Class__c = dc1s[0].Id;
        depart1.Hospital__c         = company1.Id;
        depart1.OCM_man_province_txt__c = '江西';
        
        insert new Account[] {depart1};

        List<Product2> prdList = new List<Product2>();
        Product2 prd1 = new Product2();
        prd1.ProductCode_Ext__c     = 'HistoryPrd1';
        prd1.ProductCode            = 'HistoryPrd1';
        prd1.Repair_Product_Code__c = 'HistoryPrd1_RP';
        prd1.Name                   = 'HistoryPrd1';
        prd1.Manual_Entry__c        = false;
        prd1.Extend_new_product_gurantee__c = true;
        prd1.Extend_Gurantee_Start__c = Date.today().addDays(-60);
        prd1.Extend_Gurantee_End__c = Date.today().addDays(60);
        prdList.add(prd1);
        insert prdList;
    
        Asset ast = new Asset();

        ast.RecordTypeId = rectAs[0].Id;
        ast.SerialNumber = 'abcdefg';
        ast.Name = '测试资产1';
        ast.AccountId              = depart1.Id;
        ast.Department_Class__c    = dc1s[0].Id;
        ast.Hospital__c            = company1.Id;
        ast.Product2Id             = prd1.Id;
        ast.Guarantee_period_for_products__c = Date.today();
        ast.InstallDate                      = Date.today();
        ast.Manage_type__c = '个体管理';
        ast.FirstApproveDate_old__c = Date.today().addDays(-30);

        Oly_TriggerHandler.bypass('AssetHandler');

        insert ast;
        
        Asset ast1 = [select RecordTypeID__c from Asset where Id =: ast.Id];
        
        String RecordTypeID = ast1.RecordTypeID__c;
           
        System.assertEquals(RecordTypeID , ast.RecordTypeId);

        RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ];
        Opportunity opp = new Opportunity(
               Name='testOpp1',
               StageName='引合',
               CloseDate=Date.today(),
               AccountId=depart1.Id,
               Sales_Root__c = '販売店',
               Competitor__c ='A',
               Click_Close_Date__c = null,
               RecordType = rectOpp
        );
        insert opp;

        //注残
        Statu_Achievements__c Sac = new Statu_Achievements__c(
            name = 'zhucan_one',
            Opportunity__c = opp.id,
            DeliveryDate__c = Date.today(),
            ContractNO__c = 'ContractNO1',
            ContractAmount__c = 1000
        );
        insert Sac;

        //新建电子签收单
    	eSignForm__c eSignForm = new eSignForm__c();
    	eSignForm.Statu_Achievements__c = Sac.Id;
    	eSignForm.Name = '::测试电子签收单';
    	eSignForm.DNName__c = '112233';

    	insert eSignForm;

     //    eSignFormEntry__c eSignFormEntry1 = new eSignFormEntry__c();
     //    eSignFormEntry1.Name = '::电子签收单录入表1';
     //    eSignFormEntry1.eSignForm__c = eSignForm.Id;
     //    eSignFormEntry1.entryType__c = '经销商收货';
        
     //    insert eSignFormEntry1;

    	// eSignFormEntry__c eSignFormEntry2 = new eSignFormEntry__c();
    	// eSignFormEntry2.Name = '::电子签收单录入表2';
    	// eSignFormEntry2.eSignForm__c = eSignForm.Id;
    	// eSignFormEntry2.entryType__c = '经销商收货';
     //    eSignFormEntry2.IsSubmit__c = true;
    	// // eSignFormEntry2.createdDate = Date.today().addDays(-2);
    	// insert eSignFormEntry2;


        //新建电子签收单明细
        eSignFormLineItem__c eSignFormLineItem = new eSignFormLineItem__c();
        eSignFormLineItem.Name = '::电子签收单明细';
        eSignFormLineItem.eSignForm__c = eSignForm.Id;
        eSignFormLineItem.HPGoodStatus__c = '完好';

        insert eSignFormLineItem;

        //新建电子签收单明细录入表

        // eSignFormLineItemEntry__c eSignFormLineItemEntry1 = new eSignFormLineItemEntry__c();
        // eSignFormLineItemEntry1.Name = '::电子签收单明细录入1';
        // eSignFormLineItemEntry1.eSignFormEntry__c =eSignFormEntry1.Id;
        // eSignFormLineItemEntry1.eSignFormLineItem__c = eSignFormLineItem.Id;

        // insert eSignFormLineItemEntry1;

        // eSignFormLineItemEntry__c eSignFormLineItemEntry2 = new eSignFormLineItemEntry__c();
        // eSignFormLineItemEntry2.Name = '::电子签收单明细录入2';
        // eSignFormLineItemEntry2.eSignFormEntry__c =eSignFormEntry2.Id;
        // eSignFormLineItemEntry2.eSignFormLineItem__c = eSignFormLineItem.Id;

        // insert eSignFormLineItemEntry2;

        eSignHospitalConfirmController.geteSigns('112233');
        eSignHospitalConfirmController.saveeSignFormEntry(eSignHospitalConfirmController.geteSigns('112233').eSignFormLineItems,eSignForm,'医院确认',true);
    }

    // static testMethod void testMethod3() {
    //     Test.startTest();
    //     eSignHospitalConfirmController.saveFile('1','2','3','4');
    //     Test.stopTest();
    // }

    // static testMethod void testMethod4() {
    //     Test.startTest();
    //     FileAddress__c FileName1 = new FileAddress__c();
    //     FileName1.FileName__c = 'ceshiyi1';
    //     FileName1.ViewLink__c = 'ceshiyi1';
    //     FileName1.ParentRecordId__c = '123456789';
    //     insert FileName1;
    //     eSignHospitalConfirmController.getFileds('123456789');
    //     Test.stopTest();
    // }

    // static testMethod void testMethod5() {
    //     Test.startTest();
    //     FileAddress__c FileName1 = new FileAddress__c();
    //     FileName1.FileName__c = 'ceshiyi1';
    //     FileName1.ViewLink__c = 'ceshiyi1';
    //     FileName1.ParentRecordId__c = '123456789';
    //     insert FileName1;
    //     eSignHospitalConfirmController.deleteFile(FileName1.Id);
    //     Test.stopTest();
    // }
}