zongzhibin
2024-11-29 1b6830d5f8671e48bdc13d7155b848aa938283f5
Merge branch 'master' of http://222.71.245.114:9086/r/LA24030-LuLI_PackageLine
已添加38个文件
已修改28个文件
已删除5个文件
13547 ■■■■■ 文件已修改
CC/iWareSql/WmsDBModel/WmsDBModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_order_gather.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_package_gather.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_package_linequeue.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_package_unline_record.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_push_papercut.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Print/LA24030_LuLiPackageLine_PrintService/WindowsFormsApplication1/Form1.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Print/printer基础服务/Express_printer.exe.config 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Print/打印模板文件/包装条码模板_二维码.btw 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/mes_Package_UnLine_Record.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/ThirdInterFace/mesPushPaperCut.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Order_Gather.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Package_Gather.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Package_LineQueue.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/validateQiTaoOutput.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/mes_Package_UnLine_Record/component/editDialog.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/mes_Package_UnLine_Record/index.vue 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ThirdInterFace/mesPushPaperCut/component/editDialog.vue 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ThirdInterFace/mesPushPaperCut/index.vue 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue 243 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue 261 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Order_Gather/component/editDialog.vue 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Order_Gather/index.vue 316 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_Gather/component/editDialog.vue 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_Gather/index.vue 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_LineQueue/component/editDialog.vue 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_LineQueue/index.vue 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/validateQiTaoOutput/component/editDialog.vue 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/validateQiTaoOutput/index.vue 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/stats.html 4842 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Database.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/MesPushPaperCut.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Order_Gather.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_Gather.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_LineQueue.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_UnLine_Record.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/DispenseStatusEnum.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/FinancialTypeEnum.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/OrderStatusEnum.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/PDRecordStatusEnum.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/PDRecordTypeEnum.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/Mes_Package_UnLine_Record/Dto/Mes_Package_UnLine_RecordInput.cs 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/Mes_Package_UnLine_Record/Dto/Mes_Package_UnLine_RecordOutput.cs 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/Mes_Package_UnLine_Record/Mes_Package_UnLine_RecordService.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/MesPushPaperCut/Dto/MesPushPaperCutInput.cs 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/MesPushPaperCut/Dto/MesPushPaperCutOutput.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/MesPushPaperCut/MesPushPaperCutService.cs 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Order_Gather/Dto/Mes_Order_GatherInput.cs 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Order_Gather/Dto/Mes_Order_GatherOutput.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Order_Gather/Mes_Order_GatherService.cs 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_Gather/Dto/Mes_Package_GatherInput.cs 293 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_Gather/Dto/Mes_Package_GatherOutput.cs 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_Gather/Mes_Package_GatherService.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_LineQueue/Dto/Mes_Package_LineQueueInput.cs 293 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_LineQueue/Dto/Mes_Package_LineQueueOutput.cs 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_LineQueue/Mes_Package_LineQueueService.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/KittingListInput.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/ValidateQiTaoOutput.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/WmsDBModel.cs
@@ -17,6 +17,7 @@
        public virtual DbSet<GoViewPro> GoViewPro { get; set; }
        public virtual DbSet<GoViewProData> GoViewProData { get; set; }
        public virtual DbSet<mes_batchOrderUPI_new> mes_batchOrderUPI_new { get; set; }
        public virtual DbSet<mes_order_gather> mes_order_gather { get; set; }
        public virtual DbSet<mes_package_gather> mes_package_gather { get; set; }
        public virtual DbSet<mes_package_linequeue> mes_package_linequeue { get; set; }
        public virtual DbSet<mes_package_unline_record> mes_package_unline_record { get; set; }
CC/iWareSql/WmsDBModel/mes_order_gather.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
namespace iWareSql.WmsDBModel
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity.Spatial;
    public partial class mes_order_gather
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public long Id { get; set; }
        [StringLength(60)]
        public string Info5 { get; set; }
        [Required]
        [StringLength(50)]
        public string PlanNo { get; set; }
        [Required]
        [StringLength(50)]
        public string OrderId { get; set; }
        public bool? IsKitting { get; set; }
        public int PackageNum { get; set; }
        public DateTime? CreateTime { get; set; }
        public DateTime? UpdateTime { get; set; }
        public long? CreateUserId { get; set; }
        [StringLength(64)]
        public string CreateUserName { get; set; }
        public long? UpdateUserId { get; set; }
        [StringLength(64)]
        public string UpdateUserName { get; set; }
        public bool IsDelete { get; set; }
    }
}
CC/iWareSql/WmsDBModel/mes_package_gather.cs
@@ -13,22 +13,24 @@
        [Required]
        [StringLength(50)]
        public string PackageCode { get; set; }
        [StringLength(60)]
        public string Info5 { get; set; }
        [Required]
        [StringLength(50)]
        public string PlanNo { get; set; }
        [Required]
        [StringLength(50)]
        public string OrderId { get; set; }
        [StringLength(60)]
        public string Info5 { get; set; }
        public int? AreaCode { get; set; }
        public int UpiStatus { get; set; }
        [Required]
        [StringLength(50)]
        public string PackageCode { get; set; }
        public bool? IsQiBao { get; set; }
        public double? Info1 { get; set; }
@@ -50,9 +52,6 @@
        [StringLength(60)]
        public string Info10 { get; set; }
        [StringLength(60)]
        public string Info9 { get; set; }
        [StringLength(60)]
        public string Info11 { get; set; }
CC/iWareSql/WmsDBModel/mes_package_linequeue.cs
@@ -13,22 +13,22 @@
        [Required]
        [StringLength(50)]
        public string PackageCode { get; set; }
        [StringLength(60)]
        public string Info5 { get; set; }
        [Required]
        [StringLength(50)]
        public string PlanNo { get; set; }
        [Required]
        [StringLength(50)]
        public string OrderId { get; set; }
        [StringLength(60)]
        public string Info5 { get; set; }
        public int? AreaCode { get; set; }
        public int UpiStatus { get; set; }
        [Required]
        [StringLength(50)]
        public string PackageCode { get; set; }
        public double? Info1 { get; set; }
@@ -50,9 +50,6 @@
        [StringLength(60)]
        public string Info10 { get; set; }
        [StringLength(60)]
        public string Info9 { get; set; }
        [StringLength(60)]
        public string Info11 { get; set; }
@@ -78,5 +75,8 @@
        public string UpdateUserName { get; set; }
        public bool IsDelete { get; set; }
        [StringLength(60)]
        public string Info9 { get; set; }
    }
}
CC/iWareSql/WmsDBModel/mes_package_unline_record.cs
@@ -13,18 +13,18 @@
        [Required]
        [StringLength(50)]
        public string PlanNo { get; set; }
        [Required]
        [StringLength(50)]
        public string OrderId { get; set; }
        public string PackageCode { get; set; }
        [StringLength(60)]
        public string Info5 { get; set; }
        [Required]
        [StringLength(50)]
        public string PackageCode { get; set; }
        public string PlanNo { get; set; }
        [Required]
        [StringLength(50)]
        public string OrderId { get; set; }
        public double? Info1 { get; set; }
@@ -46,9 +46,6 @@
        [StringLength(60)]
        public string Info10 { get; set; }
        [StringLength(60)]
        public string Info9 { get; set; }
        [StringLength(60)]
        public string Info11 { get; set; }
@@ -77,5 +74,8 @@
        public string UpdateUserName { get; set; }
        public bool IsDelete { get; set; }
        [StringLength(60)]
        public string Info9 { get; set; }
    }
}
CC/iWareSql/WmsDBModel/mes_push_papercut.cs
@@ -15,12 +15,6 @@
        [StringLength(50)]
        public string PackageCode { get; set; }
        public double? Info1 { get; set; }
        public double? Info2 { get; set; }
        public double? Info3 { get; set; }
        public int PushStatus { get; set; }
        public DateTime? PushTime { get; set; }
@@ -30,12 +24,6 @@
        [Required]
        [StringLength(50)]
        public string ApiMessage { get; set; }
        public long? CreateOrgId { get; set; }
        [Required]
        [StringLength(64)]
        public string CreateOrgName { get; set; }
        public DateTime? CreateTime { get; set; }
@@ -52,5 +40,11 @@
        public string UpdateUserName { get; set; }
        public bool IsDelete { get; set; }
        public double? Info1 { get; set; }
        public double? Info2 { get; set; }
        public double? Info3 { get; set; }
    }
}
LA24030_LuLiPackageLine_Print/LA24030_LuLiPackageLine_PrintService/WindowsFormsApplication1/Form1.cs
@@ -329,9 +329,15 @@
                        double leijisaomiaomj = 0;
                        foreach (var aa in finsiList)
                        {
                            leijisaomiaomj += Convert.ToDouble(aa.Info13);
                            if (!string.IsNullOrEmpty(aa.Info13))
                            {
                                leijisaomiaomj += Convert.ToDouble(aa.Info13);
                            }
                        }
                        leijisaomiaomj += Convert.ToDouble(item.Info13);
                        if (!string.IsNullOrEmpty(item.Info13))
                        {
                            leijisaomiaomj += Convert.ToDouble(item.Info13);
                        }
                        data.Add("leijisaomiaomj", leijisaomiaomj);//累计扫描面积
                        //查询下 åŒ…数据
LA24030_LuLiPackageLine_Print/printer»ù´¡·þÎñ/Express_printer.exe.config
@@ -17,7 +17,8 @@
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <!-- å¯ç”¨å¼‚常详细信息的特性 -->
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
LA24030_LuLiPackageLine_Print/´òÓ¡Ä£°åÎļþ/°ü×°ÌõÂëÄ£°å_¶þάÂë.btw
Binary files differ
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/mes_Package_UnLine_Record.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/add',
  DeleteMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/delete',
  UpdateMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/update',
  PageMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/page',
  ListMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/list',
  DetailMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/detail',
  ImportExcelMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/importExcel',
  DownloadExcelTemplateMes_Package_UnLine_Record = '/api/mes_Package_UnLine_Record/downloadExcelTemplate',
}
// å¢žåŠ åŒ…ä¸‹çº¿è®°å½•
export const addMes_Package_UnLine_Record = (params?: any) =>
    request({
        url: Api.AddMes_Package_UnLine_Record,
        method: 'post',
        data: params
    });
// åˆ é™¤åŒ…下线记录
export const deleteMes_Package_UnLine_Record = (params?: any) =>
    request({
            url: Api.DeleteMes_Package_UnLine_Record,
            method: 'post',
            data: params
        });
// ç¼–辑包下线记录
export const updateMes_Package_UnLine_Record = (params?: any) =>
    request({
            url: Api.UpdateMes_Package_UnLine_Record,
            method: 'post',
            data: params
        });
