wxw
2024-09-06 83a982e1e889cb8f6ba03cab92b222d83434a398
新增箱码明细表;开发分拣码垛绑定任务功能
3个文件已修改
1个文件已添加
251 ■■■■ 已修改文件
Admin.NET/WCS.Application/Entity/WcsBoxInfo.cs 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Entity/WcsCheckTask.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/device/sortPallet/index.vue 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Entity/WcsBoxInfo.cs
New file
@@ -0,0 +1,125 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
using Admin.NET.Core;
namespace WCS.Application.Entity;
/// <summary>
/// 箱码明细表
/// </summary>
[SugarTable("WCSBoxInfo","箱码明细表")]
[Tenant("1300000000001")]
public class WcsBoxInfo  : EntityBaseData
{
    /// <summary>
    /// 托盘号
    /// </summary>
    [SugarColumn(ColumnName = "PalletNo", ColumnDescription = "托盘号", Length = 20)]
    public string? PalletNo { get; set; }
    /// <summary>
    /// 物料编码
    /// </summary>
    [SugarColumn(ColumnName = "SkuNo", ColumnDescription = "物料编码", Length = 20)]
    public string? SkuNo { get; set; }
    /// <summary>
    /// 物料名称
    /// </summary>
    [SugarColumn(ColumnName = "SkuName", ColumnDescription = "物料名称", Length = 20)]
    public string? SkuName { get; set; }
    /// <summary>
    /// 批次号
    /// </summary>
    [SugarColumn(ColumnName = "LotNo", ColumnDescription = "批次号", Length = 20)]
    public string? LotNo { get; set; }
    /// <summary>
    /// 批次描述
    /// </summary>
    [SugarColumn(ColumnName = "LotText", ColumnDescription = "批次描述", Length = 50)]
    public string? LotText { get; set; }
    /// <summary>
    /// 供应商代码
    /// </summary>
    [SugarColumn(ColumnName = "Custom", ColumnDescription = "供应商代码", Length = 20)]
    public string? Custom { get; set; }
    /// <summary>
    /// 供应商名称
    /// </summary>
    [SugarColumn(ColumnName = "CustomName", ColumnDescription = "供应商名称", Length = 50)]
    public string? CustomName { get; set; }
    /// <summary>
    /// 生产日期
    /// </summary>
    [SugarColumn(ColumnName = "ProductionTime", ColumnDescription = "生产日期")]
    public DateTime? ProductionTime { get; set; }
    /// <summary>
    /// 过期日期
    /// </summary>
    [SugarColumn(ColumnName = "ExpirationTime", ColumnDescription = "过期日期")]
    public DateTime? ExpirationTime { get; set; }
    /// <summary>
    /// 产线
    /// </summary>
    [SugarColumn(ColumnName = "LineNo", ColumnDescription = "产线", Length = 20)]
    public string? LineNo { get; set; }
    /// <summary>
    /// 物料规格
    /// </summary>
    [SugarColumn(ColumnName = "Standard", ColumnDescription = "物料规格", Length = 20)]
    public string? Standard { get; set; }
    /// <summary>
    /// 包装规格
    /// </summary>
    [SugarColumn(ColumnName = "PackageStandard", ColumnDescription = "包装规格", Length = 20)]
    public string? PackageStandard { get; set; }
    /// <summary>
    /// 包装单位
    /// </summary>
    [SugarColumn(ColumnName = "PackUnit", ColumnDescription = "包装单位", Length = 20)]
    public string? PackUnit { get; set; }
    /// <summary>
    /// 存储期至
    /// </summary>
    [SugarColumn(ColumnName = "StoreTime", ColumnDescription = "存储期至")]
    public DateTime? StoreTime { get; set; }
    /// <summary>
    /// 零箱标记
    /// </summary>
    [SugarColumn(ColumnName = "BitBoxMark", ColumnDescription = "零箱标记", Length = 3)]
    public string? BitBoxMark { get; set; }
    /// <summary>
    /// 箱码
    /// </summary>
    [SugarColumn(ColumnName = "BoxNo", ColumnDescription = "箱码", Length = 30)]
    public string? BoxNo { get; set; }
    /// <summary>
    /// 盒码
    /// </summary>
    [SugarColumn(ColumnName = "BoxNo2", ColumnDescription = "盒码", Length = 30)]
    public string? BoxNo2 { get; set; }
    /// <summary>
    /// 包装级别
    /// </summary>
    [SugarColumn(ColumnName = "Level", ColumnDescription = "包装级别", Length = 3)]
    public string? Level { get; set; }
}
Admin.NET/WCS.Application/Entity/WcsCheckTask.cs
@@ -39,10 +39,22 @@
    public string? Port { get; set; }
    
    /// <summary>
    /// 批次号
    /// </summary>
    [SugarColumn(ColumnName = "LotNo", ColumnDescription = "批次号", Length = 50)]
    public string? LotNo { get; set; }
    /// <summary>
    /// 物料编码
    /// </summary>
    [SugarColumn(ColumnName = "SkuNo", ColumnDescription = "物料编码", Length = 20)]
    public string? SkuNo { get; set; }
    /// <summary>
    /// 物料名称
    /// </summary>
    [SugarColumn(ColumnName = "SkuName", ColumnDescription = "物料名称", Length = 50)]
    public string? SkuName { get; set; }
    
    /// <summary>
    /// 规格
