222
schangxiang@126.com
2024-12-09 bc83d59a8004d003f3c9948d6f850d2a146a6b72
222
已添加15个文件
已修改5个文件
2317 ■■■■■ 文件已修改
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiNg.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiReplenish.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan_new.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiNg/component/editDialog.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiNg/index.vue 283 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiReplenish/component/editDialog.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiReplenish/index.vue 283 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Database.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsStockQuan/WmsRecordUpiNg.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsStockQuan/WmsRecordUpiReplenish.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiNg/Dto/WmsRecordUpiNgInput.cs 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiNg/Dto/WmsRecordUpiNgOutput.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiNg/WmsRecordUpiNgService.cs 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiReplenish/Dto/WmsRecordUpiReplenishInput.cs 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiReplenish/Dto/WmsRecordUpiReplenishOutput.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiReplenish/WmsRecordUpiReplenishService.cs 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/Dto/QueryPackageInput.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiNg.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddWmsRecordUpiNg = '/api/wmsRecordUpiNg/add',
  DeleteWmsRecordUpiNg = '/api/wmsRecordUpiNg/delete',
  UpdateWmsRecordUpiNg = '/api/wmsRecordUpiNg/update',
  PageWmsRecordUpiNg = '/api/wmsRecordUpiNg/page',
  ListWmsRecordUpiNg = '/api/wmsRecordUpiNg/list',
  DetailWmsRecordUpiNg = '/api/wmsRecordUpiNg/detail',
  ImportExcelWmsRecordUpiNg = '/api/wmsRecordUpiNg/importExcel',
  DownloadExcelTemplateWmsRecordUpiNg = '/api/wmsRecordUpiNg/downloadExcelTemplate',
}
// å¢žåŠ æ¿ä»¶NG记录
export const addWmsRecordUpiNg = (params?: any) =>
    request({
        url: Api.AddWmsRecordUpiNg,
        method: 'post',
        data: params
    });
// åˆ é™¤æ¿ä»¶NG记录
export const deleteWmsRecordUpiNg = (params?: any) =>
    request({
            url: Api.DeleteWmsRecordUpiNg,
            method: 'post',
            data: params
        });
// ç¼–辑板件NG记录
export const updateWmsRecordUpiNg = (params?: any) =>
    request({
            url: Api.UpdateWmsRecordUpiNg,
            method: 'post',
            data: params
        });
