From 4b2e89faeb6383335db4fc4a56d3cb71565abe08 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 26 11月 2024 17:42:24 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/LA24030-LuLI_PackageLine
---
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue | 34 +
LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts | 12
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue | 7
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs | 125 +++++
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue | 31
LA24030_LuLiPackageLine_Web/src/components/printTableCkd.vue | 412 ++++++++++++++++++
LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/shortageList/index.vue | 652 +++++++++++++++--------------
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs | 37 +
8 files changed, 979 insertions(+), 331 deletions(-)
diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
index 48c02ec..ebbd087 100644
--- a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
@@ -4,6 +4,7 @@
DeleteWmsStockQuan = '/api/wmsStockQuan/delete',
UpdateWmsStockQuan = '/api/wmsStockQuan/update',
PageWmsStockQuan = '/api/wmsStockQuan/page', //888
+ ShortagePage = '/api/wmsStockQuan/ShortagePage',
PageStockQuanForUse= '/api/wmsStockQuan/getStockQuanPageForUse',
ListWmsStockQuan = '/api/wmsStockQuan/list',
DetailWmsStockQuan = '/api/wmsStockQuan/detail',
@@ -66,6 +67,17 @@
data: params
});
+
+
+ // 鍒嗛〉鏌ヨ瀹炴椂搴撳瓨
+export const ShortagePage = (params?: any) =>
+ request({
+ url: Api.ShortagePage,
+ method: 'post',
+ data: params
+ });
+
+
// 鍒嗛〉鏌ヨ鍙敤瀹炴椂搴撳瓨
export const pageStockQuanForUse = (params?: any) =>
request({
diff --git a/LA24030_LuLiPackageLine_Web/src/components/printTableCkd.vue b/LA24030_LuLiPackageLine_Web/src/components/printTableCkd.vue
new file mode 100644
index 0000000..ca6fb4e
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/components/printTableCkd.vue
@@ -0,0 +1,412 @@
+<!--鎵撳嵃鍐呭 -->
+<template>
+ <div id="printContent" class="printContent">
+ <div class="printWp" v-for="(itemW, indexW) in deltailList" :key="indexW">
+ <!-- <div class="t1">{{Name[0]}} {{Name[1]}} {{Name[2]}}</div> -->
+
+ <div class="t1">{{ Name }}</div>
+
+ <div class="header_pt">
+ <div class="box1">
+
+ <img class="imgL" src="http://localhost:8888/src/assets/logo-mini.png" alt="" />
+
+ <!-- <img class="imgL" src="@/assets/logo.png" alt="" /> -->
+ <div class="t2">
+ <p class="text1">
+ <!-- MAKINO J CHINA CO.,LTD<br /> -->
+ 椴佷附鏈ㄤ笟鑲′唤鏈夐檺鍏徃
+ </p>
+ </div>
+ </div>
+ <div class="box-t1">
+ <div>
+ 鍗曞彿锛�<span>{{ itemTitle.orderNo }}</span>
+ </div>
+ <!-- <div>DO鎬ц川锛歿{ itemTitle.doNature }}<span></span> </div> -->
+ <div>
+ <!-- 鍚堝悓鍙凤細{{ itemTitle.customOrderNumber }}<span></span> -->
+ <div>
+ <span> {{ DateToday }}</span>
+ </div>
+ </div>
+ <div class="t4">
+ <!-- 鏀惰揣鏂癸細 <span>{{ itemTitle.clientName }}</span> -->
+ </div>
+ </div>
+ </div>
+
+ <div class="tableBox">
+ <table cellspacing="0" cellpadding="0">
+ <tr class="middle_first">
+ <td class="middle_tree">缂栧彿</td>
+ <!-- <td class="middle_one">瀹㈡埛鐗╂枡浠g爜</td>
+ <td class="middle_one">瀹㈡埛鐗╂枡鍚嶇О</td> -->
+ <td class="middle_one">鎵规</td>
+ <td class="middle_two">璁㈠崟鍙�</td>
+ <td class="middle_four">鍖呰鍙�</td>
+ <td class="middle_one">缂烘枡鏁�</td>
+ </tr>
+ <tr class="middle_first" v-for="(item, index) in itemW" :key="index">
+ <td class="middle_tree">{{ item.num }}</td>
+ <!-- <td class="middle_one">
+ <div>
+ {{ item.customMaterialcode }}
+ </div>
+ </td>
+ <td class="middle_one">
+ <div>
+ {{ item.customMaterialName }}
+ </div>
+ </td> -->
+ <td class="middle_one">
+ <div>
+ {{ item.planNo }}
+ </div>
+ </td>
+ <td class="middle_two">
+ <div>
+ {{ item.orderId }}
+ </div>
+ </td>
+ <td class="middle_four">
+ <div>
+ {{ item.packageCode }}
+ </div>
+ </td>
+ <td class="middle_one">
+ <div>
+ {{ item.shortageCount }}
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <!-- <br /> <br /> -->
+ <!-- <div class="box-t2">
+ <div>渚涜揣鏂圭‘璁わ細鐗ч噹姹借溅瑁呭锛堟姹夛級鏈夐檺鍏徃 </div>
+ <div> 绛炬敹浜猴紙浠f敹浜猴級锛� </div>
+ </div> -->
+ <!-- 濮撳悕 鐢佃瘽 鍦板潃 -->
+ <!-- <div class="box-t2">
+ <div>濮撳悕&鐢佃瘽锛�</div>
+ <div> 鏃ユ湡锛� </div>
+ </div> -->
+ <!-- <div class="box-t2 box-t2R">
+ <div>鍦板潃锛�</div>
+ </div> -->
+ <span class="pageNum">{{ indexW + 1 }}</span>
+ </div>
+ </div>
+</template>
+<script lang="ts" setup>
+import { ref, nextTick, computed, defineExpose, defineEmits, markRaw, defineProps } from 'vue';
+import printJS from 'print-js';
+// import { formatUtcToData } from "@/utils/formate";
+
+const Name = ref([]);
+const DateToday = ref('');
+const itemTitle: any = ref({});
+const deltailList = ref<any[]>([]);
+const splitArray = (array: any, size: any) => {
+ let data = [];
+ for (let i = 0; i < array.length; i += size) {
+ data.push(array.slice(i, i + size));
+ }
+ return data;
+};
+const printHd = (name: string, itemSubTitle: any, deltailListArr: any) => {
+ Name.value = name;
+ // if(itemSubTitle && itemSubTitle.length>0){
+ // itemTitle.value = itemSubTitle[0]
+ // }
+ itemTitle.value.orderNo = deltailListArr[0].orderNo;
+ deltailListArr.forEach((item, index) => {
+ item.num = index + 1;
+ });
+ deltailList.value = splitArray(deltailListArr, 16);
+ console.log(deltailList.value);
+
+ DateToday.value = '2024-01-01';
+
+ // DateToday.value = formatUtcToData(
+ // new Date().toString(),
+ // "YYYY-MM-DD"
+ // );
+
+ // console.log(itemSubTitle)
+ // console.log(deltailListArr)
+ nextTick(() => {
+ printJS({
+ printable: 'printContent', // 瑕佹墦鍗扮殑鍏冪礌鐨� ID
+ type: 'html', // 浣跨敤 HTML 鍐呭
+ // header: '鐩爣鏍囬', // 璁剧疆鎵撳嵃鏃剁殑鏍囬锛屽鏋滀笉闇�瑕佸彲浠ュ幓鎺夋琛�
+ css: ['*'], // 璁惧畾鏍峰紡锛屽鏋滀綘闇�瑕佸紩鍏ュ叿浣撶殑 CSS 鏂囦欢锛屽彲浠ュ湪杩欓噷鏀惧叆鏍峰紡鏂囦欢鐨� URL
+ style: `
+
+.header_pt {
+ display: flex;
+ justify-content: space-between;
+}
+
+.tableBox {
+ border: 1px solid #909399;
+ height: 780px;
+ overflow: hidden;
+}
+
+.printWp {
+ padding: 15px 20px;
+ height: 1070px;
+ overflow: hidden;
+ position: relative;
+}
+
+.imgL {
+ width: 140px;
+}
+
+.t1 {
+ text-align: center;
+ font-size: 30px !important;
+ font-weight: bold;
+ border: 1px solid transparent;
+}
+
+.printContent {
+ position: relative;
+ z-index: -1;
+ font-size: 12px;
+}
+
+.printContent .box-t1 {
+ line-height: 24px;
+ text-align: right;
+ position: relative;
+ width: 200px;
+}
+
+.printContent .box-t1 div {
+ display: block;
+}
+
+.printContent .t4 {
+ text-align: right;
+}
+
+.printContent table {
+ padding: 10px 0;
+}
+
+.printContent table tr,
+.printContent table td {
+ margin: 0;
+ padding: 0;
+}
+
+.printContent table td {
+ border: 1px solid transparent;
+ text-align: center;
+ padding: 0px;
+}
+
+.printContent table td div {
+ height: 44px;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ word-break: break-all;
+ overflow: hidden;
+}
+
+.printContent .middle_tree {
+ width: 50px;
+}
+
+.printContent .middle_four {
+ width: 80px;
+}
+
+.printContent .middle_one {
+ width: 233px;
+}
+
+.printContent .middle_two {
+ width: 210px;
+}
+
+.printContent span {
+ color: gray;
+}
+
+.printContent .box-t2 {
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 3%;
+}
+
+.printContent .box-t2 div {
+ width: 50%;
+ height: 32px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.printContent .box-t2R {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.printContent .box-t2R div {
+ width: 100%;
+ height: 40px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.printContent .pageNum {
+ position: absolute;
+ right: 20px;
+ bottom: 0;
+}
+
+
+ `,
+ scanStyles: false, // 鏄惁鎵弿褰撳墠鐨� CSS 鏍峰紡
+ });
+ });
+};
+
+// 鏆撮湶鏂规硶
+defineExpose({ printHd });
+</script>
+
+<style>
+
+.header_pt {
+ display: flex;
+ justify-content: space-between;
+}
+
+.tableBox {
+ border: 1px solid #909399;
+ height: 780px;
+ overflow: hidden;
+}
+
+.printWp {
+ padding: 15px 20px;
+ height: 1070px;
+ overflow: hidden;
+ position: relative;
+}
+
+.imgL {
+ width: 140px;
+}
+
+.t1 {
+ text-align: center;
+ font-size: 30px !important;
+ font-weight: bold;
+ border: 1px solid transparent;
+}
+
+.printContent {
+ position: relative;
+ z-index: -1;
+ font-size: 12px;
+}
+
+.printContent .box-t1 {
+ line-height: 24px;
+ text-align: right;
+ position: relative;
+ width: 200px;
+}
+
+.printContent .box-t1 div {
+ display: block;
+}
+
+.printContent .t4 {
+ text-align: right;
+}
+
+.printContent table {
+ padding: 10px 0;
+}
+
+.printContent table tr,
+.printContent table td {
+ margin: 0;
+ padding: 0;
+}
+
+.printContent table td {
+ border: 1px solid transparent;
+ text-align: center;
+ padding: 0px;
+}
+
+.printContent table td div {
+ height: 44px;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ word-break: break-all;
+ overflow: hidden;
+}
+
+.printContent .middle_tree {
+ width: 50px;
+}
+
+.printContent .middle_four {
+ width: 80px;
+}
+
+.printContent .middle_one {
+ width: 233px;
+}
+
+.printContent .middle_two {
+ width: 210px;
+}
+
+.printContent span {
+ color: gray;
+}
+
+.printContent .box-t2 {
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 3%;
+}
+
+.printContent .box-t2 div {
+ width: 50%;
+ height: 32px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.printContent .box-t2R {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.printContent .box-t2R div {
+ width: 100%;
+ height: 40px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.printContent .pageNum {
+ position: absolute;
+ right: 20px;
+ bottom: 0;
+}
+
+</style>
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
index 407a34e..c995954 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
@@ -258,11 +258,11 @@
</template>
</el-dialog>
<!-- 鍗曡鎯� -->
- <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}鐗╂枡璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose">
+ <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose">
<template #title>
<div class="slot_title">
<div class="title_orderNo">{{ title }}</div>
- <div>鐗╂枡璇︽儏</div>
+ <div>璇︽儏</div>
</div>
</template>
@@ -281,7 +281,9 @@
<el-form-item label-width="20px">
<el-button type="primary" icon="el-icon-search" @click="getDetail">鏌ヨ</el-button>
- <el-button type="primary" icon="ele-Printer" @click="getPrint">鎵撳嵃</el-button>
+ <!-- <el-button type="primary" icon="ele-Printer" @click="getPrint">鎵撳嵃</el-button> -->
+
+ <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> 鎵撳嵃 </el-button>
</el-form-item>
</el-col>
</el-row>
@@ -353,6 +355,9 @@
</template>
</el-dialog>
+ <!-- 鎵撳嵃 -->
+ <print-table-ckd ref="printTableRef"></print-table-ckd>
+
<printDialogTestStudent ref="printDialogRefTestStudent" :title="printTestStudentTitle" @reloadTable="handleQueryTestStudent" />
</div>
</template>
@@ -378,6 +383,7 @@
import { formatDate, formatDate_T_Date, formatDate_T_Time, defaultTimeRange } from '/@/utils/formatTime';
import commonFunction from '/@/utils/commonFunction';
import { handleSlectDataWmsBusinessType } from '/@/utils/selectData';
+import printTableCkd from '/@/components/printTableCkd.vue';
// 鎺ㄨ崘璁剧疆鎿嶄綔 width 涓� 200
import { hiprint } from 'vue-plugin-hiprint';
import { SysPrintApi } from '/@/api-services/api';
@@ -538,7 +544,6 @@
// const enumList: any = cache.getCache('enumList');
// console.log(enumList.inEnumOrderType);
-
//鑾峰彇PO鍗曞垪琛�
const getTabelData = () => {
//鍒ゆ柇鍒涘缓鏃堕棿鏄惁鏈夐�夋嫨
@@ -619,22 +624,22 @@
// const
//鍗曞彿
const purchaseNo = ref('');
-
+const IsKitting = ref(false);
//鎵撳紑鎶藉眽
const openDrawer = async (type: number, scope: any = {}, entozhExcell?: any) => {
detailForm.value.Page = 1; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏
detailForm.value.PageSize = 10; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏
- if (scope.packageCode) {
- title.value = `${scope.packageCode}`;
+ if (scope.orderId) {
+ title.value = `${scope.orderId}`;
}
drawerType.value = 'drawerAll';
drawerVisible.value = true;
//褰撳墠鍏ュ簱鍗曞彿id
detailForm.value.orderId = scope.orderId;
//鍏ュ簱鍗�
- purchaseNo.value = scope.packageCode;
+ purchaseNo.value = scope.orderId;
debugger;
- detailForm.value.packageCode = scope.packageCode;
+ detailForm.value.orderId = scope.orderId;
//鑾峰彇鐗╂枡鍒楄〃
if (detailForm.value.poId == '') {
drawerList.value = [];
@@ -646,7 +651,7 @@
//------------------鑾峰彇鐗╂枡鍒楄〃鐗╂枡鏄庣粏
getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? [];
getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? [];
-
+
//----------------鐗╂枡鏄庣粏
// 鏍规嵁鐘舵�佽浆涓枃 淇濈暀3浣嶅皬鏁�
let scopetrans = JSON.parse(JSON.stringify(scope));
@@ -1122,6 +1127,12 @@
};
printDialogRefTestStudent.value.showDialog(new hiprint.PrintTemplate({ template: template }), row, template.panels[0].width);
};
+// 鎵撳嵃
+let itemSubTitle = ref<any[]>([]);
+const handleHtmlPrint = () => {
+ var title = IsKitting.value == true ? '榻愬娓呭崟' : '缂哄娓呭崟';
+ proxy.$refs['printTableRef'].printHd(title, itemSubTitle.value, drawerList.value); //deltailList
+};
// 鏆撮湶鏂规硶
defineExpose({ openDialog, openDrawer });
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
index 5113be7..56e8c87 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
@@ -258,11 +258,11 @@
</template>
</el-dialog>
<!-- 鍗曡鎯� -->
- <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}鐗╂枡璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose">
+ <el-drawer v-model="drawerVisible" :title="`${detailForm.poId}璇︽儏`" direction="rtl" size="80%" @close="handleDrawerClose">
<template #title>
<div class="slot_title">
<div class="title_orderNo">{{ title }}</div>
- <div>鐗╂枡璇︽儏</div>
+ <div>璇︽儏</div>
</div>
</template>
@@ -273,15 +273,20 @@
<el-form :model="detailForm">
<el-row>
<el-col :span="6">
- <el-form-item label="鐗╂枡缂栧彿">
- <el-input v-model="detailForm.materialCode" clearable placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" />
+ <el-form-item label="鍖呰鍙�">
+ <el-input v-model="detailForm.packageCode" clearable placeholder="璇疯緭鍏ュ寘瑁呭彿" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="20px">
<el-button type="primary" icon="el-icon-search" @click="getDetail">鏌ヨ</el-button>
+ <!-- <el-button type="primary" icon="ele-Printer" @click="getPrint">鎵撳嵃</el-button> -->
+ <!-- :disabled="checkRows.length == 0" -->
+ <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint">
+ 鎵撳嵃
+ </el-button>
- <el-button type="primary" icon="ele-Printer" @click="getPrint">鎵撳嵃</el-button>
+
</el-form-item>
</el-col>
</el-row>
@@ -354,6 +359,11 @@
</el-dialog>
<printDialogTestStudent ref="printDialogRefTestStudent" :title="printTestStudentTitle" @reloadTable="handleQueryTestStudent" />
+
+
+ <!-- 鎵撳嵃 -->
+ <print-table-ckd ref="printTableRef"></print-table-ckd>
+
</div>
</template>
<script lang="ts" setup>
@@ -376,13 +386,13 @@
import { pageBaseCustomer } from '/@/api/main/WmsBase/baseCustomer';
import { listWmsOrderPurchaseDetails, pageWmsOrderPurchaseDetails } from '/@/api/main/WmsOrder/wmsOrderPurchaseDetails';
import { formatDate, formatDate_T_Date, formatDate_T_Time, defaultTimeRange } from '/@/utils/formatTime';
+import printTableCkd from '/@/components/printTableCkd.vue';
import commonFunction from '/@/utils/commonFunction';
import { handleSlectDataWmsBusinessType } from '/@/utils/selectData';
// 鎺ㄨ崘璁剧疆鎿嶄綔 width 涓� 200
import { hiprint } from 'vue-plugin-hiprint';
import { SysPrintApi } from '/@/api-services/api';
import { SysPrint } from '/@/api-services/models';
-
const moveType = 10; //绉诲姩绫诲瀷 鍏ュ簱
const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜
const getEnumOrderTypeData = ref<any>([]);
@@ -620,7 +630,7 @@
// const
//鍗曞彿
const purchaseNo = ref('');
-
+const IsPack = ref(false);
//鎵撳紑鎶藉眽
const openDrawer = async (type: number, scope: any = {}, entozhExcell?: any) => {
detailForm.value.Page = 1; //bug:鐐圭紪杈�-鍐嶇偣璇︽儏
@@ -634,6 +644,7 @@
detailForm.value.poId = scope.id;
//鍏ュ簱鍗�
purchaseNo.value = scope.packageCode;
+ IsPack.value = scope.isPack;
debugger;
detailForm.value.poId = scope.id;
//鑾峰彇鐗╂枡鍒楄〃
@@ -1129,6 +1140,15 @@
printDialogRefTestStudent.value.showDialog(new hiprint.PrintTemplate({ template: template }), row, template.panels[0].width);
};
+
+
+// 鎵撳嵃
+let itemSubTitle = ref<any[]>([]);
+const handleHtmlPrint = () => {
+ var title = IsPack.value==true?"榻愬寘娓呭崟":"缂哄寘娓呭崟";
+ proxy.$refs['printTableRef'].printHd(title, itemSubTitle.value, drawerList.value); //deltailList
+};
+
// 鏆撮湶鏂规硶
defineExpose({ openDialog, openDrawer });
</script>
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
index c248f24..1a4eb77 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
@@ -100,7 +100,7 @@
<div class="table-container">
<!-- 宸︿晶琛ㄦ牸 -->
<div class="left-table">
- <p class="text-xtiny">榻愬鍒楄〃</p>
+ <p class="text-xtiny">榻愬寘鍒楄〃</p>
<el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" ref="tableRef" row-key="id" @sort-change="sortChange" :summary-method="getExportTitle" border="">
<el-table-column type="index" label="搴忓彿" width="55" align="center" />
@@ -128,7 +128,7 @@
<!-- 鍙充晶琛ㄦ牸 -->
<div class="right-table">
- <p class="text-xtiny">涓嶉綈濂楀垪琛�</p>
+ <p class="text-xtiny">缂哄寘鍒楄〃</p>
<el-table
:data="newTableData"
style="width: 100%"
@@ -165,6 +165,8 @@
</div>
</el-card>
+
+
<editDialogWmsOrderDeliver ref="editDialogRefWmsOrderDeliver" :title="editWmsOrderDeliverTitle" @reloadTable="handleQuery" />
<importExcelDialog
ref="importExcelDialogRefWmsOrderDeliver"
@@ -187,6 +189,7 @@
import { formatUtcToData, getTypeStatus } from '/@/utils/formate';
import printDialog from '/@/views/system/print/component/hiprint/preview.vue';
import editDialog from '/@/views/main/WmsOrder/wmsOrderPurchase/component/editDialog.vue';
+
import {
pageWmsOrderPurchase,
deleteWmsOrderPurchase,
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/shortageList/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/shortageList/index.vue
index 87b8cea..dbe86a0 100644
--- a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/shortageList/index.vue
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/shortageList/index.vue
@@ -1,34 +1,32 @@
锘�<template>
- <div class="wmsStockQuan-container">
- <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
- <el-form :model="queryParamsWmsStockQuan" 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="queryParamsWmsStockQuan.searchKey" clearable="" placeholder="瀹瑰櫒缂栧彿,璺熻釜鐮�,鐗╂枡缂栧彿,鐗╂枡鍚嶇О,渚涘簲鍟嗘壒娆�,鎵规,渚涘簲鍟嗙紪鍙�,ERP鍗曞彿,ERP搴撳瓨鍦�,ERP鍑瘉"/>
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="瀹瑰櫒缂栧彿">
- <el-input v-model="queryParamsWmsStockQuan.containerCode" clearable="" placeholder="璇疯緭鍏ュ鍣ㄧ紪鍙�"/>
-
- </el-form-item>
- </el-col>
-
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="璺熻釜鐮�">
- <el-input v-model="queryParamsWmsStockQuan.snCode" clearable="" placeholder="璇疯緭鍏ヨ窡韪爜"/>
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="鐗╂枡缂栧彿">
- <el-input v-model="queryParamsWmsStockQuan.materialCode" clearable="" placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�"/>
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
+ <div class="wmsStockQuan-container">
+ <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
+ <el-form :model="queryParamsWmsStockQuan" 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="queryParamsWmsStockQuan.searchKey" clearable="" placeholder="璁㈠崟鍙�,鎵规,鍖呰鍙�" />
+ </el-form-item>
+ </el-col>
+
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
+ <el-form-item label="璁㈠崟鍙�">
+ <el-input v-model="queryParamsWmsStockQuan.OrderId" clearable="" placeholder="璇疯緭鍏ヨ鍗曞彿" />
+ </el-form-item>
+ </el-col>
+
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
+ <el-form-item label="鎵规">
+ <el-input v-model="queryParamsWmsStockQuan.PlanNo" clearable="" placeholder="璇疯緭鍏ユ壒娆�" />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
+ <el-form-item label="鍖呰鍙�">
+ <el-input v-model="queryParamsWmsStockQuan.PackageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿" />
+ </el-form-item>
+ </el-col>
+
+ <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
<el-form-item label="鐗╂枡鍚嶇О">
<el-input v-model="queryParamsWmsStockQuan.materialName" clearable="" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"/>
@@ -54,94 +52,56 @@
<el-input v-model="queryParamsWmsStockQuan.batch" clearable="" placeholder="璇疯緭鍏ユ壒娆�"/>
</el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="鏀惰揣鏃堕棿">
- <el-date-picker placeholder="璇烽�夋嫨鏀惰揣鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsStockQuan.recordInsertTimeRange" />
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="渚涘簲鍟嗙紪鍙�">
- <el-input v-model="queryParamsWmsStockQuan.supplierCode" clearable="" placeholder="璇疯緭鍏ヤ緵搴斿晢缂栧彿"/>
-
- </el-form-item>
- </el-col>
-
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="ERP鍗曞彿">
- <el-input v-model="queryParamsWmsStockQuan.erpOrderNo" clearable="" placeholder="璇疯緭鍏RP鍗曞彿"/>
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="ERP搴撳瓨鍦�">
- <el-input v-model="queryParamsWmsStockQuan.erpCode" clearable="" placeholder="璇疯緭鍏RP搴撳瓨鍦�"/>
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="璐ㄦ鐘舵��">
- <el-select clearable="" v-model="queryParamsWmsStockQuan.qCStatus" placeholder="璇烽�夋嫨璐ㄦ鐘舵��">
- <el-option v-for="(item,index) in getEnumQCStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" />
-
- </el-select>
-
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="ERP鍑瘉">
- <el-input v-model="queryParamsWmsStockQuan.erpVoucher" clearable="" placeholder="璇疯緭鍏RP鍑瘉"/>
-
- </el-form-item>
- </el-col>
- <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan">
- <el-form-item label="鎿嶄綔鏃堕棿">
- <el-date-picker placeholder="璇烽�夋嫨鎿嶄綔鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsStockQuan.actionTimeRange" />
-
- </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="handleQueryWmsStockQuan" v-auth="'wmsStockQuan:page'" :disabled="disabled_btnWmsStockQuan"> 鏌ヨ </el-button>
- <el-button icon="ele-Refresh" @click="resetWmsStockQuan"> 閲嶇疆 </el-button>
- <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
- <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left:5px;"> 闅愯棌 </el-button>
- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsStockQuan" v-auth="'wmsStockQuan:add'"> 鏂板 </el-button>
- <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsStockQuan" v-auth="'wmsStockQuan:exportExcel'" > 瀵煎嚭 </el-button>
- <el-button type="primary" style="margin-left:5px;" icon="ele-Printer" @click="openPrintWmsStockQuan" v-auth="'wmsStockQuan:exportExcel'" :disabled="checkRows.length==0" > 鎵撳嵃 </el-button>
+ <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="handleQueryWmsStockQuan" v-auth="'wmsStockQuan:page'" :disabled="disabled_btnWmsStockQuan"> 鏌ヨ </el-button>
+ <el-button icon="ele-Refresh" @click="resetWmsStockQuan"> 閲嶇疆 </el-button>
+ <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> 楂樼骇鏌ヨ </el-button>
+ <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> 闅愯棌 </el-button>
+ <el-button type="primary" style="margin-left: 5px" icon="ele-Plus" @click="openAddWmsStockQuan" v-auth="'wmsStockQuan:add'"> 鏂板 </el-button>
+ <el-button type="primary" style="margin-left: 5px" icon="ele-Download" @click="handleExportExcelWmsStockQuan" v-auth="'wmsStockQuan: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">
- <!-- show-summary :summary-method="getSummaries" -->
- <el-table
- ref="tableRefWmsStockQuan"
+ <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint" v-auth="'wmsStockQuan:exportExcel'" :disabled="checkRows.length == 0">
+ 鎵撳嵃
+ </el-button>
+<!--
+ <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" v-print="print" plain @click="handleHtmlPrint">鎵撳嵃</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">
+ <!-- show-summary :summary-method="getSummaries" -->
+ <el-table
+ ref="tableRefWmsStockQuan"
:data="tableDataWmsStockQuan"
style="width: 100%"
v-loading="loadingWmsStockQuan"
tooltip-effect="light"
- row-key="id"
- @sort-change="sortChangeWmsStockQuan"
- @selection-change="handleSelectionChange"
- border="">
- <el-table-column align="center" width="60" type="selection" />
- <el-table-column type="index" label="搴忓彿" width="55" align="center"/>
-
- <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" />
+ row-key="id"
+ @sort-change="sortChangeWmsStockQuan"
+ @selection-change="handleSelectionChange"
+ border=""
+ >
+ <el-table-column align="center" width="60" type="selection" />
+ <el-table-column type="index" label="搴忓彿" width="55" align="center" />
+ <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" />
+ <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" />
+ <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" />
+ <el-table-column prop="totalCount" label="鎬绘暟閲�" show-overflow-tooltip="" />
+ <el-table-column prop="hasCount" label="鐜版湁鏁伴噺" show-overflow-tooltip="" />
+ <el-table-column prop="shortageCount" label="缂烘枡鏁伴噺" show-overflow-tooltip="" />
+
+ <!-- <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" />
<el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" />
<el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" />
<el-table-column prop="detailName" 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="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" />
+
<el-table-column prop="length" label="闀�" show-overflow-tooltip="" />
<el-table-column prop="width" label="瀹�" show-overflow-tooltip="" />
<el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" />
@@ -166,10 +126,9 @@
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" />
<el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" />
<el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" />
- <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" />
-
- </el-table>
- <el-pagination
+ <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> -->
+ </el-table>
+ <el-pagination
v-model:currentPage="tableParamsWmsStockQuan.page"
v-model:page-size="tableParamsWmsStockQuan.pageSize"
:total="tableParamsWmsStockQuan.total"
@@ -179,96 +138,92 @@
@size-change="handleSizeChangeWmsStockQuan"
@current-change="handleCurrentChangeWmsStockQuan"
layout="total, sizes, prev, pager, next, jumper"
- />
- <printDialogWmsStockQuan
- ref="printDialogRefWmsStockQuan"
- :title="printWmsStockQuanTitle"
- @reloadTable="handleQueryWmsStockQuan" />
- <editDialogWmsStockQuan
- ref="editDialogRefWmsStockQuan"
- :title="editWmsStockQuanTitle"
- @reloadTable="handleQueryWmsStockQuan"
- />
- </el-card>
- </div>
+ />
+ <printDialogWmsStockQuan ref="printDialogRefWmsStockQuan" :title="printWmsStockQuanTitle" @reloadTable="handleQueryWmsStockQuan" />
+ <editDialogWmsStockQuan ref="editDialogRefWmsStockQuan" :title="editWmsStockQuanTitle" @reloadTable="handleQueryWmsStockQuan" />
+ </el-card>
+
+ <!-- 鎵撳嵃 -->
+ <print-table-ckd ref="printTableRef"></print-table-ckd>
+ </div>
</template>
<script lang="ts" setup="" name="wmsStockQuan">
- 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 { ref, onMounted, getCurrentInstance, reactive, computed, nextTick } 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 printDialogWmsStockQuan from '/@/views/system/print/component/hiprint/preview.vue';
+import { ShortagePage, deleteWmsStockQuan, importExcelWmsStockQuan, downloadExcelTemplateWmsStockQuan } from '/@/api/main/ReportCenter/wmsStockQuan';
+import { getAPI } from '/@/utils/axios-utils';
+import { SysEnumApi } from '/@/api-services/api';
+import commonFunction from '/@/utils/commonFunction';
+import { addWmsRecordSncodePrint } from '/@/api/main/PrintCenter/wmsRecordSncodePrint';
+import printTableCkd from '/@/components/printTableCkd.vue';
+const { proxy }: any = getCurrentInstance(); // 璁块棶瀹炰緥涓婁笅鏂� proxy鍚屾椂鏀寔寮�鍙� 绾夸笂鐜
+import printJs from 'print-js';
- import printDialogWmsStockQuan from '/@/views/system/print/component/hiprint/preview.vue'
- import { pageWmsStockQuan, deleteWmsStockQuan,importExcelWmsStockQuan,downloadExcelTemplateWmsStockQuan } from '/@/api/main/ReportCenter/wmsStockQuan';
- import { getAPI } from '/@/utils/axios-utils';
- import { SysEnumApi } from '/@/api-services/api';
- import commonFunction from '/@/utils/commonFunction';
-import { addWmsRecordSncodePrint } from "/@/api/main/PrintCenter/wmsRecordSncodePrint";
+const getEnumQCStatusData_Index = ref<any>([]);
+const getEnumStockStatusData_Index = ref<any>([]);
- const getEnumQCStatusData_Index = ref<any>([]);
- const getEnumStockStatusData_Index = ref<any>([]);
+const { getEnumDesc } = commonFunction();
- const { getEnumDesc } = commonFunction();
-
- /***************************************************[瀹炴椂搴撳瓨鎿嶄綔]寮�濮�***************************************************/
- const showAdvanceQueryUIWmsStockQuan = ref(false);
- const tableRefWmsStockQuan = ref(null);
- const printDialogRefWmsStockQuan = ref();
- const editDialogRefWmsStockQuan = ref();
- const loadingWmsStockQuan = ref(false);
- const disabled_btnWmsStockQuan = ref(false);
- const tableDataWmsStockQuan = ref<any>([]);
- const queryParamsWmsStockQuan = ref<any>({});
- const tableParamsWmsStockQuan = ref({
- page: 1,
- pageSize: 10,
- total: 0,
- });
+/***************************************************[瀹炴椂搴撳瓨鎿嶄綔]寮�濮�***************************************************/
+const showAdvanceQueryUIWmsStockQuan = ref(false);
+const tableRefWmsStockQuan = ref(null);
+const printDialogRefWmsStockQuan = ref();
+const editDialogRefWmsStockQuan = ref();
+const loadingWmsStockQuan = ref(false);
+const disabled_btnWmsStockQuan = ref(false);
+const tableDataWmsStockQuan = ref<any>([]);
+const queryParamsWmsStockQuan = ref<any>({});
+const tableParamsWmsStockQuan = ref({
+ page: 1,
+ pageSize: 10,
+ total: 0,
+});
- const printWmsStockQuanTitle = ref("");
- const editWmsStockQuanTitle = ref("");
+const printWmsStockQuanTitle = ref('');
+const editWmsStockQuanTitle = ref('');
- // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
- const changeAdvanceQueryUIWmsStockQuan = () => {
- showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value;
- }
+// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
+const changeAdvanceQueryUIWmsStockQuan = () => {
+ showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value;
+};
- // 鏌ヨ瀹炴椂搴撳瓨
- const handleQueryWmsStockQuan = async () => {
- loadingWmsStockQuan.value = true;
- disabled_btnWmsStockQuan.value = true;
- var res = await pageWmsStockQuan(Object.assign(queryParamsWmsStockQuan.value, tableParamsWmsStockQuan.value));
- if(res.data.type=="success"){
- tableDataWmsStockQuan.value = res.data.result?.items ?? [];
- tableParamsWmsStockQuan.value.total = res.data.result?.total;
- }
- loadingWmsStockQuan.value = false;
- disabled_btnWmsStockQuan.value = false;
- };
+// 8888鏌ヨ瀹炴椂搴撳瓨
+const handleQueryWmsStockQuan = async () => {
+ loadingWmsStockQuan.value = true;
+ disabled_btnWmsStockQuan.value = true;
+ var res = await ShortagePage(Object.assign(queryParamsWmsStockQuan.value, tableParamsWmsStockQuan.value));
+ if (res.data.type == 'success') {
+ tableDataWmsStockQuan.value = res.data.result?.items ?? [];
+ tableParamsWmsStockQuan.value.total = res.data.result?.total;
+ }
+ loadingWmsStockQuan.value = false;
+ disabled_btnWmsStockQuan.value = false;
+};
- // 閲嶇疆瀹炴椂搴撳瓨鏌ヨ
- const resetWmsStockQuan = async () => {
- queryParamsWmsStockQuan.value = {}
- };
+// 閲嶇疆瀹炴椂搴撳瓨鏌ヨ
+const resetWmsStockQuan = async () => {
+ queryParamsWmsStockQuan.value = {};
+};
- // 瀹炴椂搴撳瓨鍒楁帓搴�
- const sortChangeWmsStockQuan = async (column: any) => {
+// 瀹炴椂搴撳瓨鍒楁帓搴�
+const sortChangeWmsStockQuan = async (column: any) => {
queryParamsWmsStockQuan.value.field = column.prop;
queryParamsWmsStockQuan.value.order = column.order;
await handleQueryWmsStockQuan();
- };
+};
- // 鎵撳紑鏂板瀹炴椂搴撳瓨椤甸潰
- const openAddWmsStockQuan = () => {
- editWmsStockQuanTitle.value = '娣诲姞瀹炴椂搴撳瓨';
- editDialogRefWmsStockQuan.value.openDialog(1,{});
- };
-
-
+// 鎵撳紑鏂板瀹炴椂搴撳瓨椤甸潰
+const openAddWmsStockQuan = () => {
+ editWmsStockQuanTitle.value = '娣诲姞瀹炴椂搴撳瓨';
+ editDialogRefWmsStockQuan.value.openDialog(1, {});
+};
//閫変腑鐨勮
const checkRows = ref<{ id: number }[]>([]);
@@ -276,11 +231,122 @@
const handleSelectionChange = (val: any) => {
checkRows.value = val;
};
- // 鎵撳紑鎵撳嵃瀹炴椂搴撳瓨椤甸潰
- const openPrintWmsStockQuan = async (row: any) => {
- // printWmsStockQuanTitle.value = '鎵撳嵃瀹炴椂搴撳瓨';
+// 璁剧疆 tool header 鏁版嵁
+const setHeader = computed(() => {
+ return props.columns.filter((v) => v.isCheck);
+});
+// 瀹氫箟鐖剁粍浠朵紶杩囨潵鐨勫��
+const props = defineProps({
+ // 鑾峰彇鏁版嵁鐨勬柟娉曪紝鐢辩埗缁勪欢浼犻��
+ getData: {
+ type: Function,
+ required: true,
+ },
+ // 鍒楀睘鎬э紝鍜宔lementUI鐨凾able-column 灞炴�х浉鍚岋紝闄勫姞灞炴�э細isCheck-鏄惁榛樿鍕鹃�夊睍绀猴紝hideCheck-鏄惁闅愯棌璇ュ垪鐨勫彲鍕鹃�夊拰鎷栨嫿
+ columns: {
+ type: Array<any>,
+ default: () => [],
+ },
+ // 閰嶇疆椤癸細isBorder-鏄惁鏄剧ず琛ㄦ牸杈规锛宨sSerialNo-鏄惁鏄剧ず琛ㄦ牸搴忓彿锛宻howSelection-鏄惁鏄剧ず琛ㄦ牸鍙閫夛紝isSelection-鏄惁榛樿閫変腑琛ㄦ牸澶氶�夛紝pageSize-姣忛〉鏉℃暟锛宧ideExport-鏄惁闅愯棌瀵煎嚭鎸夐挳锛宔xportFileName-瀵煎嚭琛ㄦ牸鐨勬枃浠跺悕锛岀┖鍊奸粯璁ょ敤搴旂敤鍚嶇О浣滀负鏂囦欢鍚�
+ config: {
+ type: Object,
+ default: () => ({}),
+ },
+ // 绛涢�夊弬鏁�
+ param: {
+ type: Object,
+ default: () => ({}),
+ },
+ // 榛樿鎺掑簭鏂瑰紡锛寋prop:"鎺掑簭瀛楁",order:"ascending or descending"}
+ defaultSort: {
+ type: Object,
+ default: () => ({}),
+ },
+ // 瀵煎嚭鎶ヨ〃鑷畾涔夋暟鎹浆鎹㈡柟娉曪紝涓嶄紶鎸夊瓧娈靛�煎鍑�
+ exportChangeData: {
+ type: Function,
+ },
+ // 鎵撳嵃鏍囬
+ printName: {
+ type: String,
+ default: () => '',
+ },
+});
+const state = reactive({
+ data: [] as Array<EmptyObjectType>,
+ loading: false,
+ exportLoading: false,
+ total: 0,
+ page: {
+ page: 1,
+ pageSize: 10,
+ field: '',
+ order: '',
+ },
+ showPagination: true,
+ selectlist: [] as EmptyObjectType[],
+ checkListAll: true,
+ checkListIndeterminate: false,
+});
+// 鎵撳嵃
+const openPrintWmsStockQuan = () => {
+ printJs({
+ printable: 'printContent', // 寮曠敤瑕佹墦鍗扮殑鍏冪礌 ID
+ type: 'html', // 浣跨敤 HTML 鍐呭
+ css: ['//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css', '//unpkg.com/element-plus/dist/index.css'],
+ style: `
+ @media print {
+ .mb15 { margin-bottom: 15px; }
+ .el-button--small i.iconfont { font-size: 12px !important; margin-right: 5px; }
+ }
+ .table-th { word-break: break-all; white-space: pre-wrap; }
+ .table-center { text-align: center; }
+ `,
+ });
+
+ // // https://printjs.crabbly.com/#documentation
+ // // 鑷畾涔夋墦鍗�
+ // let tableTh = '';
+ // let tableTrTd = '';
+ // let tableTd: any = {};
+ // // 琛ㄥご
+ // setHeader.value.forEach((v: any) => {
+ // if (v.prop === 'action') {
+ // return;
+ // }
+ // tableTh += `<th class="table-th">${v.label}</th>`;
+ // });
+ // // 琛ㄦ牸鍐呭
+ // state.data.forEach((val: any, key: any) => {
+ // if (!tableTd[key]) tableTd[key] = [];
+ // setHeader.value.forEach((v: any) => {
+ // if (v.prop === 'action') {
+ // return;
+ // }
+ // if (v.type === 'text') {
+ // tableTd[key].push(`<td class="table-th table-center">${val[v.prop]}</td>`);
+ // } else if (v.type === 'image') {
+ // tableTd[key].push(`<td class="table-th table-center"><img src="${val[v.prop]}" style="width:${v.width}px;height:${v.height}px;"/></td>`);
+ // } else {
+ // tableTd[key].push(`<td class="table-th table-center">${val[v.prop]}</td>`);
+ // }
+ // });
+ // tableTrTd += `<tr>${tableTd[key].join('')}</tr>`;
+ // });
+ // // 鎵撳嵃
+ // printJs({
+ // printable: `<div style=display:flex;flex-direction:column;text-align:center><h3>333</h3></div><table border=1 cellspacing=0><tr>${tableTh}${tableTrTd}</table>`,
+ // type: 'raw-html',
+ // css: ['//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css', '//unpkg.com/element-plus/dist/index.css'],
+ // style: `@media print{.mb15{margin-bottom:15px;}.el-button--small i.iconfont{font-size: 12px !important;margin-right: 5px;}}; .table-th{word-break: break-all;white-space: pre-wrap;}.table-center{text-align: center;}`,
+ // });
+};
+
+// 鎵撳紑鎵撳嵃瀹炴椂搴撳瓨椤甸潰
+const openPrintWmsStockQuan2 = async (row: any) => {
+ // printWmsStockQuanTitle.value = '鎵撳嵃瀹炴椂搴撳瓨';
ElMessageBox.confirm('鏄惁纭鎵撳嵃锛�', '鎻愮ず', {
confirmButtonText: '纭',
@@ -288,151 +354,116 @@
type: 'warning',
})
.then(async () => {
+ const handleArr: number[] = [];
+ checkRows.value.forEach((item) => {
+ // handleArr.push(item.id);
+ item.PrintSource = 1; //搴撳瓨璺熻釜鐮佹墦鍗�
+ item.PrintType = 1;
+ item.PrintSheetNum = 1;
+ item.PrintNum = 1;
+ item.PrintStatu = 1;
+ item.IsAllowPrint = 1;
+ });
- const handleArr: number[] = [];
- checkRows.value.forEach((item) => {
- // handleArr.push(item.id);
- item.PrintSource = 1 //搴撳瓨璺熻釜鐮佹墦鍗�
- item.PrintType = 1
- item.PrintSheetNum = 1
- item.PrintNum = 1
- item.PrintStatu = 1
- item.IsAllowPrint = 1
-
- });
+ const obj = { id: handleArr };
-
- const obj = { id: handleArr };
-
- var res = await addWmsRecordSncodePrint(checkRows.value);
- if (res.data && res.data.code == 200) {
- ElMessage.success("娣诲姞鎴愬姛");
- }
-
+ var res = await addWmsRecordSncodePrint(checkRows.value);
+ if (res.data && res.data.code == 200) {
+ ElMessage.success('娣诲姞鎴愬姛');
+ }
})
.catch(() => {
ElMessage.info('宸插彇娑堝垹闄�');
});
+};
- }
-
- // 鎵撳紑缂栬緫瀹炴椂搴撳瓨椤甸潰
- const openEditWmsStockQuan = (row: any) => {
- editWmsStockQuanTitle.value = '缂栬緫瀹炴椂搴撳瓨';
- editDialogRefWmsStockQuan.value.openDialog(2,row);
- };
+// 鎵撳紑缂栬緫瀹炴椂搴撳瓨椤甸潰
+const openEditWmsStockQuan = (row: any) => {
+ editWmsStockQuanTitle.value = '缂栬緫瀹炴椂搴撳瓨';
+ editDialogRefWmsStockQuan.value.openDialog(2, row);
+};
- // 鍒犻櫎瀹炴椂搴撳瓨
- const delWmsStockQuan = (row: any) => {
- ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- })
- .then(async () => {
- loadingWmsStockQuan.value = true;
- var ret = await deleteWmsStockQuan(row);
- if(ret.data.type=="success"){
- ElMessage.success("鍒犻櫎鎴愬姛");
- }
- loadingWmsStockQuan.value = false;
- handleQueryWmsStockQuan();
- })
- .catch(() => {});
- };
+// 鍒犻櫎瀹炴椂搴撳瓨
+const delWmsStockQuan = (row: any) => {
+ ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ })
+ .then(async () => {
+ loadingWmsStockQuan.value = true;
+ var ret = await deleteWmsStockQuan(row);
+ if (ret.data.type == 'success') {
+ ElMessage.success('鍒犻櫎鎴愬姛');
+ }
+ loadingWmsStockQuan.value = false;
+ handleQueryWmsStockQuan();
+ })
+ .catch(() => {});
+};
- // 鏀瑰彉瀹炴椂搴撳瓨椤甸潰瀹归噺
- const handleSizeChangeWmsStockQuan = (val: number) => {
- tableParamsWmsStockQuan.value.pageSize = val;
- handleQueryWmsStockQuan();
- };
+// 鏀瑰彉瀹炴椂搴撳瓨椤甸潰瀹归噺
+const handleSizeChangeWmsStockQuan = (val: number) => {
+ tableParamsWmsStockQuan.value.pageSize = val;
+ handleQueryWmsStockQuan();
+};
- // 鏀瑰彉瀹炴椂搴撳瓨椤电爜搴忓彿
- const handleCurrentChangeWmsStockQuan = (val: number) => {
- tableParamsWmsStockQuan.value.page = val;
- handleQueryWmsStockQuan();
- };
+// 鏀瑰彉瀹炴椂搴撳瓨椤电爜搴忓彿
+const handleCurrentChangeWmsStockQuan = (val: number) => {
+ tableParamsWmsStockQuan.value.page = val;
+ handleQueryWmsStockQuan();
+};
/***************************************************[瀹炴椂搴撳瓨鎿嶄綔]缁撴潫***************************************************/
/***************************************************[瀹炴椂搴撳瓨瀵煎嚭]寮�濮�***************************************************/
//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍
const functionMapWmsStockQuan = {
- getEnumStockStatusData_Index,
- getEnumQCStatusData_Index,
- formatDate_T_Date,
- formatDate_T_Time
+ getEnumStockStatusData_Index,
+ getEnumQCStatusData_Index,
+ formatDate_T_Date,
+ formatDate_T_Time,
};
//鐐瑰嚮瀵煎嚭鎸夐挳
-const handleExportExcelWmsStockQuan = async (formData:Blob) => {
- loadingWmsStockQuan.value = true;
- disabled_btnWmsStockQuan.value = true;
- var new_tableParamsWmsStockQuan=JSON.parse(JSON.stringify(tableParamsWmsStockQuan.value));
- new_tableParamsWmsStockQuan.page = 1;
- new_tableParamsWmsStockQuan.pageSize = 100000;
- var res = await pageWmsStockQuan(Object.assign(queryParamsWmsStockQuan.value, new_tableParamsWmsStockQuan));
- if(res.data.type=="success"){
- exportExcelWmsStockQuan(res.data.result?.items ?? []);
- }
- loadingWmsStockQuan.value = false;
- disabled_btnWmsStockQuan.value = false;
+const handleExportExcelWmsStockQuan = async (formData: Blob) => {
+ loadingWmsStockQuan.value = true;
+ disabled_btnWmsStockQuan.value = true;
+ var new_tableParamsWmsStockQuan = JSON.parse(JSON.stringify(tableParamsWmsStockQuan.value));
+ new_tableParamsWmsStockQuan.page = 1;
+ new_tableParamsWmsStockQuan.pageSize = 100000;
+ var res = await ShortagePage(Object.assign(queryParamsWmsStockQuan.value, new_tableParamsWmsStockQuan));
+ if (res.data.type == 'success') {
+ exportExcelWmsStockQuan(res.data.result?.items ?? []);
+ }
+ loadingWmsStockQuan.value = false;
+ disabled_btnWmsStockQuan.value = false;
};
//瀵煎嚭
-const exportExcelWmsStockQuan = async (exportDataList:Array) => {
- exportPageExcel(exportDataList, tableRefWmsStockQuan,"瀹炴椂搴撳瓨",functionMapWmsStockQuan);
+const exportExcelWmsStockQuan = async (exportDataList: Array) => {
+ exportPageExcel(exportDataList, tableRefWmsStockQuan, '瀹炴椂搴撳瓨', functionMapWmsStockQuan);
};
/***************************************************[瀹炴椂搴撳瓨瀵煎嚭]缁撴潫***************************************************/
- // 瀹炴椂搴撳瓨椤甸潰鍔犺浇鏃�
+// 瀹炴椂搴撳瓨椤甸潰鍔犺浇鏃�
- const getEnumLockStatusData_Index = ref<any>([]);
- onMounted(async () => {
- getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? [];
- getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? [];
- });
+const getEnumLockStatusData_Index = ref<any>([]);
+onMounted(async () => {
+ getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? [];
+ getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? [];
+});
- handleQueryWmsStockQuan();
+handleQueryWmsStockQuan();
-
-
-
-
- //琛ㄦ牸姹囨��
-const getSummaries = (param: any) => {
- const { columns, data } = param;
- const sums:any = [];
- columns.forEach((column, index) => {
- if (index === 0) {
- sums[index] = '鍚堣';
- return;
- }
- //debugger
- if (column.property != 'quantity' && column.property != 'scrapQuantity'
- && column.property != 'useNumber'
- && column.property != 'gridNumber'
- ) {
- sums[index] = '';
- return "";
- }
- const values = data.map(item => Number(item[column.property]));
- if (!values.every(value => isNaN(value))) {
- sums[index] = Number(values.reduce((prev, curr) => {
- const value = Number(curr);
- if (!isNaN(value)) {
- return prev + curr;
- } else {
- return prev;
- }
- }, 0)).toFixed(3);
- sums[index] += '';
- } else {
- sums[index] = '';//N/A
- }
- });
-
- return sums;
-}
-
-
-
+// 鎵撳嵃
+let itemSubTitle = ref<any[]>([]);
+const handleHtmlPrint = () => {
+ proxy.$refs['printTableRef'].printHd('缂哄寘娓呭崟', itemSubTitle.value, checkRows.value); //deltailList
+};
+// //鎵撳嵃
+// const print = ref({
+// id: 'printContent',
+// popTitle: ' ',
+// //extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
+// extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
+// })
</script>
<style scoped>
:deep(.el-input),
@@ -441,4 +472,3 @@
width: 100%;
}
</style>
-
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs
index cf828e0..f735634 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs
@@ -166,4 +166,41 @@
public string OrderId { get; set; } // 鍗曞彿
public int Count { get; set; } // 瀵瑰簲鐨勬暟閲�
public bool IsKitting { get; set; }
+}
+
+/// <summary>
+/// 鎵规缂烘枡娓呭崟
+/// </summary>
+public class WmsShortageListOutput
+{
+ /// <summary>
+ /// 缂撳瓨宀涙暟閲�
+ /// </summary>
+ public int HasCount { get; set; }
+
+ /// <summary>
+ /// mes杩囨潵鐨勬�绘暟閲�
+ /// </summary>
+ public int TotalCount { get; set; }
+
+ /// <summary>
+ /// 缂烘枡鏁伴噺
+ /// </summary>
+ public int ShortageCount { get; set; }
+
+ /// <summary>
+ /// 鎵规
+ /// </summary>
+ public string PlanNo { get; set; }
+
+ /// <summary>
+ /// 璁㈠崟鍙�
+ /// </summary>
+ public string OrderId { get; set; }
+
+ /// <summary>
+ /// 鍖呰鍙�
+ /// </summary>
+ public string PackageCode { get; set; }
+
}
\ No newline at end of file
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
index f246294..5ff4f56 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -13,9 +13,13 @@
public class WmsStockQuanService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<WmsStockQuan> _rep;
- public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep)
+ private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _Mes_BatchOrderUPI_New_Rep;
+
+ public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep,
+ SqlSugarRepository<Mes_BatchOrderUPI_New> Mes_BatchOrderUPI_New_Rep)
{
_rep = rep;
+ _Mes_BatchOrderUPI_New_Rep = Mes_BatchOrderUPI_New_Rep;
}
/// <summary>
@@ -302,5 +306,124 @@
return groupedResult; // 杩斿洖鍒嗙粍缁撴灉
}
+
+
+
+ /// <summary>
+ /// 涓嶅垎椤垫煡璇㈡壒娆$己鏂欐竻鍗� 涓嶉綈鍖�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpGet]
+ [ApiDescriptionSettings(Name = "ShortageList")]
+ [Description("WmsStockQuan/ShortageList")]
+ public async Task<List<WmsShortageListOutput>> ShortageList([FromQuery] KittingListInput input)
+ {
+ var list = await _rep.AsQueryable()
+ .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
+ .Select(x => new WmsShortageListOutput
+ {
+ OrderId = x.OrderId,
+ PlanNo = x.PlanNo,
+ PackageCode = x.PackageCode
+ })
+ .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
+
+ // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
+ var groupedResult = list
+ .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍
+ .Select(g => new WmsShortageListOutput
+ {
+ OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
+ PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo
+ PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode
+ HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
+ TotalCount = 0, // 鍒濆鍖� TotalCount
+ ShortageCount = 0 // 鍒濆鍖� ShortageCount
+ })
+ .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭
+ .ToList(); // 杞崲涓� List
+
+ // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� CountTotal
+ foreach (var item in groupedResult)
+ {
+ item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁�
+ item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0;
+ }
+
+ return groupedResult; // 杩斿洖鍒嗙粍缁撴灉
+ }
+
+
+
+
+ /// <summary>
+ /// 鍒嗛〉鏌ヨ鎵规缂烘枡娓呭崟 涓嶉綈鍖�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "ShortagePage")]
+ [Description("WmsStockQuan/ShortagePage")]
+ public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePage(KittingListInput input)
+ {
+ // 鑾峰彇鍩虹鏁版嵁
+ var list = await _rep.AsQueryable()
+ .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
+ .Select(x => new WmsShortageListOutput
+ {
+ OrderId = x.OrderId,
+ PlanNo = x.PlanNo,
+ PackageCode = x.PackageCode
+ })
+ .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
+
+ // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
+ var groupedResult = list
+ .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍
+ .Select(g => new WmsShortageListOutput
+ {
+ OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
+ PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo
+ PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode
+ HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
+ TotalCount = 0, // 鍒濆鍖� TotalCount
+ ShortageCount = 0 // 鍒濆鍖� ShortageCount
+ })
+ .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭
+ .ToList(); // 杞崲涓� List
+
+ // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� TotalCount
+ foreach (var item in groupedResult)
+ {
+ item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁�
+ item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0;
+ }
+
+ // 鍒嗛〉澶勭悊
+ var pagedResult = groupedResult.AsQueryable() // 灏嗗垎缁勭粨鏋滆浆鎹负鍙煡璇㈢殑闆嗗悎
+ .OrderBy(g => g.OrderId) // 杩涜鎺掑簭
+ .Skip((input.Page - 1) * input.PageSize) // 璺宠繃鍓嶉潰鐨勯〉鏁�
+ .Take(input.PageSize) // 鍙栧嚭褰撳墠椤电殑鏁版嵁
+ .ToList(); // 杞崲涓� List
+
+ var totalCount = groupedResult.Count; // 鑾峰彇鎬绘暟
+ var totalPages = (int)Math.Ceiling((double)totalCount / input.PageSize); // 璁$畻鎬婚〉鏁�
+
+ // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉
+ return new SqlSugarPagedList<WmsShortageListOutput>
+ {
+ Page = input.Page,
+ PageSize = input.PageSize,
+ Total = totalCount,
+ TotalPages = totalPages,
+ Items = pagedResult,
+ HasPrevPage = input.Page > 1,
+ HasNextPage = input.Page < totalPages
+ };
+ }
+
+
+
}
--
Gitblit v1.9.3