From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp
---
force-app/main/default/classes/LexDealerInquiryModifyStateController.cls | 866 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 866 insertions(+), 0 deletions(-)
diff --git a/force-app/main/default/classes/LexDealerInquiryModifyStateController.cls b/force-app/main/default/classes/LexDealerInquiryModifyStateController.cls
new file mode 100644
index 0000000..efb18df
--- /dev/null
+++ b/force-app/main/default/classes/LexDealerInquiryModifyStateController.cls
@@ -0,0 +1,866 @@
+public with sharing class LexDealerInquiryModifyStateController {
+ public static List<OpportunityInfo> oppRecords { get; set; }
+ // 銉氥兗銈搞儸銈ゃ偄銈︺儓銇儏鍫便倰鍙栧緱
+ private static Map<String, Map<String, String>> editLayoutItemRWMap = New Map<String, Map<String, String>>();
+ // private Map<String, Map<String, String>> editLayoutItemRWMapRt = null;
+ public static List<OpportunityInfo> OPPORTList { get; set; }
+ /*****************妞滅储鐢�******************/
+
+ /*******************妫�绱㈠睘鎬у��*******************/
+
+ public static String accSearch { get; set; }//缁忛攢鍟嗗尰闄�
+ public static String aooSearch { get; set; }//鎷呭綋浜�
+ public static String numtext1 { get; set; } //鏁版嵁瀛楁01
+ public static String numtext { get; set; }//鏁版嵁瀛楁03
+ public static String numtext2 { get; set; } //鏁版嵁瀛楁02
+ public static String timetext1 { get; set; } //鏃ユ湡01
+ public static String timetext2 { get; set; } //鏃ユ湡02
+ public static Agency_Opportunity__c tmpAO { get; set; } //妫�绱㈡棩鏈熺敤
+ public static Agency_Opportunity__c tmpBO { get; set; } //妫�绱㈡棩鏈熺敤
+ public static String limits { get; set; }//鏃ユ湡03
+
+ public static List<SelectOption> dateOpts { get; private set; }
+ public static List<CusOption> textCusOpts;
+ public static List<SelectOption> textOpts { get; private set; }
+
+ public static List<CusOption> timeCusOpts;
+ public static List<SelectOption> timeOpts { get; private set; }
+
+ public static List<CusOption> equalCusOpts;
+ public static List<SelectOption> equalOpts { get; private set; }
+ public static List<SelectOption> timeequalOpts { get; private set; }
+ public static List<CusOption> limitCusOpts;
+ public static List<SelectOption> limitOpts { get; private set; }
+
+ /*****************鐢婚潰琛ㄧずBean******************/
+ public static Integer oppCount { get; set; }
+ public static String saveType { get; set; }
+
+ public static String sortKey { get; set; }
+ public static String preSortKey { get; set; }
+ public static Boolean sortOrderAsc { get; set; }
+ public static String[] sortOrder { get; set; }
+ public static String[] columus = new String[] {'Id'};
+ public static String[] selColumus = null;
+ public static Set<String> columusSet = new Set<String> {'Id'};
+
+ // 椤圭洰set 瀛楁鏍囩
+ public static List<String> titleLeft { get; private set; }
+ public static List<String> titleRight { get; private set; }
+ // 椤圭洰set 瀛楁鍚�
+ public static List<List<String>> columnsLeftApi { get; private set; } // 鍙傜収闋呯洰鐢�
+ public static List<List<String>> columnsRightApi { get; private set; } // 鍙傜収闋呯洰鐢�
+ public static List<String> columnLeftCss { get; private set; } // css 鐢�
+ public static List<String> columnRightCss { get; private set; } // css 鐢�
+ public static Map<String, String> columnLeftRW { get; private set; } // r,w,wm鐢�
+ public static Map<String, String> columnRightRW { get; private set; } // r,w,wm鐢�
+ private static String strColumus;
+ private static String strRtColumus;
+
+ @TestVisible private static String accTypeForSort = null;
+ private static Integer oppLimit = 500;
+
+ // page
+ public static Integer pagesize { get; set; }
+ public static Integer pageToken { get; set; }
+ public static String sortField { get; set; }
+ // public static String sortOrder { get; set; }
+
+ public static Integer totalcount { get; set; }
+
+ public LexDealerInquiryModifyStateController() {
+ }
+
+ @AuraEnabled
+ public static Results init(Integer pageSizeLWC,Integer pageTokenLWC) {
+ pageSize = pageSizeLWC;
+ pageToken = pageTokenLWC;
+ Results results = new Results();
+ oppRecords = new List<OpportunityInfo>();
+
+ //dateOpts = new List<SelectOption>();
+ //dateOpts.add(new SelectOption('', '--鏃�--'));
+ //dateOpts.add(new SelectOption('Registration_Day__c', '鐧诲綍鏃�'));
+ //dateOpts.add(new SelectOption('Ban_On_Use_Date__c', '绂佺敤鏃ユ湡'));
+
+ //鏁版嵁瀛楁涓嬫媺鍒楄〃
+ // textOpts = new List<SelectOption>();
+ // textOpts.add(new SelectOption('', '--鏃�--'));
+ // textOpts.add(new SelectOption('Agency_Opportunity_No__c', '缁忛攢鍟嗚浠风紪鐮�'));
+ // textOpts.add(new SelectOption('Agency__r.Name', '缁忛攢鍟�'));
+ // textOpts.add(new SelectOption('Agency_Hospital__r.Name', '缁忛攢鍟嗗尰闄�'));
+ // textOpts.add(new SelectOption('Department_Cateogy__c', '绉戝鍒嗙被'));
+ // textOpts.add(new SelectOption('Change_To_Opportunity_T__c', '璇环鍚嶇О'));
+ // // textOpts.add(new SelectOption('Name', '璇环鍚嶇О'));
+ // textOpts.add(new SelectOption('StageName__c', '璇环闃舵'));
+ // textOpts.add(new SelectOption('Oly_Inquiry_Status1__c', '鐘舵��1'));
+ // //绮剧悽绉戞妧 zxk 2021-08-25 start
+ // // textOpts.add(new SelectOption('Oly_Inquiry_Status2__c', '鐘舵��2'));
+ // textOpts.add(new SelectOption('Oly_Inquiry_Stage__c', 'Oly璇环闃舵'));
+ // //绮剧悽绉戞妧 zxk 2021-08-25 end
+ // textOpts.add(new SelectOption('Hospital_City_Master__c', '甯�'));
+
+ //custom option
+ textCusOpts = new List<CusOption>();
+ textCusOpts.add(new CusOption('', '--鏃�--'));
+ textCusOpts.add(new CusOption('Agency_Opportunity_No__c', '缁忛攢鍟嗚浠风紪鐮�'));
+ textCusOpts.add(new CusOption('Agency__r.Name', '缁忛攢鍟�'));
+ textCusOpts.add(new CusOption('Agency_Hospital__r.Name', '缁忛攢鍟嗗尰闄�'));
+ textCusOpts.add(new CusOption('Department_Cateogy__c', '绉戝鍒嗙被'));
+ textCusOpts.add(new CusOption('Change_To_Opportunity_T__c', '璇环鍚嶇О'));
+ textCusOpts.add(new CusOption('StageName__c', '璇环闃舵'));
+ textCusOpts.add(new CusOption('Oly_Inquiry_Status1__c', '鐘舵��1'));
+ textCusOpts.add(new CusOption('Oly_Inquiry_Stage__c', 'Oly璇环闃舵'));
+ textCusOpts.add(new CusOption('Hospital_City_Master__c', '甯�'));
+
+
+ // textOpts.add(new SelectOption('Agency_Hospital__r.Hospital__r.Salesdepartment_HP__c', '閿�鍞湰閮�'));
+ // textOpts.add(new SelectOption('Agency_Hospital__r.Hospital__r.State_Master__r.Name', '鐪�'));
+ // textOpts.add(new SelectOption('Agency_Hospital__r.Hospital__r.City_Master__r.Name', '甯�'));
+ //鏃ユ湡瀛楁涓嬫媺鍒楄〃
+ // timeOpts = new List<SelectOption>();
+ // timeOpts.add(new SelectOption('', '--鏃�--'));
+ // timeOpts.add(new SelectOption('Created_Day__c', '鍒涘缓鏃�'));
+ // timeOpts.add(new SelectOption('Bid_Planned_Date__c', '棰勬祴鎷涙爣鏃�'));
+ // timeOpts.add(new SelectOption('Forecasted_Bid_Date__c', '棰勬祴涓爣鏃�'));
+ // timeOpts.add(new SelectOption('Close_Forecasted_Date__c', '棰勬祴涓嶰LY绛剧害鏃�'));
+ // timeOpts.add(new SelectOption('Lost_Opportunity_Date__c', '澶卞崟鏃ユ湡'));
+ // timeOpts.add(new SelectOption('Deleted_Reason_Date__c', '鍙栨秷鏃ユ湡'));
+
+ timeCusOpts = new List<CusOption>();
+ timeCusOpts.add(new CusOption('', '--鏃�--'));
+ timeCusOpts.add(new CusOption('Created_Day__c', '鍒涘缓鏃�'));
+ timeCusOpts.add(new CusOption('Bid_Planned_Date__c', '棰勬祴鎷涙爣鏃�'));
+ timeCusOpts.add(new CusOption('Forecasted_Bid_Date__c', '棰勬祴涓爣鏃�'));
+ timeCusOpts.add(new CusOption('Close_Forecasted_Date__c', '棰勬祴涓嶰LY绛剧害鏃�'));
+ timeCusOpts.add(new CusOption('Lost_Opportunity_Date__c', '澶卞崟鏃ユ湡'));
+ timeCusOpts.add(new CusOption('Deleted_Reason_Date__c', '鍙栨秷鏃ユ湡'));
+
+
+
+ //鏁版嵁瀛楁涓棿杩炴帴绗﹀彿
+ // equalOpts = new List<SelectOption>();
+ // equalOpts.add(new SelectOption('=', '绛変簬'));
+ // equalOpts.add(new SelectOption('<>', '涓嶇瓑浜�'));
+ // equalOpts.add(new SelectOption('<', '<'));
+ // equalOpts.add(new SelectOption('>', '>'));
+ // equalOpts.add(new SelectOption('<=', '<='));
+ // equalOpts.add(new SelectOption('>=', '>='));
+ // equalOpts.add(new SelectOption('contains', '鍖呭惈'));
+ // equalOpts.add(new SelectOption('notcontains', '涓嶅寘鍚�'));
+ // equalOpts.add(new SelectOption('starts with', '璧峰瀛楃'));
+
+ equalCusOpts = new List<CusOption>();
+ equalCusOpts.add(new CusOption('=', '绛変簬'));
+ equalCusOpts.add(new CusOption('<>', '涓嶇瓑浜�'));
+ equalCusOpts.add(new CusOption('<', '<'));
+ equalCusOpts.add(new CusOption('>', '>'));
+ equalCusOpts.add(new CusOption('<=', '<='));
+ equalCusOpts.add(new CusOption('>=', '>='));
+ equalCusOpts.add(new CusOption('contains', '鍖呭惈'));
+ equalCusOpts.add(new CusOption('notcontains', '涓嶅寘鍚�'));
+ equalCusOpts.add(new CusOption('starts with', '璧峰瀛楃'));
+
+ //鏃ユ湡瀛楁杩炴帴绗﹀彿
+ //timeequalOpts = new List<SelectOption>();
+ //timeequalOpts.add(new SelectOption('=', '绛変簬'));
+ //timeequalOpts.add(new SelectOption('<>', '涓嶇瓑浜�'));
+ //timeequalOpts.add(new SelectOption('<', '<'));
+ //timeequalOpts.add(new SelectOption('>', '>'));
+ //timeequalOpts.add(new SelectOption('<=', '<='));
+ //timeequalOpts.add(new SelectOption('>=', '>='));
+ //鏁版嵁鏄剧ず鏉℃暟
+ // limitOpts = new List<SelectOption>();
+ // limitOpts.add(new SelectOption('10', '10'));
+ // limitOpts.add(new SelectOption('20', '20'));
+ // limitOpts.add(new SelectOption('50', '50'));
+ // limitOpts.add(new SelectOption('100', '100'));
+ // limitOpts.add(new SelectOption('200', '200'));
+ // limitOpts.add(new SelectOption('1000', '鍏ㄩ儴'));
+ //鏁版嵁鏄剧ず榛樿鏉℃暟
+ limits = '20';
+
+ limitCusOpts = new List<CusOption>();
+ limitCusOpts.add(new CusOption('10', '10'));
+ limitCusOpts.add(new CusOption('20', '20'));
+ limitCusOpts.add(new CusOption('50', '50'));
+ limitCusOpts.add(new CusOption('100', '100'));
+ limitCusOpts.add(new CusOption('200', '200'));
+ limitCusOpts.add(new CusOption('1000', '鍏ㄩ儴'));
+ try{
+ PartnerSoapSforceCom.Soap soap = new PartnerSoapSforceCom.Soap();
+ soap.SessionHeader = new PartnerSoapSforceCom.SessionHeader_element();
+ soap.SessionHeader.sessionId = UserInfo.getSessionId();
+ soap.endpoint_x = URL.getSalesforceBaseUrl().toExternalForm() + '/partner/services/Soap/u/33.0';
+ // soap.endpoint_x = URL.getSalesforceBaseUrl().toExternalForm() + '/services/Soap/u/33.0';
+
+ PartnerSoapSforceCom.DescribeLayoutResult dlr = new PartnerSoapSforceCom.DescribeLayoutResult();
+ if (System.Test.isRunningTest()) {
+ // UnitTest 鐢�
+ // PartnerSoapSforceCom.DescribeLayoutResult dlr = new PartnerSoapSforceCom.DescribeLayoutResult();
+ PartnerSoapSforceCom.RecordTypeMapping rtMap = new PartnerSoapSforceCom.RecordTypeMapping();
+ PartnerSoapSforceCom.DescribeLayout editLayout = new PartnerSoapSforceCom.DescribeLayout();
+ PartnerSoapSforceCom.DescribeLayoutSection editLayoutSection = new PartnerSoapSforceCom.DescribeLayoutSection();
+ PartnerSoapSforceCom.DescribeLayoutRow layoutRow = new PartnerSoapSforceCom.DescribeLayoutRow();
+ PartnerSoapSforceCom.DescribeLayoutItem layoutItem = new PartnerSoapSforceCom.DescribeLayoutItem();
+ PartnerSoapSforceCom.DescribeLayoutComponent layoutComponent = new PartnerSoapSforceCom.DescribeLayoutComponent();
+ dlr.recordTypeMappings = new List<PartnerSoapSforceCom.RecordTypeMapping>();
+ dlr.recordTypeMappings.add(rtMap);
+ rtMap.recordTypeId = 'recordTypeId';
+ dlr.layouts = new List<PartnerSoapSforceCom.DescribeLayout>();
+ dlr.layouts.add(editLayout);
+ editLayout.editLayoutSections = new List<PartnerSoapSforceCom.DescribeLayoutSection>();
+ editLayout.editLayoutSections.add(editLayoutSection);
+ editLayoutSection.layoutRows = new List<PartnerSoapSforceCom.DescribeLayoutRow>();
+ editLayoutSection.layoutRows.add(layoutRow);
+ layoutRow.layoutItems = new List<PartnerSoapSforceCom.DescribeLayoutItem>();
+ layoutRow.layoutItems.add(layoutItem);
+ layoutItem.layoutComponents = new List<PartnerSoapSforceCom.DescribeLayoutComponent>();
+ layoutItem.layoutComponents.add(layoutComponent);
+ // return dlr;
+ } else {
+ dlr = soap.describeLayout('Agency_Opportunity__c', null, null);
+ // dlr = soap.describeLayout('asdas', null, null);
+ }
+
+ // PartnerSoapSforceCom.DescribeLayoutResult dlr = soap.describeLayout('Agency_Opportunity__c', null, null);
+ Map<String, PartnerSoapSforceCom.DescribeLayout> layputMap = new Map<String, PartnerSoapSforceCom.DescribeLayout>();
+ for (PartnerSoapSforceCom.DescribeLayout layout : dlr.layouts) {
+ layputMap.put(layout.id, layout);
+ }
+ for (Integer lidx = 0; lidx < dlr.recordTypeMappings.size(); lidx++) {
+ String recordTypeId = dlr.recordTypeMappings[lidx].recordTypeId;
+ Map<String, String> rtnInner = new Map<String, String>();
+ editLayoutItemRWMap.put(recordTypeId, rtnInner);
+ System.debug('recordTypeId=' + recordTypeId);
+ PartnerSoapSforceCom.DescribeLayout layout = layputMap.get(dlr.recordTypeMappings[lidx].layoutId);
+ for (PartnerSoapSforceCom.DescribeLayoutSection section : layout.editLayoutSections) {
+ for (PartnerSoapSforceCom.DescribeLayoutRow row : section.layoutRows) {
+ for (PartnerSoapSforceCom.DescribeLayoutItem item : row.layoutItems) {
+ if (item.layoutComponents != null && item.layoutComponents.size() > 0
+ && String.isBlank(item.layoutComponents[0].value) == false) {
+ rtnInner.put(item.layoutComponents[0].value, 'r');
+ if (item.editableForUpdate) {
+ rtnInner.put(item.layoutComponents[0].value, 'w');
+ }
+ if (item.required) {
+ rtnInner.put(item.layoutComponents[0].value, 'wm');
+ }
+ }
+ }
+ }
+ }
+ }
+ // editLayoutItemRWMap = SoapApi.getEditRWByRecordType('Agency_Opportunity__c', null);
+ tmpAO = new Agency_Opportunity__c();
+ tmpBO = new Agency_Opportunity__c();
+ setLayoutRWInfo();
+ searchOppInner(strColumus,strRtColumus,accSearch,aooSearch,numtext,numtext1,numtext2,sortKey);
+ System.debug('limitCusOpts==>'+limitCusOpts);
+ System.debug('searchOppInner==>'+ searchOppInner(strColumus,strRtColumus,accSearch,aooSearch,numtext,numtext1,numtext2,sortKey));
+ LexDealerInquiryModifyStateController.Results returnList = searchOppInner(strColumus,strRtColumus,accSearch,aooSearch,numtext,numtext1,numtext2,sortKey);
+ System.debug('returnList==>'+ returnList);
+ //鍒嗛〉
+ PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
+ totalCount = oppRecords.size();
+ paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null;
+ paginatedAccounts.recordStart = pageToken + 1;
+ paginatedAccounts.pageNumber = pageToken / pageSize + 1;
+ Integer recordEnd = pageSize * paginatedAccounts.pageNumber;
+ paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount;
+ paginatedAccounts.totalRecords = totalCount;
+
+ Integer startIdx;
+ Integer endIdx;
+ List<OpportunityInfo> pageoppRecords = new List<OpportunityInfo>();
+ startIdx = pageToken;
+ endIdx = startIdx + pageSize;
+ if (endIdx > oppRecords.size()) {
+ endIdx = oppRecords.size();
+ }
+ for (Integer i = startIdx; i < endIdx; i++) {
+ pageoppRecords.add(oppRecords.get(i));
+ }
+ //end
+
+ //鍥炰紶鍙傛暟
+ results.result = 'Success';
+ results.oppRecords = oppRecords;
+ results.timeCusOpts = timeCusOpts;
+ results.equalCusOpts = equalCusOpts;
+ results.limitCusOpts = limitCusOpts;
+ results.textCusOpts = textCusOpts;
+ results.limits = limits;
+ results.strColumus = strColumus;
+ results.strRtColumus = strRtColumus;
+ results.paginatedAccounts = paginatedAccounts;
+ results.pageoppRecords = pageoppRecords;
+ results.Msg = returnList.Msg;
+
+
+ System.debug('results==>'+results);
+
+ }catch (Exception e) {
+ results.result = 'Fail';
+ results.Msg = e.getLineNumber()+'---'+e.getMessage();
+ }
+
+ // return null;
+ return results;
+ }
+ //鐢ㄤ簬鑾峰彇缁忛攢鍟嗚浠峰瓧娈甸泦鍜岃浠峰瓧娈甸泦浠ュ強鐩稿簲鐨勮鍐欐潈闄�
+ @TestVisible private static void setLayoutRWInfo() {
+ // if (this.sortOrder == null) {
+ if (sortOrder == null) {
+ selColumus = new String[] {};
+ strColumus = '';
+ ID accRecordTypeId = accTypeForSort;
+
+ Map<String, String> DESC_RW = editLayoutItemRWMap.get('012100000006KW7AAM');
+ Map<String, Schema.FieldSet> fsMap = Schema.getGlobalDescribe().get('Agency_Opportunity__c').getDescribe().fieldSets.getMap();
+ Schema.FieldSet fs = fsMap.get('DealerInquiryModifyState');
+ List<FieldSetMember> fsmList = fs.getFields();
+ titleLeft = new List<String>();
+ List<String> columnLeft = new List<String>();
+ columnLeftCss = new List<String>();
+ columnsLeftApi = new List<List<String>>();
+ columnLeftRW = new Map<String, String>();
+ for (FieldSetMember fsm : fsmList) {
+ titleLeft.add(fsm.getLabel());
+ columnLeft.add(fsm.getFieldPath());
+ List<String> splitFieldPath = fsm.getFieldPath().split('\\.');
+ columnsLeftApi.add(splitFieldPath);
+ if (DESC_RW == null) {
+ columnLeftRW.put(fsm.getFieldPath(), 'r');
+ } else if (splitFieldPath.size() == 1) {
+ String rw = DESC_RW.get(fsm.getFieldPath());
+ if (rw != null) {
+ columnLeftRW.put(fsm.getFieldPath(), rw);
+ } else {
+ columnLeftRW.put(fsm.getFieldPath(), 'r');
+ }
+ } else {
+ columnLeftRW.put(fsm.getFieldPath(), 'r');
+ }
+ }
+ for (String str : columnLeftRW.keySet()) {
+ System.debug(str + '=+=+=+=+=' + columnLeftRW.get(str));
+ }
+ for (String s : columnLeft) {
+ if (columusSet.contains(s) == false) {
+ columus.add(s);
+ columusSet.add(s);
+ }
+ if (selColumus.contains(s) == false) {
+ selColumus.add(s);
+ }
+ columnLeftCss.add(s.replace('.', '_'));
+ }
+ strRtColumus = '';
+ Schema.FieldSet fsRt = fsMap.get('DealerOpportunity');
+ List<FieldSetMember> fsmListRt = fsRt.getFields();
+ titleRight = new List<String>();
+ List<String> columnRight = new List<String>();
+ columnRightCss = new List<String>();
+ columnsRightApi = new List<List<String>>();
+ columnRightRW = new Map<String, String>();
+
+ for (FieldSetMember fsm : fsmListRt) {
+ titleRight.add(fsm.getLabel());
+ columnRight.add(fsm.getFieldPath());
+ List<String> splitFieldPath = fsm.getFieldPath().split('\\.');
+ columnsRightApi.add(splitFieldPath);
+ if (DESC_RW == null) {
+ columnRightRW.put(fsm.getFieldPath(), 'r');
+ } else if (splitFieldPath.size() == 1) {
+ String rw = DESC_RW.get(fsm.getFieldPath());
+ if (rw != null) {
+ columnRightRW.put(fsm.getFieldPath(), rw);
+ } else {
+ columnRightRW.put(fsm.getFieldPath(), 'r');
+ }
+ } else {
+ columnRightRW.put(fsm.getFieldPath(), 'r');
+ }
+ }
+ for (String s : columnRight) {
+ selColumus.add(s);
+ if (strRtColumus == '') {
+ strRtColumus = s;
+ } else {
+ strRtColumus = strRtColumus + ',' + s;
+ }
+ columnRightCss.add(s.replace('.', '_'));
+
+ }
+ strColumus = String.join(columus, ',');
+ System.debug('======-======-======strColumus' + strColumus);
+ System.debug('======-======-======strRtColumus' + strRtColumus);
+ sortOrderAsc = true;
+ sortOrder = new String[selColumus.size()];
+ for (Integer i = 0; i < selColumus.size(); i++) sortOrder[i] = '銆�';
+ }
+ }
+ //鐢ㄤ簬鎷兼帴SOQL璇彞 鏍规嵁涓嶅悓妫�绱㈡潯浠舵嫾鎺ヤ笉鍚孲OQL璇彞銆�
+ @AuraEnabled
+ public static Results searchOppInner(String strColumus,String strRtColumus,String accSearch,String aooSearch,String numtext,String numtext1,String numtext2,String sortKeyLWC) {
+ Results results = new Results();
+ sortKey = sortKeyLWC;
+
+ //SOQL:鎷兼帴妫�绱㈡潯浠朵互鍙婄粡閿�鍟嗚浠风殑SOQL璇彞
+ // List<User> userlist2 = [select id,name from user where Contactid in (select id from Contact)];
+ // String querySoql = '';
+ // Integer queryint = 0;
+ // for(User user : userlist2){
+ // if(queryint == 0){
+ // querySoql += '\''+user.Id+'\'';
+ // queryint++;
+ // }else{
+ // querySoql += ',\''+user.Id+'\'';
+ // }
+
+ // }
+ // System.debug('pppqqq222'+userlist2);
+ // System.debug('pppqqq333'+querySoql);
+ // AND Ownerid in ( '+querySoql+')'
+
+ String soql = 'SELECT Change_To_Opportunity__r.Id , Agency_Hospital__r.Name , Product_Category1__r.Name , Product_Category2__r.Name , Product_Category3__r.Name , Agency_Person__r.Name , Agency__r.Name , Change_To_Opportunity__r.Name ,' +
+ strColumus + ',' + strRtColumus +
+ ' FROM Agency_Opportunity__c WHERE recordType.DeveloperName = \'Opportunity\' ';
+ //鏁版嵁瀛楁锛氱粡閿�鍟嗗尰闄� +SOQL
+ if (!String.isBlank(accSearch)) {
+ accSearch = accSearch.trim();
+ // soql += 'AND Agency__r.Name ' + ' LIKE \'%' + accSearch + '%\' ';
+ soql += 'AND Agency_Hospital__r.Name ' + ' LIKE \'%' + accSearch + '%\' ';
+ }
+ //鏁版嵁瀛楁锛氭媴褰撲汉 +SOQL
+ if (!String.isBlank(aooSearch)) {
+ String newAooSearch = aooSearch.trim();
+ // soql += 'AND Change_To_Opportunity__r.Owner.Alias = ' + '\'' + newAooSearch + '\'';//Name
+ soql += 'AND Agency_PersonName__c ' + ' LIKE \'%' + newAooSearch + '%\' ';
+ }
+ //鏁版嵁瀛楁锛�03 鎵嬪姩濉啓椤� 鍑嗗璋冪敤makeTextSql锛�
+ if (!String.isBlank(numtext)) {
+ String newNumtext = numtext.trim();
+ String str = makeTextSql(numtext1, numtext2, newNumtext);
+ soql += str;
+ System.debug('+++++++++++++=============++++++++++++++++++' + soql);
+ }
+ //鐐瑰嚮鎺掑簭
+ // System.debug('==-=-=-=-=-=this.sortKey'+Integer.valueOf(this.sortKey)+'===titleLeft.size'+titleLeft.size()+7);
+ //start娉ㄩ噴 by WangXueqin
+ // if (String.isBlank(this.sortKey)) {
+ // soql += ' order by LastModifiedDate desc limit ' + Integer.valueOf(limits);
+ // } else {
+ // if (Integer.valueOf(this.sortKey) <= titleLeft.size() + 7) {
+ // soql += ' order by ' + this.selColumus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last') + ' limit ' + Integer.valueOf(limits);
+ // } else {
+ // soql += ' order by Change_To_Opportunity__r.' + this.selColumus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last') + ' limit ' + Integer.valueOf(limits);
+ // }
+ // }
+ // system.debug(soql);
+ //end
+
+
+
+ // List<User> userlist1 = [select id,name from user ];
+ // System.debug('pppqqq111'+userlist1);
+
+ List<Agency_Opportunity__c> InfoList = Database.query(soql);
+ System.debug('+++++++-------------------'+InfoList);
+
+ // List<Agency_Opportunity__c> InfoList = ControllerUtil.DatabaseQuery(soql);
+ // System.debug('InfoList[0].Change_To_Opportunity_T__c'+InfoList[0].Change_To_Opportunity_T__c);
+ for (Agency_Opportunity__c apt : InfoList) {
+ System.debug('pppqqq' + apt.Agency_PersonName__c + '====' + apt.Name);
+ }
+
+ List<OpportunityInfo> oppinfoList = new List<OpportunityInfo>();
+ if (InfoList != null && InfoList.size() > 0) {
+ String str = '';
+ for (Agency_Opportunity__c agc : InfoList) {
+ if (str == '' && agc.Change_To_Opportunity__r.Id != null) {
+ str = '\'' + agc.Change_To_Opportunity__r.Id + '\'';
+ } else if (agc.Change_To_Opportunity__r.Id != null) {
+ str += ',\'' + agc.Change_To_Opportunity__r.Id + '\'';
+
+ }
+ }
+ for (Agency_Opportunity__c info : InfoList) {
+ oppinfoList.add(new OpportunityInfo(info, info));
+ oppinfoList[oppinfoList.size() - 1].lineNo = oppinfoList.size() - 1;
+ }
+ }
+ oppRecords = oppinfoList.clone();
+ oppCount = oppRecords.size();
+ //鏄剧ず鎻愮ず鎿嶄綔淇℃伅
+ if (String.isBlank(saveType) && String.isBlank(sortKey)) {
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '鍙栧緱鏈�杩戠殑 ' + oppCount + ' 鏉℃暟鎹�'));
+ results.result = 'Success';
+ results.Msg = '鍙栧緱鏈�杩戠殑 ' + oppCount + ' 鏉℃暟鎹�';
+ return results;
+ } else if (!String.isBlank(sortKey)) {
+ if (oppCount > oppLimit) {
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '鏁版嵁瓒呰繃' + oppLimit + '浠讹紝鍙樉绀哄墠' + oppLimit + '浠�'));
+ results.result = 'Success';
+ results.Msg = '鏁版嵁瓒呰繃' + oppLimit + '浠讹紝鍙樉绀哄墠' + oppLimit + '浠�';
+
+ } else {
+ results.result = 'Success';
+ results.Msg = '鍏辨湁 ' + oppCount + ' 鏉℃暟鎹�';
+
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '鍏辨湁 ' + oppCount + ' 鏉℃暟鎹�'));
+ }
+ } else {
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '鍏辨湁 ' + oppCount + ' 鏉℃暟鎹�'));
+ results.result = 'Success';
+ results.Msg = '鍏辨湁 ' + oppCount + ' 鏉℃暟鎹�';
+ }
+ // //鍒嗛〉
+ // PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
+ // totalCount = oppRecords.size();
+ // paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null;
+ // paginatedAccounts.recordStart = pageToken + 1;
+ // paginatedAccounts.pageNumber = pageToken / pageSize + 1;
+ // Integer recordEnd = pageSize * paginatedAccounts.pageNumber;
+ // paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount;
+ // paginatedAccounts.totalRecords = totalCount;
+
+ // Integer startIdx;
+ // Integer endIdx;
+ // List<OpportunityInfo> pageoppRecords = new List<OpportunityInfo>();
+ // startIdx = pageToken;
+ // endIdx = startIdx + pageSize;
+ // if (endIdx > oppRecords.size()) {
+ // endIdx = oppRecords.size();
+ // }
+ // for (Integer i = startIdx; i < endIdx; i++) {
+ // pageoppRecords.add(oppRecords.get(i));
+ // }
+ // //end
+
+
+ //鍥炰紶鍙傛暟
+ results.result = 'Success';
+ results.oppRecords = oppRecords;
+ return results;
+
+ }
+ //妫�绱㈡潯浠讹細鏁版嵁瀛楁1锛屾暟鎹瓧娈�2锛屾暟鎹瓧娈�3鍧囨弧瓒宠繘鍏ユ鏂规硶 鍒ゆ柇澶氱鎯呭喌
+ private static String makeTextSql(String textOpts, String equalOpts, String numtext) {
+ String soql = '';
+ if (!String.isBlank(textOpts)) {
+ //瀵绘壘妫�绱㈡潯浠跺寘鍚�� 鈥� 绌烘牸鐨勫閲嶆绱㈡潯浠�
+ //system.debug('314-textOpts:'+textOpts);
+ if ((equalOpts == 'contains' || equalOpts == 'notcontains') && numtext.contains(',')) {
+ //system.debug('316-equalOpts:'+equalOpts);
+ //system.debug('316-numtext:'+numtext);
+ String[] vals = numtext.split(',');
+ String cSql = '';
+ soql += ' AND (';
+ for (Integer icount = 0; icount < vals.size(); icount++) {
+
+ //绮剧悽绉戞妧 zxk 2021-08-25 start
+ String val = vals[icount];
+ if (equalOpts == 'contains') {
+ cSql = makeTextSqlStr(textOpts, equalOpts, val);
+ soql += cSql;
+
+ if (icount < vals.size() - 1) {
+ soql += ' OR ';
+ }
+ } else if (equalOpts == 'notcontains') {
+ cSql = makeTextSqlStr(textOpts, equalOpts, val);
+ soql += cSql;
+ if (icount < vals.size() - 1) {
+ soql += ' AND ';
+ }
+ }
+
+ }
+ //绮剧悽绉戞妧 zxk 2021-08-25 end
+
+
+ // String val = vals[icount];
+ // cSql = this.makeTextSqlStr(textOpts, equalOpts, val);
+ // system.debug(cSql);
+ // soql += cSql;
+ // if (icount < vals.size() - 1) {
+ // soql += ' OR ';
+ // }
+ // }
+ soql += ')';
+ }
+ //瀵绘壘妫�绱㈡潯浠跺寘鍚�橈紝鈥� 閫楀彿鐨勫閲嶆绱㈡潯浠�
+ else if ((equalOpts == '=' || equalOpts == '<>') && numtext.contains(',')) {
+ String[] vals = numtext.split(',');
+ soql += ' AND ( ';
+ for (Integer icount = 0; icount < vals.size(); icount++) {
+ String val = vals[icount];
+ if (equalOpts == '=') {
+ soql += textOpts + ' = \'' + val + '\'';
+ if (icount < vals.size() - 1) {
+ soql += ' OR ';
+ }
+ } else if (equalOpts == '<>') {
+ soql += textOpts + ' <> \'' + val + '\'';
+ if (icount < vals.size() - 1) {
+ soql += ' AND ';
+ }
+ }
+ }
+ soql += ')';
+ }
+ //妫�绱㈣繛鎺ョ涓哄寘鍚互鍙婁笉鍖呭惈
+ else if (equalOpts.equals('contains') || equalOpts.equals('notcontains')) {
+ if (equalOpts.equals('contains')) {
+ soql += ' AND ' + textOpts + ' LIKE \'%' + numtext + '%\'';
+ } else if (equalOpts.equals('notcontains')) {
+ soql += ' AND ( NOT ' + textOpts + ' LIKE \'%' + numtext + '%\' ) ';
+ }
+ }
+ //妫�绱㈣繛鎺ョ涓虹瓑浜庝互鍙婁笉绛変簬
+ else if (equalOpts == '=' || equalOpts == '<>') {
+ soql += 'AND ' + textOpts + equalOpts + '\'' + numtext + '\'';
+ }
+
+ //绮剧悽绉戞妧 zxk 2021-08-25 start
+ //璧峰瀛楃
+ else if (equalOpts == 'starts with' && numtext.contains(' ')) {
+ String[] vals = numtext.split(' ');
+ soql += ' AND ( ';
+ for (Integer icount = 0; icount < vals.size(); icount++) {
+ String val = vals[icount];
+ if (equalOpts == 'starts with') {
+ soql += ' ' + textOpts + ' LIKE \'%' + val + '%\'' ;
+ if (icount < vals.size() - 1) {
+ soql += ' OR ';
+
+ }
+ }
+ }
+ soql += ')';
+
+ }
+ //绮剧悽绉戞妧 zxk 2021-08-25 end
+
+ // //璧峰瀛楃
+ // else if (equalOpts == 'starts with'){
+ // soql += 'AND ' + textOpts + ' LIKE \'' + numtext + '%\'';
+ // }
+ //妫�绱㈣繛鎺ョ鐨勫叾浠栨儏鍐�
+ else {
+ String cSql = makeTextSqlStr(textOpts, equalOpts, numtext);
+ if (equalOpts != '<>') {
+ soql += cSql;
+ } else {
+ soql += ' and (NOT ' + cSql + ') ';
+ }
+ }
+ }
+ return soql;
+ }
+ //妫�绱㈡潯浠讹細鏁版嵁瀛楁1锛屾暟鎹瓧娈�2锛屾暟鎹瓧娈�3鍧囨弧瓒筹紝骞朵笖杩涘叆makeTextSql锛堬級涔嬪悗锛屽唴鍚暟鎹瓧娈靛寘鍚绉嶆椂杩涘叆姝ゆ柟娉曘��
+ @TestVisible private static String makeTextSqlStr(String textOpts, String equalOpts, String val) {
+ String soql = '';
+ if (!String.isBlank(textOpts)) {
+ String tmpVal = val;
+ if (!String.isBlank(tmpVal)) {
+ if (equalOpts == 'contains' || equalOpts == 'notcontains') {
+ if (equalOpts == 'contains') {
+ soql += ' ' + textOpts + ' LIKE \'%' + val + '%\'' ;
+ } else if (equalOpts == 'notcontains') {
+ soql += ' ( NOT ' + textOpts + ' LIKE \'%' + val + '%\' ) ' ;
+ }
+ } else if (equalOpts == '=' || equalOpts == '<>') {
+ if (equalOpts == '=') {
+ soql += ' AND ' + textOpts + ' = ' + val ;
+ } else if (equalOpts == '<>') {
+ soql += ' AND ' + textOpts + ' <> ' + val ;
+ }
+ }
+ } else {
+ soql = ' AND ' + textOpts;
+ if (equalOpts == '=') {
+ soql += ' = ' + tmpVal;
+ } else if (equalOpts == '<>') {
+ soql += ' <> ' + tmpVal;
+ } else if (equalOpts == 'contains') {
+ soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
+ } else if (equalOpts == 'notcontains') {
+ soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
+ } else if (equalOpts == 'starts with') {
+ soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
+ } else {
+ soql += ' ' + equalOpts + ' ' + tmpVal;
+ }
+ }
+ }
+ return soql;
+ }
+
+ //妫�绱㈡寜閽細鐐瑰嚮妫�绱㈡寜閽Е鍙戞鏂规硶锛�
+ // public static PageReference chick() {
+ // setLayoutRWInfo();
+ // searchOppInner(strColumus,strRtColumus,accSearch,aooSearch,numtext,numtext1,numtext2,sortKey,pageSizeLWC,pageTokenLWC);
+ // return null;
+ // }
+ //椤甸潰鍐呭鏈変慨鏀规椂锛岄〉闈㈠垽鏂悗浼犲�肩粰changeFlg浠ュ強changeFlgRt灞炴�э紝鐐瑰嚮淇濆瓨鏃惰皟鐢ㄦ鏂规硶锛岃繘琛屼繚瀛樸��
+ @AuraEnabled
+ public static Results save(List<OpportunityInfo> oppRecordsLWC) {
+ //system.debug('oppRecords[1].opp:' + oppRecords[1].opp +' oppRecords[1].AgcOpp:' + oppRecords[1].AgcOpp );
+ Results results = new Results();
+ oppRecords = oppRecordsLWC;
+ try {
+ List<Agency_Opportunity__c> updTarget = new List<Agency_Opportunity__c>();
+ // List<Opportunity> updOpps = new List<Opportunity>();
+ for (OpportunityInfo oi : oppRecords) {
+ if (oi.changeFlg == '1') {
+ oi.changeFlg = '0';
+ updTarget.add(oi.AgcOpp);
+
+ }
+ // if (oi.changeFlgRt == '1' && oi.opp.id != null) {
+ // oi.changeFlgRt = '0';
+ // updOpps.add(oi.opp);
+ // }
+ }
+ if (updTarget.size() > 0) {
+ system.debug('updTarget.size:' + updTarget.size() );
+ update updTarget;
+ }
+ // if (updOpps.size() > 0) {
+ // update updOpps;
+ // }
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '淇濆瓨瀹屼簡'));
+ results.result = 'Success';
+ results.Msg = '淇濆瓨瀹屼簡';
+ return results;
+ } catch (Exception e) {
+ //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇风‘瀹氱瀹ゅ垎绫诲拰浜у搧鍖哄垎鐨勫叧绯�'));
+ }
+ if(saveType == '1') {
+ searchOppInner(strColumus,strRtColumus,accSearch,aooSearch,numtext,numtext1,numtext2,sortKey);
+ saveType = '';
+ } else if (saveType == '2') {
+ sortTable();
+ saveType = '';
+ } else {
+ }
+ return null;
+ }
+ //鍏ㄩ儴灞曞紑璋冪敤姝ゆ柟娉�
+ public static PageReference sortTable() {
+ oppRecords = new List<OpportunityInfo>();
+ if (sortKey == preSortKey) {
+ if (String.isBlank(sortKey) == false) {
+ // 鏂瑰悜銇屽銈忋倠銇伩
+ sortOrderAsc = !sortOrderAsc;
+ sortOrder[Integer.valueOf(sortKey)] = (sortOrderAsc == true ? '鈫�' : '鈫�');
+ }
+ } else {
+ sortOrderAsc = true;
+ if (String.isBlank(preSortKey) == false) {
+ sortOrder[Integer.valueOf(preSortKey)] = '銆�';
+ }
+ sortOrder[Integer.valueOf(sortKey)] = (sortOrderAsc == true ? '鈫�' : '鈫�');
+ }
+ preSortKey = sortKey;
+
+ setLayoutRWInfo();
+ searchOppInner(strColumus,strRtColumus,accSearch,aooSearch,numtext,numtext1,numtext2,sortKey);
+ return null;
+ }
+ //鍒嗛〉Bean
+ public class PaginatedAccounts {
+ @AuraEnabled
+ public Integer nextPageToken;
+ @AuraEnabled
+ public Integer pageNumber { get; set; }
+ @AuraEnabled
+ public Integer totalRecords { get; set; }
+ @AuraEnabled
+ public Integer recordStart { get; set; }
+ @AuraEnabled
+ public Integer recordEnd { get; set; }
+ }
+
+ //鑷畾涔夌被OpportunityInfo锛岀敤浜庡垱寤鸿櫄鎷熷瓧娈碉紝鍚堝苟杈撳嚭銆�
+ class OpportunityInfo {
+ // public Opportunity opp { get; set; }
+ @AuraEnabled
+ public Agency_Opportunity__c opp { get; set; }
+ @AuraEnabled
+ public Boolean canEdit { get; private set; }
+ @AuraEnabled
+ public Boolean hasError { get; private set; }
+ @AuraEnabled
+ public Boolean hasFieldError { get; private set; }
+ @AuraEnabled
+ public Integer lineNo { get; private set; }
+ @AuraEnabled
+ public String changeFlg { get; set; }
+ @AuraEnabled
+ public String changeFlgRt { get; set; }
+ @AuraEnabled
+ public Boolean ifLock { get; set; }
+ //public String accType { get; private set; }
+ @AuraEnabled
+ public Agency_Opportunity__c AgcOpp { get; set; }
+ public OpportunityInfo(Agency_Opportunity__c record, Agency_Opportunity__c oppo) {
+ opp = oppo;
+ canEdit = true;
+ hasError = false;
+ hasFieldError = false;
+ lineNo = 0;
+ changeFlg = '0';
+ changeFlgRt = '0';
+ ifLock = Approval.isLocked(record);
+ AgcOpp = record;
+ }
+ }
+ public class Results {
+ @AuraEnabled
+ public String result;
+ @AuraEnabled
+ public String Msg;
+ @AuraEnabled
+ public List<OpportunityInfo> oppRecords;
+ @AuraEnabled
+ public Integer oppCount ;
+ @AuraEnabled
+ public List<CusOption> timeCusOpts;
+ @AuraEnabled
+ public List<CusOption> textCusOpts;
+ @AuraEnabled
+ public List<CusOption> equalCusOpts;
+ @AuraEnabled
+ public List<CusOption> limitCusOpts;
+ @AuraEnabled
+ public String limits;
+ @AuraEnabled
+ public String strColumus;
+ @AuraEnabled
+ public String strRtColumus;
+ @AuraEnabled
+ public List<OpportunityInfo> pageoppRecords;
+ @AuraEnabled
+ public PaginatedAccounts paginatedAccounts;
+ @AuraEnabled
+ public Boolean canEdit;
+ @AuraEnabled
+ public String changeFlg;
+ }
+ public class CusOption {
+ CusOption(String value,String label) {
+ this.label = label;
+ this.value = value;
+ }
+
+ @AuraEnabled
+ public String label;
+ @AuraEnabled
+ public String value;
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.9.1