package com.vci.web.controller; import com.vci.corba.common.PLException; import com.vci.dto.DeleteDataDTO; import com.vci.dto.DeleteLinkDataDTO; import com.vci.dto.FormDataDTO; import com.vci.dto.FormLinkDataDTO; 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.pagemodel.ReferConfigVO; import com.vci.pagemodel.UIFormDataVO; import com.vci.web.query.UIDataGridQuery; import com.vci.web.query.UIFormQuery; import com.vci.web.query.UITreeQuery; import com.vci.web.service.UIDataServiceI; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.Arrays; 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) throws PLException { return uiDataService.getDataForGrid(dataGridQuery); } /** * 表单的数据查询 * @param formQuery 表单查询对象 * @return 表单的数据 */ @PostMapping("/dataFormQuery") @VciUnCheckRight @VciBusinessLog(operateName = "表单的查询",description = "${param.btmname}里的${param.formDefineId}") public BaseResult getDataForForm(UIFormQuery formQuery){ return BaseResult.success(uiDataService.getDataForForm(formQuery)); } /** * 树的数据查询 * @param treeQuery 树查询对象 * @return 树的数据 */ @PostMapping("/getDataForTree") @VciUnCheckRight @VciBusinessLog(operateName = "树的查询",description = "${param.btmname}") public List getDataForTree(UITreeQuery treeQuery){ return uiDataService.getDataForTree(treeQuery); } /** * 添加数据。前端使用JSON提交 * @param formDataDTO 表单 * @return 执行的结果 */ @PostMapping("/addSave") @VciUnCheckRight @VciBusinessLog(operateName = "添加数据",description = "${param.btmname}") public BaseResult> addSave(@RequestBody FormDataDTO formDataDTO){ return uiDataService.addSave(formDataDTO); } /** * 添加链接类型数据。前端使用JSON提交 * @param formLinkDataDTO 表单数据 * @return 执行的结果 */ @PostMapping("/linkAddSave") @VciBusinessLog(operateName = "添加链接数据",description = "${param.linkType}") public BaseResult linkAddSave(@RequestBody FormLinkDataDTO formLinkDataDTO){ return uiDataService.linkAddSave(formLinkDataDTO); } /** * 修改数据,前端使用JSON提交 * @param formDataDTO 表单 * @return 执行的结果 */ @PutMapping("/editSave") @VciUnCheckRight @VciBusinessLog(operateName = "修改数据",description = "${param.btmname}里的${param.oid}") public BaseResult> 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> upRevision(@RequestBody FormDataDTO formDataDTO) throws PLException { return uiDataService.upRevision(formDataDTO); } /** * 数据升版本/次,前端使用JSON提交 * @param btmname 业务类型的信息 * @param oid 业务数据的主键 * @param type 1:版次对象;2:版本对象;3:主对象 * @return 执行的结果 */ @DeleteMapping("/deleteBusinessObject") public BaseResult deleteBusinessObject(String btmname , String oid, int type) { try { return uiDataService.deleteBusinessObject(btmname, oid, type); }catch (PLException e){ BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * 删除数据 * @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 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> dataMapList = uiDataService.getDataAttr(btmname, oid); if (CollectionUtils.isEmpty(dataMapList)){ return BaseResult.fail("查询数据为空"); } BaseResult re = BaseResult.success(); re.setData(dataMapList); return re; } /** * 变更所有者 * @param btmname 业务类型 * @param oid 主键 * @return 执行的结果 */ @PutMapping("/changeBusinessObjectOwner") public BaseResult changeBusinessObjectOwner(String btmname , String oid) { try { return uiDataService.changeBusinessObjectOwner(btmname, oid); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * 状态跃迁 * @param btmname 业务类型 * @param oid 主键 * @param releaseStatus 发布状态 * @return 执行的结果 */ @PutMapping("/transferBusinessObject") public BaseResult transferBusinessObject(String btmname , String oid, String toStatus, String releaseStatus) { try { return uiDataService.transferBusinessObject(btmname, oid, toStatus, releaseStatus); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } }