This commit is contained in:
周炼 2024-11-27 14:57:40 +08:00
commit d605977d53
8 changed files with 166 additions and 90 deletions

View File

@ -66,6 +66,7 @@
:resultList.sync="resultList"
:getShopOrderTypeList.sync="getShopOrderTypeList"
:opTypeList.sync="opTypeList"
:qcSubCategoriesList.sync = "qcSubCategoriesList"
@toSearchChange="searchChange"
@toSearchReset="searchReset"
></SearchUI>
@ -270,6 +271,7 @@ import { copyJSON } from '@/util/util'
import { isBlank } from '@/util/string'
import { renderSpecNameHeader, clear } from '@/components/table-header-pop/render'
import inspecProcess from "@/views/mes/qms/inspec/content/inspec-process.vue";
import {listByActivityId} from "@/api/admin/activity-option";
export default {
name: 'inspec',
@ -383,6 +385,8 @@ export default {
},
},
params: {},
activityIdQcSubList:[],
activityIdUserGroupList:[],
}
},
computed: {
@ -413,6 +417,9 @@ export default {
this.qms_insp_job_complete = this.permissions['qms_insp_job_complete']
this.qms_insp_job_judge = this.permissions['qms_insp_job_judge']
this.qms_insp_job_close = this.permissions['qms_insp_job_close']
//获取作业规则
let activityId = this.$route.query.ACTIVITY_ID
this.initList(activityId)
getFactor()
.then((res) => {
this.itemData = res.data.data.records
@ -420,6 +427,33 @@ export default {
.catch(() => {})
},
methods: {
// 作业规则
initList(activityId ) {
let me = this
if (isBlank(activityId)){
return;
}
showLoading()
listByActivityId(activityId).then(response => {
hideLoading()
if (response.data.code !== 0) {
return me.$message.error(response.data.msg)
}
let optionList = response.data.data
for(let i=0;i<optionList.length;i++){
// 用户组
if(optionList[i].optionName === 'USER_GROUP'){
me.activityIdUserGroupList = optionList[i].optionValue.split(";")
}
// 检验细类
if(optionList[i].optionName === 'QC_SUB_CATEGORIES'){
me.activityIdQcSubList = optionList[i].optionValue.split(";")
}
}
}).catch(e => {
hideLoading()
})
},
async selectRow(row) {
this.tableData.forEach((t) => {
if (t.handle == row.handle) {
@ -911,6 +945,8 @@ export default {
}
if (Object.keys(data).length == 0) return
data.site = this.site
data.activityIdQcSubList = this.activityIdQcSubList
data.activityIdUserGroupList = this.activityIdUserGroupList
await this.getList(data)
},
// 清空搜索

View File

@ -13,8 +13,9 @@ export const searchRules = {}
export const tableObj = [
{ prop: 'qcPlan', label: 'mes.qcPlan', width: '200' },
{ prop: 'item', label: 'mes.product_number', width: '200' },
{ prop: 'itemDesc', label: 'mes.itemDesc', width: '200'},
{ prop: 'shopOrder', label: 'mes.work_order', width: '200' },
{ prop: 'lotNo', label: 'mes.ord.prdBatch', width: '200' },
{ prop: 'lotNo', label: '生产批/条码号', width: '200' },
{ prop: 'operation', label: 'mes.process', width: '120' },
{ prop: 'resrce', label: 'mes.equipment', width: '120' },
{ prop: 'newStatus', label: 'crud.column.label.status1', width: '120' },
@ -145,6 +146,15 @@ export const shopOrderSearchObj = {
],
queryParam: {},
}
//工作中心
export const workCenterObj = {
condition: 'workCenter',
tableColumn: [
{ prop: 'workCenter', label: '工作中心' },
{ prop: 'description', label: 'common.description' },
],
queryParam: {},
}
// 异常原因
export const reasonCodeObj = {

View File

@ -51,6 +51,13 @@
:modal-fetch-fun="getResrce"
@inputDialogSelected="dialogSelected"
/>
<!-- 工作中心開窗 -->
<input-select-dialog-cust
:modal-obj.sync="workCenterObj"
:modal-show.sync="wcShow"
:modal-fetch-fun="getWorkCenter"
@inputDialogSelected="dialogSelected"
/>
<el-form
ref="searchForm"
:model="searchForm"
@ -264,6 +271,31 @@
</el-button>
</el-col>
</el-row>
<!-- 第五行 -->
<el-row :gutter="15">
<el-col :span="6">
<!-- 检验细类 -->
<el-form-item label="检验细类:" prop="qcSubCategories">
<el-select v-model="searchForm.qcSubCategories" clearable>
<el-option v-for="item in qcSubCategoriesList" :key="item.value" :label="$t(item.label)"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<!-- 工作中心 -->
<el-form-item prop="workCenter" label="工作中心">
<el-input v-model="searchForm.workCenter">
<i
slot="suffix"
class="el-input__icon el-icon-copy-document"
@click.stop="showDialog('workCenter')"
></i>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
@ -276,20 +308,21 @@ import { fetchList as getUserGroup } from '@/api/admin/role'
import { getLot } from '@/api/mes/wip/lot-check'
import { getCurrentItem as getItem } from '@/api/mes/prd/item'
import {
eqpObjSearch,
itemObj,
lotNoObj,
lotStatus,
opObj,
qcPlanSearchObj,
searchRules,
shopOrderSearchObj,
eqpObjSearch,
itemObj,
lotNoObj,
lotStatus,
opObj,
qcPlanSearchObj,
searchRules,
shopOrderSearchObj, workCenterObj,
} from '@/views/mes/qms/inspec/init'
import { userGroupObjP } from '@/views/mes/qms/qc-plan/init'
import { fetchList as getQcPlan } from '@/api/mes/qms/qc-plan'
import LOTNO from '../ui/lot-no.vue'
import { isBlank } from '@/util/string'
import tooltip from '@/components/tooltip/index.vue'
import {fetchList as getWorkCenter} from '@/api/mes/prd/work-center'
export default {
components: { LOTNO, tooltip },
@ -307,6 +340,10 @@ export default {
type: Array,
default: [],
},
qcSubCategoriesList: {
type: Array,
default: [],
},
opTypeList: {
type: Array,
default: [],
@ -337,6 +374,9 @@ export default {
eqpShow: false,
getResrce,
searchRules,
getWorkCenter,//工作中心
wcShow:false,
workCenterObj
}
},
mounted() {},
@ -370,6 +410,9 @@ export default {
case 'resrce':
this.eqpShow = true
break
case 'workCenter' :
this.wcShow = true
break
}
},
dialogSelected(row) {
@ -396,6 +439,10 @@ export default {
case 'resrce':
obj['resrce'] = row.resrce
break
case 'workCenter':
obj['workCenter'] = row.workCenter
obj['workCenterBo'] = row.handle
break
}
let box = Object.assign({}, this.searchForm, obj)
this.$emit('update:searchForm', box)

View File

@ -181,20 +181,19 @@
<el-col :span="24">
<el-table :data="materialConsumptionList" max-height="360"
:header-cell-style="{ 'text-align': 'center' }"
highlight-current-row
ref="mtrlConsMultipleTable"
@selection-change="mtrlConsSelectionChange"
:row-class-name="tableRowClassName"
:cell-style="{ 'text-align': 'center' }" tooltip-effect="dark" border style="width: 100%">
<el-table-column type="selection" width="50"></el-table-column>
<el-table-column type="index" width="60" fixed="left" label="序号"></el-table-column>
<el-table-column prop="fabNo" label="车间"></el-table-column>
<el-table-column prop="workCenter" label="工作中心" width="100"></el-table-column>
<el-table-column prop="shopOrder" label="生产工单"></el-table-column>
<el-table-column prop="lotNo" label="LOT号"></el-table-column>
<el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="50" fixed="left" label="序号"></el-table-column>
<el-table-column prop="fabNo" label="车间" fixed="left"></el-table-column>
<el-table-column prop="workCenter" label="工作中心" width="100" fixed="left"></el-table-column>
<el-table-column prop="shopOrder" label="生产工单" width="120" fixed="left"></el-table-column>
<el-table-column prop="lotNo" label="LOT号" width="120" fixed="left"></el-table-column>
<el-table-column prop="componentItem" label="组件物料"></el-table-column>
<el-table-column prop="componentItem" label="物料描述"></el-table-column>
<el-table-column prop="materialLot" label="物料批次"></el-table-column>
<el-table-column prop="itemDesc" label="物料描述"></el-table-column>
<el-table-column prop="materialLot" label="物料批次" width="120"></el-table-column>
<el-table-column prop="mainQty" label="数量"></el-table-column>
<el-table-column prop="mainUom" label="单位"></el-table-column>
<el-table-column prop="subQty" label="辅单位数量" width="110"></el-table-column>
@ -207,13 +206,13 @@
</template>
</el-table-column>
<el-table-column prop="syncPostingDate" label="过账日期" width="110"></el-table-column>
<el-table-column prop="warehouseCode" label="仓库"></el-table-column>
<el-table-column prop="storageLocation" label="存储位置"></el-table-column>
<el-table-column prop="erpInventory" label="ERP仓库"></el-table-column>
<el-table-column prop="warehouseCode" label="仓库" show-overflow-tooltip></el-table-column>
<el-table-column prop="storageLocation" label="存储位置" show-overflow-tooltip></el-table-column>
<el-table-column prop="erpInventory" label="ERP仓库" show-overflow-tooltip></el-table-column>
<el-table-column prop="reservedNo" label="预留编号"></el-table-column>
<el-table-column prop="reservedLine" label="预留行号"></el-table-column>
<el-table-column prop="syncStatus" label="SAP同步状态" width="110"></el-table-column>
<el-table-column prop="syncMsgText" label="SAP回复文本" width="160"></el-table-column>
<el-table-column prop="syncMsgText" label="SAP回复文本" width="160" show-overflow-tooltip></el-table-column>
<el-table-column prop="syncMsgNo" label="SAP消息编号" width="120"></el-table-column>
<el-table-column prop="syncSubmitter" label="SAP提交用户" width="110"></el-table-column>
<el-table-column prop="syncPostingDate" label="SAP同步日期" width="110"></el-table-column>
@ -250,20 +249,19 @@
<el-row :gutter="24">
<el-col :span="24">
<el-table :data="materialCompleteList" max-height="360" :header-cell-style="{ 'text-align': 'center' }"
highlight-current-row
ref="mtrlCompleteMultipleTable"
:row-class-name="tableRowClassName"
@selection-change="mtrlCompleteSelectionChange"
:cell-style="{ 'text-align': 'center' }" tooltip-effect="dark" border style="width: 100%">
<el-table-column type="selection" width="50"></el-table-column>
<el-table-column type="index" width="60" fixed="left" label="序号"></el-table-column>
<el-table-column prop="fabNo" label="车间"></el-table-column>
<el-table-column prop="workCenter" label="工作中心" width="120"></el-table-column>
<el-table-column prop="shopOrder" label="生产工单" width="100"></el-table-column>
<el-table-column prop="lotNo" label="LOT号" width="120"></el-table-column>
<el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="50" fixed="left" label="序号"></el-table-column>
<el-table-column prop="fabNo" label="车间" fixed="left"></el-table-column>
<el-table-column prop="workCenter" label="工作中心" width="120" fixed="left"></el-table-column>
<el-table-column prop="shopOrder" label="生产工单" width="110" fixed="left" show-overflow-tooltip></el-table-column>
<el-table-column prop="lotNo" label="LOT号" width="120" show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="item" label="产出物料"></el-table-column>
<el-table-column prop="item" label="物料描述"></el-table-column>
<el-table-column prop="sapBatchNo" label="SAP批次" width="130"></el-table-column>
<el-table-column prop="itemDesc" label="物料描述"></el-table-column>
<el-table-column prop="sapBatchNo" label="SAP批次" width="130" show-overflow-tooltip></el-table-column>
<el-table-column prop="externalLot" label="客户批号"></el-table-column>
<el-table-column prop="productType" label="入库类型"></el-table-column>
<el-table-column prop="mainQty" label="数量"></el-table-column>
@ -279,13 +277,13 @@
</template>
</el-table-column>
<el-table-column prop="syncPostingDate" label="过账日期" width="110"></el-table-column>
<el-table-column prop="warehouseCode" label="仓库"></el-table-column>
<el-table-column prop="storageLocation" label="存储位置"></el-table-column>
<el-table-column prop="erpInventory" label="ERP仓库"></el-table-column>
<el-table-column prop="warehouseCode" label="仓库" show-overflow-tooltip></el-table-column>
<el-table-column prop="storageLocation" label="存储位置" show-overflow-tooltip></el-table-column>
<el-table-column prop="erpInventory" label="ERP仓库" show-overflow-tooltip></el-table-column>
<el-table-column prop="inventoryMark" label="特殊库存标识" width="110"></el-table-column>
<el-table-column prop="inventoryType" label="库存类型"></el-table-column>
<el-table-column prop="syncStatus" label="SAP同步状态" width="110"></el-table-column>
<el-table-column prop="syncMsgText" label="消息文本" width="160"></el-table-column>
<el-table-column prop="syncMsgText" label="消息文本" width="160" show-overflow-tooltip></el-table-column>
<el-table-column prop="syncSubmitter" label="SAP提交用户" width="110"></el-table-column>
<el-table-column prop="syncPostingDate" label="SAP同步日期" width="110"></el-table-column>
<el-table-column prop="syncVoucherNo" label="SAP凭证编号" width="110"></el-table-column>
@ -318,19 +316,18 @@
<el-row :gutter="24">
<el-col :span="24">
<el-table :data="wipReportList" max-height="360" :header-cell-style="{ 'text-align': 'center' }"
highlight-current-row
ref="wipReportMultipleTable"
@selection-change="wipReportSelectionChange"
:cell-style="{ 'text-align': 'center' }" tooltip-effect="dark" border style="width: 100%">
<el-table-column type="selection" width="50"></el-table-column>
<el-table-column type="selection" width="40"></el-table-column>
<el-table-column type="index" width="50" fixed="left" label="序号"></el-table-column>
<el-table-column prop="fabNo" label="车间"></el-table-column>
<el-table-column prop="workCenter" label="工作中心" width="100"></el-table-column>
<el-table-column prop="shopOrder" label="生产工单" width="130"></el-table-column>
<el-table-column prop="statusDescription" label="生产工单状态" width="120"></el-table-column>
<el-table-column prop="operation" label="工序"></el-table-column>
<el-table-column prop="fabNo" label="车间" fixed="left"></el-table-column>
<el-table-column prop="workCenter" label="工作中心" width="100" fixed="left"></el-table-column>
<el-table-column prop="shopOrder" label="生产工单" width="130" fixed="left"></el-table-column>
<el-table-column prop="statusDescription" label="工单状态" show-overflow-tooltip></el-table-column>
<el-table-column prop="operation" label="工序" show-overflow-tooltip></el-table-column>
<el-table-column prop="item" label="产出物料" width="100"></el-table-column>
<el-table-column prop="itemDesc" label="物料描述" width="100"></el-table-column>
<el-table-column prop="itemDesc" label="物料描述" width="100" show-overflow-tooltip></el-table-column>
<el-table-column prop="mainUom" label="单位"></el-table-column>
<el-table-column prop="qtyDone" label="产出数量"></el-table-column>
<el-table-column prop="qtyScrapped" label="报废数量"></el-table-column>
@ -653,7 +650,7 @@ export default {
.then(res => {
hideLoading();
me.materialConsumptionList = res.data.data.records;
this.page.total = res.data.data.records.length;
this.page.total = res.data.data.total;
})
.catch(error => {
hideLoading();
@ -667,7 +664,7 @@ export default {
.then(res => {
hideLoading();
me.materialCompleteList = res.data.data.records;
this.pageCom.total = res.data.data.records.length;
this.pageCom.total = res.data.data.total;
})
.catch(error => {
hideLoading();
@ -681,7 +678,7 @@ export default {
.then(res => {
hideLoading();
me.wipReportList = res.data.data.records;
this.wipRe.total = res.data.data.records.length;
this.wipRe.total = res.data.data.total;
})
.catch(error => {
hideLoading();
@ -727,23 +724,29 @@ export default {
handleWipReSizeChange(val) {
this.wipRe.pageSize = val;
this.searchFormObjAction();
},
handleWipReCurrentChange(val) {
this.wipRe.currentPage = val;
this.searchFormObjAction();
},
handlePageComSizeChange(val) {
this.pageCom.pageSize = val;
this.searchFormObjAction();
},
handlePageComCurrentChange(val) {
this.pageCom.currentPage = val;
this.searchFormObjAction();
},
handleMcSizeChange(val) {
this.page.pageSize = val;
this.searchFormObjAction();
},
handleMcCurrentChange(val) {
this.page.currentPage = val;
this.searchFormObjAction();
},
getRowKey(row) {

View File

@ -722,8 +722,6 @@ export default {
this.multipleSelection = val;
},
// 查询单据号是否存在
// 单据补打印
doRePrint() {
let me = this;

View File

@ -368,20 +368,7 @@ export default {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 20 // 每页显示多少条
},
pageCom: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 20 // 每页显示多少条
},
wipRe: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 20 // 每页显示多少条
},
wipReportSelection: [],
mtrlConsSelection: [],
mtrlCompleteSelection: []
}
};
},
created() {
@ -418,7 +405,7 @@ export default {
.then(res => {
hideLoading();
me.documentList = res.data.data.records;
this.page.total = res.data.data.records.length;
me.page.total = res.data.data.total;
})
.catch(error => {
hideLoading();
@ -606,15 +593,16 @@ export default {
let me = this;
me.searchFormObj = {
site: getStore({name: 'tenantId'}),
u8Code: '',
outState: '',
type: '',
startTime: '',
endTime: ''
po: '',
customerNo: '',
documentNo: ''
};
me.materialConsumptionList = [];
me.wipReportList = [];
me.materialCompleteList = [];
me.documentList = [];
me.page = {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 20 // 每页显示多少条
}
},
// 检索收获单明细
@ -631,25 +619,13 @@ export default {
});
},
handleWipReSizeChange(val) {
this.wipRe.pageSize = val;
},
handleWipReCurrentChange(val) {
this.wipRe.currentPage = val;
},
handlePageComSizeChange(val) {
this.pageCom.pageSize = val;
},
handlePageComCurrentChange(val) {
this.pageCom.currentPage = val;
},
handleSizeChange(val) {
this.page.pageSize = val;
this.searchFormObjAction();
},
handleCurrentChange(val) {
this.page.currentPage = val;
this.searchFormObjAction();
},
getRowKey(row) {

View File

@ -471,7 +471,7 @@ export default {
importDialogVisible: false,
isDisabledList:[], // 单据是否可手动创建
isShow: {
sourceWarehouse: ['COST_CENTER_RETURNED','ENGINEER_RETURNED','RAND_RETURNED','INTERCOMPANY_STORAGE', 'PROCUREMENT_STORAGE','SALES_RETURN','ATTRIBUTE_TRANSFER'],// 不显示
sourceWarehouse: ['COST_CENTER_RETURNED','ENGINEER_RETURNED','RAND_RETURNED','INTERCOMPANY_STORAGE', 'PROCUREMENT_STORAGE','SALES_RETURN',],// 不显示
targetWarehouse: ['COST_CENTER_RECEIVE','ENGINEER_RECEIVE','RANDD_RECEIVE','SCRAP_OUT', 'SECRECY_RECEIVE','SECRECY_RETURNED',
'INTERCOMPANY_RETURN','SALES_OUT','PURCHASE_RETURN','ATTRIBUTE_TRANSFER'],// 不显示
shopOrder: ['ATTRIBUTE_TRANSFER','INTERCOMPANY_STORAGE','INTERCOMPANY_RETURN','SALES_OUT', 'SALES_RETURN','PROCUREMENT_STORAGE',
@ -1045,6 +1045,11 @@ export default {
if (indices[i].item == undefined) {
return me.$message.error("物料不能为空");
}
if (me.documentType === 'STORES_REQUISITION') {
if (indices[i].wmsStorageBinBo === undefined || indices[i].wmsStorageBinBo === null) {
return me.$message.error("第【"+(i+1)+"】行货格不能为空");
}
}
// if (me.documentType === 'STORES_REQUISITION') {
// if (indices[i].remarks == undefined) {
// return me.$message.error("备注不能为空");
@ -1105,6 +1110,11 @@ export default {
//单据号去重
let documents = [];
for (let i = 0; i < indices.length; i++) {
if (me.documentType === 'STORES_REQUISITION') {
if (indices[i].wmsStorageBinBo === undefined || indices[i].wmsStorageBinBo === null) {
return me.$message.error("第【"+(i+1)+"】行货格不能为空");
}
}
if (documents.indexOf(indices[i].documentNo) == -1 && !isBlank(indices[i].documentNo)) {
documents.push(indices[i].documentNo);
}

View File

@ -451,8 +451,6 @@
me.documentNo = me.formObj.documentNo;
getDocumentDetail(me.formObj.documentNo).then(res => {
if (res.data.code == 0) {
console.log(res.data.data)
debugger
for (let i = 0; i < res.data.data.length; i++) {
let obj = Object.assign({}, {
"item": res.data.data[i].item,
@ -494,7 +492,6 @@
me.formObj.itemList = [];
me.submitList = [];
getDocumentDetail(me.formObj.documentNo).then(res => {
debugger
if (res.data.code == 0) {
if (res.data.data[0].documentType !== me.documentType) {
if (me.documentType === 'PROCUREMENT_STORAGE') {
@ -535,7 +532,6 @@
showItemDialog(index, row) {
//判断是物料类型弹出不同的表单
let me = this;
debugger
//判断行项目是否已经关闭,关闭则不可扫描条码和保存
if (row.state === "CLOSE") {
this.isUse = true;