yaowanxin
2025-09-23 3c1bb9d57dde06ca0f17150aef381fa5d63d378b
src/views/inventoryManagement/stockManagement/index.vue
@@ -26,6 +26,7 @@
        <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 />
@@ -122,11 +123,11 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
          <!-- <el-col :span="12">
          <el-form-item label="最低库存:" prop="minStock">
            <el-input v-model="form.minStock" placeholder="请输入最低库存" clearable />
          </el-form-item>
        </el-col>
        </el-col> -->
        </el-row>
      </el-form>
      <template #footer>
@@ -153,9 +154,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,7 +175,7 @@
})
const total = ref(0)
const fileList = ref([])
const loading = ref(false);
// 用户信息表单弹框数据
const operationType = ref('')
const dialogFormVisible = ref(false)
@@ -235,11 +238,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 +306,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 +431,14 @@
}
onMounted(() => {
  getList()
  checkStockAndAutoCreatePurchase();
  checkStockAndCreatePurchase();
    // 每小时检查一次库存
    const intervalId = setInterval(checkStockAndCreatePurchase, 60 * 60 * 1000);
onUnmounted(() => {
  // 组件卸载时清除定时器
  clearInterval(intervalId);
});
})
</script>