@@ -71,14 +83,14 @@
    /// <summary>
    /// 插码数量
    /// </summary>
    [SugarColumn(ColumnName = "BoxInsert", ColumnDescription = "插码数量", Length = 20)]
    public string? BoxInsert { get; set; }
    [SugarColumn(ColumnName = "BoxInsert", ColumnDescription = "插码数量")]
    public int? BoxInsert { get; set; }
    
    /// <summary>
    /// 托盘上箱数量
    /// </summary>
    [SugarColumn(ColumnName = "BoxCount", ColumnDescription = "托盘上箱数量", Length = 20)]
    public string? BoxCount { get; set; }
    [SugarColumn(ColumnName = "BoxCount", ColumnDescription = "托盘上箱数量")]
    public int? BoxCount { get; set; }
    
    /// <summary>
    /// 总箱数/计划箱数/预估箱数
@@ -99,15 +111,9 @@
    public DateTime? BindTime { get; set; }
    
    /// <summary>
    /// 绑定人
    /// 绑定者Id
    /// </summary>
    [SugarColumn(ColumnName = "BindUser", ColumnDescription = "绑定人")]
    public int? BindUser { get; set; }
    /// <summary>
    /// 创建人
    /// </summary>
    [SugarColumn(ColumnName = "CreateUser", ColumnDescription = "创建人")]
    public int? CreateUser { get; set; }
    [SugarColumn(ColumnName = "BindUserId", ColumnDescription = "绑定者Id")]
    public long? BindUserId { get; set; }
    
}
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -286,7 +286,7 @@
    {
        return await _wcsDeviceRep.Context.Queryable<WcsPlc>()
                .Where(w => w.Type == PLCTypeEnum.RobotPalletizer || w.Type == PLCTypeEnum.StackingRobot)
                .OrderBy(o => o.Type)
                .OrderByDescending(o => o.Type)
                .Select(u => new
                {
                    id = u.Id,
Web/src/views/device/sortPallet/index.vue
@@ -1,6 +1,6 @@
<template>
    <el-container>        
        <el-cloum>
        <el-col>
            <el-row :span="1">
                <div class="card-page">
                    <el-button
@@ -47,13 +47,13 @@
                                <el-form-item label="抓箱品种">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="DB记录箱数">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="托盘号">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="码垛箱数">
                                <el-form-item label="插码数量">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="托盘上箱数量">
                                    <el-input></el-input>
                                </el-form-item>
                                <el-form-item label="WMS下发数量">
@@ -64,7 +64,7 @@
                        <div class="otherButtonfix">
                            <el-form label-position="left">
                                <el-form-item>
                                    <el-button type="primary">绑定</el-button>
                                    <el-button type="primary" @click="openBindDialog()">绑定</el-button>
                                    <el-button>结批</el-button>
                                </el-form-item>
                            </el-form>
@@ -72,25 +72,59 @@
                    </el-card>
                </div>
            </el-row>
        </el-cloum>
    </el-container>
        </el-col>
         <!-- 绑定任务弹框 -->
         <el-dialog v-model="bindDialogVisible" title="选择数据">
            <el-table
                :data="bindData"
                highlight-current-row
                @row-click="handleRowClick"
                >
                <el-table-column type="selection" width="55"/>
                <el-table-column prop="orderNo" label="WMS下发单号"  show-overflow-tooltip="" />
                <el-table-column prop="taskNo" label="任务号"  show-overflow-tooltip="" />
                <el-table-column prop="lotNo" label="批次号"  show-overflow-tooltip="" />
                <el-table-column prop="skuNo" label="物料编码"  show-overflow-tooltip="" />
                <el-table-column prop="skuName" label="物料名称"  show-overflow-tooltip="" />
                <el-table-column prop="boxType" label="规格"  show-overflow-tooltip="" />
                <el-table-column prop="qty" label="总箱数/计划箱数/预估箱数"  show-overflow-tooltip="" />
            </el-table>
            <div slot="footer" class="dialog-footer">
                <el-button @click="bindDialogVisible = false">取消</el-button>
                <el-button type="primary" @click="confirmBinding">确认</el-button>
            </div>
        </el-dialog>
    </el-container>
</template>
  
<script lang="ts" setup>
import { ref } from 'vue';
import { GetWcsPackPlcList,GetWcsPackStationPlcList } from '/@/api/wcs/wcsDevice';
import { pageWcsOderTask } from '/@/api/device/wcsOderTask';
//设备数据
const deviceList=ref<any>([]);
//设备对应工位数据
const devicePointData = ref<any>([]);
//选中设备ID
const selectedDeviceId=ref<any>();
//获取
const bindDialogVisible = ref(false);
const bindData = ref<any>([]);
const selectedRow = ref<any>(null);
const queryParams = ref<any>({});
const tableParams = ref({
    page: 1,
    pageSize: 10,
    total: 0,
});
//获取设备对应的工位数据
const fetchStationData = async (plcId: any) => {
    const res2 = await GetWcsPackStationPlcList({ plcId });
    devicePointData.value = res2.data.result;
    console.log('data:'+devicePointData.value);
};
// 获取设备数据
const fetchPLCDeviceData = async () => {
@@ -104,12 +138,39 @@
};
fetchPLCDeviceData();
//切换
//切换设备
function chooseDevice(id) {
    selectedDeviceId.value = id;
    fetchStationData(id);
}
const handleQuery = async () => {
    var res = await pageWcsOderTask(Object.assign(queryParams.value, tableParams.value));
    bindData.value = res.data.result?.items ?? [];
    tableParams.value.total = res.data.result?.total;
  };
//打开绑定弹框
function openBindDialog() {
    bindDialogVisible.value = true;
    // Mock data for binding
    handleQuery();
}
//点击行时设置选中行
function handleRowClick(row) {
    selectedRow.value = row;
}
//确认绑定操作
function confirmBinding() {
    if (selectedRow.value) {
        console.log('Selected Row:', selectedRow.value);
        // Do binding logic here
        bindDialogVisible.value = false;
    } else {
        console.error('No row selected');
    }
}
</script>
<style scoped>
@@ -172,5 +233,10 @@
    .device-status-1{
        background-color: red;
    }
    .dialog-footer {
        display: flex;
        justify-content: flex-end;
        margin-top: 20px;
    }
</style>