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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
package com.vci.web.controller;
 
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.pagemodel.*;
import com.vci.web.dto.*;
import com.vci.web.pageModel.ReferConfigVO;
import com.vci.web.pageModel.UIFormDataVO;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UITreeQuery;
import com.vci.web.query.UITreeRootQuery;
import com.vci.web.service.UIDataServiceI;
import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import plm.bs.bom.clientobject.ClientBusinessObject;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
/**
 * ui定义的数据查询
 * @author weidy
 * @date 2021/3/3
 */
@RestController
@RequestMapping("/uiDataController")
@VciBusinessLog(modelName="UI上下文")
public class WebUIDataController {
 
    /**
     * 界面的数据服务
     */
    @Autowired
    private UIDataServiceI uiDataService;
 
    /**
     * 列表查询
     * @param dataGridQuery 查询对象
     * @return 列表数据
     */
    @PostMapping("/dataGridQuery")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "列表数据的查询",description = "${param.btmname}里的${param.tableDefineId}")
    public DataGrid dataGrid(UIDataGridQuery dataGridQuery){
        return uiDataService.getDataForGrid(dataGridQuery);
    }
 
    /**
     * 表单的数据查询
     * @param formQuery 表单查询对象
     * @return 表单的数据
     */
    @PostMapping("/dataFormQuery")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "表单的查询",description = "${param.btmname}里的${param.formDefineId}")
    public BaseResult<UIFormDataVO> getDataForForm(UIFormQuery formQuery){
        return BaseResult.success(uiDataService.getDataForForm(formQuery));
    }
 
    /**
     * 树的数据查询
     * @param treeQuery 树查询对象
     * @return 树的数据
     */
    @PostMapping("/getDataForTree")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "树的查询",description = "${param.btmname}")
    public List<Tree> getDataForTree(UITreeQuery treeQuery){
        return uiDataService.getDataForTree(treeQuery);
    }
 
    /**
     * 添加数据。前端使用JSON提交
     * @param formDataDTO 表单
     * @return 执行的结果
     */
    @PostMapping("/addSave")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "添加数据",description = "${param.btmname}")
    public BaseResult<Map<String,Object>> addSave(@RequestBody FormDataDTO formDataDTO){
        return uiDataService.addSave(formDataDTO);
    }
 
    /**
     * 添加链接类型数据。前端使用JSON提交
     * @param formLinkDataDTO 表单数据
     * @return 执行的结果
     */
    @PostMapping("/linkAddSave")
    @VciBusinessLog(operateName = "添加链接数据",description = "${param.linkType}")
    public BaseResult<String> linkAddSave(@RequestBody FormLinkDataDTO formLinkDataDTO){
        return uiDataService.linkAddSave(formLinkDataDTO);
    }
 
    /**
     * 修改数据,前端使用JSON提交
     * @param formDataDTO 表单
     * @return 执行的结果
     */
    @PutMapping("/editSave")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "修改数据",description = "${param.btmname}里的${param.oid}")
    public BaseResult<Map<String,Object>> editSave(@RequestBody FormDataDTO formDataDTO){
        return uiDataService.editSave(formDataDTO);
    }
 
    /**
     * 修改链接类型的数据,前端使用JSON提交
     * @param formLinkDataDTO 表单的数据对象
     * @return 执行结果
     */
    @VciBusinessLog(operateName = "修改链接类型数据",description = "${param.linkType}里的${param.oid}")
    @PutMapping("/linkEditSave")
    public BaseResult linkEditSave(@RequestBody FormLinkDataDTO formLinkDataDTO){
        return uiDataService.linkEditSave(formLinkDataDTO);
    }
 
    /**
     * 数据升版,前端使用JSON提交
     * @param formDataDTO 表单数据
     * @return 执行的结果
     */
    @PutMapping("/upRevision")
    @VciBusinessLog(operateName = "数据升版",description = "${param.btmname}里的${param.copyFromVersion}")
    public BaseResult<Map<String,Object>> upRevision(@RequestBody FormDataDTO formDataDTO){
        return uiDataService.upRevision(formDataDTO);
    }
 
    /**
     * 删除数据
     * @param deleteDataDTO 删除的数据,需要有oid和ts
     * @return 执行的结果
     */
    @DeleteMapping("/deleteData")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "删除数据",description = "${param.dataList.0.btmname}的${param.dataList.${join}.oid}")
    public BaseResult deleteData(@RequestBody DeleteDataDTO deleteDataDTO){
        return uiDataService.batchDelete(deleteDataDTO);
    }
 
    /**
     * 删除链接类型数据
     * @param deleteLinkDataDTO 删除的数据
     * @return 执行的结果
     */
    @DeleteMapping("/linkDeleteData")
    @VciBusinessLog(operateName = "删除数据",description = "${param.dataList.0.linkType}的${param.dataList.${join}.oid}")
    public BaseResult linkDeleteData(@RequestBody DeleteLinkDataDTO deleteLinkDataDTO){
        return uiDataService.batchLinkDelete(deleteLinkDataDTO);
    }
 
    /**
     * 默认的参照列表
     * @param referConfigVO 参照的配置信息
     * @return 执行的结果
     */
    @GetMapping("/defaultReferDataGrid")
    @VciBusinessLog(operateName = "获取参照的列表数据",description = "")
    public DataGrid defaultReferDataGrid(ReferConfigVO referConfigVO,PageHelper pageHelper){
        return uiDataService.referDataGrid(referConfigVO,pageHelper);
    }
 
    /**
     * 默认的树形参照列表
     * @param referConfigVO 参照的配置信息
     * @return 执行的结果
     */
    @VciBusinessLog(operateName = "获取参照的树形数据",description = "")
    @GetMapping("/defaultReferTree")
    public List<Tree> defaultReferTree(ReferConfigVO referConfigVO){
        return uiDataService.referTree(referConfigVO);
    }
 
    /**
     * 表单的数据查询
     * @param btmname 业务类型的信息
     * @param oid 业务数据的主键
     * @return 业务数据的属性信息
     */
    @GetMapping("/getDataAttr")
    @VciBusinessLog(operateName = "获取当前业务数据的全部属性",description = "")
    public BaseResult getDataAttr(String btmname , String oid){
        List<Map<String,String>> dataMapList = uiDataService.getDataAttr(btmname, oid);
        if (CollectionUtils.isEmpty(dataMapList)){
            return BaseResult.fail("查询数据为空");
        }
        BaseResult re = BaseResult.success();
        re.setData(dataMapList);
        return re;
    }
}