Skip to content

Commit 693d5a5

Browse files
committed
fetch: add disassemble receipt export api eairps#245
1 parent 6ebf8fb commit 693d5a5

File tree

6 files changed

+93
-21
lines changed

6 files changed

+93
-21
lines changed

core/api/src/main/java/com/wansenai/api/warehouse/DisAssembleController.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,8 @@
1919
import com.wansenai.utils.response.Response;
2020
import com.wansenai.vo.warehouse.DisassembleReceiptDetailVO;
2121
import com.wansenai.vo.warehouse.DisassembleReceiptVO;
22-
import org.springframework.web.bind.annotation.RestController;
23-
import org.springframework.web.bind.annotation.RequestMapping;
24-
import org.springframework.web.bind.annotation.RequestBody;
25-
import org.springframework.web.bind.annotation.GetMapping;
26-
import org.springframework.web.bind.annotation.PathVariable;
27-
import org.springframework.web.bind.annotation.PutMapping;
28-
import org.springframework.web.bind.annotation.RequestParam;
29-
import org.springframework.web.bind.annotation.PostMapping;
22+
import jakarta.servlet.http.HttpServletResponse;
23+
import org.springframework.web.bind.annotation.*;
3024

3125
import java.util.List;
3226

@@ -64,4 +58,9 @@ public Response<String> deleteDisAssembleReceiptByIds(@RequestParam("ids") List<
6458
public Response<String> updateDisAssembleReceiptStatusByIds(@RequestParam("ids") List<Long> ids, @RequestParam("status") Integer status) {
6559
return disassembleService.updateDisassembleReceiptStatus(ids, status);
6660
}
61+
62+
@GetMapping("export")
63+
public void exportDisAssembleReceipt(@ModelAttribute QueryDisassembleReceiptDTO queryDisassembleReceiptDTO, HttpServletResponse response) throws Exception {
64+
disassembleService.exportDisAssembleReceipt(queryDisassembleReceiptDTO, response);
65+
}
6766
}

core/domain/src/main/java/com/wansenai/vo/warehouse/DisassembleReceiptVO.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.fasterxml.jackson.annotation.JsonFormat;
1616
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
1717
import com.wansenai.bo.BigDecimalSerializerBO;
18+
import com.wansenai.utils.excel.ExcelExport;
1819
import lombok.Builder;
1920
import lombok.Data;
2021

@@ -28,19 +29,26 @@ public class DisassembleReceiptVO {
2829
@JsonFormat(shape = JsonFormat.Shape.STRING)
2930
private Long id;
3031

32+
@ExcelExport(value = "单据编号")
3133
private String receiptNumber;
3234

35+
@ExcelExport(value = "商品信息")
3336
private String productInfo;
3437

3538
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
39+
@ExcelExport(value = "单据日期")
3640
private LocalDateTime receiptDate;
3741

38-
private String operator;
39-
42+
@ExcelExport(value = "商品数量")
4043
private Integer productNumber;
4144

4245
@JsonSerialize(using = BigDecimalSerializerBO.class)
46+
@ExcelExport(value = "金额合计")
4347
private BigDecimal totalAmount;
4448

49+
@ExcelExport(value = "操作员")
50+
private String operator;
51+
52+
@ExcelExport(value = "状态", kv = "0-未审核;1-已审核")
4553
private Integer status;
4654
}

core/service/src/main/java/com/wansenai/service/warehouse/DisassembleReceiptService.java

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.wansenai.utils.response.Response;
2121
import com.wansenai.vo.warehouse.DisassembleReceiptDetailVO;
2222
import com.wansenai.vo.warehouse.DisassembleReceiptVO;
23+
import jakarta.servlet.http.HttpServletResponse;
2324

2425
import java.util.List;
2526

@@ -34,4 +35,6 @@ public interface DisassembleReceiptService extends IService<WarehouseReceiptMain
3435
Response<String> deleteBatchDisassembleReceipt(List<Long> ids);
3536

3637
Response<String> updateDisassembleReceiptStatus(List<Long> ids, Integer status);
38+
39+
void exportDisAssembleReceipt(QueryDisassembleReceiptDTO queryDisassembleReceiptDTO, HttpServletResponse response) throws Exception;
3740
}

