ysy 1 rok temu
rodzic
commit
460e01d1c1

+ 11 - 0
api/pda/tangu.js

@@ -23,6 +23,17 @@ export async function getComputeParam(workOrderId, taskId) {
 		Vue.prototype.apiUrl + `/mes/computeparam/getComputeParam/${workOrderId}/${taskId}`
 	);
 
+	if (data.code == 0) {
+		return data.data;
+	}
+	return Promise.reject(data.message);
+}
+
+// pda常规质检-批量报工型取样
+export async function sample(params) {
+	const data = await postJ(
+		Vue.prototype.apiUrl + `/pda/mes/workorder/sample`, params, true,
+	);
 	if (data.code == 0) {
 		return data.data;
 	}

+ 1 - 1
pages/pda/components/bottomOperate.vue

@@ -363,7 +363,7 @@
 
 					this.outsourceForm = {
 						...res,
-						requireDeliveryTime: '2024-06-30'
+					
 					}
 					this.outsourceForm.name = this.taskObj.currentTaskName + '委外'
 

+ 259 - 12
pages/pda/jobBooking/components/oneJobQualityBomPL.vue

@@ -1,7 +1,7 @@
 <template>
 	<view>
 		<view class="title_box rx-bc">
-			<view class="name">报工信息2: ({{list.length || 0}})个</view>
+			<view class="name">取样信息</view>
 		</view>
 
 
@@ -14,10 +14,198 @@
 					<view class="rx">
 						<view class="lable lable190 rx-cc ">
 
-							<view class="round">{{idx + 1}}</view>物料编码
+							<view class="round">{{ idx + 1}}</view>物料编码
 						</view>
 						<view class="content rx-sc">
+							<view>{{ it.code }}</view>
+						</view>
+					</view>
+				</view>
+
+				<view class="item rx-sc">
+					<view class="rx">
+						<view class="lable lable150 rx-cc ">名称</view>
+						<view class="content rx-sc">
+							<view>{{ it.name }}</view>
+						</view>
+					</view>
+				</view>
+
+				<view class="item rx-sc">
+					<view class="rx">
+						<view class="lable lable150 rx-cc ">型号</view>
+						<view class="content rx-sc">
+							<view>{{ it.modelType}}</view>
+						</view>
+					</view>
+				</view>
+
+
+
+				<view class="item rx-sc">
+					<view class="rx ww50 ">
+						<view class="lable lable150 rx-cc ">物料代号</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{ it.extInfo.materielCode }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.materielCode"></input>
+
+						</view>
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">客户代号</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{ it.extInfo.clientCode }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.clientCode"></input>
+						</view>
+					</view>
+
+				</view>
+
+
+				<view class="item rx-sc">
+					<view class="rx ww50 ">
+						<view class="lable lable150 rx-cc ">刻码</view>
+						<view class="content content_num ">
+							<view v-if='isDetails'>{{ it.extInfo.engrave }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.engrave"></input>
+
+						</view>
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">位置</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{ it.extInfo.position }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.position"></input>
+						</view>
+					</view>
+
+				</view>
+
+				<view class="item rx-sc">
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">设备</view>
+						<view class="content ">
+							<view>{{ it.deviceName || it.extInfo.deviceName}}</view>
+						</view>
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150  rx-cc ">炉次号</view>
+						<view class="content ">
+							<view>{{ it.extInfo.heatNumber }}</view>
+						</view>
+					</view>
+
+				</view>
+
+				<view class="item rx-sc">
+
+					<view class="rx ww50">
+						<view class="lable lable150  rx-cc ">投料数量</view>
+						<view class="content content_num ">
+							<view style="color:#157A2C;">{{ it.feedQuantity }}</view>
+						</view>
+
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">投料类型</view>
+						<view class="content rx-sc" style="color:#157A2C;">
+							<view>批量投料</view>
+						</view>
+					</view>
+
+				</view>
+
+
+
+
+			</view>
+
+
+			<view class="content_table2">
+				<view class="head row rx-sc">
+					<view class="item ww25" style="font-size: 20rpx;">
+						合格品数量
+					</view>
+					<view class="item ww25">报工总重量/{{ it.extInfo.weightUnit}} </view>
+
+					<view class="item ww30 rx-bc">
+						<text>处置</text>
+
+					</view>
+					<view class="item ww20 ">
+						取样 </view>
+				</view>
+
+
+				<view class="table">
+					<view class="tr row rx-sc" v-for="(yy, yyIdx) in it.extInfo.batchReportInfo">
+						<view class="item ww25 content_num">
+							<view>{{ yy.allFeedQuantity }}</view>
+						</view>
+						<view class="item ww25 content_num">
+							<view>{{ yy.allReportWeight }}</view>
+						</view>
+
+
+
+						<view class="item ww30" v-if='isDetails'>
+							{{ it.extInfo.taskName }}
+						</view>
+
+						<view class="item ww30" v-else>
+							<zxz-uni-data-select :localdata="stepsList" v-model="yy.taskId" dataValue='taskId'
+								format='{taskTypeName}' dataKey="taskId" filterable
+								@change="e => yy.taskName = e.taskTypeName" :clear='false'
+								disabled></zxz-uni-data-select>
+						</view>
+
+						<view class="item ww20 content_num">
+							<view v-if='isDetails'>{{ yy.sample }}</view>
+							<input @blur="blurNum($event,idx, yyIdx)" v-else class="uni-input" v-model="yy.sample"
+								type='digit'></input>
+						</view>
+
+
+					</view>
+
+				</view>
+
+			</view>
+
+
+			<view class="button_box" v-if="!isDetails">
+				<u-button size="small" class="u-reset-button" type="success" @click="handSample(idx)">取样</u-button>
+			</view>
+
+
+
+		</view>
+
+
+
+		<view class="title_box rx-bc">
+			<view class="name">报工信息</view>
+		</view>
+
+
+		<view class="material " v-for="(it, idx) in item.sampleQuality" :key="it.id + idx">
+
+
+			<view class="content_table">
+
+				<view class="item rx-sc">
+					<view class="rx">
+						<view class="lable lable190 rx-cc ">
+
+							<view class="round">{{idx + 1}}</view>物料编码
+						</view>
+						<view class="content rx-bc">
 							<view>{{it.code}}</view>
+							<view class="tag_box " v-if="it.extInfo.batchReportInfo.length == 0">质</view>
 						</view>
 					</view>
 				</view>
@@ -100,7 +288,7 @@
 
 				</view>
 
-				<view class="item rx-sc">
+				<view class="item rx-sc" v-if="it.extInfo.batchReportInfo.length > 0">
 
 					<view class="rx ww50">
 						<view class="lable lable150  rx-cc ">投料数量</view>
@@ -125,7 +313,7 @@
 			</view>
 
 
-			<view class="content_table2">
+			<view class="content_table2" v-if="it.extInfo.batchReportInfo.length > 0">
 				<view class="head row rx-sc">
 					<view class="item ww25" style="font-size: 20rpx;">
 						合格品数量
@@ -144,11 +332,11 @@
 				<view class="table">
 					<view class="tr row rx-sc" v-for="(yy, yyIdx) in it.extInfo.batchReportInfo">
 						<view class="item ww25 content_num">
-							<view >{{yy.allFeedQuantity }}</view>
+							<view>{{yy.allFeedQuantity }}</view>
 						</view>
 						<view class="item ww25 content_num">
-							<view v-if='isDetails'>{{yy.allReportWeight }}</view>
-							<input class="uni-input" v-else v-model="yy.allReportWeight" type='digit'></input>
+					<view v-if='isDetails'>{{yy.allReportWeight }}</view>
+					<input class="uni-input" v-else v-model="yy.allReportWeight" type='digit'></input>
 						</view>
 
 
@@ -160,11 +348,12 @@
 						<view class="item ww30" v-else>
 							<zxz-uni-data-select :localdata="stepsList" v-model="yy.taskId" dataValue='taskId'
 								format='{taskTypeName}' dataKey="taskId" filterable
-								@change=" e => yy.taskName = e.taskTypeName" :clear='false'></zxz-uni-data-select>
+								@change=" e => yy.taskName = e.taskTypeName" :clear='false'
+								></zxz-uni-data-select>
 						</view>
 
-						<view class="item ww20">
-
+						<view class="item ww20 content_num">
+							
 						</view>
 
 
@@ -175,6 +364,9 @@
 			</view>
 
 
+
+
+
 		</view>
 
 
@@ -190,6 +382,9 @@
 		getTaskInstanceList
 	} from '@/api/pda/workOrder.js'
 
+	import {
+		sample
+	} from '@/api/pda/tangu.js'
 
 	export default {
 		props: {
@@ -203,6 +398,8 @@
 				default: () => []
 			},
 
+
+
 			isDetails: {
 				type: Boolean,
 				default: false
@@ -247,7 +444,19 @@
 		methods: {
 
 
+			blurNum(event, idx, yyIdx) {
+				let value = event.target.value;
+				value = value.replace(/\./g, '');
+
+				let allFeedQuantity = this.list[idx].extInfo.batchReportInfo[yyIdx].allFeedQuantity
+				if (value > allFeedQuantity) {
+					this.$set(this.list[idx].extInfo.batchReportInfo[yyIdx], 'sample', 1);
+				}
+
+
+
 
+			},
 
 			getSteps() {
 
@@ -258,6 +467,30 @@
 
 
 
+			handSample(idx) {
+
+				let _arr = this.list[idx].extInfo.batchReportInfo.map(m => {
+					return {
+						quantity: m.sample,
+						disposeTaskId: m.taskId,
+						source: this.list[idx]
+					}
+				})
+
+				let param = {
+					taskId: this.item.currentTaskDiagram.taskId,
+					workOrderId: this.list[idx].workOrderId,
+					dispose: _arr,
+
+				}
+
+				sample(param).then(res => {
+					this.$set(this.item, 'sampleQuality', res || [])
+					this.$forceUpdate()
+				})
+
+
+			}
 
 
 
@@ -555,9 +788,8 @@
 
 	.operate_box {
 		margin-top: 32rpx;
-		padding: 10rpx 100rpx;
 
-		/deep/ .u-button {
+		padding: 10rpx 100rpx;/deep/ .u-button {
 			width: 160rpx;
 		}
 	}
@@ -580,4 +812,19 @@
 			color: $theme-color;
 		}
 	}
+
+	.button_box {
+		width: 300rpx;
+		margin: auto;
+		margin-top: 16rpx;
+	}
+
+	.tag_box {
+		padding: 2rpx 10rpx;
+		margin-right: 12rpx;
+		background: #E6A23C;
+		font-size: 22rpx;
+		color: #fff;
+		border-radius: 4rpx;
+	}
 </style>

+ 1 - 1
pages/pda/jobBooking/index/index.vue

@@ -54,7 +54,7 @@
 						
 					<oneJobQualityBomPL
 						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType == 6 && clientEnvironmentId == 3 && objData.singleReport == 0'
-						:item='objData' :list='objData.semiProductList'></oneJobQualityBomPL>
+						:item='objData' :list='objData.semiProductList' :sampleQuality="objData.sampleQuality"></oneJobQualityBomPL>
 						
 
 					<byProductBom v-if='objData.productRecycleList.length != 0' :list='objData.productRecycleList'