guoyujia před 11 měsíci
rodič
revize
fc8fadb519

+ 46 - 0
src/api/business/dayworkItemHistory.js

@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+const baseUrl = import.meta.env.VITE_APP_PRODUCTION_API
+
+// 查询报工信息历史记录列表
+export function listHistory(query) {
+  return request({
+    url:baseUrl+ '/business/dayworkItemHistory/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询报工信息历史记录详细
+export function getHistory(id) {
+  return request({
+    url: '/business/history/' + id,
+    method: 'get'
+  })
+}
+
+// 新增报工信息历史记录
+export function addHistory(data) {
+  return request({
+    url: '/business/history',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改报工信息历史记录
+export function updateHistory(data) {
+  return request({
+    url: '/business/history',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除报工信息历史记录
+export function delHistory(id) {
+  return request({
+    url: '/business/history/' + id,
+    method: 'delete'
+  })
+}

+ 85 - 0
src/views/business/dayworkUpdate/DialogDayworkItemHistory.vue

@@ -0,0 +1,85 @@
+<template>
+	<el-dialog title="历史记录" v-model="visible" width="1400px" height="700px" @close="close" append-to-body draggable  style="font-size: 14px;">
+		<el-table ref="dialogTable" :data="recordsList" size="small" v-loading="loading" border height="500px" header-row-class-name="list-header-row" row-class-name="list-row" >
+			<el-table-column label="批次号" align="center" prop="lotCode" />
+			<el-table-column label="计划单号" align="center" prop="productionPlanNo" width="100" />
+			<el-table-column label="产品描述" align="center" prop="productDescription" />
+			<el-table-column label="工序" align="center" prop="processAlias" width="100" />
+			<el-table-column label="投产量" align="center" prop="prodNum" width="80" />
+			<el-table-column label="合格数" align="center" prop="qualifiedNum" width="80" />
+			<el-table-column label="废品量" align="center" prop="rejectNum" width="80" />
+			<el-table-column label="操作者" align="center" prop="nickName" width="80"/>
+			<el-table-column label="开始时间" align="center" prop="startTime" >
+				<template #default="scope">
+                <span>{{
+        proxy.moment(scope.row.startTime).format("YYYY-MM-DD HH:mm:ss")
+      }}</span>
+              </template>
+			</el-table-column>
+			<el-table-column label="结束时间" align="center" prop="endTime" >
+				<template #default="scope">
+                <span>{{
+        proxy.moment(scope.row.endTime).format("YYYY-MM-DD HH:mm:ss")
+      }}</span>
+              </template>
+			</el-table-column>
+			<el-table-column label="修改人" align="center" prop="creatorName" width="80" />
+			<el-table-column label="修改时间" align="center" prop="createTime" >
+				<template #default="scope">
+                <span>{{
+        proxy.moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
+      }}</span>
+              </template>
+			</el-table-column>
+		</el-table>
+	</el-dialog>
+</template>
+<script setup>
+import { listHistory } from "@/api/business/dayworkItemHistory";
+const { proxy } = getCurrentInstance();
+
+/** 历史记录变量 */
+const recordsList = ref([])
+const visible = ref(false)
+const loading = ref(false)
+const data = reactive({
+	queryParams: {
+		dayworkId:null
+	}
+})
+const { queryParams } = toRefs(data)
+/**
+ * 对话框打开 事件
+ */
+function open(data) {
+	visible.value = true
+	queryParams.value.dayworkId = data
+	getList()
+}
+
+/**
+ * 对话框关闭 事件
+ */
+function close() {
+	visible.value = false
+}
+
+/**
+ * 加载数据
+ */
+function getList() {
+	loading.value = true
+	listHistory(queryParams.value).then((res) => {
+		recordsList.value = res.rows
+		loading.value = false
+	})
+}
+
+defineExpose({
+	open
+})
+</script>
+<style scoped>
+.el-table--small {
+    font-size: 14px;
+}</style>

+ 15 - 13
src/views/business/dayworkUpdate/form.vue

@@ -7,12 +7,10 @@
             <Document />
           </el-icon>
           报工详情</span>
-        <el-button v-if="editStatus" type="primary" icon="Check" style="margin-right: 10px" :disabled="form.status > 3"
+        <el-button type="primary" icon="Check" style="margin-right: 10px" 
           @click="handleSave">保 存
         </el-button>
-        <el-button v-if="editStatus" icon="Close" @click="handleCancel">取 消
-        </el-button>
-        <el-button v-else type="primary" icon="Check" @click="handleCancel">确定
+        <el-button  icon="Close" @click="handleCancel">取 消
         </el-button>
       </div>
       <!-- 主表 -->
@@ -20,7 +18,7 @@
         <el-row :gutter="20">
           <el-col :span="7">
             <el-form-item label="开始时间:" prop="startTime">
-              <el-date-picker v-model="form.startTime" :disabled="true" type="datetime"
+              <el-date-picker v-model="form.startTime" :disabled="!editStatus" type="datetime"
                 value-format="YYYY-MM-DD HH:mm:ss " :clearable="false" :editable="false" placeholder="请选择开始时间"
                 @change="handleTotalTime" />
             </el-form-item>
@@ -44,7 +42,7 @@
         <el-row :gutter="20">
           <el-col :span="7">
             <el-form-item label="结束时间:" prop="endTime">
-              <el-date-picker v-model="form.endTime" :disabled="true" type="datetime"
+              <el-date-picker v-model="form.endTime" :disabled="!editStatus" type="datetime"
                 value-format="YYYY-MM-DD HH:mm:ss " :editable="false" :clearable="false" placeholder="请选择结束时间"
                 @change="handleTotalTime" />
             </el-form-item>
@@ -70,7 +68,7 @@
           </el-col>
           <el-col :span="9">
             <el-form-item label="合格数:" prop="qualifiedNum" label-width="90px" style="padding-right: 0px">
-              <el-input-number v-model.trim="form.qualifiedNum" :disabled="form.status < 2" :precision="0"
+              <el-input-number v-model.trim="form.qualifiedNum" :disabled="!editStatus" :precision="0"
                 controls-position="right" style="width: 220px" />
             </el-form-item>
           </el-col>
@@ -87,7 +85,7 @@
       <el-form class="list-search-container" :inline="true">
         <el-form-item class="section-title" label="废品信息" />
         <el-form-item>
-          <el-button type="primary" icon="Plus" :disabled="form.status < 2" @click="handleAddReject">新增
+          <el-button type="primary" icon="Plus" :disabled="!editStatus" @click="handleAddReject">新增
           </el-button>
         </el-form-item>
       </el-form>
@@ -102,13 +100,13 @@
           </el-table-column>
           <el-table-column label="废品数量" width="160px" prop="rejectNum" align="center">
             <template #default="scope">
-              <el-input-number v-model.trim="scope.row.rejectNum" placeholder="废品数量" :disabled="form.status < 2"
+              <el-input-number v-model.trim="scope.row.rejectNum" placeholder="废品数量" :disabled="!editStatus"
                 :precision="0" :min="0" controls-position="right" />
             </template>
           </el-table-column>
           <el-table-column prop="reason" label="废品原因" align="center" width="300px">
             <template #default="scope">
-              <el-select v-model="scope.row.reason" :disabled="form.status < 2" placeholder="请选择废品原因">
+              <el-select v-model="scope.row.reason" :disabled="!editStatus" placeholder="请选择废品原因">
                 <el-option v-for="cause in waste_causes" :key="cause.value" :label="cause.label"
                   :value="cause.value"></el-option>
               </el-select>
@@ -116,7 +114,7 @@
           </el-table-column>
           <el-table-column fixed="right" label="操作" align="center">
             <template #default="scope">
-              <el-button link type="danger" icon="Delete" :disabled="form.status < 2"
+              <el-button link type="danger" icon="Delete" :disabled="!editStatus"
                 @click="handleDeleteReject(scope.row)">删除
               </el-button>
             </template>
@@ -150,7 +148,7 @@ const lotId = ref(null);
 const equipmentList = ref([]);
 const visible = ref(false);
 const isFirst = ref(true); //是否为首序
-const editStatus = ref(true);
+const editStatus = ref(false);
 const currentDept = ref(false);
 const rejectAmount = ref(0);
 const dynamicOptions = ref([]);
@@ -261,7 +259,6 @@ const open = (row) => {
     lotId.value = row.lotId;
     //页面操作是编辑还是删除
     console.log("row", row);
-    editStatus.value = row.editStatus;
     detailInfo.value = proxy.deepClone(row);
     console.log(detailInfo.value);
     //是否是当前工序
@@ -271,7 +268,12 @@ const open = (row) => {
     form.value.endTime = row.endTime;
     workingHoursTime.value = row.workingHours;
     form.value.nickName = row.nickName;
+    form.value.productDescription = row.productDescription;
+    form.value.lotCode = row.lotCode;
+    form.value.technologyVersion = row.technologyVersion
+    form.value.productionPlanNo = row.productionPlanNo;
     form.value.status = row.status;
+    editStatus.value = row.status <2 ? false:true
     form.value.processId = row.processId;
     form.value.productionPlanDetailId = row.productionPlanDetailId;
     if (form.value.status == 0 || form.value.status == 1) {

+ 28 - 14
src/views/business/dayworkUpdate/index.vue

@@ -15,7 +15,7 @@
             clearable style="width: 130px" />
         </el-form-item>
         <el-form-item style="margin-left: 0">
-          <el-button type="info" icon="Search" :disabled="deptList.length === 0" @click="handleQuery">搜索
+          <el-button type="info" icon="Search" @click="handleQuery">搜索
           </el-button>
         </el-form-item>
       </el-form>
@@ -57,6 +57,10 @@
           <el-select-v2 v-model="queryItemParams.processId" clearable :options="processList" placeholder="请选择工序"
             style="width: 100%" @change="handleProcessChange" />
         </el-form-item>
+        <el-form-item style="margin-left: 0">
+          <el-button type="info" @click="handleOpenHistory">历史记录
+          </el-button>
+        </el-form-item>
       </el-form>
 
       <div class="el-table-container">
@@ -92,6 +96,8 @@
     <daywork-item-form ref="dayworkItemRef" @handleSaveSuccess="handleGetDayworkItems" />
     <!-- 分选报工信息表单 -->
     <sort-item-form ref="sortItemRef" @handleSaveSuccess="handleGetDayworkItems" />
+        <!-- 报工历史修改表单 -->
+     <dialog-daywork-item-history ref="dialogDayworkItemHistoryRef" />
   </div>
 </template>
 
@@ -107,6 +113,7 @@ import { getDept } from "@/api/business/planDetailSubDetail.js";
 import router from "@/router";
 import dayworkItemForm from "./form";
 import sortItemForm from "./sortForm"
+import DialogDayworkItemHistory from "./DialogDayworkItemHistory.vue";
 
 const { proxy } = getCurrentInstance();
 
@@ -153,17 +160,18 @@ const queryItemParams = ref({
 /***********************  工段相关事件  ****************************/
 function getList() {
   loading.value = true;
-  getDept().then((response) => {
-    deptList.value = response.data;
-    loading.value = false;
-    // if (deptList.value.length > 0) {
-    //   queryDayworkParams.value.deptId = deptList.value[0].value;
-    //   getDayworks();
-    // } else {
-    //   dayworkList.value = [];
-    // }
-    getDayworks()
-  });
+  // getDept().then((response) => {
+  //   deptList.value = response.data;
+  //   loading.value = false;
+  //   // if (deptList.value.length > 0) {
+  //   //   queryDayworkParams.value.deptId = deptList.value[0].value;
+  //   //   getDayworks();
+  //   // } else {
+  //   //   dayworkList.value = [];
+  //   // }
+    
+  // });
+  getDayworks()
 }
 
 //切换工段
@@ -203,6 +211,10 @@ function getDayworks() {
 function handleColumnClick(row) {
   router.push({ path: "/reviseBath/lotFormParticulars/" + row.lotCode });
 }
+// 打开历史修改弹窗
+function handleOpenHistory() {
+  proxy.$refs.dialogDayworkItemHistoryRef.open(currentDaywork.value.id);
+}
 
 /** 生产计划明细 current-change 事件 */
 function handleDayworkCurrentChange(row) {
@@ -305,12 +317,16 @@ function handleUpdateDayworkItem(row) {
   //该daywork合格数总数不能超过投产数的103%
   row.technologicalProcessId = queryItemParams.value.technologicalProcessId;
   row.deptId = queryDayworkParams.value.deptId;
+  row.productionPlanNo = currentDaywork.value.productionPlanNo;
+ row.productDescription = currentDaywork.value.productDescription;
   row.productionPlanDetailId = currentDaywork.value.productionPlanDetailId;
   row.dayworkId = currentDaywork.value.id;
   row.lotId = currentDaywork.value.lotId;
   row.isAmend = currentDaywork.value.isAmend;
   row.isWasteRecycling = currentDaywork.value.isWasteRecycling;
   row.maxQuailifiedNum = maxQuailifiedNum;
+  row.technologyVersion = currentDaywork.value.technologyVersion
+  row.lotCode = currentDaywork.value.lotCode;
   row.totalQuailifiedNum = totalQuailifiedNum;
   //判断是否是当前工段
   if (row.deptId == currentDaywork.value.deptId) {
@@ -318,8 +334,6 @@ function handleUpdateDayworkItem(row) {
   } else {
     row.currentDept = false;
   }
-  //修改向form表单传一个状态值
-  row.editStatus = true;
   //如果为true,则同工序已有工序已完成
   row.processFinish = processFinish;
   if (row.isSort == 0) {

+ 22 - 20
src/views/business/dayworkUpdate/sortForm.vue

@@ -7,12 +7,10 @@
             <Document />
           </el-icon>
           报工详情</span>
-        <el-button v-if="editStatus" type="primary" icon="Check" style="margin-right: 10px"
-          :disabled="form.status > 3 || !currentDept" @click="handleSave">保 存
+        <el-button  type="primary" icon="Check" style="margin-right: 10px"
+           @click="handleSave">保 存
         </el-button>
-        <el-button v-if="editStatus" icon="Close" @click="handleCancel">取 消
-        </el-button>
-        <el-button v-else type="primary" icon="Check" @click="handleCancel">确定
+        <el-button  icon="Close" @click="handleCancel">取 消
         </el-button>
       </div>
       <!-- 主表 -->
@@ -20,7 +18,7 @@
         <el-row :gutter="20">
           <el-col :span="7">
             <el-form-item label="开始时间:" prop="startTime">
-              <el-date-picker v-model="form.startTime" :disabled="!editStatus || !currentDept" type="datetime"
+              <el-date-picker v-model="form.startTime" :disabled="!editStatus" type="datetime"
                 value-format="YYYY-MM-DD HH:mm:ss " :clearable="false" :editable="false" placeholder="请选择开始时间"
                 @change="handleTotalTime" />
             </el-form-item>
@@ -33,7 +31,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="生产状态:" prop="status" align="center">
-              <el-select v-model="form.status" placeholder="请选择生产状态" :disabled="!editStatus || !currentDept"
+              <el-select v-model="form.status" placeholder="请选择生产状态" :disabled="true"
                 style="width: 220px" @change="handleChangeStatus">
                 <el-option v-for="dict in dynamicOptions" :key="dict.value" :label="dict.label"
                   :value="dict.value"></el-option>
@@ -44,7 +42,7 @@
         <el-row :gutter="20">
           <el-col :span="7">
             <el-form-item label="结束时间:" prop="endTime">
-              <el-date-picker v-model="form.endTime" :disabled="!editStatus || !currentDept" type="datetime"
+              <el-date-picker v-model="form.endTime" :disabled="!editStatus" type="datetime"
                 value-format="YYYY-MM-DD HH:mm:ss " :editable="false" :clearable="false" placeholder="请选择结束时间"
                 @change="handleTotalTime" />
             </el-form-item>
@@ -57,7 +55,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="投产量:" prop="prodNum" label-width="82px">
-              <el-input-number v-model.trim="form.prodNum" :precision="0" :disabled="true" controls-position="right"
+              <el-input-number v-model.trim="form.prodNum" :precision="0" controls-position="right"
                 style="width: 220px" />
             </el-form-item>
           </el-col>
@@ -70,13 +68,13 @@
           </el-col>
           <el-col :span="9">
             <el-form-item label="合格数:" prop="qualifiedNum" label-width="90px" style="padding-right: 0px">
-              <el-input-number v-model.trim="form.qualifiedNum" :disabled="!editStatus || !currentDept" :precision="0"
+              <el-input-number v-model.trim="form.qualifiedNum" :disabled="!editStatus" :precision="0"
                 controls-position="right" style="width: 220px" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="设备:" prop="equipmentDetailId" label-width="82px">
-              <el-select-v2 v-model="form.equipmentDetailId" :disabled="!editStatus || !currentDept"
+              <el-select-v2 v-model="form.equipmentDetailId" :disabled="true"
                 :options="equipmentList" placeholder="请选择设备" style="width: 220px">
               </el-select-v2>
             </el-form-item>
@@ -87,7 +85,7 @@
       <el-form class="list-search-container" :inline="true">
         <el-form-item class="section-title" label="废品信息" />
         <el-form-item>
-          <el-button type="primary" icon="Plus" v-if="editStatus && currentDept" @click="handleAddReject">新增
+          <el-button type="primary" icon="Plus" v-if="!editStatus" @click="handleAddReject">新增
           </el-button>
         </el-form-item>
       </el-form>
@@ -102,7 +100,7 @@
           </el-table-column>
           <el-table-column prop="type" label="分选检查类型" align="center" width="150px">
             <template #default="scope">
-              <el-select v-model="scope.row.type" :disabled="!editStatus || !currentDept" placeholder="请选择分选检查类型"
+              <el-select v-model="scope.row.type" :disabled="!editStatus" placeholder="请选择分选检查类型"
                 @change="(arg) => handleChangeType(scope.row, arg)">
                 <el-option v-for="cause in sort_standard_type" :key="cause.value" :label="cause.label"
                   :value="cause.value"></el-option>
@@ -111,7 +109,7 @@
           </el-table-column>
           <el-table-column prop="sortStandard" label="分选检查标准" align="center" width="300px">
             <template #default="scope">
-              <el-select v-model="scope.row.sortStandard" :disabled="!editStatus || !currentDept"
+              <el-select v-model="scope.row.sortStandard" :disabled="!editStatus"
                 placeholder="请选择分选检查标准">
                 <el-option v-for="cause in scope.row.standardList" :key="cause.value" :label="cause.label"
                   :value="cause.value"></el-option>
@@ -120,20 +118,20 @@
           </el-table-column>
           <el-table-column prop="reason" label="检查结果" align="center">
             <template #default="scope">
-              <el-input v-model.trim="scope.row.reason" placeholder="请输入检查结果" :disabled="!editStatus || !currentDept"
+              <el-input v-model.trim="scope.row.reason" placeholder="请输入检查结果" :disabled="!editStatus"
                 :clearable="true" style="margin-left: 8px;" />
             </template>
           </el-table-column>
           <el-table-column label="废品数量" width="130px" prop="rejectNum" align="center">
             <template #default="scope">
               <el-input-number v-model.trim="scope.row.rejectNum" placeholder="废品数量"
-                :disabled="!editStatus || !currentDept" :precision="0" :min="0" controls-position="right" />
+                :disabled="!editStatus" :precision="0" :min="0" controls-position="right" />
             </template>
           </el-table-column>
 
           <el-table-column fixed="right" label="操作" align="center" width="80px">
             <template #default="scope">
-              <el-button link type="danger" icon="Delete" :disabled="!editStatus || !currentDept"
+              <el-button link type="danger" icon="Delete" :disabled="!editStatus"
                 @click="handleDeleteReject(scope.row)">删除
               </el-button>
             </template>
@@ -166,9 +164,9 @@ const loading = ref(false);
 const processList = ref([]);
 const lotId = ref(null);
 const equipmentList = ref([]);
-const visible = ref(false);
 const isFirst = ref(true); //是否为首序
-const editStatus = ref(true);
+const visible = ref(false);
+const editStatus = ref(false);
 const currentDept = ref(false);
 const rejectAmount = ref(0);
 const dynamicOptions = ref([]);
@@ -281,7 +279,6 @@ const open = (row) => {
     lotId.value = row.lotId;
     //页面操作是编辑还是删除
     console.log("row", row);
-    editStatus.value = row.editStatus;
     detailInfo.value = proxy.deepClone(row);
     console.log(detailInfo.value);
     //是否是当前工序
@@ -292,7 +289,12 @@ const open = (row) => {
     workingHoursTime.value = row.workingHours;
     form.value.nickName = row.nickName;
     form.value.status = row.status;
+    editStatus.value = row.status <2 ? false:true
     form.value.processId = row.processId;
+    form.value.technologyVersion = row.technologyVersion
+    form.value.productionPlanNo = row.productionPlanNo;
+    form.value.productDescription = row.productDescription;
+    form.value.lotCode = row.lotCode;
     form.value.productionPlanDetailId = row.productionPlanDetailId;
     if (form.value.status == 0 || form.value.status == 1) {
       dynamicOptions.value = daywork_status_first.value;