package com.jjt.biz.controller; import com.jjt.biz.domain.BizObjData; import com.jjt.biz.domain.BizObjMetrics; import com.jjt.biz.service.IBizObjDataService; import com.jjt.biz.service.IBizObjMetricsService; import com.jjt.common.annotation.Log; import com.jjt.common.core.controller.BaseController; import com.jjt.common.core.domain.AjaxResult; import com.jjt.common.core.page.TableDataInfo; import com.jjt.common.enums.BusinessType; import com.jjt.common.utils.poi.ExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 业务对象数据接口Controller * * @author jjt * @date 2024-08-09 */ @Api(tags = "业务对象数据接口") @RestController @RequestMapping("/obj/data") public class BizObjDataController extends BaseController { @Resource private IBizObjDataService bizObjDataService; @Resource private IBizObjMetricsService metricsService; /** * 查询业务对象数据接口列表 */ @ApiOperation("查询业务对象数据接口列表") @PreAuthorize("@ss.hasPermi('obj:data:list')") @GetMapping("/list") public TableDataInfo list(BizObjData bizObjData) { startPage(); List list = bizObjDataService.selectBizObjDataList(bizObjData); return getDataTable(list); } /** * 查询业务对象数据接口列表 */ @ApiOperation("根据对象查询列表") @GetMapping("/list/{objId}") public TableDataInfo list(@ApiParam(value = "对象ID", required = true) @PathVariable("objId") Long objId) { BizObjData bizObjData = new BizObjData(); bizObjData.setObjId(objId); List list = bizObjDataService.selectBizObjDataList(bizObjData); Map> existsMap = list.stream().collect(Collectors.groupingBy(BizObjData::getMetricsType)); BizObjMetrics om = new BizObjMetrics(); om.setObjId(objId); List metricsList = metricsService.selectBizObjMetricsList(om); //根据部门对用户列表进行分组 Map> userMap = metricsList.stream().collect(Collectors.groupingBy(obj -> obj.getMetricsDef().getMetricsType())); for (String s : userMap.keySet()) { //pinpoint不需要 if (!existsMap.containsKey(s) && !"1".equals(s)) { BizObjData temp = new BizObjData(); temp.setObjId(objId); temp.setMetricsType(s); bizObjDataService.insertBizObjData(temp); } } startPage(); list = bizObjDataService.selectBizObjDataList(bizObjData); return getDataTable(list); } /** * 导出业务对象数据接口列表 */ @ApiOperation("导出业务对象数据接口列表") @PreAuthorize("@ss.hasPermi('obj:data:export')") @Log(title = "业务对象数据接口", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, BizObjData bizObjData) { List list = bizObjDataService.selectBizObjDataList(bizObjData); ExcelUtil util = new ExcelUtil(BizObjData.class); util.exportExcel(response, list, "业务对象数据接口数据"); } /** * 获取业务对象数据接口详细信息 */ @ApiOperation("获取业务对象数据接口详细信息") @PreAuthorize("@ss.hasPermi('obj:data:query')") @GetMapping(value = "/{dataId}") public AjaxResult getInfo(@PathVariable("dataId") Long dataId) { return success(bizObjDataService.selectBizObjDataByDataId(dataId)); } /** * 新增业务对象数据接口 */ @ApiOperation("新增业务对象数据接口") @PreAuthorize("@ss.hasPermi('obj:data:add')") @Log(title = "业务对象数据接口", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody BizObjData bizObjData) { return toAjax(bizObjDataService.insertBizObjData(bizObjData)); } /** * 修改业务对象数据接口 */ @ApiOperation("修改业务对象数据接口") @PreAuthorize("@ss.hasPermi('obj:data:edit')") @Log(title = "业务对象数据接口", businessType = BusinessType.UPDATE) @PostMapping("/edit") public AjaxResult edit(@RequestBody BizObjData bizObjData) { return toAjax(bizObjDataService.updateBizObjData(bizObjData)); } /** * 删除业务对象数据接口 */ @ApiOperation("删除业务对象数据接口") @PreAuthorize("@ss.hasPermi('obj:data:remove')") @Log(title = "业务对象数据接口", businessType = BusinessType.DELETE) @GetMapping("/del/{dataIds}") public AjaxResult remove(@PathVariable Long[] dataIds) { return toAjax(bizObjDataService.deleteBizObjDataByDataIds(dataIds)); } }