diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/purorder/vo/PurOrderSaveReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/purorder/vo/PurOrderSaveReqVO.java index 3ed92fe..2fc6f48 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/purorder/vo/PurOrderSaveReqVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/purorder/vo/PurOrderSaveReqVO.java @@ -39,7 +39,7 @@ public class PurOrderSaveReqVO { private String purDeptName; @Schema(description = "部门id", example = "4640") - private String purDeptId; + private Integer purDeptId; @Schema(description = "申请类型(1 原材料 2 辅料 3设备)", example = "1") private String applyType; @@ -48,7 +48,7 @@ public class PurOrderSaveReqVO { private String purEmpName; @Schema(description = "采购人id", example = "5929") - private String purEmpId; + private Integer purEmpId; @Schema(description = "验收方式(1 数量验收 2金额验收)") private String acceptMeth; diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/purorder/PurOrderDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/purorder/PurOrderDO.java index b9c6082..b9d20dd 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/purorder/PurOrderDO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/purorder/PurOrderDO.java @@ -1,14 +1,13 @@ package com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.purorder; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; import lombok.*; import java.time.LocalDate; -import java.util.*; import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; /** * 采购订单主 DO @@ -103,4 +102,4 @@ public class PurOrderDO extends BaseDO { */ private LocalDateTime auditTime; -} \ No newline at end of file +} diff --git a/mes-ui/mes-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue b/mes-ui/mes-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue index 85f2df1..d0f0a8b 100644 --- a/mes-ui/mes-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue +++ b/mes-ui/mes-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue @@ -14,7 +14,7 @@ const appStore = useAppStore() const title = computed(() => appStore.getTitle) - - - - - - - - - - - - + + + + + + + - - + + + @@ -119,6 +120,7 @@ const formData = reactive({ purOrdNo: undefined, purDate: undefined, billType: undefined, + applyType: undefined, purStatus: undefined, supplierName: undefined, purDeptName: undefined, diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/PurOrderForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/PurOrderForm.vue index fc7b927..112bf44 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/PurOrderForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/PurOrderForm.vue @@ -15,8 +15,8 @@ - - + + @@ -24,7 +24,7 @@ - + @@ -53,7 +53,7 @@ placeholder="请选择采购部门" filterable check-strictly - style="width: 100%" + class="w-full" @change="handleDeptChange" /> @@ -68,8 +68,8 @@ reserve-keyword :remote-method="searchUsers" :loading="userSelectLoading" - style="width: 100%" @change="handleUserChange" + style="width: 100%" > + + + + - + + @@ -219,7 +236,7 @@ - + @@ -420,32 +437,56 @@ const open = async (type: string, id?: number) => { if (type === 'update' && id) { formLoading.value = true try { - const data = await PurOrderApi.getPurOrder(id) + const response = await PurOrderApi.getPurOrder(id) + // 兼容两种响应格式:response可能是CommonResult或直接是data + const data = response.data || response - // 先加载人员列表用于回显,再赋值表单数据 + if (!data || typeof data !== 'object') { + console.error('API响应数据格式异常:', response) + return + } + + // 先搜索用户列表,确保在赋值表单数据前加载完成 if (data.purDeptId) { await searchUsers('') - } else { - await searchUsers('') } // 确保人员列表中包含当前选中的人员 - if (data.purEmpId && !userList.value.find((u: any) => u.id === data.purEmpId)) { - try { - const user = await UserApi.getUser(data.purEmpId) - if (user) { - userList.value.unshift(user.data || user) + if (data.purEmpId) { + if (!userList.value.find((u: any) => u.id === data.purEmpId)) { + try { + const user = await UserApi.getUser(data.purEmpId) + if (user) { + userList.value.unshift(user.data || user) + } + } catch (e) { + console.error('加载当前采购人员失败', e) } - } catch (e) { - console.error('加载当前采购人员失败', e) } } - - // 赋值表单数据 Object.assign(formData, data) + // 获取部门名称回显 + if (formData.purDeptId) { + try { + const deptName = await getDeptSimpleName(formData.purDeptId) + formData.purDeptName = deptName + } catch (e) { + console.error('获取部门名称失败', e) + } + } + + // 获取采购人员名称回显 + if (formData.purEmpId) { + try { + formData.purEmpName = await getUserNameById(formData.purEmpId) + } catch (e) { + console.error('获取采购人员名称失败', e) + } + } + // 加载子表数据 const itemData = data.itemList console.log('明细数据:', itemData) @@ -552,7 +593,7 @@ const removeItem = (index: number) => { itemList.value.splice(index, 1) } -// 计算总价 +// 计算总价(根据数量和单价) const calculateTotal = (row: any) => { if (!row) return const qty = Number(row.purQty) || 0 @@ -561,6 +602,18 @@ const calculateTotal = (row: any) => { row.totalPrice = total > 0 ? total.toFixed(2) : '0.00' } +// 根据含税总价反算含税单价 +const calculatePrice = (row: any) => { + if (!row) return + const total = Number(row.totalPrice) || 0 + const qty = Number(row.purQty) || 0 + // 避免除以0 + if (qty > 0) { + const price = total / qty + row.priceTax = price > 0 ? price.toFixed(2) : '0.00' + } +} + // 格式化含税总价显示 const formatTotalPrice = (row: any) => { if (!row) return '' diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/index.vue index b032ba4..94d6b09 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/purorder/index.vue @@ -82,9 +82,9 @@ - +
采购单信息
-
+
@@ -133,7 +134,7 @@ @@ -162,13 +163,13 @@ - +
采购物料信息
{ /** 初始化 */ onMounted(() => { - getList() + // getList() }) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/index.vue index d7f027f..552eeb4 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/saledelivery/index.vue @@ -71,9 +71,9 @@
- - -
+ + +
出库单列表
@@ -150,9 +150,11 @@ style="margin-top: 8px;" />
- +
+
+ -
+
出库单明细
@@ -171,7 +173,6 @@
-
@@ -332,6 +333,6 @@ const viewDetail = async (row: any) => { /** 初始化 **/ onMounted(() => { - getList() + // getList() }) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/tsoorder/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/tsoorder/index.vue index 6158bb9..15af952 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/tsoorder/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/tsoorder/index.vue @@ -102,7 +102,7 @@ - +