// å¯¼å…¥åŒ…下线记录
export const importExcelMes_Package_UnLine_Record = (params?: any) =>
    request({
        url: Api.ImportExcelMes_Package_UnLine_Record,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥åŒ…下线记录模板
export const downloadExcelTemplateMes_Package_UnLine_Record = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateMes_Package_UnLine_Record,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢åŒ…下线记录
export const pageMes_Package_UnLine_Record = (params?: any) =>
    request({
            url: Api.PageMes_Package_UnLine_Record,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…下线记录
export const listMes_Package_UnLine_Record = (params?: any) =>
    request({
            url: Api.ListMes_Package_UnLine_Record,
            method: 'get',
            data: params
        });
// è¯¦æƒ…包下线记录
export const detailMes_Package_UnLine_Record = (id: any) =>
    request({
            url: Api.DetailMes_Package_UnLine_Record,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
@@ -17,6 +17,12 @@
  //PageStockQuanForXjd= '/api/WmsOrderMovement/GetKcMaterialGroup',
  PageStockQuanForXjd= '/api/v_wms_stock_quan_group/Page',
  PageWmsLocationViewDetail = '/api/WmsPlaceContainerInfo/Detail',
  ValdateQiTao = '/api/WmsOperationTask/ValdateQiTao',
  ValdateLabel = '/api/WmsOperationTask/ValdateLabel',
}
// å¢žåŠ å®žæ—¶åº“å­˜
@@ -151,3 +157,24 @@
        method: 'get',
        data: params
    });
    ///判断齐套
export const ValdateQiTao = (params?: any) =>
    request({
            url: Api.ValdateQiTao,
            method: 'post',
            data: params
        });
export const ValdateLabel = (params?: any) =>
    request({
            url: Api.ValdateLabel,
            method: 'post',
            data: params
        });
LA24030_LuLiPackageLine_Web/src/api/main/ThirdInterFace/mesPushPaperCut.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddMesPushPaperCut = '/api/mesPushPaperCut/add',
  DeleteMesPushPaperCut = '/api/mesPushPaperCut/delete',
  UpdateMesPushPaperCut = '/api/mesPushPaperCut/update',
  PageMesPushPaperCut = '/api/mesPushPaperCut/page',
  ListMesPushPaperCut = '/api/mesPushPaperCut/list',
  DetailMesPushPaperCut = '/api/mesPushPaperCut/detail',
  ImportExcelMesPushPaperCut = '/api/mesPushPaperCut/importExcel',
  DownloadExcelTemplateMesPushPaperCut = '/api/mesPushPaperCut/downloadExcelTemplate',
}
// å¢žåŠ çº¸ç®±æœºå¯¹æŽ¥
export const addMesPushPaperCut = (params?: any) =>
    request({
        url: Api.AddMesPushPaperCut,
        method: 'post',
        data: params
    });
// åˆ é™¤çº¸ç®±æœºå¯¹æŽ¥
export const deleteMesPushPaperCut = (params?: any) =>
    request({
            url: Api.DeleteMesPushPaperCut,
            method: 'post',
            data: params
        });
// ç¼–辑纸箱机对接
export const updateMesPushPaperCut = (params?: any) =>
    request({
            url: Api.UpdateMesPushPaperCut,
            method: 'post',
            data: params
        });
// å¯¼å…¥çº¸ç®±æœºå¯¹æŽ¥
export const importExcelMesPushPaperCut = (params?: any) =>
    request({
        url: Api.ImportExcelMesPushPaperCut,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥çº¸ç®±æœºå¯¹æŽ¥æ¨¡æ¿
export const downloadExcelTemplateMesPushPaperCut = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateMesPushPaperCut,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢çº¸ç®±æœºå¯¹æŽ¥
export const pageMesPushPaperCut = (params?: any) =>
    request({
            url: Api.PageMesPushPaperCut,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢çº¸ç®±æœºå¯¹æŽ¥
export const listMesPushPaperCut = (params?: any) =>
    request({
            url: Api.ListMesPushPaperCut,
            method: 'get',
            data: params
        });
// è¯¦æƒ…纸箱机对接
export const detailMesPushPaperCut = (id: any) =>
    request({
            url: Api.DetailMesPushPaperCut,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Order_Gather.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddMes_Order_Gather = '/api/mes_Order_Gather/add',
  DeleteMes_Order_Gather = '/api/mes_Order_Gather/delete',
  UpdateMes_Order_Gather = '/api/mes_Order_Gather/update',
  PageMes_Order_Gather = '/api/mes_Order_Gather/page',
  ListMes_Order_Gather = '/api/mes_Order_Gather/list',
  DetailMes_Order_Gather = '/api/mes_Order_Gather/detail',
  ImportExcelMes_Order_Gather = '/api/mes_Order_Gather/importExcel',
  DownloadExcelTemplateMes_Order_Gather = '/api/mes_Order_Gather/downloadExcelTemplate',
}
// å¢žåŠ è®¢å•æ•°æ®
export const addMes_Order_Gather = (params?: any) =>
    request({
        url: Api.AddMes_Order_Gather,
        method: 'post',
        data: params
    });
// åˆ é™¤è®¢å•数据
export const deleteMes_Order_Gather = (params?: any) =>
    request({
            url: Api.DeleteMes_Order_Gather,
            method: 'post',
            data: params
        });
// ç¼–辑订单数据
export const updateMes_Order_Gather = (params?: any) =>
    request({
            url: Api.UpdateMes_Order_Gather,
            method: 'post',
            data: params
        });
// å¯¼å…¥è®¢å•数据
export const importExcelMes_Order_Gather = (params?: any) =>
    request({
        url: Api.ImportExcelMes_Order_Gather,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥è®¢å•数据模板
export const downloadExcelTemplateMes_Order_Gather = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateMes_Order_Gather,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢è®¢å•数据
export const pageMes_Order_Gather = (params?: any) =>
    request({
            url: Api.PageMes_Order_Gather,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢è®¢å•数据
export const listMes_Order_Gather = (params?: any) =>
    request({
            url: Api.ListMes_Order_Gather,
            method: 'get',
            data: params
        });
// è¯¦æƒ…订单数据
export const detailMes_Order_Gather = (id: any) =>
    request({
            url: Api.DetailMes_Order_Gather,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Package_Gather.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddMes_Package_Gather = '/api/mes_Package_Gather/add',
  DeleteMes_Package_Gather = '/api/mes_Package_Gather/delete',
  UpdateMes_Package_Gather = '/api/mes_Package_Gather/update',
  PageMes_Package_Gather = '/api/mes_Package_Gather/page',
  ListMes_Package_Gather = '/api/mes_Package_Gather/list',
  DetailMes_Package_Gather = '/api/mes_Package_Gather/detail',
  ImportExcelMes_Package_Gather = '/api/mes_Package_Gather/importExcel',
  DownloadExcelTemplateMes_Package_Gather = '/api/mes_Package_Gather/downloadExcelTemplate',
}
// å¢žåŠ åŒ…æ•°æ®
export const addMes_Package_Gather = (params?: any) =>
    request({
        url: Api.AddMes_Package_Gather,
        method: 'post',
        data: params
    });
// åˆ é™¤åŒ…数据
export const deleteMes_Package_Gather = (params?: any) =>
    request({
            url: Api.DeleteMes_Package_Gather,
            method: 'post',
            data: params
        });
// ç¼–辑包数据
export const updateMes_Package_Gather = (params?: any) =>
    request({
            url: Api.UpdateMes_Package_Gather,
            method: 'post',
            data: params
        });
// å¯¼å…¥åŒ…数据
export const importExcelMes_Package_Gather = (params?: any) =>
    request({
        url: Api.ImportExcelMes_Package_Gather,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥åŒ…数据模板
export const downloadExcelTemplateMes_Package_Gather = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateMes_Package_Gather,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢åŒ…数据
export const pageMes_Package_Gather = (params?: any) =>
    request({
            url: Api.PageMes_Package_Gather,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…数据
export const listMes_Package_Gather = (params?: any) =>
    request({
            url: Api.ListMes_Package_Gather,
            method: 'get',
            data: params
        });
// è¯¦æƒ…包数据
export const detailMes_Package_Gather = (id: any) =>
    request({
            url: Api.DetailMes_Package_Gather,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Package_LineQueue.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddMes_Package_LineQueue = '/api/mes_Package_LineQueue/add',
  DeleteMes_Package_LineQueue = '/api/mes_Package_LineQueue/delete',
  UpdateMes_Package_LineQueue = '/api/mes_Package_LineQueue/update',
  PageMes_Package_LineQueue = '/api/mes_Package_LineQueue/page',
  ListMes_Package_LineQueue = '/api/mes_Package_LineQueue/list',
  DetailMes_Package_LineQueue = '/api/mes_Package_LineQueue/detail',
  ImportExcelMes_Package_LineQueue = '/api/mes_Package_LineQueue/importExcel',
  DownloadExcelTemplateMes_Package_LineQueue = '/api/mes_Package_LineQueue/downloadExcelTemplate',
}
// å¢žåŠ åŒ…é˜Ÿåˆ—æ•°æ®
export const addMes_Package_LineQueue = (params?: any) =>
    request({
        url: Api.AddMes_Package_LineQueue,
        method: 'post',
        data: params
    });
// åˆ é™¤åŒ…队列数据
export const deleteMes_Package_LineQueue = (params?: any) =>
    request({
            url: Api.DeleteMes_Package_LineQueue,
            method: 'post',
            data: params
        });
// ç¼–辑包队列数据
export const updateMes_Package_LineQueue = (params?: any) =>
    request({
            url: Api.UpdateMes_Package_LineQueue,
            method: 'post',
            data: params
        });
// å¯¼å…¥åŒ…队列数据
export const importExcelMes_Package_LineQueue = (params?: any) =>
    request({
        url: Api.ImportExcelMes_Package_LineQueue,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥åŒ…队列数据模板
export const downloadExcelTemplateMes_Package_LineQueue = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateMes_Package_LineQueue,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢åŒ…队列数据
export const pageMes_Package_LineQueue = (params?: any) =>
    request({
            url: Api.PageMes_Package_LineQueue,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…队列数据
export const listMes_Package_LineQueue = (params?: any) =>
    request({
            url: Api.ListMes_Package_LineQueue,
            method: 'get',
            data: params
        });
// è¯¦æƒ…包队列数据
export const detailMes_Package_LineQueue = (id: any) =>
    request({
            url: Api.DetailMes_Package_LineQueue,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/validateQiTaoOutput.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddValidateQiTaoOutput = '/api/validateQiTaoOutput/add',
  DeleteValidateQiTaoOutput = '/api/validateQiTaoOutput/delete',
  UpdateValidateQiTaoOutput = '/api/validateQiTaoOutput/update',
  PageValidateQiTaoOutput = '/api/validateQiTaoOutput/page',
  ListValidateQiTaoOutput = '/api/validateQiTaoOutput/list',
  DetailValidateQiTaoOutput = '/api/validateQiTaoOutput/detail',
  ImportExcelValidateQiTaoOutput = '/api/validateQiTaoOutput/importExcel',
  DownloadExcelTemplateValidateQiTaoOutput = '/api/validateQiTaoOutput/downloadExcelTemplate',
}
// å¢žåŠ åŒ…æ•°æ®
export const addValidateQiTaoOutput = (params?: any) =>
    request({
        url: Api.AddValidateQiTaoOutput,
        method: 'post',
        data: params
    });
// åˆ é™¤åŒ…数据
export const deleteValidateQiTaoOutput = (params?: any) =>
    request({
            url: Api.DeleteValidateQiTaoOutput,
            method: 'post',
            data: params
        });
// ç¼–辑包数据
export const updateValidateQiTaoOutput = (params?: any) =>
    request({
            url: Api.UpdateValidateQiTaoOutput,
            method: 'post',
            data: params
        });
// å¯¼å…¥åŒ…数据
export const importExcelValidateQiTaoOutput = (params?: any) =>
    request({
        url: Api.ImportExcelValidateQiTaoOutput,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥åŒ…数据模板
export const downloadExcelTemplateValidateQiTaoOutput = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateValidateQiTaoOutput,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢åŒ…数据
export const pageValidateQiTaoOutput = (params?: any) =>
    request({
            url: Api.PageValidateQiTaoOutput,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…数据
export const listValidateQiTaoOutput = (params?: any) =>
    request({
            url: Api.ListValidateQiTaoOutput,
            method: 'get',
            data: params
        });
// è¯¦æƒ…包数据
export const detailValidateQiTaoOutput = (id: any) =>
    request({
            url: Api.DetailValidateQiTaoOutput,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/wmsOrderPurchase.ts
@@ -1,6 +1,9 @@
import request from '/@/utils/request';
enum Api {
  AddWmsOrderPurchase = '/api/wmsOrderPurchase/add',
  ForceOutbound = '/api/WmsOperationTask/ForceOutbound',
  DeleteWmsOrderPurchase = '/api/wmsOrderPurchase/delete',
  UpdateWmsOrderPurchase = '/api/wmsOrderPurchase/update',
  KittingList = '/api/WmsStockQuan/KittingList', ///api/wmsOrderPurchase/page
@@ -106,4 +109,14 @@
        method: 'get',
        data: params,
        responseType: 'blob'
    });
    });
    export const ForceOutbound = (params?: any) =>
        request({
            url: Api.ForceOutbound,
            method: 'post',
            data: params,
        });
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/mes_Package_UnLine_Record/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,248 @@
<template>
    <div class="mes_Package_UnLine_Record-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装号" prop="packageCode">
                            <el-input v-model="ruleForm.packageCode" placeholder="请输入包装号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="生产单号" prop="info5">
                            <el-input v-model="ruleForm.info5" placeholder="请输入生产单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="批次号" prop="planNo">
                            <el-input v-model="ruleForm.planNo" placeholder="请输入批次号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="订单号" prop="orderId">
                            <el-input v-model="ruleForm.orderId" placeholder="请输入订单号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱长" prop="info1">
                            <el-input v-model="ruleForm.info1" placeholder="请输入纸箱长" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱宽" prop="info2">
                            <el-input v-model="ruleForm.info2" placeholder="请输入纸箱宽" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱高" prop="info3">
                            <el-input v-model="ruleForm.info3" placeholder="请输入纸箱高" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="销售合同单号" prop="info4">
                            <el-input v-model="ruleForm.info4" placeholder="请输入销售合同单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="第几包" prop="info6">
                            <el-input v-model="ruleForm.info6" placeholder="请输入第几包" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="经销店名称" prop="info7">
                            <el-input v-model="ruleForm.info7" placeholder="请输入经销店名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="产品名称" prop="info8">
                            <el-input v-model="ruleForm.info8" placeholder="请输入产品名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="客户名称" prop="info10">
                            <el-input v-model="ruleForm.info10" placeholder="请输入客户名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="自提or发货" prop="info11">
                            <el-input v-model="ruleForm.info11" placeholder="请输入自提or发货" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装部件总数量" prop="info12">
                            <el-input v-model="ruleForm.info12" placeholder="请输入包装部件总数量" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装面积" prop="info13">
                            <el-input v-model="ruleForm.info13" placeholder="请输入包装面积" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="备注" prop="opRemark">
                            <el-input v-model="ruleForm.opRemark" placeholder="请输入备注" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit" :disabled="disabled_btn">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addMes_Package_UnLine_Record, updateMes_Package_UnLine_Record, detailMes_Package_UnLine_Record } from "/@/api/main/ReportCenter/mes_Package_UnLine_Record";
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const loading = ref(false);
    const disabled_btn = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        isDelete: [{required: true, message: '请选择软删除!', trigger: 'change',},],
    });
    /*
     * æ‰“开弹窗
     * @param flag æ ‡è®°ï¼ˆ1新增 2编辑 3查看)
     * @param row  è¡Œæ•°æ®
     */
    const openDialog = async (flag: number,row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailMes_Package_UnLine_Record(rowData.id)).data.result;
        else {
            ruleForm.value = rowData;
        }
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        disabled_btn.value = true;
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                loading.value = true;
                let values = ruleForm.value;
                let ret={};
                let title='新增';
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    ret = await addMes_Package_UnLine_Record(values);
                } else {
                    title='编辑';
                    ret = await updateMes_Package_UnLine_Record(values);
                }
                loading.value = false;
                disabled_btn.value = false;
                if(ret.data.type=="success"){
                    ElMessage.success(title+'成功');
                    closeDialog();
                }
            } else {
                disabled_btn.value = false;
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/mes_Package_UnLine_Record/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,335 @@
<template>
  <div class="mes_Package_UnLine_Record-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsMes_Package_UnLine_Record" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.searchKey" clearable="" placeholder="包装号,生产单号,批次号,订单号,销售合同单号,第几包,经销店名称,产品名称,客户名称,自提or发货,包装部件总数量,包装面积,备注,创建人,修改人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="纸箱长">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info1" clearable="" placeholder="请输入纸箱长"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="纸箱宽">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info2" clearable="" placeholder="请输入纸箱宽"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="纸箱高">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info3" clearable="" placeholder="请输入纸箱高"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="销售合同单号">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info4" clearable="" placeholder="请输入销售合同单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="第几包">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info6" clearable="" placeholder="请输入第几包"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="经销店名称">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info7" clearable="" placeholder="请输入经销店名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="产品名称">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info8" clearable="" placeholder="请输入产品名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="客户名称">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info10" clearable="" placeholder="请输入客户名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="自提or发货">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info11" clearable="" placeholder="请输入自提or发货"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="包装部件总数量">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info12" clearable="" placeholder="请输入包装部件总数量"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="包装面积">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.info13" clearable="" placeholder="请输入包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_UnLine_Record">
            <el-form-item label="备注">
              <el-input v-model="queryParamsMes_Package_UnLine_Record.opRemark" clearable="" placeholder="请输入备注"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
            <el-form-item>
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQueryMes_Package_UnLine_Record" v-auth="'mes_Package_UnLine_Record:page'" :disabled="disabled_btnMes_Package_UnLine_Record"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetMes_Package_UnLine_Record"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMes_Package_UnLine_Record" v-if="!showAdvanceQueryUIMes_Package_UnLine_Record" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMes_Package_UnLine_Record" v-if="showAdvanceQueryUIMes_Package_UnLine_Record" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMes_Package_UnLine_Record" v-auth="'mes_Package_UnLine_Record:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMes_Package_UnLine_Record"  v-auth="'mes_Package_UnLine_Record:exportExcel'" > å¯¼å‡º </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table
                ref="tableRefMes_Package_UnLine_Record"
                :data="tableDataMes_Package_UnLine_Record"
                style="width: 100%"
                v-loading="loadingMes_Package_UnLine_Record"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeMes_Package_UnLine_Record"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="packageCode" label="包装号"  show-overflow-tooltip="" />
        <el-table-column prop="info5" label="生产单号"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  show-overflow-tooltip="" />
        <el-table-column prop="info1" label="纸箱长"  show-overflow-tooltip="" />
        <el-table-column prop="info2" label="纸箱宽"  show-overflow-tooltip="" />
        <el-table-column prop="info3" label="纸箱高"  show-overflow-tooltip="" />
        <el-table-column prop="info4" label="销售合同单号"  show-overflow-tooltip="" />
        <el-table-column prop="info6" label="第几包"  show-overflow-tooltip="" />
        <el-table-column prop="info7" label="经销店名称"  show-overflow-tooltip="" />
        <el-table-column prop="info8" label="产品名称"  show-overflow-tooltip="" />
        <el-table-column prop="info10" label="客户名称"  show-overflow-tooltip="" />
        <el-table-column prop="info11" label="自提or发货"  show-overflow-tooltip="" />
        <el-table-column prop="info12" label="包装部件总数量"  show-overflow-tooltip="" />
        <el-table-column prop="info13" label="包装面积"  show-overflow-tooltip="" />
        <el-table-column prop="opRemark" label="备注"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
         <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column prop="updateUserName" label="修改人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mes_Package_UnLine_Record:update') || auth('mes_Package_UnLine_Record:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMes_Package_UnLine_Record(scope.row)" v-auth="'mes_Package_UnLine_Record:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMes_Package_UnLine_Record(scope.row)" v-auth="'mes_Package_UnLine_Record:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsMes_Package_UnLine_Record.page"
                v-model:page-size="tableParamsMes_Package_UnLine_Record.pageSize"
                :total="tableParamsMes_Package_UnLine_Record.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeMes_Package_UnLine_Record"
                @current-change="handleCurrentChangeMes_Package_UnLine_Record"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogMes_Package_UnLine_Record
        ref="printDialogRefMes_Package_UnLine_Record"
        :title="printMes_Package_UnLine_RecordTitle"
        @reloadTable="handleQueryMes_Package_UnLine_Record" />
      <editDialogMes_Package_UnLine_Record
        ref="editDialogRefMes_Package_UnLine_Record"
        :title="editMes_Package_UnLine_RecordTitle"
        @reloadTable="handleQueryMes_Package_UnLine_Record"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="mes_Package_UnLine_Record">
  import { ref,onMounted } from "vue";
  import { ElMessageBox, ElMessage } from "element-plus";
  import { auth } from '/@/utils/authFunction';
  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
  import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
  import { exportPageExcel } from '/@/utils/exportPageExcel' //引入导出方法
  import printDialogMes_Package_UnLine_Record from '/@/views/system/print/component/hiprint/preview.vue'
  import { pageMes_Package_UnLine_Record, deleteMes_Package_UnLine_Record,importExcelMes_Package_UnLine_Record,downloadExcelTemplateMes_Package_UnLine_Record } from '/@/api/main/ReportCenter/mes_Package_UnLine_Record';
  /***************************************************[包下线记录操作]开始***************************************************/
  const showAdvanceQueryUIMes_Package_UnLine_Record = ref(false);
  const tableRefMes_Package_UnLine_Record = ref(null);
  const printDialogRefMes_Package_UnLine_Record = ref();
  const editDialogRefMes_Package_UnLine_Record = ref();
  const loadingMes_Package_UnLine_Record = ref(false);
  const disabled_btnMes_Package_UnLine_Record = ref(false);
  const tableDataMes_Package_UnLine_Record = ref<any>([]);
  const queryParamsMes_Package_UnLine_Record = ref<any>({});
  const tableParamsMes_Package_UnLine_Record = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printMes_Package_UnLine_RecordTitle = ref("");
  const editMes_Package_UnLine_RecordTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIMes_Package_UnLine_Record = () => {
    showAdvanceQueryUIMes_Package_UnLine_Record.value = !showAdvanceQueryUIMes_Package_UnLine_Record.value;
  }
  // æŸ¥è¯¢åŒ…下线记录
  const handleQueryMes_Package_UnLine_Record = async () => {
    loadingMes_Package_UnLine_Record.value = true;
    disabled_btnMes_Package_UnLine_Record.value = true;
    var res = await pageMes_Package_UnLine_Record(Object.assign(queryParamsMes_Package_UnLine_Record.value, tableParamsMes_Package_UnLine_Record.value));
    if(res.data.type=="success"){
      tableDataMes_Package_UnLine_Record.value = res.data.result?.items ?? [];
      tableParamsMes_Package_UnLine_Record.value.total = res.data.result?.total;
    }
    loadingMes_Package_UnLine_Record.value = false;
    disabled_btnMes_Package_UnLine_Record.value = false;
  };
  // é‡ç½®åŒ…下线记录查询
  const resetMes_Package_UnLine_Record = async () => {
    queryParamsMes_Package_UnLine_Record.value = {}
  };
  // åŒ…下线记录列排序
  const sortChangeMes_Package_UnLine_Record = async (column: any) => {
    queryParamsMes_Package_UnLine_Record.value.field = column.prop;
    queryParamsMes_Package_UnLine_Record.value.order = column.order;
    await handleQueryMes_Package_UnLine_Record();
  };
  // æ‰“开新增包下线记录页面
  const openAddMes_Package_UnLine_Record = () => {
    editMes_Package_UnLine_RecordTitle.value = '添加包下线记录';
    editDialogRefMes_Package_UnLine_Record.value.openDialog(1,{});
  };
  // æ‰“开打印包下线记录页面
  const openPrintMes_Package_UnLine_Record = async (row: any) => {
    printMes_Package_UnLine_RecordTitle.value = '打印包下线记录';
  }
  // æ‰“开编辑包下线记录页面
  const openEditMes_Package_UnLine_Record = (row: any) => {
    editMes_Package_UnLine_RecordTitle.value = '编辑包下线记录';
    editDialogRefMes_Package_UnLine_Record.value.openDialog(2,row);
  };
  // åˆ é™¤åŒ…下线记录
  const delMes_Package_UnLine_Record = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingMes_Package_UnLine_Record.value = true;
    var ret = await deleteMes_Package_UnLine_Record(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingMes_Package_UnLine_Record.value = false;
    handleQueryMes_Package_UnLine_Record();
  })
  .catch(() => {});
  };
  // æ”¹å˜åŒ…下线记录页面容量
  const handleSizeChangeMes_Package_UnLine_Record = (val: number) => {
    tableParamsMes_Package_UnLine_Record.value.pageSize = val;
    handleQueryMes_Package_UnLine_Record();
  };
  // æ”¹å˜åŒ…下线记录页码序号
  const handleCurrentChangeMes_Package_UnLine_Record = (val: number) => {
    tableParamsMes_Package_UnLine_Record.value.page = val;
    handleQueryMes_Package_UnLine_Record();
  };
/***************************************************[包下线记录操作]结束***************************************************/
/***************************************************[包下线记录导出]开始***************************************************/
//定义当前页面的方法组
const functionMapMes_Package_UnLine_Record = {
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelMes_Package_UnLine_Record = async (formData:Blob) => {
    loadingMes_Package_UnLine_Record.value = true;
    disabled_btnMes_Package_UnLine_Record.value = true;
    var new_tableParamsMes_Package_UnLine_Record=JSON.parse(JSON.stringify(tableParamsMes_Package_UnLine_Record.value));
    new_tableParamsMes_Package_UnLine_Record.page = 1;
    new_tableParamsMes_Package_UnLine_Record.pageSize = 100000;
    var res = await pageMes_Package_UnLine_Record(Object.assign(queryParamsMes_Package_UnLine_Record.value, new_tableParamsMes_Package_UnLine_Record));
    if(res.data.type=="success"){
      exportExcelMes_Package_UnLine_Record(res.data.result?.items ?? []);
    }
    loadingMes_Package_UnLine_Record.value = false;
    disabled_btnMes_Package_UnLine_Record.value = false;
};
//导出
const exportExcelMes_Package_UnLine_Record  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefMes_Package_UnLine_Record,"包下线记录",functionMapMes_Package_UnLine_Record);
};
/***************************************************[包下线记录导出]结束***************************************************/
  // åŒ…下线记录页面加载时
  onMounted(async () => {
  });
  handleQueryMes_Package_UnLine_Record();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/ThirdInterFace/mesPushPaperCut/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,179 @@
<template>
    <div class="mesPushPaperCut-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装号" prop="packageCode">
                            <el-input v-model="ruleForm.packageCode" placeholder="请输入包装号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="推送状态" prop="pushStatus">
                            <el-select clearable v-model="ruleForm.pushStatus" placeholder="请选择推送状态">
                                <el-option v-for="(item,index) in  getEnumPushStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="推送时间" prop="pushTime">
                            <el-date-picker v-model="ruleForm.pushTime" type="date" placeholder="推送时间" />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="推送次数" prop="pushNum">
                            <el-input-number v-model="ruleForm.pushNum" placeholder="请输入推送次数" clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="接口返回参数" prop="apiMessage">
                            <el-input v-model="ruleForm.apiMessage" placeholder="请输入接口返回参数" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit" :disabled="disabled_btn">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addMesPushPaperCut, updateMesPushPaperCut, detailMesPushPaperCut } from "/@/api/main/ThirdInterFace/mesPushPaperCut";
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
    const getEnumPushStatusData = ref<any>([]);
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const loading = ref(false);
    const disabled_btn = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        pushStatus: [{required: true, message: '请选择推送状态!', trigger: 'change',},],
        pushNum: [{required: true, message: '请输入推送次数!', trigger: 'blur',},],
        apiMessage: [{required: true, message: '请输入接口返回参数!', trigger: 'blur',},],
        isDelete: [{required: true, message: '请选择软删除!', trigger: 'change',},],
    });
    /*
     * æ‰“开弹窗
     * @param flag æ ‡è®°ï¼ˆ1新增 2编辑 3查看)
     * @param row  è¡Œæ•°æ®
     */
    const openDialog = async (flag: number,row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailMesPushPaperCut(rowData.id)).data.result;
        else {
            ruleForm.value = rowData;
        }
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        disabled_btn.value = true;
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                loading.value = true;
                let values = ruleForm.value;
                let ret={};
                let title='新增';
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    ret = await addMesPushPaperCut(values);
                } else {
                    title='编辑';
                    ret = await updateMesPushPaperCut(values);
                }
                loading.value = false;
                disabled_btn.value = false;
                if(ret.data.type=="success"){
                    ElMessage.success(title+'成功');
                    closeDialog();
                }
            } else {
                disabled_btn.value = false;
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
            getEnumPushStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('PushStatusEnum')).data.result ?? [];
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/ThirdInterFace/mesPushPaperCut/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,272 @@
<template>
  <div class="mesPushPaperCut-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsMesPushPaperCut" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="queryParamsMesPushPaperCut.searchKey" clearable="" placeholder="包装号,接口返回参数,创建人,修改人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPaperCut">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsMesPushPaperCut.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPaperCut">
            <el-form-item label="推送状态">
              <el-select clearable="" v-model="queryParamsMesPushPaperCut.pushStatus" placeholder="请选择推送状态">
                <el-option v-for="(item,index) in getEnumPushStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPaperCut">
            <el-form-item label="推送时间">
              <el-date-picker placeholder="请选择推送时间" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsMesPushPaperCut.pushTimeRange" />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPaperCut">
            <el-form-item label="推送次数">
              <el-input-number v-model="queryParamsMesPushPaperCut.pushNum"  clearable="" placeholder="请输入推送次数"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMesPushPaperCut">
            <el-form-item label="接口返回参数">
              <el-input v-model="queryParamsMesPushPaperCut.apiMessage" clearable="" placeholder="请输入接口返回参数"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
            <el-form-item>
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQueryMesPushPaperCut" v-auth="'mesPushPaperCut:page'" :disabled="disabled_btnMesPushPaperCut"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetMesPushPaperCut"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMesPushPaperCut" v-if="!showAdvanceQueryUIMesPushPaperCut" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMesPushPaperCut" v-if="showAdvanceQueryUIMesPushPaperCut" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMesPushPaperCut" v-auth="'mesPushPaperCut:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMesPushPaperCut"  v-auth="'mesPushPaperCut:exportExcel'" > å¯¼å‡º </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table
                ref="tableRefMesPushPaperCut"
                :data="tableDataMesPushPaperCut"
                style="width: 100%"
                v-loading="loadingMesPushPaperCut"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeMesPushPaperCut"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="packageCode" label="包装号"  show-overflow-tooltip="" />
          <el-table-column prop="pushStatus" label="推送状态"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.pushStatus, getEnumPushStatusData_Index)}}</el-tag>
            </template>
          </el-table-column>
         <el-table-column prop="pushTime" label="推送时间" width="80" :formatter="formatDate_T_Date"  show-overflow-tooltip="" />
        <el-table-column prop="pushNum" label="推送次数"  show-overflow-tooltip="" />
        <el-table-column prop="apiMessage" label="接口返回参数"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
         <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column prop="updateUserName" label="修改人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mesPushPaperCut:update') || auth('mesPushPaperCut:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMesPushPaperCut(scope.row)" v-auth="'mesPushPaperCut:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMesPushPaperCut(scope.row)" v-auth="'mesPushPaperCut:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsMesPushPaperCut.page"
                v-model:page-size="tableParamsMesPushPaperCut.pageSize"
                :total="tableParamsMesPushPaperCut.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeMesPushPaperCut"
                @current-change="handleCurrentChangeMesPushPaperCut"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogMesPushPaperCut
        ref="printDialogRefMesPushPaperCut"
        :title="printMesPushPaperCutTitle"
        @reloadTable="handleQueryMesPushPaperCut" />
      <editDialogMesPushPaperCut
        ref="editDialogRefMesPushPaperCut"
        :title="editMesPushPaperCutTitle"
        @reloadTable="handleQueryMesPushPaperCut"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="mesPushPaperCut">
  import { ref,onMounted } from "vue";
  import { ElMessageBox, ElMessage } from "element-plus";
  import { auth } from '/@/utils/authFunction';
  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
  import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
  import { exportPageExcel } from '/@/utils/exportPageExcel' //引入导出方法
  import printDialogMesPushPaperCut from '/@/views/system/print/component/hiprint/preview.vue'
  import { pageMesPushPaperCut, deleteMesPushPaperCut,importExcelMesPushPaperCut,downloadExcelTemplateMesPushPaperCut } from '/@/api/main/ThirdInterFace/mesPushPaperCut';
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
  import commonFunction from '/@/utils/commonFunction';
  const getEnumPushStatusData_Index = ref<any>([]);
    const { getEnumDesc } = commonFunction();
  /***************************************************[纸箱机对接操作]开始***************************************************/
  const showAdvanceQueryUIMesPushPaperCut = ref(false);
  const tableRefMesPushPaperCut = ref(null);
  const printDialogRefMesPushPaperCut = ref();
  const editDialogRefMesPushPaperCut = ref();
  const loadingMesPushPaperCut = ref(false);
  const disabled_btnMesPushPaperCut = ref(false);
  const tableDataMesPushPaperCut = ref<any>([]);
  const queryParamsMesPushPaperCut = ref<any>({});
  const tableParamsMesPushPaperCut = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printMesPushPaperCutTitle = ref("");
  const editMesPushPaperCutTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIMesPushPaperCut = () => {
    showAdvanceQueryUIMesPushPaperCut.value = !showAdvanceQueryUIMesPushPaperCut.value;
  }
  // æŸ¥è¯¢çº¸ç®±æœºå¯¹æŽ¥
  const handleQueryMesPushPaperCut = async () => {
    loadingMesPushPaperCut.value = true;
    disabled_btnMesPushPaperCut.value = true;
    var res = await pageMesPushPaperCut(Object.assign(queryParamsMesPushPaperCut.value, tableParamsMesPushPaperCut.value));
    if(res.data.type=="success"){
      tableDataMesPushPaperCut.value = res.data.result?.items ?? [];
      tableParamsMesPushPaperCut.value.total = res.data.result?.total;
    }
    loadingMesPushPaperCut.value = false;
    disabled_btnMesPushPaperCut.value = false;
  };
  // é‡ç½®çº¸ç®±æœºå¯¹æŽ¥æŸ¥è¯¢
  const resetMesPushPaperCut = async () => {
    queryParamsMesPushPaperCut.value = {}
  };
  // çº¸ç®±æœºå¯¹æŽ¥åˆ—排序
  const sortChangeMesPushPaperCut = async (column: any) => {
    queryParamsMesPushPaperCut.value.field = column.prop;
    queryParamsMesPushPaperCut.value.order = column.order;
    await handleQueryMesPushPaperCut();
  };
  // æ‰“开新增纸箱机对接页面
  const openAddMesPushPaperCut = () => {
    editMesPushPaperCutTitle.value = '添加纸箱机对接';
    editDialogRefMesPushPaperCut.value.openDialog(1,{});
  };
  // æ‰“开打印纸箱机对接页面
  const openPrintMesPushPaperCut = async (row: any) => {
    printMesPushPaperCutTitle.value = '打印纸箱机对接';
  }
  // æ‰“开编辑纸箱机对接页面
  const openEditMesPushPaperCut = (row: any) => {
    editMesPushPaperCutTitle.value = '编辑纸箱机对接';
    editDialogRefMesPushPaperCut.value.openDialog(2,row);
  };
  // åˆ é™¤çº¸ç®±æœºå¯¹æŽ¥
  const delMesPushPaperCut = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingMesPushPaperCut.value = true;
    var ret = await deleteMesPushPaperCut(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingMesPushPaperCut.value = false;
    handleQueryMesPushPaperCut();
  })
  .catch(() => {});
  };
  // æ”¹å˜çº¸ç®±æœºå¯¹æŽ¥é¡µé¢å®¹é‡
  const handleSizeChangeMesPushPaperCut = (val: number) => {
    tableParamsMesPushPaperCut.value.pageSize = val;
    handleQueryMesPushPaperCut();
  };
  // æ”¹å˜çº¸ç®±æœºå¯¹æŽ¥é¡µç åºå·
  const handleCurrentChangeMesPushPaperCut = (val: number) => {
    tableParamsMesPushPaperCut.value.page = val;
    handleQueryMesPushPaperCut();
  };
/***************************************************[纸箱机对接操作]结束***************************************************/
/***************************************************[纸箱机对接导出]开始***************************************************/
//定义当前页面的方法组
const functionMapMesPushPaperCut = {
      getEnumPushStatusData_Index,
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelMesPushPaperCut = async (formData:Blob) => {
    loadingMesPushPaperCut.value = true;
    disabled_btnMesPushPaperCut.value = true;
    var new_tableParamsMesPushPaperCut=JSON.parse(JSON.stringify(tableParamsMesPushPaperCut.value));
    new_tableParamsMesPushPaperCut.page = 1;
    new_tableParamsMesPushPaperCut.pageSize = 100000;
    var res = await pageMesPushPaperCut(Object.assign(queryParamsMesPushPaperCut.value, new_tableParamsMesPushPaperCut));
    if(res.data.type=="success"){
      exportExcelMesPushPaperCut(res.data.result?.items ?? []);
    }
    loadingMesPushPaperCut.value = false;
    disabled_btnMesPushPaperCut.value = false;
};
//导出
const exportExcelMesPushPaperCut  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefMesPushPaperCut,"纸箱机对接",functionMapMesPushPaperCut);
};
/***************************************************[纸箱机对接导出]结束***************************************************/
  // çº¸ç®±æœºå¯¹æŽ¥é¡µé¢åŠ è½½æ—¶
  onMounted(async () => {
    getEnumPushStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('PushStatusEnum')).data.result ?? [];
  });
  handleQueryMesPushPaperCut();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
@@ -281,9 +281,7 @@
                                <el-form-item label-width="20px">
                                    <el-button type="primary" icon="el-icon-search" @click="getDetail">查询</el-button>
                                    <!-- <el-button type="primary" icon="ele-Printer" @click="getPrint">打印</el-button> -->
                                    <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æ‰“印 </el-button>
                                    <!-- <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æ‰“印 </el-button> -->
                                </el-form-item>
                            </el-col>
                        </el-row>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue
@@ -11,7 +11,6 @@
                                ref="materialCodeInput"
                                clearable=""
                                placeholder="请扫部件条码"
                                @input="handleChange"
                                @keyup.enter.prevent="handleEnter"
                                @confirm.enter.prevent="handleEnter"
                            />
@@ -33,16 +32,30 @@
                </el-row>
            </el-form>
            <br />
            <div class="detailBox">
            <div class="detailBox" style="height: calc(65vh)">
                <div class="titleTip">
                    <div class="" v-show="isSuccess == '成功'">
                        <svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100">
                            <path
                                d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0"
                                fill="#52C41A"
                                p-id="11360"
                            ></path>
                        </svg>
                        <p class="okText">获取部件信息成功!</p>
                    </div>
                    <div class="" v-show="isSuccess && isSuccess != '成功'">
                        <svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100">
                            <path
                                d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z"
                                fill="#E84335"
                                p-id="4304"
                            ></path>
                        </svg>
                        <p class="okText">{{ isSuccess }}</p>
                    </div>
                </div>
                <ul>
                    <!-- <li>
                        <span class="text_left">是否齐包:</span>
                        <span class="text_rt"></span>
                    </li>
                    <li>
                        <span class="text_left">是否齐套:</span>
                        <span class="text_rt"></span>
                    </li> -->
                    <li>
                        <span class="text_left">部件条码:</span>
@@ -62,11 +75,40 @@
                        <span class="text_left">订单号:</span>
                        <span class="text_rt">{{ tableData.orderId }}</span>
                    </li>
                    <br />    <br />    <br />    <br />    <br />    <br />
                        <br />    <br />    <br />    <br />    <br />
                    <br />    <br />    <br />    <br />    <br />    <br />
                    <li>
                        <span class="text_left">长:</span>
                        <span class="text_rt">{{ tableData.length }}</span>
                    </li>
                    <li>
                        <span class="text_left">宽:</span>
                        <span class="text_rt">{{ tableData.width }}</span>
                    </li>
                    <li>
                        <span class="text_left">厚:</span>
                        <span class="text_rt">{{ tableData.thk }}</span>
                    </li>
                    <li>
                        <span class="text_left">销售合同单号:</span>
                        <span class="text_rt">{{ tableData.info4 }}</span>
                    </li>
                    <li>
                        <span class="text_left">客户名称:</span>
                        <span class="text_rt">{{ tableData.info10 }}</span>
                    </li>
                    <li>
                        <span class="text_left">自提或发货:</span>
                        <span class="text_rt">{{ tableData.info11 }}</span>
                    </li>
                    <li>
                        <span class="text_left">包装部件总数量:</span>
                        <span class="text_rt">{{ tableData.info12 }}</span>
                    </li>
                    <li>
                        <span class="text_left">包装面积:</span>
                        <span class="text_rt">{{ tableData.info13 }}</span>
                    </li>
                    <!-- <li>
                        <span class="text_left">客户名称:</span>
                        <span class="text_rt">{{ tableData.Info10 }}</span>
@@ -128,22 +170,16 @@
</template>
<script lang="ts" setup="" name="wmsSubstituteGood">
import { onMounted, ref } from 'vue';
import { onBeforeUnmount, onMounted, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { auth } from '/@/utils/authFunction';
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
import { formatDate } from '/@/utils/formatTime';
import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New';
import printDialog from '/@/views/system/print/component/hiprint/preview.vue';
import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue';
import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood';
import { ShortageList } from '/@/api/main/ReportCenter/wmsStockQuan';
const showAdvanceQueryUI = ref(false);
const printDialogRef = ref();
const editDialogRef = ref();
const loading = ref(false);
const tableData = ref<any>([]);
const tableData = ref<any>({});
const queryParams = ref<any>({
    upi: '',
});
@@ -152,129 +188,68 @@
    pageSize: 10,
    total: 0,
});
const getIsDisabledData = [
    {
        value: true,
        text: '是',
    },
    {
        value: false,
        text: '否',
    },
];
const printWmsSubstituteGoodTitle = ref('');
const editWmsSubstituteGoodTitle = ref('');
// æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
const changeAdvanceQueryUI = () => {
    showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
//=======================鼠标定位 ç”¨äºŽå¼•用输入框=====================
let materialCodeInput = ref(null);
let inactivityTimer = null;
// å¤„理用户活动的函数
const handleUserActivity = () => {
    if (inactivityTimer) {
        clearTimeout(inactivityTimer);
    }
    inactivityTimer = setTimeout(() => {
        // æ¸…空输入框的值
        materialCodeInput.value.$el.querySelector('input').value = '';
        materialCodeInput.value.$el.querySelector('input').focus();
    }, 2000); // è®¾å®š2秒未操作则自动聚焦
};
// ç”¨äºŽå¼•用输入框
const materialCodeInput = ref(null);
onMounted(() => {
    // åœ¨ç»„件挂载后进行聚焦
    materialCodeInput.value.$el.querySelector('input').focus();
    document.addEventListener('mousemove', handleUserActivity);
    document.addEventListener('keydown', handleUserActivity);
});
onBeforeUnmount(() => {
    clearTimeout(inactivityTimer);
    document.removeEventListener('mousemove', handleUserActivity);
    document.removeEventListener('keydown', handleUserActivity);
});
//=======================end鼠标定位 ç”¨äºŽå¼•用输入框=====================
const isSuccess = ref('');
// æŸ¥è¯¢æ“ä½œ 888888888
const handleQuery = async () => {
    console.log('8888888进入方法', queryParams.value);
    if (!queryParams.value.upi) {
        return;
    }
    console.log('查询');
    loading.value = true;
    var res = await ShortageList(Object.assign(queryParams.value, tableParams.value));
    if (res.data.result.length != 1) {
        ElMessage.warning('此条码不存在或不在缺料清单中!');
        tableData.value = [];
    queryParams.value.upi = '';
    handleResponse(res);
};
function handleResponse(res: any) {
    tableData.value = res.data.result ?? {};
    materialCodeInput.value.$el.querySelector('input').value = '';
    materialCodeInput.value.$el.querySelector('input').focus();
    if (res.data.code == 200) {
        isSuccess.value = res.data.result ? '成功' : res.data.message || '未查询到数据';
    } else if (res.data.code == 400) {
        loading.value = false;
        isSuccess.value = res.data.message || '未查询到数据';
        return;
    } else {
        loading.value = false;
        isSuccess.value = '';
        ElMessage.warning('网络异常 è¯·æ±‚失败');
        return;
    }
    tableData.value = res.data.result[0] ?? [];
    loading.value = false;
};
// åˆ—排序
const sortChange = async (column: any) => {
    queryParams.value.field = column.prop;
    queryParams.value.order = column.order;
    await handleQuery();
};
// æ‰“开新增页面
const openAddWmsSubstituteGood = () => {
    editWmsSubstituteGoodTitle.value = '添加替代品管理';
    editDialogRef.value.openDialog({});
};
// æ‰“开打印页面
const openPrintWmsSubstituteGood = async (row: any) => {
    printWmsSubstituteGoodTitle.value = '打印替代品管理';
};
// æ‰“开编辑页面
const openEditWmsSubstituteGood = (row: any) => {
    editWmsSubstituteGoodTitle.value = '编辑替代品管理';
    editDialogRef.value.openDialog(row);
};
// åˆ é™¤
const delWmsSubstituteGood = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
    })
        .then(async () => {
            var ret = await deleteWmsSubstituteGood(row);
            if (ret.data.type == 'success') {
                handleQuery();
                ElMessage.success('删除成功');
            }
        })
        .catch(() => {});
};
// æ”¹å˜é¡µé¢å®¹é‡
const handleSizeChange = (val: number) => {
    tableParams.value.pageSize = val;
    handleQuery();
};
// æ”¹å˜é¡µç åºå·
const handleCurrentChange = (val: number) => {
    tableParams.value.page = val;
    handleQuery();
};
// handleQuery();
const rules = {
    // è¿™é‡Œå®šä¹‰è¡¨å•验证规则
    completeSet: [{ required: true, message: '请选择齐套', trigger: 'change' }],
    packageSetup: [{ required: true, message: '请输入齐包设置', trigger: 'blur' }],
    ngPackage: [{ required: true, message: '请输入ng包', trigger: 'blur' }],
};
const ruleForm = ref({
    id: '',
    completeSet: '',
    packageSetup: '',
    ngPackage: '',
});
const sourceEnum: any = ref([
    {
        value: 'id',
        text: 'ID',
    },
]);
const handleChange = (event: Event) => {
    console.log('77777777777');
    handleQuery();
};
}
const handleEnter = (event: Event) => {
    event.preventDefault(); // é˜»æ­¢é»˜è®¤äº‹ä»¶
@@ -301,7 +276,8 @@
            line-height: 30px;
            text-align: left;
            list-style-type: none;
            width: 25%;
            width: 48%;
            display: inline-block;
            word-wrap: break-word;
        }
    }
@@ -309,4 +285,15 @@
.text_left {
    font-weight: 700;
}
.my-icon {
    font-size: 36px; /* è°ƒæ•´å­—体大小 */
    color: #00ff11; /* è®¾ç½®å›¾æ ‡é¢œè‰² */
}
.titleTip {
    text-align: center;
    font-size: 36px; /* è°ƒæ•´å­—体大小 */
    .okText {
        margin-bottom: 20px;
    }
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue
@@ -4,15 +4,14 @@
            <el-form :model="queryParams" @submit.native.prevent ref="queryForm" labelWidth="100">
                <el-row>
                    <el-col :xs="24" :sm="12" :md="12" :lg="10" :xl="4" class="mb10">
                        <el-form-item label="部件条码" size="large">
                        <el-form-item label="包装号" size="large">
                            <el-input
                                size="large"
                                v-model="queryParams.upi"
                                v-model="queryParams.packageCode"
                                ref="materialCodeInput"
                                clearable=""
                                placeholder="请扫部件条码"
                                @input="handleChange"
                                @keyup.enter.prevent="handleEnter"
                                placeholder="请扫包装号"
                            @keyup.enter.prevent="handleEnter"
                                @confirm.enter.prevent="handleEnter"
                            />
                        </el-form-item>
@@ -33,17 +32,30 @@
                </el-row>
            </el-form>
            <br />
            <div class="detailBox">
            <div class="detailBox" style="height: calc(65vh)">
                <div class="titleTip">
                    <div class="" v-show="isSuccess == '成功'">
                        <svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100">
                            <path
                                d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0"
                                fill="#52C41A"
                                p-id="11360"
                            ></path>
                        </svg>
                        <p class="okText">获取标签信息成功!</p>
                    </div>
                    <div class="" v-show="isSuccess && isSuccess != '成功'">
                        <svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100">
                            <path
                                d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z"
                                fill="#E84335"
                                p-id="4304"
                            ></path>
                        </svg>
                        <p class="okText">{{ isSuccess }}</p>
                    </div>
                </div>
                <ul>
                    <!-- <li>
                        <span class="text_left">是否齐包:</span>
                        <span class="text_rt"></span>
                    </li>
                    <li>
                        <span class="text_left">是否齐套:</span>
                        <span class="text_rt"></span>
                    </li> -->
                    <li>
                        <span class="text_left">部件条码:</span>
                        <span class="text_rt">{{ tableData.upi }}</span>
@@ -62,40 +74,52 @@
                        <span class="text_left">订单号:</span>
                        <span class="text_rt">{{ tableData.orderId }}</span>
                    </li>
                    <br />    <br />    <br />    <br />    <br />    <br />
                        <br />    <br />    <br />    <br />    <br />
                    <br />    <br />    <br />    <br />    <br />    <br />
                    <li>
                        <span class="text_left">纸箱长:</span>
                        <span class="text_rt">{{ tableData.info1 }}</span>
                    </li>
                    <li>
                        <span class="text_left">纸箱宽:</span>
                        <span class="text_rt">{{ tableData.info2 }}</span>
                    </li>
                    <li>
                        <span class="text_left">纸箱高:</span>
                        <span class="text_rt">{{ tableData.info3 }}</span>
                    </li>
                    <!-- <li>
                    <li>
                        <span class="text_left">销售合同单号:</span>
                        <span class="text_rt">{{ tableData.info4 }}</span>
                    </li>
                    <li>
                        <span class="text_left">第几包:</span>
                        <span class="text_rt">{{ tableData.info6 }}</span>
                    </li>
                    <li>
                        <span class="text_left">经销店名称:</span>
                        <span class="text_rt">{{ tableData.info7 }}</span>
                    </li>
                    <li>
                        <span class="text_left">产品名称:</span>
                        <span class="text_rt">{{ tableData.info8 }}</span>
                    </li>
                    <li>
                        <span class="text_left">客户名称:</span>
                        <span class="text_rt">{{ tableData.Info10 }}</span>
                    </li> -->
                    <!-- <li>
                        <span class="text_left">长:</span>
                        <span class="text_rt">{{ tableData.length }}</span>
                        <span class="text_rt">{{ tableData.info10 }}</span>
                    </li>
                    <li>
                        <span class="text_left">宽:</span>
                        <span class="text_rt">{{ tableData.width }}</span>
                        <span class="text_left">自提或发货:</span>
                        <span class="text_rt">{{ tableData.info11 }}</span>
                    </li>
                    <li>
                        <span class="text_left">厚:</span>
                        <span class="text_rt">{{ tableData.thk }}</span>
                        <span class="text_left">包装部件总数量:</span>
                        <span class="text_rt">{{ tableData.info12 }}</span>
                    </li>
                    <li>
                        <span class="text_left">部件纹理:</span>
                        <span class="text_rt">{{ tableData.matgrid }}</span>
                        <span class="text_left">包装面积:</span>
                        <span class="text_rt">{{ tableData.info13 }}</span>
                    </li>
                    <li>
                        <span class="text_left">是否封边:</span>
                        <span class="text_rt">{{ tableData.isEB }}</span>
                    </li>
                    <li>
                        <span class="text_left">打孔设备编号:</span>
                        <span class="text_rt">{{ tableData.dRNum }}</span>
                    </li> -->
                </ul>
            </div>
            <!-- ç”Ÿæˆform é½å¥— é½åŒ… è®¾ç½®ng包 -->
@@ -128,7 +152,7 @@
</template>
<script lang="ts" setup="" name="wmsSubstituteGood">
import { onMounted, ref } from 'vue';
import { onBeforeUnmount, onMounted, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { auth } from '/@/utils/authFunction';
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
@@ -137,7 +161,7 @@
import printDialog from '/@/views/system/print/component/hiprint/preview.vue';
import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue';
import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood';
import { ShortageList } from '/@/api/main/ReportCenter/wmsStockQuan';
import { ShortageList, ValdateQiTao } from '/@/api/main/ReportCenter/wmsStockQuan';
const showAdvanceQueryUI = ref(false);
const printDialogRef = ref();
@@ -145,7 +169,7 @@
const loading = ref(false);
const tableData = ref<any>([]);
const queryParams = ref<any>({
    upi: '',
    packageCode: '',
});
const tableParams = ref({
    page: 1,
@@ -169,112 +193,69 @@
const changeAdvanceQueryUI = () => {
    showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
};
// ç”¨äºŽå¼•用输入框
const materialCodeInput = ref(null);
//=======================鼠标定位 ç”¨äºŽå¼•用输入框=====================
let materialCodeInput = ref(null);
let inactivityTimer = null;
// å¤„理用户活动的函数
const handleUserActivity = () => {
    if (inactivityTimer) {
        clearTimeout(inactivityTimer);
    }
    inactivityTimer = setTimeout(() => {
        // æ¸…空输入框的值
        materialCodeInput.value.$el.querySelector('input').value = '';
        materialCodeInput.value.$el.querySelector('input').focus();
    }, 2000); // è®¾å®š2秒未操作则自动聚焦
};
onMounted(() => {
    // åœ¨ç»„件挂载后进行聚焦
    materialCodeInput.value.$el.querySelector('input').focus();
    document.addEventListener('mousemove', handleUserActivity);
    document.addEventListener('keydown', handleUserActivity);
});
onBeforeUnmount(() => {
    clearTimeout(inactivityTimer);
    document.removeEventListener('mousemove', handleUserActivity);
    document.removeEventListener('keydown', handleUserActivity);
});
//=======================end鼠标定位 ç”¨äºŽå¼•用输入框=====================
const isSuccess = ref('');
// æŸ¥è¯¢æ“ä½œ 888888888
const handleQuery = async () => {
    console.log('8888888进入方法', queryParams.value);
    if (!queryParams.value.upi) {
    if (!queryParams.value.packageCode) {
        return;
    }
    console.log('查询');
    loading.value = true;
    var res = await ShortageList(Object.assign(queryParams.value, tableParams.value));
    if (res.data.result.length != 1) {
        ElMessage.warning('此条码不存在或不在缺料清单中!');
        tableData.value = [];
    var res = await ValdateQiTao(Object.assign(queryParams.value, tableParams.value));
    queryParams.value.packageCode = '';
    handleResponse(res);
};
function handleResponse(res: any) {
    tableData.value = res.data.result ?? {};
    materialCodeInput.value.$el.querySelector('input').value = '';
    materialCodeInput.value.$el.querySelector('input').focus();
    if (res.data.code == 200) {
        isSuccess.value = res.data.result ? '成功' : res.data.message || '未查询到数据';
    } else if (res.data.code == 400) {
        loading.value = false;
        isSuccess.value = res.data.message || '未查询到数据';
        return;
    } else {
        loading.value = false;
        isSuccess.value = '';
        ElMessage.warning('网络异常 è¯·æ±‚失败');
        return;
    }
    tableData.value = res.data.result[0] ?? [];
    loading.value = false;
};
}
// åˆ—排序
const sortChange = async (column: any) => {
    queryParams.value.field = column.prop;
    queryParams.value.order = column.order;
    await handleQuery();
};
// æ‰“开新增页面
const openAddWmsSubstituteGood = () => {
    editWmsSubstituteGoodTitle.value = '添加替代品管理';
    editDialogRef.value.openDialog({});
};
// æ‰“开打印页面
const openPrintWmsSubstituteGood = async (row: any) => {
    printWmsSubstituteGoodTitle.value = '打印替代品管理';
};
// æ‰“开编辑页面
const openEditWmsSubstituteGood = (row: any) => {
    editWmsSubstituteGoodTitle.value = '编辑替代品管理';
    editDialogRef.value.openDialog(row);
};
// åˆ é™¤
const delWmsSubstituteGood = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
    })
        .then(async () => {
            var ret = await deleteWmsSubstituteGood(row);
            if (ret.data.type == 'success') {
                handleQuery();
                ElMessage.success('删除成功');
            }
        })
        .catch(() => {});
};
// æ”¹å˜é¡µé¢å®¹é‡
const handleSizeChange = (val: number) => {
    tableParams.value.pageSize = val;
    handleQuery();
};
// æ”¹å˜é¡µç åºå·
const handleCurrentChange = (val: number) => {
    tableParams.value.page = val;
    handleQuery();
};
// handleQuery();
const rules = {
    // è¿™é‡Œå®šä¹‰è¡¨å•验证规则
    completeSet: [{ required: true, message: '请选择齐套', trigger: 'change' }],
    packageSetup: [{ required: true, message: '请输入齐包设置', trigger: 'blur' }],
    ngPackage: [{ required: true, message: '请输入ng包', trigger: 'blur' }],
};
const ruleForm = ref({
    id: '',
    completeSet: '',
    packageSetup: '',
    ngPackage: '',
});
const sourceEnum: any = ref([
    {
        value: 'id',
        text: 'ID',
    },
]);
const handleChange = (event: Event) => {
    console.log('77777777777');
    handleQuery();
};
const handleEnter = (event: Event) => {
    event.preventDefault(); // é˜»æ­¢é»˜è®¤äº‹ä»¶
@@ -301,7 +282,8 @@
            line-height: 30px;
            text-align: left;
            list-style-type: none;
            width: 25%;
            width: 48%;
            display: inline-block;
            word-wrap: break-word;
        }
    }
@@ -309,4 +291,15 @@
.text_left {
    font-weight: 700;
}
.my-icon {
    font-size: 36px; /* è°ƒæ•´å­—体大小 */
    color: #00ff11; /* è®¾ç½®å›¾æ ‡é¢œè‰² */
}
.titleTip {
    text-align: center;
    font-size: 36px; /* è°ƒæ•´å­—体大小 */
    .okText {
        margin-bottom: 20px;
    }
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_BatchOrderUPI_New/index.vue
@@ -241,10 +241,11 @@
                @sort-change="sortChangeMes_BatchOrderUPI_New"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="upi" label="部件条码"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  show-overflow-tooltip="" />
        <el-table-column prop="info5" label="生产单号"  show-overflow-tooltip="" />
        <el-table-column prop="upi" label="部件条码" width="180" show-overflow-tooltip="" />
        <el-table-column prop="info5" label="生产单号"  width="130" show-overflow-tooltip="" />
        <el-table-column prop="packageCode" label="包装编码"  width="180"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  width="130"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  width="130"  show-overflow-tooltip="" />
          <el-table-column prop="areaCode" label="所在区域"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.areaCode, getEnumAreaCodeData_Index)}}</el-tag>
@@ -260,7 +261,6 @@
        <el-table-column prop="width" label="宽"  show-overflow-tooltip="" />
        <el-table-column prop="thk" label="厚"  show-overflow-tooltip="" />
        <el-table-column prop="isPA" label="是否优化包装"  show-overflow-tooltip="" />
        <el-table-column prop="packageCode" label="包装号"  show-overflow-tooltip="" />
        <el-table-column prop="machineXCenter" label="包装X坐标"  show-overflow-tooltip="" />
        <el-table-column prop="machineYCenter" label="包装Y坐标"  show-overflow-tooltip="" />
        <el-table-column prop="machineZCenter" label="包装Z坐标"  show-overflow-tooltip="" />
@@ -274,11 +274,11 @@
        <el-table-column prop="info7" label="经销店名称"  show-overflow-tooltip="" />
        <el-table-column prop="info8" label="产品名称"  show-overflow-tooltip="" />
        <el-table-column prop="info10" label="客户名称"  show-overflow-tooltip="" />
        <el-table-column prop="info9" label="包装编码"  show-overflow-tooltip="" />
        <el-table-column prop="info11" label="自提or发货"  show-overflow-tooltip="" />
        <el-table-column prop="info12" label="包装部件总数量"  show-overflow-tooltip="" />
        <el-table-column prop="info13" label="包装面积"  show-overflow-tooltip="" />
        <el-table-column prop="info14" label="部件名称"  show-overflow-tooltip="" />
        <!-- <el-table-column prop="info14" label="部件名称"  show-overflow-tooltip="" /> -->
        <el-table-column prop="info15" label="部件数量"  show-overflow-tooltip="" />
        <el-table-column prop="info16" label="部件尺寸"  show-overflow-tooltip="" />
        <el-table-column prop="info17" label="机械臂是否旋转"  show-overflow-tooltip="" />
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Order_Gather/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,211 @@
<template>
    <div class="mes_Order_Gather-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="生产单号" prop="info5">
                            <el-input v-model="ruleForm.info5" placeholder="请输入生产单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="批次号" prop="planNo">
                            <el-input v-model="ruleForm.planNo" placeholder="请输入批次号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="订单号" prop="orderId">
                            <el-input v-model="ruleForm.orderId" placeholder="请输入订单号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="是否齐套" prop="isKitting">
                            <el-switch v-model="ruleForm.isKitting" active-text="是" inactive-text="否" />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包数" prop="packageNum">
                            <el-input-number v-model="ruleForm.packageNum" placeholder="请输入包数" clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="已下线包数" prop="unLinePackageNum">
                            <el-input-number v-model="ruleForm.unLinePackageNum" placeholder="请输入已下线包数" clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="未下线包数" prop="noUnLinePackageNum">
                            <el-input-number v-model="ruleForm.noUnLinePackageNum" placeholder="请输入未下线包数" clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="总包装面积" prop="allPackageArea">
                            <el-input v-model="ruleForm.allPackageArea" placeholder="请输入总包装面积" maxlength="18" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="已扫描包装面积" prop="scanPackageArea">
                            <el-input v-model="ruleForm.scanPackageArea" placeholder="请输入已扫描包装面积" maxlength="18" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="未扫描包装面积" prop="noScanPackageArea">
                            <el-input v-model="ruleForm.noScanPackageArea" placeholder="请输入未扫描包装面积" maxlength="18" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit" :disabled="disabled_btn">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addMes_Order_Gather, updateMes_Order_Gather, detailMes_Order_Gather } from "/@/api/main/WmsOrder/mes_Order_Gather";
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const loading = ref(false);
    const disabled_btn = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        packageNum: [{required: true, message: '请输入包数!', trigger: 'blur',},],
        unLinePackageNum: [{required: true, message: '请输入已下线包数!', trigger: 'blur',},],
        noUnLinePackageNum: [{required: true, message: '请输入未下线包数!', trigger: 'blur',},],
        allPackageArea: [{required: true, message: '请输入总包装面积!', trigger: 'blur',},],
        scanPackageArea: [{required: true, message: '请输入已扫描包装面积!', trigger: 'blur',},],
        noScanPackageArea: [{required: true, message: '请输入未扫描包装面积!', trigger: 'blur',},],
        isDelete: [{required: true, message: '请选择软删除!', trigger: 'change',},],
    });
    /*
     * æ‰“开弹窗
     * @param flag æ ‡è®°ï¼ˆ1新增 2编辑 3查看)
     * @param row  è¡Œæ•°æ®
     */
    const openDialog = async (flag: number,row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailMes_Order_Gather(rowData.id)).data.result;
        else {
            ruleForm.value = rowData;
        }
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        disabled_btn.value = true;
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                loading.value = true;
                let values = ruleForm.value;
                let ret={};
                let title='新增';
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    ret = await addMes_Order_Gather(values);
                } else {
                    title='编辑';
                    ret = await updateMes_Order_Gather(values);
                }
                loading.value = false;
                disabled_btn.value = false;
                if(ret.data.type=="success"){
                    ElMessage.success(title+'成功');
                    closeDialog();
                }
            } else {
                disabled_btn.value = false;
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Order_Gather/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,316 @@
<template>
  <div class="mes_Order_Gather-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsMes_Order_Gather" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="queryParamsMes_Order_Gather.searchKey" clearable="" placeholder="生产单号,批次号,订单号,创建人,修改人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsMes_Order_Gather.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsMes_Order_Gather.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsMes_Order_Gather.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="是否齐套">
              <el-select clearable="" v-model="queryParamsMes_Order_Gather.isKitting" placeholder="请选择是否齐套">
                <el-option v-for="(item,index) in getEnumIsKittingData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="包数">
              <el-input-number v-model="queryParamsMes_Order_Gather.packageNum"  clearable="" placeholder="请输入包数"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="已下线包数">
              <el-input-number v-model="queryParamsMes_Order_Gather.unLinePackageNum"  clearable="" placeholder="请输入已下线包数"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="未下线包数">
              <el-input-number v-model="queryParamsMes_Order_Gather.noUnLinePackageNum"  clearable="" placeholder="请输入未下线包数"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="总包装面积">
              <el-input v-model="queryParamsMes_Order_Gather.allPackageArea" clearable="" placeholder="请输入总包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="已扫描包装面积">
              <el-input v-model="queryParamsMes_Order_Gather.scanPackageArea" clearable="" placeholder="请输入已扫描包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="未扫描包装面积">
              <el-input v-model="queryParamsMes_Order_Gather.noScanPackageArea" clearable="" placeholder="请输入未扫描包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Order_Gather">
            <el-form-item label="创建时间">
              <el-date-picker placeholder="请选择创建时间" value-format="YYYY/MM/DD  HH:mm:ss" type="datetimerange" :default-time="defaultTimeRange" v-model="queryParamsMes_Order_Gather.createTimeRange" />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
            <el-form-item>
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQueryMes_Order_Gather" v-auth="'mes_Order_Gather:page'" :disabled="disabled_btnMes_Order_Gather"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetMes_Order_Gather"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMes_Order_Gather" v-if="!showAdvanceQueryUIMes_Order_Gather" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMes_Order_Gather" v-if="showAdvanceQueryUIMes_Order_Gather" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMes_Order_Gather" v-auth="'mes_Order_Gather:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMes_Order_Gather"  v-auth="'mes_Order_Gather:exportExcel'" > å¯¼å‡º </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table
                ref="tableRefMes_Order_Gather"
                :data="tableDataMes_Order_Gather"
                style="width: 100%"
                v-loading="loadingMes_Order_Gather"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeMes_Order_Gather"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="info5" label="生产单号"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  show-overflow-tooltip="" />
        <el-table-column prop="isKitting" label="是否齐套"  show-overflow-tooltip="">
          <template #default="scope">
            <el-tag v-if="scope.row.isKitting"> æ˜¯ </el-tag>
            <el-tag type="danger" v-else> å¦ </el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="packageNum" label="包数"  show-overflow-tooltip="" />
        <el-table-column prop="unLinePackageNum" label="已下线包数"  show-overflow-tooltip="" />
        <el-table-column prop="noUnLinePackageNum" label="未下线包数"  show-overflow-tooltip="" />
        <el-table-column prop="allPackageArea" label="总包装面积"  show-overflow-tooltip="" />
        <el-table-column prop="scanPackageArea" label="已扫描包装面积"  show-overflow-tooltip="" />
        <el-table-column prop="noScanPackageArea" label="未扫描包装面积"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
         <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column prop="updateUserName" label="修改人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mes_Order_Gather:update') || auth('mes_Order_Gather:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMes_Order_Gather(scope.row)" v-auth="'mes_Order_Gather:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMes_Order_Gather(scope.row)" v-auth="'mes_Order_Gather:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsMes_Order_Gather.page"
                v-model:page-size="tableParamsMes_Order_Gather.pageSize"
                :total="tableParamsMes_Order_Gather.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeMes_Order_Gather"
                @current-change="handleCurrentChangeMes_Order_Gather"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogMes_Order_Gather
        ref="printDialogRefMes_Order_Gather"
        :title="printMes_Order_GatherTitle"
        @reloadTable="handleQueryMes_Order_Gather" />
      <editDialogMes_Order_Gather
        ref="editDialogRefMes_Order_Gather"
        :title="editMes_Order_GatherTitle"
        @reloadTable="handleQueryMes_Order_Gather"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="mes_Order_Gather">
  import { ref,onMounted } from "vue";
  import { ElMessageBox, ElMessage } from "element-plus";
  import { auth } from '/@/utils/authFunction';
  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
  import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
  import { exportPageExcel } from '/@/utils/exportPageExcel' //引入导出方法
  import printDialogMes_Order_Gather from '/@/views/system/print/component/hiprint/preview.vue'
  import editDialogMes_Order_Gather from '/@/views/main/WmsOrder/mes_Order_Gather/component/editDialog.vue'
  import { pageMes_Order_Gather, deleteMes_Order_Gather,importExcelMes_Order_Gather,downloadExcelTemplateMes_Order_Gather } from '/@/api/main/WmsOrder/mes_Order_Gather';
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
  import commonFunction from '/@/utils/commonFunction';
  const getEnumIsKittingData_Index = ref<any>([]);
  /***************************************************[订单数据操作]开始***************************************************/
  const showAdvanceQueryUIMes_Order_Gather = ref(false);
  const tableRefMes_Order_Gather = ref(null);
  const printDialogRefMes_Order_Gather = ref();
  const editDialogRefMes_Order_Gather = ref();
  const loadingMes_Order_Gather = ref(false);
  const disabled_btnMes_Order_Gather = ref(false);
  const tableDataMes_Order_Gather = ref<any>([]);
  const queryParamsMes_Order_Gather = ref<any>({});
  const tableParamsMes_Order_Gather = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printMes_Order_GatherTitle = ref("");
  const editMes_Order_GatherTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIMes_Order_Gather = () => {
    showAdvanceQueryUIMes_Order_Gather.value = !showAdvanceQueryUIMes_Order_Gather.value;
  }
  // æŸ¥è¯¢è®¢å•数据
  const handleQueryMes_Order_Gather = async () => {
    loadingMes_Order_Gather.value = true;
    disabled_btnMes_Order_Gather.value = true;
    var res = await pageMes_Order_Gather(Object.assign(queryParamsMes_Order_Gather.value, tableParamsMes_Order_Gather.value));
    if(res.data.type=="success"){
      tableDataMes_Order_Gather.value = res.data.result?.items ?? [];
      tableParamsMes_Order_Gather.value.total = res.data.result?.total;
    }
    loadingMes_Order_Gather.value = false;
    disabled_btnMes_Order_Gather.value = false;
  };
  // é‡ç½®è®¢å•数据查询
  const resetMes_Order_Gather = async () => {
    queryParamsMes_Order_Gather.value = {}
  };
  // è®¢å•数据列排序
  const sortChangeMes_Order_Gather = async (column: any) => {
    queryParamsMes_Order_Gather.value.field = column.prop;
    queryParamsMes_Order_Gather.value.order = column.order;
    await handleQueryMes_Order_Gather();
  };
  // æ‰“开新增订单数据页面
  const openAddMes_Order_Gather = () => {
    editMes_Order_GatherTitle.value = '添加订单数据';
    editDialogRefMes_Order_Gather.value.openDialog(1,{});
  };
  // æ‰“开打印订单数据页面
  const openPrintMes_Order_Gather = async (row: any) => {
    printMes_Order_GatherTitle.value = '打印订单数据';
  }
  // æ‰“开编辑订单数据页面
  const openEditMes_Order_Gather = (row: any) => {
    editMes_Order_GatherTitle.value = '编辑订单数据';
    editDialogRefMes_Order_Gather.value.openDialog(2,row);
  };
  // åˆ é™¤è®¢å•数据
  const delMes_Order_Gather = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingMes_Order_Gather.value = true;
    var ret = await deleteMes_Order_Gather(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingMes_Order_Gather.value = false;
    handleQueryMes_Order_Gather();
  })
  .catch(() => {});
  };
  // æ”¹å˜è®¢å•数据页面容量
  const handleSizeChangeMes_Order_Gather = (val: number) => {
    tableParamsMes_Order_Gather.value.pageSize = val;
    handleQueryMes_Order_Gather();
  };
  // æ”¹å˜è®¢å•数据页码序号
  const handleCurrentChangeMes_Order_Gather = (val: number) => {
    tableParamsMes_Order_Gather.value.page = val;
    handleQueryMes_Order_Gather();
  };
