This commit is contained in:
caoqianming 2025-02-14 16:28:21 +08:00
commit e8833a78d4
3 changed files with 477 additions and 110 deletions

View File

@ -65,13 +65,13 @@
<el-table-column label="配管" prop="配管">
</el-table-column>
</el-table-column>
<el-table-column label="成品库" prop="成品库">
</el-table-column>
<el-table-column label="合计" prop="合计">
</el-table-column>
<el-table-column
label="检验合格数"
prop="检验合格数"
>
<el-table-column label="中检合格数" prop="中检合格数">
</el-table-column>
<el-table-column label="检验合格数" prop="检验合格数">
</el-table-column>
</el-table>
</el-main>
@ -110,6 +110,7 @@
</el-table-column>
</el-table-column>
<el-table-column label="6号">
<!-- 6车间 管成型退火 -->
<el-table-column label="库存" prop="库存">
</el-table-column>
<el-table-column label="开槽" prop="开槽">
@ -119,12 +120,13 @@
<el-table-column label="配棒" prop="配棒">
</el-table-column>
</el-table-column>
<el-table-column label="成品库" prop="成品库">
</el-table-column>
<el-table-column label="合计" prop="合计">
</el-table-column>
<el-table-column
label="检验合格数"
prop="检验合格数"
>
<el-table-column label="中检合格数" prop="中检合格数">
</el-table-column>
<el-table-column label="检验合格数" prop="检验合格数">
</el-table-column>
</el-table>
</el-main>
@ -149,6 +151,8 @@ export default {
date: "",
},
currentDate: "",
models_b:[],
models_g:[],
};
},
mounted() {
@ -170,45 +174,60 @@ export default {
},
created() {},
methods: {
getCountOk() {
getCountOk(type,models) {
let that = this;
let params = {
query: {
start_date: that.query.date,
end_date: that.query.date,
// start_date: "2024-01-16",
// end_date: "2024-01-16",
},
};
that.$API.bi.dataset.exec
.req("count_ok_day", params)
.then((res) => {
let datas = res.data2.ds0;
if(datas.length>0){
that.$API.bi.dataset.exec.req("count_ok_day", params).then((res) => {
let datas = res.data2.ds0;
if(datas.length>0){
if(type=="b"){
datas.forEach((item) => {
let bang_model = "",
guan_model = "";
if (item.型号.indexOf("+") > -1) {
bang_model = item.型号.split("+")[0];
guan_model = item.型号.split("+")[1];
} else {
bang_model = guan_model = item.型号;
}
that.tableData11.forEach((item1) => {
if (item1.版型 == bang_model) {
item1.检验合格数 += item.合格数;
let b_model = "";
if (item.型号.indexOf("+") > -1) {
b_model = item.型号.split("+")[0];
} else {
b_model = guan_model = item.型号;
}
let index = models.indexOf(b_model);
if(index>-1){
if(item.检验类型=='prod'){
that.tableData11[index].中检合格数 += item.合格数;
}else if(item.检验类型=='process'){
that.tableData11[index].检验合格数 += item.合格数;
}
}
});
that.tableData22.forEach((item2) => {
if (item2.版型 == guan_model) {
item2.检验合格数 += item.合格数;
}else if(type=="g"){
datas.forEach((item) => {
let g_model = "",g_spec = "";
if (item.型号.indexOf("+") > -1) {
g_model = item.型号.split("+")[1];
} else {
g_model = item.型号;
}
if (item.规格.indexOf("+") > -1) {
g_spec = item.规格.split("+")[1];
} else {
g_spec = item.规格;
}
let msitem = g_model+g_spec;
let index = models.indexOf(msitem);
if(index>-1){
if(item.检验类型=='prod'){
that.tableData22[index].中检合格数 += item.合格数;
}else if(item.检验类型=='process'){
that.tableData22[index].检验合格数 += item.合格数;
}
}
});
});
}
});
}
});
},
//
getSourceData() {
@ -219,7 +238,6 @@ export default {
obj.timex__day = that.day;
obj.page = 0;
that.$API.bi.dataset.record.req(obj).then((res) => {
// let res = that.mockData;
let datas = res[0].result.data2;
let data_b = [...datas.ds0, ...datas.ds2];
let data_g = [...datas.ds1, ...datas.ds3];
@ -227,14 +245,12 @@ export default {
that.data_g = data_g;
that.getDataB(data_b);
that.getDataG(data_g);
that.getCountOk();
});
},
//
getDataB(data) {
let that = this;
let models = [],
dataArr = [];
let models = [],dataArr = [];
//
data.forEach((item) => {
let index = 0;
@ -268,20 +284,17 @@ export default {
抛光: 0,
开槽: 0,
配管: 0,
成品库:0,
合计: 0,
中检合格数: 0,
检验合格数: 0,
};
itemArr.forEach((item1) => {
obj.版型 = item1.型号;
let key = "";
if (item1.车间 == "7车间" && item1.工序 == "棒料成型") {
if (item1.车间 == "7车间") {
key = "合格数";
} else if (!item1.车间) {
key = "仓库库存";
} else if (
item1.车间 == "6车间" &&
item1.工序 == "棒料成型"
) {
} else if (item1.车间 == "6车间" &&item1.工序 == "棒料成型") {
key = "库存";
} else if (item1.车间 == "6车间" && item1.工序 == "平头") {
key = "平头";
@ -293,9 +306,18 @@ export default {
key = "抛光";
} else if (item1.车间 == "6车间" && item1.工序 == "开槽") {
key = "开槽";
} else if (item1.工序 == "配管") {
key = "配管";
}
if (item1.车间==null||item1.车间==undefined) {
console.log( '仓库库存',item1);
console.log( item1.工序 !== "配管"&&item1.类型==10);
if (item1.工序 == "配管") {
key = "配管";
}else if(item1.工序 !== "配管"&&item1.类型==10){
key = "成品库";
}else if(item1.工序 !== "配管"&&item1.类型==20){
key = "仓库库存";
}
}
obj[key] += item1.数量;
});
obj.合计 =
@ -307,9 +329,12 @@ export default {
obj.粗中细 +
obj.抛光 +
obj.开槽 +
obj.配管;
obj.配管+
obj.成品库;
that.tableData11[index] = obj;
});
that.models_b = models;
that.getCountOk('b',models);
},
//
getDataG(data) {
@ -363,6 +388,7 @@ export default {
});
//specArr
specArr.forEach((item3, index3) => {
let modelsspec = [];
item3.forEach((item4) => {
let obj = {
版型: "",
@ -374,52 +400,44 @@ export default {
开槽: 0,
倒角: 0,
配棒: 0,
成品库:0,
合计: 0,
中检合格数: 0,
检验合格数: 0,
};
item4.forEach((item5) => {
let key = "";
obj.版型 = item5.型号;
obj.规格 = item5.规格;
if (
item5.车间 == "10车间" &&
item5.工序 == "管料成型"
) {
key = "合格数";
} else if (!item5.车间 && item5.工序 == "管料成型") {
key = "仓库库存";
} else if (
item5.车间 == "8车间" &&
item5.工序 == "管料成型"
) {
key = "仓库库存";
} else if (
item5.车间 == "8车间" &&
item5.工序 == "管料退火"
) {
key = "退火";
} else if (
item5.车间 == "6车间" &&
item5.工序 == "管料退火"
) {
key = "库存";
} else if (
item5.车间 == "6车间" &&
item5.工序 == "开槽"
) {
key = "开槽";
} else if (
item5.车间 == "6车间" &&
item5.工序 == "倒角"
) {
key = "倒角";
} else if (
item5.车间 == "6车间" &&
item5.工序 == "配棒"
) {
key = "配棒";
if (item5.规格.indexOf("+") > -1) {
let spec = item5.规格.split("+")[1];
obj.规格 = spec;
}else{
obj.规格 = item5.规格;
}
if (item5.车间 == "10车间") {
key = "合格数";
}else if (item5.车间 == "8车间" &&item5.工序 == "管料成型") {
key = "仓库库存";
} else if (item5.车间 == "8车间" &&item5.工序 == "管料退火") {
key = "退火";
} else if (item5.车间 == "6车间" &&item5.工序 == "管料退火") {
key = "库存";
} else if (item5.车间 == "6车间" &&item5.工序 == "开槽") {
key = "开槽";
} else if (item5.车间 == "6车间" &&item5.工序 == "倒角") {
key = "倒角";
}
if (item5.车间==null||item5.车间==undefined) {
console.log( '仓库库存',item5);
console.log( item5.工序 !== "配管"&&item5.类型==10);
if (item5.工序 == "配管") {
key = "配棒";
}else if(item5.工序 !== "配管"&&item5.类型==10){
key = "成品库";
}else if(item5.工序 !== "配管"&&item5.类型==20){
key = "仓库库存";
}
}
obj[key] = obj[key] + item5.数量;
});
obj.合计 =
@ -429,10 +447,15 @@ export default {
obj.库存 +
obj.开槽 +
obj.倒角 +
obj.配棒;
obj.配棒+
obj.成品库;
that.tableData22.push(obj);
let modelsspecitem = obj.版型+obj.规格;
modelsspec.push(modelsspecitem);
});
});
that.models_g = models;
that.getCountOk('g',models);
},
handleQuery() {
let that = this;

View File

@ -0,0 +1,337 @@
<template>
<el-dialog
title="中检"
v-model="visible"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px">
<el-form
ref="dialogForm"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="物料批次">
<el-input v-model="wm_batch" disabled></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="交接数">
<el-input
v-model="form.count"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="合格数量">
<el-input v-model="form.count_ok" disabled></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="不合格数量">
<el-input-number
controls-position="right"
v-model="form.count_notok"
style="width: 100%"
:precision="0"
@change="handleCountNotokChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="合格率(%)">
<el-input-number
controls-position="right"
v-model="count_rate"
style="width: 100%"
:precision="0"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="检验日期" prop="test_date">
<el-date-picker
v-model="form.test_date"
type="date"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="检验人" prop="test_user">
<el-select
v-model="form.test_user"
placeholder="检验人"
clearable
filterable
style="width: 100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider style="margin-top:0"></el-divider>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="弯">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_w"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="气泡">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_qp"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="短">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_d"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="扁">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_b"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="纹">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_swen"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="裂">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_l"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="豁">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_h"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="青">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_q"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="杂质">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_zz"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="矫正">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_jz"
style="width: 100%"
:precision="0"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-main>
<el-footer>
<el-button type="primary"
:loading="isSaveing"
@click="submit"
>提交</el-button>
<el-button @click="visible = false">取消</el-button>
</el-footer>
</el-container>
</el-dialog>
</template>
<script>
export default {
emits: ["success", "closed"],
data() {
return {
mode:'',
loading: false,
form: {
type:'process',
type2:20,
test_date: "",
count: 0,
count_ok: 0,
count_notok: 0,
count_notok_json:{}
},
count_rate:100,
count_notok_json:{
count_n_w: 0,
count_n_qp: 0,
count_n_d: 0,
count_n_b: 0,
count_n_swen: 0,
count_n_l: 0,
count_n_h: 0,
count_n_q:0,
count_n_zz:0,
count_n_jz: 0
},
rules: {
test_date: [{required: true,message: "请选择检验日期",trigger: "blur"}],
batch: [{required: true,message: "请选择物料批次",trigger: "blur"}],
test_user: [{required: true,message: "请选择物料批次",trigger: "blur"}],
},
userList : [],
selectionFilters: [],
batchCount:null,
formCount:null,
visible: false,
supplier:null,
isSaveing: false,
};
},
mounted() {
this.getUsers();
},
methods: {
//
open() {
this.visible = true;
return this;
},
//
setData(data) {
this.form.wm = data.id;
this.form.count_notok = 0;
this.count_rate = 100;
this.wm_batch = data.batch;
this.form.count = this.form.count_ok = data.count;
},
getUsers(){
let that = this;
that.$API.system.user.list.req({ page: 0, posts__code__contains: "check" }).then((res) => {
that.userList = res ;
});
},
handleCountChange(){
this.form.count_notok =
this.count_notok_json.count_n_w+
this.count_notok_json.count_n_qp+
this.count_notok_json.count_n_d+
this.count_notok_json.count_n_b+
this.count_notok_json.count_n_swen+
this.count_notok_json.count_n_l+
this.count_notok_json.count_n_h+
this.count_notok_json.count_n_q+
this.count_notok_json.count_n_zz+
this.count_notok_json.count_n_jz;
this.handleCountNotokChange();
},
handleCountNotokChange(){
this.form.count_ok = this.form.count - this.form.count_notok;
this.count_rate = ((this.form.count_ok/this.form.count)*100).toFixed(2);
},
//
submit() {
let that = this;
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
that.isSaveing = true;
let count_notok =
that.count_notok_json.count_n_w+
that.count_notok_json.count_n_qp+
that.count_notok_json.count_n_d+
that.count_notok_json.count_n_b+
that.count_notok_json.count_n_swen+
that.count_notok_json.count_n_l+
that.count_notok_json.count_n_h+
that.count_notok_json.count_n_q+
that.count_notok_json.count_n_zz+
that.count_notok_json.count_n_jz;
if(count_notok>that.form.count_notok){
that.$notify.error("不合格数量有问题");
that.isSaveing = false;
}else{
that.form.count_ok = that.form.count - that.form.count_notok;
that.form.count_notok_json = that.count_notok_json;
console.log('that.form',that.form)
that.$API.qm.ftestwork.create.req(that.form).then((res) => {
that.$API.qm.ftestwork.submit.req(res.id).then((res) => {
that.isSaveing = false;
that.visible = false;
that.$emit("success");
that.$message.success("操作成功");
})
}).catch( err=>{
that.isSaveing = false;
})
}
}
});
},
},
};
</script>
<style></style>

View File

@ -223,9 +223,7 @@
prop="submit_time"
>
<template #default="scope">
<span v-if="scope.row.submit_time"
></span
>
<span v-if="scope.row.submit_time"></span>
<span v-else></span>
</template>
</el-table-column>
@ -233,14 +231,13 @@
label="操作"
fixed="right"
align="left"
width="60"
>
<template #default="scope">
<el-button
link
type="primary"
@click.stop="
handover_submit(scope.row)
"
@click.stop="handover_submit(scope.row)"
v-auth="'handover.submit'"
v-if="scope.row.submit_time == null"
>
@ -298,7 +295,6 @@
:params="paramsWm"
:query="queryWm"
stripe
hidePagination
>
<el-table-column label="物料名" prop="material">
<template #default="scope">
@ -315,21 +311,19 @@
{{ scope.row.material_.model }}
</template>
</el-table-column>
<el-table-column
label="已到工序"
prop="material"
>
<template #default="scope">{{
scope.row.material_.process_name
}}</template>
<el-table-column label="已到工序" prop="material">
<template #default="scope">
{{scope.row.material_.process_name}}
</template>
</el-table-column>
<el-table-column label="批次" prop="batch">
<el-table-column label="批次" prop="batch" show-overflow-tooltip>
</el-table-column>
<el-table-column
label="数量"
prop="count"
width="80"
>
<el-table-column label="数量" prop="count" width="80">
</el-table-column>
<el-table-column label="操作" fixed="right" align="right" width="55">
<template #default="scope">
<el-link link type="primary" @click.stop="inm_test(scope.row)">检验</el-link>
</template>
</el-table-column>
</scTable>
</el-main>
@ -338,6 +332,11 @@
</el-container>
</el-main>
</el-container>
<middle-dialog
ref="inmTestDialog"
v-if="dialogInmTest"
@closed="dialogInmTest = false">
</middle-dialog>
<showDrawer
ref="showDrawer"
v-if="visibleDrawer"
@ -363,6 +362,7 @@
</template>
<script>
import middleDialog from "./middle_test.vue";
import handoverDialog from "./handover_form.vue";
import showDrawer from "./mlog_dept6_detail.vue";
import materials from "./../mtm/materials.vue";
@ -370,6 +370,7 @@ export default {
components: {
showDrawer,
materials,
middleDialog,
handoverDialog
},
data() {
@ -406,7 +407,6 @@ export default {
paramsWm: {
belong_dept__name: "6车间",
count__gte: 1,
page: 0,
},
queryWm: {
search: "",
@ -427,6 +427,7 @@ export default {
materialType: "wm",
visibleDrawer: false,
dialogHandover:false,
dialogInmTest:false,
};
},
mounted() {
@ -536,6 +537,12 @@ export default {
this.$refs.handoverDialog.open('add');
})
},
inm_test(row){
this.dialogInmTest = true;
this.$nextTick(() => {
this.$refs.inmTestDialog.open().setData(row);
})
},
},
};
</script>