Procházet zdrojové kódy

机台报工班组优化

liuhairui před 1 rokem
rodič
revize
118e57c528

+ 8 - 1
src/api/jixiaoguanli/baogong.js

@@ -57,4 +57,11 @@ export const  ComplaintRecord= (params) => {
     method: 'get',
 	params
   })
-}
+}
+export const MachineTeamAdd = (data) => {
+  return service({
+    url:'/mes_server/facility/MachineTeamAdd',
+    method: 'post',
+    data
+  })
+}

+ 282 - 80
src/view/performance/chejianbaogong.vue

@@ -309,22 +309,23 @@
                         :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
                         :header-cell-style="{ padding: '0px' }"
                         :show-overflow-tooltip="true"
-                        highlight-current-row="true" @row-click="BZhandle"
+                        :cell-class-name="bzryplanUsageCellClass"
+                        @row-click="BZhandle"
                         style="width: 100%;height: 250px;margin-top: 0px;" border tooltip-effect="dark"
 						:data="bzData" row-key="ID" @selection-change="BZSelectionChange">
               <!-- <el-table-column type="selection" width="55" /> -->
-              <el-table-column align="left" label="机台" prop="JTMC" width="70"/>
+              <el-table-column align="left" label="机台" prop="JTMC" width="80"/>
               <el-table-column align="left" label="班组" prop="班组号" width="60"/>
-              <el-table-column align="left" label="组员1" prop="0" width="195"/>
-              <el-table-column align="left" label="组员2" prop="1" width="195"/>
-			  <el-table-column align="left" label="组员3" prop="2" width="195"/>
+              <el-table-column align="left" label="组员1" prop="0" width="200"/>
+              <el-table-column align="left" label="组员2" prop="1" width="200"/>
+			        <el-table-column align="left" label="组员3" prop="2" width="200"/>
               <el-table-column align="left" label="组员4" prop="3" width="195"/>
               <el-table-column align="left" label="组员5" prop="4" width="70"/>
               <el-table-column align="left" label="组员6" prop="5" width="70"/>
               <el-table-column align="left" label="组员7" prop="6" width="70"/>
               <el-table-column align="left" label="组员8" prop="7" width="70"/>
               <el-table-column align="left" label="组员9" prop="8" width="70"/>
-              <el-table-column align="left" label="特殊组员" prop="9" width="85"/>
+              <el-table-column align="left" label="特殊组员" prop="9" width="200"/>
               <el-table-column align="left" label="UNIQID" prop="ID" width="75"/>
             </el-table>
 
@@ -402,28 +403,28 @@
 
 
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code1"  placeholder="" />
+				  <el-input v-model="formDatas.code1" @keyup.enter.native="getbzyg($event, '1')" placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code2"  placeholder="" />
+				  <el-input v-model="formDatas.code2" @keyup.enter.native="getbzyg($event, '2')"  placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code3"  placeholder="" />
+				  <el-input v-model="formDatas.code3" @keyup.enter.native="getbzyg($event, '3')" placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code4"  placeholder="" />
+				  <el-input v-model="formDatas.code4" @keyup.enter.native="getbzyg($event, '4')" placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code5"  placeholder="" />
+				  <el-input v-model="formDatas.code5" @keyup.enter.native="getbzyg($event, '5')" placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code6"  placeholder="" />
+				  <el-input v-model="formDatas.code6" @keyup.enter.native="getbzyg($event, '6')" placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code7"  placeholder="" />
+				  <el-input v-model="formDatas.code7" @keyup.enter.native="getbzyg($event, '7')" placeholder="" />
 				</el-col>
 				<el-col :span="3">
-				  <el-input v-model="formDatas.code8"  placeholder="" />
+				  <el-input v-model="formDatas.code8" @keyup.enter.native="getbzyg($event, '8')" placeholder="" />
 				</el-col>
 				<!-- <el-col :span="2">
 				  <el-input v-model="formData.name"  placeholder="瞿春生" />
@@ -523,10 +524,10 @@
 							  <el-input v-model="formDatas.percentage6"  placeholder="" />
 							</el-col>
 							<el-col :span="3">