/***************************************************[订单数据操作]结束***************************************************/
/***************************************************[订单数据导出]开始***************************************************/
//定义当前页面的方法组
const functionMapMes_Order_Gather = {
      getEnumIsKittingData_Index,
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelMes_Order_Gather = async (formData:Blob) => {
    loadingMes_Order_Gather.value = true;
    disabled_btnMes_Order_Gather.value = true;
    var new_tableParamsMes_Order_Gather=JSON.parse(JSON.stringify(tableParamsMes_Order_Gather.value));
    new_tableParamsMes_Order_Gather.page = 1;
    new_tableParamsMes_Order_Gather.pageSize = 100000;
    var res = await pageMes_Order_Gather(Object.assign(queryParamsMes_Order_Gather.value, new_tableParamsMes_Order_Gather));
    if(res.data.type=="success"){
      exportExcelMes_Order_Gather(res.data.result?.items ?? []);
    }
    loadingMes_Order_Gather.value = false;
    disabled_btnMes_Order_Gather.value = false;
};
//导出
const exportExcelMes_Order_Gather  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefMes_Order_Gather,"订单数据",functionMapMes_Order_Gather);
};
/***************************************************[订单数据导出]结束***************************************************/
  // è®¢å•数据页面加载时
  onMounted(async () => {
    getEnumIsKittingData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('TrueFalseEnum')).data.result ?? [];
  });
  handleQueryMes_Order_Gather();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_Gather/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,268 @@
