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.meter.TraceSupplierDetailResponse; import com.casic.missiles.dto.meter.TraceSupplierListRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.IMeterTraceSupplierService; 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("/meter/supplier") public class MeterTraceSupplierController extends ExportController { @Autowired private IMeterTraceSupplierService traceSupplierService; @ApiOperation("溯源供方列表(分页)") @PostMapping("/listPage") @ResponseBody public ReturnDTO<PageInfoBT<MeterTraceSupplier>> supplierListPage(@RequestBody TraceSupplierListRequest request) { Page<MeterTraceSupplier> page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(traceSupplierService.listPage(page, request))); } @ApiOperation("溯源供方列表") @PostMapping("/list") @ResponseBody public ReturnDTO<List<MeterTraceSupplier>> supplierList(@RequestBody TraceSupplierListRequest request) { return ReturnUtil.success(traceSupplierService.list(request)); } @ApiOperation("溯源供方导出") @PostMapping("/listExport") @ResponseBody public void export(@RequestBody TraceSupplierListRequest request) throws IOException { super.exportExcel(MeterTraceSupplier.class, traceSupplierService.list(request), ExportEnum.TRACE_SUPPLIER_EXPORT.getSheetName()); } @ApiOperation("溯源供方新建") @PostMapping("/add") @ResponseBody public ReturnDTO supplierAdd(@RequestBody @Valid MeterTraceSupplier traceSupplier, BindingResult bindingResult) { if(bindingResult.hasErrors()){ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } return traceSupplierService.addTraceSupplier(traceSupplier); } @ApiOperation("溯源供方更新") @PostMapping("/update") @ResponseBody public ReturnDTO supplierUpdate(@RequestBody @Valid MeterTraceSupplier traceSupplier, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(traceSupplier.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); return traceSupplierService.updateTraceSupplier(traceSupplier); } @ApiOperation("溯源供方删除") @PostMapping("/delete") @ResponseBody public ReturnDTO supplierDelete(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return traceSupplierService.deleteTraceSupplier(idDTO.getId()); } @ApiOperation("溯源供方批量删除") @PostMapping("/batchDelete") @ResponseBody public ReturnDTO supplierBatchDelete(@RequestBody @Valid IdsDTO idsDTO) { Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return traceSupplierService.deleteBatchTraceSupplier(idsDTO.getIds()); } @ApiOperation("溯源供方详情") @PostMapping("/detail") @ResponseBody public ReturnDTO<TraceSupplierDetailResponse> supplierDetail(@RequestBody @Valid IdDTO idDTO) { Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); return traceSupplierService.traceSupplierDetail(idDTO.getId()); } /** * 溯源供方审批 */ }