|
@@ -27,6 +27,11 @@
|
|
<switch class="switch" @change="switchChange" color="rgba(103, 195, 55, 1.0)" />
|
|
<switch class="switch" @change="switchChange" color="rgba(103, 195, 55, 1.0)" />
|
|
<text>是</text>
|
|
<text>是</text>
|
|
</view>
|
|
</view>
|
|
|
|
+ <view class="list-title uni-row" v-if="workInfo.status == 3">
|
|
|
|
+ <text class="label">废品损失率</text>
|
|
|
|
+ <view class="uni-row" style="justify-content: flex-end;"><text class="label">{{rejectRatio}}</text>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
<view v-if="showCarrierList && !store.isPreProcess" class="confirmCarrier">
|
|
<view v-if="showCarrierList && !store.isPreProcess" class="confirmCarrier">
|
|
<text class="label">确认载具</text>
|
|
<text class="label">确认载具</text>
|
|
<view class="vehicleList uni-row">
|
|
<view class="vehicleList uni-row">
|
|
@@ -86,11 +91,15 @@
|
|
listItem,
|
|
listItem,
|
|
getIsFirstOrder,
|
|
getIsFirstOrder,
|
|
} from '@/api/business/dayWorkItem.js'
|
|
} from '@/api/business/dayWorkItem.js'
|
|
|
|
+ import {
|
|
|
|
+ Decimal
|
|
|
|
+ } from 'decimal.js'
|
|
|
|
|
|
const baseDialog = ref(null)
|
|
const baseDialog = ref(null)
|
|
const workInfo = ref({})
|
|
const workInfo = ref({})
|
|
const showQrCodeReader = ref(false);
|
|
const showQrCodeReader = ref(false);
|
|
const wasteInfo = ref([])
|
|
const wasteInfo = ref([])
|
|
|
|
+ const qualifiedNumRatio = ref(1)
|
|
const reasonList = ref([])
|
|
const reasonList = ref([])
|
|
const emit = defineEmits(['resflushItem'])
|
|
const emit = defineEmits(['resflushItem'])
|
|
const showCarrierList = ref(false) // 工序是否完成显示载具列表
|
|
const showCarrierList = ref(false) // 工序是否完成显示载具列表
|
|
@@ -98,6 +107,7 @@
|
|
const confirmCarrierList = ref([])
|
|
const confirmCarrierList = ref([])
|
|
const isFirstOrder = ref(true); //是否为首序
|
|
const isFirstOrder = ref(true); //是否为首序
|
|
const endFlag = ref(0)
|
|
const endFlag = ref(0)
|
|
|
|
+ const rejectRatio = ref(0)
|
|
const isLoading = ref(false);
|
|
const isLoading = ref(false);
|
|
const specialDeptProcessList = ref([])
|
|
const specialDeptProcessList = ref([])
|
|
const temp = ref(0) // 保存workInfo.value.qualifiedNum的值(还原用)
|
|
const temp = ref(0) // 保存workInfo.value.qualifiedNum的值(还原用)
|
|
@@ -115,6 +125,8 @@
|
|
...data,
|
|
...data,
|
|
};
|
|
};
|
|
console.log("数据data", workInfo);
|
|
console.log("数据data", workInfo);
|
|
|
|
+ //获取报工数量限制
|
|
|
|
+ getReportLimit()
|
|
//查看是否为首序
|
|
//查看是否为首序
|
|
getIsFirst(store.dayworkInfo.id);
|
|
getIsFirst(store.dayworkInfo.id);
|
|
workInfo.value.qualifiedNum = 0;
|
|
workInfo.value.qualifiedNum = 0;
|
|
@@ -128,7 +140,7 @@
|
|
specialDeptProcessList.value[i] = res.data[i].processId;
|
|
specialDeptProcessList.value[i] = res.data[i].processId;
|
|
}
|
|
}
|
|
for (let i = 0; i < response.rows.length; i++) {
|
|
for (let i = 0; i < response.rows.length; i++) {
|
|
- if (response.rows[i].processId == workInfo.value.processId) {
|
|
|
|
|
|
+ if (response.rows[i].processStepNumber == workInfo.value.processStepNumber) {
|
|
lotPreSumReject.value += response.rows[i].rejectSum;
|
|
lotPreSumReject.value += response.rows[i].rejectSum;
|
|
lotPreSumQualifiedNum.value += response.rows[i].qualifiedNum;
|
|
lotPreSumQualifiedNum.value += response.rows[i].qualifiedNum;
|
|
}
|
|
}
|
|
@@ -155,6 +167,17 @@
|
|
baseDialog.value.open()
|
|
baseDialog.value.open()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ function getReportLimit() {
|
|
|
|
+ getDictInfoByType("report_up_limit").then(res => {
|
|
|
|
+ if (res.data && res.data.length > 0) {
|
|
|
|
+ qualifiedNumRatio.value = parseInt(res.data[0].dictValue)
|
|
|
|
+ }
|
|
|
|
+ }).catch(err => {
|
|
|
|
+ console.log(err)
|
|
|
|
+ console.log('369 err')
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
function close() {
|
|
function close() {
|
|
baseDialog.value.close()
|
|
baseDialog.value.close()
|
|
}
|
|
}
|
|
@@ -223,6 +246,16 @@
|
|
|
|
|
|
function handleInputQualifiedNum() {
|
|
function handleInputQualifiedNum() {
|
|
workInfo.value.qualifiedNum = workInfo.value.qualifiedNum.replace(/^-+|[^\d]/g, '');
|
|
workInfo.value.qualifiedNum = workInfo.value.qualifiedNum.replace(/^-+|[^\d]/g, '');
|
|
|
|
+ let temQualifiedNum = workInfo.value.qualifiedNum
|
|
|
|
+ if (workInfo.value.qualifiedNum === null || workInfo.value.qualifiedNum === '') {
|
|
|
|
+ temQualifiedNum = 0
|
|
|
|
+ }
|
|
|
|
+ //计算损失率
|
|
|
|
+ let sunm = parseInt(temQualifiedNum) + lotPreSumQualifiedNum.value; //计算总合格数
|
|
|
|
+ rejectRatio.value = (((parseInt(workInfo.value.prodNum) - sunm) / parseInt(workInfo.value.prodNum)) *
|
|
|
|
+ 100).toFixed(2) + '%';
|
|
|
|
+ console.log(((parseInt(temQualifiedNum) - sunm) / parseInt(temQualifiedNum)) *
|
|
|
|
+ 100)
|
|
}
|
|
}
|
|
|
|
|
|
function handleInputRejectNum(item) {
|
|
function handleInputRejectNum(item) {
|
|
@@ -393,17 +426,15 @@
|
|
.processQualifiedNum;
|
|
.processQualifiedNum;
|
|
workInfo.value.prodNum = number
|
|
workInfo.value.prodNum = number
|
|
|
|
|
|
- let max = parseInt(number * 1.03);
|
|
|
|
- // max = parseInt(String(max).split("."));
|
|
|
|
- console.log("maxawdjkkaljdalkw", max);
|
|
|
|
|
|
+ let max = parseInt(number * (qualifiedNumRatio.value / 100));
|
|
let sunm = parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value; //计算总合格数
|
|
let sunm = parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value; //计算总合格数
|
|
- let percent = (sunm / number) * 100; //合格率
|
|
|
|
-
|
|
|
|
- percent = Math.ceil(percent * 100) / 100; //只入不舍
|
|
|
|
|
|
+ let percent = new Decimal(sunm).div(number).mul(100); // 使用 Decimal.js 计算
|
|
|
|
+ // 保留两位小数
|
|
|
|
+ percent = percent.toDecimalPlaces(2, Decimal.ROUND_DOWN).toString();
|
|
console.log("合格量", percent)
|
|
console.log("合格量", percent)
|
|
// let percent = (((parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value) / number) * 100).toFixed(2);
|
|
// let percent = (((parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value) / number) * 100).toFixed(2);
|
|
|
|
|
|
- let num = 103;
|
|
|
|
|
|
+ let num = qualifiedNumRatio.value;
|
|
// 填入数大于剩余量情况
|
|
// 填入数大于剩余量情况
|
|
if (parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value - number > 0) {
|
|
if (parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value - number > 0) {
|
|
// 判断当前是否为首序
|
|
// 判断当前是否为首序
|
|
@@ -420,6 +451,7 @@
|
|
})
|
|
})
|
|
} else {
|
|
} else {
|
|
if (percent > num) {
|
|
if (percent > num) {
|
|
|
|
+ console.log("999")
|
|
uni.showToast({
|
|
uni.showToast({
|
|
icon: 'none',
|
|
icon: 'none',
|
|
title: '合格数总量为投产量的' + percent + "%,请重新输入!"
|
|
title: '合格数总量为投产量的' + percent + "%,请重新输入!"
|
|
@@ -430,7 +462,6 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- console.log("999")
|
|
|
|
//判断当前序合格总数为0 ,不允许保存
|
|
//判断当前序合格总数为0 ,不允许保存
|
|
console.log(parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value == 0)
|
|
console.log(parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value == 0)
|
|
if (workInfo.value.status == "3" && parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value == 0) {
|
|
if (workInfo.value.status == "3" && parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value == 0) {
|
|
@@ -451,12 +482,12 @@
|
|
let number = workInfo.value.prodNum;
|
|
let number = workInfo.value.prodNum;
|
|
let percent = (((parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value) / number) * 100).toFixed(
|
|
let percent = (((parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value) / number) * 100).toFixed(
|
|
2);
|
|
2);
|
|
- let num = 103;
|
|
|
|
|
|
+ let num = qualifiedNumRatio.value;
|
|
//lotPreSumQualifiedNum当前序的所有合格数
|
|
//lotPreSumQualifiedNum当前序的所有合格数
|
|
if (parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value - number > 0) {
|
|
if (parseInt(workInfo.value.qualifiedNum) + lotPreSumQualifiedNum.value - number > 0) {
|
|
if (isFirstOrder.value) {
|
|
if (isFirstOrder.value) {
|
|
- if (percent == 103) {
|
|
|
|
- percent = 103.1
|
|
|
|
|
|
+ if (percent == qualifiedNumRatio.value) {
|
|
|
|
+ percent = qualifiedNumRatio.value
|
|
}
|
|
}
|
|
uni.showModal({
|
|
uni.showModal({
|
|
title: '提示',
|
|
title: '提示',
|
|
@@ -482,9 +513,10 @@
|
|
})
|
|
})
|
|
} else {
|
|
} else {
|
|
if (percent == num) {
|
|
if (percent == num) {
|
|
- percent = 103.01
|
|
|
|
|
|
+ percent = qualifiedNumRatio.value
|
|
}
|
|
}
|
|
if (percent > num) {
|
|
if (percent > num) {
|
|
|
|
+ console.log("888")
|
|
uni.showToast({
|
|
uni.showToast({
|
|
icon: 'none',
|
|
icon: 'none',
|
|
title: '合格数总量为投产量的' + percent + "%,请重新输入!"
|
|
title: '合格数总量为投产量的' + percent + "%,请重新输入!"
|