Showing
3 changed files
with
36 additions
and
18 deletions
| ... | @@ -2,10 +2,12 @@ package com.infoloop.tianting.model.dto; | ... | @@ -2,10 +2,12 @@ package com.infoloop.tianting.model.dto; |
| 2 | 2 | ||
| 3 | import com.infoloop.tianting.enums.SettlementDimensionEnum; | 3 | import com.infoloop.tianting.enums.SettlementDimensionEnum; |
| 4 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 5 | -import java.time.LocalDateTime; | ||
| 6 | import lombok.Builder; | 5 | import lombok.Builder; |
| 7 | import lombok.Data; | 6 | import lombok.Data; |
| 8 | 7 | ||
| 8 | +import java.time.LocalDateTime; | ||
| 9 | +import java.util.List; | ||
| 10 | + | ||
| 9 | @Data | 11 | @Data |
| 10 | @ApiModel(description = "统计DTO") | 12 | @ApiModel(description = "统计DTO") |
| 11 | public class SettlementDTO { | 13 | public class SettlementDTO { |
| ... | @@ -15,6 +17,10 @@ public class SettlementDTO { | ... | @@ -15,6 +17,10 @@ public class SettlementDTO { |
| 15 | @ApiModel(description = "SettlementRequestDto") | 17 | @ApiModel(description = "SettlementRequestDto") |
| 16 | public static class SettlementRequestDto { | 18 | public static class SettlementRequestDto { |
| 17 | 19 | ||
| 20 | + private int enterpriseId; | ||
| 21 | + | ||
| 22 | + private List<Integer> stallIds; | ||
| 23 | + | ||
| 18 | private SettlementDimensionEnum dimension; | 24 | private SettlementDimensionEnum dimension; |
| 19 | 25 | ||
| 20 | private LocalDateTime timeStart; | 26 | private LocalDateTime timeStart; | ... | ... |
| ... | @@ -6,26 +6,14 @@ import com.infoloop.tianting.context.LoginContextHolder; | ... | @@ -6,26 +6,14 @@ import com.infoloop.tianting.context.LoginContextHolder; |
| 6 | import com.infoloop.tianting.exception.ClientEndExceptions.BusinessException; | 6 | import com.infoloop.tianting.exception.ClientEndExceptions.BusinessException; |
| 7 | import com.infoloop.tianting.exception.ErrorCodeEnum; | 7 | import com.infoloop.tianting.exception.ErrorCodeEnum; |
| 8 | import com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse; | 8 | import com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse; |
| 9 | -import com.infoloop.tianting.menuservice.SingleMenuRpcResponse; | ||
| 10 | -import com.infoloop.tianting.model.common.ResponseResult; | ||
| 11 | import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto; | 9 | import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto; |
| 12 | import com.infoloop.tianting.model.dto.SettlementDTO.SettlementMenuSkuDto; | 10 | import com.infoloop.tianting.model.dto.SettlementDTO.SettlementMenuSkuDto; |
| 13 | import com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto; | 11 | import com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto; |
| 14 | -import com.infoloop.tianting.service.OrderService; | ||
| 15 | import com.infoloop.tianting.service.SettlementService; | 12 | import com.infoloop.tianting.service.SettlementService; |
| 16 | import com.infoloop.tianting.service.client.MenuServiceRpcClient; | 13 | import com.infoloop.tianting.service.client.MenuServiceRpcClient; |
| 17 | import com.infoloop.tianting.service.client.OrderServiceRpcClient; | 14 | import com.infoloop.tianting.service.client.OrderServiceRpcClient; |
| 18 | import com.infoloop.tianting.service.client.SkuServiceRpcClient; | 15 | import com.infoloop.tianting.service.client.SkuServiceRpcClient; |
| 19 | import com.infoloop.tianting.utils.DateUtil; | 16 | import com.infoloop.tianting.utils.DateUtil; |
| 20 | -import java.io.ByteArrayOutputStream; | ||
| 21 | -import java.io.FileOutputStream; | ||
| 22 | -import java.io.IOException; | ||
| 23 | -import java.time.format.DateTimeFormatter; | ||
| 24 | -import java.util.ArrayList; | ||
| 25 | -import java.util.HashMap; | ||
| 26 | -import java.util.List; | ||
| 27 | -import java.util.Map; | ||
| 28 | -import java.util.stream.Collectors; | ||
| 29 | import lombok.RequiredArgsConstructor; | 17 | import lombok.RequiredArgsConstructor; |
| 30 | import lombok.extern.slf4j.Slf4j; | 18 | import lombok.extern.slf4j.Slf4j; |
| 31 | import org.apache.poi.ss.usermodel.Cell; | 19 | import org.apache.poi.ss.usermodel.Cell; |
| ... | @@ -37,6 +25,14 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; | ... | @@ -37,6 +25,14 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| 37 | import org.springframework.beans.factory.annotation.Autowired; | 25 | import org.springframework.beans.factory.annotation.Autowired; |
| 38 | import org.springframework.stereotype.Service; | 26 | import org.springframework.stereotype.Service; |
| 39 | 27 | ||
| 28 | +import java.io.ByteArrayOutputStream; | ||
| 29 | +import java.io.IOException; | ||
| 30 | +import java.util.ArrayList; | ||
| 31 | +import java.util.HashMap; | ||
| 32 | +import java.util.List; | ||
| 33 | +import java.util.Map; | ||
| 34 | +import java.util.stream.Collectors; | ||
| 35 | + | ||
| 40 | @Slf4j | 36 | @Slf4j |
| 41 | @Service | 37 | @Service |
| 42 | @RequiredArgsConstructor(onConstructor = @__(@Autowired)) | 38 | @RequiredArgsConstructor(onConstructor = @__(@Autowired)) |
| ... | @@ -50,11 +46,13 @@ public class SettlementServiceImpl implements SettlementService { | ... | @@ -50,11 +46,13 @@ public class SettlementServiceImpl implements SettlementService { |
| 50 | 46 | ||
| 51 | final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); | 47 | final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); |
| 52 | final var queryOrderDto = QueryOrderByConditionDto.builder() | 48 | final var queryOrderDto = QueryOrderByConditionDto.builder() |
| 53 | - .enterpriseId(operatorLoginInfo.getEnterpriseId()) | 49 | + .enterpriseId(LoginContextHolder.hasLogin() ? operatorLoginInfo.getEnterpriseId() : settlementRequest.getEnterpriseId()) |
| 54 | .shouldFilterCreatedAtTimeStart(true) | 50 | .shouldFilterCreatedAtTimeStart(true) |
| 55 | .createdAtTimeStart(settlementRequest.getTimeStart()) | 51 | .createdAtTimeStart(settlementRequest.getTimeStart()) |
| 56 | .shouldFilterCreatedAtTimeEnd(true) | 52 | .shouldFilterCreatedAtTimeEnd(true) |
| 57 | .createdAtTimeEnd(settlementRequest.getTimeEnd()) | 53 | .createdAtTimeEnd(settlementRequest.getTimeEnd()) |
| 54 | + .shouldFilterStallIds(!settlementRequest.getStallIds().isEmpty()) | ||
| 55 | + .stallIds(settlementRequest.getStallIds()) | ||
| 58 | .build(); | 56 | .build(); |
| 59 | final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto); | 57 | final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto); |
| 60 | List<Integer> orderIds = orderList.stream().map( | 58 | List<Integer> orderIds = orderList.stream().map( | ... | ... |
| 1 | package com.infoloop.tianting.streamController; | 1 | package com.infoloop.tianting.streamController; |
| 2 | 2 | ||
| 3 | import com.github.xiaoymin.knife4j.annotations.ApiSupport; | 3 | import com.github.xiaoymin.knife4j.annotations.ApiSupport; |
| 4 | -import com.infoloop.tianting.model.common.ResponseResult; | ||
| 5 | import com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto; | 4 | import com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto; |
| 6 | import com.infoloop.tianting.service.SettlementService; | 5 | import com.infoloop.tianting.service.SettlementService; |
| 7 | import io.swagger.annotations.Api; | 6 | import io.swagger.annotations.Api; |
| 8 | import io.swagger.annotations.ApiOperation; | 7 | import io.swagger.annotations.ApiOperation; |
| 9 | -import java.io.ByteArrayOutputStream; | ||
| 10 | -import javax.validation.Valid; | ||
| 11 | import lombok.RequiredArgsConstructor; | 8 | import lombok.RequiredArgsConstructor; |
| 12 | import lombok.extern.slf4j.Slf4j; | 9 | import lombok.extern.slf4j.Slf4j; |
| 13 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | @@ -16,11 +13,14 @@ import org.springframework.http.HttpStatus; | ... | @@ -16,11 +13,14 @@ import org.springframework.http.HttpStatus; |
| 16 | import org.springframework.http.MediaType; | 13 | import org.springframework.http.MediaType; |
| 17 | import org.springframework.http.ResponseEntity; | 14 | import org.springframework.http.ResponseEntity; |
| 18 | import org.springframework.validation.annotation.Validated; | 15 | import org.springframework.validation.annotation.Validated; |
| 19 | -import org.springframework.web.bind.annotation.GetMapping; | ||
| 20 | import org.springframework.web.bind.annotation.PostMapping; | 16 | import org.springframework.web.bind.annotation.PostMapping; |
| 21 | import org.springframework.web.bind.annotation.RequestBody; | 17 | import org.springframework.web.bind.annotation.RequestBody; |
| 22 | import org.springframework.web.bind.annotation.ResponseStatus; | 18 | import org.springframework.web.bind.annotation.ResponseStatus; |
| 23 | import org.springframework.web.bind.annotation.RestController; | 19 | import org.springframework.web.bind.annotation.RestController; |
| 20 | +import springfox.documentation.annotations.ApiIgnore; | ||
| 21 | + | ||
| 22 | +import javax.validation.Valid; | ||
| 23 | +import java.io.ByteArrayOutputStream; | ||
| 24 | 24 | ||
| 25 | @Api(tags = "结算") | 25 | @Api(tags = "结算") |
| 26 | @ApiSupport(order = 0) | 26 | @ApiSupport(order = 0) |
| ... | @@ -31,6 +31,20 @@ import org.springframework.web.bind.annotation.RestController; | ... | @@ -31,6 +31,20 @@ import org.springframework.web.bind.annotation.RestController; |
| 31 | public class SettlementController { | 31 | public class SettlementController { |
| 32 | private final SettlementService settlementService; | 32 | private final SettlementService settlementService; |
| 33 | 33 | ||
| 34 | + @ApiIgnore | ||
| 35 | + @ApiOperation(value = "结算账单生成excel") | ||
| 36 | + @PostMapping("/enterprise/settlement/generate-excel") | ||
| 37 | + @ResponseStatus(HttpStatus.OK) | ||
| 38 | + public ResponseEntity<byte[]> enterpriseSettlementGenerateExcel(@Valid @RequestBody SettlementRequestDto settlementRequestDto) { | ||
| 39 | + ByteArrayOutputStream outputStream = settlementService.generateOrderSettlementExcel(settlementRequestDto); | ||
| 40 | + HttpHeaders headers = new HttpHeaders(); | ||
| 41 | + headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); | ||
| 42 | + headers.setContentDispositionFormData("attachment", "订单数据.xlsx"); | ||
| 43 | + return ResponseEntity.ok() | ||
| 44 | + .headers(headers) | ||
| 45 | + .body(outputStream.toByteArray()); | ||
| 46 | + } | ||
| 47 | + | ||
| 34 | @ApiOperation(value = "结算账单生成excel") | 48 | @ApiOperation(value = "结算账单生成excel") |
| 35 | @PostMapping("/settlement/generate-excel") | 49 | @PostMapping("/settlement/generate-excel") |
| 36 | @ResponseStatus(HttpStatus.OK) | 50 | @ResponseStatus(HttpStatus.OK) | ... | ... |
-
Please register or login to post a comment