liwentao
2023-04-28 ee2e046f6f8a0e804a0f0de82dbf25fe3d2693e8
询价按钮 撤销备货,合同申请 修改(李文涛)
6个文件已添加
5个文件已修改
1034 ■■■■■ 已修改文件
force-app/main/default/classes/LexContractAuthorizeController.cls 454 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexContractAuthorizeController.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexSISearchSetProductController.cls 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexStockCancelController.cls 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockCancel/lexStockCancel.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js-meta.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexContractAuthorizeController.cls
New file
@@ -0,0 +1,454 @@
public with sharing class LexContractAuthorizeController {
    public LexContractAuthorizeController() {
    }
    @AuraEnabled
    public static Opportunity init(String recordId){
        try{
            Opportunity item=[select
             id,Estimation_Decision__c,Contract_DB_complite_day__c,Contract_Authorize__c,Contract_Authorize_Lock__c,If_Need_Authorize__c,
             Authorized_DB_No__c,SPO_URL__c,Estimation_No__c,Closing_Bid_Date__c,Bid_Date__c,
             Cnt_Lost_cancel_Draft__c,Cnt_Lost_cancel_report__c,IF_Submit__c,Agency1__c,Trade__c,Sales_Root__c,Is_Corrosion__c
             from Opportunity
             where id = :recordId];
            return item;
        }catch(Exception e){
            System.debug('LexStockCancelController init error: '+e.getMessage());
        }
        return null;
    }
    @AuraEnabled
    public static UpdateResult updateOppotunity(
        String recordId
    ) {
        UpdateResult result = new UpdateResult();
        result.recordId = recordId;
        try{
            Opportunity opp=new Opportunity(id=recordId);
            opp.Contract_Authorize__c = true;
            opp.If_Interface_Lock__c=true;
            opp.IF_Submit__c = true;
            update opp;
            result.success = true;
            result.errors = new List<String>();
            return result;
        }catch(Exception e){
            result.success = false;
            result.errors = new List<String>();
            result.errors.add(e.getMessage());
            System.debug(LoggingLevel.INFO,'updateOppotunity  Error : ' + e);
        }
        return result;
    }
    @AuraEnabled
    public static String submitApprovalRequest(String recordId) {
        try{
           Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
           req.setObjectId(recordId);
           Approval.ProcessResult result = Approval.process(req);
           if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage();
        }catch(Exception e){
            System.debug('LexStockCancelController submitApprovalRequest  error: '+e.getMessage());
            return e.getMessage();
        }
           return null;
    }
    @AuraEnabled
    public static String getProfileId(){
        return UserInfo.getProfileId();
    }
    @AuraEnabled
    public static Boolean judgeIsAssistantAppliedOutTime(String  Quoteid) {
        List<PromotionSales__c> PromotionSalesList = [select id,IsAssistantAppliedOutTime__c from PromotionSales__c where Quote__r.Quote_No__c =:Quoteid];
        for(PromotionSales__c pro : PromotionSalesList){
            if(pro.IsAssistantAppliedOutTime__c){
                return false;
            }
        }
        return true;
    }
     @AuraEnabled
    public static Opportunity searchOpportunity(String oppid) {
        try{
           Opportunity res=[select Id,Contract_Authorize_Lock__c from Opportunity where Id =:oppid];
           return res;
        }catch(Exception e){
            System.debug('LexStockCancelController submitApprovalRequest  error: '+e.getMessage());
        }
           return null;
    }
    @AuraEnabled
    // LHJ 阿西赛多检查 Start
    public  static String checkDangerItem(String agency1) {
        //没有危化品证照的提示信息
        String licenseStr = '第一经销商没有有效的危险化学品经营许可证。';
        //没有阿西赛多经销商协议的提示信息
        String accStr = '第一经销商没有阿西赛多经销商协议。';
        //检查是否有证照
        List<License_Information__c> licenseList = [SELECT Id
                                                      FROM License_Information__c
                                                     WHERE LicenseAndAccount__c = :agency1
                                                       AND LicenseType__c = '危险化学品经营许可证'
                                                       AND Is_Active_Formula__c = true
                                                    ];
        //检查是否有阿西赛多协议
        List<Account> accountList = [SELECT Id
                                                      FROM Account
                                                     WHERE Parent.id = :agency1
                                                       //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 start
                                                       AND Contract_Quote_Decide_Flag_checkbox__c =true
                                                       AND Assiesedo_Dealer__c  = true
                                                       //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 end
                                                    ];
        system.debug('licenseList:'+licenseList.size());
        system.debug('agency1:'+agency1);
        //①既没有危化品证也没有阿西赛多协议
        if(licenseList.size() == 0 && accountList.size() ==0){
            return licenseStr+accStr;
        }
        //②没有危化品证
        else if(licenseList.size() ==0){
            return licenseStr;
        }
        //②没有阿西赛多经销商协议
        else if(accountList.size() ==0){
            return accStr;
        }
        //③全都有
        else{
            return 'OK';
        }
    }
    @AuraEnabled
    public static String oppCheck(String oppid, String saveFlg) {
        Map<Id, String> proMap= new Map<Id, String>();
        List<OpportunityLineItem> OppItemList = [select PricebookEntry.Product2Id, PricebookEntry.Product2.Name
                                                   From OpportunityLineItem
                                                  Where OpportunityId = :oppid];
        if (OppItemList.size() > 0) {
            for (OpportunityLineItem opl : OppItemList) {
                proMap.put(opl.PricebookEntry.Product2Id, opl.PricebookEntry.Product2.Name);
            }
        }
        List<Opportunity> oppList = [select Agency1__c from Opportunity where id = :oppid];
        String angencyId = oppList[0].Agency1__c;
        String strRet = '';
        if (saveFlg == '1') {
            strRet = checkProRegisterDecide(proMap, angencyId, oppid);
        } else {
            strRet = checkProRegisterDecide(proMap, angencyId, '');
        }
        return strRet;
    }
    public static String checkProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) {
        String errormessage = '';
        Boolean error = false;
        Map<String, String> CheckMap = new Map<String, String>();
        CheckMap = MapCheckProRegisterDecide(proMap, agency1, OppId);
        if (CheckMap.isEmpty()) {
            return 'OK';
        } else {
            return '有不可销售产品或超出经销商经营范围,请更新报价单' + CheckMap;
        }
    }
    @AuraEnabled
    public static String updReg(String  oppid) {
        List<OpportunityLineItem> updList = new List<OpportunityLineItem>();
        List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c,
                                                        PricebookEntry.Product2.RegisterNo_ALL__c
                                                           From OpportunityLineItem
                                                          Where OpportunityId = :oppid];
        for (OpportunityLineItem ol : OppItemList) {
            ol.Register_alleffective__c = ol.PricebookEntry.Product2.RegisterNo_ALL__c;
            updList.add(ol);
        }
        if (updList.size() > 0)  update updList;
        return 'OK';
    }
    public static Map<String, String> MapCheckProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) {
        Map<String, String> retMap = new Map<String, String>();
        String errormessage = '';
        Boolean error = false;
        Map<String,List<String>> proAllBSstrMap;
        List<String> proNotNeedList = new List<String>();
        Map<String,List<String>> old_newMap = new Map<String,List<String>>();
        Map<String,List<String>> new_oldMap = new Map<String,List<String>>();
        // 取得 经营范围对应产品关系
        List<String> midStr = new List<String>();
        List<String> midStrO = new List<String>();
        // List<Product_Register_contrast__c> rrList = Product_Register_contrast__c.getall().values();
        // for (Product_Register_contrast__c rr : rrList) {
        //     midStr = new List<String>();
        //     midStrO = new List<String>();
        //     // 经营范围对应产品关系 Map作成 旧-新对照
        //     if (old_newMap.containsKey(rr.Register_old__c)) {
        //         old_newMap.get(rr.Register_old__c).add(rr.Register_new__c);
        //     } else {
        //         midStrO.add(rr.Register_new__c);
        //         old_newMap.put(rr.Register_old__c, midStrO.clone());
        //     }
        //     // 经营范围对应产品关系 Map作成 新-旧对照
        //     if (new_oldMap.containsKey(rr.Register_new__c)) {
        //         new_oldMap.get(rr.Register_new__c).add(rr.Register_old__c);
        //     } else {
        //         midStr.add(rr.Register_old__c);
        //         new_oldMap.put(rr.Register_new__c, midStr.clone());
        //     }
        // }
        // 取得经销商 医疗器械经营许可证
        List<License_Information__c> licenseList = [SELECT Id,
                                                           ScopeKey__c,
                                                           LicenseType__c
                                                      FROM License_Information__c
                                                     WHERE LicenseAndAccount__c = :agency1
                                                    AND (LicenseType__c = '医疗器械经营许可证'
                                                        OR LicenseType__c = '第二类医疗器械经营备案凭证')
                                                      AND Is_Active_Formula__c = true
                                                    ];
        // 判断 医疗器械经营许可证 是否存在
        if (licenseList.size() == 0) {
            error = true;
            errormessage = '第一经销商没有有效的医疗器械经营许可证。';
            retMap.put('agency', '0');
        } else {
            //经销商经营范围
            List<String> agListA = new List<String>();
            List<String> agListTemp = new List<String>();
            List<String> agList = new List<String>();
            //取经销商下 所有医疗器械经营许可证、第二类医疗器械经营备案凭证
            for (License_Information__c li : licenseList) {
                if (li.ScopeKey__c != null) {
                    agListA.addAll(li.ScopeKey__c.split(';'));
                    agListTemp.addAll(li.ScopeKey__c.split(';'));
                }
            }
            for (String a : agListTemp) {
                if (a.length() >= 6) {
                    agList.add(a.substring(0, a.length() - 1));
                } else {
                    agList.add(a.trim());
                }
            }
            //产品注册证
            Map<String,Map<String,String>> proBSMap = new Map<String,Map<String,String>>();
            Map<String,String> proMidMap = null;
            //产品所有有效注册证(可以和经销商匹配)
            proAllBSstrMap = new Map<String,List<String>>();
            set<Id> proIdList = new set<Id>();
            for (String qli : proMap.keySet()) {
                    proIdList.add(qli);
                    proBSMap.put(qli, proMidMap);
                    List<String> empList = new List<String>();
                    proAllBSstrMap.put(qli, empList);
            }
            List<Product_Register_Link__c> prls = [
                                                 Select Product2__c,
                                                        Product2__r.Asset_Model_No__c,
                                                        Product2__r.SFDA_Approbated_Status__c,
                                                        Product2__r.SFDA_Status_New__c, // 产品的CFDA最终状态 20181225
                                                        Product_Register__r.Name,
                                                        Product_Register__r.BusinessScopeKey__c,
                                                        Product_Register__r.RegisterNoStatus__c,
                                                        Product_Register__r.MedPrdClass__c
                                                   From Product_Register_Link__c
                                                  where Product2__c in :proIdList
                                                  ];
            // LHJ 20190102 增加跳过逻辑 Start
            List<Product2> productList = [select ID,SFDA_Status__c from Product2 where id in :proIdList];
            for (Product2 pro : productList) {
                if (pro.SFDA_Status__c == '不要') {
                    proNotNeedList.add(pro.ID);
                }
            }
            // LHJ 20190102 增加跳过逻辑 End
            for (Product_Register_Link__c prl : prls) {
                // 设置产品类别MAP
                if (String.isNotBlank(prl.Product_Register__r.BusinessScopeKey__c)) {
                    system.debug('Product2 +++++++' + prl.Product2__c);
                    if (proBSMap.get(prl.Product2__c) != null) {
                        proBSMap.get(prl.Product2__c).put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c);
                    } else {
                        Map<String,String> toooMap = new Map<String,String>();
                        toooMap.put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c);
                        proBSMap.put(prl.Product2__c, toooMap.clone());
                    }
                }
                // 产品的产品注册证是"不要"状态 不需要匹配注册证 20181225
                if (prl.Product2__r.SFDA_Approbated_Status__c == '不要'
                        || prl.Product_Register__r.MedPrdClass__c == '1') {
                     proNotNeedList.add(prl.Product2__c);
                }
            }
            system.debug('proBSMap +++++++' + proBSMap);
            for (String qli : proMap.keySet()) {
                String proId = qli;
                String proName = proMap.get(proId);
                if (proId != null) {
                    Boolean haveBS = false;
                    // 产品属于非医疗,不用判断经营范围
                    if (proNotNeedList.contains(proId)) {
                        haveBS = true;
                        continue;
                    }
                    if (proBSMap.get(proId) == null) {
                        error = true;
                        errormessage += '产品"' + proName + '"没有有效的产品注册证。\n';
                        retMap.put(proId, '1');
                        continue;
                    }
                    if (proBSMap.get(proId) != null) {
                        system.debug('111 +++++++' + proBSMap);
                        Map<String,String> midMap = new Map<String,String>();
                        midMap = proBSMap.get(proId);
                        for (String str : midMap.keySet()) {
                            // LHJ 20200711 Start
                            String strMidMap = midMap.get(str);
                            List<String> proRegList = new List<String>();
                            proRegList.addAll(strMidMap.split(';'));
                            // LHJ 20200711 End
                            for(String strReg:proRegList){
                                // 被定义为"6815A"的产品类别,经营范围中必须有6815或者6815A外才可以匹配。
                                if (strReg.length() == 6) {
                                    for(String strAg:agListA){
                                        if(strAg.length() >= 5 && midMap.get(str.substring(0, str.length() - 1)) == strAg.substring(0,5)){
                                            proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1));
                                            haveBS = true;
                                            break;
                                        }
                                    }
                                    /*if (agListA.contains(midMap.get(str.substring(0, str.length() - 1)))) {
                                        proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1));
                                        haveBS = true;
                                    }*/
                                } else {
                                    system.debug('agList +++++++' + agList);
                                    system.debug('midMap +++++++' + strReg);
                                    if (agList.contains(strReg)) {
                                        //产品类别,匹配到经销商类别
                                        proAllBSstrMap.get(proId).add(str);
                                        haveBS = true;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    if (!haveBS) {
                        error = true;
                        errormessage += '第一经销商的经营范围中不包含产品" ' + proName + '"。\n';
                        retMap.put(proId, '2');
                    }
                }
            }
        }
        if (retMap.isEmpty() == false) {
            //return errormessage;
        } else {
            if (OppId != '') {
                // 更新所有注册证信息
                String strRegister_alleffective;
                List<Product2> pro2List = new List<Product2>();
                Map<String, Product2> pro2Map = new Map<String, Product2>();
                List<OpportunityLineItem> updList = new List<OpportunityLineItem>();
                List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c,PricebookEntry.Product2Id
                                                           From OpportunityLineItem
                                                          Where OpportunityId = :OppId];
                // 非医疗或1类产品,取得
                if (proNotNeedList != null && proNotNeedList.size() > 0) {
                    pro2List = [select id, SFDA_Approbated_Status__c, RegisterNo_ALL__c from Product2 where Id in :proNotNeedList];
                }
                for (Product2 pro2 : pro2List) {
                    pro2Map.put(pro2.Id, pro2);
                }
                for (OpportunityLineItem ol : OppItemList) {
                    if (proAllBSstrMap.containsKey(ol.PricebookEntry.Product2Id)) {
                        ol.Register_alleffective__c = '';
                        for(String str: proAllBSstrMap.get(ol.PricebookEntry.Product2Id)) {
                            if (String.isNotBlank(ol.Register_alleffective__c)) {
                                ol.Register_alleffective__c += ';' + str;
                            } else {
                                ol.Register_alleffective__c = str;
                            }
                        }
                        // 非医疗或1类产品
                        if (pro2Map.containskey(ol.PricebookEntry.Product2Id)) {
                            if (pro2Map.get(ol.PricebookEntry.Product2Id).SFDA_Approbated_Status__c == '不要') {
                                ol.Register_alleffective__c = 'FYL';
                            } else {
                                ol.Register_alleffective__c = pro2Map.get(ol.PricebookEntry.Product2Id).RegisterNo_ALL__c;
                            }
                        }
                    }
                    updList.add(ol);
                }
                if (updList.size() > 0)  update updList;
            }
        }
        //如果不满足阿西赛多的条件,进入这个变量 20200821 ljh
        return retMap;
    }
    public class UpdateResult {
        @AuraEnabled public String recordId {get;set;}
        @AuraEnabled public Boolean success {get;set;}
        @AuraEnabled public List<String> errors {get;set;}
    }
    public class InitData{
    }
}
force-app/main/default/classes/LexContractAuthorizeController.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>51.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/classes/LexSISearchSetProductController.cls
@@ -4,6 +4,7 @@
    public LexSISearchSetProductController(){
    }
    @AuraEnabled
    public static InitData init(){
        InitData data=new InitData();
@@ -80,7 +81,7 @@
                        }else{
                            data.setPFString = data.setPFString+','+activities[i];
                        }
                    }
                }
            }
