零件采购单审批
This commit is contained in:
parent
ceafe8a8ba
commit
6a399695ef
@ -19,6 +19,9 @@ public class PartPurchaseOrderPageReqVO extends PageParam {
|
||||
@Schema(description = "自增字段,唯一")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "采购单id")
|
||||
private Long purchaseOrderId;
|
||||
|
||||
@Schema(description = "物料计划单号")
|
||||
private String projectMaterialPlanNo;
|
||||
|
||||
@ -68,4 +71,10 @@ public class PartPurchaseOrderPageReqVO extends PageParam {
|
||||
private String ownerName;
|
||||
@Schema(description = "供应商名称")
|
||||
private String supplierName;
|
||||
@Schema(description = "采购单号")
|
||||
private String contractNo;
|
||||
@Schema(description = "采购单类型,1物料,2加工件")
|
||||
private Integer goodsType;
|
||||
@Schema(description = "单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1")
|
||||
private Integer documentStatus;
|
||||
}
|
||||
|
@ -147,4 +147,28 @@ public class PartPurchaseOrderPageRespVO extends BaseDO {
|
||||
* 工序名称
|
||||
*/
|
||||
private String procedureName;
|
||||
/**
|
||||
* 采购单号
|
||||
*/
|
||||
private String contractNo;
|
||||
/**
|
||||
* 采购单类型,1物料,2加工件
|
||||
*/
|
||||
private Integer goodsType;
|
||||
/**
|
||||
* 客户简码
|
||||
*/
|
||||
private String brief;
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
/**
|
||||
* 项目名称简码
|
||||
*/
|
||||
private String projectNameSim;
|
||||
/**
|
||||
* 单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1
|
||||
*/
|
||||
private Integer status;
|
||||
}
|
||||
|
@ -68,6 +68,12 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
default PageResult<PartPurchaseOrderPageRespVO> selectPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||
.select(PurchaseOrderMakeDO::getContractNo,
|
||||
PurchaseOrderMakeDO::getGoodsType,
|
||||
PurchaseOrderMakeDO::getBrief,
|
||||
PurchaseOrderMakeDO::getProjectName,
|
||||
PurchaseOrderMakeDO::getProjectNameSim,
|
||||
PurchaseOrderMakeDO::getStatus)
|
||||
.select("c.nickname as duEmpName")
|
||||
.select("d.name as supplierName")
|
||||
.select("e.name as procedureName")
|
||||
@ -79,6 +85,9 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
.disableLogicDel()
|
||||
.disableSubLogicDel()
|
||||
.eq(PurchaseOrderMakeDO::getGoodsType, 2)
|
||||
.eq(Objects.nonNull(pageReqVO.getPurchaseOrderId()), PurchaseOrderMakeDO::getId, pageReqVO.getPurchaseOrderId())
|
||||
.eq(StringUtils.isNotBlank(pageReqVO.getContractNo()), PurchaseOrderMakeDO::getContractNo, pageReqVO.getContractNo())
|
||||
.eq(Objects.nonNull(pageReqVO.getDocumentStatus()), PurchaseOrderMakeDO::getStatus, pageReqVO.getDocumentStatus())
|
||||
.like(StringUtils.isNotBlank(pageReqVO.getProjectName()), PurchaseOrderMakeDO::getProjectName, pageReqVO.getProjectName())
|
||||
.like(StringUtils.isNotBlank(pageReqVO.getProjectSubName()), PurchaseOrderMakeDetailDO::getName, pageReqVO.getProjectSubName())
|
||||
.like(StringUtils.isNotBlank(pageReqVO.getMaterialName()), PurchaseOrderMakeDetailDO::getBoomName, pageReqVO.getMaterialName())
|
||||
|
@ -24,3 +24,8 @@ export const getPartPage = async (params) => {
|
||||
export const submitForm = async (data) => {
|
||||
return await request.post({ url: `/heli/purchase-order-no/submit`, data })
|
||||
}
|
||||
|
||||
// 查询采购单主分页
|
||||
export const getPurchaseOrderMake = async (id: number) => {
|
||||
return await request.get({ url: `/heli/purchase-order-make/get?id=` + id })
|
||||
}
|
||||
|
@ -17,22 +17,12 @@
|
||||
<el-col :span="6">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="需求计划号" prop="projectMaterialPlanNo">
|
||||
<el-input class="!w-300px" placeholder="系统自动生成" v-model="formData.projectMaterialPlanNo" disabled />
|
||||
<el-form-item label="采购单号" prop="contractNo">
|
||||
<el-input class="!w-300px" placeholder="系统自动生成" v-model="formData.contractNo" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="项目名称" prop="projectName">
|
||||
<el-input class="!w-300px" placeholder="项目名称" v-model="formData.projectName" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="子项目名称" prop="name">
|
||||
<el-input class="!w-300px" placeholder="项目名称" v-model="formData.name" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -41,24 +31,26 @@
|
||||
<!-- 需求单信息 -->
|
||||
<el-card class="hl-card-info">
|
||||
<template #header>
|
||||
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">需求单信息</span>
|
||||
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">采购单信息</span>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-card class="hl-incard">
|
||||
<el-table :data="formData.matBoomDOList" class="hl-table" v-loading="loading">
|
||||
<el-table-column type="index" label="序号" fixed align="center" min-width="60" />
|
||||
<el-table-column prop="matName" min-width="200" label="物料名称" align="center"/>
|
||||
<el-table-column prop="nickname" min-width="120" label="责任人" align="center"/>
|
||||
<el-table-column prop="projectName" min-width="200" label="项目名称" align="center"/>
|
||||
<el-table-column prop="projectName" min-width="200" label="子项目编码" align="center"/>
|
||||
<el-table-column prop="boomName" min-width="200" label="物料名称" align="center"/>
|
||||
<el-table-column prop="procedureName" min-width="120" label="工序" align="center"/>
|
||||
<el-table-column prop="composition" min-width="120" label="材质" align="center"/>
|
||||
<el-table-column prop="boomAmount" min-width="100" label="需求数量" align="center"/>
|
||||
<el-table-column prop="boomArriveDate" min-width="200" label="需求到货日期" align="center" :formatter="dateFormatter1"/>
|
||||
<el-table-column prop="boomSpec" min-width="200" label="规格类型" align="center"/>
|
||||
<el-table-column prop="mplanStatus" min-width="100" label="需求状态" align="center">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.HELI_PROJECT_MATERIAL_PLAN_BOOM_STATUS" :value="scope.row.mplanStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="description" min-width="200" label="备注" align="center"/>
|
||||
<el-table-column prop="purchaseAmount" min-width="100" label="采购数量" align="center"/>
|
||||
<el-table-column prop="requireTime" min-width="200" label="需要完成日期" align="center" :formatter="dateFormatter1"/>
|
||||
<el-table-column prop="arriveTime" min-width="200" label="预计到货日期" align="center" :formatter="dateFormatter1"/>
|
||||
<el-table-column prop="supplierName" min-width="100" label="供应商" align="center"/>
|
||||
<el-table-column prop="description" min-width="200" label="技术要求" align="center"/>
|
||||
<el-table-column prop="theWeight" min-width="100" label="理论重量(吨)" align="center"/>
|
||||
<el-table-column prop="estimatedPrice" min-width="100" label="预估总价" align="center"/>
|
||||
</el-table>
|
||||
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
@ -68,7 +60,8 @@
|
||||
</el-card>
|
||||
</el-form>
|
||||
<div class="hl-footer text-center">
|
||||
<el-button @click="closeForm" size="large">取 消</el-button>
|
||||
<el-button @click="closeForm" size="large">批 准</el-button>
|
||||
<el-button @click="closeForm" size="large">驳 回</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
@ -93,6 +86,8 @@ import { useUserStore } from '@/store/modules/user'
|
||||
import { useTagsViewStore } from '@/store/modules/tagsView'
|
||||
import MaterialSelect from '@/views/heli/hlvuestyle/materialSelect.vue'
|
||||
import booms from './boom.vue'
|
||||
import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder";
|
||||
import {getPartPage} from "@/api/heli/partpurchaseorder";
|
||||
|
||||
const reload: any = inject('reload')
|
||||
const { t } = useI18n() // 国际化
|
||||
@ -105,7 +100,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
const formData = ref({
|
||||
id: undefined,
|
||||
projectMaterialPlanNo: undefined,
|
||||
contractNo: undefined,
|
||||
projectId: undefined,
|
||||
projectPlanId: undefined,
|
||||
projectPlanNo: undefined,
|
||||
@ -142,18 +137,18 @@ const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectMaterialPlanId: query.id
|
||||
purchaseOrderId: query.id
|
||||
})
|
||||
// 页面数据加载初始化
|
||||
onMounted(async () => {
|
||||
// 获取物料需求计划信息
|
||||
formData.value = await MaterialPlanApi.getMaterialPlan(query.id)
|
||||
formData.value = await PartPurchaseOrderApi.getPurchaseOrderMake(query.id)
|
||||
getList();
|
||||
})
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await MaterialPlanBoomApi.getMaterialPlanBoomPages(queryParams)
|
||||
const data = await PartPurchaseOrderApi.getPartPage(queryParams)
|
||||
formData.value.matBoomDOList = data.list
|
||||
total.value = data.total
|
||||
} finally {
|
||||
|
@ -25,8 +25,8 @@
|
||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PART_PURCHASE_ORDER_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable class="!w-240px">
|
||||
<el-form-item label="单据状态" prop="documentStatus">
|
||||
<el-select v-model="queryParams.documentStatus" placeholder="请选择单据状态" clearable class="!w-240px">
|
||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_DOCUMENT_STATUS)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -48,12 +48,12 @@
|
||||
<el-table-column label="序号" type="index" align="center" fixed min-width="70px" />
|
||||
<el-table-column label="采购单号" align="center" prop="contractNo" min-width="180" fixed>
|
||||
<template #default="scope">
|
||||
<el-button text type="primary" @click="openForm('detail', scope.row.id)">
|
||||
<el-button text type="primary" @click="openForm('detail', scope.row.purchaseOrderId)">
|
||||
{{ scope.row.contractNo }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="采购单类型" align="center" prop="goodType" min-width="180px" />
|
||||
<el-table-column label="采购单类型" align="center" prop="goodsType" min-width="180px" />
|
||||
<el-table-column label="客户简码" align="center" prop="brief" min-width="180px" />
|
||||
<el-table-column label="项目名称" align="center" prop="projectName" min-width="180px" />
|
||||
<el-table-column label="项目简码" align="center" prop="projectNameSim" min-width="180px" />
|
||||
@ -61,13 +61,14 @@
|
||||
<el-table-column label="操作" align="center" fixed="right" min-width="180">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-if="scope.row.status === 1"
|
||||
link
|
||||
type="primary"
|
||||
@click="openForm('detail', scope.row.id)"
|
||||
@click="openForm('detail', scope.row.purchaseOrderId)"
|
||||
>
|
||||
去审核
|
||||
</el-button>
|
||||
<el-button link type="primary" @click="openForm('detail', scope.row.id)">
|
||||
<el-button link type="primary" @click="openForm('detail', scope.row.purchaseOrderId)">
|
||||
查看详情
|
||||
</el-button>
|
||||
</template>
|
||||
@ -86,6 +87,7 @@
|
||||
import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
|
||||
import { dateFormatter1} from '@/utils/formatTime'
|
||||
import * as MaterialPlanApi from '@/api/heli/materialplan'
|
||||
import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder";
|
||||
|
||||
|
||||
defineOptions({ name: 'MaterialPlan' })
|
||||
@ -114,7 +116,7 @@ const queryParams = reactive({
|
||||
description: undefined,
|
||||
createTime: [],
|
||||
matType:0,
|
||||
status:1
|
||||
documentStatus:1
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
@ -123,7 +125,7 @@ const exportLoading = ref(false) // 导出的加载中
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await MaterialPlanApi.getMaterialPlanPages(queryParams)
|
||||
const data = await PartPurchaseOrderApi.getPartPage(queryParams)
|
||||
list.value = data.list
|
||||
total.value = data.total
|
||||
} finally {
|
||||
@ -155,7 +157,7 @@ const openForm = (type: string, id?: number) => {
|
||||
router.push({ path: '/purchase/materialplanedit', query: { id: id } })
|
||||
break;
|
||||
case 'detail':
|
||||
router.push({ path: '/purchase/managementdetail', query: { id: id } })
|
||||
router.push({ path: '/purchase/PartPurchaseCheckDetail', query: { id: id } })
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user