-							  <el-input v-model="formDatas.percentage5"  placeholder="" />
+							  <el-input v-model="formDatas.percentage7"  placeholder="" />
 							</el-col>
 							<el-col :span="3">
-							  <el-input v-model="formDatas.percentage6"  placeholder="" />
+							  <el-input v-model="formDatas.percentage8"  placeholder="" />
 							</el-col>
 			  			<!-- 	<el-col :span="2">
 			  				  <el-input v-model="formData.qczl_NumDesc"  placeholder="是" />
@@ -550,9 +551,9 @@
 			</div>
 			<div style="height: 17vh; width: 15vh;margin-top: 5vh;">
 				<el-button type="text"></el-button>
-				<!-- <el-button style="margin-bottom: 5px;" @click="" >新增</el-button> -->
-				<el-button  style="margin-bottom: 1vh;margin: 0 auto" @click="selectBz" >更新当前班组</el-button>
-				<!-- <el-button @click="delBz" >删除当前班组</el-button> -->
+				 <el-button style="margin-bottom: 5px;" @click="addBz" >新增</el-button>
+				 <el-button  style="margin-bottom: 1vh;" @click="selectBz" >更新当前班组</el-button>
+<!--				 <el-button style="margin-bottom: 1vh;" @click="delBz" >删除当前班组</el-button>-->
 			</div>
 			</div>
           </el-dialog>