// å¯¼å…¥æ¿ä»¶NG记录
export const importExcelWmsRecordUpiNg = (params?: any) =>
    request({
        url: Api.ImportExcelWmsRecordUpiNg,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥æ¿ä»¶NG记录模板
export const downloadExcelTemplateWmsRecordUpiNg = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateWmsRecordUpiNg,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢æ¿ä»¶NG记录
export const pageWmsRecordUpiNg = (params?: any) =>
    request({
            url: Api.PageWmsRecordUpiNg,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢æ¿ä»¶NG记录
export const listWmsRecordUpiNg = (params?: any) =>
    request({
            url: Api.ListWmsRecordUpiNg,
            method: 'get',
            data: params
        });
// è¯¦æƒ…板件NG记录
export const detailWmsRecordUpiNg = (id: any) =>
    request({
            url: Api.DetailWmsRecordUpiNg,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsRecordUpiReplenish.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
enum Api {
  AddWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/add',
  DeleteWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/delete',
  UpdateWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/update',
  PageWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/page',
  ListWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/list',
  DetailWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/detail',
  ImportExcelWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/importExcel',
  DownloadExcelTemplateWmsRecordUpiReplenish = '/api/wmsRecordUpiReplenish/downloadExcelTemplate',
}
// å¢žåŠ æ¿ä»¶è¡¥æ–™è®°å½•
export const addWmsRecordUpiReplenish = (params?: any) =>
    request({
        url: Api.AddWmsRecordUpiReplenish,
        method: 'post',
        data: params
    });
// åˆ é™¤æ¿ä»¶è¡¥æ–™è®°å½•
export const deleteWmsRecordUpiReplenish = (params?: any) =>
    request({
            url: Api.DeleteWmsRecordUpiReplenish,
            method: 'post',
            data: params
        });
// ç¼–辑板件补料记录
export const updateWmsRecordUpiReplenish = (params?: any) =>
    request({
            url: Api.UpdateWmsRecordUpiReplenish,
            method: 'post',
            data: params
        });
// å¯¼å…¥æ¿ä»¶è¡¥æ–™è®°å½•
export const importExcelWmsRecordUpiReplenish = (params?: any) =>
    request({
        url: Api.ImportExcelWmsRecordUpiReplenish,
        method: 'post',
        data: params
    });
// ä¸‹è½½å¯¼å…¥æ¿ä»¶è¡¥æ–™è®°å½•模板
export const downloadExcelTemplateWmsRecordUpiReplenish = (params?: any) =>
    request({
            url: Api.DownloadExcelTemplateWmsRecordUpiReplenish,
            method: 'get',
            data: params,
            responseType: 'blob'
        });
// åˆ†é¡µæŸ¥è¯¢æ¿ä»¶è¡¥æ–™è®°å½•
export const pageWmsRecordUpiReplenish = (params?: any) =>
    request({
            url: Api.PageWmsRecordUpiReplenish,
            method: 'post',
            data: params
        });
// ä¸åˆ†é¡µæŸ¥è¯¢æ¿ä»¶è¡¥æ–™è®°å½•
export const listWmsRecordUpiReplenish = (params?: any) =>
    request({
            url: Api.ListWmsRecordUpiReplenish,
            method: 'get',
            data: params
        });
// è¯¦æƒ…板件补料记录
export const detailWmsRecordUpiReplenish = (id: any) =>
    request({
            url: Api.DetailWmsRecordUpiReplenish,
            method: 'get',
            data: { id }
        });
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan_new.ts
@@ -18,6 +18,7 @@
  PageStockQuanForXjd= '/api/v_wms_stock_quan_group/Page',
  PageWmsLocationViewDetail = '/api/WmsPlaceContainerInfo/Detail',
  ValdateQiTao = '/api/WmsOperationTask/ValdateQiTao',
  QueryPackage = '/api/WmsCommonnQuery/QueryPackage',
  ValdateLabel = '/api/WmsOperationTask/ValdateLabel',
  ConfirmNg = '/api/WmsOperationTask/UnlineForNGPackage',
@@ -166,6 +167,13 @@
            data: params
        });
    export const QueryPackage = (params?: any) =>
    request({
            url: Api.QueryPackage,
            method: 'post',
            data: params
        });
        
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiNg/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,193 @@
<template>
    <div class="wmsRecordUpiNg-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="upi">
                            <el-input v-model="ruleForm.upi" 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="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="detailName">
                            <el-input v-model="ruleForm.detailName" 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="info18">
                            <el-input v-model="ruleForm.info18" 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="operRemark">
                            <el-input v-model="ruleForm.operRemark" placeholder="请输入备注" maxlength="100" 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 { addWmsRecordUpiNg, updateWmsRecordUpiNg, detailWmsRecordUpiNg } from "/@/api/main/ReportCenter/wmsRecordUpiNg";
    //父级传递来的参数
    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>({
        upi: [{required: true, message: '请输入部件条码!', trigger: 'blur',},],
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        detailName: [{required: true, message: '请输入部件名称!', trigger: 'blur',},],
    });
    /*
     * æ‰“开弹窗
     * @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 detailWmsRecordUpiNg(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 addWmsRecordUpiNg(values);
                } else {
                    title='编辑';
                    ret = await updateWmsRecordUpiNg(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/wmsRecordUpiNg/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,283 @@
<template>
  <div class="wmsRecordUpiNg-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsWmsRecordUpiNg" 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="queryParamsWmsRecordUpiNg.searchKey" clearable="" placeholder="部件条码,包装号,生产单号,批次号,订单号,部件名称,材料,备注,创建人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="部件条码">
              <el-input v-model="queryParamsWmsRecordUpiNg.upi" clearable="" placeholder="请输入部件条码"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsWmsRecordUpiNg.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsWmsRecordUpiNg.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsWmsRecordUpiNg.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsWmsRecordUpiNg.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="部件名称">
              <el-input v-model="queryParamsWmsRecordUpiNg.detailName" clearable="" placeholder="请输入部件名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="材料">
              <el-input v-model="queryParamsWmsRecordUpiNg.info18" clearable="" placeholder="请输入材料"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="备注">
              <el-input v-model="queryParamsWmsRecordUpiNg.operRemark" clearable="" placeholder="请输入备注"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiNg">
            <el-form-item label="创建时间">
              <el-date-picker placeholder="请选择创建时间" value-format="YYYY/MM/DD  HH:mm:ss" type="datetimerange" :default-time="defaultTimeRange" v-model="queryParamsWmsRecordUpiNg.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="handleQueryWmsRecordUpiNg" v-auth="'wmsRecordUpiNg:page'" :disabled="disabled_btnWmsRecordUpiNg"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetWmsRecordUpiNg"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsRecordUpiNg" v-if="!showAdvanceQueryUIWmsRecordUpiNg" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsRecordUpiNg" v-if="showAdvanceQueryUIWmsRecordUpiNg" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsRecordUpiNg" v-auth="'wmsRecordUpiNg:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsRecordUpiNg"  v-auth="'wmsRecordUpiNg: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="tableRefWmsRecordUpiNg"
                :data="tableDataWmsRecordUpiNg"
                style="width: 100%"
                v-loading="loadingWmsRecordUpiNg"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeWmsRecordUpiNg"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="upi" label="部件条码"  show-overflow-tooltip="" />
        <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="detailName" label="部件名称"  show-overflow-tooltip="" />
        <el-table-column prop="info18" label="材料"  show-overflow-tooltip="" />
        <el-table-column prop="operRemark" label="备注"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsRecordUpiNg:update') || auth('wmsRecordUpiNg:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsRecordUpiNg(scope.row)" v-auth="'wmsRecordUpiNg:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsRecordUpiNg(scope.row)" v-auth="'wmsRecordUpiNg:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsWmsRecordUpiNg.page"
                v-model:page-size="tableParamsWmsRecordUpiNg.pageSize"
                :total="tableParamsWmsRecordUpiNg.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeWmsRecordUpiNg"
                @current-change="handleCurrentChangeWmsRecordUpiNg"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogWmsRecordUpiNg
        ref="printDialogRefWmsRecordUpiNg"
        :title="printWmsRecordUpiNgTitle"
        @reloadTable="handleQueryWmsRecordUpiNg" />
      <editDialogWmsRecordUpiNg
        ref="editDialogRefWmsRecordUpiNg"
        :title="editWmsRecordUpiNgTitle"
        @reloadTable="handleQueryWmsRecordUpiNg"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="wmsRecordUpiNg">
  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 printDialogWmsRecordUpiNg from '/@/views/system/print/component/hiprint/preview.vue'
  import { pageWmsRecordUpiNg, deleteWmsRecordUpiNg,importExcelWmsRecordUpiNg,downloadExcelTemplateWmsRecordUpiNg } from '/@/api/main/ReportCenter/wmsRecordUpiNg';
  /***************************************************[板件NG记录操作]开始***************************************************/
  const showAdvanceQueryUIWmsRecordUpiNg = ref(false);
  const tableRefWmsRecordUpiNg = ref(null);
  const printDialogRefWmsRecordUpiNg = ref();
  const editDialogRefWmsRecordUpiNg = ref();
  const loadingWmsRecordUpiNg = ref(false);
  const disabled_btnWmsRecordUpiNg = ref(false);
  const tableDataWmsRecordUpiNg = ref<any>([]);
  const queryParamsWmsRecordUpiNg = ref<any>({});
  const tableParamsWmsRecordUpiNg = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printWmsRecordUpiNgTitle = ref("");
  const editWmsRecordUpiNgTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIWmsRecordUpiNg = () => {
    showAdvanceQueryUIWmsRecordUpiNg.value = !showAdvanceQueryUIWmsRecordUpiNg.value;
  }
  // æŸ¥è¯¢æ¿ä»¶NG记录
  const handleQueryWmsRecordUpiNg = async () => {
    loadingWmsRecordUpiNg.value = true;
    disabled_btnWmsRecordUpiNg.value = true;
    var res = await pageWmsRecordUpiNg(Object.assign(queryParamsWmsRecordUpiNg.value, tableParamsWmsRecordUpiNg.value));
    if(res.data.type=="success"){
      tableDataWmsRecordUpiNg.value = res.data.result?.items ?? [];
      tableParamsWmsRecordUpiNg.value.total = res.data.result?.total;
    }
    loadingWmsRecordUpiNg.value = false;
    disabled_btnWmsRecordUpiNg.value = false;
  };
  // é‡ç½®æ¿ä»¶NG记录查询
  const resetWmsRecordUpiNg = async () => {
    queryParamsWmsRecordUpiNg.value = {}
  };
  // æ¿ä»¶NG记录列排序
  const sortChangeWmsRecordUpiNg = async (column: any) => {
    queryParamsWmsRecordUpiNg.value.field = column.prop;
    queryParamsWmsRecordUpiNg.value.order = column.order;
    await handleQueryWmsRecordUpiNg();
  };
  // æ‰“开新增板件NG记录页面
  const openAddWmsRecordUpiNg = () => {
    editWmsRecordUpiNgTitle.value = '添加板件NG记录';
    editDialogRefWmsRecordUpiNg.value.openDialog(1,{});
  };
  // æ‰“开打印板件NG记录页面
  const openPrintWmsRecordUpiNg = async (row: any) => {
    printWmsRecordUpiNgTitle.value = '打印板件NG记录';
  }
  // æ‰“开编辑板件NG记录页面
  const openEditWmsRecordUpiNg = (row: any) => {
    editWmsRecordUpiNgTitle.value = '编辑板件NG记录';
    editDialogRefWmsRecordUpiNg.value.openDialog(2,row);
  };
  // åˆ é™¤æ¿ä»¶NG记录
  const delWmsRecordUpiNg = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingWmsRecordUpiNg.value = true;
    var ret = await deleteWmsRecordUpiNg(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingWmsRecordUpiNg.value = false;
    handleQueryWmsRecordUpiNg();
  })
  .catch(() => {});
  };
  // æ”¹å˜æ¿ä»¶NG记录页面容量
  const handleSizeChangeWmsRecordUpiNg = (val: number) => {
    tableParamsWmsRecordUpiNg.value.pageSize = val;
    handleQueryWmsRecordUpiNg();
  };
  // æ”¹å˜æ¿ä»¶NG记录页码序号
  const handleCurrentChangeWmsRecordUpiNg = (val: number) => {
    tableParamsWmsRecordUpiNg.value.page = val;
    handleQueryWmsRecordUpiNg();
  };
/***************************************************[板件NG记录操作]结束***************************************************/
/***************************************************[板件NG记录导出]开始***************************************************/
//定义当前页面的方法组
const functionMapWmsRecordUpiNg = {
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelWmsRecordUpiNg = async (formData:Blob) => {
    loadingWmsRecordUpiNg.value = true;
    disabled_btnWmsRecordUpiNg.value = true;
    var new_tableParamsWmsRecordUpiNg=JSON.parse(JSON.stringify(tableParamsWmsRecordUpiNg.value));
    new_tableParamsWmsRecordUpiNg.page = 1;
    new_tableParamsWmsRecordUpiNg.pageSize = 100000;
    var res = await pageWmsRecordUpiNg(Object.assign(queryParamsWmsRecordUpiNg.value, new_tableParamsWmsRecordUpiNg));
    if(res.data.type=="success"){
      exportExcelWmsRecordUpiNg(res.data.result?.items ?? []);
    }
    loadingWmsRecordUpiNg.value = false;
    disabled_btnWmsRecordUpiNg.value = false;
};
//导出
const exportExcelWmsRecordUpiNg  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefWmsRecordUpiNg,"板件NG记录",functionMapWmsRecordUpiNg);
};
/***************************************************[板件NG记录导出]结束***************************************************/
  // æ¿ä»¶NG记录页面加载时
  onMounted(async () => {
  });
  handleQueryWmsRecordUpiNg();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/wmsRecordUpiReplenish/component/editDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,193 @@
<template>
    <div class="wmsRecordUpiReplenish-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="upi">
                            <el-input v-model="ruleForm.upi" 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="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="detailName">
                            <el-input v-model="ruleForm.detailName" 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="info18">
                            <el-input v-model="ruleForm.info18" 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="operRemark">
                            <el-input v-model="ruleForm.operRemark" placeholder="请输入备注" maxlength="100" 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 { addWmsRecordUpiReplenish, updateWmsRecordUpiReplenish, detailWmsRecordUpiReplenish } from "/@/api/main/ReportCenter/wmsRecordUpiReplenish";
    //父级传递来的参数
    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>({
        upi: [{required: true, message: '请输入部件条码!', trigger: 'blur',},],
        packageCode: [{required: true, message: '请输入包装号!', trigger: 'blur',},],
        planNo: [{required: true, message: '请输入批次号!', trigger: 'blur',},],
        orderId: [{required: true, message: '请输入订单号!', trigger: 'blur',},],
        detailName: [{required: true, message: '请输入部件名称!', trigger: 'blur',},],
    });
    /*
     * æ‰“开弹窗
     * @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 detailWmsRecordUpiReplenish(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 addWmsRecordUpiReplenish(values);
                } else {
                    title='编辑';
                    ret = await updateWmsRecordUpiReplenish(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/wmsRecordUpiReplenish/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,283 @@
<template>
  <div class="wmsRecordUpiReplenish-container">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="queryParamsWmsRecordUpiReplenish" 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="queryParamsWmsRecordUpiReplenish.searchKey" clearable="" placeholder="部件条码,包装号,生产单号,批次号,订单号,部件名称,材料,备注,创建人"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="部件条码">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.upi" clearable="" placeholder="请输入部件条码"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="包装号">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.packageCode" clearable="" placeholder="请输入包装号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="生产单号">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.info5" clearable="" placeholder="请输入生产单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="批次号">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.planNo" clearable="" placeholder="请输入批次号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="订单号">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.orderId" clearable="" placeholder="请输入订单号"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="部件名称">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.detailName" clearable="" placeholder="请输入部件名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="材料">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.info18" clearable="" placeholder="请输入材料"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="备注">
              <el-input v-model="queryParamsWmsRecordUpiReplenish.operRemark" clearable="" placeholder="请输入备注"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsRecordUpiReplenish">
            <el-form-item label="创建时间">
              <el-date-picker placeholder="请选择创建时间" value-format="YYYY/MM/DD  HH:mm:ss" type="datetimerange" :default-time="defaultTimeRange" v-model="queryParamsWmsRecordUpiReplenish.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="handleQueryWmsRecordUpiReplenish" v-auth="'wmsRecordUpiReplenish:page'" :disabled="disabled_btnWmsRecordUpiReplenish"> æŸ¥è¯¢ </el-button>
                      <el-button icon="ele-Refresh" @click="resetWmsRecordUpiReplenish"> é‡ç½® </el-button>
                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsRecordUpiReplenish" v-if="!showAdvanceQueryUIWmsRecordUpiReplenish" style="margin-left:5px;"> é«˜çº§æŸ¥è¯¢ </el-button>
                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsRecordUpiReplenish" v-if="showAdvanceQueryUIWmsRecordUpiReplenish" style="margin-left:5px;"> éšè— </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsRecordUpiReplenish" v-auth="'wmsRecordUpiReplenish:add'"> æ–°å¢ž </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsRecordUpiReplenish"  v-auth="'wmsRecordUpiReplenish: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="tableRefWmsRecordUpiReplenish"
                :data="tableDataWmsRecordUpiReplenish"
                style="width: 100%"
                v-loading="loadingWmsRecordUpiReplenish"
                tooltip-effect="light"
                                row-key="id"
                @sort-change="sortChangeWmsRecordUpiReplenish"
                border="">
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop="upi" label="部件条码"  show-overflow-tooltip="" />
        <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="detailName" label="部件名称"  show-overflow-tooltip="" />
        <el-table-column prop="info18" label="材料"  show-overflow-tooltip="" />
        <el-table-column prop="operRemark" label="备注"  show-overflow-tooltip="" />
         <el-table-column prop="createTime" label="创建时间" width="130" :formatter="formatDate_T_Time"  show-overflow-tooltip="" />
        <el-table-column prop="createUserName" label="创建人"  show-overflow-tooltip="" />
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsRecordUpiReplenish:update') || auth('wmsRecordUpiReplenish:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsRecordUpiReplenish(scope.row)" v-auth="'wmsRecordUpiReplenish:update'"> ç¼–辑 </el-button>
            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsRecordUpiReplenish(scope.row)" v-auth="'wmsRecordUpiReplenish:delete'"> åˆ é™¤ </el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
                v-model:currentPage="tableParamsWmsRecordUpiReplenish.page"
                v-model:page-size="tableParamsWmsRecordUpiReplenish.pageSize"
                :total="tableParamsWmsRecordUpiReplenish.total"
                :page-sizes="[10, 20, 50, 100, 200, 500]"
                small=""
                background=""
                @size-change="handleSizeChangeWmsRecordUpiReplenish"
                @current-change="handleCurrentChangeWmsRecordUpiReplenish"
                layout="total, sizes, prev, pager, next, jumper"
    />
      <printDialogWmsRecordUpiReplenish
        ref="printDialogRefWmsRecordUpiReplenish"
        :title="printWmsRecordUpiReplenishTitle"
        @reloadTable="handleQueryWmsRecordUpiReplenish" />
      <editDialogWmsRecordUpiReplenish
        ref="editDialogRefWmsRecordUpiReplenish"
        :title="editWmsRecordUpiReplenishTitle"
        @reloadTable="handleQueryWmsRecordUpiReplenish"
      />
    </el-card>
  </div>
</template>
<script lang="ts" setup="" name="wmsRecordUpiReplenish">
  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 printDialogWmsRecordUpiReplenish from '/@/views/system/print/component/hiprint/preview.vue'
  import { pageWmsRecordUpiReplenish, deleteWmsRecordUpiReplenish,importExcelWmsRecordUpiReplenish,downloadExcelTemplateWmsRecordUpiReplenish } from '/@/api/main/ReportCenter/wmsRecordUpiReplenish';
  /***************************************************[板件补料记录操作]开始***************************************************/
  const showAdvanceQueryUIWmsRecordUpiReplenish = ref(false);
  const tableRefWmsRecordUpiReplenish = ref(null);
  const printDialogRefWmsRecordUpiReplenish = ref();
  const editDialogRefWmsRecordUpiReplenish = ref();
  const loadingWmsRecordUpiReplenish = ref(false);
  const disabled_btnWmsRecordUpiReplenish = ref(false);
  const tableDataWmsRecordUpiReplenish = ref<any>([]);
  const queryParamsWmsRecordUpiReplenish = ref<any>({});
  const tableParamsWmsRecordUpiReplenish = ref({
    page: 1,
    pageSize: 10,
    total: 0,
  });
  const printWmsRecordUpiReplenishTitle = ref("");
  const editWmsRecordUpiReplenishTitle = ref("");
  // æ”¹å˜é«˜çº§æŸ¥è¯¢çš„æŽ§ä»¶æ˜¾ç¤ºçŠ¶æ€
  const changeAdvanceQueryUIWmsRecordUpiReplenish = () => {
    showAdvanceQueryUIWmsRecordUpiReplenish.value = !showAdvanceQueryUIWmsRecordUpiReplenish.value;
  }
  // æŸ¥è¯¢æ¿ä»¶è¡¥æ–™è®°å½•
  const handleQueryWmsRecordUpiReplenish = async () => {
    loadingWmsRecordUpiReplenish.value = true;
    disabled_btnWmsRecordUpiReplenish.value = true;
    var res = await pageWmsRecordUpiReplenish(Object.assign(queryParamsWmsRecordUpiReplenish.value, tableParamsWmsRecordUpiReplenish.value));
    if(res.data.type=="success"){
      tableDataWmsRecordUpiReplenish.value = res.data.result?.items ?? [];
      tableParamsWmsRecordUpiReplenish.value.total = res.data.result?.total;
    }
    loadingWmsRecordUpiReplenish.value = false;
    disabled_btnWmsRecordUpiReplenish.value = false;
  };
  // é‡ç½®æ¿ä»¶è¡¥æ–™è®°å½•查询
  const resetWmsRecordUpiReplenish = async () => {
    queryParamsWmsRecordUpiReplenish.value = {}
  };
  // æ¿ä»¶è¡¥æ–™è®°å½•列排序
  const sortChangeWmsRecordUpiReplenish = async (column: any) => {
    queryParamsWmsRecordUpiReplenish.value.field = column.prop;
    queryParamsWmsRecordUpiReplenish.value.order = column.order;
    await handleQueryWmsRecordUpiReplenish();
  };
  // æ‰“开新增板件补料记录页面
  const openAddWmsRecordUpiReplenish = () => {
    editWmsRecordUpiReplenishTitle.value = '添加板件补料记录';
    editDialogRefWmsRecordUpiReplenish.value.openDialog(1,{});
  };
  // æ‰“开打印板件补料记录页面
  const openPrintWmsRecordUpiReplenish = async (row: any) => {
    printWmsRecordUpiReplenishTitle.value = '打印板件补料记录';
  }
  // æ‰“开编辑板件补料记录页面
  const openEditWmsRecordUpiReplenish = (row: any) => {
    editWmsRecordUpiReplenishTitle.value = '编辑板件补料记录';
    editDialogRefWmsRecordUpiReplenish.value.openDialog(2,row);
  };
  // åˆ é™¤æ¿ä»¶è¡¥æ–™è®°å½•
  const delWmsRecordUpiReplenish = (row: any) => {
    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
  .then(async () => {
    loadingWmsRecordUpiReplenish.value = true;
    var ret = await deleteWmsRecordUpiReplenish(row);
    if(ret.data.type=="success"){
        ElMessage.success("删除成功");
    }
    loadingWmsRecordUpiReplenish.value = false;
    handleQueryWmsRecordUpiReplenish();
  })
  .catch(() => {});
  };
  // æ”¹å˜æ¿ä»¶è¡¥æ–™è®°å½•页面容量
  const handleSizeChangeWmsRecordUpiReplenish = (val: number) => {
    tableParamsWmsRecordUpiReplenish.value.pageSize = val;
    handleQueryWmsRecordUpiReplenish();
  };
  // æ”¹å˜æ¿ä»¶è¡¥æ–™è®°å½•页码序号
  const handleCurrentChangeWmsRecordUpiReplenish = (val: number) => {
    tableParamsWmsRecordUpiReplenish.value.page = val;
    handleQueryWmsRecordUpiReplenish();
  };
/***************************************************[板件补料记录操作]结束***************************************************/
/***************************************************[板件补料记录导出]开始***************************************************/
//定义当前页面的方法组
const functionMapWmsRecordUpiReplenish = {
      formatDate_T_Date,
      formatDate_T_Time
};
//点击导出按钮
const handleExportExcelWmsRecordUpiReplenish = async (formData:Blob) => {
    loadingWmsRecordUpiReplenish.value = true;
    disabled_btnWmsRecordUpiReplenish.value = true;
    var new_tableParamsWmsRecordUpiReplenish=JSON.parse(JSON.stringify(tableParamsWmsRecordUpiReplenish.value));
    new_tableParamsWmsRecordUpiReplenish.page = 1;
    new_tableParamsWmsRecordUpiReplenish.pageSize = 100000;
    var res = await pageWmsRecordUpiReplenish(Object.assign(queryParamsWmsRecordUpiReplenish.value, new_tableParamsWmsRecordUpiReplenish));
    if(res.data.type=="success"){
      exportExcelWmsRecordUpiReplenish(res.data.result?.items ?? []);
    }
    loadingWmsRecordUpiReplenish.value = false;
    disabled_btnWmsRecordUpiReplenish.value = false;
};
//导出
const exportExcelWmsRecordUpiReplenish  = async (exportDataList:Array) => {
  exportPageExcel(exportDataList, tableRefWmsRecordUpiReplenish,"板件补料记录",functionMapWmsRecordUpiReplenish);
};
/***************************************************[板件补料记录导出]结束***************************************************/
  // æ¿ä»¶è¡¥æ–™è®°å½•页面加载时
  onMounted(async () => {
  });
  handleQueryWmsRecordUpiReplenish();
</script>
<style scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
    width: 100%;
}
</style>
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/index.vue
@@ -148,7 +148,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, ValdateQiTao ,ConfirmNgF} from '/@/api/main/ReportCenter/wmsStockQuan_new';
import { ShortageList, QueryPackage ,ConfirmNgF} from '/@/api/main/ReportCenter/wmsStockQuan_new';
const showAdvanceQueryUI = ref(false);
const printDialogRef = ref();
const editDialogRef = ref();
@@ -219,7 +219,7 @@
    }
    console.log('查询');
    loading.value = true;
    var res = await ValdateQiTao(Object.assign(queryParams.value, tableParams.value));
    var res = await QueryPackage(Object.assign(queryParams.value, tableParams.value));
    queryParams.value.packageCode = '';
    handleResponse(res);
