package com.mzl.flower.web.supplier; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.payment.DeliveryOrderArriveDTO; import com.mzl.flower.dto.request.payment.DeliveryOrderQueryDTO; import com.mzl.flower.dto.response.payment.*; import com.mzl.flower.dto.response.supplier.SupplierOrderDTO; import com.mzl.flower.service.payment.DeliveryOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @RestController @RequestMapping("/api/supplier/delivery") @Api(value = "配送管理-花农(供应商)", tags = "配送管理-花农(供应商)") @Validated @Slf4j public class DeliverySupplierController extends BaseController { @Autowired private DeliveryOrderService deliveryOrderService; @GetMapping("/list") @ApiOperation(value = "获取配送单列表") public ResponseEntity>> selectOrderList(Page page , DeliveryOrderQueryDTO dto){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectDeliveryOrderList(page, dto)); } @GetMapping("/list/month") @ApiOperation(value = "获取当月配送单列表") public ResponseEntity>> selectOrderListMonth(Page page , DeliveryOrderQueryDTO dto){ LocalDateTime ffPm = LocalDate.now().withDayOfMonth(1).atTime(17, 0, 0).plusDays(-1); dto.setStartDate(ffPm); return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectDeliveryOrderList(page, dto)); } @GetMapping("/list/today") @ApiOperation(value = "获取今日配送单列表") public ResponseEntity>> selectOrderTodayList(Page page , DeliveryOrderQueryDTO dto){ LocalDateTime now = LocalDateTime.now(); LocalDateTime towAm = LocalDate.now().atTime(2, 0, 0); LocalDateTime fivePm = LocalDate.now().atTime(17, 0, 0); if(now.isAfter(towAm)){ dto.setStartDate(fivePm.plusDays(-1)); dto.setEndDate(fivePm); } else { dto.setStartDate(fivePm.plusDays(-2)); dto.setEndDate(fivePm.plusDays(-1)); } return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectDeliveryOrderList(page, dto)); } @GetMapping("/list/yesterday") @ApiOperation(value = "获取昨日配送单列表") public ResponseEntity>> selectOrderYesterdayList(Page page , DeliveryOrderQueryDTO dto){ LocalDateTime now = LocalDateTime.now(); LocalDateTime towAm = LocalDate.now().atTime(2, 0, 0); LocalDateTime fivePm = LocalDate.now().atTime(17, 0, 0); if(now.isAfter(towAm)){ dto.setStartDate(fivePm.plusDays(-2)); dto.setEndDate(fivePm.plusDays(-1)); } else { dto.setStartDate(fivePm.plusDays(-3)); dto.setEndDate(fivePm.plusDays(-2)); } return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectDeliveryOrderList(page, dto)); } @GetMapping("/list/items") @ApiOperation(value = "获取配送单明细") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "配送单id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity>> getDeliveryOrderItems(String id){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getDeliveryOrderItems(id)); } @GetMapping("/list/items/view") @ApiOperation(value = "获取商品详情") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "配送物品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getDeliveryOrderItem(String id){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getSupplierDeliveryOrderItem(id)); } @PostMapping("/list/arrive") @ApiOperation(value = "确认入位") public ResponseEntity arrived(@RequestBody DeliveryOrderArriveDTO dto) { deliveryOrderService.arrived(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/statistics") @ApiOperation(value = "统计数据") public ResponseEntity> getCurrentSupplierOrderStatistics(){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getCurrentSupplierOrderStatistics()); } @GetMapping("/mine/list") @ApiOperation(value = "我的配送单总计") public ResponseEntity>> selectSupplierDoStatistics(Page page){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectSupplierDoStatistics(page)); } @GetMapping("/mine/list/flower") @ApiOperation(value = "我的配送单配送商品统计列表") public ResponseEntity>> selectDoItemListByTime(Page page , String day){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectDoItemListByTime(page, day)); } @GetMapping("/mine/list/settlement") @ApiOperation(value = "我的配送单结算明细") public ResponseEntity>> selectSettlementListByTime(Page page , String day){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.selectSettlementListByTime(page, day)); } @GetMapping("/mine/list/check/info/reduce") @ApiOperation(value = "降级操作详情") @ApiImplicitParams({ @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getReduceCheck(String orderItemId){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getReduceCheck(orderItemId)); } @GetMapping("/mine/list/check/info/replace") @ApiOperation(value = "补货操作详情") @ApiImplicitParams({ @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getReplaceCheck(String orderItemId){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getOtherCheck(orderItemId , Constants.CHECK_TYPE.replace.name())); } @GetMapping("/mine/list/check/info/lack") @ApiOperation(value = "缺货操作详情") @ApiImplicitParams({ @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getLackCheck(String orderItemId){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getOtherCheck(orderItemId , Constants.CHECK_TYPE.lack.name())); } }