Browse Source

first commit

liuhairui 9 months ago
parent
commit
a37a2e6cf8
2 changed files with 369 additions and 13 deletions
  1. 25 0
      src/api/mes/job.js
  2. 344 13
      src/view/yunyin/shengchanguanli/gongdanziliao.vue

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

@@ -647,3 +647,28 @@ export const FieldInspectionRecord = (params) => {
     params
   })
 }
+
+// 订单BOM修改接口
+export const FabricEdit = (params) => {
+  return service({
+    url: '/mes_server/work_order/FabricEdit',
+    method: 'get',
+    params
+  })
+}
+// 订单BOM显示接口
+export const orderBomList = (params) => {
+  return service({
+    url: '/mes_server/work_order/orderBomList',
+    method: 'get',
+    params
+  })
+}
+// 订单BOM出库、退还详情显示
+export const FabricDetail = (params) => {
+  return service({
+    url: '/mes_server/work_order/FabricDetail',
+    method: 'get',
+    params
+  })
+}

+ 344 - 13
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -13,9 +13,10 @@
               <el-button type="primary" icon="edit"   @click="addgd_onclick"   class="bt"   title="新增工单资料">新增订单资料</el-button>
               <el-button type="primary" icon="edit"   @click="addgdyj_onclick"   class="bt" title="新增颜色资料">新增颜色资料</el-button>
               <el-button type="primary" icon="edit"   @click="addgdgy_onclick"   class="bt" title="新增工序资料" >新增工序资料</el-button>
+			  <el-button type="primary" icon="edit"   @click="BOMclick"   class="bt"   title="BOM面料">新增BOM面料</el-button>
               <el-button type="primary" icon="edit"   @click="del_ddzlClick" 	v-if="table_del=== true" :disabled="table_Selection === ''"  class="bt" title="删除订单资料"  >删除订单资料</el-button>
               <el-button type="primary" icon="edit"   @click="delgd_delclick" 	v-if="delall=== true" :disabled="ysSelection === '' && gySelection === ''"  class="bt"   >删除颜色工艺资料</el-button>
-              <el-button type="primary" icon="edit"   @click="CSclick"   class="bt"   title="库存测试">库存测试</el-button>
+              <!-- <el-button type="primary" icon="edit"   @click="CSclick"   class="bt"   title="库存测试">库存测试</el-button> -->
 			</el-form-item>
           </el-form>
         </div> 
@@ -188,13 +189,16 @@
                           @row-dblclick="bombomupdateCompanyFunc"
                           style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="bomtableData" row-key="ID" @selection-change="handleSelectionChange">
 <!--                  <el-table-column type="selection" width="30" />-->
-                  <el-table-column align="left" label="物料编号" prop="物料编号"  width="100"/>
-                  <el-table-column align="left" label="物料名称" prop="物料名称"  width="400"/>
-                  <el-table-column align="left" label="消耗定量" prop="消耗定量"  width="210"/>
-                  <el-table-column align="left" label="计划用量" prop="计划用量"  width="100" />
-                  <el-table-column align="left" label="建档用户" prop="建档用户"  width="120"/>
-                  <el-table-column align="left" label="建档时间" prop="建档时间"  width="160"/>
-                  <el-table-column align="left" label="更新时间" prop="更新时间"  width="160"/>
+                  <!-- <el-table-column align="left" label="物料编号" prop="物料编号"  width="100"/> -->
+                  <el-table-column align="left" label="物料名称" prop="物料名称"  width="160"/>
+                  <el-table-column align="left" label="投料单位" prop="投料单位"  width="90"/>
+                  <el-table-column align="left" label="计划用料" prop="计划用料"  width="100" />
+                  <el-table-column align="left" label="定额用料" prop="定额用料"  width="100"/>
+                  <el-table-column align="left" label="裁床实际用料" prop="裁床实际用料"  width="140"/>
+                  <el-table-column align="left" label="裁床领用面料" prop="裁床领用面料"  width="140"/>
+				  <el-table-column align="left" label="裁床退回仓库面料" prop="裁床退回仓库面料"  width="140"/>
+				  <el-table-column align="left" label="备注" prop="备注"  width="160"/>
+				  <el-table-column align="left" label="UNIQID" prop="UNIQID"  width="80"/>
                 </el-table>
               </el-tab-pane>
 
@@ -511,6 +515,173 @@
 		  </template>
 		</el-dialog>
 		