<template>
    <div class="mes_Package_Gather-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装号" prop="packageCode">
                            <el-input v-model="ruleForm.packageCode" placeholder="请输入包装号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="生产单号" prop="info5">
                            <el-input v-model="ruleForm.info5" placeholder="请输入生产单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="批次号" prop="planNo">
                            <el-input v-model="ruleForm.planNo" placeholder="请输入批次号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="订单号" prop="orderId">
                            <el-input v-model="ruleForm.orderId" placeholder="请输入订单号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="所在区域" prop="areaCode">
                            <el-select clearable v-model="ruleForm.areaCode" placeholder="请选择所在区域">
                                <el-option v-for="(item,index) in  getEnumAreaCodeData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="板料状态" prop="upiStatus">
                            <el-select clearable v-model="ruleForm.upiStatus" placeholder="请选择板料状态">
                                <el-option v-for="(item,index) in  getEnumUpiStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱长" prop="info1">
                            <el-input v-model="ruleForm.info1" placeholder="请输入纸箱长" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱宽" prop="info2">
                            <el-input v-model="ruleForm.info2" placeholder="请输入纸箱宽" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱高" prop="info3">
                            <el-input v-model="ruleForm.info3" placeholder="请输入纸箱高" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="销售合同单号" prop="info4">
                            <el-input v-model="ruleForm.info4" placeholder="请输入销售合同单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="第几包" prop="info6">
                            <el-input v-model="ruleForm.info6" placeholder="请输入第几包" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="经销店名称" prop="info7">
                            <el-input v-model="ruleForm.info7" placeholder="请输入经销店名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="产品名称" prop="info8">
                            <el-input v-model="ruleForm.info8" placeholder="请输入产品名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="客户名称" prop="info10">
                            <el-input v-model="ruleForm.info10" placeholder="请输入客户名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="自提or发货" prop="info11">
                            <el-input v-model="ruleForm.info11" placeholder="请输入自提or发货" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装部件总数量" prop="info12">
                            <el-input v-model="ruleForm.info12" placeholder="请输入包装部件总数量" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装面积" prop="info13">
                            <el-input v-model="ruleForm.info13" placeholder="请输入包装面积" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit" :disabled="disabled_btn">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addMes_Package_Gather, updateMes_Package_Gather, detailMes_Package_Gather } from "/@/api/main/WmsOrder/mes_Package_Gather";
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
    const getEnumAreaCodeData = ref<any>([]);
    const getEnumUpiStatusData = ref<any>([]);
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const loading = ref(false);
    const disabled_btn = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        upiStatus: [{required: true, message: '请选择板料状态!', trigger: 'change',},],
        isDelete: [{required: true, message: '请选择软删除!', trigger: 'change',},],
    });
    /*
     * æ‰“开弹窗
     * @param flag æ ‡è®°ï¼ˆ1新增 2编辑 3查看)
     * @param row  è¡Œæ•°æ®
     */
    const openDialog = async (flag: number,row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailMes_Package_Gather(rowData.id)).data.result;
        else {
            ruleForm.value = rowData;
        }
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        disabled_btn.value = true;
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                loading.value = true;
                let values = ruleForm.value;
                let ret={};
                let title='新增';
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    ret = await addMes_Package_Gather(values);
                } else {
                    title='编辑';
                    ret = await updateMes_Package_Gather(values);
                }
                loading.value = false;
                disabled_btn.value = false;
                if(ret.data.type=="success"){
                    ElMessage.success(title+'成功');
                    closeDialog();
                }
            } else {
                disabled_btn.value = false;
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
            getEnumAreaCodeData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
            getEnumUpiStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_Gather/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,367 @@
<template>
  <div class="mes_Package_Gather-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsMes_Package_Gather" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="queryParamsMes_Package_Gather.searchKey" clearable="" placeholder="包装号,生产单号,批次号,订单号,销售合同单号,第几包,经销店名称,产品名称,客户名称,自提or发货,包装部件总数量,包装面积,创建人,修改人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsMes_Package_Gather.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsMes_Package_Gather.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsMes_Package_Gather.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsMes_Package_Gather.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="所在区域">
              <el-select clearable="" v-model="queryParamsMes_Package_Gather.areaCode" placeholder="请选择所在区域">
                <el-option v-for="(item,index) in getEnumAreaCodeData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="板料状态">
              <el-select clearable="" v-model="queryParamsMes_Package_Gather.upiStatus" placeholder="请选择板料状态">
                <el-option v-for="(item,index) in getEnumUpiStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="纸箱长">
              <el-input v-model="queryParamsMes_Package_Gather.info1" clearable="" placeholder="请输入纸箱长"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="纸箱宽">
              <el-input v-model="queryParamsMes_Package_Gather.info2" clearable="" placeholder="请输入纸箱宽"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="纸箱高">
              <el-input v-model="queryParamsMes_Package_Gather.info3" clearable="" placeholder="请输入纸箱高"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="销售合同单号">
              <el-input v-model="queryParamsMes_Package_Gather.info4" clearable="" placeholder="请输入销售合同单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="第几包">
              <el-input v-model="queryParamsMes_Package_Gather.info6" clearable="" placeholder="请输入第几包"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="经销店名称">
              <el-input v-model="queryParamsMes_Package_Gather.info7" clearable="" placeholder="请输入经销店名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="产品名称">
              <el-input v-model="queryParamsMes_Package_Gather.info8" clearable="" placeholder="请输入产品名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="客户名称">
              <el-input v-model="queryParamsMes_Package_Gather.info10" clearable="" placeholder="请输入客户名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="自提or发货">
              <el-input v-model="queryParamsMes_Package_Gather.info11" clearable="" placeholder="请输入自提or发货"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="包装部件总数量">
              <el-input v-model="queryParamsMes_Package_Gather.info12" clearable="" placeholder="请输入包装部件总数量"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_Gather">
            <el-form-item label="包装面积">
              <el-input v-model="queryParamsMes_Package_Gather.info13" clearable="" placeholder="请输入包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
            <el-form-item>
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQueryMes_Package_Gather" v-auth="'mes_Package_Gather:page'" :disabled="disabled_btnMes_Package_Gather"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetMes_Package_Gather"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMes_Package_Gather" v-if="!showAdvanceQueryUIMes_Package_Gather" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMes_Package_Gather" v-if="showAdvanceQueryUIMes_Package_Gather" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMes_Package_Gather" v-auth="'mes_Package_Gather:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMes_Package_Gather"  v-auth="'mes_Package_Gather:exportExcel'" > å¯¼å‡º </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table
                ref="tableRefMes_Package_Gather"
                :data="tableDataMes_Package_Gather"
                style="width: 100%"
                v-loading="loadingMes_Package_Gather"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeMes_Package_Gather"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="packageCode" label="包装号"  show-overflow-tooltip="" />
        <el-table-column prop="info5" label="生产单号"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  show-overflow-tooltip="" />
          <el-table-column prop="areaCode" label="所在区域"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.areaCode, getEnumAreaCodeData_Index)}}</el-tag>
            </template>
          </el-table-column>
          <el-table-column prop="upiStatus" label="板料状态"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.upiStatus, getEnumUpiStatusData_Index)}}</el-tag>
            </template>
          </el-table-column>
        <el-table-column prop="info1" label="纸箱长"  show-overflow-tooltip="" />
        <el-table-column prop="info2" label="纸箱宽"  show-overflow-tooltip="" />
        <el-table-column prop="info3" label="纸箱高"  show-overflow-tooltip="" />
        <el-table-column prop="info4" label="销售合同单号"  show-overflow-tooltip="" />
        <el-table-column prop="info6" label="第几包"  show-overflow-tooltip="" />
        <el-table-column prop="info7" label="经销店名称"  show-overflow-tooltip="" />
        <el-table-column prop="info8" label="产品名称"  show-overflow-tooltip="" />
        <el-table-column prop="info10" label="客户名称"  show-overflow-tooltip="" />
        <el-table-column prop="info11" label="自提or发货"  show-overflow-tooltip="" />
        <el-table-column prop="info12" label="包装部件总数量"  show-overflow-tooltip="" />
        <el-table-column prop="info13" label="包装面积"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
         <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column prop="updateUserName" label="修改人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mes_Package_Gather:update') || auth('mes_Package_Gather:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMes_Package_Gather(scope.row)" v-auth="'mes_Package_Gather:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMes_Package_Gather(scope.row)" v-auth="'mes_Package_Gather:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsMes_Package_Gather.page"
                v-model:page-size="tableParamsMes_Package_Gather.pageSize"
                :total="tableParamsMes_Package_Gather.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeMes_Package_Gather"
                @current-change="handleCurrentChangeMes_Package_Gather"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogMes_Package_Gather
        ref="printDialogRefMes_Package_Gather"
        :title="printMes_Package_GatherTitle"
        @reloadTable="handleQueryMes_Package_Gather" />
      <editDialogMes_Package_Gather
        ref="editDialogRefMes_Package_Gather"
        :title="editMes_Package_GatherTitle"
        @reloadTable="handleQueryMes_Package_Gather"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="mes_Package_Gather">
  import { ref,onMounted } from "vue";
  import { ElMessageBox, ElMessage } from "element-plus";
  import { auth } from '/@/utils/authFunction';
  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
  import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
  import { exportPageExcel } from '/@/utils/exportPageExcel' //引入导出方法
  import printDialogMes_Package_Gather from '/@/views/system/print/component/hiprint/preview.vue'
  import editDialogMes_Package_Gather from '/@/views/main/WmsOrder/mes_Package_Gather/component/editDialog.vue'
  import { pageMes_Package_Gather, deleteMes_Package_Gather,importExcelMes_Package_Gather,downloadExcelTemplateMes_Package_Gather } from '/@/api/main/WmsOrder/mes_Package_Gather';
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
  import commonFunction from '/@/utils/commonFunction';
  const getEnumAreaCodeData_Index = ref<any>([]);
  const getEnumUpiStatusData_Index = ref<any>([]);
    const { getEnumDesc } = commonFunction();
  /***************************************************[包数据操作]开始***************************************************/
  const showAdvanceQueryUIMes_Package_Gather = ref(false);
  const tableRefMes_Package_Gather = ref(null);
  const printDialogRefMes_Package_Gather = ref();
  const editDialogRefMes_Package_Gather = ref();
  const loadingMes_Package_Gather = ref(false);
  const disabled_btnMes_Package_Gather = ref(false);
  const tableDataMes_Package_Gather = ref<any>([]);
  const queryParamsMes_Package_Gather = ref<any>({});
  const tableParamsMes_Package_Gather = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printMes_Package_GatherTitle = ref("");
  const editMes_Package_GatherTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIMes_Package_Gather = () => {
    showAdvanceQueryUIMes_Package_Gather.value = !showAdvanceQueryUIMes_Package_Gather.value;
  }
  // æŸ¥è¯¢åŒ…数据
  const handleQueryMes_Package_Gather = async () => {
    loadingMes_Package_Gather.value = true;
    disabled_btnMes_Package_Gather.value = true;
    var res = await pageMes_Package_Gather(Object.assign(queryParamsMes_Package_Gather.value, tableParamsMes_Package_Gather.value));
    if(res.data.type=="success"){
      tableDataMes_Package_Gather.value = res.data.result?.items ?? [];
      tableParamsMes_Package_Gather.value.total = res.data.result?.total;
    }
    loadingMes_Package_Gather.value = false;
    disabled_btnMes_Package_Gather.value = false;
  };
  // é‡ç½®åŒ…数据查询
  const resetMes_Package_Gather = async () => {
    queryParamsMes_Package_Gather.value = {}
  };
  // åŒ…数据列排序
  const sortChangeMes_Package_Gather = async (column: any) => {
    queryParamsMes_Package_Gather.value.field = column.prop;
    queryParamsMes_Package_Gather.value.order = column.order;
    await handleQueryMes_Package_Gather();
  };
  // æ‰“开新增包数据页面
  const openAddMes_Package_Gather = () => {
    editMes_Package_GatherTitle.value = '添加包数据';
    editDialogRefMes_Package_Gather.value.openDialog(1,{});
  };
  // æ‰“开打印包数据页面
  const openPrintMes_Package_Gather = async (row: any) => {
    printMes_Package_GatherTitle.value = '打印包数据';
  }
  // æ‰“开编辑包数据页面
  const openEditMes_Package_Gather = (row: any) => {
    editMes_Package_GatherTitle.value = '编辑包数据';
    editDialogRefMes_Package_Gather.value.openDialog(2,row);
  };
  // åˆ é™¤åŒ…数据
  const delMes_Package_Gather = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingMes_Package_Gather.value = true;
    var ret = await deleteMes_Package_Gather(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingMes_Package_Gather.value = false;
    handleQueryMes_Package_Gather();
  })
  .catch(() => {});
  };
  // æ”¹å˜åŒ…数据页面容量
  const handleSizeChangeMes_Package_Gather = (val: number) => {
    tableParamsMes_Package_Gather.value.pageSize = val;
    handleQueryMes_Package_Gather();
  };
  // æ”¹å˜åŒ…数据页码序号
  const handleCurrentChangeMes_Package_Gather = (val: number) => {
    tableParamsMes_Package_Gather.value.page = val;
    handleQueryMes_Package_Gather();
  };
/***************************************************[包数据操作]结束***************************************************/
/***************************************************[包数据导出]开始***************************************************/
//定义当前页面的方法组
const functionMapMes_Package_Gather = {
      getEnumAreaCodeData_Index,
      getEnumUpiStatusData_Index,
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelMes_Package_Gather = async (formData:Blob) => {
    loadingMes_Package_Gather.value = true;
    disabled_btnMes_Package_Gather.value = true;
    var new_tableParamsMes_Package_Gather=JSON.parse(JSON.stringify(tableParamsMes_Package_Gather.value));
    new_tableParamsMes_Package_Gather.page = 1;
    new_tableParamsMes_Package_Gather.pageSize = 100000;
    var res = await pageMes_Package_Gather(Object.assign(queryParamsMes_Package_Gather.value, new_tableParamsMes_Package_Gather));
    if(res.data.type=="success"){
      exportExcelMes_Package_Gather(res.data.result?.items ?? []);
    }
    loadingMes_Package_Gather.value = false;
    disabled_btnMes_Package_Gather.value = false;
};
//导出
const exportExcelMes_Package_Gather  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefMes_Package_Gather,"包数据",functionMapMes_Package_Gather);
};
/***************************************************[包数据导出]结束***************************************************/
  // åŒ…数据页面加载时
  onMounted(async () => {
    getEnumAreaCodeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
    getEnumUpiStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
  });
  handleQueryMes_Package_Gather();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_LineQueue/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,268 @@
<template>
    <div class="mes_Package_LineQueue-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装号" prop="packageCode">
                            <el-input v-model="ruleForm.packageCode" placeholder="请输入包装号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="生产单号" prop="info5">
                            <el-input v-model="ruleForm.info5" placeholder="请输入生产单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="批次号" prop="planNo">
                            <el-input v-model="ruleForm.planNo" placeholder="请输入批次号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="订单号" prop="orderId">
                            <el-input v-model="ruleForm.orderId" placeholder="请输入订单号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="所在区域" prop="areaCode">
                            <el-select clearable v-model="ruleForm.areaCode" placeholder="请选择所在区域">
                                <el-option v-for="(item,index) in  getEnumAreaCodeData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="板料状态" prop="upiStatus">
                            <el-select clearable v-model="ruleForm.upiStatus" placeholder="请选择板料状态">
                                <el-option v-for="(item,index) in  getEnumUpiStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱长" prop="info1">
                            <el-input v-model="ruleForm.info1" placeholder="请输入纸箱长" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱宽" prop="info2">
                            <el-input v-model="ruleForm.info2" placeholder="请输入纸箱宽" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱高" prop="info3">
                            <el-input v-model="ruleForm.info3" placeholder="请输入纸箱高" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="销售合同单号" prop="info4">
                            <el-input v-model="ruleForm.info4" placeholder="请输入销售合同单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="第几包" prop="info6">
                            <el-input v-model="ruleForm.info6" placeholder="请输入第几包" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="经销店名称" prop="info7">
                            <el-input v-model="ruleForm.info7" placeholder="请输入经销店名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="产品名称" prop="info8">
                            <el-input v-model="ruleForm.info8" placeholder="请输入产品名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="客户名称" prop="info10">
                            <el-input v-model="ruleForm.info10" placeholder="请输入客户名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="自提or发货" prop="info11">
                            <el-input v-model="ruleForm.info11" placeholder="请输入自提or发货" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装部件总数量" prop="info12">
                            <el-input v-model="ruleForm.info12" placeholder="请输入包装部件总数量" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装面积" prop="info13">
                            <el-input v-model="ruleForm.info13" placeholder="请输入包装面积" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit" :disabled="disabled_btn">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addMes_Package_LineQueue, updateMes_Package_LineQueue, detailMes_Package_LineQueue } from "/@/api/main/WmsOrder/mes_Package_LineQueue";
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
    const getEnumAreaCodeData = ref<any>([]);
    const getEnumUpiStatusData = ref<any>([]);
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const loading = ref(false);
    const disabled_btn = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        upiStatus: [{required: true, message: '请选择板料状态!', trigger: 'change',},],
        isDelete: [{required: true, message: '请选择软删除!', trigger: 'change',},],
    });
    /*
     * æ‰“开弹窗
     * @param flag æ ‡è®°ï¼ˆ1新增 2编辑 3查看)
     * @param row  è¡Œæ•°æ®
     */
    const openDialog = async (flag: number,row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailMes_Package_LineQueue(rowData.id)).data.result;
        else {
            ruleForm.value = rowData;
        }
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        disabled_btn.value = true;
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                loading.value = true;
                let values = ruleForm.value;
                let ret={};
                let title='新增';
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    ret = await addMes_Package_LineQueue(values);
                } else {
                    title='编辑';
                    ret = await updateMes_Package_LineQueue(values);
                }
                loading.value = false;
                disabled_btn.value = false;
                if(ret.data.type=="success"){
                    ElMessage.success(title+'成功');
                    closeDialog();
                }
            } else {
                disabled_btn.value = false;
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
            getEnumAreaCodeData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
            getEnumUpiStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/mes_Package_LineQueue/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,367 @@
<template>
  <div class="mes_Package_LineQueue-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsMes_Package_LineQueue" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="queryParamsMes_Package_LineQueue.searchKey" clearable="" placeholder="包装号,生产单号,批次号,订单号,销售合同单号,第几包,经销店名称,产品名称,客户名称,自提or发货,包装部件总数量,包装面积,创建人,修改人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsMes_Package_LineQueue.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsMes_Package_LineQueue.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsMes_Package_LineQueue.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsMes_Package_LineQueue.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="所在区域">
              <el-select clearable="" v-model="queryParamsMes_Package_LineQueue.areaCode" placeholder="请选择所在区域">
                <el-option v-for="(item,index) in getEnumAreaCodeData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="板料状态">
              <el-select clearable="" v-model="queryParamsMes_Package_LineQueue.upiStatus" placeholder="请选择板料状态">
                <el-option v-for="(item,index) in getEnumUpiStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="纸箱长">
              <el-input v-model="queryParamsMes_Package_LineQueue.info1" clearable="" placeholder="请输入纸箱长"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="纸箱宽">
              <el-input v-model="queryParamsMes_Package_LineQueue.info2" clearable="" placeholder="请输入纸箱宽"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="纸箱高">
              <el-input v-model="queryParamsMes_Package_LineQueue.info3" clearable="" placeholder="请输入纸箱高"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="销售合同单号">
              <el-input v-model="queryParamsMes_Package_LineQueue.info4" clearable="" placeholder="请输入销售合同单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="第几包">
              <el-input v-model="queryParamsMes_Package_LineQueue.info6" clearable="" placeholder="请输入第几包"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="经销店名称">
              <el-input v-model="queryParamsMes_Package_LineQueue.info7" clearable="" placeholder="请输入经销店名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="产品名称">
              <el-input v-model="queryParamsMes_Package_LineQueue.info8" clearable="" placeholder="请输入产品名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="客户名称">
              <el-input v-model="queryParamsMes_Package_LineQueue.info10" clearable="" placeholder="请输入客户名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="自提or发货">
              <el-input v-model="queryParamsMes_Package_LineQueue.info11" clearable="" placeholder="请输入自提or发货"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="包装部件总数量">
              <el-input v-model="queryParamsMes_Package_LineQueue.info12" clearable="" placeholder="请输入包装部件总数量"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIMes_Package_LineQueue">
            <el-form-item label="包装面积">
              <el-input v-model="queryParamsMes_Package_LineQueue.info13" clearable="" placeholder="请输入包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
            <el-form-item>
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQueryMes_Package_LineQueue" v-auth="'mes_Package_LineQueue:page'" :disabled="disabled_btnMes_Package_LineQueue"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetMes_Package_LineQueue"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIMes_Package_LineQueue" v-if="!showAdvanceQueryUIMes_Package_LineQueue" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIMes_Package_LineQueue" v-if="showAdvanceQueryUIMes_Package_LineQueue" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddMes_Package_LineQueue" v-auth="'mes_Package_LineQueue:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelMes_Package_LineQueue"  v-auth="'mes_Package_LineQueue:exportExcel'" > å¯¼å‡º </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table
                ref="tableRefMes_Package_LineQueue"
                :data="tableDataMes_Package_LineQueue"
                style="width: 100%"
                v-loading="loadingMes_Package_LineQueue"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeMes_Package_LineQueue"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="packageCode" label="包装号"  show-overflow-tooltip="" />
        <el-table-column prop="info5" label="生产单号"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  show-overflow-tooltip="" />
          <el-table-column prop="areaCode" label="所在区域"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.areaCode, getEnumAreaCodeData_Index)}}</el-tag>
            </template>
          </el-table-column>
          <el-table-column prop="upiStatus" label="板料状态"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.upiStatus, getEnumUpiStatusData_Index)}}</el-tag>
            </template>
          </el-table-column>
        <el-table-column prop="info1" label="纸箱长"  show-overflow-tooltip="" />
        <el-table-column prop="info2" label="纸箱宽"  show-overflow-tooltip="" />
        <el-table-column prop="info3" label="纸箱高"  show-overflow-tooltip="" />
        <el-table-column prop="info4" label="销售合同单号"  show-overflow-tooltip="" />
        <el-table-column prop="info6" label="第几包"  show-overflow-tooltip="" />
        <el-table-column prop="info7" label="经销店名称"  show-overflow-tooltip="" />
        <el-table-column prop="info8" label="产品名称"  show-overflow-tooltip="" />
        <el-table-column prop="info10" label="客户名称"  show-overflow-tooltip="" />
        <el-table-column prop="info11" label="自提or发货"  show-overflow-tooltip="" />
        <el-table-column prop="info12" label="包装部件总数量"  show-overflow-tooltip="" />
        <el-table-column prop="info13" label="包装面积"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
         <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column prop="updateUserName" label="修改人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('mes_Package_LineQueue:update') || auth('mes_Package_LineQueue:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditMes_Package_LineQueue(scope.row)" v-auth="'mes_Package_LineQueue:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delMes_Package_LineQueue(scope.row)" v-auth="'mes_Package_LineQueue:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsMes_Package_LineQueue.page"
                v-model:page-size="tableParamsMes_Package_LineQueue.pageSize"
                :total="tableParamsMes_Package_LineQueue.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeMes_Package_LineQueue"
                @current-change="handleCurrentChangeMes_Package_LineQueue"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogMes_Package_LineQueue
        ref="printDialogRefMes_Package_LineQueue"
        :title="printMes_Package_LineQueueTitle"
        @reloadTable="handleQueryMes_Package_LineQueue" />
      <editDialogMes_Package_LineQueue
        ref="editDialogRefMes_Package_LineQueue"
        :title="editMes_Package_LineQueueTitle"
        @reloadTable="handleQueryMes_Package_LineQueue"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="mes_Package_LineQueue">
  import { ref,onMounted } from "vue";
  import { ElMessageBox, ElMessage } from "element-plus";
  import { auth } from '/@/utils/authFunction';
  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
  import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
  import { exportPageExcel } from '/@/utils/exportPageExcel' //引入导出方法
  import printDialogMes_Package_LineQueue from '/@/views/system/print/component/hiprint/preview.vue'
  import editDialogMes_Package_LineQueue from '/@/views/main/WmsOrder/mes_Package_LineQueue/component/editDialog.vue'
  import { pageMes_Package_LineQueue, deleteMes_Package_LineQueue,importExcelMes_Package_LineQueue,downloadExcelTemplateMes_Package_LineQueue } from '/@/api/main/WmsOrder/mes_Package_LineQueue';
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
  import commonFunction from '/@/utils/commonFunction';
  const getEnumAreaCodeData_Index = ref<any>([]);
  const getEnumUpiStatusData_Index = ref<any>([]);
    const { getEnumDesc } = commonFunction();
  /***************************************************[包队列数据操作]开始***************************************************/
  const showAdvanceQueryUIMes_Package_LineQueue = ref(false);
  const tableRefMes_Package_LineQueue = ref(null);
  const printDialogRefMes_Package_LineQueue = ref();
  const editDialogRefMes_Package_LineQueue = ref();
  const loadingMes_Package_LineQueue = ref(false);
  const disabled_btnMes_Package_LineQueue = ref(false);
  const tableDataMes_Package_LineQueue = ref<any>([]);
  const queryParamsMes_Package_LineQueue = ref<any>({});
  const tableParamsMes_Package_LineQueue = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printMes_Package_LineQueueTitle = ref("");
  const editMes_Package_LineQueueTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIMes_Package_LineQueue = () => {
    showAdvanceQueryUIMes_Package_LineQueue.value = !showAdvanceQueryUIMes_Package_LineQueue.value;
  }
  // æŸ¥è¯¢åŒ…队列数据
  const handleQueryMes_Package_LineQueue = async () => {
    loadingMes_Package_LineQueue.value = true;
    disabled_btnMes_Package_LineQueue.value = true;
    var res = await pageMes_Package_LineQueue(Object.assign(queryParamsMes_Package_LineQueue.value, tableParamsMes_Package_LineQueue.value));
    if(res.data.type=="success"){
      tableDataMes_Package_LineQueue.value = res.data.result?.items ?? [];
      tableParamsMes_Package_LineQueue.value.total = res.data.result?.total;
    }
    loadingMes_Package_LineQueue.value = false;
    disabled_btnMes_Package_LineQueue.value = false;
  };
  // é‡ç½®åŒ…队列数据查询
  const resetMes_Package_LineQueue = async () => {
    queryParamsMes_Package_LineQueue.value = {}
  };
  // åŒ…队列数据列排序
  const sortChangeMes_Package_LineQueue = async (column: any) => {
    queryParamsMes_Package_LineQueue.value.field = column.prop;
    queryParamsMes_Package_LineQueue.value.order = column.order;
    await handleQueryMes_Package_LineQueue();
  };
  // æ‰“开新增包队列数据页面
  const openAddMes_Package_LineQueue = () => {
    editMes_Package_LineQueueTitle.value = '添加包队列数据';
    editDialogRefMes_Package_LineQueue.value.openDialog(1,{});
  };
  // æ‰“开打印包队列数据页面
  const openPrintMes_Package_LineQueue = async (row: any) => {
    printMes_Package_LineQueueTitle.value = '打印包队列数据';
  }
  // æ‰“开编辑包队列数据页面
  const openEditMes_Package_LineQueue = (row: any) => {
    editMes_Package_LineQueueTitle.value = '编辑包队列数据';
    editDialogRefMes_Package_LineQueue.value.openDialog(2,row);
  };
  // åˆ é™¤åŒ…队列数据
  const delMes_Package_LineQueue = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingMes_Package_LineQueue.value = true;
    var ret = await deleteMes_Package_LineQueue(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingMes_Package_LineQueue.value = false;
    handleQueryMes_Package_LineQueue();
  })
  .catch(() => {});
  };
  // æ”¹å˜åŒ…队列数据页面容量
  const handleSizeChangeMes_Package_LineQueue = (val: number) => {
    tableParamsMes_Package_LineQueue.value.pageSize = val;
    handleQueryMes_Package_LineQueue();
  };
  // æ”¹å˜åŒ…队列数据页码序号
  const handleCurrentChangeMes_Package_LineQueue = (val: number) => {
    tableParamsMes_Package_LineQueue.value.page = val;
    handleQueryMes_Package_LineQueue();
  };
