From 426226f665ee5a3af873c8e839d8f9e4a6036752 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 12 九月 2025 13:48:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/mes/MesProductionWorkOrderListView.vue                        |   63 +++++++++++----
 src/views/mes/modules/MesProductionWorkOrderCheckBeforeExecuteModal.vue |  121 ++++++++++++++++++++++++++++++
 2 files changed, 167 insertions(+), 17 deletions(-)

diff --git a/src/views/mes/MesProductionWorkOrderListView.vue b/src/views/mes/MesProductionWorkOrderListView.vue
index eeabf79..5e10f4e 100644
--- a/src/views/mes/MesProductionWorkOrderListView.vue
+++ b/src/views/mes/MesProductionWorkOrderListView.vue
@@ -103,19 +103,7 @@
               <a-divider type="vertical" />
               <a @click="handleRePublish(record)">閲嶅彂甯�</a>
             </span>
-            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '0'">
-              <a-divider type="vertical" />
-              <a @click="handleCompletenessCheck(record)">榻愬鎬ф鏌�</a>
-            </span>
-            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '0'">
-              <a-divider type="vertical" />
-              <a @click="handleEquipmentInspection(record)">璁惧鐐规</a>
-            </span>
-            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '0'">
-              <a-divider type="vertical" />
-              <a @click="handleProcessCheck(record)">宸ヨ壓鐐规</a>
-            </span>
-            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '1'">
+            <span v-if="record.workOrderStatus === 'PUBLISHED'">
               <a-divider type="vertical" />
               <a-popconfirm title="纭畾寮�濮嬫墽琛屽悧?" @confirm="() => handleExecute(record.id)">
                   <a>鎵ц</a>
@@ -131,6 +119,15 @@
             <a-menu slot="overlay">
               <a-menu-item>
                 <a @click="handleDetail(record)">璇︽儏</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '0'">
+                <a @click="handleCompletenessCheck(record)">榻愬鎬ф鏌�</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.workOrderStatus === 'PUBLISHED' && record.equipmentInspectionFlag === '0'">
+                <a @click="handleEquipmentInspection(record)">璁惧鐐规</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.workOrderStatus === 'PUBLISHED' && record.processInspectionFlag === '0'">
+                <a @click="handleProcessCheck(record)">宸ヨ壓鐐规</a>
               </a-menu-item>
               <a-menu-item v-if="record.workOrderStatus === 'NEW'">
                 <a @click="handleEdit(record)">缂栬緫</a>
@@ -197,6 +194,7 @@
     <MesProductionWorkOrderCompletenessCheckModal ref="MesProductionWorkOrderCompletenessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderCompletenessCheckModal>
     <MesProductionWorkOrderEquipmentInspectionModal ref="MesProductionWorkOrderEquipmentInspectionModal" @ok="modalFormOk"></MesProductionWorkOrderEquipmentInspectionModal>
     <MesProductionWorkOrderProcessCheckModal ref="MesProductionWorkOrderProcessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderProcessCheckModal>
+    <MesProductionWorkOrderCheckBeforeExecuteModal ref="MesProductionWorkOrderCheckBeforeExecuteModal" @ok="modalFormOk"></MesProductionWorkOrderCheckBeforeExecuteModal>
   </a-card>
 </template>
 
@@ -216,6 +214,7 @@
 import MesProductionWorkOrderCompletenessCheckModal from '@views/mes/modules/MesProductionWorkOrderCompletenessCheckModal.vue'
 import MesProductionWorkOrderEquipmentInspectionModal from '@views/mes/modules/MesProductionWorkOrderEquipmentInspectionModal.vue'
 import MesProductionWorkOrderProcessCheckModal from '@views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue'
+import MesProductionWorkOrderCheckBeforeExecuteModal from '@views/mes/modules/MesProductionWorkOrderCheckBeforeExecuteModal.vue'
 import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue'
 import moment from 'moment/moment'
 
@@ -232,7 +231,8 @@
     MesProductionWorkOrderReportModal,
     MesProductionWorkOrderCompletenessCheckModal,
     MesProductionWorkOrderEquipmentInspectionModal,
