package com.wms_admin.server.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wms_admin.server.entity.OrderInformation; import com.wms_admin.server.entity.OutProduct; import com.wms_admin.server.entity.Product; import com.wms_admin.server.service.OrderInformationService; import com.wms_admin.server.service.OutProductService; import com.wms_admin.server.service.ProductService; import com.wms_admin.utils.Result; import com.wms_admin.utils.StyleUtils; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2023-05-24 */ @Api(tags = "出库操作") @RestController @RequestMapping("/out") public class OutProductController { @Autowired private OutProductService service; @Autowired private OrderInformationService infoService; @Autowired private ProductService productService; @ApiOperation(value = "添加出库订单信息与出库记录") @PostMapping("/add") public Result> ListAddOutProduct(@RequestBody OrderInformation orderInformation) { // 添加表单信息:成功大于0,失败0 Integer orderInformationId = infoService.AddOrderInformation(orderInformation); if (orderInformationId == 1){ return Result.success("出库成功!"); } return Result.fail("出库失败!"); } @ApiOperation(value = "根据条形码查询Mysql中的入库数据表") @ApiImplicitParams(value = { @ApiImplicitParam(name = "code", value = "数据库主键Code", dataTypeClass = String.class, required = true) }) @GetMapping("/code") public Result SelectIdProduct(String code) { Product product = productService.SelectIdProduct(code); return Result.success(product); } @ApiOperation(value = "出库记录") @ApiImplicitParams(value = { @ApiImplicitParam(name = "startTime", value = "开始时间", dataTypeClass = String.class, required = false), @ApiImplicitParam(name = "endTime", value = "结束时间", dataTypeClass = String.class, required = false), @ApiImplicitParam(name = "productModel", value = "型号", dataTypeClass = String.class, required = false), @ApiImplicitParam(name = "pageNo", value = "起始页", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "pageSize", value = "页总数", dataTypeClass = Integer.class, required = true) }) @GetMapping("/list") public Result> ListOutProduct(String startTime, String endTime, String productModel, Integer pageNo, Integer pageSize) { IPage data = service.SelectOutProductPage(startTime, endTime, productModel, new Page(pageNo, pageSize)); Map map = new HashMap<>(); map.put("row", data.getRecords()); map.put("total", data.getTotal()); return Result.success(map); } @ApiOperation(value = "出库Excel导出") @GetMapping("/excel") @ApiImplicitParams(value = { @ApiImplicitParam(name = "startTime",value = "开始时间", dataTypeClass = String.class,required = false), @ApiImplicitParam(name = "endTime",value = "结束时间", dataTypeClass = String.class,required = false), @ApiImplicitParam(name = "productModel",value = "设备型号", dataTypeClass = String.class,required = false), }) public void ExcelDerive(String startTime, String endTime, String productModel, HttpServletResponse response ) throws IOException { List map = productService.ExcelDerive(startTime, endTime, productModel); // 设置单元格样式 HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(StyleUtils.getHeadStyle(), StyleUtils.getContentStyle()); // 保存到第一个sheet中 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("requestType","excel"); response.setHeader("Access-Control-Expose-Headers", "requestType"); EasyExcel .write(response.getOutputStream(), Product.class) .sheet() .needHead(true) .registerWriteHandler(horizontalCellStyleStrategy) .doWrite(map); } }