gaoluyang
22 小时以前 c49a9d727dd7620c3a9cb67c512b29bab842b1eb
src/views/inventoryManagement/stockManagement/index.vue
@@ -5,6 +5,16 @@
        <span class="search_title">供应商名称:</span>
        <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"
          clearable prefix-icon="Search" />
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
               v-model="searchForm.timeStr"
               type="date"
               placeholder="请选择日期"
               value-format="YYYY-MM-DD"
               format="YYYY-MM-DD"
               clearable
               @change="handleQuery"
            />
        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
      </div>
      <div>
@@ -19,13 +29,13 @@
        :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="库存日期" prop="createTime" width="100" show-overflow-tooltip />
        <el-table-column label="入库日期" prop="createTime" width="100" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="specificationModel" width="200" show-overflow-tooltip />
        <el-table-column label="单位" prop="unit" width="80" show-overflow-tooltip />
        <el-table-column label="库存数量" prop="inboundNum0" width="100" show-overflow-tooltip />
        <el-table-column label="最低库存数量" prop="minStock" width="130" show-overflow-tooltip />
        <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
        <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
        <el-table-column label="税率(%)" prop="taxRate" width="100" show-overflow-tooltip />
@@ -153,9 +163,11 @@
  exportStockManage
} from "@/api/inventoryManagement/stockManage.js";
import {
  updateManagement,
  updateManagement,addSutockIn,selectProductRecordListByPuechaserId,updateStockIn
} from "@/api/inventoryManagement/stockIn.js";
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -172,13 +184,14 @@
})
const total = ref(0)
const fileList = ref([])
const loading = ref(false);
// 用户信息表单弹框数据
const operationType = ref('')
const dialogFormVisible = ref(false)
const data = reactive({
  searchForm: {
    supplierName: '',
      timeStr: '',
  },
  form: {
    supplierId: null,
@@ -200,6 +213,7 @@
    stockQuantity: '',
    boundTime: '',
    minStock: '', // 新增最低库存字段
    salesLedgerProductId: null,
  },
  rules: {
    supplierName: [{ required: true, message: '请输入供应商名称', trigger: 'blur' }],
@@ -235,11 +249,13 @@
  getStockManagePage({ ...searchForm.value, ...page }).then(res => {
    tableLoading.value = false
    tableData.value = res.data.records
    console.log('res', res)
    // console.log('res', res)
    // tableData.value.map(item => {
    //   item.children = []
    // })
    total.value = res.data.total
    // 数据加载完成后检查库存
    checkStockAndCreatePurchase();
  }).catch(() => {
    tableLoading.value = false
  })
@@ -301,35 +317,67 @@
  console.log(form.value)
  proxy.$refs["formRef"].validate(valid => {
    if (valid) {
      // if (productData.value.length > 0) {
      //   form.value.productData = proxy.HaveJson(productData.value)
      // } else {
      //   proxy.$modal.msgWarning('请添加产品信息')
      //   return
      // }
      // let tempFileIds = []
      // if (fileList.value.length > 0) {
      //   tempFileIds = fileList.value.map(item => item.tempId)
      // }
      // form.value.tempFileIds = tempFileIds
      // form.value.type = 1
      updateManagement(form.value).then(res => {
        proxy.$modal.msgSuccess("提交成功")
        closeDia()
        getList()
        // 提交后检查库存并尝试创建请购单
        checkStockAndAutoCreatePurchase();
        checkStockAndCreatePurchase();
      })
    }
  })
}
// 检查库存并自动创建请购单
const checkStockAndAutoCreatePurchase = async () => {
  try {
    await checkStockAndCreatePurchase();
  } catch (error) {
    console.error('自动补货失败:', error);
    proxy.$modal.msgError('自动补货失败,请手动处理');
// const handList = () => {
//   selectProductRecordListByPuechaserId().then(res => {
//     productModelList.value = res.data.filter(item => item.productName === value)
//     console.log('productModelList.value', productModelList.value)
//   })
// }
// 检查库存并创建请购单
const checkStockAndCreatePurchase = async () => {
  const stockList = tableData.value;
  // handList()
  for (const item of stockList) {
    if (item.inboundNum0 < item.minStock) {
      try {
        console.log('item', item)
          // const stockInData = {
          //   nickName: userStore.nickName,// 使用新格式化函数
          //   details: [{
          //     id: item.salesLedgerProductId,
          //     inboundQuantity: item.minStock - item.inboundNum0
          //   }]
          // };
          const stockInData = {
            id: item.id,
            quantityStock: item.minStock + item.totalInboundNum,// 使用新格式化函数
          };
        console.log('准备提交的数据:', JSON.parse(JSON.stringify(stockInData)));
          loading.value = true
          // await addSutockIn(stockInData)
          await updateStockIn(stockInData)
          proxy.$modal.msgSuccess(`产品 ${item.productCategory} 修改入库成功`)
          loading.value = false
        // // 生成请购单
        // const createRes = await createPurchaseRequest({
        //   productId: item.productId,
        //   requiredQuantity: item.minStock - item.inboundNum0,
        //   supplierId: item.supplierId
        // });
        // if (createRes.code === 200) {
        //   // 流转请购单到采购模块
        //   await transferPurchaseRequest({ requestId: createRes.data.id });
        //   proxy.$modal.msgSuccess(`产品 ${item.productName} 请购单已生成并流转`);
        // }
      } catch (error) {
        proxy.$modal.msgError(`产品 ${item.productCategory} 生成请购单失败,请手动处理`);
      }
    }
  }
};
// 关闭弹框
@@ -394,7 +442,14 @@
}
onMounted(() => {
  getList()
  checkStockAndAutoCreatePurchase();
  checkStockAndCreatePurchase();
    // 每小时检查一次库存
    const intervalId = setInterval(checkStockAndCreatePurchase, 60 * 60 * 1000);
onUnmounted(() => {
  // 组件卸载时清除定时器
  clearInterval(intervalId);
});
})
</script>