采购订单 批量下载

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

@ -19,6 +19,9 @@ public class PurchaseOrderPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一") @Schema(description = "自增字段,唯一")
private Long id; private Long id;
@Schema(description = "选中采购编号")
private List<Long> ids;
@Schema(description = "采购单号") @Schema(description = "采购单号")
private String purchaseNo; 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.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert; 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") @Schema(description = "管理后台 - 采购订单 Response VO")
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@ -24,6 +27,7 @@ public class PurchaseOrderRespVO {
private String purchaseNo; private String purchaseNo;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
@ExcelProperty("单据日期") @ExcelProperty("单据日期")
private LocalDateTime createTime; private LocalDateTime createTime;

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

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

@ -1,41 +1,41 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermaterial.vo; package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermaterial.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import java.util.*; import java.util.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Schema(description = "管理后台 - 采购单物料新增/修改 Request VO") @Schema(description = "管理后台 - 采购单物料新增/修改 Request VO")
@Data @Data
public class PurchaseOrderMaterialSaveReqVO { public class PurchaseOrderMaterialSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id; private Long id;
@Schema(description = "采购单编号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "采购单编号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "采购单编号不能为空") @NotNull(message = "采购单编号不能为空")
private Long purchaseOrderId; private Long purchaseOrderId;
@Schema(description = "物料id") @Schema(description = "物料id")
private Long materialId; private Long materialId;
@Schema(description = "采购数量") @Schema(description = "采购数量")
private Long purchaseAmount; private BigDecimal purchaseAmount;
@Schema(description = "暂估价金额") @Schema(description = "暂估价金额")
private BigDecimal estimatedPrice; private BigDecimal estimatedPrice;
@Schema(description = "实际价金额") @Schema(description = "实际价金额")
private BigDecimal actualPrice; private BigDecimal actualPrice;
@Schema(description = "预计到期日期") @Schema(description = "预计到期日期")
private LocalDateTime arriveTime; private LocalDateTime arriveTime;
@Schema(description = "备注") @Schema(description = "备注")
private String description; private String description;
} }

@ -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()) .like(!StringUtils.isEmpty(reqVO.getCode()), MaterialDO::getCode, reqVO.getCode())
.eq(!StringUtils.isEmpty(reqVO.getMaterialType()), MaterialDO::getMaterialType, reqVO.getMaterialType()) .eq(!StringUtils.isEmpty(reqVO.getMaterialType()), MaterialDO::getMaterialType, reqVO.getMaterialType())
.eq(reqVO.getStatus() != null, MaterialDO::getStatus, reqVO.getStatus()) .eq(reqVO.getStatus() != null, MaterialDO::getStatus, reqVO.getStatus())
.eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name()) .eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name());
.eq(!StringUtils.isEmpty(reqVO.getVirtualPart()), MaterialDO::getVirtualPart, reqVO.getVirtualPart());
if(!StringUtils.isEmpty(reqVO.getCodeAndName())){ if(!StringUtils.isEmpty(reqVO.getCodeAndName())){
query.like(MaterialDO::getName, reqVO.getCodeAndName()).or().like(MaterialDO::getCode, 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()) .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.getStatus() != null, PurchaseOrderDO::getStatus, reqVO.getStatus())
.eq(reqVO.getPurchaseType() != null, PurchaseOrderDO::getPurchaseType, reqVO.getPurchaseType()) .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); 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()) .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.getStatus() != null, PurchaseOrderDO::getStatus, reqVO.getStatus())
.eq(reqVO.getPurchaseType() != null, PurchaseOrderDO::getPurchaseType, reqVO.getPurchaseType()) .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); return selectPage(reqVO, query);
} }

@ -126,7 +126,7 @@
<template #header><span class="hl-table_header">*</span>需求数量</template> <template #header><span class="hl-table_header">*</span>需求数量</template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`${scope.$index}.requireAmount`" :rules="subFormRules.requireAmount" class="mb-0px!"> <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> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -447,7 +447,7 @@ const onAddItem = () => {
matType: '', matType: '',
matSpec: '', matSpec: '',
matUnit: '', matUnit: '',
requireAmount: '', requireAmount: undefined,
requireArriveTime: '', requireArriveTime: '',
projectSubId: '', projectSubId: '',
description: '' description: ''

@ -186,7 +186,7 @@
<template #header><span class="hl-table_header">*</span>采购数量</template> <template #header><span class="hl-table_header">*</span>采购数量</template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`${scope.$index}.purchaseAmount`" :rules="subFormRules.purchaseAmount" class="mb-0px!"> <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> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -194,7 +194,7 @@
<template #header><span class="hl-table_header">*</span>暂估价金额</template> <template #header><span class="hl-table_header">*</span>暂估价金额</template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`${scope.$index}.estimatedPrice`" :rules="subFormRules.estimatedPrice" class="mb-0px!"> <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> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -202,7 +202,7 @@
<template #header>实际价金额</template> <template #header>实际价金额</template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`${scope.$index}.actualPrice`" class="mb-0px!"> <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> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -539,9 +539,9 @@ const onAddItem = () => {
matType: '', matType: '',
matSpec: '', matSpec: '',
matUnit: '', matUnit: '',
purchaseAmount: '', purchaseAmount: undefined,
estimatedPrice:'', estimatedPrice:undefined,
actualPrice:'', actualPrice:undefined,
arriveTime: '', arriveTime: '',
description: '' description: ''
} }

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

Loading…
Cancel
Save