@@ -89,7 +90,7 @@
        }catch(Exception e){
            System.debug('SelectDone error:'+e);
        }
        return null;
    }
@@ -149,7 +150,7 @@
        @AuraEnabled
        public String Name;
        @AuraEnabled
        @AuraEnabled
        public String Product_Set_CD_c;
        @AuraEnabled
@@ -170,4 +171,4 @@
            Valid_c = psl.Valid_Status__c;
        }
    }
}
}
force-app/main/default/classes/LexStockCancelController.cls
@@ -2,4 +2,64 @@
    public LexStockCancelController() {
        
    }
    @AuraEnabled
    public static Opportunity init(String recordId){
        try{
            Opportunity item=[select
             Stock_cancel_reason__c,Whether_Upload_Question_Document__c
             from Opportunity
             where id = :recordId];
            return item;
        }catch(Exception e){
            System.debug('LexStockCancelController init error: '+e.getMessage());
        }
        return null;
    }
    @AuraEnabled
    public static UpdateResult updateOppotunity(
        String recordId,
        String stStatus
    ) {
        UpdateResult result = new UpdateResult();
        result.recordId = recordId;
        try{
            Opportunity op=new Opportunity(id=recordId);
            if(stStatus!=null&&stStatus!=''){
                op.Stock_apply_status__c= stStatus;
            }
            update op;
            result.success = true;
            result.errors = new List<String>();
            return result;
        }catch(Exception e){
            result.success = false;
            result.errors = new List<String>();
            result.errors.add(e.getMessage());
            System.debug(LoggingLevel.INFO,'updateOppotunity  Error : ' + e);
        }
        return result;
    }
    @AuraEnabled
    public static String submitApprovalRequest(String recordId) {
        try{
           Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
           req.setObjectId(recordId);
           Approval.ProcessResult result = Approval.process(req);
           if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage();
        }catch(Exception e){
            System.debug('LexStockCancelController submitApprovalRequest  error: '+e.getMessage());
            return e.getMessage();
        }
           return null;
    }
    public class UpdateResult {
        @AuraEnabled public String recordId {get;set;}
        @AuraEnabled public Boolean success {get;set;}
        @AuraEnabled public List<String> errors {get;set;}
    }
    public class InitData{
    }
}
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Holder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js
New file
@@ -0,0 +1,264 @@
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import LightningConfirm from 'lightning/confirm';
import customJSFile from '@salesforce/resourceUrl/CommonUtilJs';
import { loadScript } from 'lightning/platformResourceLoader';
import init from '@salesforce/apex/LexContractAuthorizeController.init';
import getProfileId from '@salesforce/apex/LexContractAuthorizeController.getProfileId';
import judgeIsAssistantAppliedOutTime from '@salesforce/apex/LexContractAuthorizeController.judgeIsAssistantAppliedOutTime';
import searchOpportunity from '@salesforce/apex/LexContractAuthorizeController.searchOpportunity';
import checkDangerItem from '@salesforce/apex/LexContractAuthorizeController.checkDangerItem';
import oppCheck from '@salesforce/apex/LexContractAuthorizeController.oppCheck';
import updReg from '@salesforce/apex/LexContractAuthorizeController.updReg';
import updateOppotunity from '@salesforce/apex/LexContractAuthorizeController.updateOppotunity';
export default class lexContractAuthorize extends LightningElement {
    @api recordId;
    IsLoading=true;
    data;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.data=result;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err.message);
        }).finally(()=>{
        });
    }
    async cancelSubmit(){
        let oppid = this.data.Id;
        let decide_quote = this.data.Estimation_Decision__c;
        let complete_day = this.data.Contract_DB_complite_day__c;
        let if_contract_auth = this.data.Contract_Authorize__c;
        let if_contract_lock = this.data.Contract_Authorize_Lock__c;
        let If_Need_Authorize = this.data.If_Need_Authorize__c;
        let Authorized_DB_No =this.data.Authorized_DB_No__c;
        let profileId = await getProfileId({});
        let spoURL = this.data.SPO_URL__c;
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start
        let DecidedQuoteNo = this.data.Estimation_No__c;
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end
        //2022-03-22 yjk SWAG-CCL6R7
        let Closing_Bid_Date = this.data.Closing_Bid_Date__c;//13.中标日
        let Closing_Bid_Date_Bid = this.data.Closing_Bid_Date_Bid__c;
        if (profileId != '00e10000000Y3o5' && profileId != '00e10000000Nab7' &&
        profileId != '00e10000000xnpR' && profileId != '00e10000000xyK6' && profileId != '00e10000000xnpW' && profileId != '00e10000000NbCE' && profileId != '00e10000000Nb7i'
        && profileId != '00e10000000xyK6') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:"您没有合同申请的权限。请联系系统管理员。"
            });
            this.dispatchEvent(event);
            return;
        }
        if(!Closing_Bid_Date){
            const event = new ShowToastEvent({
                title: '提示信息',
                message:"请填写13.中标日。"
            });
            this.dispatchEvent(event);
            return;
        }
        if (decide_quote != '1') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'请先决定报价。'
            });
            this.dispatchEvent(event);
            return;
        }
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start
        if (DecidedQuoteNo !="") {
            let judg=await judgeIsAssistantAppliedOutTime({Quoteid:DecidedQuoteNo});
        // alert('judg得值:'+judg);
        // return;
            if(judg == 'false'){
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:'经销商协议已过期,请重新做报价计算。'
                });
                this.dispatchEvent(event);
                return;
            }
        }
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end
        // 20221009 ljh SWAG-CK29AJ start
        let ClosingBidDate =this.data.Closing_Bid_Date__c;
        let BidDate = this.data.Bid_Date__c;
        if( ClosingBidDate < BidDate){
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'13.中标日不能早于12.招标日'
            });
            this.dispatchEvent(event);
            return;
        }
        // 20221009 ljh SWAG-CK29AJ end
        if(If_Need_Authorize == '1' && (Authorized_DB_No == null || Authorized_DB_No == '')){
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'请先做授权申请。'
            });
            this.dispatchEvent(event);
            return;
        }
        if (this.data.Cnt_Lost_cancel_Draft__c > 0) {
            if(!confirm('询价有草案中的取消/失单报告,是否继续?')){
                return ;
            }
        } else if (this.data.Cnt_Lost_cancel_report__c - this.data.Cnt_Lost_cancel_Draft__c > 0) {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'询价有已提交的取消/失单报告。'
            });
            this.dispatchEvent(event);
            return;
        }
        console.log("11");
        // 2022-03-31 新财年价格调整 start
        let decide_date = this.data.DecideQuoteDate__c;
        let before = new Date("2022-4-1");
        if (decide_date != null && decide_date < before) {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'报价变更,请重新做Decide。'
            });
            this.dispatchEvent(event);
            return;
        }
        // 2022-03-31 新财年价格调整 end
        let sqlResult = await searchOpportunity({oppid:oppid});
        let records = sqlResult;
        console.log(records);
        if ((complete_day != null && complete_day != '') && records.Contract_Authorize_Lock__c== 'true') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'合同申请已经完成,请不要重复提交。'
            });
            this.dispatchEvent(event);
            return;
        }
        // if ('{!Opportunity.AcecideCntCheck__c}' != '1') {
        // alert('阿西赛多询价只能包含危化品,或者,普通询价不能包含危化品。');
        // return;
        // }
        console.log("111");
        if ((complete_day == null || complete_day == '') && records.Contract_Authorize_Lock__c== 'true') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'合同正在申请中,请不要重复提交。'
            });
            this.dispatchEvent(event);
            return;
        }
        if (this.data.IF_Submit__c  == '1') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'上传失败,请联系系统管理员!'
            });
            this.dispatchEvent(event);
            return;
        }
        console.log("111");
        let angency = this.data.Agency1__c;
        if(this.data.Trade__c == '外貿' || this.data.Sales_Root__c == 'OCM直接販売'){
            let rtn = await updReg({oppid:oppid});
        } else {
            if(this.data.Is_Corrosion__c == '1'){
                let rtn1 = await checkDangerItem({agency1:angency});
                if (rtn1 != 'OK') {
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:rtn1
                    });
                    this.dispatchEvent(event);
                    return;
                }
            }else{
                let rtn =  await oppCheck({oppid:oppid, saveFlg:'1'});
                if (rtn != 'OK') {
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:rtn
                    });
                    this.dispatchEvent(event);
                    return;
                }
            }
        }
        console.log("222");
        let flag=false;
        await updateOppotunity({recordId:this.recordId}).then(res=>{
            console.log(res);
            if(res!=null&&res.success==false){
                let messages ="";
                flag=true;
                messages=res.errors[0];
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:"操作失败,提示信息:"+messages,
                });
                this.dispatchEvent(event);
                return;
            }
        });
        if(flag)return;
        console.log("333");
        const event = new ShowToastEvent({
            title: '提示信息',
            message:'提交成功!请在SPO系统中完成合同申请。'
        });
        this.dispatchEvent(event);
        //window.location.reload();
        window.open(spoURL);
    }
}
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexContractAuthorize">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexStockCancel/lexStockCancel.html
@@ -1,5 +1,5 @@
<template>
      <div class="Holder" if:true={IsLoading}>
              <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
      </div>
    <div class="Holder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js
