buli
2023-05-04 50b39c4b52bf5fd61ec46ada365c51e05a16d2ae
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
public with sharing class LexPrintInspectupReportController {
    public lexPrintInspectupReportController() {
        
    }
    @AuraEnabled
    public static InitData init(String recordId) {
        InitData initData = new InitData();
        initData.maintenanceContractId = recordId;
        getAssetType(initData);
 
        return initData;
    }
 
    public class InitData {
        //维修合同id
        public String maintenanceContractId;
        //是否空白单据
        public String isResultShow;
        //根据保有设备查询合同
        public String selectAssetType;
        //战略科室的下拉内容
        public List<CustomData> strategyDepartment;
        //科室的下拉内容
        public List<CustomData> department;
        //设备的装机地点
        public List<CustomData> installationSite;
        //是否分页
        public Boolean isPaging;
 
        public String produceText;
        //洗消信息
        public Boolean activeOn ;
        //点检数据
        public List<Inspectup_Plan__c>  inspectupPlanList;
        //条件参数
        public String parameter;
 
    }
 
 
    //获取修理合同上的保有设备都是那个战略科室和科室
    public static void getAssetType(InitData initData){
        String assetTypeSQl = makeTextDepSQl(initData.maintenanceContractId);
        try{
            List<Maintenance_Contract_Asset__c> assetTypeList = Database.query(assetTypeSQl);
            if(assetTypeList != null && assetTypeList.size() > 0){
                //临时字符串
                String strategyDepartmentStr = '';
                String departmentStr = '';
                String installationSiteStr = '';
                //战略科室存放处
                initData.strategyDepartment = new List<CustomData>();
                initData.department = new List<CustomData>();
                initData.installationSite = new List<CustomData>();
                for(Maintenance_Contract_Asset__c mca : assetTypeList){
                    //所有的战略科室
                    if(strategyDepartmentStr.indexOf(mca.Asset__r.Strategic_department_Class_Name__c) == -1){
                        strategyDepartmentStr += mca.Asset__r.Strategic_department_Class_Name__c;
                        initData.strategyDepartment.add(new CustomData(mca.Asset__r.Department_Class__c,mca.Asset__r.Acc_Department_Class_Name__c));
                    }
                    //科室
                    if(departmentStr.indexOf(mca.Asset__r.Account.Name) == -1){
                        departmentStr += mca.Asset__r.Account.Name;
                        initData.department.add(new CustomData(mca.Asset__r.Account.Id,mca.Asset__r.Department_Name__c));
                    }
                    //装机地点
                    if(mca.Asset__r.Installation_Site__c != null && mca.Asset__r.Installation_Site__c != ''){
                        if(installationSiteStr.indexOf(mca.Asset__r.Installation_Site__c) == -1){
                            installationSiteStr += mca.Asset__r.Installation_Site__c;
                            initData.installationSite.add(new CustomData(mca.Asset__r.Installation_Site__c,mca.Asset__r.Installation_Site__c));
                        }
                    }
                }
            }
        }catch(exception e){
            //失败提示
            ApexPages.addMessages(e);
        }
    }
    //获取所有的点检数据
    public static void getInspectupPlan(InitData initData){
        String InspectupPlanSQL = makeTextInspectupPlanSQl(initData.maintenanceContractId);
        try{
            initData.inspectupPlanList = Database.query(InspectupPlanSQL);
        }catch(exception e){
            //失败提示
            ApexPages.addMessages(e);
        }
    }
    //查询点检报告书的pdf
    public static String makeTextInspectupPlanSQl(String maintenanceContractId){
        String InspectupPlanSQL = 'SELECT ID,NAME,Execution_End_Date__c,Chack_Plan_NO__c FROM Inspectup_Plan__c WHERE Maintenance_Contract__c = \''+maintenanceContractId+'\' '
                                + ' order by Maintenance_Contract__c desc';
        return InspectupPlanSQL;
    }
 
    //查询修理合同里面保有设备都是那些科室和战略科室
    public static String makeTextDepSQl(String maintenanceContractId){
        String depSQl = 'select id,name,Asset__c,Asset__r.name,Asset__r.SerialNumber,Asset__r.Strategic_department_Class_Name__c,Asset__r.Department_Class__c,Asset__r.Acc_Department_Class_Name__c,'
                    +' Asset__r.Department_Name__c,Asset__r.Account.Id,Asset__r.Account.Name,Asset__r.Installation_Site__c '
                    +' from Maintenance_Contract_Asset__c '
                    //+' where Check_object__c = true and Maintenance_Contract__c = \''+maintenanceContractId+'\' '
                    +' where Maintenance_Contract__c = \''+maintenanceContractId+'\' and isdianjian__c != 0 '
                    +' order by Asset__r.Acc_Department_Class_Name__c,Asset__r.Account.Name';
        return depSQl;
    }
 
 
 
    /**
     * 为了方便前端table获取值
     */
    class CustomData {
        //id
        public String parameterId ;
        //name
        public String parameterName ; 
 
        public CustomData(String accountId,String accountName){
            parameterId = accountId;
            parameterName = accountName;
        }    
    }
}