19626
2023-04-23 c83dc56870037a7b5a10d07ef1154a33b6bf43ee
force-app/main/default/classes/lexPCLLostReportLwcController.cls
@@ -1,51 +1,31 @@
public with sharing class lexPCLLostReportLwcController {
    public static Product2 pro2;
   public static string oppId;
   public static string lostReportId;
   public Product2 pro2 { get; set; }
   public string oppId { get; set; }
   public string lostReportId { get; set; }
   // 当前页面状态 Create,View and Edit, MarketEdit
   public static string pageStatus;
   public 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;
   public string lostType {get; set;}
   public Set<ID> deleteBrandIDSet = new Set<ID>();
   public string submitFlag {get; set;}
   public LostReport LostReport {get; set;}
   public integer brandNo {get; set;}
   public integer RemoveBrandNo {get; set;}
   public integer setBrandNo {get; set;}
   public integer brandCount {get; set;}
   // add tcm 20211122 start
   public static integer topNum;
   public static integer secondNum;
   public integer topNum {get; set;}
   public 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(){
   public void initForApex(string oppId1,string lostReportId1,string pageStatus1,string lostType1,string submitFlag1){
      oppId = oppId1;
      lostReportId = lostReportId;
      pageStatus = pageStatus1;
      lostType = lostType1;
      submitFlag = submitFlag1;
   }
   public String init(){
      if(string.isblank(pageStatus)) {
         // 这里需要报错没有传参数
         return '页面出错,请刷新后重试!';
@@ -176,13 +156,13 @@
      // 读取竞争对手品牌
      // BrandmapSet();
      if(string.isNotEmpty(submitFlag)) {
            return '提交成功!';
         return '提交成功!';
      }
        return null;
      return null;
   }
   // 编辑 只有系统管理员或者草案中可以编辑
    @AuraEnabled
   public static String edit2(){
   public String edit2(){
      if( userinfo.getProfileId() == (ID) '00e10000000Y3o5AAC' ||
          '草案'.equals(LostReport.LostReport.Report_Status__c)
          ) {
@@ -190,13 +170,12 @@
         init();
      }
      else{
            return '只有在草案中才能进行编辑!';
         return '只有在草案中才能进行编辑!';
      }
      return null;
   }
   // 设置品牌
    @AuraEnabled
   public static void setBrand(){
   public void setBrand(){
      list<LostBrand> LostBrandlist =  LostReport.LostBrands;
      LostBrand tempBrand = LostBrandlist.get(setBrandNo);
      string brandName = tempBrand.lostBrand.Lost_By_Company__c;
@@ -220,8 +199,7 @@
      }
   }
   // 设置品牌
    @AuraEnabled
   public static void setbrandmannual(){
   public void setbrandmannual(){
      list<LostBrand> LostBrandlist =  LostReport.LostBrands;
      LostBrand tempBrand = LostBrandlist.get(setBrandNo);
      string brandName = tempBrand.lostBrand.Lost_By_Company__c;
@@ -243,8 +221,7 @@
      }
   }
   // 保存
    @AuraEnabled
   public static String save(){
   public String save(){
      if(!DataCheck()) {
         return null;
@@ -268,8 +245,7 @@
   // }
   // 数据检查
    @AuraEnabled
   public static boolean DataCheck(){
   public boolean DataCheck(){
      boolean dataCheck = true;
      if(string.isBlank(LostReport.LostReport.LostType__c))
      {
@@ -347,8 +323,7 @@
      return dataCheck;
   }
    @AuraEnabled
   public static list<LostBrand> brandcopy(){
   public list<LostBrand> brandcopy(){
      list<LostBrand> tempbrands = new list<LostBrand>();
      for(LostBrand tempbrand: LostReport.LostBrands) {
         LostBrand LostBrand =
@@ -360,8 +335,7 @@
      return tempbrands;
   }
   // 数据录入
    @AuraEnabled
   public static boolean dataEntry(){
   public boolean dataEntry(){
      system.debug('save---start:');
      Savepoint sp = Database.setSavepoint();
      Lost_cancel_report__c templostReport = LostReport.lostReport.clone();
@@ -488,52 +462,47 @@
         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();
   //    }
   // }
   public 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
   public static String addBrand(){
   public String addBrand(){
      LostReport.LostBrands.add(new LostBrand(LostReport.LostBrands.size()));
      brandCount = LostReport.LostBrands.size();
      return null;
   }
   // 删除品牌 这个有参数brandNo,才知道是删除那个品牌
    @AuraEnabled
   public static String Remove(){
   public String Remove(){
      system.debug('RemoveBrandNo:'+RemoveBrandNo);
      list<LostBrand> tempLostBrands = new List<lostBrand>();
      Integer i = 0;
@@ -555,8 +524,7 @@
   }
   // 添加型号, 这个有参数brandNo,才知道是添加到那个品牌
   // update tcm 20211125 添加型号时自动带出品牌 start
    @AuraEnabled
   public static String addProduct(){
   public String addProduct(){
      system.debug('brandNo:'+brandNo);
      LostBrand tempLostBrand = LostReport.LostBrands.get(brandNo);
      // PCLLostProduct__c plp = new PCLLostProduct__c(Competitor__c=CompetitionMap.get(LostReport.LostBrands[brandNo].lostBrand.Lost_By_Company__c));
@@ -570,9 +538,7 @@
   // update tcm 20211125 添加型号时自动带出品牌 end
   // 页面的数据结构
   public class LostReport {
        @AuraEnabled
      public Lost_cancel_report__c lostReport { get; set; }
        @AuraEnabled
      public list<LostBrand> LostBrands { get; set; }
      public LostReport(){
         lostReport = new Lost_cancel_report__c();
@@ -589,14 +555,10 @@
   }
   public class LostBrand {
        @AuraEnabled
      public PCLLostBrand__c lostBrand;
        @AuraEnabled
      public Integer lineNo;
        @AuraEnabled
      public list<PCLLostProducts> LostProducts;
        @AuraEnabled
      public Integer ProductSize;
      public PCLLostBrand__c lostBrand { get; set; }
      public Integer lineNo { get; set; }
      public list<PCLLostProducts> LostProducts { get; set; }
      public Integer ProductSize {get; set;}
      public LostBrand( integer lineNo ){
         lostBrand = new PCLLostBrand__c();
         this.lineNo = lineNo;
@@ -619,12 +581,9 @@
   }
   // add tcm 20211119 start
   public class PCLLostProducts {
        @AuraEnabled
      public Integer lineNo2;
        @AuraEnabled
      public PCLLostProduct__c LostProductss;
        @AuraEnabled
      public Boolean bool;
      public Integer lineNo2 { get; set; }
      public PCLLostProduct__c LostProductss { get; set; }
      public Boolean bool { get; set; }
      public PCLLostProducts() {
         this.lineNo2 = 0;
@@ -647,8 +606,7 @@
   // add tcm 20211119 end
   // add tcm 20211118 start
    @AuraEnabled
   public static void search() {
   public void search() {
      if (LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c==null) {
         LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=null;
         LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=null;