|
37 | 37 | import com.wansenai.utils.constants.CommonConstants;
|
38 | 38 | import com.wansenai.utils.enums.AssembleReceiptCodeEnum;
|
39 | 39 | import com.wansenai.utils.enums.BaseCodeEnum;
|
| 40 | +import com.wansenai.utils.excel.ExcelUtils; |
40 | 41 | import com.wansenai.utils.response.Response;
|
41 | 42 | import com.wansenai.vo.warehouse.AssembleReceiptDetailVO;
|
42 | 43 | import com.wansenai.vo.warehouse.AssembleReceiptVO;
|
| 44 | +import jakarta.servlet.http.HttpServletResponse; |
43 | 45 | import org.springframework.stereotype.Service;
|
44 | 46 | import org.springframework.transaction.annotation.Transactional;
|
45 | 47 | import org.springframework.util.StringUtils;
|
@@ -178,7 +180,46 @@ public Response<Page<AssembleReceiptVO>> getAssembleReceiptPageList(QueryAssembl
|
178 | 180 | return Response.responseData(result);
|
179 | 181 | }
|
180 | 182 |
|
181 |
| - @Override |
| 183 | + private List<AssembleReceiptVO> getAssembleReceiptList(QueryAssembleReceiptDTO queryAssembleReceiptDTO) { |
| 184 | + var wrapperMainMapper = lambdaQuery() |
| 185 | + .eq(queryAssembleReceiptDTO.getOperatorId() != null, WarehouseReceiptMain::getCreateBy, queryAssembleReceiptDTO.getOperatorId()) |
| 186 | + .eq(queryAssembleReceiptDTO.getStatus() != null, WarehouseReceiptMain::getStatus, queryAssembleReceiptDTO.getStatus()) |
| 187 | + .eq(StringUtils.hasLength(queryAssembleReceiptDTO.getReceiptNumber()), WarehouseReceiptMain::getReceiptNumber, queryAssembleReceiptDTO.getReceiptNumber()) |
| 188 | + .like(StringUtils.hasLength(queryAssembleReceiptDTO.getRemark()), WarehouseReceiptMain::getRemark, queryAssembleReceiptDTO.getRemark()) |
| 189 | + .ge(StringUtils.hasLength(queryAssembleReceiptDTO.getStartDate()), WarehouseReceiptMain::getCreateTime, queryAssembleReceiptDTO.getStartDate()) |
| 190 | + .le(StringUtils.hasLength(queryAssembleReceiptDTO.getEndDate()), WarehouseReceiptMain::getCreateTime, queryAssembleReceiptDTO.getEndDate()) |
| 191 | + .eq(WarehouseReceiptMain::getType, "组装单") |
| 192 | + .eq(WarehouseReceiptMain::getDeleteFlag, CommonConstants.NOT_DELETED) |
| 193 | + .list(); |
| 194 | + |
| 195 | + var assembleReceiptVOList = new ArrayList<AssembleReceiptVO>(wrapperMainMapper.size() + 1); |
| 196 | + wrapperMainMapper.forEach(item -> { |
| 197 | + |
| 198 | + var product = productService.getById(item.getProductId()); |
| 199 | + var productInfo = ""; |
| 200 | + if(product != null) { |
| 201 | + productInfo = product.getProductName() + "|" + product.getProductStandard() + "|" + product.getProductModel() + "|" + product.getProductUnit(); |
| 202 | + } |
| 203 | + |
| 204 | + var operator = userService.getById(item.getCreateBy()); |
| 205 | + var assembleReceiptVO = AssembleReceiptVO.builder() |
| 206 | + .id(item.getId()) |
| 207 | + .receiptNumber(item.getReceiptNumber()) |
| 208 | + .productInfo(productInfo) |
| 209 | + .receiptDate(item.getReceiptDate()) |
| 210 | + .operator(Optional.ofNullable(operator).map(SysUser::getName).orElse("")) |
| 211 | + .productNumber(item.getTotalProductNumber()) |
| 212 | + .totalAmount(item.getTotalAmount()) |
| 213 | + .status(item.getStatus()) |
| 214 | + .build(); |
| 215 | + |
| 216 | + assembleReceiptVOList.add(assembleReceiptVO); |
| 217 | + }); |
| 218 | + return assembleReceiptVOList; |
| 219 | + } |
| 220 | + |
| 221 | + |
| 222 | + @Override |
182 | 223 | public Response<AssembleReceiptDetailVO> getAssembleReceiptDetail(Long id) {
|
183 | 224 | if (id == null) {
|
184 | 225 | return Response.responseMsg(BaseCodeEnum.PARAMETER_NULL);
|
@@ -428,4 +469,13 @@ public Response<String> updateAssembleReceiptStatus(List<Long> ids, Integer stat
|
428 | 469 | }
|
429 | 470 | return Response.responseMsg(AssembleReceiptCodeEnum.UPDATE_ASSEMBLE_RECEIPT_SUCCESS);
|
430 | 471 | }
|
| 472 | + |
| 473 | + @Override |
| 474 | + public void exportAssembleReceipt(QueryAssembleReceiptDTO queryAssembleReceiptDTO, HttpServletResponse response) throws Exception { |
| 475 | + var data = getAssembleReceiptList(queryAssembleReceiptDTO); |
| 476 | + if (!data.isEmpty()) { |
| 477 | + var file = ExcelUtils.exportFile(ExcelUtils.DEFAULT_FILE_PATH, "组装单", data); |
| 478 | + ExcelUtils.downloadExcel(file, "组装单", response); |
| 479 | + } |
| 480 | + } |
431 | 481 | }
|
0 commit comments