package com.ltkj.web.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.hosp.domain.TjReportTemplate; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ltkj.common.annotation.Log; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.enums.BusinessType; import com.ltkj.hosp.domain.JimuReport; import com.ltkj.hosp.service.IJimuOnlineReportService; import com.ltkj.common.utils.poi.ExcelUtil; import com.ltkj.common.core.page.TableDataInfo; /** * 在线excel设计器Controller * * @author ltkj_赵佳豪&李格 * @date 2023-04-23 */ @RestController @RequestMapping("/system/onlinereport") @Api(tags = "报表模板维护接口") public class JimuReportController extends BaseController { @Autowired private IJimuOnlineReportService jimuReportService; /** * 查询在线excel设计器列表 */ // @PreAuthorize("@ss.hasPermi('system:onlinereport:list')") @GetMapping("/list") public TableDataInfo list(JimuReport jimuReport) { startPage(); List list = jimuReportService.selectJimuReportList(jimuReport); return getDataTable(list); } /** * 启用状态修改 */ @PutMapping("/onlineChangeStatus") @ApiOperation(value = "启用状态修改") public AjaxResult onlineChangeStatus(@RequestBody JimuReport jimuReport) { //判断行为是启用 if ("0".equals(jimuReport.getIsStart())&&"printinfo".equals(jimuReport.getType())){ JimuReport byId = jimuReportService.getById(jimuReport.getId()); LambdaQueryWrapper we = new LambdaQueryWrapper<>(); we.eq(JimuReport::getPrintType, byId.getPrintType()); we.eq(JimuReport::getIsStart, "0"); List list = jimuReportService.list(we); if (list.size()!=0){ return AjaxResult.error("同类型模板只能启用一个,请查看其他模板启用状态!"); } } jimuReport.setUpdateBy(getUsername()); jimuReport.setUpdateTime(new DateTime()); if (!jimuReportService.updateById(jimuReport)) { return AjaxResult.error("修改失败"); } return AjaxResult.success("修改成功"); } /** * 导出在线excel设计器列表 */ // @PreAuthorize("@ss.hasPermi('system:onlinereport:export')") @Log(title = "在线excel设计器", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, JimuReport jimuReport) { List list = jimuReportService.selectJimuReportList(jimuReport); ExcelUtil util = new ExcelUtil(JimuReport.class); util.exportExcel(response, list, "在线excel设计器数据"); } /** * 获取在线excel设计器详细信息 */ // @PreAuthorize("@ss.hasPermi('system:onlinereport:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(jimuReportService.selectJimuReportById(id)); } /** * 新增在线excel设计器 */ // @PreAuthorize("@ss.hasPermi('system:onlinereport:add')") @Log(title = "在线excel设计器", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody JimuReport jimuReport) { return toAjax(jimuReportService.insertJimuReport(jimuReport)); } /** * 修改在线excel设计器 */ @ApiOperation(value = "修改") // @PreAuthorize("@ss.hasPermi('system:onlinereport:edit')") @Log(title = "在线excel设计器", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody JimuReport jimuReport) { return toAjax(jimuReportService.updateJimuReport(jimuReport)); } /** * 删除在线excel设计器 */ // @PreAuthorize("@ss.hasPermi('system:onlinereport:remove')") @Log(title = "在线excel设计器", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(jimuReportService.deleteJimuReportByIds(ids)); } }