@@ -1,13 +1,15 @@
import { LightningElement,api, track, wire } from 'lwc';
// {!RequireScript("/resource/CommonUtilJs")}
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import LightningConfirm from 'lightning/confirm';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import LightningConfirm from 'lightning/confirm';
import init from '@salesforce/apex/LexStockCancelController.init';
import updateOppotunity from '@salesforce/apex/LexStockCancelController.updateOppotunity';
import submitApprovalRequest from '@salesforce/apex/LexStockCancelController.submitApprovalRequest';
export default class lexStockCancel extends LightningElement {
    @api recordId;
    IsLoading=true
    IsLoading=true;
    data;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
@@ -24,89 +26,134 @@
    }
    async connectedCallback(){
    connectedCallback(){
        console.log(this.recordId);
        await init({recordId:this.recordId}).then(result=>{
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.sumit().then(res=>{
                    console.log("关闭窗口");
                this.data=result;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                }).catch(err=>{
                    console.log("error:");
                    console.log(err.message);
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:"操作失败,提示信息:"+err.message,
                    });
                    this.dispatchEvent(event);
                    //alert("操作失败,提示信息:"+err.message);
                });
                console.log("end");
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err.message);
            console.log("报错结束");
        }).finally(()=>{
            console.log("finally");
        });
    }
    async cancelSubmit(){
        let reason = this.data.Stock_cancel_reason__c;
        if (reason == null || reason == '') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'必须填写撤销备货理由。'
            });
            this.dispatchEvent(event);
            return;
        }
        // CHAN-BCS8T5 LHJ 20190604 Start
        let stage = this.data.Whether_Upload_Question_Document__c;
        if (stage == '0') {
            const event = new ShowToastEvent({
                title: "提示信息",
                message:'请上传质疑函。'
            });
            this.dispatchEvent(event);
            return;
        }
        // CHAN-BCS8T5 LHJ 20190604 End
        const resul = await LightningConfirm.open({
            message: "一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?",
            variant: 'headerless',
            label: '提示信息',
            // setting theme would have no effect
        });
        if (resul==false) {
            return;
        }
        let flag=true;
        await updateOppotunity({recordId:this.recordId,stStatus:"撤销填写完毕"}).then(res=>{
            console.log(res);
            if(res!=null&&res.success==false){
                let messages ="";
                flag=false;
                messages=res.errors[0];
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:"操作失败,提示信息:"+messages
                });
                this.dispatchEvent(event);
                return;
            }
        })
        if(flag==false)return;
        // let rac = new sforce.SObject("Opportunity");
        // rac.Id = "{!Opportunity.Id}";
        // rac.Stock_apply_status__c = "撤销填写完毕";
        // let result = sforce.connection.update([rac]);
        // let messages = getConnectDMLErrorMessages(result);
        // if (messages.length > 0) {
        //     alert(messages.join("\n"));
        //     return;
        // }
        let ress;
          await submitApprovalRequest({recordId:this.recordId}).then(res=>{
              console.log(res);
              ress=res;
          })
          console.log("777");
        if (ress != null) {
            // let back = new window.sforce.SObject("Opportunity");
            // back.Id = "{!Opportunity.Id}";
            // back.Stock_apply_status__c = "批准";
            // let backResult = sforce.connection.update([back]);
            // backMessages = getConnectDMLErrorMessages(backResult);
            // if (backMessages.length > 0) {
            //     showTost("提示信息",backMessages.join("\n"));
            //     return;
            // }
            // let errmsg = processResults[0].errors.message.toString();
            // showTost("提示信息",errmsg);
            await updateOppotunity({recordId:this.recordId,stStatus: "批准"}).then(res=>{
                console.log(res);
                if(res!=null&&res.success==false){
                    let messages ="";
                    flag=false;
                    messages=res.errors[0];
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:"操作失败,提示信息:"+messages,
                    });
                    this.dispatchEvent(event);
                    return;
                }
            });
            if(flag==false)return;
            const event = new ShowToastEvent({
                title: '提示信息',
                message:ress
            });
            this.dispatchEvent(event);
            return;
        }
        // window.location.reload();
    };
    showTost(title,message){
        
    }
    async sumit(){
        // var reason = '{!Opportunity.Stock_cancel_reason__c}';
        // if (reason == null || reason == '') {
        //     alert('必须填写撤销备货理由。');
        //     return
        // }
        // // CHAN-BCS8T5 LHJ 20190604 Start
        // var stage = '{!Opportunity.Whether_Upload_Question_Document__c}';
        // if (stage == '0') {
        //     alert('请上传质疑函。');
        //     return;
        // }
        // // CHAN-BCS8T5 LHJ 20190604 End
        // if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
        //     return;
        // }
        // var rac = new sforce.SObject("Opportunity");
        // rac.Id = "{!Opportunity.Id}";
        // rac.Stock_apply_status__c = "撤销填写完毕";
        // var result = sforce.connection.update([rac]);
        // var messages = getConnectDMLErrorMessages(result);
        // if (messages.length > 0) {
        // alert(messages.join("\n"));
        // return;
        // }
        // var request = new sforce.ProcessSubmitRequest();
        // request.objectId = "{!Opportunity.Id}";
        // var processResults = sforce.connection.process([request]);
        // if (processResults[0].errors != null) {
        // var back = new sforce.SObject("Opportunity");
        // back.Id = "{!Opportunity.Id}";
        // back.Stock_apply_status__c = "批准";
        // var backResult = sforce.connection.update([back]);
        // backMessages = getConnectDMLErrorMessages(backResult);
        // if (backMessages.length > 0) {
        // alert(backMessages.join("\n"));
        // return;
        // }
        // var errmsg = processResults[0].errors.message.toString();
        // alert(errmsg);
        // return;
        // }
        // window.location.reload();
        // };
    }
}
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js-meta.xml
@@ -2,10 +2,10 @@
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexStockCancel">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>