package com.yuanchu.mom.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.pojo.Sale; import com.yuanchu.mom.pojo.dto.ConsignmentDto; import com.yuanchu.mom.service.SaleService; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.utils.Jwt; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.yuanchu.mom.service.ConsignmentService; import javax.annotation.Resource; import java.sql.Wrapper; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 成品发货表(Consignment)表控制层 * * @author zss * @since 2023-08-10 15:08:02 */ @Api(tags = "WMS管理-->成品发货") @RestController @RequestMapping("/consignment") public class ConsignmentController { @Autowired private ConsignmentService consignmentService; @Resource SaleService saleService; @Resource Jwt jwt; @ApiOperation(value = "新增成品发货-->根据订单号查询销售信息") @ApiImplicitParams(value = { @ApiImplicitParam(name = "orderNumber", value = "订单编号", dataTypeClass = String.class, required = true) }) @GetMapping("/selSale") public Result selSale(String orderNumber) { //只有销售单审核通过之后才能发货 Sale sale = saleService.getOne(Wrappers.query().eq("order_number", orderNumber)); if (ObjectUtils.isEmpty(sale.getType()) || sale.getType() != 1 ) { return Result.fail("只有销售单审核通过之后才能发货!"); } return Result.success(saleService.selSale(orderNumber)); } @ApiOperation(value = "新增成品发货") @PostMapping("/addCon") public Result addCon(@RequestHeader("token") String token, @Validated @RequestBody ConsignmentDto consignmentDto) throws Exception { Map data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class); return Result.success(consignmentService.addCon(data.get("name").replaceAll("\"", ""), consignmentDto)); } @ApiOperation(value = "查询发货记录列表") @ApiImplicitParams(value = { @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "name", value = "产品名称", dataTypeClass = String.class), @ApiImplicitParam(name = "specifications", value = "产品型号", dataTypeClass = String.class), @ApiImplicitParam(name = "time", value = "发货日期", dataTypeClass = String.class) }) @GetMapping("/selectAllCon") public Result selectAllCon(int pageSize, int countSize, String name, String specifications, String time) { IPage> consignmentPage = consignmentService.selectAllCon(new Page(pageSize, countSize), name, specifications, time); Map map = new HashMap<>(); map.put("total", consignmentPage.getTotal()); map.put("row", consignmentPage.getRecords()); return Result.success(map); } @ApiOperation(value = "根据发货id删除") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "发货id", dataTypeClass = Integer.class, required = true) }) @PostMapping("/delCon") public Result delCon(Integer id) { consignmentService.delCon(id); return Result.success(); } @ApiOperation(value = "批量删除") @ApiImplicitParams(value = { @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true) }) @PostMapping("/delAllCon") public Result delAllCon(@RequestParam("ids") List ids) { consignmentService.delAllCon(ids); return Result.success(); } }