付煜
2022-03-24 0ac2c8c62a4ba1b92bcae9f11f7f4d9c6f54875b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
public with sharing class TenderDeleteLwcController {
    @AuraEnabled
    public static  String GetTenderinformationcData(String ParamIdStr) {
 
         List<Tender_information__c> arrays = Database.query('Select Id,Name,InfoId__c,Logical_delete__c,ProjectId__c,Retain_Tender__c From Tender_information__c Where id = : ParamIdStr');
         
         return JSON.serialize(arrays);
    }
    @AuraEnabled
    public static  String saveData(String Tenderinformationc) {
        Tender_information__c TenInfo=(Tender_information__c)JSON.deserialize(Tenderinformationc,Tender_information__c.class);
        List<Tender_information__c> updateTenInfoList = new List<Tender_information__c>();
        // 更新保留招投标
        // List<Tender_information__c> updateBTenList = new List<Tender_information__c>();
        // 如果点击保存后,未选则保留招投标则报错
        // SaveErrorflag = false;
        System.debug('--------' + TenInfo.Retain_Tender__c);
        if (String.isNotBlank(TenInfo.Retain_Tender__c)) {
            System.debug('---------2--------' + TenInfo.Retain_Tender__c);
            //要保留的招投标
            Tender_information__c BTen =  [select Id, InfoId__c From Tender_information__c
                                           Where Id = : TenInfo.Retain_Tender__c];
 
            // 保留招投标关联的询价
            System.debug('---------BTen--------' + BTen);
            List<Tender_Opportunity_Link__c> BlinksList = [select Opportunity__c
                    from Tender_Opportunity_Link__c
                    where Tender_information__c = :BTen.Id];
            Set<Id> BlinkOppId = new Set<Id>();
            // if (BlinksList.size() > 0) {
            for (Tender_Opportunity_Link__c Blink : BlinksList) {
                BlinkOppId.add(Blink.Opportunity__c);
            }
            // 删除项目关联但不与保留项目关联的询价关联信息
            List<Tender_Opportunity_Link__c> linksList = [select id, Opportunity__c, Tender_information__c
                    from Tender_Opportunity_Link__c
                    where Tender_information__c = :TenInfo.Id ];
                                                //  and Opportunity__c not in : BlinkOppId];
            // 把删除招投标 关联的询价 赋给 保留招投标上
            List<Tender_Opportunity_Link__c> addlinksList = new List<Tender_Opportunity_Link__c>();
            // 删除招投标关联的询价
            // 增加一个判断 看看是否还会写空进去
            if (linksList != null && linksList.size() > 0) {
                for (Tender_Opportunity_Link__c link : linksList) {
                    if(!BlinkOppId.contains(link.Opportunity__c)){
                        Tender_Opportunity_Link__c linkinfo =  new Tender_Opportunity_Link__c();
                        linkinfo.Tender_information__c = BTen.Id;
                        linkinfo.Opportunity__c = link.Opportunity__c;
                        linkinfo.Tender_Opportunity_Uniq__c = BTen.Id + '' + link.Opportunity__c;
                        linkinfo.IsRelated__c = true;
                        // if (BlinksList.contains(linkinfo)) {
                        addlinksList.add(linkinfo);
                        // }
                    }
                }
                // 删除项目删掉关联询价
                delete linksList;
                // 保留项目新增关联询价
                if (addlinksList.size() > 0) {
                    insert addlinksList;
                }
            }
            // 【委托】招标项目-逻辑删除的项目需要自动取消与询价的关系 fy 2022.3.7 start
            List<Tender_Opportunity_Link__c> linksListdelect = [select id, Opportunity__c, Tender_information__c
                    from Tender_Opportunity_Link__c
                    where Tender_information__c = :TenInfo.Id];
            if(linksListdelect.size()>0){
                delete linksListdelect;
            }
            // 【委托】招标项目-逻辑删除的项目需要自动取消与询价的关系 fy 2022.3.7 end
            // }
            // 互换保留招投标与删除招投标的信息Id
            TenInfo.Retain_Tender__c = BTen.Id;
            // 【委托】招标项目-逻辑删除的项目需要自动取消与询价的关系 fy 2022.3.7 start
            TenInfo.Name = '逻辑删除:'+TenInfo.Name;
            // 【委托】招标项目-逻辑删除的项目需要自动取消与询价的关系 fy 2022.3.7 end
            String BTenInfo = BTen.InfoId__c;
            BTen.InfoId__c = TenInfo.InfoId__c;//保留招投标的信息Id赋给删除招投标的信息Id
            TenInfo.InfoId__c = BTenInfo;//删除招投标的信息Id赋给保留招投标的信息Id
            // 点击保存后 删除招投标上的逻辑删除字段变为true
            TenInfo.Logical_delete__c = true;
            // update TenInfo;
            // 反正要更新 放在一起也是一样的
            updateTenInfoList.add(TenInfo);
            updateTenInfoList.add(BTen);
            if (!TenInfo.Id.equals(BTen.Id)) {
                update updateTenInfoList;
            }
            // updateBTenList.add(BTen);
            // update updateBTenList;
        }
        if (String.isNotBlank(TenInfo.Retain_Tender__c)&&String.isNotBlank(TenInfo.ProjectId__c)&&String.isNotBlank(TenInfo.InfoId__c)) {
            // 调用接口
            NFM504Controller.sendRequest(TenInfo.Id);
        }
        // System.debug('1111111122222' + SaveErrorflag);
 
        return '成功';
        //  return Tenderinformationc;
    }
    // public PageReference returnFresh() {
    //     // System.debug('1234567891234567890');
    //     String url = '/' + TenIds;
    //     PageReference ref =  new Pagereference(url);
    //     ref.setRedirect(true);
    //     return ref;
    // }
}