/***************************************************[包队列数据操作]结束***************************************************/
/***************************************************[包队列数据导出]开始***************************************************/
//定义当前页面的方法组
const functionMapMes_Package_LineQueue = {
      getEnumAreaCodeData_Index,
      getEnumUpiStatusData_Index,
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelMes_Package_LineQueue = async (formData:Blob) => {
    loadingMes_Package_LineQueue.value = true;
    disabled_btnMes_Package_LineQueue.value = true;
    var new_tableParamsMes_Package_LineQueue=JSON.parse(JSON.stringify(tableParamsMes_Package_LineQueue.value));
    new_tableParamsMes_Package_LineQueue.page = 1;
    new_tableParamsMes_Package_LineQueue.pageSize = 100000;
    var res = await pageMes_Package_LineQueue(Object.assign(queryParamsMes_Package_LineQueue.value, new_tableParamsMes_Package_LineQueue));
    if(res.data.type=="success"){
      exportExcelMes_Package_LineQueue(res.data.result?.items ?? []);
    }
    loadingMes_Package_LineQueue.value = false;
    disabled_btnMes_Package_LineQueue.value = false;
};
//导出
const exportExcelMes_Package_LineQueue  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefMes_Package_LineQueue,"包队列数据",functionMapMes_Package_LineQueue);
};
/***************************************************[包队列数据导出]结束***************************************************/
  // åŒ…队列数据页面加载时
  onMounted(async () => {
    getEnumAreaCodeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
    getEnumUpiStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
  });
  handleQueryMes_Package_LineQueue();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
@@ -280,7 +280,7 @@
                            <el-col :span="4">
                                <el-form-item label-width="20px">
                                    <el-button type="primary" icon="el-icon-search" @click="getDetail">查询</el-button>
                                    <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æ‰“印 </el-button>
                                    <!-- <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æ‰“印 </el-button> -->
                                </el-form-item>
                            </el-col>
                        </el-row>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
@@ -80,16 +80,17 @@
                            <el-input v-model="queryParams.projectNo" clearable="" placeholder="请输入项目号" />
                        </el-form-item>
                    </el-col> -->
                    <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
                        <el-form-item>
                            <el-button-group style="display: flex; align-items: center">
                                <el-button type="primary" icon="ele-Search" @click="handleQuery"> æŸ¥è¯¢ </el-button>
                                <el-button icon="ele-Refresh" @click="() => (queryParams = {})"> é‡ç½® </el-button>
                                <el-button icon="ele-Finished" @click="clickOut"> å¼ºåˆ¶å‡ºåº“ </el-button>
                                <!-- <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left: 5px"> é«˜çº§æŸ¥è¯¢ </el-button>
                                <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left: 5px"> éšè— </el-button> -->
                            </el-button-group>
                        </el-form-item>
                    </el-col>
@@ -112,7 +113,7 @@
                                </span>
                            </template>
                        </el-table-column>
                        <el-table-column prop="mesTotalCount" label="总数" show-overflow-tooltip="" />
                        <el-table-column prop="count" label="已有数量" show-overflow-tooltip="" />
@@ -140,8 +141,11 @@
                        row-key="newId"
                        @sort-change="newSortChange"
                        :summary-method="getNewExportTitle"
                        @selection-change="handleSelectionChange"
                        border=""
                    >
                        <el-table-column align="center" width="60" type="selection" />
                        <el-table-column type="index" label="序号" width="55" align="center" />
                        <!-- <el-table-column prop="packageCode" label="包装号" show-overflow-tooltip="" /> -->
                        <el-table-column label="包装号" prop="packageCode" width="150" align="left" show-overflow-tooltip>
@@ -151,7 +155,7 @@
                                </span>
                            </template>
                        </el-table-column>
                        <el-table-column prop="mesTotalCount" label="总数" show-overflow-tooltip="" />
                        <el-table-column prop="count" label="已有数量" show-overflow-tooltip="" />
                        <el-table-column prop="lackCount" label="缺少数量" show-overflow-tooltip="" />
@@ -169,8 +173,6 @@
                </div>
            </div>
        </el-card>
        <editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" @reloadTable="handleQuery" />
        <importExcelDialog
@@ -202,6 +204,7 @@
    downloadExcelTemplateWmsOrderPurchase,
    downloadExcelTemplateWmsOrderPurchaseAll,
    packList,
    ForceOutbound,
} from '/@/api/main/WmsOrder/wmsOrderPurchase';
import { handleSlectDataWmsBusinessType } from '/@/utils/selectData';
import { getAPI } from '/@/utils/axios-utils';
@@ -294,23 +297,22 @@
// 88888888查询操作
const handleQuery = async () => {
    loading.value = true;
    var res = await packList(Object.assign(queryParams.value, {
        ...tableParams.value,
        IsPack:true
    }));
    var res = await packList(
        Object.assign(queryParams.value, {
            ...tableParams.value,
            IsPack: true,
        })
    );
    tableData.value = res.data.result ?? [];
    var res2 = await packList(Object.assign(queryParams.value, {
        ...tableParams.value,
        IsPack:false
    }));
    var res2 = await packList(
        Object.assign(queryParams.value, {
            ...tableParams.value,
            IsPack: false,
        })
    );
    newTableData.value = res2.data.result ?? [];
    // tableParams.value.total = res.data.result?.total;
    loading.value = false;
    // getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? [];
    // getEnumPoStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderStatusEnum')).data.result ?? [];
};
// åˆ—排序
@@ -462,6 +464,39 @@
        }
    });
};
//选中的行
const checkRows = ref<{ id: number }[]>([]);
// é€‰æ‹©
const handleSelectionChange = (val: any) => {
    checkRows.value = val;
};
const clickOut = () => {
    var PackageCodeList = checkRows.value.map((x: any) => x.packageCode);
    if (PackageCodeList.length == 0) {
        ElMessage.error('请选择需要出库的订单!');
        return;
    }
    ElMessageBox.confirm('是否确认强制出库?', '提示', {
        confirmButtonText: '确认',
        cancelButtonText: '取消',
        type: 'warning',
    })
        .then(async () => {
            loading.value = true;
            var res = await ForceOutbound(
                {
                    "PackageCodeList": PackageCodeList
                }
            );
            handleQuery();
            ElMessage.success('强制出库成功');
            loading.value = false;
        })
        .catch(() => ElMessage.info('已取消'));
};
</script>
<style scoped>
:deep(.el-input),
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<template>
    <div class="wmsSubstituteGood-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addWmsSubstituteGood, updateWmsSubstituteGood, detailWmsSubstituteGood } from "/@/api/main/WmsBase/wmsSubstituteGood";
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        substituteCode: [{required: true, message: '请输入替代编号!', trigger: 'blur',},],
        materialCode: [{required: true, message: '请选择物料编号!', trigger: 'change',},],
        materialName: [{required: true, message: '请输入物料名称!', trigger: 'blur',},],
        substituteMaterialCode: [{required: true, message: '请输入替代品物料编号!', trigger: 'blur',},],
        substituteMaterialName: [{required: true, message: '请输入替代品物料名称!', trigger: 'blur',},],
        substituteIndex: [{required: true, message: '请输入替代次序!', trigger: 'blur',},],
    });
    // æ‰“开弹窗
    const openDialog = async (row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailWmsSubstituteGood(rowData.id)).data.result;
        else
            ruleForm.value = rowData;
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                let values = ruleForm.value;
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    await addWmsSubstituteGood(values);
                } else {
                    await updateWmsSubstituteGood(values);
                }
                closeDialog();
            } else {
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,315 @@
<template>
    <div class="wmsSubstituteGood-container">
        <el-card class="full-table" shadow="hover" style="margin-top: 5px">
            <el-form :model="queryParams" @submit.native.prevent ref="queryForm" labelWidth="100">
                <el-row>
                    <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
                        <el-form-item label="包装号" size="large">
                            <el-input size="large" v-model="queryParams.packageCode" ref="materialCodeInput" clearable="" placeholder="请扫包装号" />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
                        <el-form-item label="部件条码" size="large">
                            <el-input
                                size="large"
                                v-model="queryParams.upi"
                                ref="materialCodeInputupi"
                                clearable=""
                                placeholder="请扫部件条码"
                                @keyup.enter.prevent="handleEnterUip"
                                @confirm.enter.prevent="handleEnterUip"
                            />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="3" :xl="3" class="mb10">
                        <el-form-item>
                            <el-button-group style="display: flex; align-items: center">
                                <el-button size="large" type="primary" icon="ele-Search" @click="handleQuery"> æŸ¥è¯¢ </el-button>
                                <el-button size="large" icon="ele-Refresh" @click="() => (queryParams = {})"> é‡ç½® </el-button>
                                <!--
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> éšè— </el-button> -->
                                <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsSubstituteGood" v-auth="'wmsSubstituteGood:add'"> æ–°å¢ž </el-button> -->
                            </el-button-group>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <br />
            <div class="detailBox"  style="height: calc(65vh);">
                <div class="titleTip">
                    <div class="" v-show="isSuccess == '成功'">
                        <svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100">
                            <path
                                d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0"
                                fill="#52C41A"
                                p-id="11360"
                            ></path>
                        </svg>
                        <p class="okText">核对标签成功!</p>
                    </div>
                    <div class="" v-show="isSuccess && isSuccess != '成功'">
                        <svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100">
                            <path
                                d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z"
                                fill="#E84335"
                                p-id="4304"
                            ></path>
                        </svg>
                        <p class="okText">{{ isSuccess }}</p>
                    </div>
                </div>
                <ul>
                    <li>
                        <span class="text_left">批次:</span>
                        <span class="text_rt">{{ tableData.planNo }}</span>
                    </li>
                    <li>
                        <span class="text_left">订单号:</span>
                        <span class="text_rt">{{ tableData.orderId }}</span>
                    </li>
                    <li>
                        <span class="text_left">生产单号:</span>
                        <span class="text_rt">{{ tableData.info5 }}</span>
                    </li>
                    <li>
                        <span class="text_left">包装号:</span>
                        <span class="text_rt">{{ tableData.packageCode }}</span>
                    </li>
                    <!-- <li>
                        <span class="text_left">区域代码:</span>
                        <span class="text_rt">{{ tableData.areaCode }}</span>
                    </li> -->
                    <li>
                        <span class="text_left">纸箱长:</span>
                        <span class="text_rt">{{ tableData.info1 }}</span>
                    </li>
                    <li>
                        <span class="text_left">纸箱宽:</span>
                        <span class="text_rt">{{ tableData.info2 }}</span>
                    </li>
                    <li>
                        <span class="text_left">纸箱高:</span>
                        <span class="text_rt">{{ tableData.info3 }}</span>
                    </li>
                    <li>
                        <span class="text_left">销售合同单号:</span>
                        <span class="text_rt">{{ tableData.info4 }}</span>
                    </li>
                    <li>
                        <span class="text_left">第几包:</span>
                        <span class="text_rt">{{ tableData.info6 }}</span>
                    </li>
                    <li>
                        <span class="text_left">经销店名称:</span>
                        <span class="text_rt">{{ tableData.info7 }}</span>
                    </li>
                    <li>
                        <span class="text_left">产品名称:</span>
                        <span class="text_rt">{{ tableData.info8 }}</span>
                    </li>
                    <li>
                        <span class="text_left">客户名称:</span>
                        <span class="text_rt">{{ tableData.info10 }}</span>
                    </li>
                    <li>
                        <span class="text_left">自提或发货:</span>
                        <span class="text_rt">{{ tableData.info11 }}</span>
                    </li>
                    <li>
                        <span class="text_left">包装部件总数量:</span>
                        <span class="text_rt">{{ tableData.info12 }}</span>
                    </li>
                    <li>
                        <span class="text_left">包装面积:</span>
                        <span class="text_rt">{{ tableData.info13 }}</span>
                    </li>
                </ul>
            </div>
        </el-card>
    </div>
</template>
<script lang="ts" setup="" name="wmsSubstituteGood">
import { onBeforeUnmount, onMounted, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { auth } from '/@/utils/authFunction';
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
import { formatDate } from '/@/utils/formatTime';
import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New';
import { ShortageList, ValdateLabel } from '/@/api/main/ReportCenter/wmsStockQuan';
const loading = ref(false);
const tableData = ref<any>({});
const queryParams = ref<any>({
    upi: '',
    packageCode: '',
});
// å®šä¹‰åˆ—的接口
interface Column {
    ColumnName: string;
    ColumnDescription: string;
}
// åˆ—表数据
const arrList = ref<Column[]>([
    { ColumnName: 'info1', ColumnDescription: '纸箱长' },
    { ColumnName: 'info2', ColumnDescription: '纸箱宽' },
    { ColumnName: 'info3', ColumnDescription: '纸箱高' },
    { ColumnName: 'info4', ColumnDescription: '销售合同单号' },
    { ColumnName: 'info5', ColumnDescription: '生产单号' },
    { ColumnName: 'info6', ColumnDescription: '第几包' },
    { ColumnName: 'info7', ColumnDescription: '经销店名称' },
    { ColumnName: 'info8', ColumnDescription: '产品名称' },
    { ColumnName: 'info9', ColumnDescription: '包装编码' },
    { ColumnName: 'info10', ColumnDescription: '客户名称' },
    { ColumnName: 'info11', ColumnDescription: '自提or发货' },
    { ColumnName: 'info12', ColumnDescription: '包装部件总数量' },
    { ColumnName: 'info13', ColumnDescription: '包装面积' },
    { ColumnName: 'info14', ColumnDescription: '部件名称' },
    { ColumnName: 'info15', ColumnDescription: '部件数量' },
    { ColumnName: 'info16', ColumnDescription: '部件尺寸' },
    { ColumnName: 'info17', ColumnDescription: '机械臂是否旋转' },
]);
//=======================鼠标定位 ç”¨äºŽå¼•用输入框=====================
let materialCodeInput = ref(null);
let materialCodeInputupi = ref(null);
let inactivityTimer = null;
// å¤„理用户活动的函数
const handleUserActivity = () => {
    if (inactivityTimer) {
        clearTimeout(inactivityTimer);
    }
    inactivityTimer = setTimeout(() => {
        //1没值就聚焦
        if (!materialCodeInput.value.$el.querySelector('input').value) {
            materialCodeInput.value.$el.querySelector('input').focus();
            return;
        }
//都有值就返回 ä¸ºäº†æ–¹ä¾¿è¯·æ±‚接口
        if (materialCodeInput.value.$el.querySelector('input').value && materialCodeInputupi.value.$el.querySelector('input').value) {
            return;
        }
        // æ¸…空输入框的值
        if (materialCodeInput.value.$el.querySelector('input').value) {
            console.log('有值');
            materialCodeInputupi.value.$el.querySelector('input').value = '';
            materialCodeInputupi.value.$el.querySelector('input').focus();
            isSuccess.value = '';
            tableData.value =  {};
        } else {
            materialCodeInput.value.$el.querySelector('input').value = '';
            materialCodeInputupi.value.$el.querySelector('input').value = '';
            materialCodeInput.value.$el.querySelector('input').focus();
        }
    }, 1000); // è®¾å®š2秒未操作则自动聚焦
};
onMounted(() => {
    // åœ¨ç»„件挂载后进行聚焦
    materialCodeInput.value.$el.querySelector('input').focus();
    document.addEventListener('mousemove', handleUserActivity);
    document.addEventListener('keydown', handleUserActivity);
});
onBeforeUnmount(() => {
    clearTimeout(inactivityTimer);
    document.removeEventListener('mousemove', handleUserActivity);
    document.removeEventListener('keydown', handleUserActivity);
});
//=======================end鼠标定位 ç”¨äºŽå¼•用输入框=====================
const isSuccess = ref('');
// æŸ¥è¯¢æ“ä½œ 888888888
const handleQuery = async () => {
    console.log('8888888进入方法', queryParams.value);
    if (!queryParams.value.upi && !queryParams.value.packageCode) {
        return;
    }
    loading.value = true;
    var res = await ValdateLabel({
        PackageCode: queryParams.value.packageCode,
        Upi: queryParams.value.upi,
    });
    handleResponse(res);
};
function handleResponse(res:any) {
    tableData.value = res.data.result ?? {};
    materialCodeInput.value.$el.querySelector('input').value = '';
    materialCodeInputupi.value.$el.querySelector('input').value = '';
    materialCodeInput.value.$el.querySelector('input').focus();
    if (res.data.code == 200) {
        isSuccess.value = res.data.result.packageCode ? '成功' : res.data.message || '未查询到数据';
    } else if (res.data.code == 400) {
        loading.value = false;
        isSuccess.value = res.data.message || '未查询到数据';
        return;
    } else {
        loading.value = false;
        isSuccess.value = '';
        ElMessage.warning('网络异常 è¯·æ±‚失败');
        return;
    }
}
const handleEnterUip = (event: Event) => {
    event.preventDefault(); // é˜»æ­¢é»˜è®¤äº‹ä»¶
    handleQuery();
};
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
.detailBox {
    width: 90%;
    margin: 0 auto;
    display: block;
    padding-bottom: 10px;
    ul {
        margin: 0;
        padding: 0;
        li {
            display: block;
            line-height: 30px;
            text-align: left;
            list-style-type: none;
            width: 48%;
            display: inline-block;
            word-wrap: break-word;
        }
    }
}
.text_left {
    font-weight: 700;
}
.my-icon {
    font-size: 36px; /* è°ƒæ•´å­—体大小 */
    color: #00ff11; /* è®¾ç½®å›¾æ ‡é¢œè‰² */
}
.titleTip {
    text-align: center;
    font-size: 36px; /* è°ƒæ•´å­—体大小 */
    .okText {
        margin-bottom: 20px;
    }
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/validateQiTaoOutput/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,268 @@
<template>
    <div class="validateQiTaoOutput-container">
        <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
                    <span>{{ props.title }}</span>
                </div>
            </template>
            <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading">
                <el-row :gutter="35">
                    <el-form-item v-show="false">
                        <el-input v-model="ruleForm.id" />
                    </el-form-item>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装号" prop="packageCode">
                            <el-input v-model="ruleForm.packageCode" placeholder="请输入包装号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="生产单号" prop="info5">
                            <el-input v-model="ruleForm.info5" placeholder="请输入生产单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="批次号" prop="planNo">
                            <el-input v-model="ruleForm.planNo" placeholder="请输入批次号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="订单号" prop="orderId">
                            <el-input v-model="ruleForm.orderId" placeholder="请输入订单号" maxlength="50" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="所在区域" prop="areaCode">
                            <el-select clearable v-model="ruleForm.areaCode" placeholder="请选择所在区域">
                                <el-option v-for="(item,index) in  getEnumAreaCodeData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="板料状态" prop="upiStatus">
                            <el-select clearable v-model="ruleForm.upiStatus" placeholder="请选择板料状态">
                                <el-option v-for="(item,index) in  getEnumUpiStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱长" prop="info1">
                            <el-input v-model="ruleForm.info1" placeholder="请输入纸箱长" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱宽" prop="info2">
                            <el-input v-model="ruleForm.info2" placeholder="请输入纸箱宽" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="纸箱高" prop="info3">
                            <el-input v-model="ruleForm.info3" placeholder="请输入纸箱高" maxlength="53" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="销售合同单号" prop="info4">
                            <el-input v-model="ruleForm.info4" placeholder="请输入销售合同单号" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="第几包" prop="info6">
                            <el-input v-model="ruleForm.info6" placeholder="请输入第几包" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="经销店名称" prop="info7">
                            <el-input v-model="ruleForm.info7" placeholder="请输入经销店名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="产品名称" prop="info8">
                            <el-input v-model="ruleForm.info8" placeholder="请输入产品名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="客户名称" prop="info10">
                            <el-input v-model="ruleForm.info10" placeholder="请输入客户名称" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="自提or发货" prop="info11">
                            <el-input v-model="ruleForm.info11" placeholder="请输入自提or发货" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装部件总数量" prop="info12">
                            <el-input v-model="ruleForm.info12" placeholder="请输入包装部件总数量" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="包装面积" prop="info13">
                            <el-input v-model="ruleForm.info13" placeholder="请输入包装面积" maxlength="60" show-word-limit clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="cancel">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submit" :disabled="disabled_btn">ç¡® å®š</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped>
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
<script lang="ts" setup>
    import { ref,onMounted } from "vue";
    import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
    import { ElMessage } from "element-plus";
    import type { FormRules } from "element-plus";
    import { addValidateQiTaoOutput, updateValidateQiTaoOutput, detailValidateQiTaoOutput } from "/@/api/main/WmsOrder/validateQiTaoOutput";
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
    const getEnumAreaCodeData = ref<any>([]);
    const getEnumUpiStatusData = ref<any>([]);
    //父级传递来的参数
    var props = defineProps({
        title: {
        type: String,
        default: "",
    },
    });
    //父级传递来的函数,用于回调
    const emit = defineEmits(["reloadTable"]);
    const ruleFormRef = ref();
    const isShowDialog = ref(false);
    const loading = ref(false);
    const disabled_btn = ref(false);
    const ruleForm = ref<any>({});
    //自行添加其他规则
    const rules = ref<FormRules>({
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        upiStatus: [{required: true, message: '请选择板料状态!', trigger: 'change',},],
        isDelete: [{required: true, message: '请选择软删除!', trigger: 'change',},],
    });
    /*
     * æ‰“开弹窗
     * @param flag æ ‡è®°ï¼ˆ1新增 2编辑 3查看)
     * @param row  è¡Œæ•°æ®
     */
    const openDialog = async (flag: number,row: any) => {
        // ruleForm.value = JSON.parse(JSON.stringify(row));
        // æ”¹ç”¨detail获取最新数据来编辑
        let rowData = JSON.parse(JSON.stringify(row));
        if (rowData.id)
            ruleForm.value = (await detailValidateQiTaoOutput(rowData.id)).data.result;
        else {
            ruleForm.value = rowData;
        }
        isShowDialog.value = true;
    };
    // å…³é—­å¼¹çª—
    const closeDialog = () => {
        emit("reloadTable");
        isShowDialog.value = false;
    };
    // å–消
    const cancel = () => {
        isShowDialog.value = false;
    };
    // æäº¤
    const submit = async () => {
        disabled_btn.value = true;
        ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
            if (isValid) {
                loading.value = true;
                let values = ruleForm.value;
                let ret={};
                let title='新增';
                if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
                    ret = await addValidateQiTaoOutput(values);
                } else {
                    title='编辑';
                    ret = await updateValidateQiTaoOutput(values);
                }
                loading.value = false;
                disabled_btn.value = false;
                if(ret.data.type=="success"){
                    ElMessage.success(title+'成功');
                    closeDialog();
                }
            } else {
                disabled_btn.value = false;
                ElMessage({
                    message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                    type: "error",
                });
            }
        });
    };
    // é¡µé¢åŠ è½½æ—¶
    onMounted(async () => {
            getEnumAreaCodeData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
            getEnumUpiStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
    });
    //将属性或者函数暴露给父组件
    defineExpose({ openDialog });
