chenlu
2025-12-01 11c076acb5b3d1d77713613ee701a2739906ebfe
成品率相关报表改为可配置时间
3个文件已修改
225 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue 121 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
@@ -14,6 +14,7 @@
        reportingWorkDate:ref(["",""]),
        qualityInspectionDate:ref(["",""]),
        brokenDate:ref(["",""]),
        yieldDate:ref(["",""]),
        searchOrderListFilter:ref([]),//订单首页筛选]
        searchOrderFilter:{
            list:ref([]),
@@ -81,6 +82,9 @@
            this.reportFormDate=["",""]
            this.workOrderDate=["",""]
            this.reportingWorkDate=["",""]
            this.qualityInspectionDate=["",""]
            this.brokenDate=["",""]
            this.yieldDate=["",""]
            this.searchOrderFilter={
                list:[],
                data:{}
north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue
@@ -11,6 +11,11 @@
import dayjs from 'dayjs'
import {addListener} from "@/hook/mouseMove";
import {VxeUI} from "vxe-pc-ui";
import companyInfo from "@/stores/sd/companyInfo";
import useOrderInfoStore from "@/stores/sd/order/orderInfo";
const company = companyInfo()
const reportTime=company.reportTime
const orderInfo = useOrderInfoStore()
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -58,39 +63,9 @@
let pageNum = ref(1)
let pageState = null
//获取七天前到当前时间
function getNowTime() {
  const pad = (n) => n.toString().padStart(2, '0');
  const formatDate = (date) => {
    const year = date.getFullYear();
    const month = pad(date.getMonth() + 1);
    const day = pad(date.getDate());
    return `${year}-${month}-${day} 08:00:00`;
  };
  const now = new Date();
  const startDate = new Date(now.getTime() - 3600 * 1000 * 24 * 3); // 三天前
  const start = formatDate(startDate);
  const end = formatDate(now);
  return [start, end];
}
//第一次加载获取近七天时间和默认状态
form.date1 = getNowTime()
let startTime = form.date1[0]
let endTime = form.date1[1]
let date = new Date(endTime); // 将日期字符串转为 Date 对象
// 使用 setDate 方法加一天
date.setDate(date.getDate() + 1);
const pad = (n) => n.toString().padStart(2, '0');
let year = date.getFullYear();
let month = pad(date.getMonth() + 1);
let day = pad(date.getDate());
let newEndTime = `${year}-${month}-${day} 08:00:00`;
let selectProcesses = value.value
let total = reactive({
  pageTotal: 0,
@@ -102,87 +77,44 @@
  processType: [],
})
//第一次加载数据
request.post(`/report/yield/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
request.post(`/report/yield/${orderInfo.yieldDate}/${selectProcesses}/${reportTime}`, filterData.value).then((res) => {
  if (res.code == 200) {
    // total.dataTotal = res.data.total.total*1
    // total.pageTotal= res.data.total.pageTotal
    // pageTotal.value = res.data.total
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.processType = res.data.process
    orderInfo.yieldDate = res.data.selectDate
    xGrid.value.reloadData(produceList)
    gridOptions.loading = false
  } else {
    gridOptions.loading = false
    ElMessage.warning(res.msg)
  }
})
//页脚翻页查询
const selectPageList = () => {
  let startTime = form.date1[0]
  let endTime = form.date1[1]
  request.post(`/report/yield/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${inputVal}`, filterData.value).then((res) => {
    if (res.code == 200) {
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
      ElMessage.warning(res.msg)
    }
  })
}
//点击查询
const getWorkOrder = () => {
  gridOptions.loading = true
  // 原始 form.date1 是日期对象数组
  const rawStart = new Date(form.date1[0]);
  const rawEnd = new Date(form.date1[1]);
  // 如果时间部分是 00:00,则设置为 08:00
  if (rawStart.getHours() === 8 || rawStart.getHours() === 0) {
    rawStart.setHours(8, 0, 0, 0);
  }
  if (rawEnd.getHours() === 8 || rawEnd.getHours() === 0) {
    rawEnd.setHours(8, 0, 0, 0);
  }
  const startTime = formatDateTime(rawStart);
  const endPlusOne = new Date(rawEnd);
  endPlusOne.setDate(endPlusOne.getDate());
  const newEndTime = formatDateTime(endPlusOne);
  form.date1 = [startTime, newEndTime];
  let selectProcesses = value.value
  request.post(`/report/yield/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
  console.log(orderInfo.yieldDate)
  console.log(reportTime)
  request.post(`/report/yield/${orderInfo.yieldDate}/${selectProcesses}/${reportTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      // total.dataTotal = res.data.total.total*1
      // total.pageTotal= res.data.total.pageTotal
      // pageTotal.value = res.data.total
      orderInfo.yieldDate = res.data.selectDate
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
      gridOptions.loading = false
    } else {
      gridOptions.loading = false
      ElMessage.warning(res.msg)
    }
  })
}
const formatDateTime = (date) => {
  const year = date.getFullYear();
  const month = pad(date.getMonth() + 1);
  const day = pad(date.getDate());
  const hour = pad(date.getHours());
  const minute = pad(date.getMinutes());
  return `${year}-${month}-${day} ${hour}:${minute}:00`;
};
//页脚跳转
const handlePageChange = ({currentPage, pageSize}) => {
  pageNum.value = currentPage
  total.pageTotal = pageSize
  selectPageList()
}
@@ -383,13 +315,13 @@
  <div  style="width: 100%;height: 100%">
    <div class="head">
        <el-date-picker
            v-model="form.date1"
            v-model="orderInfo.yieldDate"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD HH:mm"
            style="width: 350px"
            type="daterange"
            value-format="YYYY/MM/DD HH:mm"
            format="YYYY/MM/DD HH:mm"
            value-format="YYYY-MM-DD HH:mm"
        />
        &nbsp;&nbsp;
        <el-select v-model="value" clearable default-value="default_city" style="width: 120px">
north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue
@@ -11,6 +11,11 @@
import dayjs from 'dayjs'
import {VxeUI} from "vxe-pc-ui";
import {addListener} from "@/hook/mouseMove";
import companyInfo from "@/stores/sd/companyInfo";
import useOrderInfoStore from "@/stores/sd/order/orderInfo";
const company = companyInfo()
const reportTime=company.reportTime
const orderInfo = useOrderInfoStore()
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -58,133 +63,47 @@
let pageNum = ref(1)
let pageState = null
//获取七天前到当前时间
function getNowTime() {
  const pad = (n) => n.toString().padStart(2, '0');
  const formatDate = (date) => {
    const year = date.getFullYear();
    const month = pad(date.getMonth() + 1);
    const day = pad(date.getDate());
    return `${year}-${month}-${day} 08:00:00`;
  };
  const now = new Date();
  const startDate = new Date(now.getTime() - 3600 * 1000 * 24 * 3); // 三天前
  const start = formatDate(startDate);
  const end = formatDate(now);
  return [start, end];
}
//第一次加载获取近七天时间和默认状态
form.date1 = getNowTime()
let startTime = form.date1[0]
let endTime = form.date1[1]
let date = new Date(endTime); // 将日期字符串转为 Date 对象
// 使用 setDate 方法加一天
date.setDate(date.getDate() + 1);
const pad = (n) => n.toString().padStart(2, '0');
let year = date.getFullYear();
let month = pad(date.getMonth() + 1);
let day = pad(date.getDate());
let newEndTime = `${year}-${month}-${day} 08:00:00`;
let selectProcesses = value.value
let total = reactive({
  pageTotal: 0,
  dataTotal: 0,
  pageSize: 100
})
//定义接收加载表头下拉数据
const titleSelectJson = ref({
  processType: [],
})
//第一次加载数据
request.post(`/report/yieldProcess/${startTime}/${newEndTime}`, filterData.value).then((res) => {
request.post(`/report/yieldProcess/${orderInfo.yieldDate}/${reportTime}`, filterData.value).then((res) => {
  if (res.code == 200) {
    // total.dataTotal = res.data.total.total*1
    // total.pageTotal= res.data.total.pageTotal
    // pageTotal.value = res.data.total
    orderInfo.yieldDate = res.data.selectDate
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.processType = res.data.process
    xGrid.value.reloadData(produceList)
    gridOptions.loading = false
  } else {
    gridOptions.loading = false
    ElMessage.warning(res.msg)
  }
})
//页脚翻页查询
const selectPageList = () => {
  let startTime = form.date1[0]
  let endTime = form.date1[1]
  request.post(`/report/yield/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${inputVal}`, filterData.value).then((res) => {
    if (res.code == 200) {
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
      ElMessage.warning(res.msg)
    }
  })
}
//点击查询
const getWorkOrder = () => {
  gridOptions.loading = true
  // 原始 form.date1 是日期对象数组
  const rawStart = new Date(form.date1[0]);
  const rawEnd = new Date(form.date1[1]);
  // 如果时间部分是 00:00,则设置为 08:00
  if (rawStart.getHours() === 8 || rawStart.getHours() === 0) {
    rawStart.setHours(8, 0, 0, 0);
  }
  if (rawEnd.getHours() === 8 || rawEnd.getHours() === 0) {
    rawEnd.setHours(8, 0, 0, 0);
  }
  const startTime = formatDateTime(rawStart);
  const endPlusOne = new Date(rawEnd);
  endPlusOne.setDate(endPlusOne.getDate());
  const newEndTime = formatDateTime(endPlusOne);
  form.date1 = [startTime, newEndTime];
  let selectProcesses = value.value
  request.post(`/report/yieldProcess/${startTime}/${newEndTime}`, filterData.value).then((res) => {
  request.post(`/report/yieldProcess/${orderInfo.yieldDate}/${reportTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      // total.dataTotal = res.data.total.total*1
      // total.pageTotal= res.data.total.pageTotal
      // pageTotal.value = res.data.total
      orderInfo.yieldDate = res.data.selectDate
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
      gridOptions.loading = false
    } else {
      gridOptions.loading = false
      ElMessage.warning(res.msg)
    }
  })
}
const formatDateTime = (date) => {
  const year = date.getFullYear();
  const month = pad(date.getMonth() + 1);
  const day = pad(date.getDate());
  const hour = pad(date.getHours());
  const minute = pad(date.getMinutes());
  return `${year}-${month}-${day} ${hour}:${minute}:00`;
};
//页脚跳转
const handlePageChange = ({currentPage, pageSize}) => {
  pageNum.value = currentPage
  total.pageTotal = pageSize
  selectPageList()
}
/*使用筛选,后端获取数据*/
// const changeFilterEvent = (event, option, $panel,) => {
@@ -342,15 +261,15 @@
<template>
  <div  style="width: 100%;height: 100%">
    <div class="head">
        <el-date-picker
            v-model="form.date1"
            :start-placeholder="$t('basicData.startDate')"
            :end-placeholder="$t('basicData.endDate')"
            format="YYYY/MM/DD HH:mm"
            style="width: 350px"
            type="daterange"
            value-format="YYYY/MM/DD HH:mm"
        />
      <el-date-picker
          v-model="orderInfo.yieldDate"
          :start-placeholder="$t('basicData.startDate')"
          :end-placeholder="$t('basicData.endDate')"
          style="width: 350px"
          type="daterange"
          format="YYYY/MM/DD HH:mm"
          value-format="YYYY-MM-DD HH:mm"
      />
        &nbsp;&nbsp;
        <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>