| | |
| | | // 合同询价编码 维修合同/保有设备集合 |
| | | Map<String,List<Maintenance_Contract_Asset__c>> OppAssMap = new Map<String,List<Maintenance_Contract_Asset__c>>(); |
| | | // 目标客户 合同询价编码set |
| | | Map <string, Set<Maintenance_Contract_Asset__c>> vMOppMap = new map <string, Set<Maintenance_Contract_Asset__c>>(); |
| | | Map <string, Set<Maintenance_Contract__c>> vMOppMap = new map <string, Set<Maintenance_Contract__c>>(); |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 start |
| | | Map<String, List<Id>> rpMcaNameMap = new Map<String, List<Id>>(); |
| | | Map<String, String> ChangeRepAssMap = new Map<String, String>(); |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 end |
| | | |
| | | //add by rentx LJPH-C493WW |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 start |
| | | List<Maintenance_Contract__c> MainCList=new List<Maintenance_Contract__c>(); |
| | | Map<String,Maintenance_Contract__c> MainCMap=new Map<String,Maintenance_Contract__c>(); |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 end |
| | | if(idList != null && idList.size() > 0){ |
| | | |
| | |
| | | for (AssetModifyBelongsChangeDetail__c ambcDetail :ambcDetailList){ |
| | | |
| | | String accountIdStr = ambcDetail.ChangeAndChangeDetail__r.AccountField__c; |
| | | System.debug('accountIdStr:'+ ambcDetail.ChangeAndChangeDetail__r.AccountField__c); |
| | | Account acc = accMap.get(accountIdStr); |
| | | Asset asset = new Asset(); |
| | | //判断目标客户的类型是否是"战略科室ET" |
| | |
| | | asset.Nameno__c = ambcDetail.ChangeAndChangeDetail__c; |
| | | asset.ChangeReasons__c = ambcDetail.ChangeAndChangeDetail__r.ChangeReason__c; |
| | | assetList.add(asset); |
| | | |
| | | // 变更虚拟维修合同信息整理 start |
| | | if (maAssetMap.containsKey(asset.Id)) { |
| | | // if (changeAccMap.containsKey(accountIdStr)) { |
| | |
| | | //update by rentx LJPH-C493WW start |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 start |
| | | if (!vMOppMap.containsKey(accountIdStr)) { |
| | | vMOppMap.put(accountIdStr, new Set<Maintenance_Contract_Asset__c>()); |
| | | vMOppMap.put(accountIdStr, new Set<Maintenance_Contract__c>()); |
| | | // vMOppMap.put(accountIdStr, new Set<Maintenance_Contract_Asset__c>()); |
| | | } |
| | | vMOppMap.get(accountIdStr).add(maAssetMap.get(asset.Id)); |
| | | Maintenance_Contract__c maintenancecontc=new Maintenance_Contract__c(); |
| | | maintenancecontc.Id = maAssetMap.get(asset.Id).Maintenance_Contract__c; |
| | | maintenancecontc.Add_Number__c = maAssetMap.get(asset.Id).Maintenance_Contract__r.Add_Number__c; |
| | | maintenancecontc.Management_Code__c = maAssetMap.get(asset.Id).Maintenance_Contract__r.Management_Code__c; |
| | | vMOppMap.get(accountIdStr).add(maintenancecontc); |
| | | // vMOppMap.get(accountIdStr).add(maAssetMap.get(asset.Id)); |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 end |
| | | //update by rentx LJPH-C493WW end |
| | | System.debug('maAssetMap.get(asset.Id)=====:'+maAssetMap.get(asset.Id)); |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 start |
| | | if(ambcDetail.ChangeAndChangeDetail__r.ChangeReason__c == '总院分院间调用'){ |
| | | ChangeRepAssMap.put(maAssetMap.get(asset.Id).Maintenance_Contract__r.Management_Code__c, ambcDetail.ChangeAndChangeDetail__r.ChangeReason__c); |
| | | } |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 end |
| | | } |
| | | } |
| | | System.debug('154::: vMOppMap '+vMOppMap); |
| | |
| | | |
| | | // |
| | | if (vMOppMap.size() > 0) { |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 start |
| | | List<String> mcaIdList = new List<String>(); |
| | | Map<String, List<String>> RepairIdMap = new Map<String, List<String>>(); |
| | | for (String accountId : vMOppMap.keySet()) { |
| | | System.debug('accountId1:' + accountId); |
| | | Set<Maintenance_Contract__c> mcSet = vMOppMap.get(accountId); |
| | | for(Maintenance_Contract__c mc : mcSet){ |
| | | System.debug('ChangeRepAssMap1:' + ChangeRepAssMap); |
| | | System.debug('mc.Management_Code__c1:' + mc.Management_Code__c); |
| | | if(ChangeRepAssMap.containsKey(mc.Management_Code__c)){ |
| | | mcaIdList.add(mc.Id); |
| | | } |
| | | } |
| | | } |
| | | System.debug('mcaIdList1:' + mcaIdList); |
| | | if(mcaIdList.size() > 0){ |
| | | List<Repair__c> RepairList = [select Id, VM_Maintenance_Contract__c from Repair__c where VM_Maintenance_Contract__c IN :mcaIdList]; |
| | | if(RepairList.size() > 0){ |
| | | for(Repair__c rp : RepairList){ |
| | | List<String> newRepairIdList = new List<String>(); |
| | | if(RepairIdMap.containsKey(rp.VM_Maintenance_Contract__c)){ |
| | | newRepairIdList = RepairIdMap.get(rp.VM_Maintenance_Contract__c); |
| | | newRepairIdList.add(rp.Id); |
| | | RepairIdMap.put(rp.VM_Maintenance_Contract__c, newRepairIdList); |
| | | } else{ |
| | | newRepairIdList.add(rp.Id); |
| | | RepairIdMap.put(rp.VM_Maintenance_Contract__c, newRepairIdList); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 end |
| | | for (String str : vMOppMap.keySet()) { |
| | | //update by rentx LJPH-C493WW start |
| | | Set<Maintenance_Contract_Asset__c> vset = vMOppMap.get(str); |
| | | Set<Maintenance_Contract__c> vset = vMOppMap.get(str); |
| | | //Set<Maintenance_Contract_Asset__c> vset = vMOppMap.get(str); |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 start |
| | | for (Maintenance_Contract_Asset__c mcodes : vset) { |
| | | for (Maintenance_Contract__c mcodes : vset) { |
| | | //for (Maintenance_Contract_Asset__c mcodes : vset) { |
| | | Maintenance_Contract__c vmc = new Maintenance_Contract__c(); |
| | | vmc.Name = accMap.get(str).Parent.Parent.Name + '多年保修'; |
| | | vmc.Status__c = '契約'; |
| | | system.debug('mcodes==='+mcodes); |
| | | // List<String> mcodestrList= mcodes.split('@'); |
| | | String mcode =mcodes.Maintenance_Contract__r.Management_Code__c; |
| | | String mcid=(String)mcodes.Maintenance_Contract__c; |
| | | // String mcode =mcodes.Maintenance_Contract__r.Management_Code__c; |
| | | // String mcid=(String)mcodes.Maintenance_Contract__c; |
| | | String mcode =mcodes.Management_Code__c; |
| | | String mcid=(String)mcodes.Id; |
| | | // String addNumber =mcodestrList[1]; |
| | | Map<String,Decimal> addnumMap = new Map<String,Decimal>(); |
| | | if (String.isNotBlank(mcode) && mcode.substring(mcode.length()-3,mcode.length()-2) == '-' ) { |
| | |
| | | Integer count = Integer.valueOf(mcode.substring(mcode.length()-2,mcode.length())); |
| | | |
| | | vmc.Management_CodeVM__c = startstr + String.valueOf(count +1).leftPad(2,'0'); |
| | | mcodes.Maintenance_Contract__r.Add_Number__c=count +1; |
| | | addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c); |
| | | // mcodes.Maintenance_Contract__r.Add_Number__c=count +1; |
| | | // addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c); |
| | | mcodes.Add_Number__c=count +1; |
| | | addnumMap.put(mcid,mcodes.Add_Number__c); |
| | | }else{ |
| | | system.debug('mcodes.Maintenance_Contract__r.Add_Number__c'+mcodes.Maintenance_Contract__r.Add_Number__c); |
| | | if(mcodes.Maintenance_Contract__r.Add_Number__c==null||mcodes.Maintenance_Contract__r.Add_Number__c==0){ |
| | | system.debug('mcodes.Maintenance_Contract__r.Add_Number__c'+mcodes.Add_Number__c); |
| | | if(mcodes.Add_Number__c==null||mcodes.Add_Number__c==0){ |
| | | // if(mcodes.Maintenance_Contract__r.Add_Number__c==null||mcodes.Maintenance_Contract__r.Add_Number__c==0){ |
| | | vmc.Management_CodeVM__c = mcode + '-01'; |
| | | mcodes.Maintenance_Contract__r.Add_Number__c=1; |
| | | addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c); |
| | | // mcodes.Maintenance_Contract__r.Add_Number__c=1; |
| | | // addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c); |
| | | mcodes.Add_Number__c=1; |
| | | addnumMap.put(mcid,mcodes.Add_Number__c); |
| | | }else{ |
| | | Decimal addnum = mcodes.Maintenance_Contract__r.Add_Number__c+1; |
| | | if(mcodes.Maintenance_Contract__r.Add_Number__c<=9){ |
| | | // Decimal addnum = mcodes.Maintenance_Contract__r.Add_Number__c+1; |
| | | // if(mcodes.Maintenance_Contract__r.Add_Number__c<=9){ |
| | | Decimal addnum = mcodes.Add_Number__c+1; |
| | | if(mcodes.Add_Number__c<=9){ |
| | | vmc.Management_CodeVM__c = mcode + '-0'+addnum; |
| | | }else{ |
| | | vmc.Management_CodeVM__c = mcode + '-'+addnum; |
| | |
| | | system.debug('vmc.Management_CodeVM__c ======'+vmc.Management_CodeVM__c); |
| | | system.debug('addnumMap ======'+addnumMap); |
| | | } |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 start |
| | | if(ChangeRepAssMap.containsKey(mcodes.Management_Code__c) && RepairIdMap.containsKey(mcodes.Id)){ |
| | | rpMcaNameMap.put(vmc.Management_CodeVM__c, RepairIdMap.get(mcodes.Id)); |
| | | } |
| | | System.debug('rpMcaNameMap====' + rpMcaNameMap); |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 end |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 end |
| | | vmc.Department__c = accMap.get(str).Id; |
| | | vmc.Department_Class__c = accMap.get(str).ParentId; |
| | |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 start |
| | | mctrobject.Id=mac.Maintenance_Contract__c; |
| | | mctrobject.Add_Number__c=addnumMap.get(mac.Maintenance_Contract__c); |
| | | MainCList.add(mctrobject); |
| | | MainCMap.put(mctrobject.Id,mctrobject); |
| | | system.debug('mctrobject.Id===='+mctrobject.Id); |
| | | system.debug('mctrobject.Add_Number__c======='+mctrobject.Add_Number__c); |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 end |
| | | // 给总院分院间调用的维修合同保有设备的总院分院间变更标识赋true thh 20220426 start |
| | | if(ChangeRepAssMap.containsKey(mac.Maintenance_Contract__r.Management_Code__c)){ |
| | | mac.General_Branch_Changeflag__c = true; |
| | | } |
| | | // 给总院分院间调用的维修合同保有设备的总院分院间变更标识赋true thh 20220426 end |
| | | v_MCdetUpList.add(mac); |
| | | } |
| | | v_MCdetnewMap.put(mcode, mcatempList); |
| | |
| | | mca.Maintenance_Contract__c = v_MCMap.get(str).Id; |
| | | mca.startDateGurantee_changgeAcc__c = Date.today(); |
| | | mca.ChangeAcc_flag__c = true; |
| | | // 给总院分院间调用的维修合同保有设备的总院分院间变更标识赋true thh 20220426 start |
| | | if(ChangeRepAssMap.containsKey(mca.Maintenance_Contract__r.Management_Code__c)){ |
| | | mca.General_Branch_Changeflag__c = true; |
| | | } |
| | | // 给总院分院间调用的维修合同保有设备的总院分院间变更标识赋true thh 20220426 end |
| | | v_MCdetinList.add(mca); |
| | | } |
| | | } |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 Start |
| | | List<Repair__c> updateRpList = new List<Repair__c>(); |
| | | Map<Id, Repair__c> rpMap = new Map<Id, Repair__c>(); |
| | | List<Repair__c> rpList = new List<Repair__c>(); |
| | | List<String> rpIdList = new List<String>(); |
| | | for(String str : v_MCMap.keySet()){ |
| | | Maintenance_Contract__c mc = v_MCMap.get(str); |
| | | rpIdList = rpMcaNameMap.get(mc.Management_CodeVM__c); |
| | | } |
| | | if(rpIdList != null && rpIdList.size() > 0){ |
| | | rpList = [select Id, VM_Maintenance_Contract__c from Repair__c where Id IN : rpIdList]; |
| | | } |
| | | if(rpList.size() > 0){ |
| | | for(Repair__c rp : rpList){ |
| | | rpMap.put(rp.Id, rp); |
| | | } |
| | | } |
| | | for(String str : v_MCMap.keySet()){ |
| | | Maintenance_Contract__c mc = v_MCMap.get(str); |
| | | if(rpMcaNameMap.containsKey(mc.Management_CodeVM__c)){ |
| | | List<String> newrpIdList = rpMcaNameMap.get(mc.Management_CodeVM__c); |
| | | if(newrpIdList != null && newrpIdList.size() > 0){ |
| | | for(Id rpId : newrpIdList){ |
| | | Repair__c rp = rpMap.get(rpId); |
| | | rp.VM_Maintenance_Contract__c = mc.Id; |
| | | updateRpList.add(rp); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(updateRpList.size() > 0){ |
| | | update updateRpList; |
| | | } |
| | | // 总院分院间调用的保有设备,变更前发送的修理要计入到变更后的合同里 thh 20220418 end |
| | | // 插入变更新合同的维修合同保有设备 |
| | | insert v_MCdetinList; |
| | | // 更新现有合同的维修合同保有设备 |
| | |
| | | update assetList; |
| | | } |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 start |
| | | if(MainCList != null && MainCList.size() > 0){ |
| | | update MainCList; |
| | | if(MainCMap != null && MainCMap.size() > 0){ |
| | | List<Maintenance_Contract__c> mainList=MainCMap.values(); |
| | | update mainList; |
| | | } |
| | | //LJPH-C493WW fy 【委托】 【多年保合同】多年保设备转移造成的合同问题 end |
| | | } |