diff --git a/fe/PC/src/api/wms-api.js b/fe/PC/src/api/wms-api.js index 018705485..14e11ae80 100644 --- a/fe/PC/src/api/wms-api.js +++ b/fe/PC/src/api/wms-api.js @@ -656,14 +656,6 @@ export async function productionRecycleJobHandle(id,data) { }) } -// 客户退拆任务-完成 todo -export async function productionRecycleJobComplete(id) { - return request({ - url: baseURL + 'wms/store/production-recycle-job/handle/'+id, - method: 'post', - }) -} - // 客户退拆任务-执行后打印 export async function productRecycleNoteExport(data) { return request({ @@ -674,6 +666,14 @@ export async function productRecycleNoteExport(data) { }) } +// 客户退拆任务-完成 todo +// export async function productionRecycleJobComplete(id) { +// return request({ +// url: baseURL + 'wms/store/production-recycle-job/handle/'+id, +// method: 'post', +// }) +// } + // 根据编号获取字典信息 // export function getDictByCode(code) { // return request({ diff --git a/fe/PC/src/filters/status.js b/fe/PC/src/filters/status.js index 0309c25dd..adbaf8099 100644 --- a/fe/PC/src/filters/status.js +++ b/fe/PC/src/filters/status.js @@ -83,6 +83,11 @@ import store from '@/store/index' value: 3, background:"#31BB99", }, + 4: { + label: "部分完成", + value: 4, + background:"#21DF4B", + }, 8: { label: "关闭", value: 8, @@ -2470,7 +2475,7 @@ export function utensilType(index, prop) { }, 2: { value: 2, - label: "客户" + label: "外物流" }, } return Enum(type, index, prop) diff --git a/fe/PC/src/router/index.js b/fe/PC/src/router/index.js index 2bded652b..139a62f22 100644 --- a/fe/PC/src/router/index.js +++ b/fe/PC/src/router/index.js @@ -318,6 +318,54 @@ export const constantRoutes = [ } }] }, + { + path: '/', + component: Layout, + redirect: '/gridlayout', + hidden: true, + children: [{ + path: 'IssueRequestZP', + component: () => import('@/views/materialIssueManage/ZP/IssueRequestZP.vue'), + name: 'IssueRequestZP', + meta: { + keepAlive : true, + title: '人工发料申请(装配)', + icon: '成品发运任务', + } + }] + }, + { + path: '/', + component: Layout, + redirect: '/gridlayout', + hidden: true, + children: [{ + path: 'IssueJobZP', + component: () => import('@/views/materialIssueManage/ZP/IssueJobZP.vue'), + name: 'IssueJobZP', + meta: { + keepAlive : true, + title: '人工发料任务(装配)', + icon: '成品发运任务', + } + }] + }, + { + path: '/', + component: Layout, + redirect: '/gridlayout', + hidden: true, + children: [{ + path: 'IssueNoteZP', + component: () => import('@/views/materialIssueManage/ZP/IssueNoteZP.vue'), + name: 'IssueNoteZP', + meta: { + keepAlive : true, + title: '人工发料记录(装配)', + icon: '成品发运任务', + } + }] + }, { path: '/', component: Layout, diff --git a/fe/PC/src/utils/detailsTableColumns/index.js b/fe/PC/src/utils/detailsTableColumns/index.js index c2ec7c55f..6d4d025e6 100644 --- a/fe/PC/src/utils/detailsTableColumns/index.js +++ b/fe/PC/src/utils/detailsTableColumns/index.js @@ -1760,6 +1760,7 @@ export const customerDismantleJob = [ { label: "标包数量", prop: 'stdPackQty' }, { label: "单位", prop: 'uom' }, { label: "数量", prop: 'qty' }, + { label: "已完成数量", prop: 'executedQty' }, { label: "Bom版本", prop: 'bomVersion' }, { label: "库位代码", prop: 'locationCode' }, { label: "库区", prop:"locationArea" }, diff --git a/fe/PC/src/utils/tableColumns/index.js b/fe/PC/src/utils/tableColumns/index.js index f1dd461e2..231a34854 100644 --- a/fe/PC/src/utils/tableColumns/index.js +++ b/fe/PC/src/utils/tableColumns/index.js @@ -2354,6 +2354,7 @@ export const customerDismantleJob = [ type: "name", width: orderWidth }, + { label: "申请单号", prop: "requestNumber",width: orderWidth }, { label: "状态", prop: "jobStatus", type: "tagFilter", filters: "jobStatus" }, { label: "承接时间", prop: 'acceptTime', type: "dateTime" }, { label: "承接者用户名", prop: 'acceptUserName' }, @@ -4073,7 +4074,9 @@ export const Utensil = [ fixed: "left", type: "name" }, - { label: _Names.stdPackQty, prop: "stdQty",isNumber:true }, + // { label: _Names.stdPackQty, prop: "stdQty",isNumber:true }, + { label: "器具类型", prop: 'containerType',type:"filter",filters:"utensilType" }, + { label: "器具规格", prop: "specificationsType",type: "filter", filters: "getDict" , dictType:"ContainerSpecificationsType"}, { label: _Public.creationTime, prop: "creationTime", type: "dateTime" }, { label: '创建人', prop: "creator" }, { label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" }, @@ -4105,8 +4108,8 @@ export const callEmptyUtensilJob = [ }, { label: "状态", prop: "jobStatus",type: "tagFilter", filters: "jobStatus" }, { label: "器具呼叫号码", prop: 'containerRequestNumber' }, - { label: "器具类型", prop: 'containerType' }, - { label: "器具规格", prop: 'specificationsType' }, + { label: "器具类型", prop: 'containerType',type:"filter",filters:"utensilType" }, + { label: "器具规格", prop: "specificationsType",type: "filter", filters: "getDict" , dictType:"ContainerSpecificationsType"}, { label: "呼叫库位代码", prop: 'requestLocationCode' }, { label: "任务类型", prop: "jobType", type: "filter", filters: "taskType" }, { label: "任务描述", prop: 'jobDescription' }, diff --git a/fe/PC/src/utils/tabsDesTions/index.js b/fe/PC/src/utils/tabsDesTions/index.js index d1521527a..032cf1c15 100644 --- a/fe/PC/src/utils/tabsDesTions/index.js +++ b/fe/PC/src/utils/tabsDesTions/index.js @@ -1699,6 +1699,7 @@ export const customerDismantleJob = [ fixed: "left", type: "name", }, + { label: "申请单号", prop: "requestNumber" }, { label: "状态", prop: "jobStatus", type: "tagFilter", filters: "jobStatus" }, { label: "承接时间", prop: 'acceptTime', type: "dateTime" }, { label: "承接者用户名", prop: 'acceptUserName' }, @@ -2946,7 +2947,9 @@ export const PositionCode = [ // 器具 export const Utensil = [ { label: '器具代码',prop: "code",}, - { label: _Names.stdPackQty, prop: "stdQty" }, + // { label: _Names.stdPackQty, prop: "stdQty" }, + { label: "器具类型", prop: 'containerType',type:"filter",filters:"utensilType" }, + { label: "器具规格", prop: "specificationsType",type: "filter", filters: "getDict" , dictType:"ContainerSpecificationsType"}, { label: _Public.creationTime, prop: "creationTime", type: "dateTime" }, { label: '创建人', prop: "creator" }, { label: _Public.lastModificationTime, prop: "lastModificationTime", type: "dateTime" }, @@ -2967,8 +2970,8 @@ export const callEmptyUtensilJob = [ { label: "任务编号", prop: "number" }, { label: "状态", prop: "status",type: "tagFilter", filters: "jobStatus" }, { label: "器具呼叫号码", prop: 'containerRequestNumber' }, - { label: "器具类型", prop: 'containerType' }, - { label: "器具规格", prop: 'specificationsType' }, + { label: "器具类型", prop: 'containerType',type:"filter",filters:"utensilType" }, + { label: "器具规格", prop: "specificationsType",type: "filter", filters: "getDict" , dictType:"ContainerSpecificationsType"}, { label: "呼叫库位代码", prop: 'requestLocationCode' }, { label: "任务类型", prop: "jobType", type: "filter", filters: "taskType" }, { label: "任务描述", prop: 'jobDescription' }, diff --git a/fe/PC/src/views/basicData/ItemsManage/Utensil.vue b/fe/PC/src/views/basicData/ItemsManage/Utensil.vue index 4ffb94cd1..21de53db4 100644 --- a/fe/PC/src/views/basicData/ItemsManage/Utensil.vue +++ b/fe/PC/src/views/basicData/ItemsManage/Utensil.vue @@ -132,57 +132,47 @@ export default { CreateFormData: { code:null, codeSuffix:null, - type:"Q", - stdQty:null, + prefixType:"Q", creator: null, remark:null, + model:null, + type:null, }, //编辑 editFormData: { code:null, codeSuffix:null, - type:"Q", - stdQty:null, + prefixType:"Q", remark:null, creator: null, - concurrencyStamp: "" + concurrencyStamp: "", + model:null, + type:null, }, editOptions: {}, CreateForm: [ - { type: "prefixInput", label: "器具号", prop: "codeSuffix",prefixProp:"type",prefixWidth:'50px',prefixDisabled:true, colSpan: 12 }, - //todo:字段确定 - { type: "select", options: "ContainerSpecificationsType",label: "器具规格", prop: "size", colSpan: 12 }, - //todo:字段确定 - { type: "select",options: "utensilType", label: "器具类型", prop: "type2", colSpan: 12 }, - //todo:标包数量是否去掉 - { type: "inputNumber", label: "标包数量", prop: "stdQty", colSpan: 12, min:1 }, + { type: "prefixInput", label: "器具号", prop: "codeSuffix",prefixProp:"prefixType",prefixWidth:'50px',prefixDisabled:true, colSpan: 12 }, + { type: "select", options: "ContainerSpecificationsType",label: "器具规格", prop: "model", colSpan: 12 }, + { type: "select",options: "utensilType", label: "器具类型", prop: "type", colSpan: 12 }, { type: "input", label: "备注", prop: "remark", colSpan: 12 }, ], editForm: [ - { disabled:true,type: "prefixInput", label: "器具号", prop: "codeSuffix",prefixProp:"type",prefixWidth:'50px',prefixDisabled:true, colSpan: 12 }, - //todo:字段确定 - { type: "select",options: "ContainerSpecificationsType", label: "器具规格", prop: "size", colSpan: 12 }, - //todo:字段确定 - { type: "select",options: "utensilType", label: "器具类型", prop: "type2", colSpan: 12 }, - //todo:标包数量是否去掉 - { type: "inputNumber", label: "标包数量", prop: "stdQty", colSpan: 12, min:1 }, + { disabled:true,type: "prefixInput", label: "器具号", prop: "codeSuffix",prefixProp:"prefixType",prefixWidth:'50px',prefixDisabled:true, colSpan: 12 }, + { type: "select",options: "ContainerSpecificationsType", label: "器具规格", prop: "model", colSpan: 12 }, + { type: "select",options: "utensilType", label: "器具类型", prop: "type", colSpan: 12 }, { type: "input", label: "备注", prop: "remark", colSpan: 12 }, ], //todo:器具规格+器具类型 editRules: { cerateRule: { codeSuffix: [{ required: true, trigger: "blur", message: "不可为空" }], - stdQty: [ - { required: true, trigger: "blur", message: "不可为空" }, - ...detailsRules.numberInput - ], + model: [{ required: true, trigger: "blur", message: "不可为空" }], + type: [{ required: true, trigger: "blur", message: "不可为空" }], }, editRule: { codeSuffix: [{ required: true, trigger: "blur", message: "不可为空" }], - stdQty: [ - { required: true, trigger: "blur", message: "不可为空" }, - ...detailsRules.numberInput - ], + model: [{ required: true, trigger: "blur", message: "不可为空" }], + type: [{ required: true, trigger: "blur", message: "不可为空" }], } }, }; @@ -213,9 +203,9 @@ export default { this.displayDialog.editDialog = true // todo:编辑-拆分类型前缀和code码 - this.editFormData.type = "Q" - this.editFormData.codeSuffix = (this.editFormData.type == 'Q') ? (this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(1) : null) : this.editFormData.code - // this.editFormData.type = this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(0,1) : "Q" + this.editFormData.prefixType = "Q" + this.editFormData.codeSuffix = (this.editFormData.prefixType == 'Q') ? (this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(1) : null) : this.editFormData.code + // this.editFormData.prefixType = this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(0,1) : "Q" // this.editFormData.codeSuffix = this.editFormData.code && this.editFormData.code.length > 0 ? this.editFormData.code.slice(1) : null console.log(210,this.editFormData) }else{ @@ -225,10 +215,10 @@ export default { FormSubmitHandle(val){ // todo:处理codeType + code拼接 if(this.formReveal){ - this.CreateFormData.code = this.CreateFormData.type + this.CreateFormData.codeSuffix + this.CreateFormData.code = this.CreateFormData.prefixType + this.CreateFormData.codeSuffix this.CreateFormData.creator = store.getters.name.userName }else{ - this.editFormData.code = this.editFormData.type + this.editFormData.codeSuffix + this.editFormData.code = this.editFormData.prefixType + this.editFormData.codeSuffix this.editFormData.creator = store.getters.name.userName } this.$nextTick(()=>{ diff --git a/fe/PC/src/views/finishedProductManage/dismantle/customerDismantleJob.vue b/fe/PC/src/views/finishedProductManage/dismantle/customerDismantleJob.vue index bac2cc481..1d45443b7 100644 --- a/fe/PC/src/views/finishedProductManage/dismantle/customerDismantleJob.vue +++ b/fe/PC/src/views/finishedProductManage/dismantle/customerDismantleJob.vue @@ -69,7 +69,7 @@ import { getBomByComponentTree, productRecycleNoteExport, productionRecycleJobHandle, - productionRecycleJobComplete + // productionRecycleJobComplete } from "@/api/wms-api"; import { tableMixins } from "@/mixins/TableMixins" import { LoadingMixins } from "@/mixins/LoadingMixins" @@ -118,18 +118,18 @@ export default { type: 'warning', label: '执行', name: "handle", - // todo:什么状态可以执行,还是数量判断 - hide: () => { return this.hideButton([1]) }, - size: 'mini' - }, - { - type: 'success', - label: '完成', - name: "complete", - // todo:什么状态可以执行,还是数量判断 - hide: () => { return this.hideButton([1]) }, + // 待处理+执行中+部分完成 + hide: () => { return this.hideButton([1,2,4]) }, size: 'mini' }, + // { + // type: 'success', + // label: '完成', + // name: "complete", + // // todo:什么状态可以执行,还是数量判断 + // hide: () => { return this.hideButton([1]) }, + // size: 'mini' + // }, ], //新增 CreateFormData: { @@ -147,10 +147,10 @@ export default { type: "number", trigger: ["blur"], validator: (rule, value, callback) => { - //数量小于库存数 todo:添加部分完成情况,需要确定数量是否为recommendQty - let _InventoryQty = Number(this.propsData.details[0].recommendQty) + //数量控制 + let _InventoryQty = Number(this.propsData.details[0].qty) - Number(this.propsData.details[0].executedQty) if(_InventoryQty < value){ - return callback(new Error(`数量不能大于库存数量${_InventoryQty}`)) + return callback(new Error(`数量不能大于未完成数量${_InventoryQty}`)) }else{ callback() } @@ -197,10 +197,10 @@ export default { // 执行 if (val == "handle") { this.formTitle = this.$route.meta.title + "执行"; - this.displayDialog.newDialog = true this.CreateFormData = JSON.parse(JSON.stringify(this.propsData)); - // todo:添加部分完成后的默认值确定 - this.CreateFormData.qty = this.propsData.details[0].recommendQty + // 默认值 + let _qty = Number(this.propsData.details[0].qty) - Number(this.propsData.details[0].executedQty) + this.$set(this.CreateFormData, "qty", _qty) this.childTableData = [{ partCode:undefined, qty:undefined, @@ -211,19 +211,20 @@ export default { warehouseCode:undefined, }] this.theEvent = "edit" + this.displayDialog.newDialog = true } // 完成 - else if(val == "complete"){ - // todo:强制完成,更改wsm-api中productionRecycleJobComplete的值 - this.Loading.appMainLoading = true - productionRecycleJobComplete(this.propsData.id).then(res => { - this.Loading.appMainLoading = false - this.paging() - this.displayDialog.detailsDialog = false - }).catch(err => { - this.Loading.appMainLoading = false - }) - } + // else if(val == "complete"){ + // // todo:强制完成,更改wsm-api中productionRecycleJobComplete的值 + // this.Loading.appMainLoading = true + // productionRecycleJobComplete(this.propsData.id).then(res => { + // this.Loading.appMainLoading = false + // this.paging() + // this.displayDialog.detailsDialog = false + // }).catch(err => { + // this.Loading.appMainLoading = false + // }) + // } else{ this.drawerbutton(val) } diff --git a/fe/PC/src/views/inventoryManage/InventoryQuery/InventoryTransaction-Query.vue b/fe/PC/src/views/inventoryManage/InventoryQuery/InventoryTransaction-Query.vue index 61187ae5b..9b39c05c7 100644 --- a/fe/PC/src/views/inventoryManage/InventoryQuery/InventoryTransaction-Query.vue +++ b/fe/PC/src/views/inventoryManage/InventoryQuery/InventoryTransaction-Query.vue @@ -1,10 +1,10 @@ + + \ No newline at end of file