package com.imed.costaccount.web; import com.imed.costaccount.common.util.PageUtils; import com.imed.costaccount.common.util.Result; import com.imed.costaccount.model.dto.ReportFormEditDTO; import com.imed.costaccount.model.dto.ReportFormSaveDTO; import com.imed.costaccount.model.dto.ReportRelationDTO; import com.imed.costaccount.model.vo.RelationVO; import com.imed.costaccount.model.vo.ReportFormVO; import com.imed.costaccount.service.ReportFormService; import com.imed.costaccount.service.ReportRelationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 报表项目 * * @author huangrui * @date 2021-08-03 13:53:52 */ @Api(tags = "报表项目") @RestController @RequestMapping("/costAccount/reportForm/") public class ReportFormController extends AbstractController { private final ReportFormService reportFormService; private final ReportRelationService reportRelationService; public ReportFormController(ReportFormService reportFormService, ReportRelationService reportRelationService) { this.reportFormService = reportFormService; this.reportRelationService = reportRelationService; } /** * 按报表类型查询报表项目 */ @ApiOperation("按报表类型查询报表项目列表") @GetMapping("/list") public Result list(@RequestParam Integer reportType) { List list = reportFormService.selectList(reportType, getUser()); PageUtils pageUtils = new PageUtils(list, 0, 0, 0); return Result.ok(pageUtils); } /** * 保存 */ @ApiOperation("保存报表项目") @PostMapping("/save") public Result save(@RequestBody @Valid ReportFormSaveDTO reportFormDTO) { reportFormService.saveReport(reportFormDTO, getHospId()); return Result.ok(); } /** * 修改 */ @ApiOperation("修改报表项目设置") @PostMapping("/edit") public Result update(@RequestBody @Valid ReportFormEditDTO formEditDTO) { reportFormService.updateReport(formEditDTO); return Result.ok(); } /** * 删除 */ @ApiOperation("删除某个报表项目") @PostMapping("/delete") public Result delete(@RequestBody Long[] ids) { reportFormService.removeByIds(Arrays.asList(ids)); return Result.ok(); } @ApiOperation("编辑对应的报表项目和对应的会计或者分摊参数") @PostMapping("/saveReportRelation") public Result saveReportRelation(@RequestBody @Valid ReportRelationDTO reportRelationDTO) { reportRelationService.saveReportRelation(reportRelationDTO,getHospId()); return Result.ok(); } @ApiOperation("获取已绑定的关系列表") @GetMapping("/getRelations") @ApiImplicitParams({ @ApiImplicitParam(name = "reportId", value = "报表项目id"), @ApiImplicitParam(name = "relation", value = "1.对应会计科目设置,2.对应分摊参数设置,根据列表中showAddRelation字段是否存在判断") }) public Result getRelations(@RequestParam Long reportId, @RequestParam Integer relation) { List list = new ArrayList<>(); Long hospId = getHospId(); if (relation == 1) { list = reportRelationService.getAccountRelation(reportId, hospId); } if (relation == 2) { list = reportRelationService.getShareLevel(reportId, hospId); } return Result.ok(list); } /** * * @since 2021-8-6 10:50:59 * @param reportId * @param relation * @return 只返回已经选择过的数据列表 */ @ApiOperation("根据关系类型,获取可绑定的关系数据(包含回显)") @GetMapping("/getRelationList") @ApiImplicitParams({ @ApiImplicitParam(name = "reportId", value = "报表项目id"), @ApiImplicitParam(name = "relation", value = "1.对应会计科目设置,2.对应分摊参数设置,根据列表中showAddRelation字段是否存在判断") }) public Result getRelationList(@RequestParam Long reportId, @RequestParam Integer relation) { List list = reportRelationService.getRelationList(reportId, relation, getHospId()); return Result.ok(list); } }