采购订单 批量下载

采购订单 批量下载
pull/4/head
siontion 8 months ago
parent 9c09851332
commit cd36d7125e

@ -19,6 +19,9 @@ public class PurchaseOrderPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "选中采购编号")
private List<Long> ids;
@Schema(description = "采购单号")
private String purchaseNo;

@ -11,6 +11,9 @@ import com.alibaba.excel.annotation.*;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 采购订单 Response VO")
@Data
@ExcelIgnoreUnannotated
@ -24,6 +27,7 @@ public class PurchaseOrderRespVO {
private String purchaseNo;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
@ExcelProperty("单据日期")
private LocalDateTime createTime;

@ -23,7 +23,7 @@ public class PurchaseOrderMaterialPageReqVO extends PageParam {
private Long materialId;
@Schema(description = "采购数量")
private Long purchaseAmount;
private BigDecimal purchaseAmount;
@Schema(description = "暂估价金额")
private BigDecimal estimatedPrice;

@ -29,7 +29,7 @@ public class PurchaseOrderMaterialRespVO {
@Schema(description = "采购数量")
@ExcelProperty("采购数量")
private Long purchaseAmount;
private BigDecimal purchaseAmount;
@Schema(description = "暂估价金额")
@ExcelProperty("暂估价金额")

@ -24,7 +24,7 @@ public class PurchaseOrderMaterialSaveReqVO {
private Long materialId;
@Schema(description = "采购数量")
private Long purchaseAmount;
private BigDecimal purchaseAmount;
@Schema(description = "暂估价金额")
private BigDecimal estimatedPrice;

@ -41,7 +41,7 @@ public class PurchaseOrderMaterialDO extends BaseDO {
/**
*
*/
private Long purchaseAmount;
private BigDecimal purchaseAmount;
/**
*
*/

@ -35,8 +35,7 @@ public interface MaterialMapper extends BaseMapperX<MaterialDO> {
.like(!StringUtils.isEmpty(reqVO.getCode()), MaterialDO::getCode, reqVO.getCode())
.eq(!StringUtils.isEmpty(reqVO.getMaterialType()), MaterialDO::getMaterialType, reqVO.getMaterialType())
.eq(reqVO.getStatus() != null, MaterialDO::getStatus, reqVO.getStatus())
.eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name())
.eq(!StringUtils.isEmpty(reqVO.getVirtualPart()), MaterialDO::getVirtualPart, reqVO.getVirtualPart());
.eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name());
if(!StringUtils.isEmpty(reqVO.getCodeAndName())){
query.like(MaterialDO::getName, reqVO.getCodeAndName()).or().like(MaterialDO::getCode, reqVO.getCodeAndName());

@ -40,7 +40,8 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.apply(reqVO.getCreateTime() != null, "DATE_FORMAT(t.create_time,'%Y-%m-%d') = {0}", reqVO.getCreateTime())
.eq(reqVO.getStatus() != null, PurchaseOrderDO::getStatus, reqVO.getStatus())
.eq(reqVO.getPurchaseType() != null, PurchaseOrderDO::getPurchaseType, reqVO.getPurchaseType())
.eq(reqVO.getGoodsType() != null, PurchaseOrderDO::getGoodsType, reqVO.getGoodsType());
.eq(reqVO.getGoodsType() != null, PurchaseOrderDO::getGoodsType, reqVO.getGoodsType())
.in(reqVO.getIds() != null && !reqVO.getIds().isEmpty(),PurchaseOrderDO::getId,reqVO.getIds());
return selectPage(reqVO, query);
}
@ -80,7 +81,8 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.apply(reqVO.getCreateTime() != null, "DATE_FORMAT(t.create_time,'%Y-%m-%d') = {0}", reqVO.getCreateTime())
.eq(reqVO.getStatus() != null, PurchaseOrderDO::getStatus, reqVO.getStatus())
.eq(reqVO.getPurchaseType() != null, PurchaseOrderDO::getPurchaseType, reqVO.getPurchaseType())
.eq(reqVO.getGoodsType() != null, PurchaseOrderDO::getGoodsType, reqVO.getGoodsType());
.eq(reqVO.getGoodsType() != null, PurchaseOrderDO::getGoodsType, reqVO.getGoodsType())
.in(reqVO.getIds() != null && !reqVO.getIds().isEmpty(),PurchaseOrderDO::getId,reqVO.getIds());
return selectPage(reqVO, query);
}

@ -126,7 +126,7 @@
<template #header><span class="hl-table_header">*</span>需求数量</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.requireAmount`" :rules="subFormRules.requireAmount" class="mb-0px!">
<el-input v-model="scope.row.requireAmount" />
<el-input-number style="width: 100%" v-model="scope.row.requireAmount" placeholder="需求数量" :min="0" :precision="2" />
</el-form-item>
</template>
</el-table-column>
@ -447,7 +447,7 @@ const onAddItem = () => {
matType: '',
matSpec: '',
matUnit: '',
requireAmount: '',
requireAmount: undefined,
requireArriveTime: '',
projectSubId: '',
description: ''

@ -186,7 +186,7 @@
<template #header><span class="hl-table_header">*</span>采购数量</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.purchaseAmount`" :rules="subFormRules.purchaseAmount" class="mb-0px!">
<el-input v-model="scope.row.purchaseAmount" />
<el-input-number style="width: 100%" v-model="scope.row.purchaseAmount" placeholder="采购数量" :min="0" :precision="2" />
</el-form-item>
</template>
</el-table-column>
@ -194,7 +194,7 @@
<template #header><span class="hl-table_header">*</span>暂估价金额</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.estimatedPrice`" :rules="subFormRules.estimatedPrice" class="mb-0px!">
<el-input v-model="scope.row.estimatedPrice" @change="handleEstimatedPrice" />
<el-input-number style="width: 100%" v-model="scope.row.estimatedPrice" placeholder="暂估价金额" @change="handleEstimatedPrice" :min="0" :precision="6" />
</el-form-item>
</template>
</el-table-column>
@ -202,7 +202,7 @@
<template #header>实际价金额</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.actualPrice`" class="mb-0px!">
<el-input v-model="scope.row.actualPrice" @change="handleActualPrice" />
<el-input-number style="width: 100%" v-model="scope.row.actualPrice" placeholder="暂估价金额" @change="handleActualPrice" :min="0" :precision="6" />
</el-form-item>
</template>
</el-table-column>
@ -539,9 +539,9 @@ const onAddItem = () => {
matType: '',
matSpec: '',
matUnit: '',
purchaseAmount: '',
estimatedPrice:'',
actualPrice:'',
purchaseAmount: undefined,
estimatedPrice:undefined,
actualPrice:undefined,
arriveTime: '',
description: ''
}

@ -55,8 +55,9 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table">
<el-table-column type="index" label="序号" align="center" fixed width="70" />
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table" @selection-change="handleSelectionChange" @row-click="clickRow" selection>
<el-table-column type="selection" align="center" fixed width="70" />
<el-table-column fixed label="序号" type="index" width="60" />
<el-table-column label="采购单号" align="center" prop="purchaseNo" fixed min-width="190">
<template #default="scope">
<el-button link type="primary" @click="openForm('detail', scope.row.id)">
@ -126,6 +127,7 @@ import { dateFormatter, formatDate } from '@/utils/formatTime'
import download from '@/utils/download'
import * as PurchaseOrderApi from '@/api/heli/purchaseorder'
import PurchaseOrderForm from './PurchaseOrderForm.vue'
import { ElTable } from 'element-plus'
defineOptions({ name: 'PurchaseOrder' })
@ -139,6 +141,7 @@ const queryParams = reactive({
pageNo: 1,
pageSize: 10,
id: undefined,
ids: undefined,
purchaseNo: undefined,
supplierId: undefined,
contractNo: undefined,
@ -165,6 +168,7 @@ const exportLoading = ref(false) // 导出的加载中
const getList = async () => {
loading.value = true
try {
queryParams.ids = undefined
const data = await PurchaseOrderApi.getPurchaseOrderPage(queryParams)
list.value = data.list
total.value = data.total
@ -184,7 +188,21 @@ const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
const multipleTable:any = ref<InstanceType<typeof ElTable>>()
const multipleSelection:any = ref([])
const handleSelectionChange = (val: PurchaseOrderApi.PurchaseOrderVO[]) => {
multipleSelection.value = val
}
const clickRow = (row: any) => {
if(row){
multipleTable.value!.toggleRowSelection(row, undefined)
}else{
multipleTable.value!.clearSelection()
}
}
/** 添加/修改操作 */
const openForm = (type: string, id?: number) => {
switch (type) {
@ -215,6 +233,12 @@ const handleDelete = async (id: number) => {
} catch { }
}
const getIds = async ()=>{
queryParams.ids = []
multipleSelection.value.forEach(item=>{
queryParams.ids.push(item.id)
})
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
@ -222,6 +246,7 @@ const handleExport = async () => {
await message.exportConfirm()
//
exportLoading.value = true
await getIds()
const data = await PurchaseOrderApi.exportPurchaseOrder(queryParams)
download.excel(data, '采购订单.xls')
} catch {
@ -235,6 +260,7 @@ const handleExportWithTax = async ()=>{
await message.exportConfirm()
//
exportLoading.value = true
await getIds()
const data = await PurchaseOrderApi.exportPurchaseOrderWithTax(queryParams)
download.excel(data, '采购订单.xls')
} catch {

Loading…
Cancel
Save