From d0380e7c8fe8755a9c51afa0b02af22557a7ea81 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期一, 21 四月 2025 17:26:41 +0800
Subject: [PATCH] 工序异常分析 && 工单同步日志页面

---
 src/views/mainPlan/abnormalProcessAnalysis/index.vue |    6 
 src/views/mainPlan/workOrderJobLog/index.vue         |  317 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/api/mainPlan/workOrderJobLog.js                  |   28 ++++
 src/views/partPlan/index.vue                         |    3 
 4 files changed, 349 insertions(+), 5 deletions(-)

diff --git a/src/api/mainPlan/workOrderJobLog.js b/src/api/mainPlan/workOrderJobLog.js
new file mode 100644
index 0000000..d3259e2
--- /dev/null
+++ b/src/api/mainPlan/workOrderJobLog.js
@@ -0,0 +1,28 @@
+import request from '@/utils/request'
+
+// 鏌ヨ宸ュ崟鍚屾鏃ュ織鍒楄〃
+export function list(query) {
+  return request({
+    url: '/schedule/apsWorkOrderJobLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ宸ュ崟鍚屾鏃ュ織璇︾粏
+export function get(id) {
+  return request({
+    url: '/schedule/apsWorkOrderJobLog/' + id,
+    method: 'get'
+  })
+}
+
+// 鏍规嵁鏃ュ織閲嶈瘯
+export function sync(data) {
+  return request({
+    url: '/schedule/apsWorkOrderJobLog/sync',
+    method: 'post',
+    data: data
+  })
+}
+
diff --git a/src/views/mainPlan/abnormalProcessAnalysis/index.vue b/src/views/mainPlan/abnormalProcessAnalysis/index.vue
index 2840c78..ce07e44 100644
--- a/src/views/mainPlan/abnormalProcessAnalysis/index.vue
+++ b/src/views/mainPlan/abnormalProcessAnalysis/index.vue
@@ -58,9 +58,9 @@
 const { queryParams, form, rules } = toRefs(data);
 const columns = ref([
   { type: 'seq', title: '搴忓彿', width: 60 },
-  { title: '宸ュ簭鍚嶇О',  field: 'processName',  width: 200},
-  { title: '寮傚父鏉ユ簮',  field: 'source',  width: 200},
-  { title: '寮傚父鎻忚堪',  field: 'summary',  width: 200},
+  { title: '宸ュ簭鍚嶇О',  field: 'processName'},
+  { title: '寮傚父鏉ユ簮',  field: 'source'},
+  { title: '寮傚父鎻忚堪',  field: 'summary'},
   { title: '鍒涘缓鏃堕棿',  field: 'createTime',  width: 200},
 ])
 
diff --git a/src/views/mainPlan/workOrderJobLog/index.vue b/src/views/mainPlan/workOrderJobLog/index.vue
new file mode 100644
index 0000000..4b79b1f
--- /dev/null
+++ b/src/views/mainPlan/workOrderJobLog/index.vue
@@ -0,0 +1,317 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+      <el-row :gutter="20">
+
+        <el-col :span="6">
+          <el-form-item label="涓氬姟绫诲瀷" style="width: 100%;">
+            <el-select v-model="queryParams.bizType" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in bizType"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="6">
+          <el-form-item label="璇锋眰鏃堕棿" style="width: 100%;">
+            <el-date-picker
+                v-model="createTimes"
+                value-format="YYYY-MM-DD"
+                type="daterange"
+                range-separator="-"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+            ></el-date-picker>
+          </el-form-item>
+        </el-col>
+
+<!--        <el-col :span="6">
+          <el-form-item label="璇锋眰鍙傛暟" prop="requestData">
+            <el-input
+                v-model="queryParams.requestData"
+                placeholder="璇疯緭鍏ヨ姹傚弬鏁�"
+                clearable
+                @keyup.enter="handleQuery"
+            />
+          </el-form-item>
+        </el-col>-->
+
+        <el-col :span="6">
+          <el-form-item label="璇锋眰缁撴灉" prop="result">
+            <el-input
+                v-model="queryParams.result"
+                placeholder="璇疯緭鍏ヨ姹傜粨鏋�"
+                clearable
+                @keyup.enter="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="鍝嶅簲鏁版嵁" prop="requestData">
+            <el-input
+                v-model="queryParams.responseData"
+                placeholder="璇疯緭鍏ュ搷搴旀暟鎹�"
+                clearable
+                @keyup.enter="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col
+            :span="24"
+            style="text-align: right;">
+          <el-form-item>
+            <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+            <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+
+
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['apsWorkOrderJobLog:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+            type="success"
+            plain
+            icon="Edit"
+            :disabled="single"
+            @click="handleUpdate"
+            v-hasPermi="['apsWorkOrderJobLog:edit']"
+        >鏌ョ湅</el-button>
+      </el-col>
+
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <HxlhTable
+        style="width: 100%"
+        :columns="columns"
+        :data="LogList"
+        :loading="loading"
+        :height="height" >
+      <template #buttons="{row}">
+        <vxe-button mode="text" @click="handleUpdate(row)" v-hasPermi="['apsWorkOrderJobLog:edit']" >鏌ョ湅</vxe-button>
+      </template>
+    </HxlhTable>
+
+    <!-- 娣诲姞鎴栦慨鏀瑰伐鍗曞悓姝ユ棩蹇楀璇濇 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="ApsWorkOrderJobLogRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="椤电爜" prop="pageNum">
+          <el-input v-model="form.pageNum"  :disabled="true" />
+        </el-form-item>
+        <el-form-item label="璇锋眰鏁伴噺" prop="pageCount">
+          <el-input v-model="form.pageCount"   :disabled="true" />
+        </el-form-item>
+        <el-form-item label="璇锋眰鍙傛暟" prop="requestData">
+          <el-input v-model="form.requestData"   type="textarea" :rows="4" :disabled="true" />
+        </el-form-item>
+        <el-form-item label="淇濆瓨缁撴灉" prop="result">
+          <el-input v-model="form.result"  type="textarea"  :rows="4"     :disabled="true" />
+        </el-form-item>
+        <el-form-item label="鍝嶅簲鏁版嵁" prop="responseData">
+          <el-input v-model="form.responseData" type="textarea" :rows="4"  :disabled="true" />
+        </el-form-item>
+        <el-form-item label="鎻愪氦鏃堕棿" prop="createTime">
+          <el-input v-model="form.createTime"   :disabled="true" />
+        </el-form-item>
+        <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+          <el-input v-model="form.updateTime"    :disabled="true" />
+        </el-form-item>
+        <el-form-item label="鍚屾涓婚敭" v-show="false" prop="orderId">
+          <el-input v-model="form.orderId" placeholder="璇疯緭鍏ュ悓姝ヤ富閿�" />
+        </el-form-item>
+
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">閲嶆柊鍚屾</el-button>
+          <el-button @click="cancel">鍙� 娑�</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="ApsWorkOrderJobLog">
+import { list, get, sync } from "@/api/mainPlan/workOrderJobLog";
+import {ref} from "vue";
+import HxlhTable from "@/components/HxlhTable/index.vue";
+
+const { proxy } = getCurrentInstance();
+const height = ref(document.documentElement.clientHeight - 270 + "px;")
+
+const LogList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+const createTimes=ref([]);
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageCount: null,
+    responseData: null,
+    result: null,
+    orderId: null,
+    requestData: null
+  },
+  rules: {
+  }
+});
+const columns = ref([
+  { type: 'checkbox', width: 60, align:"center"},
+
+  { title: '涓氬姟绫诲瀷', field:'bizType', width: 150 },
+  { title: '椤电爜', field:'pageNum', width: 80 },
+  { title: '璇锋眰鏁伴噺', field:'pageCount', width: 80 },
+  { title: '璇锋眰鍙傛暟', field:'requestData', width: 300 },
+  { title: '璇锋眰鏃堕棿', field:'createTime', width: 150 },
+  { title: '鏇存柊鏃堕棿', field:'updateTime', width: 150 },
+  { title: '璇锋眰缁撴灉', field:'result', width: 200 },
+  { title: '鍝嶅簲鏁版嵁', field:'responseData', width: 200 },
+  { title: '鎿嶄綔', width: 100, fixed:"right", slots: { default: 'buttons' } }
+])
+const bizType = ref([
+  {value:'work_order',label:' work_order'},
+  {value:'work_order_process',label:' work_order_process'}
+
+]);
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 鏌ヨ宸ュ崟鍚屾鏃ュ織鍒楄〃 */
+function getList() {
+  loading.value = true;
+  queryParams.value.params = {};
+  if (null != createTimes && '' !== createTimes) {
+    queryParams.value.params["beginCreateTime"] = createTimes.value[0];
+    queryParams.value.params["endCreateTime"] = createTimes.value[1];
+  }
+  list(queryParams.value).then(response => {
+    LogList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 鍙栨秷鎸夐挳
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 琛ㄥ崟閲嶇疆
+function reset() {
+  form.value = {
+    id: null,
+    pageNum: null,
+    pageCount: null,
+    responseData: null,
+    result: null,
+    orderId: null,
+    requestData: null
+  };
+  proxy.resetForm("ApsWorkOrderJobLogRef");
+}
+
+/** 鎼滅储鎸夐挳鎿嶄綔 */
+function handleQuery() {
+
+
+  getList();
+}
+
+/** 閲嶇疆鎸夐挳鎿嶄綔 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 澶氶�夋閫変腑鏁版嵁
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.id);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 鏂板鎸夐挳鎿嶄綔 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "娣诲姞宸ュ崟鍚屾鏃ュ織";
+}
+
+/** 淇敼鎸夐挳鎿嶄綔 */
+function handleUpdate(row) {
+  reset();
+  const _id = row.id || ids.value
+
+    get(_id).then(response => {
+      form.value = response.data;
+      open.value = true;
+      title.value = "鏌ョ湅宸ュ崟鍚屾鏃ュ織";
+    });
+
+
+}
+
+/** 鎻愪氦鎸夐挳 */
+function submitForm() {
+  proxy.$refs["ApsWorkOrderJobLogRef"].validate(valid => {
+    if (valid) {
+      if (form.value.id != null) {
+        debugger;
+        if(form.value.bizType==="work_order"){
+          sync(form.value).then(response => {
+            proxy.$modal.msgSuccess("鍚屾鎴愬姛");
+            open.value = false;
+            getList();
+          });
+        }else {
+          proxy.$modal.msgSuccess("鏆傛湭瀹炵幇");
+        }
+      }
+    }
+  });
+}
+/** 瀵煎嚭鎸夐挳鎿嶄綔 */
+function handleExport() {
+  proxy.download('log/ApsWorkOrderJobLog/export', {
+    ...queryParams.value
+  }, `ApsWorkOrderJobLog_${new Date().getTime()}.xlsx`)
+}
+
+/** 鍒犻櫎鎸夐挳鎿嶄綔 */
+function handleDelete(row) {
+  const _ids = row.id || ids.value;
+  proxy.$modal.confirm('鏄惁纭鍒犻櫎宸ュ崟鍚屾鏃ュ織缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
+    return delApsWorkOrderJobLog(_ids);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+  }).catch(() => {});
+}
+
+
+getList();
+</script>
diff --git a/src/views/partPlan/index.vue b/src/views/partPlan/index.vue
index dcafbb0..45fc0a9 100644
--- a/src/views/partPlan/index.vue
+++ b/src/views/partPlan/index.vue
@@ -15,8 +15,7 @@
             ></el-date-picker>
           </el-form-item>
         </el-col>
-        <el-col
-          :span="6">
+        <el-col   :span="6">
           <el-form-item label="璁″垝瀹屽伐鏃�" style="width: 100%;">
             <el-date-picker
               v-model="daterangePlanEndDay"

--
Gitblit v1.9.3