| | |
| | | |
| | | List<OpportunityLineItem> retList = |
| | | [Select Id, OpportunityId, Category3__c, Product2.MDM_Model_No__c, Opportunity.STMS_Package_Sale__c |
| | | , Opportunity.State_Owner__c, Product2.Family, Opportunity.EnergyHost__c |
| | | , Opportunity.State_Owner__c, Product2.Family, Opportunity.EnergyHost__c, Product2.Asset_Model_No__c |
| | | from OpportunityLineItem |
| | | where OpportunityId in: selIds |
| | | order by OpportunityId]; |
| | |
| | | } |
| | | } |
| | | Map<String, Opportunity> updateOpportunityMap = new Map<String, Opportunity>(); |
| | | Boolean flg_usg =false; |
| | | Boolean flg_usg1 =false; |
| | | for (OpportunityLineItem oli1 : retList) { |
| | | if(oli1.Product2.Asset_Model_No__c != null && oli1.Product2.Asset_Model_No__c.contains('USG-400')){ |
| | | flg_usg1 = true; |
| | | break; |
| | | } |
| | | } |
| | | for (OpportunityLineItem oli : retList) { |
| | | // 获取原字段值 |
| | | String oppId = oli.OpportunityId; |
| | |
| | | // 判断 询价产品是否含有 ENG 主机 产品 |
| | | string mapkey1 = 'ENG_主机'; |
| | | string mapkey2 = 'ENG_能量主机'; |
| | | //if (oli.Product2.Asset_Model_No__c != null && oli.Product2.Asset_Model_No__c.contains('USG-400')) { |
| | | // flg_usg = true; |
| | | // } |
| | | if (familyMap.containsKey(mapkey1) || familyMap.containsKey(mapkey2)) { |
| | | OpportunityLineItem FamMap1 = familyMap.get(mapkey1); |
| | | OpportunityLineItem FamMap2 = familyMap.get(mapkey2); |
| | | if((FamMap1 !=null && FamMap1.Product2.Asset_Model_No__c != null && FamMap1.Product2.Asset_Model_No__c.contains('USG-400')) || (FamMap2 !=null &&FamMap2.Product2.Asset_Model_No__c != null && FamMap2.Product2.Asset_Model_No__c.contains('USG-400'))){ |
| | | flg_usg = true; |
| | | } |
| | | system.debug('flg_usg=='+flg_usg+'========='+familyMap.size()); |
| | | // 只含有 ENG 主机产品 |
| | | if (familyMap.size() == 1 ) { |
| | | //能量打包 False |
| | | //能量主机 True |
| | | if (getOldStmsPackageSale || !getOldEnergyHost) { |
| | | //if (getOldStmsPackageSale || !getOldEnergyHost) { |
| | | updateOpportunity.STMS_Package_Sale__c = false; |
| | | //updateOpportunity.EnergyHost__c = true; |
| | | if(flg_usg){ |
| | | updateOpportunity.EnergyHost__c = true; |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | }else{ |
| | | updateOpportunity.EnergyHost__c = false; |
| | | } |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | //} |
| | | } else { |
| | | //判断是否都是主机 |
| | | Boolean principalMachine = true; |
| | |
| | | Boolean energyHost = true; |
| | | Boolean notContains = true; |
| | | Boolean principalMachinENG = false; |
| | | |
| | | for(String key :familyMap.keySet()) { |
| | | |
| | | |
| | |
| | | principalMachinENG = true; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | system.debug(energyHost+'===='+notContains+'===='+principalMachinENG); |
| | | |
| | | system.debug('==='+flg_usg1); |
| | | if (energyHost ) { |
| | | // 都是能量主机 |
| | | //能量打包 False |
| | | //能量主机 True |
| | | if (getOldStmsPackageSale || !getOldEnergyHost) { |
| | | system.debug('能量打包=='+getOldStmsPackageSale+'==能量主机=='+getOldEnergyHost); |
| | | //if (getOldStmsPackageSale || !getOldEnergyHost) { |
| | | updateOpportunity.STMS_Package_Sale__c = false; |
| | | //updateOpportunity.EnergyHost__c = true; |
| | | if(flg_usg1){ |
| | | updateOpportunity.EnergyHost__c = true; |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | }else{ |
| | | updateOpportunity.EnergyHost__c = false; |
| | | } |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | //} |
| | | |
| | | |
| | | } else { |
| | |
| | | // 只有 ENG 主机 |
| | | //能量打包 False |
| | | //能量主机 True |
| | | if (getOldStmsPackageSale || !getOldEnergyHost) { |
| | | //if (getOldStmsPackageSale || !getOldEnergyHost) { |
| | | updateOpportunity.STMS_Package_Sale__c = false; |
| | | //updateOpportunity.EnergyHost__c = true; |
| | | if(flg_usg1){ |
| | | updateOpportunity.EnergyHost__c = true; |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | }else{ |
| | | updateOpportunity.EnergyHost__c = false; |
| | | } |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | //} |
| | | } else { |
| | | if (principalMachinENG ) { |
| | | // 能量打包 True |
| | | // 能量主机 False |
| | | if (!getOldStmsPackageSale || getOldEnergyHost) { |
| | | //if (!getOldStmsPackageSale || getOldEnergyHost) { |
| | | updateOpportunity.STMS_Package_Sale__c = true; |
| | | updateOpportunity.EnergyHost__c = false; |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | } |
| | | //updateOpportunity.EnergyHost__c = false; |
| | | if(flg_usg1){ |
| | | updateOpportunity.EnergyHost__c = true; |
| | | } else { |
| | | if (getOldStmsPackageSale || getOldEnergyHost) { |
| | | updateOpportunity.STMS_Package_Sale__c = false; |
| | | updateOpportunity.EnergyHost__c = false; |
| | | } |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | //} |
| | | } else { |
| | | //if (getOldStmsPackageSale || getOldEnergyHost) { |
| | | updateOpportunity.STMS_Package_Sale__c = false; |
| | | //updateOpportunity.EnergyHost__c = false; |
| | | if(flg_usg1){ |
| | | updateOpportunity.EnergyHost__c = true; |
| | | }else{ |
| | | updateOpportunity.EnergyHost__c = false; |
| | | } |
| | | updateOpportunityMap.put(oppId, updateOpportunity); |
| | | |
| | | } |
| | | //} |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |