zck пре 1 недеља
родитељ
комит
da07192c86
2 измењених фајлова са 104 додато и 60 уклоњено
  1. 9 0
      src/api/mes/job.js
  2. 95 60
      src/view/yunyin/shengchanguanli/gongdanziliao.vue

+ 9 - 0
src/api/mes/job.js

@@ -1526,6 +1526,15 @@ export const workorderprocessCopy = (params) => {
   })
 }
 
+//复制工单工艺
+export const copyProcessToCurrentWorkOrder = (data) => {
+  return service({
+    url: '/mes_server/work_order_process/copyProcessToCurrentWorkOrder',
+    method: 'post',
+    data
+  })
+}
+
 //工单工艺导入
 export const importProcess = (data) => {
   return service({

+ 95 - 60
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -19,7 +19,7 @@
 				<el-button type="danger" icon="edit"   @click="del_ddzlClick" 	v-if="table_del=== true" :disabled="table_Selection === ''"  class="bt" title="选中复选框进行删除订单数据">删除订单资料</el-button>
 				<el-button type="danger" icon="edit"   @click="delgd_delclick"  	v-if="delall=== true" :disabled="ysSelection === ''"  class="bt" title="选中复选框进行删除颜色数据">删除颜色资料</el-button>
 				<!-- <el-button type="danger" icon="edit"   @click="delgy_delclick"  	v-if="delall=== true" :disabled="gySelection === ''"  class="bt" title="选中复选框进行删除工艺数据">删除工艺资料</el-button> -->
-				<el-button type="primary" icon="edit"   @click="copyProductData"  :disabled="!_Gd_gdbh"  class="bt" title="复制产品资料">复制产品资料</el-button>
+				<el-button type="primary" icon="edit"   @click="copyProductData"  :disabled="!_Gd_gdbh"  class="bt" title="复制订单工艺">复制订单工艺</el-button>
 				<el-button type="primary" icon="upload" @click="openImportProcessDialog" :disabled="!_Gd_gdbh" class="bt" title="导入工艺资料">导入工艺资料</el-button>
 				<el-button type="primary" icon="search" :loading="processProductionChecking" @click="openProcessProductionDialog" :disabled="!_Gd_gdbh" class="bt" title="工序产量核查">工序产量核查</el-button>
 
@@ -403,26 +403,30 @@
 		           </div>
 		           <div style="display: flex; align-items: center; white-space: nowrap;">
 		             <span style="width: 60px; text-align: right; margin-right: 8px;">接单日期:</span>
-		             <el-input v-model="gyDetailFormData.接单日期" disabled style="width: 160px;" />
+		             <el-input v-model="gyDetailFormData.接单日期" disabled style="width: 120px;" />
 		           </div>
 		         </el-row>
 		         <el-row :gutter="20" style="width: max-content; display: flex; align-items: center; margin-top: 10px;">
 		           <div style="display: flex; align-items: center; white-space: nowrap;">
 		             <span style="width: 80px; text-align: right; margin-right: 8px;">落货日期:</span>
-		             <el-input v-model="gyDetailFormData.落货日期" disabled style="width: 160px;" />
+		             <el-input v-model="gyDetailFormData.落货日期" disabled style="width: 120px;" />
 		           </div>
 		           <div style="display: flex; align-items: center; white-space: nowrap;">
-		             <span style="width: 80px; text-align: right; margin-right: 8px;">审核日期:</span>
-		             <el-input v-model="gyDetailFormData.审核日期" disabled style="width: 160px;" />
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">制单日期:</span>
+		             <el-input v-model="gyDetailFormData.制单日期" disabled style="width: 160px;" />
 		           </div>
 		           <div style="display: flex; align-items: center; white-space: nowrap;">
-		             <span style="width: 60px; text-align: right; margin-right: 8px;">审核人:</span>
-		             <el-input v-model="gyDetailFormData.审核" disabled style="width: 100px;" />
-		           </div>
-		           <div style="display: flex; align-items: center; white-space: nowrap;">
-		             <span style="width: 80px; text-align: right; margin-right: 8px;">订单数量:</span>
-		             <el-input v-model="gyDetailFormData.订单数量" disabled style="width: 100px;" />
-		           </div>
+             <span style="width: 60px; text-align: right; margin-right: 8px;">制单人:</span>
+             <el-input v-model="gyDetailFormData.制单人" disabled style="width: 100px;" />
+           </div>
+           <div style="display: flex; align-items: center; white-space: nowrap;">
+             <span style="width: 90px; text-align: right; margin-right: 8px;">工单完工日期:</span>
+             <el-input v-model="gyDetailFormData.工单完工日期" disabled style="width: 120px;" />
+           </div>
+           <div style="display: flex; align-items: center; white-space: nowrap;">
+             <span style="width: 80px; text-align: right; margin-right: 8px;">订单数量:</span>
+             <el-input v-model="gyDetailFormData.订单数量" disabled style="width: 80px;" />
+           </div>
 		           <div style="display: flex; align-items: center; white-space: nowrap;">
 		             <span
 		               style="width: 100px; text-align: right; margin-right: 8px; cursor: pointer;"
@@ -430,17 +434,21 @@
 		             >计划制造工分:</span>
 		             <el-input
 		               v-model="gyDetailFormData.计划制造工分"
-		               style="width: 120px;"
+		               style="width: 100px;"
 		               :readonly="!gyDetailPlanManufactureEditing"
 		               @click="startGyDetailPlanManufactureEdit"
 		             />
 		             <template v-if="gyDetailPlanManufactureEditing">
-		               <el-button style="margin-left: 10px;" @click="cancelGyDetailPlanManufactureEdit">取消</el-button>
-		               <el-button type="primary" style="margin-left: 8px;" :loading="gyDetailPlanManufactureSaving" @click="confirmGyDetailPlanManufactureEdit">确认修改</el-button>
-		             </template>
-		           </div>
-		         </el-row>
-		       </div>
+                       <el-button style="margin-left: 10px;" @click="cancelGyDetailPlanManufactureEdit">取消</el-button>
+                       <el-button type="primary" style="margin-left: 8px;" :loading="gyDetailPlanManufactureSaving" @click="confirmGyDetailPlanManufactureEdit">确认修改</el-button>
+                     </template>
+                   </div>
+                   <div style="display: flex; align-items: center; white-space: nowrap;">
+                     <span style="width: 60px; text-align: right; margin-right: 8px;">备注:</span>
+                     <el-input v-model="gyDetailFormData.备注" disabled style="width: 300px;" />
+                   </div>
+                 </el-row>
+               </div>
 		       
 		       <!-- 工艺列表表格(虚拟滚动 + 底部横向滚动条) -->
 		       <div ref="gyDetailTableWrapRef" class="gy-detail-table-wrap">
@@ -2211,17 +2219,21 @@
 				</template>
 			  </el-dialog>
 			  
-			  <!-- 复制产品资料弹窗 -->
-			  <el-dialog v-model="copyProductDialogVisible" title="复制产品资料">
-				<div style=" padding: 0px; align-items: center;">
-				  <el-form-item label="订单编号" prop="processName" class="mab">
-					<el-input v-model="copyProductFormData['gdbh']" disabled style="width: 23%;" />
+			  <!-- 复制工艺资料弹窗 -->
+			  <el-dialog v-model="copyProductDialogVisible" title="复制工艺资料">
+				<div style=" padding: 0px; align-items: center; display: flex; flex-wrap: wrap;">
+				  <el-form-item label="当前订单" prop="processName" class="mab">
+					<el-input v-model="copyProductFormData['gdbh']" disabled style="width: 150px;" />
+				  </el-form-item>
+				  <el-form-item label="生产款号" prop="生产款号" class="mab">
+					<el-input v-model="copyProductFormData['生产款号']" disabled style="width: 200px;" />
 				  </el-form-item>
-				  <el-form-item label="款式" prop="processName" class="mab">
-					<el-input v-model="copyProductFormData['ks']" disabled style="width: 23%;" />
+				  <el-form-item label="搜索订单" prop="processName" class="mab" style="width: 50%;">
+					<el-input v-model="copyProductSearchText" placeholder="请输入订单编号或生产款号搜索" style="width: 70%;" @keydown.enter.prevent="copyProductSearch" />
+					<el-button type="primary" @click="copyProductSearch" style="margin-left: 10px;">搜索</el-button>
 				  </el-form-item>
-				  <el-form-item label="产品列表" prop="processName" class="mab" >
-					<span style="color:red">请选择要复制的产品资料</span>
+				  <el-form-item prop="processName" class="mab" style="width: 100%;">
+					<span style="color:red">请选择要复制工艺的源订单</span>
 				  </el-form-item>
 				</div>
 				<div slot="footer" class="dialog-footer" style="text-align: right;margin-left: 25%">
@@ -2237,15 +2249,18 @@
 						@row-click="copyProductTableRowClick"
 						highlight-current-row="true"
 						style="width: 100%;height: 30vh;" border tooltip-effect="dark"
-						:data="copyProductTableData" row-key="产品编号">
-					<el-table-column align="left" label="产品编号" width="100">
-					  <template v-slot="{ row }"><span>{{ row.产品编号 }}</span></template>
+						:data="copyProductTableData" row-key="订单编号">
+					<el-table-column align="left" label="订单编号" width="120">
+					  <template v-slot="{ row }"><span>{{ row.订单编号 }}</span></template>
 					</el-table-column>
-					<el-table-column align="left" label="产品类型" width="100">
-					  <template v-slot="{ row }"><span>{{ row.产品类型 }}</span></template>
+					<el-table-column align="left" label="生产款号" width="200">
+					  <template v-slot="{ row }"><span>{{ row.生产款号 }}</span></template>
 					</el-table-column>
-					<el-table-column align="left" label="产品名称">
-					  <template v-slot="{ row }"><span>{{ row.产品名称 }}</span></template>
+					<el-table-column align="left" label="客户编号" width="100">
+					  <template v-slot="{ row }"><span>{{ row.客户编号 }}</span></template>
+					</el-table-column>
+					<el-table-column align="left" label="款式" width="150">
+					  <template v-slot="{ row }"><span>{{ row.款式 }}</span></template>
 					</el-table-column>
 				  </el-table>
 			  </el-dialog>
@@ -2460,7 +2475,7 @@
   printDetailAdd,PrintDetailDel,orderDataDel,getWorkOrder,
   getSuborder,PrintDataEdit,WorkOrderEdit,gdAnnexAdd,upload,OrderAttachments,
   getPonumber,FabricEdit,orderBomList,FabricDetail,fabricList,Bomdel,delfujian,Read_File,Read_Add,PartList,GetProcessList,
-  AddPart,UpdatePartInfo,DeletePart,AddProcess,UpdateProcess,DeleteProcess,getproducttype,workorderprocessCopy,sortProcess,getProductStyleList,
+  AddPart,UpdatePartInfo,DeletePart,AddProcess,UpdateProcess,DeleteProcess,getproducttype,workorderprocessCopy,sortProcess,getProductStyleList,copyProcessToCurrentWorkOrder,
   importProcess,getWorkOrderProcess,updateWorkOrderPlanManufacture,checkProcessReport,confirmProcessSplit} from '@/api/mes/job'
   import {ParList,ProcessList} from '@/api/yunyin/product'
   import PrintPage from './components/print.vue'
@@ -3795,6 +3810,7 @@ const copyProductFormData = ref({
 const copyProductTableData = ref([])
 const copyProductSelectedRow = ref(null)
 const copyProductTableRef = ref(null)
+const copyProductSearchText = ref('')
 
 // 排序相关常量
 const PROCESS_ADD_STAGE_ORDER = ['裁剪', '车缝', '手工', '大烫', '总检']
@@ -4718,62 +4734,75 @@ const sortTableData = ref([])
 	}
   }
 
-  // 复制产品资料
-  const copyProductData = async () => {
-	if(!_Gd_gdbh.value || !_Gd_ks.value){ 
+  // 复制产品资料 - 打开弹窗
+  const copyProductData = () => {
+	if(!_Gd_gdbh.value){ 
 	  ElMessage.warning('请先选择具体的工单')
 	  return
 	}
 	
+	copyProductTableData.value = []
+	copyProductFormData.value.gdbh = _Gd_gdbh.value
+	copyProductFormData.value.ks = ''
+	copyProductSelectedRow.value = null
+	copyProductSearchText.value = ''
+	copyProductDialogVisible.value = true
+  }
+
+  // 复制产品资料搜索
+  const copyProductSearch = async () => {
+	if(!copyProductSearchText.value.trim()){
+	  ElMessage.warning('请输入搜索内容')
+	  return
+	}
+	
 	try {
-	  // 调用getproducttype接口,传入款式参数
-	  const res = await getproducttype({ product: _Gd_ks.value })
-	  if (res?.code === 0 && Array.isArray(res.data)) {
-		copyProductTableData.value = res.data
-		copyProductFormData.value.gdbh = _Gd_gdbh.value
-		copyProductFormData.value.ks = _Gd_ks.value
+	  const res = await WorkOrderList({ search: copyProductSearchText.value, page: 1, limit: 100 })
+	  if (res?.code === 0 && res.data && Array.isArray(res.data.data)) {
+		copyProductTableData.value = res.data.data
 		copyProductSelectedRow.value = null
-		copyProductDialogVisible.value = true
 	  } else {
-		ElMessage.error('获取产品列表失败')
+		copyProductTableData.value = []
+		ElMessage.info('未找到匹配的工单')
 	  }
 	} catch (e) {
-	  console.error('获取产品列表失败', e)
-	  ElMessage.error('获取产品列表失败')
+	  console.error('搜索工单失败', e)
+	  ElMessage.error('搜索工单失败')
 	}
   }
 
   // 复制产品资料表格行点击
   const copyProductTableRowClick = (row) => {
 	copyProductSelectedRow.value = row
+	copyProductFormData.value['生产款号'] = row.生产款号 || ''
   }
 
   // 复制产品资料确认
   const copyProductHandleConfirm = async () => {
 	if(!copyProductSelectedRow.value) {
-	  ElMessage.warning('请选择要复制的产品资料')
+	  ElMessage.warning('请选择要复制的工单')
 	  return
 	}
 	
 	try {
-	  // 调用workorderprocessCopy接口
-	  const res = await workorderprocessCopy({
-		workorder: _Gd_gdbh.value,
-		product_code: copyProductSelectedRow.value.产品编号,
+	  // 调用copyProcessToCurrentWorkOrder接口
+	  const res = await copyProcessToCurrentWorkOrder({
+		target_workorder: copyProductSelectedRow.value.订单编号,
+		current_workorder: _Gd_gdbh.value,
 		sys_id: userStore.userInfo.nickName
 	  })
 	  
 	  if (res?.code === 0) {
-		ElMessage.success('复制产品资料成功')
+		ElMessage.success('复制工艺资料成功')
 		copyProductDialogVisible.value = false
 		// 刷新数据
 		await loadPartAndProcessData()
 	  } else {
-		ElMessage.error('复制产品资料失败')
+		ElMessage.error('复制工艺资料失败')
 	  }
 	} catch (e) {
-	  console.error('复制产品资料失败', e)
-	  ElMessage.error('复制产品资料失败')
+	  console.error('复制工艺资料失败', e)
+	  ElMessage.error('复制工艺资料失败')
 	}
   }
 
@@ -4967,6 +4996,8 @@ const sortTableData = ref([])
     审核: '',
     订单数量: '',
     计划制造工分: '',
+    工单完工日期: '',
+    备注: '',
     Sys_id: '',
     Sys_rq: '',
     img: '',
@@ -5022,11 +5053,15 @@ const sortTableData = ref([])
         gyDetailFormData.生产款号 = data['生产款号'] || ''
         gyDetailFormData.款式 = data['款式'] || ''
         gyDetailFormData.落货日期 = data['落货日期'] || ''
-        gyDetailFormData.审核日期 = data['审核日期'] || ''
+        gyDetailFormData.制单日期 = data['Sys_rq'] || ''
         gyDetailFormData.接单日期 = data['接单日期'] || ''
-        gyDetailFormData.审核 = data['审核'] || ''
+        // 制单人:如果有/则显示/后的值,否则全部显示
+        const sysId = data['Sys_id'] || ''
+        gyDetailFormData.制单人 = sysId.includes('/') ? sysId.split('/')[1] : sysId
         gyDetailFormData.订单数量 = data['订单数量'] || ''
         gyDetailFormData.计划制造工分 = data['计划制造工分'] || ''
+        gyDetailFormData.工单完工日期 = data['工单完工日期'] || ''
+        gyDetailFormData.备注 = data['remark'] || ''
         gyDetailFormData.Sys_id = data['Sys_id'] || data['sys_id'] || row?.['Sys_id'] || row?.['sys_id'] || ''
         gyDetailFormData.Sys_rq = data['Sys_rq'] || data['sys_rq'] || ''
         gyDetailFormData.Uniqid = data['Uniqid'] || ''