</script>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/validateQiTaoOutput/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,367 @@
<template>
  <div class="validateQiTaoOutput-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsValidateQiTaoOutput" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="queryParamsValidateQiTaoOutput.searchKey" clearable="" placeholder="包装号,生产单号,批次号,订单号,销售合同单号,第几包,经销店名称,产品名称,客户名称,自提or发货,包装部件总数量,包装面积,创建人,修改人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsValidateQiTaoOutput.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsValidateQiTaoOutput.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsValidateQiTaoOutput.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsValidateQiTaoOutput.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="所在区域">
              <el-select clearable="" v-model="queryParamsValidateQiTaoOutput.areaCode" placeholder="请选择所在区域">
                <el-option v-for="(item,index) in getEnumAreaCodeData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="板料状态">
              <el-select clearable="" v-model="queryParamsValidateQiTaoOutput.upiStatus" placeholder="请选择板料状态">
                <el-option v-for="(item,index) in getEnumUpiStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="纸箱长">
              <el-input v-model="queryParamsValidateQiTaoOutput.info1" clearable="" placeholder="请输入纸箱长"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="纸箱宽">
              <el-input v-model="queryParamsValidateQiTaoOutput.info2" clearable="" placeholder="请输入纸箱宽"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="纸箱高">
              <el-input v-model="queryParamsValidateQiTaoOutput.info3" clearable="" placeholder="请输入纸箱高"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="销售合同单号">
              <el-input v-model="queryParamsValidateQiTaoOutput.info4" clearable="" placeholder="请输入销售合同单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="第几包">
              <el-input v-model="queryParamsValidateQiTaoOutput.info6" clearable="" placeholder="请输入第几包"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="经销店名称">
              <el-input v-model="queryParamsValidateQiTaoOutput.info7" clearable="" placeholder="请输入经销店名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="产品名称">
              <el-input v-model="queryParamsValidateQiTaoOutput.info8" clearable="" placeholder="请输入产品名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="客户名称">
              <el-input v-model="queryParamsValidateQiTaoOutput.info10" clearable="" placeholder="请输入客户名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="自提or发货">
              <el-input v-model="queryParamsValidateQiTaoOutput.info11" clearable="" placeholder="请输入自提or发货"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="包装部件总数量">
              <el-input v-model="queryParamsValidateQiTaoOutput.info12" clearable="" placeholder="请输入包装部件总数量"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIValidateQiTaoOutput">
            <el-form-item label="包装面积">
              <el-input v-model="queryParamsValidateQiTaoOutput.info13" clearable="" placeholder="请输入包装面积"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
            <el-form-item>
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQueryValidateQiTaoOutput" v-auth="'validateQiTaoOutput:page'" :disabled="disabled_btnValidateQiTaoOutput"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetValidateQiTaoOutput"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIValidateQiTaoOutput" v-if="!showAdvanceQueryUIValidateQiTaoOutput" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIValidateQiTaoOutput" v-if="showAdvanceQueryUIValidateQiTaoOutput" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddValidateQiTaoOutput" v-auth="'validateQiTaoOutput:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelValidateQiTaoOutput"  v-auth="'validateQiTaoOutput:exportExcel'" > å¯¼å‡º </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table
                ref="tableRefValidateQiTaoOutput"
                :data="tableDataValidateQiTaoOutput"
                style="width: 100%"
                v-loading="loadingValidateQiTaoOutput"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeValidateQiTaoOutput"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="packageCode" label="包装号"  show-overflow-tooltip="" />
        <el-table-column prop="info5" label="生产单号"  show-overflow-tooltip="" />
        <el-table-column prop="planNo" label="批次号"  show-overflow-tooltip="" />
        <el-table-column prop="orderId" label="订单号"  show-overflow-tooltip="" />
          <el-table-column prop="areaCode" label="所在区域"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.areaCode, getEnumAreaCodeData_Index)}}</el-tag>
            </template>
          </el-table-column>
          <el-table-column prop="upiStatus" label="板料状态"  show-overflow-tooltip="" >
            <template #default="scope">
              <el-tag>{{ getEnumDesc(scope.row.upiStatus, getEnumUpiStatusData_Index)}}</el-tag>
            </template>
          </el-table-column>
        <el-table-column prop="info1" label="纸箱长"  show-overflow-tooltip="" />
        <el-table-column prop="info2" label="纸箱宽"  show-overflow-tooltip="" />
        <el-table-column prop="info3" label="纸箱高"  show-overflow-tooltip="" />
        <el-table-column prop="info4" label="销售合同单号"  show-overflow-tooltip="" />
        <el-table-column prop="info6" label="第几包"  show-overflow-tooltip="" />
        <el-table-column prop="info7" label="经销店名称"  show-overflow-tooltip="" />
        <el-table-column prop="info8" label="产品名称"  show-overflow-tooltip="" />
        <el-table-column prop="info10" label="客户名称"  show-overflow-tooltip="" />
        <el-table-column prop="info11" label="自提or发货"  show-overflow-tooltip="" />
        <el-table-column prop="info12" label="包装部件总数量"  show-overflow-tooltip="" />
        <el-table-column prop="info13" label="包装面积"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
         <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column prop="updateUserName" label="修改人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('validateQiTaoOutput:update') || auth('validateQiTaoOutput:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditValidateQiTaoOutput(scope.row)" v-auth="'validateQiTaoOutput:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delValidateQiTaoOutput(scope.row)" v-auth="'validateQiTaoOutput:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsValidateQiTaoOutput.page"
                v-model:page-size="tableParamsValidateQiTaoOutput.pageSize"
                :total="tableParamsValidateQiTaoOutput.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeValidateQiTaoOutput"
                @current-change="handleCurrentChangeValidateQiTaoOutput"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogValidateQiTaoOutput
        ref="printDialogRefValidateQiTaoOutput"
        :title="printValidateQiTaoOutputTitle"
        @reloadTable="handleQueryValidateQiTaoOutput" />
      <editDialogValidateQiTaoOutput
        ref="editDialogRefValidateQiTaoOutput"
        :title="editValidateQiTaoOutputTitle"
        @reloadTable="handleQueryValidateQiTaoOutput"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="validateQiTaoOutput">
  import { ref,onMounted } from "vue";
  import { ElMessageBox, ElMessage } from "element-plus";
  import { auth } from '/@/utils/authFunction';
  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
  import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime';
  import { exportPageExcel } from '/@/utils/exportPageExcel' //引入导出方法
  import printDialogValidateQiTaoOutput from '/@/views/system/print/component/hiprint/preview.vue'
  import editDialogValidateQiTaoOutput from '/@/views/main/WmsOrder/validateQiTaoOutput/component/editDialog.vue'
  import { pageValidateQiTaoOutput, deleteValidateQiTaoOutput,importExcelValidateQiTaoOutput,downloadExcelTemplateValidateQiTaoOutput } from '/@/api/main/WmsOrder/validateQiTaoOutput';
    import { getAPI } from '/@/utils/axios-utils';
    import { SysEnumApi } from '/@/api-services/api';
  import commonFunction from '/@/utils/commonFunction';
  const getEnumAreaCodeData_Index = ref<any>([]);
  const getEnumUpiStatusData_Index = ref<any>([]);
    const { getEnumDesc } = commonFunction();
  /***************************************************[包数据操作]开始***************************************************/
  const showAdvanceQueryUIValidateQiTaoOutput = ref(false);
  const tableRefValidateQiTaoOutput = ref(null);
  const printDialogRefValidateQiTaoOutput = ref();
  const editDialogRefValidateQiTaoOutput = ref();
  const loadingValidateQiTaoOutput = ref(false);
  const disabled_btnValidateQiTaoOutput = ref(false);
  const tableDataValidateQiTaoOutput = ref<any>([]);
  const queryParamsValidateQiTaoOutput = ref<any>({});
  const tableParamsValidateQiTaoOutput = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printValidateQiTaoOutputTitle = ref("");
  const editValidateQiTaoOutputTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIValidateQiTaoOutput = () => {
    showAdvanceQueryUIValidateQiTaoOutput.value = !showAdvanceQueryUIValidateQiTaoOutput.value;
  }
  // æŸ¥è¯¢åŒ…数据
  const handleQueryValidateQiTaoOutput = async () => {
    loadingValidateQiTaoOutput.value = true;
    disabled_btnValidateQiTaoOutput.value = true;
    var res = await pageValidateQiTaoOutput(Object.assign(queryParamsValidateQiTaoOutput.value, tableParamsValidateQiTaoOutput.value));
    if(res.data.type=="success"){
      tableDataValidateQiTaoOutput.value = res.data.result?.items ?? [];
      tableParamsValidateQiTaoOutput.value.total = res.data.result?.total;
    }
    loadingValidateQiTaoOutput.value = false;
    disabled_btnValidateQiTaoOutput.value = false;
  };
  // é‡ç½®åŒ…数据查询
  const resetValidateQiTaoOutput = async () => {
    queryParamsValidateQiTaoOutput.value = {}
  };
  // åŒ…数据列排序
  const sortChangeValidateQiTaoOutput = async (column: any) => {
    queryParamsValidateQiTaoOutput.value.field = column.prop;
    queryParamsValidateQiTaoOutput.value.order = column.order;
    await handleQueryValidateQiTaoOutput();
  };
  // æ‰“开新增包数据页面
  const openAddValidateQiTaoOutput = () => {
    editValidateQiTaoOutputTitle.value = '添加包数据';
    editDialogRefValidateQiTaoOutput.value.openDialog(1,{});
  };
  // æ‰“开打印包数据页面
  const openPrintValidateQiTaoOutput = async (row: any) => {
    printValidateQiTaoOutputTitle.value = '打印包数据';
  }
  // æ‰“开编辑包数据页面
  const openEditValidateQiTaoOutput = (row: any) => {
    editValidateQiTaoOutputTitle.value = '编辑包数据';
    editDialogRefValidateQiTaoOutput.value.openDialog(2,row);
  };
  // åˆ é™¤åŒ…数据
  const delValidateQiTaoOutput = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingValidateQiTaoOutput.value = true;
    var ret = await deleteValidateQiTaoOutput(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingValidateQiTaoOutput.value = false;
    handleQueryValidateQiTaoOutput();
  })
  .catch(() => {});
  };
  // æ”¹å˜åŒ…数据页面容量
  const handleSizeChangeValidateQiTaoOutput = (val: number) => {
    tableParamsValidateQiTaoOutput.value.pageSize = val;
    handleQueryValidateQiTaoOutput();
  };
  // æ”¹å˜åŒ…数据页码序号
  const handleCurrentChangeValidateQiTaoOutput = (val: number) => {
    tableParamsValidateQiTaoOutput.value.page = val;
    handleQueryValidateQiTaoOutput();
  };
/***************************************************[包数据操作]结束***************************************************/
/***************************************************[包数据导出]开始***************************************************/
//定义当前页面的方法组
const functionMapValidateQiTaoOutput = {
      getEnumAreaCodeData_Index,
      getEnumUpiStatusData_Index,
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelValidateQiTaoOutput = async (formData:Blob) => {
    loadingValidateQiTaoOutput.value = true;
    disabled_btnValidateQiTaoOutput.value = true;
    var new_tableParamsValidateQiTaoOutput=JSON.parse(JSON.stringify(tableParamsValidateQiTaoOutput.value));
    new_tableParamsValidateQiTaoOutput.page = 1;
    new_tableParamsValidateQiTaoOutput.pageSize = 100000;
    var res = await pageValidateQiTaoOutput(Object.assign(queryParamsValidateQiTaoOutput.value, new_tableParamsValidateQiTaoOutput));
    if(res.data.type=="success"){
      exportExcelValidateQiTaoOutput(res.data.result?.items ?? []);
    }
    loadingValidateQiTaoOutput.value = false;
    disabled_btnValidateQiTaoOutput.value = false;
};
//导出
const exportExcelValidateQiTaoOutput  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefValidateQiTaoOutput,"包数据",functionMapValidateQiTaoOutput);
};
/***************************************************[包数据导出]结束***************************************************/
  // åŒ…数据页面加载时
  onMounted(async () => {
    getEnumAreaCodeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('AreaCodeEnum')).data.result ?? [];
    getEnumUpiStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('UpiStatusEnum')).data.result ?? [];
  });
  handleQueryValidateQiTaoOutput();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/stats.html
