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