695593266@qq.com 2 месяцев назад
Родитель
Сommit
5d24b990da

+ 9 - 3
src/api/factoryModel/index.js

@@ -55,6 +55,7 @@ export async function saveOrUpdate_gw(params) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
 // 工位分页查询
 export async function getFactoryworkstation(params) {
   const res = await request.get(`/main/factoryworkstation/page`, {
@@ -219,7 +220,10 @@ export async function codeExists(code) {
 }
 // 获取工厂下的所有产线
 export async function listFactoryLineByFactoryId(params) {
-  const res = await request.post(`/main/factoryarea/listFactoryLineByFactoryId`, params);
+  const res = await request.post(
+    `/main/factoryarea/listFactoryLineByFactoryId`,
+    params
+  );
   if (res.data.code == 0) {
     return res.data.data;
   }
@@ -227,9 +231,11 @@ export async function listFactoryLineByFactoryId(params) {
 }
 // 获取产线下的所有工位
 export async function listByProductionLineId(productionLineId) {
-  const res = await request.get(`/main/factoryworkstation/listByProductionLineId/${productionLineId}`);
+  const res = await request.get(
+    `/main/factoryworkstation/listByProductionLineId/${productionLineId}`
+  );
   if (res.data.code == 0) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));
-}
+}

+ 10 - 10
src/utils/request.js

@@ -68,17 +68,17 @@ service.interceptors.response.use(
       // if (currentPath === LAYOUT_PATH) {
       //   logout(true);
       // } else {
-        MessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', {
-          confirmButtonText: '重新登录',
-          callback: (action) => {
-            if (action === 'confirm') {
-              logout(false, currentPath);
-            }
-          },
-          beforeClose: () => {
-            MessageBox.close();
+      MessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', {
+        confirmButtonText: '重新登录',
+        callback: (action) => {
+          if (action === 'confirm') {
+            logout(false, currentPath);
           }
-        });
+        },
+        beforeClose: () => {
+          MessageBox.close();
+        }
+      });
       // }
       return Promise.reject(new Error(error.response.data?.message));
     } else if (!error?.response?.status) {

+ 2 - 2
src/views/productionPlan/components/checkProductionPreparations.vue

@@ -185,13 +185,13 @@
             v-if="row.preType == 4 && row.fileParam.length == 0"
             style="color: red"
           >
-            缺料
+            不齐套
           </span>
           <span
             v-else-if="row.preType == 5 && row.ncCodeList.length == 0"
             style="color: red"
           >
-            缺料
+            不齐套
           </span>
           <span v-else style="color: green">齐套</span>
         </template>

+ 3 - 1
src/views/productionPlan/index.vue

@@ -387,7 +387,9 @@
           <el-link
             type="primary"
             :underline="false"
-            v-if="row.approvalStatus != 1"
+            v-if="
+              row.approvalStatus != 1 && (row.status == 3 || row.status == 2)
+            "
             @click="productionPreparations(row)"
           >
             生产准备

+ 4 - 1
src/views/workOrder/components/chooseStation.vue

@@ -206,10 +206,13 @@
       },
 
       datasource({ page, limit }) {
+        const notInIdsStr = this.allSelection.map((item) => item.id).join(',');
+
         return getFactoryworkstation({
           pageNum: page,
           size: limit,
-          workCenterId: this.workCenterId
+          workCenterId: this.workCenterId,
+          notInIdsStr
         });
       },
 

+ 1 - 0
src/views/workOrder/components/releaseDialog.vue

@@ -35,6 +35,7 @@
                 value-format="yyyy-MM-dd HH:mm:ss"
                 v-if="item.type == 'date'"
                 placeholder=" "
+                :disabled="true"
               ></el-date-picker>
               <el-input :value="fieldValue(item.prop)" disabled v-else />
             </el-form-item>

+ 19 - 15
src/views/workOrder/index.vue

@@ -3,6 +3,21 @@
     <el-card v-loading="loading" shadow="never">
       <order-search ref="searchRef" @search="reload"></order-search>
 
