WMS:web移库合库记录查询功能
master
xs 9 months ago
parent 70d26e83f1
commit fc7f75b007

@ -112,7 +112,7 @@ public class WmsInventoryCheckController extends BaseController
/**
*
*
*/
@RequiresPermissions("wms:inventoryCheck:list")
@GetMapping("/getWarehouses")

@ -4,6 +4,8 @@ import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.hw.wms.domain.WmsBaseWarehouse;
import com.hw.wms.service.IWmsBaseWarehouseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@ -31,7 +33,6 @@ import com.hw.common.core.web.page.TableDataInfo;
* @author xins
* @date 2024-01-09
*/
@Api(tags = "cangchu1",description = "dd1")
@RestController
@RequestMapping("/move")
public class WmsMoveController extends BaseController
@ -39,6 +40,9 @@ public class WmsMoveController extends BaseController
@Autowired
private IWmsMoveService wmsMoveService;
@Autowired
private IWmsBaseWarehouseService wmsBaseWarehouseService;
/**
*
*/
@ -47,7 +51,7 @@ public class WmsMoveController extends BaseController
public TableDataInfo list(WmsMove wmsMove)
{
startPage();
List<WmsMove> list = wmsMoveService.selectWmsMoveList(wmsMove);
List<WmsMove> list = wmsMoveService.selectWmsMoveJoinList(wmsMove);
return getDataTable(list);
}
@ -71,7 +75,7 @@ public class WmsMoveController extends BaseController
@GetMapping(value = "/{moveId}")
public AjaxResult getInfo(@PathVariable("moveId") Long moveId)
{
return success(wmsMoveService.selectWmsMoveByMoveId(moveId));
return success(wmsMoveService.selectWmsMoveJoinByMoveId(moveId));
}
/**
@ -85,17 +89,6 @@ public class WmsMoveController extends BaseController
return toAjax(wmsMoveService.insertWmsMove(wmsMove));
}
/**
*
*/
@RequiresPermissions("wms:move:edit")
@Log(title = "移库合库记录", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WmsMove wmsMove)
{
return toAjax(wmsMoveService.updateWmsMove(wmsMove));
}
/**
*
*/
@ -106,4 +99,17 @@ public class WmsMoveController extends BaseController
{
return toAjax(wmsMoveService.deleteWmsMoveByMoveIds(moveIds));
}
/**
*
*/
@RequiresPermissions("wms:move:list")
@GetMapping("/getWarehouses")
public AjaxResult getWarehouses(WmsBaseWarehouse wmsBaseWarehouse)
{
List<WmsBaseWarehouse> baseWarehouses = wmsBaseWarehouseService.selectWmsBaseWarehouseList(wmsBaseWarehouse);
return success(baseWarehouses);
}
}

@ -89,6 +89,8 @@ public class WmsMoveDetail extends BaseEntity
@Excel(name = "有效标记")
private String activeFlag;
private String materialCode;
private String materialName;
/**移库合库记录执行状态*/
@ -253,6 +255,14 @@ public class WmsMoveDetail extends BaseEntity
return activeFlag;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialName() {
return materialName;
}

@ -133,5 +133,13 @@ public interface WmsMoveMapper
*/
public WmsMove selectOnlyWmsMoveByTaskCode(String taskCode);
/**
*
*
* @param moveId ,join material
* @return
*/
public WmsMove selectWmsMoveJoinByMoveId(Long moveId);
}

@ -119,4 +119,12 @@ public interface IWmsMoveService
*/
public int moveInstock(WmsMoveVo wmsMoveVo);
/**
* ,Join material
*
* @param moveId
* @return
*/
public WmsMove selectWmsMoveJoinByMoveId(Long moveId);
}

