廖井涛
2025-12-01 d111849e6e78ed02a63661e31c81dadd65f53104
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue
@@ -9,10 +9,12 @@
import footSum from "@/hook/footSum"
import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove"
import {VxeUI} from "vxe-pc-ui";
import companyInfo from "@/stores/sd/companyInfo";
//语言获取
const {t} = useI18n()
let router = useRouter()
let filterData = ref({})
const company = companyInfo()
//提交的表单
const form = reactive({
  date1: '',
@@ -65,6 +67,7 @@
  return includeEnd ? diffDays + 1 : diffDays
}
const times=company.reportTime
//获取七天前到当前时间
function getNowTime() {
  const pad = (n) => n.toString().padStart(2, '0');
@@ -73,7 +76,7 @@
    const year = date.getFullYear();
    const month = pad(date.getMonth() + 1);
    const day = pad(date.getDate());
    return `${year}-${month}-${day} 08:00:00`;
    return `${year}-${month}-${day} ${times}`;
  };
  const now = new Date();
@@ -112,7 +115,7 @@
let year = date.getFullYear();
let month = pad(date.getMonth() + 1);
let day = pad(date.getDate());
let newEndTime = `${year}-${month}-${day} 08:00:00`;
let newEndTime = `${year}-${month}-${day} ${times}`;
//第一次加载数据
request.post(`/report/teamOutput/1/${total.pageSize}/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
@@ -136,14 +139,28 @@
//页脚翻页查询
const selectPageList = () => {
  gridOptions.loading = true
  // 解析 company.reportTime
  const [reportHourStr, reportMinuteStr] = company.reportTime.split(":");
  const reportHour = parseInt(reportHourStr);
  const reportMinute = parseInt(reportMinuteStr);
  // 原始 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);
  // 判断时间部分是否需要修正为 company.reportTime
  const isZeroOrReport = (dateObj) => {
    const h = dateObj.getHours();
    const m = dateObj.getMinutes();
    // 判断条件:是 00:00 或者是 reportTime 对应的时间
    return (h === 0 && m === 0) || (h === reportHour && m === reportMinute);
  };
  if (isZeroOrReport(rawStart)) {
    rawStart.setHours(reportHour, reportMinute, 0, 0);
  }
  if (rawEnd.getHours() === 8 || rawEnd.getHours() === 0) {
    rawEnd.setHours(8, 0, 0, 0);
  if (isZeroOrReport(rawEnd)) {
    rawEnd.setHours(reportHour, reportMinute, 0, 0);
  }
  const startTime = formatDateTime(rawStart);
  const endPlusOne = new Date(rawEnd);
@@ -178,48 +195,71 @@
//点击查询
const getWorkOrder = () => {
  gridOptions.loading = true
  gridOptions.loading = true;
  // 解析 company.reportTime
  const [reportHourStr, reportMinuteStr] = company.reportTime.split(":");
  const reportHour = parseInt(reportHourStr);
  const reportMinute = parseInt(reportMinuteStr);
  // 原始 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);
  // 判断时间部分是否需要修正为 company.reportTime
  const isZeroOrReport = (dateObj) => {
    const h = dateObj.getHours();
    const m = dateObj.getMinutes();
    // 判断条件:是 00:00 或者是 reportTime 对应的时间
    return (h === 0 && m === 0) || (h === reportHour && m === reportMinute);
  };
  if (isZeroOrReport(rawStart)) {
    rawStart.setHours(reportHour, reportMinute, 0, 0);
  }
  if (rawEnd.getHours() === 8 || rawEnd.getHours() === 0) {
    rawEnd.setHours(8, 0, 0, 0);
  if (isZeroOrReport(rawEnd)) {
    rawEnd.setHours(reportHour, reportMinute, 0, 0);
  }
  // 格式化
  const startTime = formatDateTime(rawStart);
  const endPlusOne = new Date(rawEnd);
  endPlusOne.setDate(endPlusOne.getDate());
  const newEndTime = formatDateTime(endPlusOne);
  const selectProcesses = procseeValue.value;
  const timeDifference = getDaysBetween(startTime, newEndTime)
  if (timeDifference>180){
    ElMessage.warning(t('report.theTimeLimitCannotExceed180Days'))
    gridOptions.loading = false
    return
  }
  form.date1 = [startTime, newEndTime];
  request.post(`/report/teamOutput/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      total.dataTotal = res.data.total.total * 1
      total.pageTotal = res.data.total.pageTotal
      pageTotal.value = res.data.total
      produceList = res.data.data
      produceList.forEach(item => {
        item.mmTotal = sumMmValues(item.workProcessName);
  const selectProcesses = procseeValue.value;
  const timeDifference = getDaysBetween(startTime, newEndTime);
  if (timeDifference > 180) {
    ElMessage.warning(t('report.theTimeLimitCannotExceed180Days'));
    gridOptions.loading = false;
    return;
  }
  form.date1 = [startTime, newEndTime];
  request.post(`/report/teamOutput/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value)
      .then((res) => {
        if (res.code == 200) {
          total.value = res.data.footSum;
          total.dataTotal = res.data.total.total * 1;
          total.pageTotal = res.data.total.pageTotal;
          pageTotal.value = res.data.total;
          produceList = res.data.data;
          produceList.forEach(item => {
            item.mmTotal = sumMmValues(item.workProcessName);
          });
          xGrid.value.loadData(produceList);
          gridOptions.loading = false;
        } else {
          ElMessage.warning(res.msg);
        }
      });
      xGrid.value.loadData(produceList)
      gridOptions.loading = false
    } else {
      ElMessage.warning(res.msg)
    }
  })
}
 const sumMmValues = (workProcessName) => {
  if (!workProcessName) return 0;
@@ -261,14 +301,28 @@
    filterData.value[column.property] = value
  }
  // 解析 company.reportTime
  const [reportHourStr, reportMinuteStr] = company.reportTime.split(":");
  const reportHour = parseInt(reportHourStr);
  const reportMinute = parseInt(reportMinuteStr);
  // 原始 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);
  // 判断时间部分是否需要修正为 company.reportTime
  const isZeroOrReport = (dateObj) => {
    const h = dateObj.getHours();
    const m = dateObj.getMinutes();
    // 判断条件:是 00:00 或者是 reportTime 对应的时间
    return (h === 0 && m === 0) || (h === reportHour && m === reportMinute);
  };
  if (isZeroOrReport(rawStart)) {
    rawStart.setHours(reportHour, reportMinute, 0, 0);
  }
  if (rawEnd.getHours() === 8 || rawEnd.getHours() === 0) {
    rawEnd.setHours(8, 0, 0, 0);
  if (isZeroOrReport(rawEnd)) {
    rawEnd.setHours(reportHour, reportMinute, 0, 0);
  }
  const startTime = formatDateTime(rawStart);
  const endPlusOne = new Date(rawEnd);
@@ -360,9 +414,10 @@
    },
    {field: 'orderNumber', width: 90, title: t('order.OrderNum')},
    {field: 'code', width: 100, title: t('reportingWorks.glassNumber')},
    {field: 'width', width: 90, title: t('order.width')},
    {field: 'height', width: 90, title: t('order.height')},
    {field: 'mmTotal', width: 90, title: t('order.totalThickness')},
    {field: 'width', width: 90, title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'height', width: 90, title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'thicknessSum',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')},
    {field: 'thicknessArea', width: 90, title: t('report.thicknessArea')},
    {
      field: 'deviceName', width: 140, title: t('machine.basicName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
@@ -397,7 +452,7 @@
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        const List = ["completedQuantity",'area',]
        const List = ["completedQuantity",'area','thicknessArea']
        if (List.includes(column.field)) {
          //return footSum(data, column.field)
          return total.value?.[column.field] ?? 0