From 11c076acb5b3d1d77713613ee701a2739906ebfe Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 01 十二月 2025 16:28:02 +0800
Subject: [PATCH] 成品率相关报表改为可配置时间

---
 north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue |  121 +++++-------------------------
 north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js     |    4 +
 north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue        |  100 ++++---------------------
 3 files changed, 40 insertions(+), 185 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
index 035097b..e2e4676 100644
--- a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
+++ b/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:{}
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue b/north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue
index a90ade6..5f528f2 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue
+++ b/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">
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue b/north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue
index 06e211a..045c26e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue
+++ b/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>

--
Gitblit v1.8.0