@@ -1870,7 +1871,8 @@ import {
   setMachineTeam,
   ModelChangeRecord,
   ComplaintRecord,
-  RemodelDetail
+  RemodelDetail,
+  MachineTeamAdd
 } from '@/api/jixiaoguanli/baogong'
 
 import {
@@ -2069,7 +2071,7 @@ const handleNodeClick = (nodeData,node) => {
 
 // });
 const classbz=ref([])
-const FacilityProduction = async () => {
+const FacilityProduction = async (addr) => {
   const response = await facilityProduction({machine:JTMC});
   if (response.code === 0) {
 	    formData.value.工单编号 = response.data.工单编号;
@@ -2081,7 +2083,8 @@ const FacilityProduction = async () => {
 		formData.value.machine=JTMC
 		formData.value.状态=response.data.状态
     formData.value.定额代号=response.data.定额代号
-		BZMC.value=response.data.班组编号
+    formData.value.addr=addr
+    BZMC.value=response.data.班组编号
 	       // 填充sczl_bh和sczl_name字段
 		   let sczl_bhkey=''
 		   let sczl_namekey=''
@@ -2218,6 +2221,17 @@ const getygsubmit = (event, inputName) => {
 		   GetYg(variableValue,inputName)
 }
 
+const getbzyg = async (value,key) => {
+  let bzyg=''
+  bzyg=`code${key}`
+  let bzxm=''
+  bzxm=`name${key}`
+  const response = await getYg({sczl_bh:formDatas.value[bzyg]});
+  if (response.code === 0) {
+    formDatas.value[bzxm]=response.data.ygxm
+  }
+}
+
 const getxunchayg = async (value) => {
   const response = await getYg({sczl_bh:xunchaData.value.sczl_bh});
   if (response.code === 0) {
@@ -2728,21 +2742,26 @@ const GetMachineMac = async (addr) => {
   // const response = await getMachineMac({ addr: '68-ED-A4-26-5E-4E' });
   // const response = await getMachineMac({ addr: '68-ED-A4-26-60-D1' });
   if (response.code === 0) {
-    // 将接口返回的数据添加到树型结构中
-    let newNode = {
-      label: response.data["使用部门"],
-      level: 1,
-      children: [
-        {
-          label: response.data["设备编号"],
-          level: 2,
-        }
-      ]
-    };
-    treeData.value.push(newNode);
-	CJMC=newNode.label
-    JTMC = newNode.children[0].label;
-    FacilityProduction();
+    if(response.data===null){
+      JTMC = 'MQ07#';
+      FacilityProduction(addr);
+    }else{
+      // 将接口返回的数据添加到树型结构中
+      let newNode = {
+        label: response.data["使用部门"],
+        level: 1,
+        children: [
+          {
+            label: response.data["设备编号"],
+            level: 2,
+          }
+        ]
+      };
+      treeData.value.push(newNode);
+      CJMC=newNode.label
+      JTMC = newNode.children[0].label;
+      FacilityProduction(addr);
+    }
   }
 }
 const GetAddr =  () => {
@@ -3157,11 +3176,64 @@ const getSpotCheckItem = async (machineName) => {
 const FacilityTeam = async (value) => {
   const response = await facilityTeam({ machine: value });
   if (response.code === 0) {
-    console.log(response);
-
     // 清空 bzData 数组
     bzData.splice(0, bzData.length);
-
+    response.data.map(item=>{
+      if(formData.value['班组Id']==item.ID){
+        currentBz.value=item
+        formDatas.value = {};
+        let sczl_bhkey = ''
+        let sczl_namekey = ''
+        let percentagekey = ''
+        if (currentBz.value[9]) {
+          for (let i = 1; i <= 10; i++) {
+            sczl_bhkey = `code${i}`
+            sczl_namekey = `name${i}`
+            percentagekey = `percentage${i}`
+            formDatas.value[sczl_bhkey] = '';
+            formDatas.value[sczl_namekey] = '';
+            formDatas.value[percentagekey] = '';
+          }
+          formDatas.value.code8 = currentBz.value[9].split(' ')[0];
+          formDatas.value.name8 = currentBz.value[9].split(' ')[1]
+          formDatas.value.percentage8 = parseFloat(currentBz.value[9].split(' ')[2].split('(')[1].split(')')[0])/100
+          for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 4, 6); i++) {
+            sczl_bhkey = `code${i}`
+            sczl_namekey = `name${i}`
+            percentagekey = `percentage${i}`
+            formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
+            formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
+            if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
+              formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
+            }else{
+              formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
+            }
+          }
+        } else {
+          for (let i = 1; i <= 10; i++) {
+            sczl_bhkey = `code${i}`
+            sczl_namekey = `name${i}`
+            percentagekey = `percentage${i}`
+            formDatas.value[sczl_bhkey] = '';
+            formDatas.value[sczl_namekey] = '';
+            formDatas.value[percentagekey] = '';
+          }
+          for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 3, 6); i++) {
+            sczl_bhkey = `code${i}`
+            sczl_namekey = `name${i}`
+            percentagekey = `percentage${i}`
+            formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
+            formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
+            if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
+              formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
+            }else{
+              formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
+            }
+          }
+        }
+        console.log(formDatas)
+      }
+    })
     // 遍历接口返回的数据,并给每个对象添加 JTMC 属性
     const updatedData = response.data.map(item => {
       return { ...item, JTMC: value }; // 添加 JTMC 属性
@@ -3200,7 +3272,7 @@ const fetchData = async () => {
       dropdownOptions.value = options;
 
       // Default to selecting the first option
-       const defaultOption = options.find(option => option.value === JTMC);
+       const defaultOption = options.find(option => option.value.split('|')[0] === JTMC);
 		if (defaultOption) {
 		  selectedOption.value = defaultOption.value;
 		} else if (options.length > 0) {
@@ -3352,50 +3424,173 @@ const formDatas = ref({
 
 const currentBz ={}
 //班组单击
-const BZhandle = (val, row) => {
-	console.log(val.ID)
-	console.log(val)
-  currentBz.value=val
-  formDatas.value  = {};
-  for (const key in val) {
-    if (val[key] === 0) {
-      break;
+const BZhandle = (val) => {
+  currentBz.value = val
+  formDatas.value = {};
+  let sczl_bhkey = ''
+  let sczl_namekey = ''
+  let percentagekey = ''
+  if (currentBz.value[9]) {
+    for (let i = 1; i <= 9; i++) {
+      sczl_bhkey = `code${i}`
+      sczl_namekey = `name${i}`
+      percentagekey = `percentage${i}`
+      formDatas.value[sczl_bhkey] = '';
+      formDatas.value[sczl_namekey] = '';
+      formDatas.value[percentagekey] = '';
+    }
+    formDatas.value.code8 = currentBz.value[9].split(' ')[0];
+    formDatas.value.name8 = currentBz.value[9].split(' ')[1]
+    formDatas.value.percentage8 = parseFloat(currentBz.value[9].split(' ')[2].split('(')[1].split(')')[0])/100
+    for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 5, 6); i++) {
+      sczl_bhkey = `code${i}`
+      sczl_namekey = `name${i}`
+      percentagekey = `percentage${i}`
+      formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
+      formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
+      if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
+        formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
+      }else{
+        formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
+      }
+    }
+  } else {
+    for (let i = 1; i <= 10; i++) {
+      sczl_bhkey = `code${i}`
+      sczl_namekey = `name${i}`
+      percentagekey = `percentage${i}`
+      formDatas.value[sczl_bhkey] = '';
+      formDatas.value[sczl_namekey] = '';
+      formDatas.value[percentagekey] = '';
+    }
+    for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length - 4, 6); i++) {
+      sczl_bhkey = `code${i}`
+      sczl_namekey = `name${i}`
+      percentagekey = `percentage${i}`
+      formDatas.value[sczl_bhkey] = currentBz.value[i - 1].split(' ')[0];
+      formDatas.value[sczl_namekey] = currentBz.value[i - 1].split(' ')[1];
+      if(isNaN(parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0]))){
+        formDatas.value[percentagekey] = currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0];
+      }else{
+        formDatas.value[percentagekey] = parseFloat(currentBz.value[i - 1].split(' ')[2].split('(')[1].split(')')[0])/100;
+      }
     }
-    const parts = val[key].split(/[\s()]+/);
-    const code = parts[0];
-    const name = parts[1];
-    const percentage = parts[2];
-
-    // 根据索引填充不同的字段
-    const index = parseInt(key) + 1; // 索引从1开始
-    formDatas.value['code' + index] = code;
-    formDatas.value['name' + index] = name;
-    formDatas.value['percentage' + index] = percentage;
-	BZMC.value=val.班组号
   }
+  console.log(formDatas)
+  // for (const key in val) {
+  //   if (val[key] === 0) {
+  //     break;
+  //   }
+  //   const parts = val[key].split(/[\s()]+/);
+  //   const code = parts[0];
+  //   const name = parts[1];
+  //   const percentage = parts[2];
+  //
+  //   // 根据索引填充不同的字段
+  //   const index = parseInt(key) + 1; // 索引从1开始
+  //   formDatas.value['code' + index] = code;
+  //   formDatas.value['name' + index] = name;
+  //   formDatas.value['percentage' + index] = percentage;
+	  BZMC.value=val.班组号
+  // }
 };
+const addBz = async() => {
+  console.log(selectedOption.value)
+  console.log(BZMC.value)
+  console.log(currentBz.value.ID)
+  const response = await MachineTeamAdd({
+    sczl_jtbh:  selectedOption.value.split('|')[0],
+    sczl_bzdh:  BZMC.value,
+    sczl_bh1:   formDatas.value.code1,
+    sczl_bh2:   formDatas.value.code2,
+    sczl_bh3:   formDatas.value.code3,
+    sczl_bh4:   formDatas.value.code4,
+    sczl_bh5:   formDatas.value.code5,
+    sczl_bh6:   formDatas.value.code6,
+    sczl_bh7:   formDatas.value.code7,
+    sczl_bh8:   formDatas.value.code10,
+    sczl_bh9:   formDatas.value.code9,
+    sczl_bh10:   formDatas.value.code8,
+    sczl_rate1: formDatas.value.percentage1,
+    sczl_rate2: formDatas.value.percentage2,
+    sczl_rate3: formDatas.value.percentage3,
+    sczl_rate4: formDatas.value.percentage4,
+    sczl_rate5: formDatas.value.percentage5,
+    sczl_rate6: formDatas.value.percentage6,
+    sczl_rate7: formDatas.value.percentage7,
+    sczl_rate8: formDatas.value.percentage10,
+    sczl_rate9: formDatas.value.percentage9,
+    sczl_rate10: formDatas.value.percentage8,
+    sys_id: `【${formData.value.addr} ${JTMC}】`
+  })
+  if (response.code === 0) {
+    ElMessage({
+      type: 'success',
+      message: '成功'
+    })
+    FacilityProduction()
+  }
+}
+
 const selectBz = async() => {
 	if(currentBz.value){
 		BZMC.value=currentBz.value.班组号
 		let sczl_bhkey=''
 		let sczl_namekey=''
-		if (currentBz.value) {
-		  for (let i = 1; i <= 6; i++) {
-		  	sczl_bhkey=`sczl_bh${i}`
-		    sczl_namekey=`sczl_name${i}`
-		    formData.value[sczl_bhkey] = '';
-		    formData.value[sczl_namekey] = '';
-		  }
-		  for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-4, 6); i++) {
-			sczl_bhkey=`sczl_bh${i}`
-			sczl_namekey=`sczl_name${i}`
-			console.log(currentBz.value[i-1].split(' '))
-		    formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
-		    formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
-		    classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
-		  }
-		  formData.value.class=classbz.value.join(',')
-		}
+		// if (currentBz.value) {
+		//   for (let i = 1; i <= 6; i++) {
+		//   	sczl_bhkey=`sczl_bh${i}`
+		//     sczl_namekey=`sczl_name${i}`
+		//     formData.value[sczl_bhkey] = '';
+		//     formData.value[sczl_namekey] = '';
+		//   }
+		//   for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-4, 6); i++) {
+		// 	sczl_bhkey=`sczl_bh${i}`
+		// 	sczl_namekey=`sczl_name${i}`
+		// 	console.log(currentBz.value[i-1].split(' '))
+		//     formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
+		//     formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
+		//     classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
+		//   }
+		//   formData.value.class=classbz.value.join(',')
+		// }
+    if (currentBz.value[9]) {
+      for (let i = 1; i <= 9; i++) {
+        sczl_bhkey=`sczl_bh${i}`
+        sczl_namekey=`sczl_name${i}`
+        formData.value[sczl_bhkey] = '';
+        formData.value[sczl_namekey] = '';
+      }
+      formData.value.sczl_bh10 = currentBz.value[9].split(' ')[0];
+      formData.value.sczl_name10=currentBz.value[9].split(' ')[1]
+      for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-5, 6); i++) {
+        sczl_bhkey=`sczl_bh${i}`
+        sczl_namekey=`sczl_name${i}`
+        console.log(currentBz.value[i-1].split(' '))
+        formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
+        formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
+        classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
+      }
+      classbz.value.push(currentBz.value[9].split(' ')[0])
+      formData.value.class=classbz.value.join(',')
+      console.log(formData.value)
+    }else{
+      for (let i = 1; i <= 10; i++) {
+        sczl_bhkey=`sczl_bh${i}`
+        sczl_namekey=`sczl_name${i}`
+        formData.value[sczl_bhkey] = '';
+        formData.value[sczl_namekey] = '';
+      }
+      for (let i = 1; i <= Math.min(Object.keys(currentBz.value).length-4, 6); i++) {
+        sczl_bhkey=`sczl_bh${i}`
+        sczl_namekey=`sczl_name${i}`
+        console.log(currentBz.value[i-1].split(' '))
+        formData.value[sczl_bhkey] = currentBz.value[i-1].split(' ')[0];
+        formData.value[sczl_namekey] = currentBz.value[i-1].split(' ')[1];
+        classbz.value[i-1]=currentBz.value[i-1].split(' ')[0]
+      }
+      formData.value.class=classbz.value.join(',')
+    }
 		const response = await setMachineTeam({
 			machine: JTMC.split("#")[0],
 			order:formData.value.工单编号,
@@ -3413,7 +3608,7 @@ const selectBz = async() => {
 			  message: '成功'
 			})
 		}
-		currentBz.value={}
+		// currentBz.value={}
 	}
 }
 const delBz = async() => {
@@ -3423,9 +3618,16 @@ const delBz = async() => {
 		    cancelButtonText: '取消',
 		    type: 'warning'
 		}).then(() => {
-		        teamDel(currentBz.value.ID)
+      const response = teamDel(currentBz.value.ID)
+      if(response.code===0){
+        ElMessage({
+          type: 'success',
+          message: '成功'
+        })
+      }
 		    })
-	currentBz.value={}
+    FacilityProduction()
+    currentBz.value={}
 	}
 }