Browse Source

领料修改和领料退库

master
shenzhouyu 5 months ago
parent
commit
76c160f266
  1. 5
      src/api/orderIssure/inboundNotification.js
  2. 39
      src/api/orderIssure/soIssueNotify.js
  3. 8
      src/api/productionInbound/productionInboundRequest.js
  4. 157
      src/views/modules/orderIssure/newSoIssueNotify.vue
  5. 1857
      src/views/modules/orderIssure/searchIssureNotify.vue

5
src/api/orderIssure/inboundNotification.js

@ -0,0 +1,5 @@
import { createAPI } from "@/utils/httpRequest.js";
export const getSiteAndBuByUserName = data => createAPI(`/orderIssure/issureNotify/getSiteAndBuByUserName`,'post',data)
export const searchNotifyHeader= data => createAPI(`/orderIssure/issureNotify/searchNotifyHeader`,'post',data)
export const createNotify = data => createAPI(`/orderIssure/issureNotify/createNotify`,'post',data)

39
src/api/orderIssure/soIssueNotify.js

@ -6,4 +6,41 @@ export const createNotify = data => createAPI(`/orderIssure/issureNotify/createN
export const getUserNotifyNo = data => createAPI(`/orderIssure/issureNotify/getUserNotifyNo`,'post',data)
export const deleteNotify = data => createAPI(`/orderIssure/issureNotify/deleteNotify`,'post',data)
export const getNotifyNoDetail = data => createAPI(`/orderIssure/issureNotify/getNotifyNoDetail`,'post',data)
export const getAllNotifyStatus = data => createAPI(`/sys/enum/list`,'get',data)
export const getAllNotifyStatus = data => createAPI(`/sys/enum/list`,'get',data)
export const searchNotifyHeader= data => createAPI(`/orderIssure/issureNotify/searchNotifyHeader`,'post',data)
export const getPartList= data => createAPI(`/orderIssure/issureNotify/getPartList`,'post',data)
export const getSOSBOMForIssure= data => createAPI(`/orderIssure/issureNotify/getSOSBOMForIssure`,'post',data)
export const saveSOIssueNotifyOrderList= data => createAPI(`/orderIssure/issureNotify/saveSOIssueNotifyOrderList`,'post',data)
export const saveMaterialDetail= data => createAPI(`/orderIssure/issureNotify/saveMaterialDetail`,'post',data)
export const deleteNotifySOS= data => createAPI(`/orderIssure/issureNotify/deleteNotifySOS`,'post',data)
export const xiadaNotify= data => createAPI(`/orderIssure/issureNotify/xiadaNotify`,'post',data)
export const searchNotifyOrderList= data => createAPI(`/orderIssure/issureNotify/searchNotifyOrderList`,'post',data)
export const searchNotifyMaterialList= data => createAPI(`/orderIssure/issureNotify/searchNotifyMaterialList`,'post',data)
export const searchSumNotifyMaterialList= data => createAPI(`/orderIssure/issureNotify/searchSumNotifyMaterialList`,'post',data)
export const updateNotifyBu= data => createAPI(`/orderIssure/issureNotify/updateNotifyBu`,'post',data)
export const checkPartStock= data => createAPI(`/orderIssure/issureNotify/checkPartStock`,'post',data)
export const deleteNotifySOSPlus= data => createAPI(`/orderIssure/issureNotify/deleteNotifySOSPlus`,'post',data)
export const updateNotifyStatus= data => createAPI(`/orderIssure/issureNotify/updateNotifyStatus`,'post',data)
export const deleteNotifyMaterial= data => createAPI(`/orderIssure/issureNotify/deleteNotifyMaterial`,'post',data)
export const saveOtherPart= data => createAPI(`/orderIssure/issureNotify/saveOtherPart`,'post',data)
export const getNoControlPartList= data => createAPI(`/orderIssure/issureNotify/getNoControlPartList`,'post',data)
export const searchOtherPart= data => createAPI(`/orderIssure/issureNotify/searchOtherPart`,'post',data)
export const searchNotifyLog= data => createAPI(`/orderIssure/issureNotify/searchNotifyLog`,'post',data)
export const deleteNotifyMaterialWithOutLog= data => createAPI(`/orderIssure/issureNotify/deleteNotifyMaterialWithOutLog`,'post',data)
export const searchNotifyLogClose= data => createAPI(`/orderIssure/issureNotify/searchNotifyLogClose`,'post',data)
export const updateNotifyConfirmStatus= data => createAPI(`/orderIssure/issureNotify/updateNotifyConfirmStatus`,'post',data)
export const updateNotifyBatchConfirmStatus= data => createAPI(`/orderIssure/issureNotify/updateNotifyBatchConfirmStatus`,'post',data)
export const getSiteAndBuByUserName = data => createAPI(`/orderIssure/issureNotify/getSiteAndBuByUserName`,'post',data)
export const getEamWorkShop = data => createAPI(`/orderIssure/issureNotify/getEamWorkShop`,'post',data)

8
src/api/productionInbound/productionInboundRequest.js

@ -0,0 +1,8 @@
import { createAPI } from '@/utils/httpRequest.js'
export const createInboundRequest = data => createAPI('/production/inbound/createRequest', 'post', data)
export const getInboundRequestDetail = data => createAPI('/production/inbound/getRequestDetail', 'post', data)
export const deleteInboundRequest = data => createAPI('/production/inbound/deleteRequest', 'post', data)
export const submitInboundRequest = data => createAPI('/production/inbound/submitRequest', 'post', data)
export const addInboundRequestDetail = data => createAPI('/production/inbound/addRequestDetail', 'post', data)
export const deleteInboundRequestDetail = data => createAPI('/production/inbound/deleteRequestDetail', 'post', data)

157
src/views/modules/orderIssure/newSoIssueNotify.vue

@ -92,11 +92,11 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<!-- <el-col :span="3">
<el-form-item :label="' '">
<el-checkbox v-model="isOutsourcedOrder" @change="queryAllProjectPartModelDetail">外协订单领料</el-checkbox>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row :gutter="10" v-if="notifyNo!=''">
<!-- <el-col :span="3">
@ -272,7 +272,7 @@
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="'生产订单'">
<el-input v-model="notifyOrderData.orderno" disabled></el-input>
<el-input v-model="notifyOrderData.orderNo" disabled></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="6">
@ -282,31 +282,31 @@
</el-col> -->
<el-col :span="6">
<el-form-item :label="'机台'">
<el-input v-model="notifyOrderData.sResourceid" disabled></el-input>
<el-input v-model="notifyOrderData.sResourceID" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="'工单数量'">
<el-input v-model="notifyOrderData.qtyrequired" disabled></el-input>
<el-input v-model="notifyOrderData.qtyRequired" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="'物料'">
<el-input v-model="notifyOrderData.orderno" disabled></el-input>
<el-input v-model="notifyOrderData.partNo" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="18">
<el-col :span="12">
<el-form-item :label="'物料名称'">
<el-input v-model="notifyOrderData.seqno" disabled></el-input>
<el-input v-model="notifyOrderData.partDesc" disabled style="width: 204%" ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="'要求发料时间'">
<el-date-picker style="width: 165px" v-model="notifyOrderData.needDate" type="datetime"
<el-date-picker style="width: 100%" v-model="notifyOrderData.needDate" type="datetime"
value-format="yyyy-MM-dd HH:mm" placeholder="选择日期">
</el-date-picker>
</el-form-item>
@ -318,13 +318,13 @@
</el-col>
<el-col :span="6">
<el-form-item :label="'此次领料数量'">
<el-input-number v-model="notifyOrderData.issureQty" style="padding: 0;width: 100%" :controls="false"
:step="0" :min="0"></el-input-number>
<el-input-number v-model="notifyOrderData.issureQty" style="padding: 0px;width: 100%" :controls="false"
:step="0" :min="0" class="text-right"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="' '">
<el-button type="primary" @click="qtyAllForSeqNo()">全数领料</el-button>
<el-button type="primary" @click="qtyAllForSeqNo()" style="margin-top: 4%;">全数领料</el-button>
</el-form-item>
</el-col>
</el-row>
@ -367,17 +367,17 @@
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="'生产订单'">
<el-input v-model="sobomData.orderno" readonly></el-input>
<el-input v-model="sobomData.orderno" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="'派工单号'">
<el-input v-model="sobomData.seqno" readonly></el-input>
<el-input v-model="sobomData.seqno" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="'产品编码'">
<el-input v-model="sobomData.partNo" readonly></el-input>
<el-input v-model="sobomData.partNo" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
@ -390,9 +390,7 @@
:label="item.columnLabel">
<template slot-scope="scope">
<div v-if="item.columnProp === 'qtyToIssue'">
<el-input-number v-model="scope.row.qtyToIssue" style="padding: 0;width: 100%" :step="0" :min="0"
:controls="false"></el-input-number>
<el-input v-model="scope.row.qtyToIssue" style="height: 11px; width: 98%;" :step="0" :min="0"></el-input>
</div>
<div v-else-if="item.columnProp === 'remark'">
<el-input v-model="scope.row.remark" style="padding: 0;width: 100%"></el-input>
@ -568,6 +566,30 @@
<el-button type="primary" @click="saveOtherPartModalFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="选择申请类型" :close-on-click-modal="false" v-drag :visible.sync="showAddNotifyTypeDialog"
width="400px">
<el-form :inline="true" label-position="top" label-width="500px" style="margin-left: 7px;margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="申请类型">
<el-radio-group v-model="selectedNotifyType">
<el-radio label="production">生产领料单</el-radio>
<el-radio label="outsourced">委外领料单</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" class="issueNotify">
<el-input type="textarea" v-model="selectedNotifyRemark" :rows="3" placeholder="请输入内容" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:30px;text-align:center;">
<el-button type="primary" @click="confirmAddNotify()">确认</el-button>
<el-button type="primary" @click="showAddNotifyTypeDialog=false">取消</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
<walUploadExcel ref="walUploadExcel" @refreshTable="searchTable" v-drag></walUploadExcel>
</div>
@ -580,6 +602,10 @@ import {
getUserNotifyNo,
deleteNotify,
getAllNotifyStatus,
getNotifyNoDetail,
saveSOIssueNotifyOrderList,
getSOSBOMForIssure,
saveMaterialDetail,
} from '@/api/orderIssure/soIssueNotify.js'
import Chooselist from '@/views/modules/common/Chooselist_eam'
import walUploadExcel from './walmart_upload_excel.vue'
@ -602,7 +628,6 @@ export default {
return {
activeName: 'sos',
noControlPartModelFlag: false,
isOutsourcedOrder: false,
buList: [],
partList: [],
partList2: [],
@ -926,7 +951,7 @@ export default {
serialNumber: '701001Table2Orderno',
tableId: '701001Table2',
tableName: '查询派工单',
columnProp: 'orderno',
columnProp: 'orderNo',
headerAlign: 'center',
align: 'center',
columnLabel: '生产订单',
@ -944,7 +969,7 @@ export default {
serialNumber: '701001Table2Itemno',
tableId: '701001Table2',
tableName: '查询派工单',
columnProp: 'itemno',
columnProp: 'itemNo',
headerAlign: 'center',
align: 'right',
columnLabel: '工序',
@ -1016,7 +1041,7 @@ export default {
serialNumber: '701001Table2Qtyrequired',
tableId: '701001Table2',
tableName: '查询派工单',
columnProp: 'qtyrequired',
columnProp: 'qtyRequired',
headerAlign: 'center',
align: 'right',
columnLabel: '工单数量',
@ -1034,7 +1059,7 @@ export default {
serialNumber: '701001Table2Qtyreported',
tableId: '701001Table2',
tableName: '查询派工单',
columnProp: 'qtyreported',
columnProp: 'qtyReported',
headerAlign: 'center',
align: 'right',
columnLabel: '报工数量',
@ -1052,7 +1077,7 @@ export default {
serialNumber: '701001Table2SScheduleddate',
tableId: '701001Table2',
tableName: '查询工单',
columnProp: 'sScheduleddate',
columnProp: 'sScheduledDate',
headerAlign: 'center',
align: 'left',
columnLabel: '工单日期',
@ -1070,7 +1095,7 @@ export default {
serialNumber: '701001Table2SWorkcenterno',
tableId: '701001Table2',
tableName: '查询派工单',
columnProp: 'sWorkcenterno',
columnProp: 'sWorkCenterNo',
headerAlign: 'center',
align: 'left',
columnLabel: '加工中心编码',
@ -1106,7 +1131,7 @@ export default {
serialNumber: '701001Table2SResourceid',
tableId: '701001Table2',
tableName: '查询派工单',
columnProp: 'sResourceid',
columnProp: 'sResourceID',
headerAlign: 'center',
align: 'left',
columnLabel: '机台编码',
@ -1340,6 +1365,9 @@ export default {
umid: '',
remark: '',
},
showAddNotifyTypeDialog: false,
selectedNotifyType: 'production',
selectedNotifyRemark:'',
}
},
@ -1351,13 +1379,13 @@ export default {
created() {
//
// this.getButtonAuthData()
this.getButtonAuthData()
// site bu
// this.getSiteAndBuByUserName()
//this.getSiteAndBuByUserName()
//
/* this.favoriteIsOk()
/* this.favoriteIsOk()*/
this.getUserNotifyNo() */
this.getUserNotifyNo()
//
/* this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
this.getTableUserColumn(this.$route.meta.menuId+'table2',2)
@ -1482,14 +1510,15 @@ export default {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
}
this.getAllNotifyStatus()
getUserNotifyNo(inData).then(({ data }) => {
if (data.code === 0) {
if (data.row != null) {
this.notifyNo = data.row.notifyNo
this.notifyData = data.row
this.getNotifyNoDetail()
this.searchOtherPart('非BOM物料')
this.searchOtherPart('不管控物料')
/* this.searchOtherPart('BOM')
this.searchOtherPart('不管控物料') */
} else {
this.notifyNo = ''
this.notifyData = {
@ -1534,19 +1563,31 @@ export default {
})
},
addNotify() {
this.showAddNotifyTypeDialog = true
},
confirmAddNotify() {
let outWorkOrderFlag = 'N'
if (this.selectedNotifyType === 'outsourced') {
outWorkOrderFlag = 'Y'
} else {
outWorkOrderFlag = 'N'
}
let inData = {
site: this.$store.state.user.site,
userName: this.$store.state.user.name,
outWorkOrderFlag: outWorkOrderFlag,
remark: this.selectedNotifyRemark,
}
this.getAllNotifyStatus()
createNotify(inData).then(({ data }) => {
if (data.code === 0) {
this.showAddNotifyTypeDialog = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {},
})
this.getAllNotifyStatus()
this.getUserNotifyNo()
} else {
this.$alert(data.msg, '错误', {
@ -1570,16 +1611,18 @@ export default {
return false
}
}
console.log("row",row);
this.notifyOrderData.partNo = row.partNo
this.notifyOrderData.orderno = row.orderno
this.notifyOrderData.itemno = row.itemno
this.notifyOrderData.seqno = row.seqno
this.notifyOrderData.orderNo = row.orderNo
this.notifyOrderData.itemNo = row.itemNo
this.notifyOrderData.seqNo = row.seqNo
this.notifyOrderData.partDesc = row.partDesc
this.notifyOrderData.qtyrequired = row.qtyrequired
this.notifyOrderData.sResourceid = row.sResourceid
this.notifyOrderData.qtyRequired = row.qtyRequired
this.notifyOrderData.sResourceID = row.sResourceID
this.notifyOrderData.issureQty = ''
this.notifyOrderData.needDate = this.dayjs().format('YYYY-MM-DD HH:mm')
this.notifyOrderData.locationNo = row.sResourceid
this.notifyOrderData.locationNo = row.sResourceID
this.saveSeqNoModalFlag = true
},
saveSOS() {
@ -1632,7 +1675,6 @@ export default {
locationNo: row.locationNo,
needDate: row.needDate,
issureQty: row.issureQty,
outWorkOrderFlag: 'N',
}
saveSOIssueNotifyOrderList(inData).then(({ data }) => {
if (data.code === 0) {
@ -1649,7 +1691,7 @@ export default {
})
},
qtyAllForSeqNo() {
this.notifyOrderData.issureQty = this.notifyOrderData.qtyrequired
this.notifyOrderData.issureQty = this.notifyOrderData.qtyRequired
},
qtyAllForBom(row) {
row.qtyToIssue = row.qtyRequired
@ -1696,8 +1738,6 @@ export default {
this.materialModalFlag = false
},
chooseSOSModal() {
console.log('isOutsourcedOrder', this.isOutsourcedOrder)
this.seqNoData = {
site: this.$store.state.user.site,
orderno: '',
@ -1713,11 +1753,11 @@ export default {
this.seqNoModalFlag = true
},
searchSOSRouting() {
/* getSOScheduledRoutingListForIssure(this.seqNoData).then(({ data }) => {
getSOScheduledRoutingListForIssure(this.seqNoData).then(({ data }) => {
if (data.code === 0) {
this.seqNoList = data.rows
}
}) */
})
},
saveMaterialDetail() {
for (let i = 0; i < this.sobomList.length; i++) {
@ -2127,21 +2167,46 @@ export default {
}
getAllNotifyStatus(inData).then(({ data }) => {
this.notifyStatusList = data
console.log('notifyStatusList', this.notifyStatusList)
})
},
},
}
</script>
<style >
<style scoped>
.board666 .el-table .error-row {
background: #f86868;
}
/* 在 <style scoped> 下,使用深度选择器作用到 ElementUI 内部结构 */
.issueNotify {
width: 100%;
height: auto;
}
.issueNotify /deep/ .el-form-item__content {
display: inline !important;
}
.site-content > .el-tabs > .el-tabs__content > .site-tabs__tools {
top: 35px;
height: 40px;
font-size: 16px;
line-height: 40px;
}
.text-right /deep/ .el-input__inner {
text-align: right !important;
}
.text-right /deep/ .el-input-number__input {
text-align: right !important;
}
.yzzTable /deep/.el-table .cell {
line-height: 20px;
font-size: 12px;
height: 20px;
}
</style>

1857
src/views/modules/orderIssure/searchIssureNotify.vue
File diff suppressed because it is too large
View File

Loading…
Cancel
Save