Browse Source

【nev-pc】盘点相关功能开发

ag_report_nev
安虹睿 1 year ago
parent
commit
930062d589
  1. 9
      fe/PC/src/api/wms-job.js
  2. 46
      fe/PC/src/components/StepsCountPlanForm/index.vue
  3. 9
      fe/PC/src/components/commonTabel-drawer/index.vue
  4. 2
      fe/PC/src/components/conditionFilters/index.vue
  5. 2
      fe/PC/src/components/currenDescriptions/index.vue
  6. 164
      fe/PC/src/filters/status.js
  7. 1
      fe/PC/src/utils/detailsTableColumns/index.js
  8. 40
      fe/PC/src/utils/tableColumns/index.js
  9. 7
      fe/PC/src/utils/tabsDesTions/index.js
  10. 48
      fe/PC/src/views/inventoryManage/Count/CountJob-msQuery.vue
  11. 2
      fe/PC/src/views/inventoryManage/Count/CountPlan-ms.vue

9
fe/PC/src/api/wms-job.js

@ -236,3 +236,12 @@ export function setDetailNookStatus(params, id, data) {
data
})
}
// 盘点任务-批量重盘
export function countJobResetByNumber(data) {
return request({
url: baseURL + 'wms/store/count-job/reset-status-by-number',
method: 'post',
data:data
})
}

46
fe/PC/src/components/StepsCountPlanForm/index.vue

