package com.casic.missiles.controller; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterCertificateImport; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; import com.casic.missiles.listeners.CommonExcelListener; import com.casic.missiles.model.MeterPrice; import com.casic.missiles.service.MeterPriceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @Api(tags = "价格库相关接口") @RestController @RequestMapping("/price") @Slf4j public class MeterPriceController { @Resource private MeterPriceService meterPriceService; /** * 价格库列表查询 * @param meterPriceRequest * @return */ @ApiOperation("价格库列表查询") @PostMapping("/queryPriceList") @ResponseBody public ReturnDTO<MeterPrice> queryPriceList(@RequestBody MeterPriceRequest meterPriceRequest) { Page<MeterPrice> page = PageFactory.defaultPage(); Page<MeterPrice> list = meterPriceService.queryPriceList(page,meterPriceRequest); return ReturnUtil.success(list); } /** * 价格库列表删除 * @return */ @ApiOperation("价格库列表删除") @PostMapping("/deletePrice") @ResponseBody public ReturnDTO deletePrice(@RequestBody IdDTO idDto) { return meterPriceService.deletePrice(idDto); } /** * 价格库新增 * @return */ @ApiOperation("价格库新增") @PostMapping("/addMeterPrice") @ResponseBody public ReturnDTO addMeterPrice(@RequestBody MeterPrice meterPrice) { return meterPriceService.addMeterPrice(meterPrice); } /** * 价格详细信息 * @return */ @ApiOperation("价格详细信息") @PostMapping("/queryPriceInfo") @ResponseBody public ReturnDTO<MeterPrice> selectStaffInfo(@RequestBody IdDTO idDto) { MeterPrice meterPrice = meterPriceService.selectStaffInfo(idDto); return ReturnUtil.success(meterPrice); } /** * 价格信息编辑 * @return */ @ApiOperation("价格信息编辑") @PostMapping("/updatePriceInfo") @ResponseBody public ReturnDTO updatePriceInfo(@RequestBody MeterPrice meterPrice) { return meterPriceService.updatePriceInfo(meterPrice); } /** * 价格信息列表导出 */ @ApiOperation("价格信息列表导出") @PostMapping("/exportPriceList") @ResponseBody public void exportPriceList(@RequestBody MeterPriceRequest meterPriceRequest, HttpServletResponse response) { try { meterPriceService.exportPriceList(meterPriceRequest,response); }catch (Exception e){ e.printStackTrace(); } } /** * * @param multipartFile * @return */ @ApiOperation("批量导入价格库") @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener<MeterPriceImport> listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); for (MultipartFile file : multipartFile) { EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) .headRowNumber(1).autoTrim(true).sheet(0).doRead(); } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List<MeterPriceImport> list = listener.getList(); return meterPriceService.dataCheck(list); } catch (IOException e) { e.printStackTrace(); return ReturnUtil.failed("数据取失败"); } } }