高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
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
109
/**
     * @Author    lijinhuan
     * @DateTime  2022-12-28T18:25:42+0800
     * 测试类:FrameNumUploadControllerTest 
*/
global class  SetFrameNumManageWebService {
    /**
     * @fuction   [关联数据]
     * @Author    lijinhuan
     * @DateTime  2023-01-10T11:06:10+0800
     */ 
    WebService static String updateFrameNumManag(String Id) {
        Id execBTId = Database.executeBatch(new SetFrameNumManageBatch(Id), 1);
        return '1';
    }
    /**
     * @fuction   [批量删除]
     * @Author    lijinhuan
     * @DateTime  2023-01-10T11:06:10+0800
     */
    WebService static String BatchDelete(List<String> idList) {
        Savepoint sp = Database.setSavepoint();
        try{
            //sf删除
            Database.delete(idList); 
            return 'success';
        }catch(Exception e){
            Database.rollback(sp);
            System.debug('失败原因是 : ' + e.getMessage());
            return '失败原因是 : ' + e.getMessage();
        }
    }
    /**
     * @fuction   [生成机身号管理对象数据]
     * @Author    lijinhuan
     * @DateTime  2023-02-07T11:06:10+0800
     */
    WebService static String insertFrameNumManag(String Id,String esId) {
        // return Id+';'+esId;
        Map<String,Statu_Achievements_DN_details__c> sandMap = new Map<String,Statu_Achievements_DN_details__c>();
        Map<String,Statu_Achievements_DN_details__c> UpdateSandMap = new Map<String,Statu_Achievements_DN_details__c>();
        Map<String,String> UpdateFIdMap = new Map<String,String>();
        Map<String,Id> eSignFormMap = new Map<String,Id>();
        Map<String,String> DNMap  = new Map<String,String>();
        try{
             // 查询明细 在机身号管理中有没,没有生成,有更新 签收单、发货DN明细、保有设备
            for(Statu_Achievements_DN_details__c dn:[SELECT Id,SerialNumber__c,asset__c,
                                                        Statu_Achievements_DN__c,SerialNoorLotNo_Raw__c,TracingCode_Raw__c,
                                                        OTCode_Raw__c,asset__r.Name,QTY__c,Statu_Achievements_DN__r.Name
                                                        FROM Statu_Achievements_DN_details__c
                                                        WHERE Statu_Achievements_DN__c =:Id ]){
                sandMap.put(dn.TracingCode_Raw__c,dn);
                DNMap.put(dn.TracingCode_Raw__c,dn.Statu_Achievements_DN__r.Name);
            }
            for(FrameNumManage__c f:[SELECT ManagementCode__c  FROM FrameNumManage__c WHERE ManagementCode__c in :sandMap.keySet()]){
                sandMap.remove(f.ManagementCode__c);
                // 更新机身号管理
                UpdateSandMap.put(f.ManagementCode__c,sandMap.get(f.ManagementCode__c));
                UpdateFIdMap.put(f.ManagementCode__c, f.Id);
            }
            if(sandMap.size() > 0){
                List<FrameNumManage__c> infnmList = new List<FrameNumManage__c>();
                for (Statu_Achievements_DN_details__c s:sandMap.values()) {
                    FrameNumManage__c temp = new FrameNumManage__c();
                    temp.Name = s.TracingCode_Raw__c;
                    temp.ManagementCode__c = s.TracingCode_Raw__c;
                    temp.SerialNumberS__c = s.SerialNoorLotNo_Raw__c+'('+s.TracingCode_Raw__c+')';
                    temp.SerialNumber__c = s.SerialNoorLotNo_Raw__c;
                    temp.Num__c = s.QTY__c;
                    temp.CheckOutNo__c  = s.Statu_Achievements_DN__r.Name.subString(2);//发货DN 的name去掉前两位的 00
 
                    temp.Statu_Achievements_DN_details__c = s.Id;
                    temp.Asset__c = s.asset__c;
                    temp.signInForm__c = esId;
 
                    temp.Material__c = s.OTCode_Raw__c;
                    temp.MaterialDepict__c = s.asset__r.Name;
 
                    
                    infnmList.add(temp);
                }
                if(infnmList.size() > 0){
                    insert infnmList;
                    // Database.executeBatch(new SetFrameNumManageBatch(), 100);
                }
                if(UpdateSandMap.size() > 0){
                    List<FrameNumManage__c> upfnmList = new List<FrameNumManage__c>();
                    for (Statu_Achievements_DN_details__c s:UpdateSandMap.values()) {
                        FrameNumManage__c temp = new FrameNumManage__c();
                        temp.id = UpdateFIdMap.get(s.TracingCode_Raw__c);
                        temp.Statu_Achievements_DN_details__c = s.Id;
                        temp.Asset__c = s.asset__c;
                        temp.signInForm__c = eSignFormMap.get(s.TracingCode_Raw__c);
                        upfnmList.add(temp);
                    }
                    update upfnmList;
                }
                return '1';
            }else{
                return '数据已经关联,没有需要关联的数据';
            }
               
        }catch(Exception e){
            // Database.rollback(sp);
            System.debug('失败原因是 : ' + e.getMessage());
            return '失败原因是 : ' + e.getMessage();
        }
    }
}