| | |
| | | public with sharing class OpportunityService{ |
| | | |
| | | private static String opp_search_field = ' Id, Name, Account_Name_F__c, OwnerId, Hospital__c, Opportunity_No__c, Opportunity_stage__c, StageName__c, Bidding_Project_Name_Bid__c, Department_Class__r.RecordTypeId '; |
| | | public static Decimal selectcancelcount{get;set;}//选择的取消的询价个数 |
| | | |
| | | private static String opp_search_field = ' Id, Name, Account_Name_F__c, OwnerId, Hospital__c, Opportunity_No__c, Opportunity_stage__c, StageName__c, stagename, Bidding_Project_Name_Bid__c, Department_Class__r.RecordTypeId '; |
| | | |
| | | // 查询已保存的数据 |
| | | //noStr 询价的ID |
| | |
| | | // String paremt2 = '01210000000QekK'; |
| | | // String paremt3 = '引合'; |
| | | // sql += ' and (recordtypeid = :paremt1 or recordtypeid = :paremt2) and stagename = :paremt3 '; |
| | | sql += ' and recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'有効\' '+ |
| | | sql += ' and recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'有効\' '; |
| | | // 这里有修改,别给盖了 |
| | | /** |
| | | DB202305552102 you 202305230 除了目标的都看 |
| | | ' and ( (SAP_Send_OK__c = true and SAP_Send_OK_Date__c = LAST_N_DAYS:183 ) '+ |
| | | 'or( stagename = \'敗戦\' and Final_Contract_Proceeded_Date__c = LAST_N_DAYS:183 ) or stagename = \'引合\' ) '; |
| | | **/ |
| | | // 这里有修改,别给盖了 |
| | | // 20210914 战略科室修改 |
| | | //if (departments != null && String.isNotBlank(departments)) { |
| | |
| | | if(proId.substring(0,15) == p_2M4.substring(0,15)){ |
| | | sql += ' AND OwnerId =\''+UserInfo.getUserId()+'\''; |
| | | } |
| | | System.debug('sql:'+sql); |
| | | // 20221014 ljh SWAG-CK28WT add end |
| | | sql += ' limit 50'; |
| | | //DB202305552102 you 202305230 除了目标的都看 |
| | | sql += ' and stageName != \'目標\''; |
| | | //DB202305552102 you 202305230 除了目标的都看 |
| | | //DB202309608863 chenjingwu 2023/10/11 招标项目待关联询价中排除变更用户询价 |
| | | sql += ' and If_Account_Change__c = false'; |
| | | //DB202309608863 chenjingwu 2023/10/11 招标项目待关联询价中排除变更用户询价 |
| | | sql += ' order by stageName limit 50'; |
| | | System.debug('sql1:'+sql); |
| | | List<Opportunity> arrays = Database.query(sql); |
| | | return JSON.serialize(arrays); |
| | | |
| | |
| | | @AuraEnabled |
| | | public static string GetNormalProductDataNotSave(String IdStr,String[] hospital, String departments) { |
| | | |
| | | //TODU |
| | | // QueryWrapper query = new QueryWrapper(Tender_information__c.SObjectType); |
| | | // query.eq('Id',IdStr); |
| | | |
| | |
| | | // String paremt3 = '引合'; |
| | | // sql += ' and (recordtypeid = :paremt1 or recordtypeid = :paremt2) and stagename = \'引合\' '; |
| | | // sql += ' and recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'有効\' '+ |
| | | sql += ' where recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'有効\' '+ |
| | | sql += ' where recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'有効\' '; |
| | | // 这里有修改,别给盖了 |
| | | /**DB202305552102 you 202305230 除了目标的都看 |
| | | ' and ( (SAP_Send_OK__c = true and SAP_Send_OK_Date__c = LAST_N_DAYS:183 ) '+ |
| | | 'or( stagename = \'敗戦\' and Final_Contract_Proceeded_Date__c = LAST_N_DAYS:183 ) or stagename = \'引合\' ) '; |
| | | **/ |
| | | // 这里有修改,别给盖了 |
| | | // 去掉已经关联的招标 |
| | | if(IdStr != null && String.isNotBlank(IdStr)) { |
| | |
| | | sql += ' and Hospital__c in :hospital'; |
| | | } |
| | | // 20221014 ljh SWAG-CK28WT add start |
| | | |
| | | String proId = UserInfo.getProfileId(); |
| | | String p_2M4 = System.Label.ProfileId_2M4; |
| | | if(proId.substring(0,15) == p_2M4.substring(0,15)){ |
| | | sql += ' AND OwnerId =\''+UserInfo.getUserId()+'\''; |
| | | } |
| | | System.debug('sql:'+sql); |
| | | |
| | | // 20221014 ljh SWAG-CK28WT add end |
| | | sql += ' limit 50'; |
| | | //DB202305552102 you 202305230 除了目标的都看 |
| | | sql += ' and stageName != \'目標\''; |
| | | //DB202305552102 you 202305230 除了目标的都看 |
| | | //DB202309608863 chenjingwu 2023/10/11 招标项目待关联询价中排除变更用户询价 |
| | | sql += ' and If_Account_Change__c = false'; |
| | | //DB202309608863 chenjingwu 2023/10/11 招标项目待关联询价中排除变更用户询价 |
| | | sql += ' order by stageName limit 200'; |
| | | System.debug('sql2:'+sql); |
| | | List<Opportunity> arrays = Database.query(sql); |
| | | |
| | | // Tender_information__c |
| | | return JSON.serialize(arrays); |
| | | |
| | |
| | | // flag 修改 招投标项目 关联询价时间的一个标识 |
| | | @AuraEnabled |
| | | public static string SaveData(String JsonSelected,String JsonNotSelected,String BiddingId,Boolean flag) { |
| | | |
| | | selectcancelcount=0; |
| | | try{ |
| | | // 新增招标-询价关联关系表,去掉更新询价上的最新招标信息 20210813 start |
| | | // if(JsonSelected != null && JsonSelected != '' && JsonSelected !='[]') |
| | |
| | | sql += 'Hospital2__c, '; |
| | | sql += 'Hospital3__c, '; |
| | | sql += 'Hospital4__c, '; |
| | | sql += 'OpportunityNum__c, ';//20230714 you DB202306372336 |
| | | sql += 'publicDate__c, ';// 20221114 ljh SWAG-CKL5UC |
| | | sql += 'Tender_Order__c, '; //20220620 you SWAG-CFD4SU |
| | | sql += 'subInfoType__c '; //20220718 you 招标任务 |
| | | sql += 'subInfoType__c, '; //20220718 you 招标任务 |
| | | sql += 'status__c, ProjectRestartFLG__c,IsTerminate__c,TerminateApprovalStatus__c, '; |
| | | sql += 'TerminateApprovalTime__c ';//DB202305552102 增加项目终止时间 只有申请项目终止才允许关联取消的询价 |
| | | sql += 'FROM Tender_information__c WHERE Id = :BiddingId order by Tender_Order__c desc,relativeTime_F__c desc'; //20220620 you SWAG-CFD4SU 增加 order by |
| | | List<Tender_information__c> arrays = Database.query(sql); |
| | | Tender_information__c tender = arrays[0]; |
| | |
| | | List<Opportunity> upd_opps = new List<Opportunity>(); |
| | | List<Opportunity> upd_opps1 = new List<Opportunity>(); |
| | | List<String> owners = new List<String>(); |
| | | Integer links=0; |
| | | // 插入link |
| | | if (all_selected_list.size() > 0) { |
| | | //取消状态 询价判断 |
| | | Map<String,String> oppStagename= new Map<String,String>(); |
| | | for (Opportunity opp : all_selected_list) { //当前选择的询价 |
| | | if(opp.stagename=='削除'){ |
| | | oppStagename.put(opp.Id,opp.stagename); |
| | | selectcancelcount +=1; |
| | | } |
| | | } |
| | | |
| | | system.debug(all_selected_list.size()+'==oppStagename=='+oppStagename +'==selectcancelcount=='+selectcancelcount); |
| | | if(null!= oppStagename && oppStagename.size()>0 && tender.TerminateApprovalTime__c ==null){ |
| | | return '只有申请项目终止才允许关联取消的询价'; |
| | | /** |
| | | List<Tender_Opportunity_Link__c> del_links = [select Id,Opportunity__c,Opportunity__r.Name,Opportunity__r.Opportunity_No__c,Tender_information__r.status__c from Tender_Opportunity_Link__c where Opportunity__c = :oppStagename.keySet() and Tender_information__r.status__c !='09.终止']; |
| | | system.debug('==del_links=='+del_links); |
| | | Map<String,String> deldate= new Map<String,String>(); |
| | | if(del_links != null && del_links.size() > 0){ |
| | | for(Tender_Opportunity_Link__c ten:del_links){ |
| | | deldate.put(ten.Opportunity__c,ten.Opportunity__r.Name); |
| | | } |
| | | } |
| | | if(null!=deldate&& deldate.size()>0){ |
| | | for (String del : deldate.keySet()) { |
| | | qxopp+=deldate.get(del)+','; |
| | | } |
| | | } |
| | | **/ |
| | | } |
| | | // 设置招标所有人 |
| | | // OppOwnerId = all_selected_list[0].ownerId; |
| | | // 初始化参数 |
| | |
| | | } |
| | | // 插入link |
| | | if (add_list.size() > 0) { |
| | | links=add_list.size(); |
| | | insert add_list; |
| | | } |
| | | // 恢复trigger标记 |
| | |
| | | } |
| | | opp.Tender_Number__c = returncount; |
| | | // 20221114 ljh SWAG-CKL5UC start |
| | | if(opp.LeakageNumber__c != 1 && tender.publicDate__c != null && String.isNotBlank(opp.LeadSource) && opp.LeadSource == '招标网' && opp.Created_Day__c > tender.publicDate__c){ |
| | | //20230727 lt DB202307367354 【招标项目】漏单计算逻辑修改 delete && String.isNotBlank(opp.LeadSource) && opp.LeadSource == '招标网' |
| | | if(opp.LeakageNumber__c != 1 && tender.publicDate__c != null && opp.Created_Day__c > tender.publicDate__c){ |
| | | opp.LeakageNumber__c = 1; |
| | | } |
| | | // 20221114 ljh SWAG-CKL5UC start |
| | |
| | | tender.IsReactionOpp__c = true; |
| | | // 查询招标数量并更新 |
| | | //List<Tender_Opportunity_Link__c> tenderLinks = [SELECT id, Tender_information__c, Opportunity__c, Opportunity__r.Hospital__c FROM Tender_Opportunity_Link__c WHERE Tender_information__c = :tender.Id]; |
| | | tender.OpportunityNum__c = tenderLinks != null ? tenderLinks.size() : 0; |
| | | //tender.OpportunityNum__c = tenderLinks != null ? tenderLinks.size() : 0; |
| | | //20230714 you DB202306372336 原因,当前担当只能看到自己得关联询价,看不到其他人得,所以询价数量也只能累计自己的 |
| | | tender.OpportunityNum__c = tender.OpportunityNum__c != null ? tender.OpportunityNum__c + links :links ; |
| | | // 关联询价时间和是否相关状态 |
| | | if (tender.IsRelateProject__c != '是') { |
| | | tender.IsRelateProject__c = '是'; |
| | |
| | | tender.Hospital3__c = fiveHospitalMap.get('Hospital3__c'); |
| | | tender.Hospital4__c = fiveHospitalMap.get('Hospital4__c'); |
| | | } |
| | | //状态为终止 && 全部选择的是取消时,不进行项目重启 |
| | | if(tender.status__c == '09.终止' && selectcancelcount !=0 && selectcancelcount != all_selected_list.size()){ |
| | | tender.ProjectRestartFLG__c = true; |
| | | tender.IsTerminate__c = null; |
| | | tender.TerminateApprovalTime__c = null; |
| | | tender.TerminateApprovalStatus__c = null; |
| | | } |
| | | update tender; |
| | | // 招标-询价关联修改 20210813 end |
| | | return '成功'; |
| | | }catch (Exception ex) { |
| | | return ex.getMessage(); |
| | | return '成功'; |
| | | }catch (Exception e) { |
| | | // String eMsg = e.getMessage(); |
| | | // Integer left = eMsg.indexOf(':')+1; |
| | | // Integer right = eMsg.indexOf(','); |
| | | // return eMsg.substring(left,right); |
| | | return e.getMessage(); |
| | | } |
| | | |
| | | } |