package com.xjrsoft.module.textbook.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xjrsoft.common.model.result.RT; import com.xjrsoft.common.page.ConventPage; import com.xjrsoft.common.page.PageOutput; import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto; import com.xjrsoft.module.textbook.dto.TextbookPageDto; import com.xjrsoft.module.textbook.entity.Textbook; import com.xjrsoft.module.textbook.vo.TextbookPageVo; import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo; import com.xjrsoft.module.textbook.vo.TextbookVo; import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo; import com.xjrsoft.module.textbook.dto.AddTextbookDto; import com.xjrsoft.module.textbook.dto.UpdateTextbookDto; import com.xjrsoft.module.textbook.service.ITextbookService; import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo; import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.List; /** * @title: 教材管理 * @Author dzx * @Date: 2023-12-25 * @Version 1.0 */ @RestController @RequestMapping("/textbook" + "/textbook") @Api(value = "/textbook" + "/textbook",tags = "教材管理代码") @AllArgsConstructor public class TextbookController { private final ITextbookService textbookService; @GetMapping(value = "/page") @ApiOperation(value="教材管理列表(分页)") @SaCheckPermission("textbook:detail") public RT> page(@Valid TextbookPageDto dto){ Page page = textbookService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto); PageOutput pageOutput = ConventPage.getPageOutput(page, TextbookPageVo.class); return RT.ok(pageOutput); } @GetMapping(value = "/info-detail") @ApiOperation(value="根据id查询教材管理信息") @SaCheckPermission("textbook:detail") public RT info(@RequestParam Long id){ Textbook textbook = textbookService.getById(id); if (textbook == null) { return RT.ok(); } textbook.setTextbookClassRelationList(textbookService.getClassRelation(textbook.getId())); return RT.ok(BeanUtil.toBean(textbook, TextbookVo.class)); } @GetMapping(value = "/info-byissn") @ApiOperation(value="根据isnn查询教材管理信息") @SaCheckPermission("textbook:detail") public RT infoByissn(@RequestParam String issn){ TextbookVo textbook = textbookService.getInfoByissn(issn); if (textbook == null) { return RT.ok(); } return RT.ok(textbook); } @GetMapping(value = "/info-subscription-list") @ApiOperation(value="教材管理-详情-征订记录") @SaCheckPermission("textbook:detail") public RT> subscriptionList(@RequestParam Long id){ List result = textbookService.subscriptionList(id); if (result == null) { return RT.ok(new ArrayList<>()); } return RT.ok(result); } @GetMapping(value = "/info-warehouse-list") @ApiOperation(value="教材管理-详情-入库记录") @SaCheckPermission("textbook:detail") public RT> warehouseList(@RequestParam Long id){ List result = textbookService.warehouseList(id); if (result == null) { return RT.ok(new ArrayList<>()); } return RT.ok(result); } @GetMapping(value = "/info-issue-list") @ApiOperation(value="教材管理-详情-出库记录") @SaCheckPermission("textbook:detail") public RT> issueList(@RequestParam Long id){ List result = textbookService.issueList(id); if (result == null) { return RT.ok(new ArrayList<>()); } return RT.ok(result); } @GetMapping(value = "/info-claim-list") @ApiOperation(value="教材管理-详情-领取记录") @SaCheckPermission("textbook:detail") public RT> claimList(@RequestParam Long id){ List result = textbookService.claimList(id); if (result == null) { return RT.ok(new ArrayList<>()); } return RT.ok(result); } @PostMapping @ApiOperation(value = "新增教材管理") @SaCheckPermission("textbook:add") public RT add(@Valid @RequestBody AddTextbookDto dto){ Textbook textbook = BeanUtil.toBean(dto, Textbook.class); boolean isSuccess = textbookService.add(textbook); return RT.ok(isSuccess); } @PutMapping @ApiOperation(value = "修改教材管理") @SaCheckPermission("textbook:edit") public RT update(@Valid @RequestBody UpdateTextbookDto dto){ Textbook textbook = BeanUtil.toBean(dto, Textbook.class); return RT.ok(textbookService.update(textbook)); } @DeleteMapping @ApiOperation(value = "删除教材管理") @SaCheckPermission("textbook:delete") public RT delete(@Valid @RequestBody List ids){ return RT.ok(textbookService.delete(ids)); } @GetMapping("/export") @ApiOperation(value = "导出") public ResponseEntity exportData(@Valid TextbookPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) { List customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput) page(dto).getData()).getList(); ByteArrayOutputStream bot = new ByteArrayOutputStream(); EasyExcel.write(bot, TextbookPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList); return RT.fileStream(bot.toByteArray(), "Textbook" + ExcelTypeEnum.XLSX.getValue()); } @PostMapping("deliver-warehouse") @ApiOperation(value = "教材管理入库") @SaCheckPermission("textbook:add") public RT deliverWarehouse(@Valid @RequestBody AddTextbookWarehouseRecordDto dto){ Boolean isSuccess = textbookService.deliverWarehouse(dto); return RT.ok(isSuccess); } }