conn = new Mongo('mongodb://sandmongots:Aistsmongo@10.232.155.131:25000/admin'); // conn_iot_partner_company = new Mongo('mongodb://serveradm:mypassword@10.138.42.23:8080/iot_partner_company'); // conn_iot_partner_workflow = new Mongo('mongodb://serveradm:mypassword@10.138.42.23:8080/iot_partner_workflow'); company = conn.getDB("iot_partner_company"); workflow = conn.getDB("iot_partner_workflow"); companies = company.companies.find() // let movedFileList = [] issueCompanies = [] while ( companies.hasNext() ) { companie = companies.next() // print(companie.files) let hasVatFile, hasCompanyPresentation, hasCompanyFile for (let file of companie.files ) { // vatFile, companyPresentaion, companyFile // print(file) if(file.fileValue === 'vatFile') { hasVatFile = true } else if(file.fileValue === 'CompanyProfilePresentation0') { hasCompanyPresentation = true } else if(file.fileValue === 'companyFile') { hasCompanyFile = true } } if(!hasVatFile || !hasCompanyPresentation || !hasCompanyFile) { issueCompanies.push(companie) } } // searchWorksheetList = [] for(let issueComp of issueCompanies) { for(let file of issueComp.files) { let searchWorksheet = { 'files.fileId' : file.fileId, 'supplierRegistration.taxId': issueComp.taxId } worksheets = workflow.worksheets.find(searchWorksheet).sort( { "updatedDate": -1 } ) // print(worksheets.size() > 0) if(worksheets.size() > 0) { // print(worksheets) let worksheet = worksheets[0] let expectWorksheet = [] let alreadyVatFile, alreadyCompanyProfilePresentation, alreadycompanyFile let vFile, presentFile, compFile for(let worksheetFile of worksheet.files) { if(worksheetFile.fileValue === 'vatFile') { if(!vFile) { vFile = worksheetFile } if(worksheetFile.isPass === true) { if(!alreadyVatFile) { expectWorksheet.push(worksheetFile) } alreadyVatFile = true } } else if(worksheetFile.fileValue === 'CompanyProfilePresentation0') { if(!presentFile) { presentFile = worksheetFile } if(worksheetFile.isPass === true) { if(!alreadyCompanyProfilePresentation) { expectWorksheet.push(worksheetFile) } alreadyCompanyProfilePresentation = true } } else if(worksheetFile.fileValue === 'companyFile') { if(!compFile) { compFile = worksheetFile } if(worksheetFile.isPass === true) { if(!alreadycompanyFile) { expectWorksheet.push(worksheetFile) } alreadycompanyFile = true } } } if(!alreadyVatFile) { if(vFile) { expectWorksheet.push(vFile) } } if(!alreadyCompanyProfilePresentation) { if(presentFile) { expectWorksheet.push(presentFile) } } if(!alreadycompanyFile) { if(compFile) { expectWorksheet.push(compFile) } } newFileList = issueComp.files fileNameForMoved = [] for(let ws of expectWorksheet) { hasFile = false for(let file2 of issueComp.files) { if(ws.fileId === file2.fileId) { hasFile = true break } } if(!hasFile) { fileNameForMoved.push(ws.fileName) newFileList.push(ws) } hasCompany = false for(let wsComp of worksheet.businessAgreement.companyFiles.companies) { if(wsComp === ws.fileId) { hasCompany = true break } // } if(!hasCompany) { worksheet.businessAgreement.companyFiles.companies.push(ws.fileId) } } // // update company and worksheet // print("update company where _id " + issueComp._id) printjson({$set: { files: newFileList }}) company.companies.update({_id: issueComp._id}, { '$set': { files: newFileList } }) print("update worksheet where _id " + worksheet._id) printjson({$set: { 'businessAgreement.companyFiles.companies': worksheet.businessAgreement.companyFiles.companies }}) workflow.worksheets.update({_id: worksheet._id}, { '$set': {'businessAgreement.companyFiles.companies' : worksheet.businessAgreement.companyFiles.companies} }) printjson(fileNameForMoved) for(let fileName of fileNameForMoved) { company.movedFiles.insert({ src: `/workflows/worksheets/${worksheet._id}/files/${fileName}`, dest: `/companies/${worksheet.supplierRegistration.taxId}/${fileName}` }) } break; } } }