@@ -260,11 +260,12 @@
            ...tableData.value,
        })
        .then((res) => {
          if (res.code == 200) {
          //debugger
          if (res.data.code == 200) {
            ElMessage.success("标记成功");
            tableData.value ={}
          } else {
            ElMessage.error(`失败${res.code}:${JSON.stringify(res.message)}`);
            ElMessage.error(`失败${res.data.code}:${JSON.stringify(res.data.message)}`);
          }
        });
    })
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Database.json
@@ -26,7 +26,7 @@
          "EnableUnderLine": false // å¯ç”¨é©¼å³°è½¬ä¸‹åˆ’线
        },
        "TableSettings": {
          "EnableInitTable": true, // å¯ç”¨è¡¨åˆå§‹åŒ–
          "EnableInitTable": false, // å¯ç”¨è¡¨åˆå§‹åŒ–
          "EnableIncreTable": false // å¯ç”¨è¡¨å¢žé‡æ›´æ–°-特性[IncreTable]
        },
        "SeedSettings": {
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsStockQuan/WmsRecordUpiNg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
using Admin.NET.Core;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/5/29上午10:26:39
 * @desc : è°ƒåº¦ä»»åŠ¡
 */
namespace Admin.NET.Application.Entity
{
    /// <summary>
    /// æ¿ä»¶NG记录
    /// </summary>
    [SugarTable("wms_record_upi_ng", "板件NG记录")]
    public class WmsRecordUpiNg : EntityBaseForRecord
    {
        [Required]
        [SugarColumn(ColumnName = "Upi", ColumnDescription = "部件条码", Length = 50)]
        public string Upi { 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; }
        [Required]
        [SugarColumn(ColumnName = "DetailName", ColumnDescription = "部件名称", Length = 50)]
        public string DetailName { get; set; }
        /// <summary>
        /// ææ–™
        /// </summary>
        [SugarColumn(ColumnName = "Info18", ColumnDescription = "材料", Length = 60)]
        public string? Info18 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [SugarColumn(ColumnName = "OperRemark", ColumnDescription = "备注", Length = 100)]
        public string? OperRemark { get; set; }
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsStockQuan/WmsRecordUpiReplenish.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
using Admin.NET.Core;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/5/29上午10:26:39
 * @desc : è°ƒåº¦ä»»åŠ¡
 */
namespace Admin.NET.Application.Entity
{
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•
    /// </summary>
    [SugarTable("wms_record_upi_replenish", "板件补料记录")]
    public class WmsRecordUpiReplenish : EntityBaseForRecord
    {
        [Required]
        [SugarColumn(ColumnName = "Upi", ColumnDescription = "部件条码", Length = 50)]
        public string Upi { 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; }
        [Required]
        [SugarColumn(ColumnName = "DetailName", ColumnDescription = "部件名称", Length = 50)]
        public string DetailName { get; set; }
        /// <summary>
        /// ææ–™
        /// </summary>
        [SugarColumn(ColumnName = "Info18", ColumnDescription = "材料", Length = 60)]
        public string? Info18 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [SugarColumn(ColumnName = "OperRemark", ColumnDescription = "备注", Length = 100)]
        public string? OperRemark { get; set; }
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiNg/Dto/WmsRecordUpiNgInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// æ¿ä»¶NG记录基础输入参数
    /// </summary>
    public class WmsRecordUpiNgBaseInput
    {
        /// <summary>
        /// éƒ¨ä»¶æ¡ç 
        /// </summary>
        public virtual string Upi { get; set; }
        /// <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 string DetailName { get; set; }
        /// <summary>
        /// ææ–™
        /// </summary>
        public virtual string Info18 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public virtual string OperRemark { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶NG记录分页查询输入参数
    /// </summary>
    public class WmsRecordUpiNgInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// éƒ¨ä»¶æ¡ç 
        /// </summary>
        public string? Upi { 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 string? DetailName { get; set; }
        /// <summary>
        /// ææ–™
        /// </summary>
        public string? Info18 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string? OperRemark { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public DateTime? CreateTime { get; set; }
        /// <summary>
         /// åˆ›å»ºæ—¶é—´èŒƒå›´
         /// </summary>
         public List<DateTime?> CreateTimeRange { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶NG记录增加输入参数
    /// </summary>
    public class AddWmsRecordUpiNgInput : WmsRecordUpiNgBaseInput
    {
        /// <summary>
        /// éƒ¨ä»¶æ¡ç 
        /// </summary>
        [Required(ErrorMessage = "部件条码不能为空")]
        public override string Upi { get; set; }
        /// <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 string DetailName { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶NG记录删除输入参数
    /// </summary>
    public class DeleteWmsRecordUpiNgInput : BaseIdInput
    {
    }
    /// <summary>
    /// æ¿ä»¶NG记录更新输入参数
    /// </summary>
    public class UpdateWmsRecordUpiNgInput : AddWmsRecordUpiNgInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶NG记录主键查询输入参数
    /// </summary>
    public class QueryByIdWmsRecordUpiNgInput : DeleteWmsRecordUpiNgInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiNg/Dto/WmsRecordUpiNgOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace Admin.NET.Application;
/// <summary>
/// æ¿ä»¶NG记录输出参数
/// </summary>
public class WmsRecordUpiNgOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// éƒ¨ä»¶æ¡ç 
    /// </summary>
    public string Upi { 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 string DetailName { get; set; }
    /// <summary>
    /// ææ–™
    /// </summary>
    public string Info18 { get; set; }
    /// <summary>
    /// å¤‡æ³¨
    /// </summary>
    public string OperRemark { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiNg/WmsRecordUpiNgService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
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>
/// æ¿ä»¶NG记录服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.ReportCenterGroupName, Order = 100)]
public class WmsRecordUpiNgService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<WmsRecordUpiNg> _rep;
    public WmsRecordUpiNgService(SqlSugarRepository<WmsRecordUpiNg> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢æ¿ä»¶NG记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("WmsRecordUpiNg/Page")]
    public async Task<SqlSugarPagedList<WmsRecordUpiNgOutput>> Page(WmsRecordUpiNgInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// ä¸åˆ†é¡µæŸ¥è¯¢æ¿ä»¶NG记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "List")]
    [Description("WmsRecordUpiNg/List")]
    public async Task<List<WmsRecordUpiNgOutput>> List([FromQuery] WmsRecordUpiNgInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<WmsRecordUpiNgOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ æ¿ä»¶NG记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("WmsRecordUpiNg/Add")]
    public async Task<long> Add(AddWmsRecordUpiNgInput input)
    {
        var entity = input.Adapt<WmsRecordUpiNg>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤æ¿ä»¶NG记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("WmsRecordUpiNg/Delete")]
    public async Task Delete(DeleteWmsRecordUpiNgInput 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>
    /// æ›´æ–°æ¿ä»¶NG记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Update")]
    [Description("WmsRecordUpiNg/Update")]
    public async Task Update(UpdateWmsRecordUpiNgInput input)
    {
        var entity = input.Adapt<WmsRecordUpiNg>();
        //重复性验证
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
    /// <summary>
    /// èŽ·å–æ¿ä»¶NG记录
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpGet]
    [ApiDescriptionSettings(Name = "Detail")]
    [Description("WmsRecordUpiNg/Detail")]
    public async Task<WmsRecordUpiNg> Detail([FromQuery] QueryByIdWmsRecordUpiNgInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢æ¿ä»¶NG记录条件
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<WmsRecordUpiNgOutput> CommonPageFilter(WmsRecordUpiNgInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.Upi.Contains(input.SearchKey.Trim())
                || 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.DetailName.Contains(input.SearchKey.Trim())
                || u.Info18.Contains(input.SearchKey.Trim())
                || u.OperRemark.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.Upi), u => u.Upi.Contains(input.Upi.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.DetailName), u => u.DetailName.Contains(input.DetailName.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info18), u => u.Info18.Contains(input.Info18.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OperRemark), u => u.OperRemark.Contains(input.OperRemark.Trim()))
            .Select<WmsRecordUpiNgOutput>();
        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( WmsRecordUpiNg input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<WmsRecordUpiNg> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiReplenish/Dto/WmsRecordUpiReplenishInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•基础输入参数
    /// </summary>
    public class WmsRecordUpiReplenishBaseInput
    {
        /// <summary>
        /// éƒ¨ä»¶æ¡ç 
        /// </summary>
        public virtual string Upi { get; set; }
        /// <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 string DetailName { get; set; }
        /// <summary>
        /// ææ–™
        /// </summary>
        public virtual string Info18 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public virtual string OperRemark { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        /// <summary>
        /// åˆ›å»ºäººId
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        /// </summary>
        public virtual string CreateUserName { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•分页查询输入参数
    /// </summary>
    public class WmsRecordUpiReplenishInput : BasePageInput
    {
        /// <summary>
        /// å…³é”®å­—查询
        /// </summary>
        public string? SearchKey { get; set; }
        /// <summary>
        /// éƒ¨ä»¶æ¡ç 
        /// </summary>
        public string? Upi { 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 string? DetailName { get; set; }
        /// <summary>
        /// ææ–™
        /// </summary>
        public string? Info18 { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string? OperRemark { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public DateTime? CreateTime { get; set; }
        /// <summary>
         /// åˆ›å»ºæ—¶é—´èŒƒå›´
         /// </summary>
         public List<DateTime?> CreateTimeRange { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•增加输入参数
    /// </summary>
    public class AddWmsRecordUpiReplenishInput : WmsRecordUpiReplenishBaseInput
    {
        /// <summary>
        /// éƒ¨ä»¶æ¡ç 
        /// </summary>
        [Required(ErrorMessage = "部件条码不能为空")]
        public override string Upi { get; set; }
        /// <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 string DetailName { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•删除输入参数
    /// </summary>
    public class DeleteWmsRecordUpiReplenishInput : BaseIdInput
    {
    }
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•更新输入参数
    /// </summary>
    public class UpdateWmsRecordUpiReplenishInput : AddWmsRecordUpiReplenishInput
    {
        /// <summary>
        /// ä¸»é”®Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
    }
    /// <summary>
    /// æ¿ä»¶è¡¥æ–™è®°å½•主键查询输入参数
    /// </summary>
    public class QueryByIdWmsRecordUpiReplenishInput : DeleteWmsRecordUpiReplenishInput
    {
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiReplenish/Dto/WmsRecordUpiReplenishOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace Admin.NET.Application;
/// <summary>
/// æ¿ä»¶è¡¥æ–™è®°å½•输出参数
/// </summary>
public class WmsRecordUpiReplenishOutput
{
    /// <summary>
    /// ä¸»é”®Id
    /// </summary>
    public long? Id { get; set; }
    /// <summary>
    /// éƒ¨ä»¶æ¡ç 
    /// </summary>
    public string Upi { 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 string DetailName { get; set; }
    /// <summary>
    /// ææ–™
    /// </summary>
    public string Info18 { get; set; }
    /// <summary>
    /// å¤‡æ³¨
    /// </summary>
    public string OperRemark { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    /// </summary>
    public DateTime? CreateTime { get; set; }
    /// <summary>
    /// åˆ›å»ºäººId
    /// </summary>
    public long? CreateUserId { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    public string CreateUserName { get; set; }
    }
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/ReportCenter/WmsRecordUpiReplenish/WmsRecordUpiReplenishService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
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 WmsRecordUpiReplenishService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<WmsRecordUpiReplenish> _rep;
    public WmsRecordUpiReplenishService(SqlSugarRepository<WmsRecordUpiReplenish> rep)
    {
        _rep = rep;
    }
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢æ¿ä»¶è¡¥æ–™è®°å½•
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Page")]
    [Description("WmsRecordUpiReplenish/Page")]
    public async Task<SqlSugarPagedList<WmsRecordUpiReplenishOutput>> Page(WmsRecordUpiReplenishInput 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("WmsRecordUpiReplenish/List")]
    public async Task<List<WmsRecordUpiReplenishOutput>> List([FromQuery] WmsRecordUpiReplenishInput input)
    {
        var query = CommonPageFilter(input);
        return await query.OrderBuilder(input, "", "Id").Select<WmsRecordUpiReplenishOutput>().ToListAsync();
    }
    /// <summary>
    /// å¢žåŠ æ¿ä»¶è¡¥æ–™è®°å½•
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Add")]
    [Description("WmsRecordUpiReplenish/Add")]
    public async Task<long> Add(AddWmsRecordUpiReplenishInput input)
    {
        var entity = input.Adapt<WmsRecordUpiReplenish>();
        //重复性验证
        await CheckExist(entity);
        await _rep.InsertAsync(entity);
        return entity.Id;
    }
    /// <summary>
    /// åˆ é™¤æ¿ä»¶è¡¥æ–™è®°å½•
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "Delete")]
    [Description("WmsRecordUpiReplenish/Delete")]
    public async Task Delete(DeleteWmsRecordUpiReplenishInput 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("WmsRecordUpiReplenish/Update")]
    public async Task Update(UpdateWmsRecordUpiReplenishInput input)
    {
        var entity = input.Adapt<WmsRecordUpiReplenish>();
        //重复性验证
        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("WmsRecordUpiReplenish/Detail")]
    public async Task<WmsRecordUpiReplenish> Detail([FromQuery] QueryByIdWmsRecordUpiReplenishInput input)
    {
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    #region ç§æœ‰æ–¹æ³•
    /// <summary>
    /// å…¬å…±æŸ¥è¯¢æ¿ä»¶è¡¥æ–™è®°å½•条件
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    private ISugarQueryable<WmsRecordUpiReplenishOutput> CommonPageFilter(WmsRecordUpiReplenishInput input)
    {
        var query = _rep.AsQueryable()
            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
                u.Upi.Contains(input.SearchKey.Trim())
                || 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.DetailName.Contains(input.SearchKey.Trim())
                || u.Info18.Contains(input.SearchKey.Trim())
                || u.OperRemark.Contains(input.SearchKey.Trim())
                || u.CreateUserName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.Upi), u => u.Upi.Contains(input.Upi.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.DetailName), u => u.DetailName.Contains(input.DetailName.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.Info18), u => u.Info18.Contains(input.Info18.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.OperRemark), u => u.OperRemark.Contains(input.OperRemark.Trim()))
            .Select<WmsRecordUpiReplenishOutput>();
        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( WmsRecordUpiReplenish input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<WmsRecordUpiReplenish> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/Dto/QueryPackageInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
public class QueryPackageInput
{
    /// <summary>
    /// åŒ…装号
    /// </summary>
    public virtual string PackageCode { get; set; }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs
@@ -27,6 +27,8 @@
    private readonly SqlSugarRepository<Mes_Order_Gather> _mesOrderGatherRep;
    private readonly SqlSugarRepository<Mes_Package_UnLine_Record> _mesPackage_UnLine_RecordRep;
    private readonly SqlSugarRepository<Mes_Package_LineQueue> _mesPackage_LineQueueRep;
    private readonly SqlSugarRepository<WmsRecordUpiReplenish> _wmsRecordUpiReplenishRep;
    private readonly SqlSugarRepository<WmsRecordUpiProcess> _wmsRecordUpiProcessRep;
    public WmsCommonnQueryService(SqlSugarRepository<WmsRbLineTask> wmsRbLineTaskRep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep
        , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep
@@ -35,8 +37,11 @@
        , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep
        , SqlSugarRepository<Mes_Package_UnLine_Record> mesPackage_UnLine_RecordRep
        , SqlSugarRepository<Mes_Package_LineQueue> mesPackage_LineQueueRep
        , SqlSugarRepository<WmsRecordUpiReplenish> wmsRecordUpiReplenishRep
        , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep
        )
    {
        _wmsRecordUpiReplenishRep = wmsRecordUpiReplenishRep;
        _sysConfigRep = sysConfigRep;
        _mesPackageGatherRep = mesPackageGatherRep;
        _wmsRbLineTaskRep = wmsRbLineTaskRep;
@@ -45,6 +50,7 @@
        _mesOrderGatherRep = mesOrderGatherRep;
        _mesPackage_UnLine_RecordRep = mesPackage_UnLine_RecordRep;
        _mesPackage_LineQueueRep = mesPackage_LineQueueRep;
        _wmsRecordUpiProcessRep = wmsRecordUpiProcessRep;
    }
    /// <summary>
@@ -327,6 +333,7 @@
            resJson = listRes.FirstOrDefault(u => u.UPI == input.UPI);
            //var filteredResult = listRes.FirstOrDefault(u => u.UPI == input.UPI);
        }
        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
        if (resJson != null)
        {
            //执行人工补板动作
@@ -336,6 +343,28 @@
            {
                throw Oops.Oh("补板工位允许进板请求失败:" + res.resMsg);
            }
            //*/
            //记录补板记录和板件履历
            var singleUpi = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.UPI == input.UPI).FirstAsync();
            if (singleUpi == null)
            {
                throw Oops.Oh($"没有找到部件条码{input.UPI}的数据");
            }
            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
            wmsRecordUpi = singleUpi.Adapt<WmsRecordUpiProcess>();
            wmsRecordUpi.CreateTime = DateTime.Now;
            wmsRecordUpi.CreateUserName = _cretaorName;
            wmsRecordUpi.Location = "";
            wmsRecordUpi.OperRemark = "人工补板";
            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
            WmsRecordUpiReplenish wmsRecordUpiNg = new WmsRecordUpiReplenish();
            wmsRecordUpiNg = singleUpi.Adapt<WmsRecordUpiReplenish>();
            wmsRecordUpiNg.CreateTime = DateTime.Now;
            wmsRecordUpiNg.CreateUserName = _cretaorName;
            wmsRecordUpiNg.OperRemark = "人工补板";
            await _wmsRecordUpiReplenishRep.InsertAsync(wmsRecordUpiNg);
        }
        else
        {
@@ -590,5 +619,29 @@
        return groupedResult; // è¿”回分组结果
    }
    /// <summary>
    /// æŸ¥è¯¢åŒ…数据
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "QueryPackage")]
    [Description("WmsCommonnQuery/QueryPackage")]
    public async Task<Mes_Package_Gather> QueryPackage(QueryPackageInput input)
    {
        if (input == null || input.PackageCode == null)
        {
            throw Oops.Oh("参数不能为空");
        }
        var package = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
        if (package == null)
        {
            throw Oops.Oh($"没有找到包号{input.PackageCode}的汇总数据");
        }
        return package;
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -25,6 +25,7 @@
    private readonly SqlSugarRepository<WmsRecordUpiProcess> _wmsRecordUpiProcessRep;
    private readonly SqlSugarRepository<WmsRecordPackageProcess> _wmsRecordPackageProcessRep;
    private readonly SqlSugarRepository<Mes_Upi_LineQueue> _mes_Upi_LineQueueRep;
    private readonly SqlSugarRepository<WmsRecordUpiNg> _wmsRecordUpiNgRep;
    public WmsOperationTaskService(
        SqlSugarRepository<Mes_Upi_LineQueue> mes_Upi_LineQueueRep,
@@ -35,8 +36,10 @@
        , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep
        , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep
        , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep
        , SqlSugarRepository<WmsRecordUpiNg> wmsRecordUpiNgRep
        )
    {
        _wmsRecordUpiNgRep = wmsRecordUpiNgRep;
        _sysConfigRep = sysConfigRep;
        _mesPackageGatherRep = mesPackageGatherRep;
        _rep = rep;
@@ -208,16 +211,22 @@
            throw Oops.Oh($"没有找到包号{input.PackageCode}的汇总数据");
        }
        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        wmsRecordPackage.CreateTime = DateTime.Now;
        wmsRecordPackage.CreateUserName = _cretaorName;
        wmsRecordPackage.Location = "BZ29";
        wmsRecordPackage.OperRemark = "核对标签";
        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
        WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
        wmsRecordUpi = singleUpi.Adapt<WmsRecordUpiProcess>();
        wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        wmsRecordUpi.CreateTime = DateTime.Now;
        wmsRecordUpi.CreateUserName = _cretaorName;
        wmsRecordUpi.Location = "BZ29";
        wmsRecordUpi.OperRemark = "核对标签";
        await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
@@ -245,10 +254,10 @@
        {
            throw Oops.Oh("包号不能为空");
        }
        if (string.IsNullOrEmpty(input.Reason))
        {
            throw Oops.Oh("原因不能为空");
        }
        //if (string.IsNullOrEmpty(input.Reason))
        //{
        //    throw Oops.Oh("原因不能为空");
        //}
        var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
        if (singlePackage == null)
@@ -272,6 +281,8 @@
        {
            throw Oops.Oh($"没有找到包号{input.PackageCode}的板件数据");
        }
        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
        foreach (var item in upiList)
        {
            item.UpiFlag = UpiFlagEnum.NG;
@@ -281,17 +292,32 @@
            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
            wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            wmsRecordUpi.CreateTime = DateTime.Now;
            wmsRecordUpi.CreateUserName = _cretaorName;
            wmsRecordUpi.Location = "";
            wmsRecordUpi.OperRemark = "NG下线";
            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
            WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg();
            wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>();
            wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            wmsRecordUpiNg.CreateTime = DateTime.Now;
            wmsRecordUpiNg.CreateUserName = _cretaorName;
            wmsRecordUpiNg.OperRemark = "NG下线";
            await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg);
        }
        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        wmsRecordPackage.Location = "";
        wmsRecordPackage.OperRemark = "NG下线";
        wmsRecordPackage.CreateTime = DateTime.Now;
        wmsRecordPackage.CreateUserName = _cretaorName;
        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
@@ -336,9 +362,11 @@
            throw Oops.Oh($"没有找到包号{packageCode}的汇总数据");
        }
        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
        singlePackage.UpiFlag = UpiFlagEnum.NG;
        singlePackage.UpdateTime = DateTime.Now;
        singlePackage.UpdateUserName = _cretaorName;
        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == packageCode).ToListAsync();
        if (upiList == null)
@@ -349,20 +377,34 @@
        {
            item.UpiFlag = UpiFlagEnum.NG;
            item.UpdateTime = DateTime.Now;
            item.UpdateUserName = _cretaorName;
            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
            wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            wmsRecordUpi.CreateTime = DateTime.Now;
            wmsRecordUpi.CreateUserName = _cretaorName;
            wmsRecordUpi.Location = "";
            wmsRecordUpi.OperRemark = "标记NG";
            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
            WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg();
            wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>();
            wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            wmsRecordUpiNg.CreateTime = DateTime.Now;
            wmsRecordUpiNg.CreateUserName = _cretaorName;
            wmsRecordUpiNg.OperRemark = "标记NG";
            await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg);
        }
        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        wmsRecordPackage.Location = "";
        wmsRecordPackage.OperRemark = "标记NG";
        wmsRecordPackage.CreateTime = DateTime.Now;
        wmsRecordPackage.CreateUserName = _cretaorName;
        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
@@ -408,9 +450,11 @@
            throw Oops.Oh($"没有找到包号{packageCode}的汇总数据");
        }
        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
        singlePackage.UpiFlag = UpiFlagEnum.正常;
        singlePackage.UpdateTime = DateTime.Now;
        singlePackage.UpdateUserName = _cretaorName;
        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == packageCode).ToListAsync();
        if (upiList == null)
@@ -421,20 +465,34 @@
        {
            item.UpiFlag = UpiFlagEnum.正常;
            item.UpdateTime = DateTime.Now;
            item.UpdateUserName = _cretaorName;
            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
            wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            wmsRecordUpi.CreateTime = DateTime.Now;
            wmsRecordUpi.CreateUserName = _cretaorName;
            wmsRecordUpi.Location = "";
            wmsRecordUpi.OperRemark = "取消NG";
            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
            WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg();
            wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>();
            wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            wmsRecordUpiNg.CreateTime = DateTime.Now;
            wmsRecordUpiNg.CreateUserName = _cretaorName;
            wmsRecordUpiNg.OperRemark = "取消NG";
            await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg);
        }
        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        wmsRecordPackage.Location = "";
        wmsRecordPackage.OperRemark = "取消NG";
        wmsRecordPackage.CreateTime = DateTime.Now;
        wmsRecordPackage.CreateUserName = _cretaorName;
        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);