package com.casic.missiles.controller; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.*; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.SystemNotice; import com.casic.missiles.model.SystemSign; import com.casic.missiles.model.SystemTemplate; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.ISystemNoticeService; import com.casic.missiles.service.ISystemSignService; import com.casic.missiles.service.ISystemTemplateService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.validation.Valid; import java.io.IOException; import java.util.List; import java.util.Objects; /** * @Description: 系统管理-常用工具、通知公告 * @Author: wangpeng * @Date: 2022/11/21 20:31 */ @Api(tags = "系统管理接口") @Controller @RequestMapping("/system") public class SystemController extends ExportController { @Autowired private ISystemSignService signService; @Autowired private ISystemNoticeService noticeService; @Autowired private ISystemTemplateService templateService; @ApiOperation("签名/签章列表/详情(分页)") @PostMapping("/sign/listPage") @ResponseBody public ReturnDTO<PageInfoBT<SystemSign>> signListPage(@RequestBody SignListRequest request) { Page<SystemSign> page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(signService.listPage(page, request))); } @ApiOperation("签名/签章列表") @PostMapping("/sign/list") @ResponseBody public ReturnDTO<List<SystemSign>> signList(@RequestBody SignListRequest request) { return ReturnUtil.success(signService.list(request)); } @ApiOperation("签名/签章导出") @PostMapping("/sign/listExport") @ResponseBody public void export(@RequestBody SignListRequest request) throws IOException { super.exportExcel(SystemSign.class, signService.list(request), ExportEnum.SIGN_EXPORT.getSheetName()); } @ApiOperation("签名/签章新建") @PostMapping("/sign/add") @ResponseBody public ReturnDTO signAdd(@RequestBody @Valid SignAddRequest request, BindingResult bindingResult) { if(bindingResult.hasErrors()){ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } return signService.addSign(request); } @ApiOperation("签名/签章更新") @PostMapping("/sign/update") @ResponseBody public ReturnDTO signUpdate(@RequestBody @Valid SystemSign systemSign, BindingResult bindingResult) { if(bindingResult.hasErrors()){ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } return signService.updateSign(systemSign); } @ApiOperation("签名/签章删除") @PostMapping("/sign/delete") @ResponseBody public ReturnDTO signDelete(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return signService.deleteSign(idDTO.getId()); } @ApiOperation("签名/签章批量删除") @PostMapping("/sign/batchDelete") @ResponseBody public ReturnDTO signBatchDelete(@RequestBody @Valid IdsDTO idsDTO) { Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return signService.deleteBatchSign(idsDTO.getIds()); } @ApiOperation("原始记录模板/证书报告模板列表/详情(分页)") @PostMapping("/template/listPage") @ResponseBody public ReturnDTO<PageInfoBT<SystemTemplate>> templateListPage(@RequestBody TemplateListRequest request) { Page<SystemTemplate> page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(templateService.listPage(page, request))); } @ApiOperation("原始记录模板/证书报告模板列表") @PostMapping("/template/list") @ResponseBody public ReturnDTO<List<SystemTemplate>> templateList(@RequestBody TemplateListRequest request) { return ReturnUtil.success(templateService.list(request)); } @ApiOperation("原始记录模板/证书报告模板导出") @PostMapping("/template/listExport") @ResponseBody public void export(@RequestBody TemplateListRequest request) throws IOException { super.exportExcel(SystemTemplate.class, templateService.list(request), ExportEnum.TEMPLATE_EXPORT.getSheetName()); } @ApiOperation("原始记录模板/证书报告模板列表新建") @PostMapping("/template/add") @ResponseBody public ReturnDTO templateAdd(@RequestBody @Valid TemplateAddRequest request, BindingResult bindingResult) { if(bindingResult.hasErrors()){ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } return templateService.addTemplate(request); } @ApiOperation("原始记录模板/证书报告模板列表更新") @PostMapping("/template/update") @ResponseBody public ReturnDTO templateUpdate(@RequestBody @Valid SystemTemplate systemTemplate, BindingResult bindingResult) { if(bindingResult.hasErrors()){ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } return templateService.updateTemplate(systemTemplate); } @ApiOperation("原始记录模板/证书报告模板列表删除") @PostMapping("/template/delete") @ResponseBody public ReturnDTO templateDelete(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return templateService.deleteTemplate(idDTO.getId()); } @ApiOperation("原始记录模板/证书报告模板列表批量删除") @PostMapping("/template/batchDelete") @ResponseBody public ReturnDTO templateBatchDelete(@RequestBody @Valid IdsDTO idsDTO) { Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return templateService.deleteBatchTemplate(idsDTO.getIds()); } @ApiOperation("通知公告列表/详情") @PostMapping("/notice/listPage") @ResponseBody public ReturnDTO<PageInfoBT<SystemNotice>> supplierListPage(@RequestBody NoticeListRequest request) { Page<SystemNotice> page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(noticeService.listPage(page, request))); } @ApiOperation("通知公告新建") @PostMapping("/notice/add") @ResponseBody public ReturnDTO supplierAdd(@RequestBody @Valid SystemNotice systemNotice, BindingResult bindingResult) { if(bindingResult.hasErrors()){ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } return noticeService.addNotice(systemNotice); } }