public without sharing class ServiceMaintenanceTaskController { // public List mcList {get;set;} // public List mcTaskList {get;set;} // public List mcTaskInfos ; public Integer mcTaskCount {get;set;} //总件数 public String mcIdList {get; set;} public String CSVTitle {get; set;} public List exportInfos {get;set;} public String exportIdList {get; set;} public Boolean isShowDetail {get; set;} Map> mc2LocationNames; Map> mc2AssetModelNos; // Map MCTaskMap; //维修合同任务Id Map MC2TaskMap; //page public Integer pagesize{get; set;} public Integer pagecount{get; set;} public Integer currentpage{get; set;} public Boolean hasPrevious{get; set;} public Boolean hasNext{get; set;} public List pageRecords { get; set; } public ServiceMaintenanceTaskController(){ isShowDetail = false; exportInfos = new List(); // MCTaskMap = new Map(); // MCtask2InfoMap = new Map(); if (System.label.Service_main_1.equals(UserInfo.getUserId()) || System.label.userId_CT.equals(UserInfo.getUserId()) || 'wenjun_gao@olympus.com.cn'.equals(UserInfo.getUserName())) { isShowDetail = true; }//niwu -005100000069saqAAA -00510000005sEEMAA2 pagesize = Integer.valueof(System.Label.ServiceMainTaskPageSize); currentpage = 0; init(); } public void init(){ List mcIds = new List(); MC2TaskMap = new Map(); //维修合同Id String query = 'SELECT Contract_RecordType__c,Interval_End_Date__c,Interval_Start_Date__c,Interval__c,' +'Is_Generate_Task__c,Maintenance_Consumption_rate__c,Maintenance_Contract__c,' +'Name,Nper__c,Reference_Consumption_Rate__c,Task_End_Date__c,' +'Task_Status__c,Task_Type__c,Task__c,Maintenance_Contract__r.Department__r.Name,Maintenance_Contract__r.LastMContract1__r.Management_Code__c,Maintenance_Contract__r.LastMContract2__r.Management_Code__c,Maintenance_Contract__r.LastMContract3__r.Management_Code__c,' +'Maintenance_Contract__r.LastMContract1__r.Contract_End_Date__c,Maintenance_Contract__r.LastMContract2__r.Contract_End_Date__c,Maintenance_Contract__r.LastMContract3__r.Contract_End_Date__c,' +'Maintenance_Contract__r.Hospital__r.Name,Maintenance_Contract__r.Service_Contract_Staff__r.Name,Task__r.Name,Maintenance_Contract__r.Estimate_Asset_Cnt__c,'; CSVTitle = ''; // Maintenance_Contract__r.LastMContract4__r.Contract_End_Date__c,Maintenance_Contract__r.LastMContract4__r.Management_Code__c,Maintenance_Contract__r.LastMContract5__r.Management_Code__c, List fieldList=SObjectType.Maintenance_Task__c.FieldSets.Maintenance_Contract_Task.getFields(); for(Schema.FieldSetMember f : fieldList) { query = query+f.getFieldPath() +','; CSVTitle = CSVTitle + '"'+f.getLabel()+'",'; } CSVTitle = CSVTitle + '"上期合同1空白期","上期合同2空白期","上期合同3空白期","故障型号1","故障型号2","故障型号3","故障型号4","故障型号5",' +'"故障部位1","故障部位2","故障部位3","故障部位4","故障部位5"'; query = query + ' Id FROM Maintenance_Task__c WHERE Maintenance_Contract__r.Status__c = \'契約\' ' +' AND Maintenance_Contract__r.Contract_Consumption_rate__c > '+System.Label.ContractAlert+' AND Contract_RecordType__c != \'VM_Contract\' ORDER BY Nper__c DESC NULLS FIRST'; List mcTasks = Database.query(query); // List mcTasks = [SELECT Contract_RecordType__c,Id,Interval_End_Date__c,Interval_Start_Date__c,Interval__c, // Is_Generate_Task__c,Maintenance_Consumption_rate__c,Maintenance_Contract__c, // Name,Nper__c,Reference_Consumption_Rate__c,Task_End_Date__c, // Task_Status__c,Task_Type__c,Task__c, Maintenance_Contract__r.Management_Code__c, // Maintenance_Contract__r.Hospital__c,Maintenance_Contract__r.Service_Contract_Staff__c, // Maintenance_Contract__r.Contract_End_Date__c,Maintenance_Contract__r.Contract_Consumption_rate__c, // Maintenance_Contract__r.Estimate_Target__c,Maintenance_Contract__r.Contract_Start_Date__c // FROM Maintenance_Task__c // WHERE Maintenance_Contract__r.Status__c = '契約'AND Contract_RecordType__c != 'VM_Contract' ORDER BY Nper__c DESC NULLS FIRST]; //Maintenance_Contract__r.Contract_Consumption_rate__c > 200 AND // mcTaskList = new List(); // Map tempMCTaskMap = new Map(); for (Maintenance_Task__c mctask : mcTasks) { if (!MC2TaskMap.containsKey(mctask.Maintenance_Contract__c)) { MC2TaskMap.put(mctask.Maintenance_Contract__c,mctask); // MCTaskMap.put(mctask.Id,mctask); mcIds.add(mctask.Maintenance_Contract__c); // mcTaskList.add(mctask); } } mc2LocationNames = new Map>(); mc2AssetModelNos = new Map>(); if (mcIds.size() > 0) { //维修合同下修理频率最高的5个故障部位 List locationNames = [SELECT Count(Id),LocationGroupName__c,Repair__r.Maintenance_Contract__c main FROM Repair_reason__c WHERE Repair__c IN ( SELECT Id FROM Repair__c WHERE Maintenance_Contract__c IN :mcIds) AND (Status2__c != '00.删除' AND Status2__c != '00.取消' AND Status2__c != '00.关闭') AND LocationGroupName__c != NULL GROUP BY Repair__r.Maintenance_Contract__c,LocationGroupName__c ORDER BY Count(Id) DESC]; //维修合同下修理频率最高的5个故障型号 List assetModelNos = [SELECT Count(Id), Repair__r.Delivered_Product__r.Product2.Asset_Model_No__c no,Repair__r.Maintenance_Contract__c main FROM Repair_reason__c WHERE Repair__c IN ( SELECT Id FROM Repair__c WHERE Maintenance_Contract__c IN :mcIds) AND (Status2__c != '00.删除' AND Status2__c != '00.取消' AND Status2__c != '00.关闭') GROUP BY Repair__r.Maintenance_Contract__c,Repair__r.Delivered_Product__r.Product2.Asset_Model_No__c ORDER BY Count(Id) DESC]; for (String mcId : mcIds) { List tempLocationNames = new List(); for (AggregateResult tempReason : locationNames) { if (String.valueOf(tempReason.get('main')) == mcId && tempLocationNames.size() < 5) { tempLocationNames.add(String.valueOf(tempReason.get('LocationGroupName__c'))); } } mc2LocationNames.put(mcId, tempLocationNames); List tempAssetModelNos = new List(); for (AggregateResult tempReason : assetModelNos) { if (String.valueOf(tempReason.get('main')) == mcId && tempAssetModelNos.size() < 5) { tempAssetModelNos.add(String.valueOf(tempReason.get('no'))); } } mc2AssetModelNos.put(mcId, tempAssetModelNos); } } System.debug('mc2AssetModelNos---'+mc2AssetModelNos+'---mc2LocationNames+---'+mc2LocationNames); // mcTaskList = MC2TaskMap.values(); // mcTaskInfos = new List(); // for (Maintenance_Task__c mctask : MC2TaskMap.values()) { // MCTaskInfo mcTaskInfo = new MCTaskInfo(); // mcTaskInfo.MCTask = new Maintenance_Task__c(); // mcTaskInfo.MCTask.Maintenance_Contract__c = mctask.Maintenance_Contract__c; // mcTaskInfo.MCTask.Task__c = mctask.Task__c; // mcTaskInfo.MCTask.Id = mctask.Id; // mcTaskInfo.MCTask.Name = mctask.Name; // mcTaskInfo.MCTask.Maintenance_Consumption_rate__c = mctask.Maintenance_Consumption_rate__c; // mcTaskInfo.TaskName = mctask.Task__r.Name; // mcTaskInfo.MC = new Maintenance_Contract__c(); // mcTaskInfo.MC.Management_Code__c = mctask.Maintenance_Contract__r.Management_Code__c; //合同编号 // mcTaskInfo.MC.Hospital__c = mctask.Maintenance_Contract__r.Hospital__c; //医院 // mcTaskInfo.Hospital = mctask.Maintenance_Contract__r.Hospital__r.Name; //医院名 // mcTaskInfo.MC.Department__c = mctask.Maintenance_Contract__r.Department__c; //科室 // mcTaskInfo.Department = mctask.Maintenance_Contract__r.Department__r.Name; //科室名 // mcTaskInfo.MC.Service_Contract_Staff__c = mctask.Maintenance_Contract__r.Service_Contract_Staff__c; //主担当 // mcTaskInfo.ServiceContractStaff = mctask.Maintenance_Contract__r.Service_Contract_Staff__r.Name; //主担当名 // // mcTaskInfo.MC.Dealer__c = mctask.Maintenance_Contract__r.Dealer__c;//经销商名 // // mcTaskInfo.MC.Estimate_Target__c = mcTask.Maintenance_Contract__r.Estimate_Target__c; //报价提交对象 // mcTaskInfo.ContractStartDate = Date.valueOf(mcTask.Maintenance_Contract__r.Contract_Start_Date__c).year() + '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_Start_Date__c).month()+ '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_Start_Date__c).day() ; //合同开始日 // mcTaskInfo.ContractEndDate = Date.valueOf(mcTask.Maintenance_Contract__r.Contract_End_Date__c).year() + '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_End_Date__c).month()+ '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_End_Date__c).day() ; //合同结束日 // mcTaskInfo.MC.Contract_Amount__c = mcTask.Maintenance_Contract__r.Contract_Amount__c;//最终用户合同金额 // mcTaskInfo.EstimatePricerangeF = mcTask.Maintenance_Contract__r.Estimate_Price_rangeF__c;//价格范围 // mcTaskInfo.ServiceDiscountRateF = mcTask.Maintenance_Contract__r.Service_discount_RateF__c;//相对标准价格范围的折扣率 // mcTaskInfo.ContractConsumptionrate = mcTask.Maintenance_Contract__r.Contract_Consumption_rate__c; //消费率 // mcTaskInfo.EstimateAssetCnt = mcTask.Maintenance_Contract__r.Estimate_Asset_Cnt__c; //报价资产件数 // mcTaskInfo.LastMContract1 = mcTask.Maintenance_Contract__r.LastMContract1__r.Management_Code__c; //上期合同1 // mcTaskInfo.LastMContract2 = mcTask.Maintenance_Contract__r.LastMContract2__r.Management_Code__c; //上期合同2 // mcTaskInfo.LastMContract3 = mcTask.Maintenance_Contract__r.LastMContract3__r.Management_Code__c; //上期合同3 // // mcTaskInfo.LastMContract4 = mcTask.Maintenance_Contract__r.LastMContract4__r.Management_Code__c; //上期合同4 // // mcTaskInfo.LastMContract5 = mcTask.Maintenance_Contract__r.LastMContract5__r.Management_Code__c; //上期合同5 // if (mcTask.Maintenance_Contract__r.Contract_Start_Date__c != null ) { // if (mcTask.Maintenance_Contract__r.LastMContract1__r.Contract_End_Date__c!= null) { // mcTaskInfo.LastMContract1gapTime = mcTask.Maintenance_Contract__r.LastMContract1__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同1空白期 // } // if (mcTask.Maintenance_Contract__r.LastMContract2__r.Contract_End_Date__c!= null) { // mcTaskInfo.LastMContract2gapTime = mcTask.Maintenance_Contract__r.LastMContract2__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同2空白期 // } // if (mcTask.Maintenance_Contract__r.LastMContract3__r.Contract_End_Date__c!= null) { // mcTaskInfo.LastMContract3gapTime = mcTask.Maintenance_Contract__r.LastMContract3__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同3空白期 // } // // if (mcTask.Maintenance_Contract__r.LastMContract4__r.Contract_End_Date__c!= null) { // // mcTaskInfo.LastMContract4gapTime = mcTask.Maintenance_Contract__r.LastMContract4__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同4空白期 // // } // } // if (mc2LocationNames.containsKey(mctask.Maintenance_Contract__c)) { // if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 0) { // mcTaskInfo.LocationName1 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(0);//故障部位1 // } // if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 1) { // mcTaskInfo.LocationName2 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(1);//故障部位2 // } // if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 2) { // mcTaskInfo.LocationName3 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(2);//故障部位3 // } // if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 3) { // mcTaskInfo.LocationName4 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(3);//故障部位4 // } // if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 4) { // mcTaskInfo.LocationName5 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(4);//故障部位5 // } // } // if (mc2AssetModelNos.containsKey(mctask.Maintenance_Contract__c)) { // if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 0) { // mcTaskInfo.OwnershipMachineNo1 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(0);//故障型号1 // } // if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 1) { // mcTaskInfo.OwnershipMachineNo2 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(1);//故障型号2 // } // if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 2) { // mcTaskInfo.OwnershipMachineNo3 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(2);//故障型号3 // } // if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 3) { // mcTaskInfo.OwnershipMachineNo4 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(3);//故障型号4 // } // if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 4) { // mcTaskInfo.OwnershipMachineNo5 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(4);//故障型号5 // } // } // mcTaskInfo.Task = new task__c(); // mcTaskInfo.Task.taskStatus__c = mcTask.Task_Status__c; //任务状态 // mcTaskInfo.Task.cancelReason__c = mcTask.Task__r.cancelReason__c; //取消原因 // if (mcTask.Task__r.taskHandleDate__c != null) { // mcTaskInfo.taskHandleDate = mcTask.Task__r.taskHandleDate__c.year() + '/'+mcTask.Task__r.taskHandleDate__c.month()+'/'+mcTask.Task__r.taskHandleDate__c.day(); //任务确认日 // } // if (Date.valueOf(mcTask.Task__r.Submit_DateTime__c) != null) { // mcTaskInfo.SubmitDate = Date.valueOf(mcTask.Task__r.Submit_DateTime__c).year() + '/'+Date.valueOf(mcTask.Task__r.Submit_DateTime__c).month()+ '/'+Date.valueOf(mcTask.Task__r.Submit_DateTime__c).day() ; //日报提交日期 // } // mcTaskInfos.add(mcTaskInfo); // // MCtask2InfoMap.put(mctask.Id, mcTaskInfo); // } mcTaskCount = MC2TaskMap.values().size(); //总件数 pagecount=(mcTaskCount + pagesize - 1) / pagesize; //页数 //显示第一页 moveToFirst(); makeCurrentPageRecords(); } public PageReference assignTasks(){ Savepoint sp = Database.setSavepoint(); List mcIds = new List(); List taskList = new List(); Map tempMC2McTask = new Map(); List updateMCTask = new List(); Id recordTypeId = Schema.SObjectType.task__c.getRecordTypeInfosByDeveloperName().get('MaintenanceTask').getRecordTypeId(); if (this.mcIdList != null && this.mcIdList != '') { mcIds = mcIdList.split(','); } // System.debug(mcTaskIds+'===='+MCTaskMap); Map taskMap = new Map(); if (mcIds.size() > 0) { for (String mcId : mcIds) { if (MC2TaskMap.containsKey(mcId)) { task__c task = new task__c(); task.RecordTypeId = recordTypeId; task.taskDifferent__c = '被动任务'; task.taskStatus__c = '01 分配'; task.Maintenance_Contract__c = MC2TaskMap.get(mcId).Maintenance_Contract__c; task.assignee__c = MC2TaskMap.get(mcId).Maintenance_Contract__r.Service_Contract_Staff__c; task.account__c = MC2TaskMap.get(mcId).Maintenance_Contract__r.Department__c; task.Name = '维修合同消费率预警任务(' + MC2TaskMap.get(mcId).Maintenance_Contract__r.Department__r.Name + ')'; task.OwnerId = MC2TaskMap.get(mcId).Maintenance_Contract__r.Service_Contract_Staff__c; System.debug('name---'+task.Name); taskList.add(task); tempMC2McTask.put(MC2TaskMap.get(mcId).Maintenance_Contract__c, MC2TaskMap.get(mcId)); taskMap.put(MC2TaskMap.get(mcId).Id,task);//任务创建后回显任务状态 } } } // try { if (taskList.size() > 0) { insert taskList; for (task__c task : taskList) { if (tempMC2McTask.containsKey(task.Maintenance_Contract__c)) { tempMC2McTask.get(task.Maintenance_Contract__c).Task__c = task.Id; updateMCTask.add(tempMC2McTask.get(task.Maintenance_Contract__c)); } } } if (updateMCTask.size() > 0) { update updateMCTask; for (Maintenance_Task__c tempMCTask : updateMCTask) { for (MCTaskInfo mcTaskInfo : pageRecords) { if (mcTaskInfo.MCTask.Id == tempMCTask.Id) { mcTaskInfo.MCTask.Task__c = tempMCTask.Task__c; mcTaskInfo.Task.taskStatus__c = taskMap.get(tempMCTask.Id).taskStatus__c; //任务状态 } } } } ApexPages.Message successMsg = new ApexPages.Message(ApexPages.severity.INFO, '分配成功'); ApexPages.addMessage(successMsg); // } catch (Exception ex) { // System.debug(ex.getStackTraceString()); // ApexPages.addMessages(ex); // Database.rollback(sp); // } return null; } public PageReference exportAll(){ exportInfos = pageRecords; return ToPage(); } public void exportSelected(){ List mcIds = new List(); if (this.exportIdList != null && this.exportIdList != '') { mcIds = exportIdList.split(','); } if (mcIds.size() > 0) { for (String mcId : mcIds) { // if (MCtask2InfoMap.containsKey(mcTaskId)) { // exportInfos.add(MCtask2InfoMap.get(mcTaskId)); // } for (MCTaskInfo info : pageRecords) { if (mcId.equals(info.MC.Id)) { exportInfos.add(info); } } } } // System.debug('mcTaskIds:--'+mcTaskIds+' exportInfos:--'+exportInfos+' MCtask2InfoMap:-'+MCtask2InfoMap); } public PageReference ToPage(){ PageReference ref = new Pagereference('/apex/MaintenanceTaskCSVExport'); return ref; } public class MCTaskInfo { public Maintenance_Contract__c MC {get; set;} public task__c Task {get; set;} public Maintenance_Task__c MCTask {get; set;} // public String ManagementCode {get;set;} //维修合同询价编码 public String Hospital {get;set;} //维修合同医院 public String Department {get;set;} //维修科室 public String ServiceContractStaff {get;set;} //维修合同主担当 public String TaskName {get;set;} //任务名 // public String EstimateTarget {get;set;} //维修合同报价提交对象 // public Date ContractStartDate {get;set;} //维修合同开始日期 // public Date ContractEndDate {get;set;} //维修合同结束日期 public String LastMContract1 {get;set;} public String LastMContract2 {get;set;} public String LastMContract3 {get;set;} // public String LastMContract4 {get;set;} // public String LastMContract5 {get;set;} public String EstimatePricerangeF {get;set;} //价格范围 public Decimal ServiceDiscountRateF {get;set;} //相对标准价格范围的折扣率 public Decimal ContractConsumptionrate {get;set;} //维修合同消费率 public String LocationName1 {get; set;} //故障部位1 public String LocationName2 {get; set;} //故障部位2 public String LocationName3 {get; set;} //故障部位3 public String LocationName4 {get; set;} //故障部位4 public String LocationName5 {get; set;} //故障部位5 public String OwnershipMachineNo1 {get; set;} //故障型号1 public String OwnershipMachineNo2 {get; set;} //故障型号2 public String OwnershipMachineNo3 {get; set;} //故障型号3 public String OwnershipMachineNo4 {get; set;} //故障型号4 public String OwnershipMachineNo5 {get; set;} //故障型号5 public Integer LastMContract1gapTime {get; set;} //上期合同1空白期 public Integer LastMContract2gapTime {get; set;} //上期合同2空白期 public Integer LastMContract3gapTime {get; set;} //上期合同3空白期 // public Integer LastMContract4gapTime {get; set;} //上期合同4空白期 // public String TaskStatus {get; set;} //任务状态 public String taskHandleDate {get; set;} //任务确认日 public String SubmitDate {get; set;} //日报提交日期(任务完成日期) // public String TaskId {get; set;} //任务Id // public String cancelReason {get; set;} //取消理由 public String ContractStartDate {get; set;} //合同开始日 public String ContractEndDate {get; set;} //合同结束日 public Decimal EstimateAssetCnt {get; set;} //报价资产总数 } //首页 public void moveToFirst(){ if(currentpage == 1) return; currentpage = 1; canMove(); //makeCurrentPageRecords(); } //尾页 public void moveToLast(){ if(currentpage >= pagecount) return; currentpage = pagecount; canMove(); //makeCurrentPageRecords(); } //上一页 public void moveToPrevious(){ if(currentpage == 1) return; currentpage = currentpage -1; canMove(); //makeCurrentPageRecords(); } //下一页 public void moveToNext(){ if(currentpage >= pagecount) return; currentpage = currentpage + 1; canMove(); //makeCurrentPageRecords(); } //判断是否可翻页 public void canMove(){ hasPrevious = false; hasNext = false; if(pagecount > 1 && currentpage > 1) hasPrevious = true; if(pagecount > 1 && currentpage < pagecount) hasNext = true; } //刷新当前页 public PageReference refreshPageSize() { makeCurrentPageRecords(); return null; } //编辑当前页内容 public void makeCurrentPageRecords(){ Integer startIdx; Integer endIdx; pageRecords = new List(); startIdx = (currentpage-1) * pagesize; endIdx = (currentpage-1) * pagesize+ pagesize; if (endIdx > MC2TaskMap.values().size()){ endIdx = MC2TaskMap.values().size(); } for(Integer i=startIdx; i < endIdx ; i++){ Maintenance_Task__c mctask = MC2TaskMap.values().get(i); MCTaskInfo mcTaskInfo = new MCTaskInfo(); mcTaskInfo.MCTask = new Maintenance_Task__c(); mcTaskInfo.MCTask.Maintenance_Contract__c = mctask.Maintenance_Contract__c; mcTaskInfo.MCTask.Task__c = mctask.Task__c; mcTaskInfo.MCTask.Id = mctask.Id; mcTaskInfo.MCTask.Name = mctask.Name; mcTaskInfo.MCTask.Maintenance_Consumption_rate__c = mctask.Maintenance_Consumption_rate__c; mcTaskInfo.TaskName = mctask.Task__r.Name; mcTaskInfo.MC = new Maintenance_Contract__c(); mcTaskInfo.MC.Id = mctask.Maintenance_Contract__r.Id; mcTaskInfo.MC.Management_Code__c = mctask.Maintenance_Contract__r.Management_Code__c; //合同编号 mcTaskInfo.MC.Hospital__c = mctask.Maintenance_Contract__r.Hospital__c; //医院 mcTaskInfo.Hospital = mctask.Maintenance_Contract__r.Hospital__r.Name; //医院名 mcTaskInfo.MC.Department__c = mctask.Maintenance_Contract__r.Department__c; //科室 mcTaskInfo.Department = mctask.Maintenance_Contract__r.Department__r.Name; //科室名 mcTaskInfo.MC.Service_Contract_Staff__c = mctask.Maintenance_Contract__r.Service_Contract_Staff__c; //主担当 mcTaskInfo.ServiceContractStaff = mctask.Maintenance_Contract__r.Service_Contract_Staff__r.Name; //主担当名 // mcTaskInfo.MC.Dealer__c = mctask.Maintenance_Contract__r.Dealer__c;//经销商名 // mcTaskInfo.MC.Estimate_Target__c = mcTask.Maintenance_Contract__r.Estimate_Target__c; //报价提交对象 mcTaskInfo.ContractStartDate = Date.valueOf(mcTask.Maintenance_Contract__r.Contract_Start_Date__c).year() + '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_Start_Date__c).month()+ '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_Start_Date__c).day() ; //合同开始日 mcTaskInfo.ContractEndDate = Date.valueOf(mcTask.Maintenance_Contract__r.Contract_End_Date__c).year() + '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_End_Date__c).month()+ '/'+Date.valueOf(mcTask.Maintenance_Contract__r.Contract_End_Date__c).day() ; //合同结束日 mcTaskInfo.MC.Contract_Amount__c = mcTask.Maintenance_Contract__r.Contract_Amount__c;//最终用户合同金额 mcTaskInfo.EstimatePricerangeF = mcTask.Maintenance_Contract__r.Estimate_Price_rangeF__c;//价格范围 mcTaskInfo.ServiceDiscountRateF = mcTask.Maintenance_Contract__r.Service_discount_RateF__c;//相对标准价格范围的折扣率 mcTaskInfo.ContractConsumptionrate = mcTask.Maintenance_Contract__r.Contract_Consumption_rate__c; //消费率 mcTaskInfo.EstimateAssetCnt = mcTask.Maintenance_Contract__r.Estimate_Asset_Cnt__c; //报价资产件数 mcTaskInfo.LastMContract1 = mcTask.Maintenance_Contract__r.LastMContract1__r.Management_Code__c; //上期合同1 mcTaskInfo.LastMContract2 = mcTask.Maintenance_Contract__r.LastMContract2__r.Management_Code__c; //上期合同2 mcTaskInfo.LastMContract3 = mcTask.Maintenance_Contract__r.LastMContract3__r.Management_Code__c; //上期合同3 // mcTaskInfo.LastMContract4 = mcTask.Maintenance_Contract__r.LastMContract4__r.Management_Code__c; //上期合同4 // mcTaskInfo.LastMContract5 = mcTask.Maintenance_Contract__r.LastMContract5__r.Management_Code__c; //上期合同5 if (mcTask.Maintenance_Contract__r.Contract_Start_Date__c != null ) { if (mcTask.Maintenance_Contract__r.LastMContract1__r.Contract_End_Date__c!= null) { mcTaskInfo.LastMContract1gapTime = mcTask.Maintenance_Contract__r.LastMContract1__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同1空白期 } if (mcTask.Maintenance_Contract__r.LastMContract2__r.Contract_End_Date__c!= null) { mcTaskInfo.LastMContract2gapTime = mcTask.Maintenance_Contract__r.LastMContract2__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同2空白期 } if (mcTask.Maintenance_Contract__r.LastMContract3__r.Contract_End_Date__c!= null) { mcTaskInfo.LastMContract3gapTime = mcTask.Maintenance_Contract__r.LastMContract3__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同3空白期 } // if (mcTask.Maintenance_Contract__r.LastMContract4__r.Contract_End_Date__c!= null) { // mcTaskInfo.LastMContract4gapTime = mcTask.Maintenance_Contract__r.LastMContract4__r.Contract_End_Date__c.daysBetween(mcTask.Maintenance_Contract__r.Contract_Start_Date__c);//上期合同4空白期 // } } if (mc2LocationNames.containsKey(mctask.Maintenance_Contract__c)) { if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 0) { mcTaskInfo.LocationName1 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(0);//故障部位1 } if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 1) { mcTaskInfo.LocationName2 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(1);//故障部位2 } if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 2) { mcTaskInfo.LocationName3 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(2);//故障部位3 } if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 3) { mcTaskInfo.LocationName4 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(3);//故障部位4 } if (mc2LocationNames.get(mctask.Maintenance_Contract__c).size() > 4) { mcTaskInfo.LocationName5 = mc2LocationNames.get(mctask.Maintenance_Contract__c).get(4);//故障部位5 } } if (mc2AssetModelNos.containsKey(mctask.Maintenance_Contract__c)) { if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 0) { mcTaskInfo.OwnershipMachineNo1 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(0);//故障型号1 } if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 1) { mcTaskInfo.OwnershipMachineNo2 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(1);//故障型号2 } if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 2) { mcTaskInfo.OwnershipMachineNo3 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(2);//故障型号3 } if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 3) { mcTaskInfo.OwnershipMachineNo4 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(3);//故障型号4 } if (mc2AssetModelNos.get(mctask.Maintenance_Contract__c).size() > 4) { mcTaskInfo.OwnershipMachineNo5 = mc2AssetModelNos.get(mctask.Maintenance_Contract__c).get(4);//故障型号5 } } mcTaskInfo.Task = new task__c(); mcTaskInfo.Task.taskStatus__c = mcTask.Task_Status__c; //任务状态 mcTaskInfo.Task.cancelReason__c = mcTask.Task__r.cancelReason__c; //取消原因 if (mcTask.Task__r.taskHandleDate__c != null) { mcTaskInfo.taskHandleDate = mcTask.Task__r.taskHandleDate__c.year() + '/'+mcTask.Task__r.taskHandleDate__c.month()+'/'+mcTask.Task__r.taskHandleDate__c.day(); //任务确认日 } if (Date.valueOf(mcTask.Task__r.Submit_DateTime__c) != null) { mcTaskInfo.SubmitDate = Date.valueOf(mcTask.Task__r.Submit_DateTime__c).year() + '/'+Date.valueOf(mcTask.Task__r.Submit_DateTime__c).month()+ '/'+Date.valueOf(mcTask.Task__r.Submit_DateTime__c).day() ; //日报提交日期 } pageRecords.add(mcTaskInfo); // pageRecords.add(mcTaskInfos.get(i)); } } }