core/service/src/main/java/com/wansenai/service/warehouse/impl/DisassembleReceiptServiceImpl.java

+49
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,13 @@
3838
import com.wansenai.utils.enums.AssembleReceiptCodeEnum;
3939
import com.wansenai.utils.enums.BaseCodeEnum;
4040
import com.wansenai.utils.enums.DisassembleReceiptCodeEnum;
41+
import com.wansenai.utils.excel.ExcelUtils;
4142
import com.wansenai.utils.response.Response;
4243
import com.wansenai.vo.warehouse.AssembleReceiptDetailVO;
4344
import com.wansenai.vo.warehouse.AssembleReceiptVO;
4445
import com.wansenai.vo.warehouse.DisassembleReceiptDetailVO;
4546
import com.wansenai.vo.warehouse.DisassembleReceiptVO;
47+
import jakarta.servlet.http.HttpServletResponse;
4648
import org.springframework.stereotype.Service;
4749
import org.springframework.transaction.annotation.Transactional;
4850
import org.springframework.util.StringUtils;
@@ -181,6 +183,44 @@ public Response<Page<DisassembleReceiptVO>> getDisassembleReceiptPageList(QueryD
181183
return Response.responseData(result);
182184
}
183185

186+
public List<DisassembleReceiptVO> getDisassembleReceiptList(QueryDisassembleReceiptDTO queryDisassembleReceiptDTO) {
187+
var wrapperMainMapper = lambdaQuery()
188+
.eq(queryDisassembleReceiptDTO.getOperatorId() != null, WarehouseReceiptMain::getCreateBy, queryDisassembleReceiptDTO.getOperatorId())
189+
.eq(queryDisassembleReceiptDTO.getStatus() != null, WarehouseReceiptMain::getStatus, queryDisassembleReceiptDTO.getStatus())
190+
.eq(StringUtils.hasLength(queryDisassembleReceiptDTO.getReceiptNumber()), WarehouseReceiptMain::getReceiptNumber, queryDisassembleReceiptDTO.getReceiptNumber())
191+
.like(StringUtils.hasLength(queryDisassembleReceiptDTO.getRemark()), WarehouseReceiptMain::getRemark, queryDisassembleReceiptDTO.getRemark())
192+
.ge(StringUtils.hasLength(queryDisassembleReceiptDTO.getStartDate()), WarehouseReceiptMain::getCreateTime, queryDisassembleReceiptDTO.getStartDate())
193+
.le(StringUtils.hasLength(queryDisassembleReceiptDTO.getEndDate()), WarehouseReceiptMain::getCreateTime, queryDisassembleReceiptDTO.getEndDate())
194+
.eq(WarehouseReceiptMain::getType, "拆卸单")
195+
.eq(WarehouseReceiptMain::getDeleteFlag, CommonConstants.NOT_DELETED)
196+
.list();
197+
198+
var disAssembleReceiptVOList = new ArrayList<DisassembleReceiptVO>(wrapperMainMapper.size() + 1);
199+
wrapperMainMapper.forEach(item -> {
200+
201+
var product = productService.getById(item.getProductId());
202+
var productInfo = "";
203+
if(product != null) {
204+
productInfo = product.getProductName() + "|" + product.getProductStandard() + "|" + product.getProductModel() + "|" + product.getProductUnit();
205+
}
206+
207+
var operator = userService.getById(item.getCreateBy());
208+
var disAssembleReceiptVO = DisassembleReceiptVO.builder()
209+
.id(item.getId())
210+
.receiptNumber(item.getReceiptNumber())
211+
.productInfo(productInfo)
212+
.receiptDate(item.getReceiptDate())
213+
.operator(Optional.ofNullable(operator).map(SysUser::getName).orElse(""))
214+
.productNumber(item.getTotalProductNumber())
215+
.totalAmount(item.getTotalAmount())
216+
.status(item.getStatus())
217+
.build();
218+
219+
disAssembleReceiptVOList.add(disAssembleReceiptVO);
220+
});
221+
return disAssembleReceiptVOList;
222+
}
223+
184224
@Override
185225
public Response<DisassembleReceiptDetailVO> getDisassembleReceiptDetail(Long id) {
186226
if (id == null) {
@@ -432,4 +472,13 @@ public Response<String> updateDisassembleReceiptStatus(List<Long> ids, Integer s
432472
}
433473
return Response.responseMsg(DisassembleReceiptCodeEnum.UPDATE_DISASSEMBLE_RECEIPT_SUCCESS);
434474
}
475+
476+
@Override
477+
public void exportDisAssembleReceipt(QueryDisassembleReceiptDTO queryDisassembleReceiptDTO, HttpServletResponse response) throws Exception {
478+
var data = getDisassembleReceiptList(queryDisassembleReceiptDTO);
479+
if (!data.isEmpty()) {
480+
var file = ExcelUtils.exportFile(ExcelUtils.DEFAULT_FILE_PATH, "拆卸单", data);
481+
ExcelUtils.downloadExcel(file, "拆卸单", response);
482+
}
483+
}
435484
}

