public without sharing class TydelikeACController { public TydelikeAccount__c tya {get;set;} public TydelikeContact__c tyc {get;set;} public Account acc {get;set;} public String settyAcId {get;set;} public String settyCoId {get;set;} public Boolean settyof {get;set;} public Integer lineNum {get;set;} //报错及显示信息 public String errorMessage{get;set;} public String accId{get;set;} public String accountId{get;set;} public String accname {get;set;} //url public String baseUrl { get; set; } public String rtUrl { get; set; } //检索 public String tycontactname { get; set; } //联系人姓名 public String tycountname { get; set; } //客户姓名 public String tycountcity { get; set; } //客户的城市 // Bean public List dataLines { get; set; } // 行数 public Integer getDatalineSize() { return dataLines == null ? 0 : dataLines.size(); } public TydelikeACController() { baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); String path = URL.getCurrentRequestUrl().getPath(); if (path.indexOf('/apex') > 0) { baseUrl += path.substring(0,path.indexOf('/apex')); } else if (path.indexOf('production/') > 0) { baseUrl += '/production'; } rtUrl = System.currentPageReference().getParameters().get('retURL'); if (rtUrl == null || rtUrl == 'null') { rtUrl = ''; } } //页面初始化 public PageReference init() { dataLines = new List(); Map tyacMap = new Map(); Map> tycoMap = new Map>(); List tyacList = new List(); List tycoList = new List(); // 明细Bean tyacList = [select id,name,OfSkrap__c,TyCity__c,TyAddress__c,TyPostCode__c,Account1__c from TydelikeAccount__c]; tycoList = [select id,name,OfSkrap__c,TydelikeAccount__c,TyFaxD__c,TyAddress__c,TyPhoneD__c,TyPostcode__c from TydelikeContact__c]; if (tyacList.size() == 0) { return null; } if (tycoList.size() == 0) { return null; } for (TydelikeAccount__c tyac: tyacList) { tyacMap.put(tyac.Id, tyac); } for (TydelikeContact__c tyco: tycoList) { if (tycoMap.containsKey(tyco.TydelikeAccount__c)) { tycoMap.get(tyco.TydelikeAccount__c).add(tyco); }else { tycoMap.put(tyco.TydelikeAccount__c, new List()); tycoMap.get(tyco.TydelikeAccount__c).add(tyco); } } Integer cnt = 0; for (TydelikeAccount__c tyac1: tyacList) { if (tycoMap.containsKey(tyac1.Id)) { for(Integer i = 0; i< tycoMap.get(tyac1.Id).size(); i++){ DataLineBean dataLine = new DataLineBean(); dataLine.lineNum = cnt ; cnt ++; dataLine.tyacId = tyacMap.get(tyac1.Id).Id; dataLine.tyacName = tyacMap.get(tyac1.Id).Name; dataLine.tyacof = tyacMap.get(tyac1.Id).OfSkrap__c; dataLine.tyaccity = tyacMap.get(tyac1.Id).TyCity__c; dataLine.tyacadd = tyacMap.get(tyac1.Id).TyAddress__c; dataLine.tyacpost = tyacMap.get(tyac1.Id).TyPostCode__c; dataLine.tycoName = tycoMap.get(tyac1.Id)[i].Name; dataLine.tycoId = tycoMap.get(tyac1.Id)[i].Id; dataLine.tycoof = tycoMap.get(tyac1.Id)[i].OfSkrap__c; dataLine.tyaccount = tycoMap.get(tyac1.Id)[i].TydelikeAccount__c; dataLine.tycofax = tycoMap.get(tyac1.Id)[i].TyFaxD__c; dataLine.tycoadd = tycoMap.get(tyac1.Id)[i].TyAddress__c; dataLine.tycophone = tycoMap.get(tyac1.Id)[i].TyPhoneD__c; dataLine.tycopost = tycoMap.get(tyac1.Id)[i].TyPostcode__c; dataLines.add(dataLine); System.debug('dataLine.lineNum='+dataLine.lineNum); } }else { DataLineBean dataLine = new DataLineBean(); dataLine.lineNum = cnt; cnt ++; dataLine.tyacId = tyacMap.get(tyac1.Id).Id; dataLine.tyacName = tyacMap.get(tyac1.Id).Name; dataLine.tyacof = tyacMap.get(tyac1.Id).OfSkrap__c; dataLine.tyaccity = tyacMap.get(tyac1.Id).TyCity__c; dataLine.tyacadd = tyacMap.get(tyac1.Id).TyAddress__c; dataLine.tyacpost = tyacMap.get(tyac1.Id).TyPostCode__c; dataLine.tycoName = null; dataLine.tycoId = null; dataLine.tyaccount = null; dataLine.tycofax = null; dataLine.tycoadd = null; dataLine.tycophone = null; dataLine.tycopost = null; dataLines.add(dataLine); System.debug('dataLine.lineNum='+dataLine.lineNum); } } System.debug('dataLines='+dataLines); return null; } //检索 public PageReference searchTy() { dataLines = new List(); Map tyacMap = new Map(); Map> tycoMap = new Map>(); List tyacList = new List(); List tycoList = new List(); // 明细Bean String acsoql = 'select id,name,OfSkrap__c,TyCity__c,TyAddress__c,TyPostCode__c,Account1__c from TydelikeAccount__c WHERE Id != null'; if (String.isNotBlank(tycountname)) { acsoql += ' and Name like \'%' + String.escapeSingleQuotes(tycountname.trim().replaceAll('%', '\\%')) + '%\''; } if (String.isNotBlank(tycountcity)) { acsoql += ' and TyCity__c like \'%' + String.escapeSingleQuotes(tycountcity.trim().replaceAll('%', '\\%')) + '%\''; } String cosoql = 'select id,name,OfSkrap__c,TydelikeAccount__c,TyFaxD__c,TyAddress__c,TyPhoneD__c,TyPostcode__c from TydelikeContact__c WHERE Id != null'; if (String.isNotBlank(tycontactname)) { cosoql += ' and Name like \'%' + String.escapeSingleQuotes(tycontactname.trim().replaceAll('%', '\\%')) + '%\''; } tyacList = Database.query(acsoql); tycoList = Database.query(cosoql); if (tyacList.size() == 0) { return null; } if (tycoList.size() == 0) { return null; } for (TydelikeAccount__c tyac: tyacList) { tyacMap.put(tyac.Id, tyac); } for (TydelikeContact__c tyco: tycoList) { if (tycoMap.containsKey(tyco.TydelikeAccount__c)) { tycoMap.get(tyco.TydelikeAccount__c).add(tyco); }else { tycoMap.put(tyco.TydelikeAccount__c, new List()); tycoMap.get(tyco.TydelikeAccount__c).add(tyco); } } Integer cnt = 0; for (TydelikeAccount__c tyac1: tyacList) { if (tycoMap.containsKey(tyac1.Id)) { for(Integer i = 0; i< tycoMap.get(tyac1.Id).size(); i++){ DataLineBean dataLine = new DataLineBean(); dataLine.lineNum = cnt ; cnt ++; dataLine.tyacId = tyacMap.get(tyac1.Id).Id; dataLine.tyacName = tyacMap.get(tyac1.Id).Name; dataLine.tyacof = tyacMap.get(tyac1.Id).OfSkrap__c; dataLine.tyaccity = tyacMap.get(tyac1.Id).TyCity__c; dataLine.tyacadd = tyacMap.get(tyac1.Id).TyAddress__c; dataLine.tyacpost = tyacMap.get(tyac1.Id).TyPostCode__c; dataLine.tycoName = tycoMap.get(tyac1.Id)[i].Name; dataLine.tycoId = tycoMap.get(tyac1.Id)[i].Id; dataLine.tycoof = tycoMap.get(tyac1.Id)[i].OfSkrap__c; dataLine.tyaccount = tycoMap.get(tyac1.Id)[i].TydelikeAccount__c; dataLine.tycofax = tycoMap.get(tyac1.Id)[i].TyFaxD__c; dataLine.tycoadd = tycoMap.get(tyac1.Id)[i].TyAddress__c; dataLine.tycophone = tycoMap.get(tyac1.Id)[i].TyPhoneD__c; dataLine.tycopost = tycoMap.get(tyac1.Id)[i].TyPostcode__c; dataLines.add(dataLine); System.debug('dataLine.lineNum='+dataLine.lineNum); } }else { if (String.isBlank(tycontactname)) { DataLineBean dataLine = new DataLineBean(); dataLine.lineNum = cnt; cnt ++; dataLine.tyacId = tyacMap.get(tyac1.Id).Id; dataLine.tyacName = tyacMap.get(tyac1.Id).Name; dataLine.tyacof = tyacMap.get(tyac1.Id).OfSkrap__c; dataLine.tyaccity = tyacMap.get(tyac1.Id).TyCity__c; dataLine.tyacadd = tyacMap.get(tyac1.Id).TyAddress__c; dataLine.tyacpost = tyacMap.get(tyac1.Id).TyPostCode__c; dataLine.tycoName = null; dataLine.tycoId = null; dataLine.tyaccount = null; dataLine.tycofax = null; dataLine.tycoadd = null; dataLine.tycophone = null; dataLine.tycopost = null; dataLines.add(dataLine); System.debug('dataLine.lineNum='+dataLine.lineNum); } } } System.debug('dataLines='+dataLines); return null; } //删除和批量删除 public PageReference setOfSkrapBtn() { List tycoofIdList = new List(); List tyacofIdList = new List(); for (DataLineBean d : dataLines) { if(d.bondel == true){ if (d.tyaccount != null) { tycoofIdList.add(d.tycoId); }else { tyacofIdList.add(d.tyacId); } } } System.debug('tyacofIdList='+tyacofIdList); Map uptyacMap = new Map(); List tyacofList = new List(); tyacofList = [select id,OfSkrap__c from TydelikeAccount__c]; if (tyacofIdList.size() > 0) { for (TydelikeAccount__c uptyac : tyacofList) { TydelikeAccount__c uptyacof = new TydelikeAccount__c(); if (tyacofIdList.contains(uptyac.Id)) { uptyacof.Id = uptyac.Id; uptyacof.OfSkrap__c = true; //uptyacList.add(uptyacof); uptyacMap.put(uptyacof.Id,uptyacof); } } } if (uptyacMap.size() > 0) { update uptyacMap.values(); } Map uptycoMap = new Map(); List tycoofList = new List(); tycoofList = [select id,OfSkrap__c from TydelikeContact__c]; if (tycoofIdList.size() > 0) { for (TydelikeContact__c uptyco : tycoofList) { TydelikeContact__c uptycoof = new TydelikeContact__c(); if (tycoofIdList.contains(uptyco.Id)) { uptycoof.Id = uptyco.Id; uptycoof.OfSkrap__c = true; //uptyacList.add(uptyacof); uptycoMap.put(uptycoof.Id,uptycoof); } } } if (uptycoMap.size() > 0) { update uptycoMap.values(); } return null; } public class DataLineBean { //批量 public Boolean bondel {get;set;} //行号 public Integer lineNum {get;set;} //临时客户Id public String tyacId {get;set;} //临时客户名 public String tyacName {get;set;} //临时客户是否删除 public Boolean tyacof {get;set;} //临时客户城市 public String tyaccity {get;set;} //临时客户地址 public String tyacadd {get;set;} //临时客户邮编 public String tyacpost {get;set;} //临时联系人Id public String tycoId {get;set;} //临时联系人名 public String tycoName {get;set;} //临时联系人是否删除 public Boolean tycoof {get;set;} //临时联系人的查找临时客户 同时也是临时客户 public String tyaccount {get;set;} //临时联系人传真 public String tycofax {get;set;} //临时联系人地址 public String tycoadd {get;set;} //临时联系人电话 public String tycophone {get;set;} //临时联系人邮政编码 public String tycopost {get;set;} } }