liuying
2024-11-29 824a8449937515bf2ea9eff889e8dab454aa5be0
Merge branch 'master' of http://222.71.245.114:9086/r/LA24030-LuLI_PackageLine
已添加9个文件
已修改12个文件
已删除5个文件
1675 ■■■■ 文件已修改
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/printer基础服务/Express_printer.exe.config 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/public/config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/WmsOrder/mes_Order_Gather.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | 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_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Order_Gather.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_Package_Gather.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | 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/ThirdInterFace/ThirdInterFaceService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | 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/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsRbLineTask/Dto/KittingListInput.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | 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/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_Web/public/config.js
@@ -4,6 +4,6 @@
  "VITE_OPEN_CDN": "false",
  "VITE_PUBLIC_PATH": "",
  "VITE_SM_PUBLIC_KEY": "0484C7466D950E120E5ECE5DD85D0C90EAA85081A3A2BD7C57AE6DC822EFCCBD66620C67B0103FC8DD280E36C3B282977B722AAEC3C56518EDCEBAFB72C5A05312",
  //"VITE_API_URL": "http://localhost:5005"
  "VITE_API_URL": "http://172.17.1.111:5005"  //正式地址
  "VITE_API_URL": "http://localhost:5005"
  //"VITE_API_URL": "http://172.17.1.111:5005"  //正式地址
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/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_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
@@ -51,6 +51,13 @@
        [SugarColumn(ColumnName = "UpiStatus", ColumnDescription = "板料状态")]
        public UpiStatusEnum UpiStatus { get; set; } = UpiStatusEnum.初始;
        /// <summary>
        /// æ˜¯å¦é½åŒ…
        /// </summary>
        [SugarColumn(ColumnName = "IsQiBao", ColumnDescription = "是否齐包")]
        public bool? IsQiBao { get; set; }
        #endregion
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/ThirdInterFace/ThirdInterFaceService.cs
@@ -45,6 +45,10 @@
            throw Oops.Oh("本次有重复的UPI!重复号为:" + dit.Key + ",重复条数:" + dit.Value);
        }
        //同一个UPI只能属于一个 æ‰¹æ¬¡å·+订单号
        //会存在 ä¸€ä¸ªæ‰¹æ¬¡å·ï¼Œå¤šä¸ªè®¢å•号的情况
        //会存在 ä¸€ä¸ªè®¢å•号,多个批次号的情况
        //按照批次号+订单号删除
        List<string> packageList = new List<string>();
        input.ForEach(x => packageList.Add(x.PlanNo + "_" + x.OrderId));//upis是传过来的upi字段集合
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/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/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>
/// åº“存信息服务
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;
    }
@@ -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; }
}