ÎļþÌ«´ó
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Database.json
@@ -9,9 +9,7 @@
        //"ConfigId": "1300000000001", // é»˜è®¤åº“标识-禁止修改
        "DbType": "SqlServer", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom
        // "ConnectionString": "Server=.;Database=iWare_RawMaterialWarehouse_Wms;User=sa;Password=123456;MultipleActiveResultSets=True;", // åº“连接字符串
       // "ConnectionString": "Server=172.17.1.111;Database=LA24030_LuLiPackageLine;User=sa;Password=admin@123;MultipleActiveResultSets=True;", // åº“连接字符串
        "ConnectionString": "Server=.;Database=LA24030_LuLiPackageLine;User=sa;Password=123abc.com;MultipleActiveResultSets=True;", // åº“连接字符串
        "ConnectionString": "Server=172.17.1.111;Database=LA24030_LuLiPackageLine;User=sa;Password=admin@123;MultipleActiveResultSets=True;", // åº“连接字符串
        //"SlaveConnectionConfigs": [ // è¯»å†™åˆ†ç¦»/主从
        //    {
        //        "HitRate": 10,
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/MesPushPaperCut.cs
@@ -18,14 +18,7 @@
    [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
    public string PackageCode { get; set; }
    [SugarColumn(ColumnName = "Info1", ColumnDescription = "纸箱长", Length = 50)]
    public float? Info1 { get; set; }
    [SugarColumn(ColumnName = "Info2", ColumnDescription = "纸箱宽", Length = 50)]
    public float? Info2 { get; set; }
    [SugarColumn(ColumnName = "Info3", ColumnDescription = "纸箱高", Length = 50)]
    public float? Info3 { get; set; }
    #endregion
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Order_Gather.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
using Admin.NET.Core;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/5/29上午10:26:39
 * @desc : è°ƒåº¦ä»»åŠ¡
 */
namespace Admin.NET.Application.Entity
{
    /// <summary>
    ///  è®¢å•汇总数据
    /// </summary>
    [SugarTable("mes_order_gather", "订单汇总数据")]
    public class Mes_Order_Gather : EntityBase
    {
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        [Required]
        [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "批次号", Length = 50)]
        public string PlanNo { get; set; }
        [Required]
        [SugarColumn(ColumnName = "OrderId", ColumnDescription = "订单号", Length = 50)]
        public string OrderId { get; set; }
        /// <summary>
        /// æ˜¯å¦é½å¥—
        /// </summary>
        [SugarColumn(ColumnName = "IsKitting", ColumnDescription = "是否齐套")]
        public bool? IsKitting { get; set; }
        /// <summary>
        /// åŒ…æ•°
        /// </summary>
        [SugarColumn(ColumnName = "PackageNum", ColumnDescription = "包数")]
        public int PackageNum { get; set; }
        /// <summary>
        /// å·²ä¸‹çº¿åŒ…æ•°
        /// </summary>
        [SugarColumn(ColumnName = "UnLinePackageNum", ColumnDescription = "已下线包数")]
        public int UnLinePackageNum { get; set; }
        /// <summary>
        /// æœªä¸‹çº¿åŒ…æ•°
        /// </summary>
        [SugarColumn(ColumnName = "NoUnLinePackageNum", ColumnDescription = "未下线包数")]
        public int NoUnLinePackageNum { get; set; }
        /// <summary>
        /// æ€»åŒ…装面积
        /// </summary>
        [SugarColumn(ColumnName = "AllPackageArea", ColumnDescription = "总包装面积")]
        public decimal AllPackageArea { get; set; }
        /// <summary>
        /// å·²æ‰«æåŒ…装面积
        /// </summary>
        [SugarColumn(ColumnName = "ScanPackageArea", ColumnDescription = "已扫描包装面积")]
        public decimal ScanPackageArea { get; set; }
        /// <summary>
        /// æœªæ‰«æåŒ…装面积
        /// </summary>
        [SugarColumn(ColumnName = "NoScanPackageArea", ColumnDescription = "未扫描包装面积")]
        public decimal NoScanPackageArea { get; set; }
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_Gather.cs
@@ -15,6 +15,16 @@
    {
        [Required]
        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
        public string PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        [Required]
        [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "批次号", Length = 50)]
        public string PlanNo { get; set; }
@@ -22,11 +32,7 @@
        [SugarColumn(ColumnName = "OrderId", ColumnDescription = "订单号", Length = 50)]
        public string OrderId { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        #region wms新增字段 ã€Editby shaocx,2024-11-20】
@@ -45,16 +51,12 @@
        [SugarColumn(ColumnName = "UpiStatus", ColumnDescription = "板料状态")]
        public UpiStatusEnum UpiStatus { get; set; } = UpiStatusEnum.初始;
        #endregion
        #region åŒ…装线有关
        [Required]
        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
        public string PackageCode { get; set; }
        /// <summary>
        /// æ˜¯å¦é½åŒ…
        /// </summary>
        [SugarColumn(ColumnName = "IsQiBao", ColumnDescription = "是否齐包")]
        public bool? IsQiBao { get; set; }
        #endregion
@@ -99,12 +101,6 @@
        /// </summary>
        [SugarColumn(ColumnName = "Info10", ColumnDescription = "客户名称", Length = 60)]
        public string? Info10 { get; set; }
        /// <summary>
        /// åŒ…装编码
        /// </summary>
        [SugarColumn(ColumnName = "Info9", ColumnDescription = "包装编码", Length = 60)]
        public string? Info9 { get; set; }
        /// <summary>
        /// è‡ªæor发货
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_LineQueue.cs
@@ -13,6 +13,15 @@
    [SugarTable("mes_package_linequeue", "包产线队列数据")]
    public class Mes_Package_LineQueue : EntityBase
    {
        [Required]
        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
        public string PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        [Required]
        [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "批次号", Length = 50)]
@@ -22,11 +31,7 @@
        [SugarColumn(ColumnName = "OrderId", ColumnDescription = "订单号", Length = 50)]
        public string OrderId { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        #region wms新增字段 ã€Editby shaocx,2024-11-20】
@@ -47,16 +52,6 @@
        #endregion
        #region åŒ…装线有关
        [Required]
        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
        public string PackageCode { get; set; }
        #endregion
@@ -100,11 +95,6 @@
        [SugarColumn(ColumnName = "Info10", ColumnDescription = "客户名称", Length = 60)]
        public string? Info10 { get; set; }
        /// <summary>
        /// åŒ…装编码
        /// </summary>
        [SugarColumn(ColumnName = "Info9", ColumnDescription = "包装编码", Length = 60)]
        public string? Info9 { get; set; }
        /// <summary>
        /// è‡ªæor发货
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_UnLine_Record.cs
@@ -13,6 +13,15 @@
    [SugarTable("mes_package_unline_record", "包产线下线记录数据")]
    public class Mes_Package_UnLine_Record : EntityBase
    {
        [Required]
        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
        public string PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        [Required]
        [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "批次号", Length = 50)]
@@ -22,23 +31,7 @@
        [SugarColumn(ColumnName = "OrderId", ColumnDescription = "订单号", Length = 50)]
        public string OrderId { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        #region åŒ…装线有关
        [Required]
        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
        public string PackageCode { get; set; }
        #endregion
        [SugarColumn(ColumnName = "Info1", ColumnDescription = "纸箱长", Length = 50)]
@@ -81,11 +74,6 @@
        [SugarColumn(ColumnName = "Info10", ColumnDescription = "客户名称", Length = 60)]
        public string? Info10 { get; set; }
        /// <summary>
        /// åŒ…装编码
        /// </summary>
        [SugarColumn(ColumnName = "Info9", ColumnDescription = "包装编码", Length = 60)]
        public string? Info9 { get; set; }
        /// <summary>
        /// è‡ªæor发货
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/DispenseStatusEnum.cs
ÎļþÒÑɾ³ý
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/FinancialTypeEnum.cs
ÎļþÒÑɾ³ý
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/OrderStatusEnum.cs
ÎļþÒÑɾ³ý
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/PDRecordStatusEnum.cs
ÎļþÒÑɾ³ý
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/PDRecordTypeEnum.cs
ÎļþÒÑɾ³ý
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/Mes_Package_UnLine_Record/Dto/Mes_Package_UnLine_RecordInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,277 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// åŒ…下线记录基础输入参数
    /// </summary>
    public class Mes_Package_UnLine_RecordBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public virtual string PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public virtual string Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public virtual string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public virtual string OrderId { get; set; }
        /// <summary>
        /// çº¸ç®±é•¿
        /// </summary>
        public virtual float? Info1 { get; set; }
        /// <summary>
        /// çº¸ç®±å®½
        /// </summary>
        public virtual float? Info2 { get; set; }
        /// <summary>
        /// çº¸ç®±é«˜
        /// </summary>
        public virtual float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        public virtual string Info4 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        public virtual string Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        public virtual string Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public virtual string Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        public virtual string Info10 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        public virtual string Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        public virtual string Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        public virtual string Info13 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public virtual string OpRemark { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// ä¿®æ”¹æ—¶é—´
        /// </summary>
        public virtual DateTime? UpdateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
        /// <summary>
        /// ä¿®æ”¹äººId
        /// </summary>
        public virtual long? UpdateUserId { get; set; }
        /// <summary>
        /// ä¿®æ”¹äºº
        /// </summary>
        public virtual string UpdateUserName { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        public virtual bool IsDelete { get; set; }
    }
    /// <summary>
    /// åŒ…下线记录分页查询输入参数
    /// </summary>
    public class Mes_Package_UnLine_RecordInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public string? PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public string? Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public string? PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public string? OrderId { get; set; }
        /// <summary>
        /// çº¸ç®±é•¿
        /// </summary>
        public float? Info1 { get; set; }
        /// <summary>
        /// çº¸ç®±å®½
        /// </summary>
        public float? Info2 { get; set; }
        /// <summary>
        /// çº¸ç®±é«˜
        /// </summary>
        public float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        public string? Info4 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        public string? Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        public string? Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public string? Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        public string? Info10 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        public string? Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        public string? Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        public string? Info13 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string? OpRemark { get; set; }
    }
    /// <summary>
    /// åŒ…下线记录增加输入参数
    /// </summary>
    public class AddMes_Package_UnLine_RecordInput : Mes_Package_UnLine_RecordBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        [Required(ErrorMessage = "包装号不能为空")]
        public override string PackageCode { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [Required(ErrorMessage = "批次号不能为空")]
        public override string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        [Required(ErrorMessage = "订单号不能为空")]
        public override string OrderId { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        [Required(ErrorMessage = "软删除不能为空")]
        public override bool IsDelete { get; set; }
    }
    /// <summary>
    /// åŒ…下线记录删除输入参数
    /// </summary>
    public class DeleteMes_Package_UnLine_RecordInput : BaseIdInput
    {
    }
    /// <summary>
    /// åŒ…下线记录更新输入参数
    /// </summary>
    public class UpdateMes_Package_UnLine_RecordInput : AddMes_Package_UnLine_RecordInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// åŒ…下线记录主键查询输入参数
    /// </summary>
    public class QueryByIdMes_Package_UnLine_RecordInput : DeleteMes_Package_UnLine_RecordInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/Mes_Package_UnLine_Record/Dto/Mes_Package_UnLine_RecordOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
namespace Admin.NET.Application;
/// <summary>
/// åŒ…下线记录输出参数
/// </summary>
public class Mes_Package_UnLine_RecordOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// åŒ…装号
    /// </summary>
    public string PackageCode { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    public string Info5 { get; set; }
    /// <summary>
    /// æ‰¹æ¬¡å·
    /// </summary>
    public string PlanNo { get; set; }
    /// <summary>
    /// è®¢å•号
    /// </summary>
    public string OrderId { get; set; }
    /// <summary>
    /// çº¸ç®±é•¿
    /// </summary>
    public float? Info1 { get; set; }
    /// <summary>
    /// çº¸ç®±å®½
    /// </summary>
    public float? Info2 { get; set; }
    /// <summary>
    /// çº¸ç®±é«˜
    /// </summary>
    public float? Info3 { get; set; }
    /// <summary>
    /// é”€å”®åˆåŒå•号
    /// </summary>
    public string Info4 { get; set; }
    /// <summary>
    /// ç¬¬å‡ åŒ…
    /// </summary>
    public string Info6 { get; set; }
    /// <summary>
    /// ç»é”€åº—名称
    /// </summary>
    public string Info7 { get; set; }
    /// <summary>
    /// äº§å“åç§°
    /// </summary>
    public string Info8 { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    /// </summary>
    public string Info10 { get; set; }
    /// <summary>
    /// è‡ªæor发货
    /// </summary>
    public string Info11 { get; set; }
    /// <summary>
    /// åŒ…装部件总数量
    /// </summary>
    public string Info12 { get; set; }
    /// <summary>
    /// åŒ…装面积
    /// </summary>
    public string Info13 { get; set; }
    /// <summary>
    /// å¤‡æ³¨
    /// </summary>
    public string OpRemark { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// ä¿®æ”¹æ—¶é—´
    /// </summary>
    public DateTime? UpdateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    /// <summary>
    /// ä¿®æ”¹äººId
    /// </summary>
    public long? UpdateUserId { get; set; }
    /// <summary>
    /// ä¿®æ”¹äºº
    /// </summary>
    public string UpdateUserName { get; set; }
    /// <summary>
    /// è½¯åˆ é™¤
    /// </summary>
    public bool IsDelete { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/Mes_Package_UnLine_Record/Mes_Package_UnLine_RecordService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using System.Data;
using System.Web;
using System.Text;
namespace Admin.NET.Application;
/// <summary>
/// åŒ…下线记录服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.ReportCenterGroupName, Order = 100)]
public class Mes_Package_UnLine_RecordService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<Mes_Package_UnLine_Record> _rep;
    public Mes_Package_UnLine_RecordService(SqlSugarRepository<Mes_Package_UnLine_Record> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢åŒ…下线记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("Mes_Package_UnLine_Record/Page")]
    public async Task<SqlSugarPagedList<Mes_Package_UnLine_RecordOutput>> Page(Mes_Package_UnLine_RecordInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…下线记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "List")]
    [Description("Mes_Package_UnLine_Record/List")]
    public async Task<List<Mes_Package_UnLine_RecordOutput>> List([FromQuery] Mes_Package_UnLine_RecordInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<Mes_Package_UnLine_RecordOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ åŒ…ä¸‹çº¿è®°å½•
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("Mes_Package_UnLine_Record/Add")]
    public async Task<long> Add(AddMes_Package_UnLine_RecordInput input)
    {
        var entity = input.Adapt<Mes_Package_UnLine_Record>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤åŒ…下线记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("Mes_Package_UnLine_Record/Delete")]
    public async Task Delete(DeleteMes_Package_UnLine_RecordInput input)
    {
        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _rep.FakeDeleteAsync(entity);   //假删除
        await _rep.DeleteAsync(entity);   //真删除
    }
    /// <summary>
    /// æ›´æ–°åŒ…下线记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Update")]
    [Description("Mes_Package_UnLine_Record/Update")]
    public async Task Update(UpdateMes_Package_UnLine_RecordInput input)
    {
        var entity = input.Adapt<Mes_Package_UnLine_Record>();
        //重复性验证
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
    /// <summary>
    /// èŽ·å–åŒ…ä¸‹çº¿è®°å½•
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "Detail")]
    [Description("Mes_Package_UnLine_Record/Detail")]
    public async Task<Mes_Package_UnLine_Record> Detail([FromQuery] QueryByIdMes_Package_UnLine_RecordInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢åŒ…下线记录条件
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<Mes_Package_UnLine_RecordOutput> CommonPageFilter(Mes_Package_UnLine_RecordInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.PackageCode.Contains(input.SearchKey.Trim())
                || u.Info5.Contains(input.SearchKey.Trim())
                || u.PlanNo.Contains(input.SearchKey.Trim())
                || u.OrderId.Contains(input.SearchKey.Trim())
                || u.Info4.Contains(input.SearchKey.Trim())
                || u.Info6.Contains(input.SearchKey.Trim())
                || u.Info7.Contains(input.SearchKey.Trim())
                || u.Info8.Contains(input.SearchKey.Trim())
                || u.Info10.Contains(input.SearchKey.Trim())
                || u.Info11.Contains(input.SearchKey.Trim())
                || u.Info12.Contains(input.SearchKey.Trim())
                || u.Info13.Contains(input.SearchKey.Trim())
                || u.OpRemark.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
                || u.UpdateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info4), u => u.Info4.Contains(input.Info4.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info6), u => u.Info6.Contains(input.Info6.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info7), u => u.Info7.Contains(input.Info7.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info8), u => u.Info8.Contains(input.Info8.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info10), u => u.Info10.Contains(input.Info10.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info11), u => u.Info11.Contains(input.Info11.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info12), u => u.Info12.Contains(input.Info12.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info13), u => u.Info13.Contains(input.Info13.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OpRemark), u => u.OpRemark.Contains(input.OpRemark.Trim()))
            .Select<Mes_Package_UnLine_RecordOutput>();
        return query;
       }
        /// <summary>
        /// é‡å¤æ€§éªŒè¯
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( Mes_Package_UnLine_Record input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<Mes_Package_UnLine_Record> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/MesPushPaperCut/Dto/MesPushPaperCutInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// çº¸ç®±æœºå¯¹æŽ¥åŸºç¡€è¾“入参数
    /// </summary>
    public class MesPushPaperCutBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public virtual string PackageCode { get; set; }
        /// <summary>
        /// æŽ¨é€çŠ¶æ€
        /// </summary>
        public virtual Admin.NET.Core.Enum.PushStatusEnum PushStatus { get; set; }
        /// <summary>
        /// æŽ¨é€æ—¶é—´
        /// </summary>
        public virtual DateTime? PushTime { get; set; }
        /// <summary>
        /// æŽ¨é€æ¬¡æ•°
        /// </summary>
        public virtual int PushNum { get; set; }
        /// <summary>
        /// æŽ¥å£è¿”回参数
        /// </summary>
        public virtual string ApiMessage { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// ä¿®æ”¹æ—¶é—´
        /// </summary>
        public virtual DateTime? UpdateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
        /// <summary>
        /// ä¿®æ”¹äººId
        /// </summary>
        public virtual long? UpdateUserId { get; set; }
        /// <summary>
        /// ä¿®æ”¹äºº
        /// </summary>
        public virtual string UpdateUserName { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        public virtual bool IsDelete { get; set; }
    }
    /// <summary>
    /// çº¸ç®±æœºå¯¹æŽ¥åˆ†é¡µæŸ¥è¯¢è¾“入参数
    /// </summary>
    public class MesPushPaperCutInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public string? PackageCode { get; set; }
        /// <summary>
        /// æŽ¨é€çŠ¶æ€
        /// </summary>
        public Admin.NET.Core.Enum.PushStatusEnum? PushStatus { get; set; }
        /// <summary>
        /// æŽ¨é€æ—¶é—´
        /// </summary>
        public DateTime? PushTime { get; set; }
        /// <summary>
         /// æŽ¨é€æ—¶é—´èŒƒå›´
         /// </summary>
         public List<DateTime?> PushTimeRange { get; set; }
        /// <summary>
        /// æŽ¨é€æ¬¡æ•°
        /// </summary>
        public int? PushNum { get; set; }
        /// <summary>
        /// æŽ¥å£è¿”回参数
        /// </summary>
        public string? ApiMessage { get; set; }
    }
    /// <summary>
    /// çº¸ç®±æœºå¯¹æŽ¥å¢žåŠ è¾“å…¥å‚æ•°
    /// </summary>
    public class AddMesPushPaperCutInput : MesPushPaperCutBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        [Required(ErrorMessage = "包装号不能为空")]
        public override string PackageCode { get; set; }
        /// <summary>
        /// æŽ¨é€çŠ¶æ€
        /// </summary>
        [Required(ErrorMessage = "推送状态不能为空")]
        public override Admin.NET.Core.Enum.PushStatusEnum PushStatus { get; set; }
        /// <summary>
        /// æŽ¨é€æ¬¡æ•°
        /// </summary>
        [Required(ErrorMessage = "推送次数不能为空")]
        public override int PushNum { get; set; }
        /// <summary>
        /// æŽ¥å£è¿”回参数
        /// </summary>
        [Required(ErrorMessage = "接口返回参数不能为空")]
        public override string ApiMessage { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        [Required(ErrorMessage = "软删除不能为空")]
        public override bool IsDelete { get; set; }
    }
    /// <summary>
    /// çº¸ç®±æœºå¯¹æŽ¥åˆ é™¤è¾“入参数
    /// </summary>
    public class DeleteMesPushPaperCutInput : BaseIdInput
    {
    }
    /// <summary>
    /// çº¸ç®±æœºå¯¹æŽ¥æ›´æ–°è¾“入参数
    /// </summary>
    public class UpdateMesPushPaperCutInput : AddMesPushPaperCutInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// çº¸ç®±æœºå¯¹æŽ¥ä¸»é”®æŸ¥è¯¢è¾“入参数
    /// </summary>
    public class QueryByIdMesPushPaperCutInput : DeleteMesPushPaperCutInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/MesPushPaperCut/Dto/MesPushPaperCutOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
namespace Admin.NET.Application;
/// <summary>
/// çº¸ç®±æœºå¯¹æŽ¥è¾“出参数
/// </summary>
public class MesPushPaperCutOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// åŒ…装号
    /// </summary>
    public string PackageCode { get; set; }
    /// <summary>
    /// æŽ¨é€çŠ¶æ€
    /// </summary>
    public Admin.NET.Core.Enum.PushStatusEnum PushStatus { get; set; }
    /// <summary>
    /// æŽ¨é€æ—¶é—´
    /// </summary>
    public DateTime? PushTime { get; set; }
    /// <summary>
    /// æŽ¨é€æ¬¡æ•°
    /// </summary>
    public int PushNum { get; set; }
    /// <summary>
    /// æŽ¥å£è¿”回参数
    /// </summary>
    public string ApiMessage { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// ä¿®æ”¹æ—¶é—´
    /// </summary>
    public DateTime? UpdateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    /// <summary>
    /// ä¿®æ”¹äººId
    /// </summary>
    public long? UpdateUserId { get; set; }
    /// <summary>
    /// ä¿®æ”¹äºº
    /// </summary>
    public string UpdateUserName { get; set; }
    /// <summary>
    /// è½¯åˆ é™¤
    /// </summary>
    public bool IsDelete { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/MesPushPaperCut/MesPushPaperCutService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,197 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using System.Data;
using System.Web;
using System.Text;
namespace Admin.NET.Application;
/// <summary>
/// çº¸ç®±æœºå¯¹æŽ¥æœåŠ¡
/// </summary>
[ApiDescriptionSettings(ApplicationConst.ThirdInterFaceGroupName, Order = 100)]
public class MesPushPaperCutService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<MesPushPaperCut> _rep;
    public MesPushPaperCutService(SqlSugarRepository<MesPushPaperCut> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢çº¸ç®±æœºå¯¹æŽ¥
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("MesPushPaperCut/Page")]
    public async Task<SqlSugarPagedList<MesPushPaperCutOutput>> Page(MesPushPaperCutInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// ä¸åˆ†é¡µæŸ¥è¯¢çº¸ç®±æœºå¯¹æŽ¥
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "List")]
    [Description("MesPushPaperCut/List")]
    public async Task<List<MesPushPaperCutOutput>> List([FromQuery] MesPushPaperCutInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<MesPushPaperCutOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ çº¸ç®±æœºå¯¹æŽ¥
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("MesPushPaperCut/Add")]
    public async Task<long> Add(AddMesPushPaperCutInput input)
    {
        var entity = input.Adapt<MesPushPaperCut>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤çº¸ç®±æœºå¯¹æŽ¥
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("MesPushPaperCut/Delete")]
    public async Task Delete(DeleteMesPushPaperCutInput input)
    {
        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _rep.FakeDeleteAsync(entity);   //假删除
        await _rep.DeleteAsync(entity);   //真删除
    }
    /// <summary>
    /// æ›´æ–°çº¸ç®±æœºå¯¹æŽ¥
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Update")]
    [Description("MesPushPaperCut/Update")]
    public async Task Update(UpdateMesPushPaperCutInput input)
    {
        var entity = input.Adapt<MesPushPaperCut>();
        //重复性验证
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
    /// <summary>
    /// èŽ·å–çº¸ç®±æœºå¯¹æŽ¥
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "Detail")]
    [Description("MesPushPaperCut/Detail")]
    public async Task<MesPushPaperCut> Detail([FromQuery] QueryByIdMesPushPaperCutInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢çº¸ç®±æœºå¯¹æŽ¥æ¡ä»¶
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<MesPushPaperCutOutput> CommonPageFilter(MesPushPaperCutInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.PackageCode.Contains(input.SearchKey.Trim())
                || u.ApiMessage.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
                || u.UpdateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
            .WhereIF(input.PushStatus.HasValue, u => u.PushStatus == input.PushStatus)
            .WhereIF(input.PushNum>0, u => u.PushNum == input.PushNum)
            .WhereIF(!string.IsNullOrWhiteSpace(input.ApiMessage), u => u.ApiMessage.Contains(input.ApiMessage.Trim()))
            .Select<MesPushPaperCutOutput>();
        if(input.PushTimeRange != null && input.PushTimeRange.Count >0)
        {
            DateTime? start= input.PushTimeRange[0].Value.AddDays(-1);
            query = query.WhereIF(start.HasValue, u => u.PushTime > start);
            if (input.PushTimeRange.Count >1 && input.PushTimeRange[1].HasValue)
            {
                var end = input.PushTimeRange[1].Value.AddDays(1);
                query = query.Where(u => u.PushTime < end);
            }
        }
        return query;
       }
        /// <summary>
        /// é‡å¤æ€§éªŒè¯
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( MesPushPaperCut input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<MesPushPaperCut> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ThirdInterFace/ThirdInterFaceService.cs
@@ -45,15 +45,28 @@
            throw Oops.Oh("本次有重复的UPI!重复号为:" + dit.Key + ",重复条数:" + dit.Value);
        }
        List<string> packageList = new List<string>();
        input.ForEach(x => packageList.Add(x.PackageCode));//upis是传过来的upi字段集合
        //同一个UPI只能属于一个 æ‰¹æ¬¡å·+订单号
        //会存在 ä¸€ä¸ªæ‰¹æ¬¡å·ï¼Œå¤šä¸ªè®¢å•号的情况
        //会存在 ä¸€ä¸ªè®¢å•号,多个批次号的情况
        var batchOrderUPIs = await _rep.AsQueryable().Where(x => packageList.Contains(x.PackageCode)).ToListAsync();//batchOrderUPIs是重复的upi集合
        //按照批次号+订单号删除
        List<string> packageList = new List<string>();
        input.ForEach(x => packageList.Add(x.PlanNo + "_" + x.OrderId));//upis是传过来的upi字段集合
        var batchOrderUPIs = await _rep.AsQueryable().Where(x => packageList.Contains(x.PlanNo + "_" + x.OrderId)).ToListAsync();//batchOrderUPIs是重复的upi集合
        //批量删除
        await _rep.DeleteAsync(batchOrderUPIs);
        //批量删除
        await _mes_Package_Gather_Rep.DeleteAsync(x => packageList.Contains(x.PackageCode));
        await _mes_Package_Gather_Rep.DeleteAsync(x => packageList.Contains(x.PlanNo + "_" + x.OrderId));
        //删除重复的upi数据
        List<string> upis = new List<string>();
        input.ForEach(x => upis.Add(x.UPI));//upis是传过来的upi字段集合
        var queryDateTime = DateTime.Now.AddDays(-7);
        var batchOrderUPIs22 = await _rep.AsQueryable().Where(x => upis.Contains(x.UPI) && x.CreateTime >= queryDateTime).ToListAsync();//batchOrderUPIs是重复的upi集合
        //批量删除
        await _rep.DeleteAsync(batchOrderUPIs22);
        foreach (var item in input)
        {
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Order_Gather/Dto/Mes_Order_GatherInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,256 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// è®¢å•数据基础输入参数
    /// </summary>
    public class Mes_Order_GatherBaseInput
    {
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public virtual string Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public virtual string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public virtual string OrderId { get; set; }
        /// <summary>
        /// æ˜¯å¦é½å¥—
        /// </summary>
        public virtual bool? IsKitting { get; set; }
        /// <summary>
        /// åŒ…æ•°
        /// </summary>
        public virtual int PackageNum { get; set; }
        /// <summary>
        /// å·²ä¸‹çº¿åŒ…æ•°
        /// </summary>
        public virtual int UnLinePackageNum { get; set; }
        /// <summary>
        /// æœªä¸‹çº¿åŒ…æ•°
        /// </summary>
        public virtual int NoUnLinePackageNum { get; set; }
        /// <summary>
        /// æ€»åŒ…装面积
        /// </summary>
        public virtual decimal AllPackageArea { get; set; }
        /// <summary>
        /// å·²æ‰«æåŒ…装面积
        /// </summary>
        public virtual decimal ScanPackageArea { get; set; }
        /// <summary>
        /// æœªæ‰«æåŒ…装面积
        /// </summary>
        public virtual decimal NoScanPackageArea { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// ä¿®æ”¹æ—¶é—´
        /// </summary>
        public virtual DateTime? UpdateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
        /// <summary>
        /// ä¿®æ”¹äººId
        /// </summary>
        public virtual long? UpdateUserId { get; set; }
        /// <summary>
        /// ä¿®æ”¹äºº
        /// </summary>
        public virtual string UpdateUserName { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        public virtual bool IsDelete { get; set; }
    }
    /// <summary>
    /// è®¢å•数据分页查询输入参数
    /// </summary>
    public class Mes_Order_GatherInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public string? Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public string? PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public string? OrderId { get; set; }
        /// <summary>
        /// æ˜¯å¦é½å¥—
        /// </summary>
        public bool? IsKitting { get; set; }
        /// <summary>
        /// åŒ…æ•°
        /// </summary>
        public int? PackageNum { get; set; }
        /// <summary>
        /// å·²ä¸‹çº¿åŒ…æ•°
        /// </summary>
        public int? UnLinePackageNum { get; set; }
        /// <summary>
        /// æœªä¸‹çº¿åŒ…æ•°
        /// </summary>
        public int? NoUnLinePackageNum { get; set; }
        /// <summary>
        /// æ€»åŒ…装面积
        /// </summary>
        public decimal? AllPackageArea { get; set; }
        /// <summary>
        /// å·²æ‰«æåŒ…装面积
        /// </summary>
        public decimal? ScanPackageArea { get; set; }
        /// <summary>
        /// æœªæ‰«æåŒ…装面积
        /// </summary>
        public decimal? NoScanPackageArea { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public DateTime? CreateTime { get; set; }
        /// <summary>
         /// åˆ›å»ºæ—¶é—´èŒƒå›´
         /// </summary>
         public List<DateTime?> CreateTimeRange { get; set; }
    }
    /// <summary>
    /// è®¢å•数据增加输入参数
    /// </summary>
    public class AddMes_Order_GatherInput : Mes_Order_GatherBaseInput
    {
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [Required(ErrorMessage = "批次号不能为空")]
        public override string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        [Required(ErrorMessage = "订单号不能为空")]
        public override string OrderId { get; set; }
        /// <summary>
        /// åŒ…æ•°
        /// </summary>
        [Required(ErrorMessage = "包数不能为空")]
        public override int PackageNum { get; set; }
        /// <summary>
        /// å·²ä¸‹çº¿åŒ…æ•°
        /// </summary>
        [Required(ErrorMessage = "已下线包数不能为空")]
        public override int UnLinePackageNum { get; set; }
        /// <summary>
        /// æœªä¸‹çº¿åŒ…æ•°
        /// </summary>
        [Required(ErrorMessage = "未下线包数不能为空")]
        public override int NoUnLinePackageNum { get; set; }
        /// <summary>
        /// æ€»åŒ…装面积
        /// </summary>
        [Required(ErrorMessage = "总包装面积不能为空")]
        public override decimal AllPackageArea { get; set; }
        /// <summary>
        /// å·²æ‰«æåŒ…装面积
        /// </summary>
        [Required(ErrorMessage = "已扫描包装面积不能为空")]
        public override decimal ScanPackageArea { get; set; }
        /// <summary>
        /// æœªæ‰«æåŒ…装面积
        /// </summary>
        [Required(ErrorMessage = "未扫描包装面积不能为空")]
        public override decimal NoScanPackageArea { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        [Required(ErrorMessage = "软删除不能为空")]
        public override bool IsDelete { get; set; }
    }
    /// <summary>
    /// è®¢å•数据删除输入参数
    /// </summary>
    public class DeleteMes_Order_GatherInput : BaseIdInput
    {
    }
    /// <summary>
    /// è®¢å•数据更新输入参数
    /// </summary>
    public class UpdateMes_Order_GatherInput : AddMes_Order_GatherInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// è®¢å•数据主键查询输入参数
    /// </summary>
    public class QueryByIdMes_Order_GatherInput : DeleteMes_Order_GatherInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Order_Gather/Dto/Mes_Order_GatherOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
namespace Admin.NET.Application;
/// <summary>
/// è®¢å•数据输出参数
/// </summary>
public class Mes_Order_GatherOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    public string Info5 { get; set; }
    /// <summary>
    /// æ‰¹æ¬¡å·
    /// </summary>
    public string PlanNo { get; set; }
    /// <summary>
    /// è®¢å•号
    /// </summary>
    public string OrderId { get; set; }
    /// <summary>
    /// æ˜¯å¦é½å¥—
    /// </summary>
    public bool? IsKitting { get; set; }
    /// <summary>
    /// åŒ…æ•°
    /// </summary>
    public int PackageNum { get; set; }
    /// <summary>
    /// å·²ä¸‹çº¿åŒ…æ•°
    /// </summary>
    public int UnLinePackageNum { get; set; }
    /// <summary>
    /// æœªä¸‹çº¿åŒ…æ•°
    /// </summary>
    public int NoUnLinePackageNum { get; set; }
    /// <summary>
    /// æ€»åŒ…装面积
    /// </summary>
    public decimal AllPackageArea { get; set; }
    /// <summary>
    /// å·²æ‰«æåŒ…装面积
    /// </summary>
    public decimal ScanPackageArea { get; set; }
    /// <summary>
    /// æœªæ‰«æåŒ…装面积
    /// </summary>
    public decimal NoScanPackageArea { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// ä¿®æ”¹æ—¶é—´
    /// </summary>
    public DateTime? UpdateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    /// <summary>
    /// ä¿®æ”¹äººId
    /// </summary>
    public long? UpdateUserId { get; set; }
    /// <summary>
    /// ä¿®æ”¹äºº
    /// </summary>
    public string UpdateUserName { get; set; }
    /// <summary>
    /// è½¯åˆ é™¤
    /// </summary>
    public bool IsDelete { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Order_Gather/Mes_Order_GatherService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,201 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using System.Data;
using System.Web;
using System.Text;
namespace Admin.NET.Application;
/// <summary>
/// è®¢å•数据服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.WmsOrderGroupName, Order = 100)]
public class Mes_Order_GatherService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<Mes_Order_Gather> _rep;
    public Mes_Order_GatherService(SqlSugarRepository<Mes_Order_Gather> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢è®¢å•数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("Mes_Order_Gather/Page")]
    public async Task<SqlSugarPagedList<Mes_Order_GatherOutput>> Page(Mes_Order_GatherInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// ä¸åˆ†é¡µæŸ¥è¯¢è®¢å•数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "List")]
    [Description("Mes_Order_Gather/List")]
    public async Task<List<Mes_Order_GatherOutput>> List([FromQuery] Mes_Order_GatherInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<Mes_Order_GatherOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ è®¢å•æ•°æ®
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("Mes_Order_Gather/Add")]
    public async Task<long> Add(AddMes_Order_GatherInput input)
    {
        var entity = input.Adapt<Mes_Order_Gather>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤è®¢å•数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("Mes_Order_Gather/Delete")]
    public async Task Delete(DeleteMes_Order_GatherInput input)
    {
        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _rep.FakeDeleteAsync(entity);   //假删除
        await _rep.DeleteAsync(entity);   //真删除
    }
    /// <summary>
    /// æ›´æ–°è®¢å•数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Update")]
    [Description("Mes_Order_Gather/Update")]
    public async Task Update(UpdateMes_Order_GatherInput input)
    {
        var entity = input.Adapt<Mes_Order_Gather>();
        //重复性验证
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
    /// <summary>
    /// èŽ·å–è®¢å•æ•°æ®
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "Detail")]
    [Description("Mes_Order_Gather/Detail")]
    public async Task<Mes_Order_Gather> Detail([FromQuery] QueryByIdMes_Order_GatherInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢è®¢å•数据条件
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<Mes_Order_GatherOutput> CommonPageFilter(Mes_Order_GatherInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.Info5.Contains(input.SearchKey.Trim())
                || u.PlanNo.Contains(input.SearchKey.Trim())
                || u.OrderId.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
                || u.UpdateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim()))
            .WhereIF(input.IsKitting.HasValue, u => u.IsKitting == input.IsKitting)
            .WhereIF(input.PackageNum>0, u => u.PackageNum == input.PackageNum)
            .WhereIF(input.UnLinePackageNum>0, u => u.UnLinePackageNum == input.UnLinePackageNum)
            .WhereIF(input.NoUnLinePackageNum>0, u => u.NoUnLinePackageNum == input.NoUnLinePackageNum)
            .Select<Mes_Order_GatherOutput>();
        if(input.CreateTimeRange != null && input.CreateTimeRange.Count >0)
        {
            DateTime? start= input.CreateTimeRange[0].Value;
            query = query.WhereIF(start.HasValue, u => u.CreateTime >= start);
            if (input.CreateTimeRange.Count >1 && input.CreateTimeRange[1].HasValue)
            {
                var end = input.CreateTimeRange[1].Value;
                query = query.Where(u => u.CreateTime <= end);
            }
        }
        return query;
       }
        /// <summary>
        /// é‡å¤æ€§éªŒè¯
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( Mes_Order_Gather input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<Mes_Order_Gather> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_Gather/Dto/Mes_Package_GatherInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,293 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// åŒ…数据基础输入参数
    /// </summary>
    public class Mes_Package_GatherBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public virtual string PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public virtual string Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public virtual string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public virtual string OrderId { get; set; }
        /// <summary>
        /// æ‰€åœ¨åŒºåŸŸ
        /// </summary>
        public virtual Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
        /// <summary>
        /// æ¿æ–™çŠ¶æ€
        /// </summary>
        public virtual Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
        /// <summary>
        /// çº¸ç®±é•¿
        /// </summary>
        public virtual float? Info1 { get; set; }
        /// <summary>
        /// çº¸ç®±å®½
        /// </summary>
        public virtual float? Info2 { get; set; }
        /// <summary>
        /// çº¸ç®±é«˜
        /// </summary>
        public virtual float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        public virtual string Info4 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        public virtual string Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        public virtual string Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public virtual string Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        public virtual string Info10 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        public virtual string Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        public virtual string Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        public virtual string Info13 { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// ä¿®æ”¹æ—¶é—´
        /// </summary>
        public virtual DateTime? UpdateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
        /// <summary>
        /// ä¿®æ”¹äººId
        /// </summary>
        public virtual long? UpdateUserId { get; set; }
        /// <summary>
        /// ä¿®æ”¹äºº
        /// </summary>
        public virtual string UpdateUserName { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        public virtual bool IsDelete { get; set; }
    }
    /// <summary>
    /// åŒ…数据分页查询输入参数
    /// </summary>
    public class Mes_Package_GatherInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public string? PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public string? Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public string? PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public string? OrderId { get; set; }
        /// <summary>
        /// æ‰€åœ¨åŒºåŸŸ
        /// </summary>
        public Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
        /// <summary>
        /// æ¿æ–™çŠ¶æ€
        /// </summary>
        public Admin.NET.Application.UpiStatusEnum? UpiStatus { get; set; }
        /// <summary>
        /// çº¸ç®±é•¿
        /// </summary>
        public float? Info1 { get; set; }
        /// <summary>
        /// çº¸ç®±å®½
        /// </summary>
        public float? Info2 { get; set; }
        /// <summary>
        /// çº¸ç®±é«˜
        /// </summary>
        public float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        public string? Info4 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        public string? Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        public string? Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public string? Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        public string? Info10 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        public string? Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        public string? Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        public string? Info13 { get; set; }
    }
    /// <summary>
    /// åŒ…数据增加输入参数
    /// </summary>
    public class AddMes_Package_GatherInput : Mes_Package_GatherBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        [Required(ErrorMessage = "包装号不能为空")]
        public override string PackageCode { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [Required(ErrorMessage = "批次号不能为空")]
        public override string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        [Required(ErrorMessage = "订单号不能为空")]
        public override string OrderId { get; set; }
        /// <summary>
        /// æ¿æ–™çŠ¶æ€
        /// </summary>
        [Required(ErrorMessage = "板料状态不能为空")]
        public override Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        [Required(ErrorMessage = "软删除不能为空")]
        public override bool IsDelete { get; set; }
    }
    /// <summary>
    /// åŒ…数据删除输入参数
    /// </summary>
    public class DeleteMes_Package_GatherInput : BaseIdInput
    {
    }
    /// <summary>
    /// åŒ…数据更新输入参数
    /// </summary>
    public class UpdateMes_Package_GatherInput : AddMes_Package_GatherInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// åŒ…数据主键查询输入参数
    /// </summary>
    public class QueryByIdMes_Package_GatherInput : DeleteMes_Package_GatherInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_Gather/Dto/Mes_Package_GatherOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
namespace Admin.NET.Application;
/// <summary>
/// åŒ…数据输出参数
/// </summary>
public class Mes_Package_GatherOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// åŒ…装号
    /// </summary>
    public string PackageCode { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    public string Info5 { get; set; }
    /// <summary>
    /// æ‰¹æ¬¡å·
    /// </summary>
    public string PlanNo { get; set; }
    /// <summary>
    /// è®¢å•号
    /// </summary>
    public string OrderId { get; set; }
    /// <summary>
    /// æ‰€åœ¨åŒºåŸŸ
    /// </summary>
    public Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
    /// <summary>
    /// æ¿æ–™çŠ¶æ€
    /// </summary>
    public Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
    /// <summary>
    /// çº¸ç®±é•¿
    /// </summary>
    public float? Info1 { get; set; }
    /// <summary>
    /// çº¸ç®±å®½
    /// </summary>
    public float? Info2 { get; set; }
    /// <summary>
    /// çº¸ç®±é«˜
    /// </summary>
    public float? Info3 { get; set; }
    /// <summary>
    /// é”€å”®åˆåŒå•号
    /// </summary>
    public string Info4 { get; set; }
    /// <summary>
    /// ç¬¬å‡ åŒ…
    /// </summary>
    public string Info6 { get; set; }
    /// <summary>
    /// ç»é”€åº—名称
    /// </summary>
    public string Info7 { get; set; }
    /// <summary>
    /// äº§å“åç§°
    /// </summary>
    public string Info8 { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    /// </summary>
    public string Info10 { get; set; }
    /// <summary>
    /// è‡ªæor发货
    /// </summary>
    public string Info11 { get; set; }
    /// <summary>
    /// åŒ…装部件总数量
    /// </summary>
    public string Info12 { get; set; }
    /// <summary>
    /// åŒ…装面积
    /// </summary>
    public string Info13 { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// ä¿®æ”¹æ—¶é—´
    /// </summary>
    public DateTime? UpdateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    /// <summary>
    /// ä¿®æ”¹äººId
    /// </summary>
    public long? UpdateUserId { get; set; }
    /// <summary>
    /// ä¿®æ”¹äºº
    /// </summary>
    public string UpdateUserName { get; set; }
    /// <summary>
    /// è½¯åˆ é™¤
    /// </summary>
    public bool IsDelete { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_Gather/Mes_Package_GatherService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using System.Data;
using System.Web;
using System.Text;
namespace Admin.NET.Application;
/// <summary>
/// åŒ…数据服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.WmsOrderGroupName, Order = 100)]
public class Mes_Package_GatherService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<Mes_Package_Gather> _rep;
    public Mes_Package_GatherService(SqlSugarRepository<Mes_Package_Gather> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢åŒ…数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("Mes_Package_Gather/Page")]
    public async Task<SqlSugarPagedList<Mes_Package_GatherOutput>> Page(Mes_Package_GatherInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "List")]
    [Description("Mes_Package_Gather/List")]
    public async Task<List<Mes_Package_GatherOutput>> List([FromQuery] Mes_Package_GatherInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<Mes_Package_GatherOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ åŒ…æ•°æ®
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("Mes_Package_Gather/Add")]
    public async Task<long> Add(AddMes_Package_GatherInput input)
    {
        var entity = input.Adapt<Mes_Package_Gather>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤åŒ…数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("Mes_Package_Gather/Delete")]
    public async Task Delete(DeleteMes_Package_GatherInput input)
    {
        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _rep.FakeDeleteAsync(entity);   //假删除
        await _rep.DeleteAsync(entity);   //真删除
    }
    /// <summary>
    /// æ›´æ–°åŒ…数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Update")]
    [Description("Mes_Package_Gather/Update")]
    public async Task Update(UpdateMes_Package_GatherInput input)
    {
        var entity = input.Adapt<Mes_Package_Gather>();
        //重复性验证
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
    /// <summary>
    /// èŽ·å–åŒ…æ•°æ®
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "Detail")]
    [Description("Mes_Package_Gather/Detail")]
    public async Task<Mes_Package_Gather> Detail([FromQuery] QueryByIdMes_Package_GatherInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢åŒ…数据条件
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<Mes_Package_GatherOutput> CommonPageFilter(Mes_Package_GatherInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.PackageCode.Contains(input.SearchKey.Trim())
                || u.Info5.Contains(input.SearchKey.Trim())
                || u.PlanNo.Contains(input.SearchKey.Trim())
                || u.OrderId.Contains(input.SearchKey.Trim())
                || u.Info4.Contains(input.SearchKey.Trim())
                || u.Info6.Contains(input.SearchKey.Trim())
                || u.Info7.Contains(input.SearchKey.Trim())
                || u.Info8.Contains(input.SearchKey.Trim())
                || u.Info10.Contains(input.SearchKey.Trim())
                || u.Info11.Contains(input.SearchKey.Trim())
                || u.Info12.Contains(input.SearchKey.Trim())
                || u.Info13.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
                || u.UpdateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim()))
            .WhereIF(input.AreaCode.HasValue, u => u.AreaCode == input.AreaCode)
            .WhereIF(input.UpiStatus.HasValue, u => u.UpiStatus == input.UpiStatus)
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info4), u => u.Info4.Contains(input.Info4.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info6), u => u.Info6.Contains(input.Info6.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info7), u => u.Info7.Contains(input.Info7.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info8), u => u.Info8.Contains(input.Info8.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info10), u => u.Info10.Contains(input.Info10.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info11), u => u.Info11.Contains(input.Info11.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info12), u => u.Info12.Contains(input.Info12.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info13), u => u.Info13.Contains(input.Info13.Trim()))
            .Select<Mes_Package_GatherOutput>();
        return query;
       }
        /// <summary>
        /// é‡å¤æ€§éªŒè¯
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( Mes_Package_Gather input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<Mes_Package_Gather> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_LineQueue/Dto/Mes_Package_LineQueueInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,293 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// åŒ…队列数据基础输入参数
    /// </summary>
    public class Mes_Package_LineQueueBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public virtual string PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public virtual string Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public virtual string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public virtual string OrderId { get; set; }
        /// <summary>
        /// æ‰€åœ¨åŒºåŸŸ
        /// </summary>
        public virtual Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
        /// <summary>
        /// æ¿æ–™çŠ¶æ€
        /// </summary>
        public virtual Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
        /// <summary>
        /// çº¸ç®±é•¿
        /// </summary>
        public virtual float? Info1 { get; set; }
        /// <summary>
        /// çº¸ç®±å®½
        /// </summary>
        public virtual float? Info2 { get; set; }
        /// <summary>
        /// çº¸ç®±é«˜
        /// </summary>
        public virtual float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        public virtual string Info4 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        public virtual string Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        public virtual string Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public virtual string Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        public virtual string Info10 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        public virtual string Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        public virtual string Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        public virtual string Info13 { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// ä¿®æ”¹æ—¶é—´
        /// </summary>
        public virtual DateTime? UpdateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
        /// <summary>
        /// ä¿®æ”¹äººId
        /// </summary>
        public virtual long? UpdateUserId { get; set; }
        /// <summary>
        /// ä¿®æ”¹äºº
        /// </summary>
        public virtual string UpdateUserName { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        public virtual bool IsDelete { get; set; }
    }
    /// <summary>
    /// åŒ…队列数据分页查询输入参数
    /// </summary>
    public class Mes_Package_LineQueueInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// åŒ…装号
        /// </summary>
        public string? PackageCode { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        public string? Info5 { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public string? PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public string? OrderId { get; set; }
        /// <summary>
        /// æ‰€åœ¨åŒºåŸŸ
        /// </summary>
        public Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
        /// <summary>
        /// æ¿æ–™çŠ¶æ€
        /// </summary>
        public Admin.NET.Application.UpiStatusEnum? UpiStatus { get; set; }
        /// <summary>
        /// çº¸ç®±é•¿
        /// </summary>
        public float? Info1 { get; set; }
        /// <summary>
        /// çº¸ç®±å®½
        /// </summary>
        public float? Info2 { get; set; }
        /// <summary>
        /// çº¸ç®±é«˜
        /// </summary>
        public float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        public string? Info4 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        public string? Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        public string? Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public string? Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        public string? Info10 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        public string? Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        public string? Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        public string? Info13 { get; set; }
    }
    /// <summary>
    /// åŒ…队列数据增加输入参数
    /// </summary>
    public class AddMes_Package_LineQueueInput : Mes_Package_LineQueueBaseInput
    {
        /// <summary>
        /// åŒ…装号
        /// </summary>
        [Required(ErrorMessage = "包装号不能为空")]
        public override string PackageCode { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [Required(ErrorMessage = "批次号不能为空")]
        public override string PlanNo { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        [Required(ErrorMessage = "订单号不能为空")]
        public override string OrderId { get; set; }
        /// <summary>
        /// æ¿æ–™çŠ¶æ€
        /// </summary>
        [Required(ErrorMessage = "板料状态不能为空")]
        public override Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
        /// <summary>
        /// è½¯åˆ é™¤
        /// </summary>
        [Required(ErrorMessage = "软删除不能为空")]
        public override bool IsDelete { get; set; }
    }
    /// <summary>
    /// åŒ…队列数据删除输入参数
    /// </summary>
    public class DeleteMes_Package_LineQueueInput : BaseIdInput
    {
    }
    /// <summary>
    /// åŒ…队列数据更新输入参数
    /// </summary>
    public class UpdateMes_Package_LineQueueInput : AddMes_Package_LineQueueInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// åŒ…队列数据主键查询输入参数
    /// </summary>
    public class QueryByIdMes_Package_LineQueueInput : DeleteMes_Package_LineQueueInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_LineQueue/Dto/Mes_Package_LineQueueOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
namespace Admin.NET.Application;
/// <summary>
/// åŒ…队列数据输出参数
/// </summary>
public class Mes_Package_LineQueueOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// åŒ…装号
    /// </summary>
    public string PackageCode { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    public string Info5 { get; set; }
    /// <summary>
    /// æ‰¹æ¬¡å·
    /// </summary>
    public string PlanNo { get; set; }
    /// <summary>
    /// è®¢å•号
    /// </summary>
    public string OrderId { get; set; }
    /// <summary>
    /// æ‰€åœ¨åŒºåŸŸ
    /// </summary>
    public Admin.NET.Application.AreaCodeEnum? AreaCode { get; set; }
    /// <summary>
    /// æ¿æ–™çŠ¶æ€
    /// </summary>
    public Admin.NET.Application.UpiStatusEnum UpiStatus { get; set; }
    /// <summary>
    /// çº¸ç®±é•¿
    /// </summary>
    public float? Info1 { get; set; }
    /// <summary>
    /// çº¸ç®±å®½
    /// </summary>
    public float? Info2 { get; set; }
    /// <summary>
    /// çº¸ç®±é«˜
    /// </summary>
    public float? Info3 { get; set; }
    /// <summary>
    /// é”€å”®åˆåŒå•号
    /// </summary>
    public string Info4 { get; set; }
    /// <summary>
    /// ç¬¬å‡ åŒ…
    /// </summary>
    public string Info6 { get; set; }
    /// <summary>
    /// ç»é”€åº—名称
    /// </summary>
    public string Info7 { get; set; }
    /// <summary>
    /// äº§å“åç§°
    /// </summary>
    public string Info8 { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    /// </summary>
    public string Info10 { get; set; }
    /// <summary>
    /// è‡ªæor发货
    /// </summary>
    public string Info11 { get; set; }
    /// <summary>
    /// åŒ…装部件总数量
    /// </summary>
    public string Info12 { get; set; }
    /// <summary>
    /// åŒ…装面积
    /// </summary>
    public string Info13 { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// ä¿®æ”¹æ—¶é—´
    /// </summary>
    public DateTime? UpdateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    /// <summary>
    /// ä¿®æ”¹äººId
    /// </summary>
    public long? UpdateUserId { get; set; }
    /// <summary>
    /// ä¿®æ”¹äºº
    /// </summary>
    public string UpdateUserName { get; set; }
    /// <summary>
    /// è½¯åˆ é™¤
    /// </summary>
    public bool IsDelete { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_Package_LineQueue/Mes_Package_LineQueueService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using System.Data;
using System.Web;
using System.Text;
namespace Admin.NET.Application;
/// <summary>
/// åŒ…队列数据服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.WmsOrderGroupName, Order = 100)]
public class Mes_Package_LineQueueService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<Mes_Package_LineQueue> _rep;
    public Mes_Package_LineQueueService(SqlSugarRepository<Mes_Package_LineQueue> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢åŒ…队列数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("Mes_Package_LineQueue/Page")]
    public async Task<SqlSugarPagedList<Mes_Package_LineQueueOutput>> Page(Mes_Package_LineQueueInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// ä¸åˆ†é¡µæŸ¥è¯¢åŒ…队列数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "List")]
    [Description("Mes_Package_LineQueue/List")]
    public async Task<List<Mes_Package_LineQueueOutput>> List([FromQuery] Mes_Package_LineQueueInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<Mes_Package_LineQueueOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ åŒ…é˜Ÿåˆ—æ•°æ®
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("Mes_Package_LineQueue/Add")]
    public async Task<long> Add(AddMes_Package_LineQueueInput input)
    {
        var entity = input.Adapt<Mes_Package_LineQueue>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤åŒ…队列数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("Mes_Package_LineQueue/Delete")]
    public async Task Delete(DeleteMes_Package_LineQueueInput input)
    {
        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _rep.FakeDeleteAsync(entity);   //假删除
        await _rep.DeleteAsync(entity);   //真删除
    }
    /// <summary>
    /// æ›´æ–°åŒ…队列数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Update")]
    [Description("Mes_Package_LineQueue/Update")]
    public async Task Update(UpdateMes_Package_LineQueueInput input)
    {
        var entity = input.Adapt<Mes_Package_LineQueue>();
        //重复性验证
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
    /// <summary>
    /// èŽ·å–åŒ…é˜Ÿåˆ—æ•°æ®
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "Detail")]
    [Description("Mes_Package_LineQueue/Detail")]
    public async Task<Mes_Package_LineQueue> Detail([FromQuery] QueryByIdMes_Package_LineQueueInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢åŒ…队列数据条件
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<Mes_Package_LineQueueOutput> CommonPageFilter(Mes_Package_LineQueueInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.PackageCode.Contains(input.SearchKey.Trim())
                || u.Info5.Contains(input.SearchKey.Trim())
                || u.PlanNo.Contains(input.SearchKey.Trim())
                || u.OrderId.Contains(input.SearchKey.Trim())
                || u.Info4.Contains(input.SearchKey.Trim())
                || u.Info6.Contains(input.SearchKey.Trim())
                || u.Info7.Contains(input.SearchKey.Trim())
                || u.Info8.Contains(input.SearchKey.Trim())
                || u.Info10.Contains(input.SearchKey.Trim())
                || u.Info11.Contains(input.SearchKey.Trim())
                || u.Info12.Contains(input.SearchKey.Trim())
                || u.Info13.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
                || u.UpdateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim()))
            .WhereIF(input.AreaCode.HasValue, u => u.AreaCode == input.AreaCode)
            .WhereIF(input.UpiStatus.HasValue, u => u.UpiStatus == input.UpiStatus)
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info4), u => u.Info4.Contains(input.Info4.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info6), u => u.Info6.Contains(input.Info6.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info7), u => u.Info7.Contains(input.Info7.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info8), u => u.Info8.Contains(input.Info8.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info10), u => u.Info10.Contains(input.Info10.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info11), u => u.Info11.Contains(input.Info11.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info12), u => u.Info12.Contains(input.Info12.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info13), u => u.Info13.Contains(input.Info13.Trim()))
            .Select<Mes_Package_LineQueueOutput>();
        return query;
       }
        /// <summary>
        /// é‡å¤æ€§éªŒè¯
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( Mes_Package_LineQueue input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<Mes_Package_LineQueue> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs
@@ -427,43 +427,3 @@
}
/// <summary>
/// åº“存信息分页查询输入参数
/// </summary>
public class KittingListInput : BasePageInput
{
    /// <summary>
    /// å…³é”®å­—查询
    /// </summary>
    public string? SearchKey { get; set; }
    /// <summary>
    /// æ˜¯å¦é½å¥—
    /// </summary>
    public bool? IsKitting { get; set; }
    /// <summary>
    /// è¿›å…¥æ—¶é—´
    /// </summary>
    public DateTime? InTime { get; set; }
    /// <summary>
    /// è¿›å…¥æ—¶é—´èŒƒå›´
    /// </summary>
    public List<DateTime?> InTimeRange { get; set; }
    /// <summary>
    /// éƒ¨ä»¶æ¡ç 
    /// </summary>
    public string? UPI { get; set; }
    /// <summary>
    /// éƒ¨ä»¶åç§°
    /// </summary>
    public string? DetailName { get; set; }
    /// <summary>
    /// æ‰¹æ¬¡
    /// </summary>
    public string? PlanNo { get; set; }
    public string PackageCode { get; set; }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs
@@ -233,7 +233,49 @@
    /// </summary>
    public string DetailName { get; set; }
    public float Length { get; set; }
    public float Width { get; set; }
    /// <summary>
    /// åŽš
    /// </summary>
    public float Thk { get; set; }
    /// <summary>
    /// é”€å”®åˆåŒå•号
    /// </summary>
    public string? Info4 { get; set; }
    public string? Info5 { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    /// </summary>
    public string? Info10 { get; set; }
    /// <summary>
    /// è‡ªæor发货
    /// </summary>
    public string? Info11 { get; set; }
    /// <summary>
    /// åŒ…装部件总数量
    /// </summary>
    public string? Info12 { get; set; }
    /// <summary>
    /// åŒ…装面积
    /// </summary>
    public string? Info13 { get; set; }
    /// <summary>
    /// éƒ¨ä»¶åç§°
    /// </summary>
    public string? Info14 { get; set; }
    /// <summary>
    /// éƒ¨ä»¶æ•°é‡
    /// </summary>
    public int? Info15 { get; set; }
    public string? Info16 { get; set; }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -5,6 +5,8 @@
using System.Web;
using System.Text;
using System;
using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto;
namespace Admin.NET.Application;
/// <summary>
/// åº“存信息服务
@@ -327,16 +329,17 @@
    ///  [HttpGet]
    [ApiDescriptionSettings(Name = "ShortageList")]
    [Description("WmsStockQuan/ShortageList")]
    public async Task<List<WmsShortageListOutput>> ShortageList(KittingListInput input)
    public async Task<WmsShortageListOutput> ShortageList(KittingListInput input)
    {
        var listRes = await GetShortageListCore(input);
        var resJson = new WmsShortageListOutput();
        if (!string.IsNullOrWhiteSpace(input.UPI))
        {
            listRes = listRes.Where(u => u.UPI == input.UPI).ToList();
            resJson = listRes.FirstOrDefault(u => u.UPI == input.UPI);
            //var filteredResult = listRes.FirstOrDefault(u => u.UPI == input.UPI);
        }
        return listRes;
        return resJson;
    }
    /// <summary>
@@ -447,8 +450,18 @@
                    DetailName = item.DetailName,
                    OrderId = item.OrderId,
                    PlanNo = item.PlanNo,
                    Info5= item.Info5,
                    Info5 = item.Info5,
                    Info4 = item.Info4,
                    Info10 = item.Info10,
                    Info11 = item.Info11,
                    Info12= item.Info12,
                    Info13 = item.Info13,
                    Info14 = item.Info14,
                    Info15 = item.Info15,
                    Info16 = item.Info16,
                    Length = item.Length,
                    Width = item.Width,
                    Thk = item.Thk
                });
            }
        }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs
@@ -6,6 +6,7 @@
using System.Text;
using DocumentFormat.OpenXml.Office.CustomUI;
using Microsoft.CodeAnalysis.Operations;
using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto;
namespace Admin.NET.Application;
/// <summary>
@@ -19,10 +20,13 @@
    private readonly SqlSugarRepository<Mes_Package_Gather> _mesPackageGatherRep;
    private readonly SqlSugarRepository<SysConfig> _sysConfigRep;
    private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _mesBatchOrderUpiRep;
    private readonly SqlSugarRepository<Mes_Order_Gather> _mesOrderGatherRep;
    public WmsOperationTaskService(SqlSugarRepository<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep
        , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep
        , SqlSugarRepository<SysConfig> sysConfigRep
        , SqlSugarRepository<Mes_BatchOrderUPI_New> mesBatchOrderUpiRep
        , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep
        )
    {
        _sysConfigRep = sysConfigRep;
@@ -30,6 +34,7 @@
        _rep = rep;
        _wmsStockQuanRep = wmsStockQuanRep;
        _mesBatchOrderUpiRep = mesBatchOrderUpiRep;
        _mesOrderGatherRep = mesOrderGatherRep;
    }
@@ -114,7 +119,7 @@
        {
            throw Oops.Oh($"没有配置 åˆ¤æ–­é½å¥— å€¼");
        }
        if (!string.IsNullOrEmpty(sysConfig.Value))
        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value != "无")
        {
            throw Oops.Oh($"判断齐套值已经存在值{sysConfig.Value},不允许操作");
        }
@@ -159,5 +164,27 @@
        }
        return singlePackage;
    }
    /// <summary>
    /// æŸ¥è¯¢ä¸é½å¥—单据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "QueryNoKittingList")]
    [Description("WmsOperationTask/QueryNoKittingList")]
    public async Task<List<Mes_Order_Gather>> QueryNoKittingList([FromQuery] KittingListInput input)
    {
        var list = await _mesOrderGatherRep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim()))
            .Where(x=>((DateTime)x.CreateTime).ToString("yyyyMMdd")==DateTime.Now.ToString("yyyyMMdd"))
            .Where(x => x.IsKitting == false)
            .OrderBy(g => g.Id)
            .ToListAsync(); // ç¡®ä¿èŽ·å–ç»“æžœä¸º List
        return list; // ç»“æžœ
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/KittingListInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto;
/// <summary>
/// åº“存信息分页查询输入参数
/// </summary>
public class KittingListInput : BasePageInput
{
    /// <summary>
    /// å…³é”®å­—查询
    /// </summary>
    public string? SearchKey { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    public string? Info5 { get; set; }
    /// <summary>
    /// æ˜¯å¦é½å¥—
    /// </summary>
    public bool? IsKitting { get; set; }
    /// <summary>
    /// è¿›å…¥æ—¶é—´
    /// </summary>
    public DateTime? InTime { get; set; }
    /// <summary>
    /// è¿›å…¥æ—¶é—´èŒƒå›´
    /// </summary>
    public List<DateTime?> InTimeRange { get; set; }
    /// <summary>
    /// éƒ¨ä»¶æ¡ç 
    /// </summary>
    public string? UPI { get; set; }
    /// <summary>
    /// éƒ¨ä»¶åç§°
    /// </summary>
    public string? DetailName { get; set; }
    /// <summary>
    /// æ‰¹æ¬¡
    /// </summary>
    public string? PlanNo { get; set; }
    public string PackageCode { get; set; }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/ValidateQiTaoOutput.cs
@@ -7,7 +7,7 @@
/// <summary>
/// åˆ¤æ–­é½å¥—输出参数
/// </summary>
public class ValidateQiTaoOutput: Mes_Package_Gather
public class ValidateQiTaoOutput
{
    /// <summary>
@@ -15,6 +15,106 @@
    /// </summary>
    public virtual string QiTaoReuslt { get; set; }
    [Required]
    [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
    public string PackageCode { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
    public string? Info5 { get; set; }
    [Required]
    [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "批次号", Length = 50)]
    public string PlanNo { get; set; }
    [Required]
    [SugarColumn(ColumnName = "OrderId", ColumnDescription = "订单号", Length = 50)]
    public string OrderId { get; set; }
    #region wms新增字段 ã€Editby shaocx,2024-11-20】
    /// <summary>
    /// æ‰€åœ¨åŒºåŸŸ
    /// </summary>
    [SugarColumn(ColumnName = "AreaCode", ColumnDescription = "所在区域")]
    public AreaCodeEnum? AreaCode { get; set; } = AreaCodeEnum.无区域;
    /// <summary>
    /// æ¿æ–™çŠ¶æ€
    /// </summary>
    [Required]
    [SugarColumn(ColumnName = "UpiStatus", ColumnDescription = "板料状态")]
    public UpiStatusEnum UpiStatus { get; set; } = UpiStatusEnum.初始;
    #endregion
    [SugarColumn(ColumnName = "Info1", ColumnDescription = "纸箱长", Length = 50)]
    public float? Info1 { get; set; }
    [SugarColumn(ColumnName = "Info2", ColumnDescription = "纸箱宽", Length = 50)]
    public float? Info2 { get; set; }
    [SugarColumn(ColumnName = "Info3", ColumnDescription = "纸箱高", Length = 50)]
    public float? Info3 { get; set; }
    /// <summary>
    /// é”€å”®åˆåŒå•号
    /// </summary>
    [SugarColumn(ColumnName = "Info4", ColumnDescription = "销售合同单号", Length = 60)]
    public string? Info4 { get; set; }
    /// <summary>
    /// ç¬¬å‡ åŒ…
    /// </summary>
    [SugarColumn(ColumnName = "Info6", ColumnDescription = "第几包", Length = 60)]
    public string? Info6 { get; set; }
    /// <summary>
    /// ç»é”€åº—名称
    /// </summary>
    [SugarColumn(ColumnName = "Info7", ColumnDescription = "经销店名称", Length = 60)]
    public string? Info7 { get; set; }
    /// <summary>
    /// äº§å“åç§°
    /// </summary>
    [SugarColumn(ColumnName = "Info8", ColumnDescription = "产品名称", Length = 60)]
    public string? Info8 { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    /// </summary>
    [SugarColumn(ColumnName = "Info10", ColumnDescription = "客户名称", Length = 60)]
    public string? Info10 { get; set; }
    /// <summary>
    /// è‡ªæor发货
    /// </summary>
    [SugarColumn(ColumnName = "Info11", ColumnDescription = "自提or发货", Length = 60)]
    public string? Info11 { get; set; }
    /// <summary>
    /// åŒ…装部件总数量
    /// </summary>
    [SugarColumn(ColumnName = "Info12", ColumnDescription = "包装部件总数量", Length = 60)]
    public string? Info12 { get; set; }
    /// <summary>
    /// åŒ…装面积
    /// </summary>
    [SugarColumn(ColumnName = "Info13", ColumnDescription = "包装面积", Length = 60)]
    public string? Info13 { get; set; }
}