+		
+		<!-- 新增BOM资料弹窗 -->
+		<el-dialog v-model="res_bomdialogFormVisible" :before-close="res_bomcloseDialog" title="新增BOM资料" width="70%" top="3%" destroy-on-close>
+		  <div class="dialog-footer">
+		    <el-button @click="res_bomcloseDialog">取消</el-button>
+		    <el-button type="primary" @click="res_bomenterDialog">确定</el-button>
+		  </div>
+		  <br>
+			<div>
+				
+				<el-table ref="paichengRef"
+				          :show-overflow-tooltip="true"
+				          :row-style="{ height: '0px' }"
+				          :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+				          :header-cell-style="{ padding: '0px' }"
+				          style="width: 100%;height: 74vh" border tooltip-effect="dark"
+				          :data="resbomtableData" row-key="ID"
+				          :cell-class-name="scfjfpxsCellClass">
+				  <template v-for="(item, idx) in resbom_tableColumns">
+				    <el-table-column #default="{ row, column, $index }" align="left" :label="item.label" :width="item.width" >
+				      <div v-if="['物料名称', '计划用料', '定额用料', '裁床实际用料', '裁床领用面料', '裁床退回仓库面料', '备注'].includes(item.prop)">
+				        <el-input v-model="row[item.prop]" :clearable="false"
+				                  :id="`input${idx}${$index}`" @keyup="zjfpxs_handleKeyDown($event, idx, $index, item.prop)"/>
+				      </div>
+				      <div v-else>{{ row[item.prop] }}</div>
+				    </el-table-column>
+				  </template>
+				</el-table>
+				
+				<!-- <el-table ref="table" highlight-current-row show-overflow-tooltip border
+				  :data="bomtableData"
+				  :row-style="{ height: '25px' }"
+				  :cell-style="{ padding: '0px' }"
+				  :header-row-style="{ height: '20px' }"
+				  :header-cell-style="{ padding: '0px' }"
+				  style="width: 100%;height: 60vh;"
+				  @selection-change="handleSelectionChange">
+				  <el-table-column type="selection" width="55"/>
+				  
+				 <el-table-column label="物料名称" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['物料名称']" />
+					</template>
+				  </el-table-column>
+				  
+				  <el-table-column label="投料单位" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['投料单位']" />
+					</template>
+				   </el-table-column>
+
+				 <el-table-column label="计划用料" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['计划用料']" />
+					</template>
+				  </el-table-column>
+				  
+				  <el-table-column label="定额用料" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['定额用料']" />
+					</template>
+				   </el-table-column>
+
+				 <el-table-column label="裁床实际用料" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['裁床实际用料']" />
+					</template>
+				  </el-table-column>
+				  
+				  <el-table-column label="裁床领用面料" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['裁床领用面料']" />
+					</template>
+				   </el-table-column>
+
+				 <el-table-column label="裁床退回仓库面料" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['裁床退回仓库面料']" />
+					</template>
+				  </el-table-column>
+				  
+				  <el-table-column label="备注" width="150">
+					<template #default="{ row }">
+					  <el-input @keyup.enter="handleUpdate" v-model="row['备注']" />
+					</template>
+				   </el-table-column>
+				  
+				  <el-table-column align="left" label="UNIQID" prop="UNIQID"  width="100"/>
+				</el-table> -->
+			</div>
+		</el-dialog>
+		
+		
+		<!-- 修改BOM资料弹窗 -->
+		<el-dialog v-model="edit_bomdialogFormVisible" :before-close="edit_bomcloseDialog" title="修改BOM资料" width="70%" top="3%" destroy-on-close>
+		  
+		  <div style="display: flex; justify-content: space-between;">
+		    <div style="flex: 2;">
+		      <el-form :model="edit_bomscgdformData">
+		        <div style="display: flex;">
+		          <div style="flex: 1; margin-right: 20px;">
+		            <el-form-item label="BOM_工单编号" label-width="135px">
+		              <el-input v-model="edit_bomscgdformData.BOM_工单编号" disabled />
+		            </el-form-item>
+		            <el-form-item label="BOM_物料名称" label-width="135px">
+		              <el-input
+		                v-model="edit_bomscgdformData['BOM_物料名称']" id="BOM_物料名称"
+		                @keydown="add_bomlent($event, '粘衬', '生产款号', '订单数量')" 
+		              />
+		            </el-form-item>
+		            <el-form-item label="BOM_投料单位" label-width="135px">
+		              <el-input
+		                v-model="edit_bomscgdformData['BOM_投料单位']" id="BOM_投料单位"
+		                @keydown="add_bomlent($event, '订单数量', '款式', '落货日期')"
+		              />
+		            </el-form-item>
+					<el-form-item label="BOM_计划用量" label-width="135px">
+					  <el-input v-model="edit_bomscgdformData.BOM_计划用量" id="BOM_计划用量"
+					   @keydown="add_bomlent($event, '生产款号', '订单数量', '款式')" 
+					  />
+					</el-form-item>
+		          </div>
+				  
+				  
+		          <div style="flex: 1;">
+		            <el-form-item label="BOM_标准用量" label-width="135px">
+		              <el-input v-model="edit_bomscgdformData.BOM_标准用量" id="BOM_标准用量" />
+		            </el-form-item>
+		            <el-form-item label="BOM_实际用量" label-width="135px">
+		              <el-input v-model="edit_bomscgdformData.BOM_实际用量" id="BOM_实际用量"
+		               @keydown="add_bomlent($event, '生产款号', '订单数量', '款式')" 
+		              />
+		            </el-form-item>
+					<el-form-item label="Bom_领用数量" label-width="135px">
+					  <el-input v-model="edit_bomscgdformData.Bom_领用数量" id="Bom_领用数量"
+					   @keydown="add_bomlent($event, '生产款号', '订单数量', '款式')" 
+					  />
+					</el-form-item>
+					<el-form-item label="BOM_退还数量" label-width="135px">
+					  <el-input v-model="edit_bomscgdformData.BOM_退还数量" id="BOM_退还数量"
+					   @keydown="add_bomlent($event, '生产款号', '订单数量', '款式')" 
+					  />
+					</el-form-item>
+		          </div>
+		        </div>
+		        <!-- 备注 -->
+		        <el-form-item label="备注" label-width="135px">
+		          <el-input
+		            type="textarea"
+		            v-model="edit_bomscgdformData['BOM_desc']" id="BOM_desc"
+		            @keydown="add_gdzlent($event, '箱唛要求', '备注', '船样描述')"
+		            rows="2"
+		            resize="none"
+		          />
+		        </el-form-item>
+		      </el-form>
+		    </div>
+		  </div>
+		  <!-- 底部操作按钮 -->
+		  <template #footer>
+		    <div class="dialog-footer" style="text-align: right;">
+		      <el-button @click="edit_bomcloseDialog">取消</el-button>
+		      <el-button type="primary" @click="edit_bomenterDialog">确定</el-button>
+		    </div>
+		  </template>
+		</el-dialog>
+		
             
 		<el-dialog
 		  v-model="ddzl_dialogFormVisible"