+      <div class="btn_box">
+        <el-button
+          class="ele-btn-icon"
+          icon="el-icon-truck"
+          size="small"
+          type="primary"
+          v-if="
+            $hasPermission('aps:batchReleaseWorkOrder:release') && !planDotLine
+          "
+          @click="batchDispatch"
+          >批量派单
+          <!--  -->
+        </el-button>
+      </div>
+
       <el-tabs v-model="tabValue" type="card" @tab-click="handleTabClick">
         <el-tab-pane label="全部订单" name="1"></el-tab-pane>
         <el-tab-pane label="暂停/终止订单" name="2"></el-tab-pane>
@@ -56,21 +71,7 @@
         <!-- :key="activeName" -->
         <!-- :selection.sync="selection" -->
         <!-- @update:selection="handleSelectionChange" -->
-        <template v-slot:toolbar>
-          <el-button
-            class="ele-btn-icon"
-            icon="el-icon-truck"
-            size="small"
-            type="primary"
-            v-if="
-              $hasPermission('aps:batchReleaseWorkOrder:release') &&
-              !planDotLine
-            "
-            @click="batchDispatch"
-            >批量派单
-            <!--  -->
-          </el-button>
-        </template>
+        <template v-slot:toolbar> </template>
         <template v-slot:selection="{ row }">
           <el-checkbox
             :disabled="!dispatchPermission(row)"
@@ -1078,4 +1079,7 @@
   // ::v-deep .el-table__row {
   //   height: 51px !important;
   // }
+  .btn_box {
+    margin-bottom: 6px;
+  }
 </style>

+ 30 - 3
src/views/workOrder/mixins/release.js

@@ -1171,6 +1171,9 @@ export default {
       if (!row.startTime) {
         return;
       }
+      if (!this.checkPlanTimeRange(row, 'startTime', '计划开始时间')) {
+        return;
+      }
       this.selectedListData(row, item);
       // 这一道工序的开始时间 不能小于前一道工序的结束时间
       const startTime = new Date(row.startTime); // 开始时间
@@ -1251,6 +1254,9 @@ export default {
       if (!row.endTime) {
         return;
       }
+      if (!this.checkPlanTimeRange(row, 'endTime', '计划完成时间')) {
+        return;
+      }
       this.selectedListData(row, item);
       const endTime = new Date(row.endTime); // 结束时间
       // 当前工序的结束时间 不能大于后一道工序的开始时间
@@ -1295,15 +1301,36 @@ export default {
       }
       this.checkEndTimeValid(row, item);
     },
+    // 校验时间是否在生产计划范围内,不符合则提示并清空当前字段
+    checkPlanTimeRange(row, field, label) {
+      const currentTime = row[field];
+      if (!currentTime) return true;
+      const { planStartTime, planCompleteTime } = this.current || {};
+      const chooseTime = new Date(currentTime);
+      if (planStartTime && chooseTime < new Date(planStartTime)) {
+        this.$message.closeAll();
+        this.$message.info(`${label}不能小于计划开始时间${planStartTime}`);
+        row[field] = '';
+        return false;
+      }
+      if (planCompleteTime && chooseTime > new Date(planCompleteTime)) {
+        this.$message.closeAll();
+        this.$message.info(`${label}不能大于计划结束时间${planCompleteTime}`);
+        row[field] = '';
+        return false;
+      }
+      return true;
+    },
     // 时间校验
     checkEndTimeValid(row) {
       const { startTime: start, endTime: end } = row;
-      // if (!start || !end) return; // 开始/结束时间未填,跳过
+      if (!start || !end) return;
       const startTime = new Date(start); // 开始时间
       const endTime = new Date(end); // 结束时间
       if (endTime < startTime) {
-        row.endTime = new Date(startTime); // 修正为开始时间
-        this.$message.info('结束时间不能早于开始时间,已自动设为开始时间');
+        row.endTime = '';
+        this.$message.closeAll();
+        this.$message.info('计划完成时间不能小于计划开始时间');
       }
     }
   }