forked from BaoKaiWms/202501-Wms-Kate-Wuxi
1.添加物料信息后端更新关闭接口
2.完善goods.vue页面
This commit is contained in:
parent
f6328d49bd
commit
a901b2847d
|
|
@ -8,5 +8,27 @@ export const getGoodsInfoByPage = (params) => {
|
|||
url: '/goods/getGoodsInfoByPage',
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新物料信息
|
||||
*/
|
||||
export const updateGoodsInfo = (params) => {
|
||||
return request({
|
||||
url: '/goods/updateGoodsInfo',
|
||||
method: 'post',
|
||||
data: params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 关闭物料使用
|
||||
*/
|
||||
export const closeGoodsInfo = (params) => {
|
||||
return request({
|
||||
url: '/goods/closeGoodsInfo',
|
||||
method: 'post',
|
||||
data: params
|
||||
});
|
||||
};
|
||||
|
|
@ -57,14 +57,15 @@
|
|||
show-overflow-tooltip />
|
||||
<el-table-column prop="hotPoint" label="热点区域" min-width="120px" sortable="custom"
|
||||
show-overflow-tooltip />
|
||||
<!-- <el-table-column fixed="right" label="操作" width="170px">
|
||||
<el-table-column fixed="right" label="操作" width="170px">
|
||||
<template v-slot="scope">
|
||||
<div style="display: inline-block; align-content: center;">
|
||||
<el-button type="primary"
|
||||
@click="editCurrentRowFormEntity(scope.row)">编辑</el-button>
|
||||
<el-button type="danger" @click="closeGoods(scope.row)">关闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<br />
|
||||
<el-pagination v-model:current-page="baseTableQuery.currentPage"
|
||||
|
|
@ -73,78 +74,79 @@
|
|||
@current-change="search" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="baseTableQuery.total" />
|
||||
</div>
|
||||
<el-dialog v-model="rowEditFlag" title="工作信息" width="40%" draggable :show-close="false">
|
||||
<el-dialog v-model="rowEditFlag" title="物料信息" width="60%" draggable :show-close="false">
|
||||
<el-form ref="rowEditFormRef" :model="rowFormEntity" :label-position="labelPosition"
|
||||
label-width="100px" style="max-width: 100%" status-icon>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="工作编号">
|
||||
<el-input v-model="rowFormEntity.workIndex" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工单号">
|
||||
<el-input v-model="rowFormEntity.workOrder" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="总成号">
|
||||
<el-input v-model="rowFormEntity.productId" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成品号">
|
||||
<el-input v-model="rowFormEntity.singleProductId" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="料盒号">
|
||||
<el-input v-model="rowFormEntity.boxNo" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="料号">
|
||||
<el-input v-model="rowFormEntity.goodsId" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="rowFormEntity.goodsDescription" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="需求数量">
|
||||
<el-input-number v-model.number="rowFormEntity.needNum" controls-position="right"
|
||||
:min="0" disabled />
|
||||
<el-form-item label="工厂">
|
||||
<el-input v-model="rowFormEntity.plant" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="已完成数量">
|
||||
<el-input-number v-model.number="rowFormEntity.finishNum" controls-position="right"
|
||||
:min="0" :max="rowFormEntity.needNum" clearable />
|
||||
<el-form-item label="供应商">
|
||||
<el-input v-model="rowFormEntity.vendorName" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="已分配数量">
|
||||
<el-input-number v-model.number="rowFormEntity.distributeNum"
|
||||
controls-position="right" :min="0" :max="rowFormEntity.needNum" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="工作状态">
|
||||
<el-select-v2 v-model="rowFormEntity.workStatus" placeholder="请选择工作状态"
|
||||
:options="workStatusOptions"></el-select-v2>
|
||||
<el-form-item label="SLED管理">
|
||||
<el-input v-model="rowFormEntity.isSled" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="缺料状态">
|
||||
<el-select-v2 v-model="rowFormEntity.lackStatus" placeholder="请选择缺料状态"
|
||||
:options="lackStatusOptions"></el-select-v2>
|
||||
<el-form-item label="SLED天数">
|
||||
<el-input v-model="rowFormEntity.sledDays" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="补料类型">
|
||||
<el-input v-model="rowFormEntity.feedingType" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 可编辑字段 -->
|
||||
<el-divider>可编辑字段</el-divider>
|
||||
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="每盒数量">
|
||||
<el-input-number v-model="rowFormEntity.boxQty" controls-position="right"
|
||||
:min="0" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="最大盒数">
|
||||
<el-input-number v-model="rowFormEntity.maxBoxNum" controls-position="right"
|
||||
:min="0" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="存放区域">
|
||||
<el-input v-model="rowFormEntity.putArea" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="热点区域">
|
||||
<el-input v-model="rowFormEntity.hotPoint" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -166,10 +168,10 @@
|
|||
<script setup>
|
||||
import store from '@/store'
|
||||
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
||||
import { getGoodsInfoByPage } from '@/api/goods.js'
|
||||
import { getGoodsInfoByPage, updateGoodsInfo, closeGoodsInfo } from '@/api/goods.js'
|
||||
import { timeFormatter, wmsTaskTypeFormatter, wmsTaskStatusFormatter } from '@/utils/formatter.js'
|
||||
import { ref, reactive, onMounted, nextTick, onBeforeUnmount } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { genTableRequest } from '@/utils/generator.js'
|
||||
import { labelPosition } from '@/constant/form.js'
|
||||
import { loading } from '@/utils/loading'
|
||||
|
|
@ -243,7 +245,6 @@ const search = () => {
|
|||
ElMessage.error(response.message)
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
ElMessage.error('查询数据异常。')
|
||||
}).finally(() => {
|
||||
tableLoading.value = false
|
||||
|
|
@ -274,57 +275,54 @@ const taskStatusFormat = (row, column, cellValue, index) => {
|
|||
}
|
||||
// 编辑弹框
|
||||
const editCurrentRowFormEntity = (row) => {
|
||||
// 设置form值
|
||||
rowFormEntity.workIndex = row.workIndex
|
||||
rowFormEntity.workOrder = row.workOrder
|
||||
rowFormEntity.productId = row.productId
|
||||
rowFormEntity.singleProductId = row.singleProductId
|
||||
rowFormEntity.boxNo = row.boxNo
|
||||
rowFormEntity.goodsId = row.goodsId
|
||||
rowFormEntity.needNum = row.needNum
|
||||
rowFormEntity.distributeNum = row.distributeNum
|
||||
rowFormEntity.finishNum = row.finishNum
|
||||
rowFormEntity.workStatus = row.workStatus
|
||||
rowFormEntity.lackStatus = row.lackStatus
|
||||
// 设置form值,复制所有字段
|
||||
Object.assign(rowFormEntity, row)
|
||||
// 弹出框
|
||||
rowEditFlag.value = true
|
||||
}
|
||||
// 关闭当前缺料工作
|
||||
const closeLackWork = (row) => {
|
||||
// 关闭物料
|
||||
const closeGoods = (row) => {
|
||||
ElMessageBox.confirm(`确定要关闭物料(${row.goodsId})吗?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const request = {
|
||||
workIndex: row.workIndex,
|
||||
goodsId: row.goodsId,
|
||||
standId: STAND_ID,
|
||||
userName: USER_NAME
|
||||
}
|
||||
loading.open('关闭中...')
|
||||
closeCurrentWorks(request).then(res => {
|
||||
const response = res.data
|
||||
};
|
||||
loading.open('关闭中...');
|
||||
closeGoodsInfo(request).then(res => {
|
||||
const response = res.data;
|
||||
if (response.code == 0) {
|
||||
ElMessage.success(response.message)
|
||||
search()
|
||||
ElMessage.success(response.message);
|
||||
search();
|
||||
} else {
|
||||
ElMessage.error(response.message)
|
||||
ElMessage.error(response.message);
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
ElMessage.error('请求异常。')
|
||||
ElMessage.error('请求异常。');
|
||||
}).finally(() => {
|
||||
loading.close()
|
||||
})
|
||||
loading.close();
|
||||
});
|
||||
}).catch(err => {
|
||||
ElMessage.info('已取消关闭操作');
|
||||
});
|
||||
}
|
||||
// 更新当前行数据
|
||||
const submitUpdateRow = (rowFormEntity) => {
|
||||
const request = {
|
||||
workIndex: rowFormEntity.workIndex,
|
||||
distributeNum: rowFormEntity.distributeNum,
|
||||
finishNum: rowFormEntity.finishNum,
|
||||
workStatus: rowFormEntity.workStatus,
|
||||
lackStatus: rowFormEntity.lackStatus,
|
||||
goodsId: rowFormEntity.goodsId,
|
||||
boxQty: rowFormEntity.boxQty,
|
||||
maxBoxNum: rowFormEntity.maxBoxNum,
|
||||
putArea: rowFormEntity.putArea,
|
||||
hotPoint: rowFormEntity.hotPoint,
|
||||
standId: STAND_ID,
|
||||
userName: USER_NAME
|
||||
}
|
||||
loading.open('更新中...')
|
||||
updateKateWorks(request).then(res => {
|
||||
updateGoodsInfo(request).then(res => {
|
||||
if (res.data.code == 0) {
|
||||
ElMessage.success('更新数据成功。')
|
||||
rowEditFlag.value = false
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.wms_main.controller.wms;
|
||||
|
||||
import com.wms_main.model.dto.query.GoodsQuery;
|
||||
import com.wms_main.model.dto.request.wms.UpdateGoodsRequest;
|
||||
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
|
||||
import com.wms_main.model.vo.wms.GoodsVo;
|
||||
import com.wms_main.model.vo.wms.PageVo;
|
||||
import com.wms_main.model.dto.response.wms.WmsApiResponse;
|
||||
|
|
@ -28,4 +30,24 @@ public class GoodsController {
|
|||
public WmsApiResponse<PageVo<GoodsVo>> getGoodsInfoByPage(@RequestBody GoodsQuery goodsQuery) {
|
||||
return goodsControllerService.getGoodsInfoByPage(goodsQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新物料信息
|
||||
* @param updateGoodsRequest 更新请求
|
||||
* @return 更新结果
|
||||
*/
|
||||
@PostMapping("/updateGoodsInfo")
|
||||
public BaseWmsApiResponse updateGoodsInfo(@RequestBody UpdateGoodsRequest updateGoodsRequest) {
|
||||
return goodsControllerService.updateGoodsInfo(updateGoodsRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭物料使用
|
||||
* @param updateGoodsRequest 关闭请求
|
||||
* @return 关闭结果
|
||||
*/
|
||||
@PostMapping("/closeGoodsInfo")
|
||||
public BaseWmsApiResponse closeGoodsInfo(@RequestBody UpdateGoodsRequest updateGoodsRequest) {
|
||||
return goodsControllerService.closeGoodsInfo(updateGoodsRequest);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.wms_main.service.controller;
|
||||
|
||||
import com.wms_main.model.dto.query.GoodsQuery;
|
||||
import com.wms_main.model.dto.request.wms.UpdateGoodsRequest;
|
||||
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
|
||||
import com.wms_main.model.vo.wms.GoodsVo;
|
||||
import com.wms_main.model.vo.wms.PageVo;
|
||||
import com.wms_main.model.dto.response.wms.WmsApiResponse;
|
||||
|
|
@ -16,4 +18,18 @@ public interface IGoodsControllerService {
|
|||
* @return 查询结果
|
||||
*/
|
||||
WmsApiResponse<PageVo<GoodsVo>> getGoodsInfoByPage(@RequestBody GoodsQuery goodsQuery);
|
||||
|
||||
/**
|
||||
* 更新物料信息
|
||||
* @param updateGoodsRequest 更新请求
|
||||
* @return 更新结果
|
||||
*/
|
||||
BaseWmsApiResponse updateGoodsInfo(@RequestBody UpdateGoodsRequest updateGoodsRequest);
|
||||
|
||||
/**
|
||||
* 关闭物料使用
|
||||
* @param updateGoodsRequest 关闭请求
|
||||
* @return 关闭结果
|
||||
*/
|
||||
BaseWmsApiResponse closeGoodsInfo(@RequestBody UpdateGoodsRequest updateGoodsRequest);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package com.wms_main.service.controller.serviceImpl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wms_main.dao.ITAppGoodsService;
|
||||
import com.wms_main.model.dto.request.wms.UpdateGoodsRequest;
|
||||
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
|
||||
import com.wms_main.model.po.TAppGoods;
|
||||
import com.wms_main.model.dto.query.GoodsQuery;
|
||||
import com.wms_main.model.vo.wms.GoodsVo;
|
||||
|
|
@ -13,6 +16,9 @@ import com.wms_main.service.controller.IGoodsControllerService;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 物料控制类 服务实现
|
||||
|
|
@ -41,4 +47,79 @@ public class GoodsControllerServiceImpl implements IGoodsControllerService {
|
|||
PageVo<GoodsVo> pageVo = PageVo.of(goodsPage, GoodsVo::of);
|
||||
return WmsApiResponse.success("查询成功", pageVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 实现--更新物料信息
|
||||
* @param updateGoodsRequest 更新请求
|
||||
* @return 更新结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public BaseWmsApiResponse updateGoodsInfo(UpdateGoodsRequest updateGoodsRequest) {
|
||||
if (updateGoodsRequest == null) {
|
||||
return BaseWmsApiResponse.error("更新参数不能为NULL");
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(updateGoodsRequest.getGoodsId())) {
|
||||
return BaseWmsApiResponse.error("物料编号不能为空");
|
||||
}
|
||||
|
||||
try {
|
||||
// 更新物料信息
|
||||
boolean result = goodsService.update(new LambdaUpdateWrapper<TAppGoods>()
|
||||
.eq(TAppGoods::getGoodsId, updateGoodsRequest.getGoodsId())
|
||||
.set(updateGoodsRequest.getBoxQty() != null, TAppGoods::getBoxQty, updateGoodsRequest.getBoxQty())
|
||||
.set(updateGoodsRequest.getMaxBoxNum() != null, TAppGoods::getMaxBoxNum, updateGoodsRequest.getMaxBoxNum())
|
||||
.set(StringUtils.isNotEmpty(updateGoodsRequest.getPutArea()), TAppGoods::getPutArea, updateGoodsRequest.getPutArea())
|
||||
.set(StringUtils.isNotEmpty(updateGoodsRequest.getHotPoint()), TAppGoods::getHotPoint, updateGoodsRequest.getHotPoint())
|
||||
.set(TAppGoods::getLastUpdateUser, updateGoodsRequest.getUserName())
|
||||
.set(TAppGoods::getLastUpdateTime, LocalDateTime.now()));
|
||||
|
||||
if (result) {
|
||||
return BaseWmsApiResponse.success("更新物料信息成功");
|
||||
} else {
|
||||
return BaseWmsApiResponse.error("更新物料信息失败,未找到对应物料或物料信息未发生变更");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新物料信息异常: {}", e.getMessage(), e);
|
||||
return BaseWmsApiResponse.error("更新物料信息异常: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 实现--关闭物料使用
|
||||
* @param updateGoodsRequest 关闭请求
|
||||
* @return 关闭结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public BaseWmsApiResponse closeGoodsInfo(UpdateGoodsRequest updateGoodsRequest) {
|
||||
if (updateGoodsRequest == null) {
|
||||
return BaseWmsApiResponse.error("关闭参数不能为NULL");
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(updateGoodsRequest.getGoodsId())) {
|
||||
return BaseWmsApiResponse.error("物料编号不能为空");
|
||||
}
|
||||
|
||||
try {
|
||||
// 这里根据业务需求实现物料关闭逻辑
|
||||
// 例如:将物料设置为不可用状态、更新特定字段等
|
||||
boolean result = goodsService.update(new LambdaUpdateWrapper<TAppGoods>()
|
||||
.eq(TAppGoods::getGoodsId, updateGoodsRequest.getGoodsId())
|
||||
.set(TAppGoods::getPutArea, "已关闭")
|
||||
.set(TAppGoods::getHotPoint, "已关闭")
|
||||
.set(TAppGoods::getLastUpdateUser, updateGoodsRequest.getUserName())
|
||||
.set(TAppGoods::getLastUpdateTime, LocalDateTime.now()));
|
||||
|
||||
if (result) {
|
||||
return BaseWmsApiResponse.success("关闭物料成功");
|
||||
} else {
|
||||
return BaseWmsApiResponse.error("关闭物料失败,未找到对应物料");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("关闭物料异常: {}", e.getMessage(), e);
|
||||
return BaseWmsApiResponse.error("关闭物料异常: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user