@@ -1015,7 +1186,7 @@ import * as XLSX from 'xlsx';
 import jsPDF from 'jspdf';
 import {Datalist,WorkOrderList,WorkOrderAdd,PrintListData,
 printDetailAdd,PrintDetailDel,orderDataDel,getWorkOrder,
-getSuborder,PrintDataEdit,WorkOrderEdit,gdAnnexAdd,upload,OrderAttachments,getPonumber} from '@/api/mes/job'
+getSuborder,PrintDataEdit,WorkOrderEdit,gdAnnexAdd,upload,OrderAttachments,getPonumber,FabricEdit,orderBomList,FabricDetail} from '@/api/mes/job'
 import PrintPage from './components/print.vue'
 import luckyexcelPage from './components/luckyexcel.vue'
 import AddGongYi from './components/addGongYi.vue'  
@@ -1327,6 +1498,8 @@ const edit_zdsformdata = reactive({
 });
 const Uniqid = ref('')//颜色资料Uniqid
 
+
+
 //颜色资料表格双击
 const ysupdateCompanyFunc = async (row) => {
 	dialogFormVisible.value = true;
@@ -1976,6 +2149,161 @@ const cp_gdprintonClick = () => {
   }
 }
 
+// =========== BOM资料 ===========
+const res_bomdialogFormVisible = ref(false)
+const resbomtableData = ref([]);
+const resbom_tableColumns = ref(
+    [
+      { label: '物料名称', prop: '物料名称', width: '170' },
+      { label: '投料单位', prop: '投料单位', width: '100' },
+      { label: '计划用料', prop: '计划用料', width: '110' },
+	  { label: '定额用料', prop: '定额用料', width: '100' },
+	  { label: '裁床实际用料', prop: '裁床实际用料', width: '130' },
+	  { label: '裁床领用面料', prop: '裁床领用面料', width: '130' },
+	  { label: '裁床退回仓库面料', prop: '裁床退回仓库面料', width: '170' },
+	  { label: '备注', prop: '备注', width: '130' },
+	  { label: 'UNIQID', prop: 'UNIQID', width: '80' },
+    ]
+)
+//修改BOM资料按钮
+const BOMclick = () => {
+	if(_Gd_gdbh.value === '' || _Gd_gdbh.value === null){
+		ElMessage({type: 'warning',message: '请选择订单后,再操作此功能'})
+	}else{
+		res_bomdialogFormVisible.value = true
+		// res_bomscgdformData.BOM_工单编号 = _Gd_gdbh.value
+		_TestCoefficient();
+	}
+}
+
+//bom数据获取
+const _TestCoefficient = async ()=>{
+  try {
+    const orderBomListdata = await orderBomList({order:_Gd_gdbh.value});
+	console.log(orderBomListdata)
+	resbomtableData.value = orderBomListdata.data;
+    const formattedData = orderBomListdata.data.map(item=>{
+      item.物料名称 = item.物料名称;
+      item.计划用量 = item.计划用量;
+	  item.定额用料 = item.定额用料;
+	  item.裁床实际用料 = item.裁床实际用料;
+	  item.裁床领用面料 = item.裁床领用面料;
+	  item.裁床退回仓库面料 = item.裁床退回仓库面料;
+	  item.备注 = item.备注;
+	  // item.UNIQID = item.UNIQID;
+      return item
+    });
+  } catch (error) {
+    console.error(error);
+  }
+}
+//质检废品系数颜色
+const scfjfpxsCellClass = ({row, column, rowIndex, columnIndex}) =>{
+  if (column.label === '备注' || column.label === '物料名称' || column.label === '计划用量' || column.label === '定额用料' || column.label === '裁床实际用料' || column.label === '裁床领用面料'  || column.label === '裁床退回仓库面料') {
+    return 'background-plan-usage-low';
+  }
+}
+
+// 确定
+const res_bomenterDialog = async() => {
+	const formattedData = 
+	 [
+		 {
+		   BOM_工单编号: add_bomscgdformData['BOM_工单编号'],
+		   BOM_物料名称: add_bomscgdformData['BOM_物料名称'],
+		   BOM_投料单位: add_bomscgdformData['BOM_投料单位'],
+		   BOM_计划用量: add_bomscgdformData['BOM_计划用量'],
+		   BOM_标准用量: add_bomscgdformData['BOM_标准用量'],
+		   BOM_实际用量: add_bomscgdformData['BOM_实际用量'],
+		   Bom_领用数量: add_bomscgdformData['Bom_领用数量'],
+		   BOM_退还数量: add_bomscgdformData['BOM_退还数量'],
+		   BOM_desc: add_bomscgdformData['BOM_desc'],
+		   UNIQID: add_bomscgdformData['UNIQID']
+		 },
+	 ];
+	
+	console.log(formattedData);
+
+	
+	const add_FabricEditdata = await FabricEdit(formattedData);
+	if (add_FabricEditdata.code === 0) {
+		res_bomdialogFormVisible.value = false;
+		ElMessage({type: 'success',message: '修改成功'})
+		const orderBomListdata = await orderBomList({order:_Gd_gdbh.value});
+		bomtableData.splice(0,orderBomListdata.data.length,...orderBomListdata.data);//bom表格数据
+	} else {
+		ElMessage({ type: 'error',message: '修改失败'})
+	}
+	
+}
+// 取消
+const res_bomcloseDialog = () => {
+	res_bomdialogFormVisible.value = false;
+}
+
+
+//表格双击
+const bombomupdateCompanyFunc = async (row) => {
+	// console.log(row.UNIQID)
+	edit_bomdialogFormVisible.value = true;
+	console.log(row)
+	edit_bomscgdformData['BOM_工单编号'] = _Gd_gdbh.value
+	edit_bomscgdformData['BOM_物料名称'] = row['物料名称']
+	edit_bomscgdformData['BOM_投料单位'] = row['投料单位']
+	edit_bomscgdformData['BOM_计划用量'] = row['计划用料']
+	edit_bomscgdformData['BOM_标准用量'] = row['定额用料']
+	edit_bomscgdformData['BOM_实际用量'] = row['裁床实际用料']
+	edit_bomscgdformData['Bom_领用数量'] = row['裁床领用面料']
+	edit_bomscgdformData['BOM_退还数量'] = row['裁床退回仓库面料']
+	edit_bomscgdformData['BOM_desc'] = row['备注']
+	edit_bomscgdformData['UNIQID'] = row['UNIQID']
+}
+
+// =========== BOM资料修改 ===========
+const edit_bomdialogFormVisible = ref(false)
+const edit_bomscgdformData = reactive({
+  BOM_工单编号: '',
+  BOM_物料名称: '',
+  BOM_投料单位: '',
+  BOM_计划用量: '',
+  BOM_标准用量: '',
+  BOM_实际用量: '',
+  Bom_领用数量: '',
+  BOM_退还数量: '',
+  BOM_desc: "",
+  UNIQID: '',
+});
+// 确定
+const edit_bomenterDialog = async() => {
+	const formattedData = {
+		BOM_物料名称: edit_bomscgdformData['BOM_物料名称'],
+		BOM_投料单位: edit_bomscgdformData['BOM_投料单位'],
+		BOM_计划用量: edit_bomscgdformData['BOM_计划用量'],
+		BOM_标准用量: edit_bomscgdformData['BOM_标准用量'],
+		BOM_实际用量: add_bomscgdformData['BOM_实际用量'],
+		Bom_领用数量: edit_bomscgdformData['Bom_领用数量'],
+		BOM_退还数量: edit_bomscgdformData['BOM_退还数量'],
+		BOM_desc: edit_bomscgdformData['BOM_desc'],
+		UNIQID: edit_bomscgdformData['UNIQID']
+	};
+	
+	console.log(formattedData);
+	
+	const edit_FabricEditdata = await FabricEdit(formattedData);
+	if (edit_FabricEditdata.code === 0) {
+		edit_bomdialogFormVisible.value = false;
+		ElMessage({type: 'success',message: '修改成功'})
+		const orderBomListdata = await orderBomList({order:_Gd_gdbh.value});
+		bomtableData.splice(0,orderBomListdata.data.length,...orderBomListdata.data);//bom表格数据
+	} else {
+		ElMessage({ type: 'error',message: '修改失败'})
+	}
+	
+}
+// 取消
+const edit_bomcloseDialog = () => {
+	edit_bomdialogFormVisible.value = false;
+}
 
 //点击表格行获取下方表格数据列表
 // =========== 颜色资料、工艺资料、技术资料附件 ===========
