twysparks
2023-05-06 0994d62436004bd83059c51a48b7cd430feb9f43
force-app/main/default/classes/lexPCLLostReportLwcController.cls
@@ -1,59 +1,57 @@
public with sharing class lexPCLLostReportLwcController {
    public static Product2 pro2;
   public static string oppId;
   public static string lostReportId;
   @AuraEnabled
   public static Product2 pro2 { get; set; }
   @AuraEnabled
   public static string oppId { get; set; }
   @AuraEnabled
   public static string lostReportId { get; set; }
   // 当前页面状态 Create,View and Edit, MarketEdit
   public static string pageStatus;
   @AuraEnabled
   public static string pageStatus { get; set; }
   // 失单,部分失单
   public static string lostType;
   public static Set<ID> deleteBrandIDSet = new Set<ID>();
   public static string submitFlag;
   public static LostReport LostReport;
   public static integer brandNo;
   public static integer RemoveBrandNo;
   public static integer setBrandNo;
   public static integer brandCount;
   @AuraEnabled
   public static string lostType {get; set;}
   public  static Set<ID> deleteBrandIDSet = new Set<ID>();
   @AuraEnabled
   public static string submitFlag {get; set;}
   @AuraEnabled
   public static LostReport LostReport {get; set;}
   @AuraEnabled
   public static integer brandNo {get; set;}
   @AuraEnabled
   public static integer RemoveBrandNo {get; set;}
   @AuraEnabled
   public static integer setBrandNo {get; set;}
   @AuraEnabled
   public static integer brandCount {get; set;}
   // add tcm 20211122 start
   public static integer topNum;
   public static integer secondNum;
   @AuraEnabled
   public static integer topNum {get; set;}
   @AuraEnabled
   public static integer secondNum {get; set;}
   // add tcm 20211122 end
   // 竞争对手对照关系表,key是品牌名字,value是ID
   public static map<string,id> CompetitionMap;
   // public PCLLostReportController(ApexPages.StandardController controller) {
   //    this();
   // }
   // public PCLLostReportController(){
   //    oppId =
   //       ApexPages.currentPage().getParameters().get('oppId') == null ? ''
   //       : ApexPages.currentPage().getParameters().get('oppId');
   //    lostReportId =
   //       ApexPages.currentPage().getParameters().get('Id') == null ? ''
   //       : ApexPages.currentPage().getParameters().get('Id');
   //    pageStatus =
   //       ApexPages.currentPage().getParameters().get('pageStatus') == null ? ''
   //       : ApexPages.currentPage().getParameters().get('pageStatus');
   //    lostType =
   //       ApexPages.currentPage().getParameters().get('lostType') == null ? ''
   //       : ApexPages.currentPage().getParameters().get('lostType');
   //    submitFlag = ApexPages.currentPage().getParameters().get('submitFlag') == null ? ''
   //        : ApexPages.currentPage().getParameters().get('submitFlag');
   // }
   // 初始化
    @AuraEnabled
   public static String init(){
   @AuraEnabled
   public static void initForApex(string oppId1,string lostReportId1,string pageStatus1,string lostType1,string submitFlag1){
      oppId = oppId1;
      lostReportId = lostReportId;
      pageStatus = pageStatus1;
      lostType = lostType1;
      submitFlag = submitFlag1;
   }
   @AuraEnabled
   public static Map<string,object> init(){
      Map<string,object> maps = new Map<string,object>();
      if(string.isblank(pageStatus)) {
         // 这里需要报错没有传参数
         return '页面出错,请刷新后重试!';
         maps.put('message', '页面出错,请刷新后重试!');
         return maps;
      }
      else if(pageStatus.equals('Create')) {
         if(string.isBlank(oppId)) {
            // 这里报错创建时候必须有询价
            return '创建失单报告时,请重询价页面创建';
            maps.put('message', '创建失单报告时,请重询价页面创建');
            return maps;
         }
         list<opportunity> opplist =
         [select id,Name,
@@ -64,11 +62,13 @@
                     limit 1];
         if( opplist.size() == 0) {
            pageStatus = null;
            return '您没有询价的查看权限,无法创建失单报告!';
            maps.put('message', '您没有询价的查看权限,无法创建失单报告!');
            return maps;
         }
         Schema.DescribeSObjectResult s = Lost_cancel_report__c.sObjectType.getDescribe();
         if( !s.isCreateable()) {
            return '您不能创建失单/部分失单报告!';
            maps.put('message', '您不能创建失单/部分失单报告!');
            return maps;
         }
         Lost_cancel_report__c tempLostReport =
            new Lost_cancel_report__c(LostType__c= lostType,
@@ -85,7 +85,8 @@
         system.debug('edit1');
         if(string.isBlank(lostReportId)) {
            pageStatus = null;
            return '您没有查看这个失单/部分失单报告的权限!';
            maps.put('message', '您没有查看这个失单/部分失单报告的权限!');
            return maps;
         }
         system.debug('edit2');
         list<Lost_cancel_report__c> lostReportList =
@@ -102,7 +103,8 @@
         if(lostReportList.size() == 0) {
            pageStatus = null;
            return '您没有查看这个失单/部分失单报告的权限!';
            maps.put('message', '您没有查看这个失单/部分失单报告的权限!');
            return maps;
         }
         lostReportList[0].Sales_assistant__c =
            lostReportList[0].Opportunity__r.Sales_assistant_ID__c;
@@ -176,12 +178,15 @@
      // 读取竞争对手品牌
      // BrandmapSet();
      if(string.isNotEmpty(submitFlag)) {
            return '提交成功!';
         maps.put('message', '提交成功!');
         maps.put('LostReport', LostReport);
         return maps;
      }
        return null;
      return null;
   }
   // 编辑 只有系统管理员或者草案中可以编辑
    @AuraEnabled
   @AuraEnabled
   public static String edit2(){
      if( userinfo.getProfileId() == (ID) '00e10000000Y3o5AAC' ||
          '草案'.equals(LostReport.LostReport.Report_Status__c)
@@ -190,12 +195,12 @@
         init();
      }
      else{
            return '只有在草案中才能进行编辑!';
         return '只有在草案中才能进行编辑!';
      }
      return null;
   }
   // 设置品牌
    @AuraEnabled
   @AuraEnabled
   public static void setBrand(){
      list<LostBrand> LostBrandlist =  LostReport.LostBrands;
      LostBrand tempBrand = LostBrandlist.get(setBrandNo);
@@ -220,7 +225,7 @@
      }
   }
   // 设置品牌
    @AuraEnabled
   @AuraEnabled
   public static void setbrandmannual(){
      list<LostBrand> LostBrandlist =  LostReport.LostBrands;
      LostBrand tempBrand = LostBrandlist.get(setBrandNo);
@@ -243,7 +248,7 @@
      }
   }
   // 保存
    @AuraEnabled
   @AuraEnabled
   public static String save(){
      if(!DataCheck()) {
@@ -268,7 +273,7 @@
   // }
   // 数据检查
    @AuraEnabled
   @AuraEnabled
   public static boolean DataCheck(){
      boolean dataCheck = true;
      if(string.isBlank(LostReport.LostReport.LostType__c))
@@ -347,7 +352,32 @@
      return dataCheck;
   }
    @AuraEnabled
   @AuraEnabled
   public static List<String> getValuesFromTable(){
      String ObjectApi_name = 'PCLLostBrand__c';
      String Field_name = 'Lost_By_Company__c';
      List<String> lstPickvals=new List<String>();
        //From the Object Api name retrieving the SObject
        Schema.SObjectType targetType = Schema.getGlobalDescribe().get(ObjectApi_name);
        Sobject Object_name = targetType.newSObject();
         //grab the sobject that was passed
        Schema.sObjectType sobject_type = Object_name.getSObjectType();
        //describe the sobject
        Schema.DescribeSObjectResult sobject_describe = sobject_type.getDescribe();
         //get a map of fields for the passed sobject
        Map<String, Schema.SObjectField> field_map = sobject_describe.fields.getMap();
        //grab the list of picklist values for the passed field on the sobject
        List<Schema.PicklistEntry> pick_list_values = field_map.get(Field_name).getDescribe().getPickListValues();
        for (Schema.PicklistEntry a : pick_list_values)
        { //for all values in the picklist list
            lstPickvals.add(a.getValue());//add the value  to our final list
           }
          return lstPickvals;
   }
   @AuraEnabled
   public static list<LostBrand> brandcopy(){
      list<LostBrand> tempbrands = new list<LostBrand>();
      for(LostBrand tempbrand: LostReport.LostBrands) {
@@ -360,7 +390,7 @@
      return tempbrands;
   }
   // 数据录入
    @AuraEnabled
   @AuraEnabled
   public static boolean dataEntry(){
      system.debug('save---start:');
      Savepoint sp = Database.setSavepoint();
@@ -488,51 +518,49 @@
         LostReport.lostReport = templostReport;
         LostReport.LostBrands = tempBrands;
         // 这里需要写一些报错信息
         ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,ex.getMessage()));
         return false;
      }
      return true;
   }
   // 取消
   // public PageReference cancel(){
   //    PageReference page = new PageReference('/'+oppId);
   //    page.setRedirect(true);
   //    return page;
   // }
   // 提交
   // public PageReference submit(){
   //    if(!'草案'.equals(LostReport.LostReport.Report_Status__c) ) {
   //       return '只有在草案中才能提交申请!';
   //    }
   //    Savepoint sp = Database.setSavepoint();
   //    try{
   //       LostReport.lostReport.Report_Status__c = '提交';
   //       update LostReport.lostReport;
   //       Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
   //       psr.setObjectId(lostReportId);
   //       Approval.ProcessResult submitResult = Approval.process(psr);
   //       PageReference page = new PageReference('/apex/PCLLostReportPage');
   //       page.getParameters().put('Id', lostReportId);
   //       page.getParameters().put('pageStatus', 'View');
   //       page.getParameters().put('submitFlag', '1');
   //       page.setRedirect(true);
   //       return page;
   //    }catch(exception ex) {
   //       Database.rollback(sp);
   //       return ex.getMessage();
   //    }
   // }
   @AuraEnabled
   public static Map<string,Object> submit(){
      Map<string,string> messages = new Map<string,string>();
      if(!'草案'.equals(LostReport.LostReport.Report_Status__c) ) {
         messages.put('error', '只有在草案中才能提交申请!');
         return messages;
      }
      Map<string,Object> objs = new Map<string,Object>();
      Savepoint sp = Database.setSavepoint();
      try{
         LostReport.lostReport.Report_Status__c = '提交';
         update LostReport.lostReport;
         Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
         psr.setObjectId(lostReportId);
         Approval.ProcessResult submitResult = Approval.process(psr);
         objs.put('uri', '/apex/PCLLostReportPage');
         objs.put('Id', lostReportId);
         objs.put('pageStatus', 'View');
         objs.put('submitFlag', '1');
         return objs;
      }catch(exception ex) {
         Database.rollback(sp);
         messages.put('error', ex.getMessage());
         return messages;
      }
   }
   // 添加品牌
    @AuraEnabled
   @AuraEnabled
   public static String addBrand(){
      LostReport.LostBrands.add(new LostBrand(LostReport.LostBrands.size()));
      brandCount = LostReport.LostBrands.size();
      return null;
   }
   // 删除品牌 这个有参数brandNo,才知道是删除那个品牌
    @AuraEnabled
   @AuraEnabled
   public static String Remove(){
      system.debug('RemoveBrandNo:'+RemoveBrandNo);
      list<LostBrand> tempLostBrands = new List<lostBrand>();
@@ -555,7 +583,7 @@
   }
   // 添加型号, 这个有参数brandNo,才知道是添加到那个品牌
   // update tcm 20211125 添加型号时自动带出品牌 start
    @AuraEnabled
   @AuraEnabled
   public static String addProduct(){
      system.debug('brandNo:'+brandNo);
      LostBrand tempLostBrand = LostReport.LostBrands.get(brandNo);
@@ -570,9 +598,9 @@
   // update tcm 20211125 添加型号时自动带出品牌 end
   // 页面的数据结构
   public class LostReport {
        @AuraEnabled
      @AuraEnabled
      public Lost_cancel_report__c lostReport { get; set; }
        @AuraEnabled
      @AuraEnabled
      public list<LostBrand> LostBrands { get; set; }
      public LostReport(){
         lostReport = new Lost_cancel_report__c();
@@ -589,14 +617,14 @@
   }
   public class LostBrand {
        @AuraEnabled
      public PCLLostBrand__c lostBrand;
        @AuraEnabled
      public Integer lineNo;
        @AuraEnabled
      public list<PCLLostProducts> LostProducts;
        @AuraEnabled
      public Integer ProductSize;
      @AuraEnabled
      public PCLLostBrand__c lostBrand { get; set; }
      @AuraEnabled
      public Integer lineNo { get; set; }
      @AuraEnabled
      public list<PCLLostProducts> LostProducts { get; set; }
      @AuraEnabled
      public Integer ProductSize {get; set;}
      public LostBrand( integer lineNo ){
         lostBrand = new PCLLostBrand__c();
         this.lineNo = lineNo;
@@ -619,12 +647,12 @@
   }
   // add tcm 20211119 start
   public class PCLLostProducts {
        @AuraEnabled
      public Integer lineNo2;
        @AuraEnabled
      public PCLLostProduct__c LostProductss;
        @AuraEnabled
      public Boolean bool;
      @AuraEnabled
      public Integer lineNo2 { get; set; }
      @AuraEnabled
      public PCLLostProduct__c LostProductss { get; set; }
      @AuraEnabled
      public Boolean bool { get; set; }
      public PCLLostProducts() {
         this.lineNo2 = 0;
@@ -647,7 +675,6 @@
   // add tcm 20211119 end
   // add tcm 20211118 start
    @AuraEnabled
   public static void search() {
      if (LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c==null) {
         LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=null;