web/src/api/warehouse/disassemble.ts

+11
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ enum API {
1414
DeleteBatch = '/warehouse/disassemble/deleteByIds',
1515
UpdateStatus = '/warehouse/disassemble/updateStatusByIds',
1616
GetDetail = '/warehouse/disassemble/getDetailById',
17+
Export = '/warehouse/disassemble/export',
1718
}
1819

1920
export function getDisAssemblePageList(params: QueryDisAssembleReq) {
@@ -65,4 +66,14 @@ export function getDisAssembleDetailById(id: number) {
6566
url: `${API.GetDetail}/${id}`
6667
},
6768
);
69+
}
70+
71+
export function exportDisAssemble(params: QueryDisAssembleReq) {
72+
return defHttp.get<BaseDataResp<Blob>>(
73+
{
74+
url: `${API.Export}`,
75+
params,
76+
responseType: "blob"
77+
}
78+
);
6879
}

web/src/views/warehouse/disassemble/index.vue

+13-11
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,8 @@ import {defineComponent, ref} from "vue";
5252
import {BasicTable, TableAction, useTable} from "@/components/Table";
5353
import {useMessage} from "@/hooks/web/useMessage";
5454
import {columns, searchFormSchema} from "@/views//warehouse/disassemble/disassemble.data";
55-
import {exportXlsx} from "@/api/basic/common";
5655
import {useI18n} from "vue-i18n";
57-
import {getDisAssemblePageList, deleteBatchDisAssemble, updateDisAssembleStatus} from "@/api/warehouse/disassemble";
56+
import {getDisAssemblePageList, deleteBatchDisAssemble, updateDisAssembleStatus, exportDisAssemble} from "@/api/warehouse/disassemble";
5857
import AddEditDisassembleModal from "@/views/warehouse/disassemble/components/AddEditDisassembleModal.vue"
5958
import ViewDisassembleModal from "@/views/warehouse/disassemble/components/ViewDisassembleModal.vue";
6059
import {Tag} from "ant-design-vue";
@@ -67,7 +66,7 @@ export default defineComponent({
6766
const { createMessage } = useMessage();
6867
const addEditModalRef = ref(null);
6968
const [receiptViewModal, {openModal: openReceiptViewModal}] = useModal();
70-
const [registerTable, { reload, getSelectRows }] = useTable({
69+
const [registerTable, { reload, getSelectRows, getForm }] = useTable({
7170
title: '拆卸单列表',
7271
rowKey: 'id',
7372
api: getDisAssemblePageList,
@@ -170,14 +169,17 @@ export default defineComponent({
170169
}
171170
172171
async function handleExport() {
173-
const file = await exportXlsx("拆卸单列表")
174-
const blob = new Blob([file]);
175-
const link = document.createElement("a");
176-
link.href = URL.createObjectURL(blob);
177-
const timestamp = getTimestamp(new Date());
178-
link.download = "拆卸单数据" + timestamp + ".xlsx";
179-
link.target = "_blank";
180-
link.click();
172+
const data = getForm().getFieldsValue();
173+
const file: any = await exportDisAssemble(data)
174+
if (file.size > 0) {
175+
const blob = new Blob([file]);
176+
const link = document.createElement("a");
177+
link.href = URL.createObjectURL(blob);
178+
const timestamp = getTimestamp(new Date());
179+
link.download = "拆卸单数据" + timestamp + ".xlsx";
180+
link.target = "_blank";
181+
link.click();
182+
}
181183
}
182184
183185

0 commit comments

Comments
 (0)