@@ -2005,8 +2333,8 @@ const tableRowClick = async (row) => {
 	gytableData.splice(0, gytableData.length);
 	ddtableData.splice(0, ddtableData.length);
 	jstableData.splice(0, jstableData.length);
-  bomtableData.splice(0, bomtableData.length);
-  mltableData.splice(0, mltableData.length);
+	bomtableData.splice(0, bomtableData.length);
+	mltableData.splice(0, mltableData.length);
     _Gd_gdbh.value = row.订单编号
     _ddhval.value = row.订单编号
     try {
@@ -2014,7 +2342,10 @@ const tableRowClick = async (row) => {
         const PrintListDatas = await PrintListData({order:_Gd_gdbh.value})
         const jsOrderAttachments = await OrderAttachments({order:_Gd_gdbh.value,desc:'技术附件'})
         const ddOrderAttachments = await OrderAttachments({order:_Gd_gdbh.value,desc:'订单资料附件'})
-
+		
+		const orderBomListdata = await orderBomList({order:_Gd_gdbh.value});
+		bomtableData.value = orderBomListdata.data
+		bomtableData.splice(0,orderBomListdata.data.length,...orderBomListdata.data);//bom表格数据
 		//颜色资料
         if(PrintListDatas.data.列表.length === 0 ){
           ystableData.length = 0
@@ -2394,7 +2725,7 @@ const jsfjenterDialog = () => {
 :deep(.el-table__body .warning-row) {
   background: #FFFF80 !important;
 }
-/*修正工单核算参数背景*/
+/*bom参数背景*/
 :deep(.el-table__body .background-plan-usage-low div div div) {
   background: #80FA80 !important;
 }