@ -188,6 +188,7 @@ public class WmsMoveServiceImpl implements IWmsMoveService {
throw new ServiceException("请选择人工仓库的库位进行移库");
}
//todo:判断有没有还没有完成从此原库位到目标库位的移库任务(预防还没修改库位状态生成此数据,连续点击问题,或者已经移库出库完成的情况不能将原库位再设置移库记录)
String warehouseInstockType = baseWareHouse.getWarehouseInstockType();
Date currentDate = new Date();
@ -289,6 +290,7 @@ public class WmsMoveServiceImpl implements IWmsMoveService {
wmsRawStocks.forEach(wmsRawStock -> {
WmsMoveDetail wmsMoveDetail = new WmsMoveDetail();
wmsMoveDetail.setMoveId(wmsMove.getMoveId());
wmsMoveDetail.setMaterialBarcode(wmsRawStock.getInstockBatch());//物料条码
wmsMoveDetail.setInstockBatch(wmsRawStock.getInstockBatch());//物料条码
wmsMoveDetail.setMaterialId(wmsRawStock.getMaterialId());
wmsMoveDetail.setPlanAmount(wmsRawStock.getTotalAmount());
@ -445,8 +447,9 @@ public class WmsMoveServiceImpl implements IWmsMoveService {
throw new ServiceException("没有此移库信息");
}
WmsMoveDetail existedMoveDetail = wmsMoveDetailList.stream().filter(move ->
move.getInstockBatch().equals(materialBarcode)).findFirst().get();
//通过获取的所有移库明细,根据物料条码获取唯一一条明细
WmsMoveDetail existedMoveDetail = wmsMoveDetailList.stream().filter(moveDetail ->
moveDetail.getMaterialBarcode().equals(materialBarcode)).findFirst().get();
if (existedMoveDetail == null) {
throw new ServiceException("没有此移库信息");
@ -715,8 +718,8 @@ public class WmsMoveServiceImpl implements IWmsMoveService {
throw new ServiceException("没有此移库信息");
}
WmsMoveDetail existedMoveDetail = wmsMoveDetailList.stream().filter(move ->
move.getInstockBatch().equals(materialBarcode)).findFirst().get();
WmsMoveDetail existedMoveDetail = wmsMoveDetailList.stream().filter(moveDetail ->
moveDetail.getMaterialBarcode().equals(materialBarcode)).findFirst().get();
if (existedMoveDetail == null) {
throw new ServiceException("没有此移库信息");
@ -851,6 +854,19 @@ public class WmsMoveServiceImpl implements IWmsMoveService {
}
}
/**
* ,Join material
*
* @param moveId
* @return
*/
@Override
public WmsMove selectWmsMoveJoinByMoveId(Long moveId) {
return wmsMoveMapper.selectWmsMoveJoinByMoveId(moveId);
}
}
/* *//**

@ -59,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateDate" column="sub_update_date" />
<result property="activeFlag" column="sub_active_flag" />
<result property="materialCode" column="sub_material_code" />
<result property="materialName" column="sub_material_name" />
</resultMap>
@ -303,4 +304,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.task_code = #{taskCode}
</select>
<select id="selectWmsMoveJoinByMoveId" parameterType="Long" resultMap="WmsMoveWmsMoveDetailResult">
select a.move_id, a.task_code, a.warehouse_id, a.ori_location_code, a.target_location_code, a.instock_batch, a.material_id, a.plan_amount, a.real_outstock_amount, a.real_instock_amount, a.operation_type, a.move_way, a.move_type, a.apply_reason, a.audit_reason, a.audit_status, a.execute_status, a.apply_by, a.apply_date, a.audit_by, a.audit_date, a.update_by, a.update_date, a.begin_time, a.end_time,
b.move_detail_id as sub_move_detail_id, b.move_id as sub_move_id, b.location_code as sub_location_code, b.material_barcode as sub_material_barcode, b.instock_batch as sub_instock_batch, b.material_id as sub_material_id, b.plan_amount as sub_plan_amount, b.real_amount as sub_real_amount,b.real_instock_amount as sub_real_instock_amount, b.execute_status as sub_execute_status, b.execute_person as sub_execute_person, b.execute_time as sub_execute_time, b.machine_name as sub_machine_name, b.create_by as sub_create_by, b.create_date as sub_create_date, b.update_by as sub_update_by, b.update_date as sub_update_date,
mbmi.material_code as sub_material_code,mbmi.material_name as sub_material_name
from wms_move a
left join wms_move_detail b on b.move_id = a.move_id
left join mes_base_material_info mbmi on b.material_id=mbmi.material_id
where a.move_id = #{moveId}
</select>
</mapper>

@ -42,3 +42,15 @@ export function delMove(moveId) {
method: 'delete'
})
}
// 查询仓库列表
export function getWarehouses(query) {
return request({
url: '/wms/move/getWarehouses',
method: 'get',
params: query
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询成品入库记录列表
export function listProductInstock(query) {
return request({
url: '/wms/productInstock/list',
method: 'get',
params: query
})
}
// 查询成品入库记录详细
export function getProductInstock(productInstockId) {
return request({
url: '/wms/productInstock/' + productInstockId,
method: 'get'
})
}
// 新增成品入库记录
export function addProductInstock(data) {
return request({
url: '/wms/productInstock',
method: 'post',
data: data
})
}
// 修改成品入库记录
export function updateProductInstock(data) {
return request({
url: '/wms/productInstock',
method: 'put',
data: data
})
}
// 删除成品入库记录
export function delProductInstock(productInstockId) {
return request({
url: '/wms/productInstock/' + productInstockId,
method: 'delete'
})
}

@ -528,6 +528,38 @@ export const dynamicRoutes = [
}
]
},
{
path: '/wms/inventory-check',
component: Layout,
hidden: true,
permissions: ['wms:inventoryCheck:detail'],
children: [
{
path: 'detail/:inventoryCheckId/:inventoryCheckCode/:warehouseName',
component: () => import('@/views/wms/info/inventoryCheck/detail'),
name: 'InventoryCheckDetail',
meta: { title: '盘点详情', activeMenu: '/wms/info/inventoryCheck' }
}
]
},
{
path: '/wms/move',
component: Layout,
hidden: true,
permissions: ['wms:move:detail'],
children: [
{
path: 'detail/:moveId/:taskCode/:warehouseName/:materialCode/:materialName',
component: () => import('@/views/wms/info/move/detail'),
name: 'moveDetail',
meta: { title: '移库合库详情', activeMenu: '/wms/info/move' }
}
]
},
//质检结果详细
{
path: "/qms/base/checkresultdetail",

@ -180,7 +180,6 @@ export default {
},
created() {
const inventoryCheckId = this.$route.params && this.$route.params.inventoryCheckId;
const inventoryCheckCode = this.$route.params && this.$route.params.inventoryCheckCode;
const warehouseName = this.$route.params && this.$route.params.warehouseName;
getInventoryCheck(inventoryCheckId).then(response => {
this.form = response.data;
@ -299,13 +298,6 @@ export default {
}, `inventoryCheck_${new Date().getTime()}.xlsx`)
},
/** 查询仓库列表 */
getWarehouses() {
getWarehouses().then(response => {
this.warehouseOptions = response.data;
});
},
}
};
</script>

@ -77,9 +77,9 @@
<el-table v-loading="loading" :data="inventoryCheckList" @selection-change="handleSelectionChange">
<el-table-column label="盘点单号" align="center" prop="inventoryCheckCode" />
<el-table-column label="仓库" align="center" prop="warehouseName" />
<el-table-column label="盘点状态" align="center" prop="checkStatus" >
<el-table-column label="盘点单号" align="center" prop="inventoryCheckCode"/>
<el-table-column label="仓库" align="center" prop="warehouseName"/>
<el-table-column label="盘点状态" align="center" prop="checkStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.wms_inventory_check_status" :value="scope.row.checkStatus"/>
</template>
@ -94,16 +94,16 @@
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="库位总数量" align="center" prop="locationAmount" />
<el-table-column label="正在盘点库位数量" align="center" prop="inventoryingAmount" />
<el-table-column label="已盘点库位数量" align="center" prop="inventoriedAmount" />
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="库位总数量" align="center" prop="locationAmount"/>
<el-table-column label="正在盘点库位数量" align="center" prop="inventoryingAmount"/>
<el-table-column label="已盘点库位数量" align="center" prop="inventoriedAmount"/>
<el-table-column label="创建人" align="center" prop="createBy"/>
<el-table-column label="创建时间" align="center" prop="createDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateBy" />
<el-table-column label="更新人" align="center" prop="updateBy"/>
<el-table-column label="更新时间" align="center" prop="updateDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateDate, '{y}-{m}-{d}') }}</span>
@ -116,10 +116,11 @@
<el-button
size="mini"
type="text"
icon="el-icon-edit"
icon="el-icon-info"
@click="handleOpenDetail(scope.row)"
v-hasPermi="['wms:inventoryCheck:detail']"
>详情</el-button>
>详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -136,7 +137,7 @@
</template>
<script>
import { listInventoryCheck, getInventoryCheck,getWarehouses } from "@/api/wms/inventoryCheck";
import {listInventoryCheck, getInventoryCheck, getWarehouses} from "@/api/wms/inventoryCheck";
export default {
name: "InventoryCheck",
@ -190,19 +191,19 @@ export default {
//
rules: {
warehouseId: [
{ required: true, message: "仓库ID不能为空", trigger: "blur" }
{required: true, message: "仓库ID不能为空", trigger: "blur"}
],
checkStatus: [
{ required: true, message: "盘点状态(0待盘点不能为空", trigger: "change" }
{required: true, message: "盘点状态(0待盘点不能为空", trigger: "change"}
],
locationAmount: [
{ required: true, message: "库位总数量不能为空", trigger: "blur" }
{required: true, message: "库位总数量不能为空", trigger: "blur"}
],
inventoryingAmount: [
{ required: true, message: "正在盘点库位数量不能为空", trigger: "blur" }
{required: true, message: "正在盘点库位数量不能为空", trigger: "blur"}
],
inventoriedAmount: [
{ required: true, message: "已盘点库位数量不能为空", trigger: "blur" }
{required: true, message: "已盘点库位数量不能为空", trigger: "blur"}
],
}
};
@ -215,13 +216,9 @@ export default {
/** 查询盘点记录列表 */
getList() {
this.loading = true;
if (null != this.dateRangeBeginTime && '' != this.dateRangeBeginTime) {
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeBeginTime,"BeginTime");
}
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeBeginTime, "BeginTime");
if (null != this.dateRangeEndTime && '' != this.dateRangeEndTime) {
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeEndTime,"EndTime");
}
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeEndTime, "EndTime");
listInventoryCheck(this.queryParams).then(response => {
this.inventoryCheckList = response.rows;
@ -270,7 +267,7 @@ export default {
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.inventoryCheckId)
this.single = selection.length!==1
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
@ -293,15 +290,16 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const inventoryCheckIds = row.inventoryCheckId || this.ids;
this.$modal.confirm('是否确认删除盘点记录编号为"' + inventoryCheckIds + '"的数据项?').then(function() {
this.$modal.confirm('是否确认删除盘点记录编号为"' + inventoryCheckIds + '"的数据项?').then(function () {
return delInventoryCheck(inventoryCheckIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
}).catch(() => {
});
},
/** 盘点记录明细序号 */
rowWmsInventoryCheckDetailIndex({ row, rowIndex }) {
/** 盘点记录明细序号 */
rowWmsInventoryCheckDetailIndex({row, rowIndex}) {
row.index = rowIndex + 1;
},
/** 盘点记录明细添加按钮操作 */
@ -348,7 +346,7 @@ export default {
const inventoryCheckCode = row.inventoryCheckCode
const warehouseName = row.warehouseName;
const params = {pageNum: this.queryParams.pageNum};
this.$tab.openPage("盘点详情[" + inventoryCheckCode + "]", '/wms/inventory-check/detail/'+inventoryCheckId+'/' + inventoryCheckCode+'/'+warehouseName, params);
this.$tab.openPage("盘点详情[" + inventoryCheckCode + "]", '/wms/inventory-check/detail/' + inventoryCheckId + '/' + inventoryCheckCode + '/' + warehouseName, params);
},
}
};

@ -0,0 +1,210 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" label-width="80px">
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="任务编号" prop="taskCode">
<el-input v-model="form.taskCode" disabled/>
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="仓库" prop="warehouseName">
<el-input v-model="form.warehouseName" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="原库位" prop="oriLocationCode">
<el-input v-model="form.oriLocationCode" disabled/>
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="目标库位" prop="targetLocationCode">
<el-input v-model="form.targetLocationCode" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="申请人" prop="applyBy">
<el-input v-model="form.applyBy" disabled/>
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="申请时间" prop="applyDate">
<el-input v-model="form.applyDate" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="开始时间" prop="beginTime">
<el-input v-model="form.beginTime" disabled/>
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="结束时间" prop="endTime">
<el-input v-model="form.endTime" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="center">明细信息</el-divider>
<el-table :data="wmsMoveDetailList" :row-class-name="rowWmsMoveDetailIndex"
@selection-change="handleWmsMoveDetailSelectionChange" ref="wmsMoveDetail">
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="物料条码" align="center" prop="materialBarcode" />
<el-table-column label="物料编号" align="center" prop="materialCode" />
<el-table-column label="物料名称" align="center" prop="materialName" />
<el-table-column label="计划数量" align="center" prop="planAmount" />
<el-table-column label="已出库数量" align="center" prop="realAmount" />
<el-table-column label="已入库数量" align="center" prop="realInstockAmount" />
<el-table-column label="执行状态" align="center" prop="executeStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.wms_move_status" :value="scope.row.executeStatus"/>
</template>
</el-table-column>
<el-table-column label="执行人" align="center" prop="executePerson" />
<el-table-column label="执行时间" align="center" prop="executeTime" />
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</div>
</template>
<script>
import {getMove} from "@/api/wms/move";
export default {
name: "Move",
dicts: ['wms_move_type', 'wms_move_status'],
data() {
return {
//
loading: true,
//
ids: [],
//
checkedWmsMoveDetail: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
moveList: [],
//
wmsMoveDetailList: [],
//
title: "",
//
open: false,
//
form: {},
};
},
created() {
const moveId = this.$route.params && this.$route.params.moveId;
const warehouseName = this.$route.params && this.$route.params.warehouseName;
getMove(moveId).then(response => {
this.form = response.data;
this.wmsMoveDetailList = response.data.wmsMoveDetailList;
this.form.warehouseName = warehouseName;
});
},
methods: {
//
cancel() {
const obj = {path: "/wms/info/move", query: {t: Date.now(), pageNum: this.$route.query.pageNum}};
this.$tab.closeOpenPage(obj);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.moveId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加移库合库记录";
},
/** 移库合库记录明细序号 */
rowWmsMoveDetailIndex({row, rowIndex}) {
row.index = rowIndex + 1;
},
/** 移库合库记录明细添加按钮操作 */
handleAddWmsMoveDetail() {
let obj = {};
obj.locationCode = "";
obj.materialBarcode = "";
obj.instockBatch = "";
obj.materialId = "";
obj.planAmount = "";
obj.realAmount = "";
obj.executeStatus = "";
obj.executePerson = "";
obj.executeTime = "";
obj.moveDetailType = "";
obj.machineName = "";
obj.createDate = "";
obj.updateDate = "";
obj.activeFlag = "";
this.wmsMoveDetailList.push(obj);
},
/** 移库合库记录明细删除按钮操作 */
handleDeleteWmsMoveDetail() {
if (this.checkedWmsMoveDetail.length == 0) {
this.$modal.msgError("请先选择要删除的移库合库记录明细数据");
} else {
const wmsMoveDetailList = this.wmsMoveDetailList;
const checkedWmsMoveDetail = this.checkedWmsMoveDetail;
this.wmsMoveDetailList = wmsMoveDetailList.filter(function (item) {
return checkedWmsMoveDetail.indexOf(item.index) == -1
});
}
},
/** 复选框选中数据 */
handleWmsMoveDetailSelectionChange(selection) {
this.checkedWmsMoveDetail = selection.map(item => item.index)
},
/** 导出按钮操作 */
handleExport() {
this.download('wms/move/export', {
...this.queryParams
}, `move_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,402 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
<el-form-item label="类型" prop="moveType">
<el-select
v-model="queryParams.moveType"
placeholder="请选择类型"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.wms_move_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="任务编号" prop="taskCode">
<el-input
v-model="queryParams.taskCode"
placeholder="请输入任务编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable>
<el-option
v-for="(category, index) in warehouseOptions"
:key="index"
:label="category.warehouseName"
:value="category.warehouseId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="原库位" prop="oriLocationCode">
<el-input
v-model="queryParams.oriLocationCode"
placeholder="请输入原库位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="目标库位" prop="targetLocationCode">
<el-input
v-model="queryParams.targetLocationCode"
placeholder="请输入目标库位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="executeStatus">
<el-select
v-model="queryParams.executeStatus"
placeholder="请选择状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.wms_move_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="申请人" prop="applyBy">
<el-input
v-model="queryParams.applyBy"
placeholder="请输入申请人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="申请时间" prop="endTime">
<el-date-picker
v-model="dateRangeApplyTime"
style="width: 340px"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="-"
start-placeholder=""
end-placeholder=""
></el-date-picker>
</el-form-item>
<el-form-item label="开始时间" prop="beginTime">
<el-date-picker
v-model="dateRangeBeginTime"
style="width: 340px"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="-"
start-placeholder=""
end-placeholder=""
></el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="dateRangeEndTime"
style="width: 340px"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="-"
start-placeholder=""
end-placeholder=""
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="moveList" @selection-change="handleSelectionChange">
<el-table-column label="类型" align="center" prop="moveType">
<template slot-scope="scope">
<dict-tag :options="dict.type.wms_move_type" :value="scope.row.moveType"/>
</template>
</el-table-column>
<el-table-column label="任务编号" align="center" prop="taskCode"/>
<el-table-column label="仓库" align="center" prop="warehouseName"/>
<el-table-column label="原库位" align="center" prop="oriLocationCode"/>
<el-table-column label="目标库位" align="center" prop="targetLocationCode"/>
<el-table-column label="执行状态" align="center" prop="executeStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.wms_move_status" :value="scope.row.executeStatus"/>
</template>
</el-table-column>
<el-table-column label="申请人" align="center" prop="applyBy"/>
<el-table-column label="申请时间" align="center" prop="applyDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.applyDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="开始时间" align="center" prop="beginTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.beginTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="结束时间" align="center" prop="endTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-info"
@click="handleOpenDetail(scope.row)"
v-hasPermi="['wms:move:detail']"
>详情
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {listMove, getWarehouses} from "@/api/wms/move";
export default {
name: "Move",
dicts: ['wms_move_type', 'wms_move_status'],
data() {
return {
//
loading: true,
//
ids: [],
//
checkedWmsMoveDetail: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
moveList: [],
//
wmsMoveDetailList: [],
//
dateRangeApplyTime: [],
//
dateRangeBeginTime: [],
//
dateRangeEndTime: [],
warehouseOptions: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
taskCode: null,
warehouseId: null,
oriLocationCode: null,
targetLocationCode: null,
instockBatch: null,
materialId: null,
planAmount: null,
realOutstockAmount: null,
realInstockAmount: null,
operationType: null,
moveWay: null,
moveType: null,
applyReason: null,
auditReason: null,
auditStatus: null,
executeStatus: null,
applyBy: null,
applyDate: null,
auditBy: null,
auditDate: null,
updateDate: null,
beginTime: null,
endTime: null
},
//
form: {},
};
},
created() {
this.getWarehouses();
this.getList();
},
methods: {
/** 查询移库合库记录列表 */
getList() {
this.loading = true;
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeApplyTime, "ApplyTime");
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeBeginTime, "BeginTime");
this.queryParams = this.addDateRange(this.queryParams, this.dateRangeEndTime, "EndTime");
listMove(this.queryParams).then(response => {
this.moveList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
moveId: null,
taskCode: null,
warehouseId: null,
oriLocationCode: null,
targetLocationCode: null,
instockBatch: null,
materialName: null,
planAmount: null,
realOutstockAmount: null,
realInstockAmount: null,
operationType: null,
moveWay: null,
moveType: null,
applyReason: null,
auditReason: null,
auditStatus: null,
executeStatus: null,
applyBy: null,
applyDate: null,
auditBy: null,
auditDate: null,
updateBy: null,
updateDate: null,
beginTime: null,
endTime: null
};
this.wmsMoveDetailList = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRangeApplyTime = [];
this.dateRangeBeginTime = [];
this.dateRangeEndTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.moveId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 移库合库记录明细序号 */
rowWmsMoveDetailIndex({row, rowIndex}) {
row.index = rowIndex + 1;
},
/** 移库合库记录明细添加按钮操作 */
handleAddWmsMoveDetail() {
let obj = {};
obj.locationCode = "";
obj.materialBarcode = "";
obj.instockBatch = "";
obj.materialId = "";
obj.planAmount = "";
obj.realAmount = "";
obj.executeStatus = "";
obj.executePerson = "";
obj.executeTime = "";
obj.moveDetailType = "";
obj.machineName = "";
obj.createDate = "";
obj.updateDate = "";
obj.activeFlag = "";
this.wmsMoveDetailList.push(obj);
},
/** 移库合库记录明细删除按钮操作 */
handleDeleteWmsMoveDetail() {
if (this.checkedWmsMoveDetail.length == 0) {
this.$modal.msgError("请先选择要删除的移库合库记录明细数据");
} else {
const wmsMoveDetailList = this.wmsMoveDetailList;
const checkedWmsMoveDetail = this.checkedWmsMoveDetail;
this.wmsMoveDetailList = wmsMoveDetailList.filter(function (item) {
return checkedWmsMoveDetail.indexOf(item.index) == -1
});
}
},
/** 复选框选中数据 */
handleWmsMoveDetailSelectionChange(selection) {
this.checkedWmsMoveDetail = selection.map(item => item.index)
},
/** 导出按钮操作 */
handleExport() {
this.download('wms/move/export', {
...this.queryParams
}, `move_${new Date().getTime()}.xlsx`)
},
/** 查询仓库列表 */
getWarehouses() {
getWarehouses().then(response => {
this.warehouseOptions = response.data;
});
},
handleOpenDetail(row) {
const moveId = row.moveId;
const taskCode = row.taskCode
const warehouseName = row.warehouseName;
const materialCode = row.materialCode;
const materialName = row.materialName;
const params = {pageNum: this.queryParams.pageNum};
const moveType = row.moveType;
let title = "";
if (moveType === "1") {//
title = "移库详情[" + taskCode + "]"
} else {
title = "合库详情[" + taskCode + "]"
}
this.$tab.openPage(title, '/wms/move/detail/' + moveId + '/' + taskCode + '/' + warehouseName + '/' + materialCode + '/' + materialName, params);
},
}
};
</script>

@ -0,0 +1,608 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="任务编号" prop="taskCode">
<el-input
v-model="queryParams.taskCode"
placeholder="请输入任务编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="仓库ID" prop="warehouseId">
<el-input
v-model="queryParams.warehouseId"
placeholder="请输入仓库ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="仓库楼层" prop="warehouseFloor">
<el-input
v-model="queryParams.warehouseFloor"
placeholder="请输入仓库楼层"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="库位编码" prop="locationCode">
<el-input
v-model="queryParams.locationCode"
placeholder="请输入库位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划编号,关联pd_base_plan_info的plan_code" prop="planCode">
<el-input
v-model="queryParams.planCode"
placeholder="请输入计划编号,关联pd_base_plan_info的plan_code"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划明细编号,关联pd_base_plan_detail的plan_detail_code" prop="planDetailCode">
<el-input
v-model="queryParams.planDetailCode"
placeholder="请输入计划明细编号,关联pd_base_plan_detail的plan_detail_code"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="销售订单ID关联销售订单主键" prop="saleOrderId">
<el-input
v-model="queryParams.saleOrderId"
placeholder="请输入销售订单ID关联销售订单主键"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="销售订单编号" prop="saleorderCode">
<el-input
v-model="queryParams.saleorderCode"
placeholder="请输入销售订单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="成品ID" prop="productId">
<el-input
v-model="queryParams.productId"
placeholder="请输入成品ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="存成品条码" prop="productBatch">
<el-input
v-model="queryParams.productBatch"
placeholder="请输入存成品条码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="入库数量" prop="instockAmount">
<el-input
v-model="queryParams.instockAmount"
placeholder="请输入入库数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="托盘RFID代码" prop="palletInfoCode">
<el-input
v-model="queryParams.palletInfoCode"
placeholder="请输入托盘RFID代码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="申请人" prop="applyBy">
<el-input
v-model="queryParams.applyBy"
placeholder="请输入申请人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="申请时间" prop="applyDate">
<el-date-picker clearable
v-model="queryParams.applyDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择申请时间">
</el-date-picker>
</el-form-item>
<el-form-item label="审核人" prop="auditBy">
<el-input
v-model="queryParams.auditBy"
placeholder="请输入审核人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="审核时间" prop="auditDate">
<el-date-picker clearable
v-model="queryParams.auditDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择审核时间">
</el-date-picker>
</el-form-item>
<el-form-item label="同步给ERP的数量" prop="erpAmount">
<el-input
v-model="queryParams.erpAmount"
placeholder="请输入同步给ERP的数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="最后更新时间" prop="updateDate">
<el-date-picker clearable
v-model="queryParams.updateDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择最后更新时间">
</el-date-picker>
</el-form-item>
<el-form-item label="开始时间;AGV处理开始时间" prop="beginTime">
<el-date-picker clearable
v-model="queryParams.beginTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择开始时间;AGV处理开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间;agv处理结束时间" prop="endTime">
<el-date-picker clearable
v-model="queryParams.endTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择结束时间;agv处理结束时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['wms:productInstock:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['wms:productInstock:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['wms:productInstock:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['wms:productInstock:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="productInstockList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成品入库记录ID" align="center" prop="productInstockId" />
<el-table-column label="任务编号" align="center" prop="taskCode" />
<el-table-column label="仓库ID" align="center" prop="warehouseId" />
<el-table-column label="仓库楼层" align="center" prop="warehouseFloor" />
<el-table-column label="库位编码" align="center" prop="locationCode" />
<el-table-column label="成品类型" align="center" prop="productType" />
<el-table-column label="操作类型(0自动,1人工,2强制,3调度);调度,适合双排库自动移库时" align="center" prop="operationType" />
<el-table-column label="计划编号,关联pd_base_plan_info的plan_code" align="center" prop="planCode" />
<el-table-column label="计划明细编号,关联pd_base_plan_detail的plan_detail_code" align="center" prop="planDetailCode" />
<el-table-column label="销售订单ID关联销售订单主键" align="center" prop="saleOrderId" />
<el-table-column label="销售订单编号" align="center" prop="saleorderCode" />
<el-table-column label="入库类型(1生产入库,2出半成品库,9其他入库)" align="center" prop="instockType" />
<el-table-column label="成品ID" align="center" prop="productId" />
<el-table-column label="存成品条码" align="center" prop="productBatch" />
<el-table-column label="入库数量" align="center" prop="instockAmount" />
<el-table-column label="托盘RFID代码" align="center" prop="palletInfoCode" />
<el-table-column label="申请原因" align="center" prop="applyReason" />
<el-table-column label="审核原因" align="center" prop="auditReason" />
<el-table-column label="审核状态(0待审核,1审核通过,2审核未通过)" align="center" prop="auditStatus" />
<el-table-column label="执行状态(0待执行,1执行中,2执行完成)" align="center" prop="executeStatus" />
<el-table-column label="申请人" align="center" prop="applyBy" />
<el-table-column label="申请时间" align="center" prop="applyDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.applyDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="审核人" align="center" prop="auditBy" />
<el-table-column label="审核时间" align="center" prop="auditDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.auditDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="同步ERP状态(0:失败,1成功)" align="center" prop="erpStatus" />
<el-table-column label="同步给ERP的数量" align="center" prop="erpAmount" />
<el-table-column label="最后更新时间" align="center" prop="updateDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="开始时间;AGV处理开始时间" align="center" prop="beginTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.beginTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="结束时间;agv处理结束时间" align="center" prop="endTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['wms:productInstock:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['wms:productInstock:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改成品入库记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="任务编号" prop="taskCode">
<el-input v-model="form.taskCode" placeholder="请输入任务编号" />
</el-form-item>
<el-form-item label="仓库ID" prop="warehouseId">
<el-input v-model="form.warehouseId" placeholder="请输入仓库ID" />
</el-form-item>
<el-form-item label="仓库楼层" prop="warehouseFloor">
<el-input v-model="form.warehouseFloor" placeholder="请输入仓库楼层" />
</el-form-item>
<el-form-item label="库位编码" prop="locationCode">
<el-input v-model="form.locationCode" placeholder="请输入库位编码" />
</el-form-item>
<el-form-item label="计划编号,关联pd_base_plan_info的plan_code" prop="planCode">
<el-input v-model="form.planCode" placeholder="请输入计划编号,关联pd_base_plan_info的plan_code" />
</el-form-item>
<el-form-item label="计划明细编号,关联pd_base_plan_detail的plan_detail_code" prop="planDetailCode">
<el-input v-model="form.planDetailCode" placeholder="请输入计划明细编号,关联pd_base_plan_detail的plan_detail_code" />
</el-form-item>
<el-form-item label="销售订单ID关联销售订单主键" prop="saleOrderId">
<el-input v-model="form.saleOrderId" placeholder="请输入销售订单ID关联销售订单主键" />
</el-form-item>
<el-form-item label="销售订单编号" prop="saleorderCode">
<el-input v-model="form.saleorderCode" placeholder="请输入销售订单编号" />
</el-form-item>
<el-form-item label="成品ID" prop="productId">
<el-input v-model="form.productId" placeholder="请输入成品ID" />
</el-form-item>
<el-form-item label="存成品条码" prop="productBatch">
<el-input v-model="form.productBatch" placeholder="请输入存成品条码" />
</el-form-item>
<el-form-item label="入库数量" prop="instockAmount">
<el-input v-model="form.instockAmount" placeholder="请输入入库数量" />
</el-form-item>
<el-form-item label="托盘RFID代码" prop="palletInfoCode">
<el-input v-model="form.palletInfoCode" placeholder="请输入托盘RFID代码" />
</el-form-item>
<el-form-item label="申请原因" prop="applyReason">
<el-input v-model="form.applyReason" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="审核原因" prop="auditReason">
<el-input v-model="form.auditReason" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="申请人" prop="applyBy">
<el-input v-model="form.applyBy" placeholder="请输入申请人" />
</el-form-item>
<el-form-item label="申请时间" prop="applyDate">
<el-date-picker clearable
v-model="form.applyDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择申请时间">
</el-date-picker>
</el-form-item>
<el-form-item label="审核人" prop="auditBy">
<el-input v-model="form.auditBy" placeholder="请输入审核人" />
</el-form-item>
<el-form-item label="审核时间" prop="auditDate">
<el-date-picker clearable
v-model="form.auditDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择审核时间">
</el-date-picker>
</el-form-item>
<el-form-item label="同步给ERP的数量" prop="erpAmount">
<el-input v-model="form.erpAmount" placeholder="请输入同步给ERP的数量" />
</el-form-item>
<el-form-item label="最后更新时间" prop="updateDate">
<el-date-picker clearable
v-model="form.updateDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择最后更新时间">
</el-date-picker>
</el-form-item>
<el-form-item label="开始时间;AGV处理开始时间" prop="beginTime">
<el-date-picker clearable
v-model="form.beginTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择开始时间;AGV处理开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间;agv处理结束时间" prop="endTime">
<el-date-picker clearable
v-model="form.endTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择结束时间;agv处理结束时间">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listProductInstock, getProductInstock, delProductInstock, addProductInstock, updateProductInstock } from "@/api/wms/productInstock";
export default {
name: "ProductInstock",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
productInstockList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
taskCode: null,
warehouseId: null,
warehouseFloor: null,
locationCode: null,
productType: null,
operationType: null,
planCode: null,
planDetailCode: null,
saleOrderId: null,
saleorderCode: null,
instockType: null,
productId: null,
productBatch: null,
instockAmount: null,
palletInfoCode: null,
applyReason: null,
auditReason: null,
auditStatus: null,
executeStatus: null,
applyBy: null,
applyDate: null,
auditBy: null,
auditDate: null,
erpStatus: null,
erpAmount: null,
updateDate: null,
beginTime: null,
endTime: null
},
//
form: {},
//
rules: {
warehouseId: [
{ required: true, message: "仓库ID不能为空", trigger: "blur" }
],
productType: [
{ required: true, message: "成品类型不能为空", trigger: "change" }
],
operationType: [
{ required: true, message: "操作类型(0自动,1人工,2强制,3调度);调度,适合双排库自动移库时不能为空", trigger: "change" }
],
planCode: [
{ required: true, message: "计划编号,关联pd_base_plan_info的plan_code不能为空", trigger: "blur" }
],
instockType: [
{ required: true, message: "入库类型(1生产入库,2出半成品库,9其他入库)不能为空", trigger: "change" }
],
auditStatus: [
{ required: true, message: "审核状态(0待审核,1审核通过,2审核未通过)不能为空", trigger: "change" }
],
executeStatus: [
{ required: true, message: "执行状态(0待执行,1执行中,2执行完成)不能为空", trigger: "change" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询成品入库记录列表 */
getList() {
this.loading = true;
listProductInstock(this.queryParams).then(response => {
this.productInstockList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
productInstockId: null,
taskCode: null,
warehouseId: null,
warehouseFloor: null,
locationCode: null,
productType: null,
operationType: null,
planCode: null,
planDetailCode: null,
saleOrderId: null,
saleorderCode: null,
instockType: null,
productId: null,
productBatch: null,
instockAmount: null,
palletInfoCode: null,
applyReason: null,
auditReason: null,
auditStatus: null,
executeStatus: null,
applyBy: null,
applyDate: null,
auditBy: null,
auditDate: null,
erpStatus: null,
erpAmount: null,
updateBy: null,
updateDate: null,
beginTime: null,
endTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.productInstockId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加成品入库记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const productInstockId = row.productInstockId || this.ids
getProductInstock(productInstockId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改成品入库记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.productInstockId != null) {
updateProductInstock(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addProductInstock(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const productInstockIds = row.productInstockId || this.ids;
this.$modal.confirm('是否确认删除成品入库记录编号为"' + productInstockIds + '"的数据项?').then(function() {
return delProductInstock(productInstockIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('wms/productInstock/export', {
...this.queryParams
}, `productInstock_${new Date().getTime()}.xlsx`)
}
}
};
</script>
Loading…
Cancel
Save