-    MesProductionWorkOrderProcessCheckModal
+    MesProductionWorkOrderProcessCheckModal,
+    MesProductionWorkOrderCheckBeforeExecuteModal
   },
   data() {
     return {
@@ -530,6 +530,7 @@
         queryUnloadingByLoadingId:'/mes/mesMaterialUnloading/queryUnloadingByLoadingId',
         publish: '/mes/mesProductionWorkOrder/publish',
         execute: '/mes/mesProductionWorkOrder/execute',
+        checkBeforeExecute: '/mes/mesProductionWorkOrder/checkBeforeExecute'
       },
       dictOptions: {},
       superFieldList: [],
@@ -633,10 +634,38 @@
       })
     },
     handleExecute(id) {
-      getAction(this.url.execute, { id: id }).then((res) => {
+      getAction(this.url.checkBeforeExecute, { id: id }).then((res) => {
         if (res.success) {
-          this.$message.success(res.message)
-          this.loadData()
+          const completenessCheckFlag = res.result.completenessCheckFlag
+          const equipmentInspectFlag = res.result.equipmentInspectFlag
+          const processCheckFlag = res.result.processCheckFlag
+          if (completenessCheckFlag && equipmentInspectFlag && processCheckFlag) {
+            getAction(this.url.execute, { id: id }).then((res) => {
+              if (res.success) {
+                this.$message.success(res.message)
+                this.loadData()
+              } else {
+                this.$message.warning(res.message)
+              }
+            })
+          } else {
+            const unCompletenessCheckList = res.result.unCompletenessCheckList
+            const unInspectEquipmentList = res.result.unInspectEquipmentList
+            const unCheckEquipmentList = res.result.unCheckEquipmentList
+            if (!completenessCheckFlag && !unCompletenessCheckList) {
+              this.$message.warning('璇峰厛杩涜榻愬鎬ф鏌ワ紒')
+              return
+            }
+            if (!equipmentInspectFlag && !unInspectEquipmentList) {
+              this.$message.warning('璇峰厛杩涜璁惧鐐规锛�')
+              return
+            }
+            if (!processCheckFlag && !unCheckEquipmentList) {
+              this.$message.warning('璇峰厛杩涜宸ヨ壓鐐规锛�')
+              return
+            }
+            this.$refs.MesProductionWorkOrderCheckBeforeExecuteModal.open(id, res.result)
+          }
         } else {
           this.$message.warning(res.message)
         }
diff --git a/src/views/mes/modules/MesProductionWorkOrderCheckBeforeExecuteModal.vue b/src/views/mes/modules/MesProductionWorkOrderCheckBeforeExecuteModal.vue
new file mode 100644
index 0000000..f54e306
--- /dev/null
+++ b/src/views/mes/modules/MesProductionWorkOrderCheckBeforeExecuteModal.vue
@@ -0,0 +1,121 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel"
+    cancelText="鍏抽棴">
+
+    <a-divider class="divider-title">榻愬鎬ф鏌�</a-divider>
+    <a-list>
+      <a-list-item v-for="(item, index) in unCompletenessCheckList" :key="index">
+        <span>鐗╂枡 <strong>{{ item }}</strong> 榻愬鎬ф鏌ヤ笉閫氳繃</span>
+      </a-list-item>
+    </a-list>
+    <a-divider class="divider-title">璁惧鐐规</a-divider>
+    <a-list>
+      <a-list-item v-for="(item, index) in unInspectEquipmentList" :key="index">
+        <span>璁惧 <strong>{{ item }}</strong> 鏈繘琛岃澶囩偣妫�</span>
+      </a-list-item>
+    </a-list>
+    <a-divider class="divider-title">宸ヨ壓鐐规</a-divider>
+    <a-list>
+      <a-list-item v-for="(item, index) in unCheckEquipmentList" :key="index">
+        <span>璁惧 <strong>{{ item }}</strong> 鏈繘琛屽伐鑹虹偣妫�</span>
+      </a-list-item>
+    </a-list>
+  </j-modal>
+</template>
+
+<script>
+import { postAction, getAction } from '@api/manage'
+
+export default {
+  name: 'MesProductionWorkOrderCheckBeforeExecuteModal',
+  data () {
+    return {
+      title: '宸ュ崟鎵ц鍓嶆鏌�',
+      width: 800,
+      visible: false,
+      loading: false,
+      disableSubmit: false,
+      model: {},
+      validatorRules: {
+      },
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 6 },
+      },
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 18 },
+      },
+      url: {
+        execute: '/mes/mesProductionWorkOrder/execute'
+      },
+      orderId: null,
+      unCompletenessCheckList: [],
+      unInspectEquipmentList: [],
+      unCheckEquipmentList: []
+    }
+  },
+  computed: {
+    formDisabled(){
+      return this.disabled
+    },
+  },
+  methods: {
+    open (id, record) {
+      this.orderId = id
+      this.unCompletenessCheckList = record.unCompletenessCheckList
+      this.unInspectEquipmentList = record.unInspectEquipmentList
+      this.unCheckEquipmentList = record.unCheckEquipmentList
+      this.visible = true
+    },
+    close () {
+      this.$emit('close');
+      this.visible = false;
+    },
+    handleOk () {
+      this.$confirm({
+        title: '纭鎿嶄綔',
+        content: '浠ヤ笂妫�鏌ャ�佺偣妫�椤规湭瀹屾垚锛岀‘璁ょ户缁墽琛屽伐鍗曪紵',
+        onOk: () => {
+          getAction(this.url.execute, {id: this.orderId}).then(res => {
+            if (res.success) {
+              this.$message.success(res.message)
+              this.submitCallback()
+            } else {
+              this.$message.warning(res.message)
+            }
+          })
+        },
+        onCancel: () => {
+        }
+      })
+    },
+    submitCallback(){
+      this.$emit('ok');
+      this.unCompletenessCheckList = []
+      this.unInspectEquipmentList = []
+      this.unCheckEquipmentList = []
+      this.visible = false;
+    },
+    handleCancel () {
+      this.close()
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+.divider-title {
+  font-style: italic;
+  color: blue;
+}
+
+</style>

--
Gitblit v1.9.3