Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
tangyu 2025-05-28 16:32:50 +08:00
commit e487bc42fb
4 changed files with 105 additions and 23 deletions

View File

@ -39,3 +39,11 @@ export function getMaterialLotByResource (query) {
params: query
})
}
export function getItemByMaterialLot (query) {
return request({
url: iep('/z-task-detail/getItemByMaterialLot'),
method: 'get',
params: query
})
}

View File

@ -62,6 +62,14 @@ export function agvReelingManualCall(data) {
})
}
export function agvMaterialCall(data) {
return request({
url: iep('/jm-auto-reeling/agv-material-call'),
method: 'post',
data: data
})
}
export function nextStep(query) {
return request({
url: iep('/router-step/next/step'),

View File

@ -93,7 +93,7 @@
<el-button type="primary" @click="doSearch">搜索</el-button>
<el-button type="primary" @click="doSave">保存</el-button>
<el-button type="primary" @click="doReset">清空</el-button>
<el-button type="primary" @click="doReset">导出</el-button>
<el-button type="primary" @click="doExcel">导出</el-button>
</el-col>
</el-row>
<el-row :gutter="24">
@ -125,35 +125,29 @@
<el-table-column prop="density" label="密度" header-align="center" width="120px">
<template slot-scope="scope">
<div>
<el-input v-model="scope.row.density" type="number" clearable/>
<el-input v-model="scope.row.density" type="number" clearable :disabled="scope.row.isEnable !== 'Y' "/>
</div>
</template>
</el-table-column>
<el-table-column prop="transitionFilmYield" label="过渡膜米数(m)" header-align="center" width="140px">
<template slot-scope="scope">
<div>
<el-input v-model="scope.row.transitionFilmYield" type="number" clearable/>
</div>
</template>
</el-table-column>
<el-table-column prop="rawMaterialUsage" label="过渡膜原料用量" header-align="center" width="120px">
<template slot-scope="scope">
<div>
<el-input v-model="scope.row.rawMaterialUsage" type="number" clearable/>
<el-input v-model="scope.row.transitionFilmYield" type="number" clearable :disabled="scope.row.isEnable !== 'Y' "/>
</div>
</template>
</el-table-column>
<el-table-column prop="rawMaterialUsage" label="过渡膜原料用量" width="120px"/>
<el-table-column prop="impactMaterial" label="冲机料" header-align="center" width="120px">
<template slot-scope="scope">
<div>
<el-input v-model="scope.row.impactMaterial" type="number" clearable/>
<el-input v-model="scope.row.impactMaterial" type="number" clearable :disabled="scope.row.isEnable !== 'Y' "/>
</div>
</template>
</el-table-column>
<el-table-column prop="releaseFilmLength" label="管底离型膜长度" header-align="center" width="120px">
<template slot-scope="scope">
<div>
<el-input v-model="scope.row.releaseFilmLength" type="number" clearable/>
<el-input v-model="scope.row.releaseFilmLength" type="number" clearable :disabled="scope.row.isEnable !== 'Y' "/>
</div>
</template>
</el-table-column>
@ -162,7 +156,6 @@
<el-table-column prop="consumeSumQty" label="消耗数量" />
<el-table-column prop="particleSumQty" label="粒子总用量" width="120px"/>
<el-table-column prop="consumeItemGroup" label="消耗物料的物料组" width="126px"/>
<el-table-column prop="inspectionLevelDesc" label="质检状态" />
<el-table-column prop="aplusSumQty" label="生产A+级品M" width="106px"/>
<el-table-column prop="asumQty" label="生产A级品M" width="100px"/>
<el-table-column prop="bsumQty" label="生产B级品M" width="100px"/>
@ -207,6 +200,7 @@ import {hideLoading, showLoading} from '@/const/loading'
import {setSeq} from "@/util/table";
import {resrceDialogObj, shopOrderDialogObj} from "@/views/mes/prd/product-daily-report/init";
import moment from "moment/moment";
import {iep, mom_wms} from "@/api/prefix";
export default {
name: 'product-daily-report',
@ -266,7 +260,6 @@ export default {
this.form.resrce = this.$route.query.resrce
}
if (this.$route.query.shopOrder) {
console.log(this.$route.query.shopOrder)
this.form.shopOrder = this.$route.query.shopOrder
}
this.getUserWorkShiftList();
@ -423,11 +416,6 @@ export default {
})
},
// // 导出excel
// doExcel() {
// this.downBlobFile(mom_wms('/z-storag-request/exportData'), this.form, '生产入库单.xlsx');
// this.$refs.productDailyReportData.clearSelection();
// },
//表格多选
handleSelectionChange(val) {
this.multipleSelection = val;
@ -446,6 +434,32 @@ export default {
this.productDailyReportList = [];
},
// 导出excel
doExcel() {
let me = this;
let timeRange = me.form.timeRange;
let startTime = "";
let endTime = "";
if(!timeRange || timeRange == null) {
// 生产日期不可为空
return this.$message.error('生产日期' + this.$t('mes.wms.messages.doNotEmpty'))
} else {
startTime = timeRange[0];
endTime = timeRange[1];
}
let param = {
"site": me.site,
"startTime": startTime,
"endTime": endTime,
"workShiftList": me.form.workShiftList,
"resrce": me.form.resrce,
"shopOrder": me.form.shopOrder,
};
this.downBlobFile(iep('/z-product-daily-report/exportData'), param, me.site +'_生产日报.xlsx');
this.$refs.productDailyReportData.clearSelection();
},
handleSizeChange(val) {
let me = this
me.page.size = val

View File

@ -49,7 +49,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="托盘号/条码号" prop="carrierOrInventory">
<el-input v-model="mainForm.carrierOrInventory">
<el-input v-model="mainForm.carrierOrInventory" @change="carrierOrInventoryBlur">
<i v-if="showCarrierOrInventoryInput === 'Y'"
slot="suffix"
class="el-input__icon el-icon-copy-document"
@ -117,8 +117,8 @@
<script>
import {clearValidate} from '@/util/util'
import {showLoading, hideLoading} from '@/const/loading'
import {agvReelingManualCall} from '@/api/mes/wip-nalinv/jm-auto-reeling';
import {subResource, getMaterialLotByResource} from "@/api/mes/smd/eqp-combine";
import {agvMaterialCall} from '@/api/mes/wip-nalinv/jm-auto-reeling';
import {subResource, getMaterialLotByResource, getItemByMaterialLot} from "@/api/mes/smd/eqp-combine";
import {subResourceDialogObj, carrierOrInventoryDialogObj} from "@/views/mes/wip/resource-feeding-extension/init";
import {isBlank} from "@/util/string";
import {fetchCustomFieldsByResrce} from "@/api/mes/prd/operation-out";
@ -160,6 +160,7 @@ export default {
this.mainForm = this.form
this.mainForm.subResource = ''
this.mainForm.carrierOrInventory = ''
this.mainForm = Object.assign({}, this.mainForm)
this.showCarrierOrInventoryInput = 'N'
this.processTaskTypeList()
this.handleTaskTypeChange(this.form.taskType, true)
@ -176,6 +177,33 @@ export default {
},
},
methods: {
// 条码号失去焦点
carrierOrInventoryBlur() {
if (!this.mainForm.carrierOrInventory) {
return this.$message.warning("请先输入或扫描托盘号/条码号!");
}
showLoading();
getItemByMaterialLot({
materialLot: this.mainForm.carrierOrInventory
}).then((response) => {
hideLoading();
if (response.data.code !== 0) {
this.$message.error(response.data.message);
} else {
if (!response.data.data) {
this.$message.error(`条码号[${this.mainForm.carrierOrInventory}]不存在!`);
this.mainForm.carrierOrInventory = '';
} else {
this.mainForm.item = response.data.data.item;
this.mainForm.itemDesc = response.data.data.itemDesc;
this.mainForm.qtyOnHand = response.data.data.qtyOnHand;
}
this.mainForm = Object.assign({}, this.mainForm)
}
}).catch(() => {
hideLoading();
});
},
// 開窗
showDialog(key) {
let me = this;
@ -203,13 +231,36 @@ export default {
let me = this;
me.mainForm.subResource = row.resrce;
me.mainForm.carrierOrInventory = '';
this.mainForm.item = '';
this.mainForm.itemDesc = '';
this.mainForm.qtyOnHand = '';
me.getCustomFieldsByResrce(me.site, row.resrce, "IS_CACHE_LOCATION");
// 调用查询条码
showLoading();
getMaterialLotByResource({
subResource: me.mainForm.subResource
}).then((response) => {
hideLoading();
if (response.data.code !== 0) {
this.$message.error(response.data.message);
} else {
if (response.data.data.length === 1) {
me.mainForm.carrierOrInventory = response.data.data[0].materialLot;
// 调用获取物料信息
this.carrierOrInventoryBlur();
}
}
}).catch(() => {
hideLoading();
});
},
// 托盘号/条码号選擇開窗資料
carrierOrInventorySelected(row) {
let me = this;
me.mainForm.carrierOrInventory = row.materialLot;
this.mainForm = Object.assign({}, this.mainForm)
// 调用获取物料信息
this.carrierOrInventoryBlur();
},
// 获取设备自定义字段
getCustomFieldsByResrce(site, resrce, fieldName) {
@ -281,8 +332,9 @@ export default {
let me = this;
let params = Object.assign({}, me.mainForm);
params.resrce = params.resource;
params.lotNo = params.carrierOrInventory;
showLoading();
agvReelingManualCall(params).then(res => {
agvMaterialCall(params).then(res => {
hideLoading();
if (res.data.code !== 0) {
return this.$message.error(res.data.msg);