@ -372,6 +372,7 @@ export default {
warehouseCode: null,
remark: null,
requestType: null,
inventoryMode:null,
},
loading: false,
tableLoading: false,
@ -388,6 +389,10 @@ export default {
}, {
value: '!=',
label: '不等于'
}, {
value: 'In',
label: '包含',
notShow:true
}],
// (codevalue)
filterOptionCopyForMutiple:[],
@ -404,11 +409,11 @@ export default {
// let _list = JSON.parse(JSON.stringify(this.$isTableColumns.Location));
let _list = JSON.parse(JSON.stringify(this.$isTableColumns.CountPlanByAddLocation));
_list.forEach(item => {
// pda 使 locationTypeForPADPlan 线,
// Excel 使 locationTypeForExcelPlan
//
// 使 locationTypeForNoPack /线/
if(item.prop == 'type'){
item.filters = this.CreateFormData.requestType == 2 ? 'locationTypeForPADPlan' : 'locationTypeForExcelPlan'
item.disabled = this.CreateFormData.requestType == 2 ? true : false
item.filters = this.CreateFormData.inventoryMode == 2 ? 'locationTypeForNoPack' : 'locationType'
item.disabled = this.CreateFormData.inventoryMode == 1 ? true : false
}
});
return _list
@ -449,25 +454,25 @@ export default {
return () => {
list.SkipCount = (oldSkipCount - 1) * list.MaxResultCount;
this.tableLoading = true;
// 线 20231005
let _filter = {}
// Excel(this.CreateFormData.requestType == 1)2
if(this.CreateFormData.requestType == 1){
_filter = {
action: "!=",
// 20240419
let _typeFilter = []
// (this.CreateFormData.inventoryMode == 1)2
if(this.CreateFormData.inventoryMode == 1){
_typeFilter = {
action: "==",
column: "type",
logic: "And",
value: '2',
hide:true
}
}
// pda(this.CreateFormData.requestType != 1)2
else{
_filter = {
action: "==",
// (this.CreateFormData.inventoryMode == 2)3/线5/4
else if(this.CreateFormData.inventoryMode == 2){
_typeFilter = {
action: "In",
column: "type",
logic: "And",
value: '2',
value: "[3,4,5]",
hide:true
}
}
@ -480,8 +485,8 @@ export default {
hide: true
}
if(this.pageListLocation.condition.filters.length <= 0){
this.pageListLocation.condition.filters.push(_filter)
this.pageListLocation.condition.filters.push(_filter_code)
this.pageListLocation.condition.filters.push(_typeFilter)
}
// code 20230705
this.filterOptionCopyForMutiple = JSON.parse(JSON.stringify(list.condition.filters))
@ -588,6 +593,10 @@ export default {
const MaxResultLocation = JSON.parse(
this.pageListLocation.MaxResultCount
);
console.log(596,this.locationData)
if(!this.locationData || this.locationData.length <= 0){
return this.$warningMsg("库位不能为空")
}
// this.addNew('location', this.pageListLocation, this.totalCountLocation, 'isLocationData', MaxResultLocation)
// this.pageListLocation.MaxResultCount = MaxResultLocation
this.active++;
@ -652,8 +661,7 @@ export default {
//
else if (this.active == 2) {
this.$listAssign(this.otherFormData, this.CreateFormData);
this.otherFormData.partCondition =
this.pageListItemBasic.condition;
this.otherFormData.partCondition = this.pageListItemBasic.condition;
this.otherFormData.locCondition = this.pageListLocation.condition;
this.otherFormData.statusList = [];
let checkboxArray = []
@ -687,7 +695,7 @@ export default {
type: 'warning'
}).then(() => {
this.loading = true;
// this.otherFormData.requestType = 2
this.otherFormData.inventoryStage = 1
this.splitFormData(this.otherFormData).then(
(resolve) => {
this.pageStatus = "success";

9
fe/PC/src/components/commonTabel-drawer/index.vue

@ -123,7 +123,7 @@
"
:tableBorder="true"
:tableLoading="tableLoading"
:tableData="otherData"
:tableData="propsData[scope.value] || otherData"
:tableColumns="zdyTableColumns"
:selectionTable="selectionTable"
:requiredRules="false"
@ -533,6 +533,13 @@ export default {
this.zdyTableColumns = zdyTableColumnsJSON
this.otherData = this.propsData.noteAndBackFlushDetails
}
// TAB-tabletip:functionNameotherDetailTag
// :-TAB-
else if(item.functionName == "otherDetailTab"){
let zdyTableColumnsJSON = JSON.parse(JSON.stringify(this.$isTableColumns[item.tableColumns]));
delete zdyTableColumnsJSON[0].type
this.zdyTableColumns = zdyTableColumnsJSON
}
}
}
})

2
fe/PC/src/components/conditionFilters/index.vue

@ -72,6 +72,7 @@
:key="item.value"
:label="item.label"
:value="item.value"
v-show="!item.notShow"
>
</el-option>
</el-select>
@ -107,6 +108,7 @@
? item.value
: String(item.value)
"
v-show="!item.hide"
>
</el-option>
</el-select>

2
fe/PC/src/components/currenDescriptions/index.vue

@ -23,7 +23,7 @@
<span v-else-if="item.type && item.type == 'objectDateTime'">{{
propsData[item.prop]?propsData[item.prop][item.showProp]:"" | formatDate
}}</span>
<span v-else-if="item.type == 'json'">
<span v-else-if="item.type && item.type == 'json'">
{{ propsData[item.prop] ? JSON.parse(propsData[item.prop]).join(",") : '' }}
</span>
<span v-else-if="item.type == 'price'">

164
fe/PC/src/filters/status.js

@ -933,7 +933,7 @@ export function TransSubType(index, prop) {
}
return Enum(type, index, prop)
}
//库位类型 注意!!!更改时候将 locationTypeForPADPlan 和 locationTypeForExcelPlan同步更改
//库位类型 注意!!!更改时候将 locationTypeForNoPack 同步更改
/**
*
* @param {Boolean}
@ -1009,108 +1009,20 @@ export function locationType(index, prop) {
}
return Enum(type, index, prop)
}
//库位类型-pad类型盘点(盘点新增选择计划第二步骤的库位列表高级筛选的使用)
// 区别于【locationType】:线边库位为不可选择
/**
*
* @param {Boolean}
* @returns {object}
*/
export function locationTypeForPADPlan(index, prop) {
let type = {
1: {
label: "待检库位",
value: 1,
UK: 'INSP'
},
2: {
label: "原材料库位",
value: 2,
UK: 'RAW'
},
3: {
label: "半成品库位",
value: 3,
UK: 'SEMI'
},
4: {
label: "成品库位",
value: 4,
UK: 'FG'
},
5: {
label: "线边库位",
value: 5,
UK: 'WIP',
disabled:true
},
6: {
label: "隔离库位",
value: 6,
UK: 'HOLD'
},
7: {
label: "报废库位",
value: 7,
UK: 'SCRAP'
},
8: {
label: "不合格品库位",
value: 8,
UK: 'NOC'
},
9: {
label: "溢出库位",
value: 9,
UK: 'OVERFLOW'
},
10: {
label: "客户库位",
value: 10,
UK: 'CUST'
},
11: {
label: "外库位",
value: 11,
UK: 'OUTSIDE'
},
12: {
label: "盘点差异库位",
value: 12,
UK: 'DIFF'
},
13: {
label: "在途库位",
value: 13,
UK: 'TRANSPORT'
}
}
return Enum(type, index, prop)
}
//库位类型-Excel类型盘点(盘点新增选择计划第二步骤的库位列表高级筛选的使用)
// 区别于【locationType】:原材料库位为不可选择
//库位类型-无箱码模式(盘点新增选择计划第二步骤的库位列表高级筛选的使用)
// 区别于【locationType】:只有半成品库位,成品库位,线边库位
/**
*
* @param {Boolean}
* @returns {object}
*/
export function locationTypeForExcelPlan(index, prop) {
export function locationTypeForNoPack(index, prop) {
let type = {
1: {
label: "待检库位",
value: 1,
UK: 'INSP'
},
2: {
label: "原材料库位",
value: 2,
UK: 'RAW',
disabled:true
},
3: {
label: "半成品库位",
value: 3,
UK: 'SEMI'
UK: 'SEMI',
},
4: {
label: "成品库位",
@ -1122,46 +1034,12 @@ export function locationType(index, prop) {
value: 5,
UK: 'WIP',
},
6: {
label: "隔离库位",
value: 6,
UK: 'HOLD'
},
7: {
label: "报废库位",
value: 7,
UK: 'SCRAP'
},
8: {
label: "不合格品库位",
value: 8,
UK: 'NOC'
},
9: {
label: "溢出库位",
value: 9,
UK: 'OVERFLOW'
},
10: {
label: "客户库位",
value: 10,
UK: 'CUST'
},
11: {
label: "外库位",
value: 11,
UK: 'OUTSIDE'
"[3,4,5]":{
label: "半成品/成品/线边库位",
value: "[3,4,5]",
UK: 'SEMI,FG,WIP',
hide:true,
},
12: {
label: "盘点差异库位",
value: 12,
UK: 'DIFF'
},
13: {
label: "在途库位",
value: 13,
UK: 'TRANSPORT'
}
}
return Enum(type, index, prop)
}
@ -1567,6 +1445,26 @@ export function openToCloseBit(index, prop) {
}
return Enum(type, index, prop)
}
//盘点模式
/**
*
* @param {Boolean}
* @returns {object}
*/
export function inventoryMode(index, prop) {
let type = {
1: {
label: "有箱码",
value: 1
},
2: {
label: "无箱码",
value: 2
}
}
return Enum(type, index, prop)
}
//盘点根据
/**
*

1
fe/PC/src/utils/detailsTableColumns/index.js

@ -3259,6 +3259,7 @@ export const CountJob = [
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "库存数量", prop: "inventoryQty" },
{ label: "盘点数量", prop: "countQty" },
{ label: "盘点次数", prop: "inventoryStage" },
{ label: "库存库位", prop: "inventoryLocationCode" },
{ label: "单位", prop: "uom" },
{ label: "库存状态", prop: "status",type: "filter", filters:"inventoryStage" },

40
fe/PC/src/utils/tableColumns/index.js

@ -3620,6 +3620,9 @@ export const CountPlan = [
{ label: "结束时间", prop: "endTime", type: "dateTime" },
{ label: "计划时间", prop: 'planTime', type: "dateTime"},
{ label: "盘点执行方式", prop: "requestType",type: "filter", filters: "requestType" },
{ label: "盘点模式", prop: "inventoryMode",type: "filter", filters: "inventoryMode" },
{ label: "盘点次数", prop: "inventoryStage" },
{ label: "盘点库位", prop: 'jsonLocationCodes',type:"showDetail",isJson:true,showProp:true },
{ label: "根据", prop: "countMethod",type: "filter", filters: "countMethod" },
{ label: "描述", prop: "description" },
{ label: "备注", prop: 'remark', },
@ -3628,8 +3631,7 @@ export const CountPlan = [
{ label: "类型", prop: "type",type: "filter", filters: "checkType" },
{ label: "生效时间", prop: 'activeDate', type: "dateTime" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "物品代码JSON", prop: 'jsonItemCodes' },
{ label: "库位JSON", prop: 'jsonLocationCodes' },
// { label: "物品代码JSON", prop: 'jsonItemCodes' },
// ************** 确认隐藏 ************************
// { label: "阶段", prop: "stage", type: "filter", filters: "checkStage" },
// { label: "创建者ID", prop: "creatorId" },
@ -3702,6 +3704,7 @@ export const CountJob = [
},
{ label: "状态", prop: "jobStatus",type: "tagFilter", filters: "jobStatus" },
{ label: "盘点计划号", prop: "countPlanNumber",width:orderWidth },
{ label: "盘点次数", prop: "inventoryStage" },
{ label: "盘点根据", prop: "countMethod",type: "filter", filters: "countMethod" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "承接时间", prop: "acceptTime", type: "dateTime" },
@ -3732,6 +3735,38 @@ export const CountJob = [
// { label: "是否自动完成", prop: 'isAutoComplete', type: "filter", filters: "whetherOrNot"},
// ************** 确认隐藏 ************************
]
// 盘点任务-扫描明细
export const countJobDepDetails = [
{ label: "物品代码", prop: "itemCode", type: "name",fixed: "left" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "库存状态", type: "filter", filters: "inventoryStage", prop: "status" },
{ label: "库存数量", prop: "inventoryQty" },
{ label: "盘点数量", prop: "countQty" },
{ label: "盘点次数", prop: "inventoryStage" },
{ label: "单位", prop: "uom" },
{ label: "标包数量", prop: "stdPackQty" ,isNumber:true},
{ label: "箱码", prop: "packingCode" },
{ label: "批次", prop: "lot" },
{ label: "库存库位", prop: "inventoryLocationCode" },
{ label: "库位代码", prop: "locationCode" },
{ label: "ERP储位", prop: "locationErpCode" },
{ label: "库区", prop: "locationArea" },
{ label: "库位组", prop: "locationGroup" },
{ label: "供应商批次", prop: "supplierBatch" },
{ label: "盘点描述", prop: 'countDescription' },
{ label: "盘点操作员", prop: 'countOperator' },
{ label: "盘点时间", prop: "countTime",type: "dateTime" },
{ label: "到货日期", prop: "arriveDate",type: "dateTime" },
{ label: "生产日期", prop: "produceDate",type: "dateTime" },
{ label: "过期时间", prop: "expireDate",type: "dateTime" },
{ label: "仓库代码", prop: 'warehouseCode' },
{ label: "备注", prop: 'remark' },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
]
// 盘点记录 20230415
export const CountNote = [
{
@ -3743,6 +3778,7 @@ export const CountNote = [
},
{ label: "是否已生成盘点调整申请", prop: "adjusted", type: "tagFilter", filters: "whetherOrNot" },
{ label: "盘点计划单号", prop: "countPlanNumber", width: orderWidth },
{ label: "盘点任务单号", prop: "countJobNumber", width: orderWidth },
{ label: "开始时间", prop: "beginTime", type: "dateTime" },
{ label: "结束时间", prop: "endTime", type: "dateTime" },
{ label: "操作员", prop: 'worker',},

7
fe/PC/src/utils/tabsDesTions/index.js

@ -2811,6 +2811,9 @@ export const CountPlan = [
{ label: "结束时间", prop: "endTime", type: "dateTime" },
{ label: "计划时间", prop: 'planTime', type: "dateTime" },
{ label: "盘点执行方式", prop: "requestType",type: "filter", filters: "requestType" },
{ label: "盘点模式", prop: "inventoryMode",type: "filter", filters: "inventoryMode" },
{ label: "盘点次数", prop: "inventoryStage" },
{ label: "库位JSON", prop: 'jsonLocationCodes',type:"json" },
{ label: "描述", prop: "description" },
{ label: "备注", prop: 'remark' },
{ label: "操作员", prop: 'worker' },
@ -2827,8 +2830,7 @@ export const CountPlan = [
{ label: "自动完成任务", prop: 'autoCompleteJob', type: "filter", filters: "whetherOrNot" },
{ label: "直接生成记录", prop: 'directCreateNote', type: "filter", filters: "whetherOrNot" },
{ label: "事务ID", prop: "tenantId" },
{ label: "物品代码JSON", prop: 'jsonItemCodes' },
{ label: "库位JSON", prop: 'jsonLocationCodes' },
// { label: "物品代码JSON", prop: 'jsonItemCodes' },
// ************** 确认隐藏 ************************
// { label: "阶段", prop: "stage", type: "filter", filters: "checkStage" },
// { label: "ID", prop: 'id' },
@ -2840,6 +2842,7 @@ export const CountJob = [
{ label: "盘点任务号", prop: "number" },
{ label: "盘点计划号", prop: "countPlanNumber" },
{ label: "状态", prop: "jobStatus",type: "filter", filters: "jobStatus" },
{ label: "盘点次数", prop: "inventoryStage" },
{ label: "盘点根据", prop: "countMethod",type: "filter", filters: "countMethod" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "承接时间", prop: "acceptTime", type: "dateTime" },

48
fe/PC/src/views/inventoryManage/Count/CountJob-msQuery.vue

@ -9,7 +9,7 @@
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@topbutton="topbuttonHandle"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@ -22,6 +22,7 @@
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
:tableSelection="true"
>
</tablePagination>
<!-- 执行 -->
@ -42,6 +43,7 @@
:propsData="propsData"
:tabsDesTions="tabsDesTions"
:Butttondata="DrawerButtonData"
:dropdownTabsData="dropdownTabsData"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@close-value="closeValue"
@ -60,6 +62,7 @@ import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { countJobResetByNumber } from "@/api/wms-job"
import detailsRules from '@/utils/rules';
export default {
name: "CountJob",
@ -94,10 +97,34 @@ export default {
//
currenButtonData: [
this.defaultExportBtn(),//
{
type: "success",
icon: "el-icon-d-arrow-right",
label: "批量重盘",
name: "resetCount",
size: "mini",
},
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
// table
dropdownTabsData: [
{
label: "详情",
name: 'xq'
},
{
label: "明细",
name: 'mx'
},
{
label: "扫描明细",
name: 'depDetails',
tableColumns: 'countJobDepDetails',
functionName: 'otherDetailTab'
},
],
DrawerButtonData: [
// {
// type: 'primary',
@ -213,6 +240,25 @@ export default {
this.paging();
},
methods: {
//
topbuttonHandle(val){
if(val == 'resetCount'){
let _numbers = []
this.multipleSelection.forEach(item=>{_numbers.push(item.number)})
this.Loading.appMainLoading = true
countJobResetByNumber(_numbers)
.then(res=>{
this.paging()
this.$successMsg("批量重盘成功")
this.Loading.appMainLoading = false
})
.catch(err=>{
this.Loading.appMainLoading = false
})
}else{
this.topbutton(val)
}
},
//
// drawerbutton (val) {
// if (val == 'accept') {

2
fe/PC/src/views/inventoryManage/Count/CountPlan-ms.vue

@ -223,6 +223,7 @@ export default {
// { type: "select", label: "", prop: "type", options: "checkType", colSpan: 12 },
// { type: "dateTime", label: "", prop: "beginTime", colSpan: 12 },
// { type: "dateTime", label: "", prop: "endTime", colSpan: 12 },
{ type: "select", label: "盘点模式", prop: "inventoryMode", options: "inventoryMode", colSpan: 12 },
{ type: "dateTime", label: "计划时间", prop: "planTime", colSpan: 12 },
{ type: "input", label: "描述", prop: "description", colSpan: 12 },
{ type: "input", label: "备注", prop: 'remark', colSpan: 12 },
@ -231,6 +232,7 @@ export default {
cerateRule: {
number: [{ required: true, trigger: ["blur", "change"], message: "不可为空" }],
requestType: [{ required: true, trigger: ["blur", "change"], message: "不可为空" }],
inventoryMode: [{ required: true, trigger: ["blur", "change"], message: "不可为空" }],
// type: [{ required: true, trigger: "change", message: "" }],//
status: [{ required: true, trigger: "blur", message: "不可为空" }],
// beginTime: [{ required: true, trigger: "blur", message: "" }],

Loading…
Cancel
Save