From 166a45a9d44e03e63552c6afa975c9ef0cc902e5 Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期二, 03 六月 2025 17:50:41 +0800 Subject: [PATCH] 功能,页面更新优化 --- 代码管理/WMS/WIDESEA_WMSClient/src/views/inbound/returnOrder.vue | 30 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs | 12 代码管理/WMS/WIDESEA_WMSClient/src/views/basic/locationInfoRow.vue | 4 代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/outStockLockInfo.vue | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs | 4 代码管理/LargeScreen/CP-Screen/src/api/ajax.js | 2 代码管理/LargeScreen/CP-Screen/src/store/modules/setting.js | 4 代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue | 77 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs | 20 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs | 1 代码管理/LargeScreen/CP-Screen/src/views/indexs/center-map.vue | 4 代码管理/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue | 12 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs | 17 代码管理/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs | 10 代码管理/LargeScreen/CP-Screen/src/views/indexs/station-two.vue | 710 +++++++------------ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs | 6 代码管理/LargeScreen/CP-Screen/src/router/index.js | 2 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderMaterielSpec.vue | 155 ++++ 代码管理/LargeScreen/CP-Screen/src/views/indexs/index.vue | 6 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs | 25 代码管理/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 12 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs | 20 代码管理/LargeScreen/CP-Screen/src/api/api.js | 2 代码管理/LargeScreen/CP-Screen/src/api/http.js | 10 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 7 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js | 82 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs | 6 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/MesOutOrderDetail.vue | 15 代码管理/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue | 16 代码管理/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue | 703 ++++--------------- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs | 5 36 files changed, 1,013 insertions(+), 1,028 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/ajax.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/ajax.js" index e04170d..1c8db17 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/ajax.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/ajax.js" @@ -3,7 +3,7 @@ // import { config } from 'vue/types/umd'; axios.defaults.withCredentials=true; axios.defaults.crossDomain=true; -axios.defaults.baseURL = 'http://10.30.4.92:9283';//'http://192.168.2.51:8099'; //'http://localhost:8099'; //'http://192.168.2.51:8099';// +axios.defaults.baseURL = 'http://10.30.4.92:7081';//'http://192.168.2.51:8099'; //'http://localhost:8099'; //'http://192.168.2.51:8099';// axios.defaults.headers.post["Content-Type"]="application/json;charset=utf-8"; // 閿欒淇℃伅澶勭悊 const errorHandle = (status, other) => { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/api.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/api.js" index 788026f..07be84f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/api.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/api.js" @@ -10,7 +10,7 @@ let baseUrl = UtilVar.baseUrl const CancelToken = axios.CancelToken; export { baseUrl }; -// axios.defaults.withCredentials = true; +axios.defaults.withCredentials = true; // 娣诲姞璇锋眰鎷︽埅鍣� axios.interceptors.request.use(function (config) { // 鍦ㄥ彂閫佽姹備箣鍓嶅仛浜涗粈涔� 浼爐oken diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/http.js" index bb40ce8..d5784d0 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/http.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/api/http.js" @@ -7,7 +7,7 @@ export function ProLocationStatistics (data) { return axios.post('/api/Large/ProLocationStatistics?id=7', data)//杩斿洖鐨勬椂promies瀵硅薄锛屾墍浠ョ洿鎺eturn鍑哄幓灏卞ソ浜� } -//鎴愬搧杩戜竷澶╃粺璁� +//鎴愬搧鍏ュ簱浜ч噺缁熻 export function Productions (data) { return axios.post('/api/Large/Productions', data)//杩斿洖鐨勬椂promies瀵硅薄锛屾墍浠ョ洿鎺eturn鍑哄幓灏卞ソ浜� } @@ -23,3 +23,11 @@ export function ProductionStock (data) { return axios.post('/api/Large/ProductionStock', data)//杩斿洖鐨勬椂promies瀵硅薄锛屾墍浠ョ洿鎺eturn鍑哄幓灏卞ソ浜� } +//鎴愬搧浜у搧搴撳瓨鎬绘暟缁熻 +export function GetCPLargeStockCount (data) { + return axios.post('/api/Large/GetCPLargeStockCount', data)//杩斿洖鐨勬椂promies瀵硅薄锛屾墍浠ョ洿鎺eturn鍑哄幓灏卞ソ浜� +} +//鎴愬搧杩戜竷澶╀换鍔$粺璁� +export function GetProWeekTasks (data) { + return axios.post('/api/Large/GetProWeekTasks', data)//杩斿洖鐨勬椂promies瀵硅薄锛屾墍浠ョ洿鎺eturn鍑哄幓灏卞ソ浜� +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/router/index.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/router/index.js" index 52d9157..87a4813 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/router/index.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/router/index.js" @@ -29,7 +29,7 @@ ]; const router = new VueRouter({ mode: "hash", - // base: process.env.BASE_URL, + base: process.env.BASE_URL, routes }); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/store/modules/setting.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/store/modules/setting.js" index 8cb31cf..3a4fe56 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/store/modules/setting.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/store/modules/setting.js" @@ -19,9 +19,9 @@ limitMoveNum: 4, // 寮�濮嬫棤缂濇粴鍔ㄧ殑鏁版嵁閲� this.dataList.length singleHeight: 0, // 鍗曟杩愬姩鍋滄鐨勯珮搴�(榛樿鍊�0鏄棤缂濅笉鍋滄鐨勬粴鍔�) direction => 0/1 singleWidth: 0, // 鍗曟杩愬姩鍋滄鐨勫搴�(榛樿鍊�0鏄棤缂濅笉鍋滄鐨勬粴鍔�) direction => 2/3 - waitTime: 3000 // 鍗曟杩愬姩鍋滄鐨勬椂闂�(榛樿鍊�1000ms) + waitTime: 8000 // 鍗曟杩愬姩鍋滄鐨勬椂闂�(榛樿鍊�1000ms) }, - echartsAutoTime:3000,//echarts 鍥捐嚜鍔ㄨ姹傛帴鍙f椂闂� + echartsAutoTime:8000,//echarts 鍥捐嚜鍔ㄨ姹傛帴鍙f椂闂� }), getters: { //鏍规嵁鑿滃崟璺緞鑾峰彇 鑿滃崟淇℃伅 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/center-map.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/center-map.vue" index 1898df6..a7de180 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/center-map.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/center-map.vue" @@ -268,7 +268,7 @@ color: "#FFF", show: true, }, - // colorBy: "data", + colorBy: "data", itemStyle: { color: "rgba(255,255,255,1)", borderColor: "rgba(2255,255,255,2)", @@ -329,7 +329,7 @@ #00eaff 48.8525390625%, #01aaff 100% ); - -webkit-background-clip: text; + -webkit-text-fill-color: transparent; margin: 0 10px; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/index.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/index.vue" index 3178c3c..282fadd 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/index.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/index.vue" @@ -17,14 +17,14 @@ <ItemWrap class="contetn_left-bottom contetn_lr-item" - title="鎴愬搧鎵ц浠诲姟缁熻" + title="鎴愬搧褰撴湀鎵ц浠诲姟缁熻" > <stationone/> </ItemWrap> <ItemWrap class="contetn_left-bottom contetn_lr-item" - title="鎴愬搧搴撳瓨灞炴�у垎甯�" + title="鎴愬搧浠撲骇鍝佸簱瀛樻�绘暟缁熻" > <stationtwo/> </ItemWrap> @@ -38,7 +38,7 @@ </div> <div class="contetn_center"> - <ItemWrap class="contetn_left-bottom contetn_lr-item" style="height: 66vh;" title="鎴愬搧浠诲姟缁熻"> + <ItemWrap class="contetn_left-bottom contetn_lr-item" style="height: 66vh;" title="鎴愬搧杩戜節澶╀换鍔$粺璁�"> <LeftBottom/> </ItemWrap> <ItemWrap diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue" index 4018011..883b65a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue" @@ -1,568 +1,187 @@ -<!-- - * @Author: daidai - * @Date: 2022-02-28 16:16:42 - * @LastEditors: Please set LastEditors - * @LastEditTime: 2022-07-20 17:57:11 - * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue ---> <template> <div id="name" style="width: 100%; height: 100%"> - <Echart :options="options" style="width: 100%; height: 100%"></Echart> + <Echart + :options="options" + style="width: 100%; height: 100%" + v-if="!loading" + /> + <div v-else style="color: white; text-align: center; padding-top: 50px"> + 鏁版嵁鍔犺浇涓�... + </div> + <div v-if="error" style="color: red; text-align: center; padding-top: 50px"> + 鏁版嵁鍔犺浇澶辫触: {{ error }} + </div> </div> </template> <script> -import { currentGET } from "api/modules"; -import { ProLocationStatistics } from "@/api/http.js"; +import { GetProWeekTasks } from "@/api/http.js"; import * as echarts from 'echarts'; -let style = { - fontSize: 24, -}; + export default { data() { return { - pageflag: true, - myChart: {}, options: {}, + loading: false, + error: null, + timer: null }; }, - filters: { - numsFilter(msg) { - return msg || 0; - }, - }, created() { - this.getData(); - }, - mounted() { - this.init(); + this.fetchData(); + this.startAutoRefresh(); }, beforeDestroy() { - this.clearData(); + this.stopAutoRefresh(); }, methods: { - init() { + initEmptyChart() { this.options = { - //娴姩妗� - tooltip: {}, - //鍥句緥 - legend: { - right: '12%', - bottom: '4%', - textStyle: { - color: '#fff', - fontSize: '13' - }, - itemGap: 20, - itemWidth: 10, - itemHeight: 10, - icon: 'circle', - data: ['PM2.5', 'CO2', 'SO'] - }, - grid: { - left: '8%', - top: '15%', - bottom: '14%', - width: '86%', - }, - visualMap: [{ - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#69dbf7' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: 'SO', - seriesIndex: 2 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#1be57a' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: 'CO2', - seriesIndex: 1 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#feb01e' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: 'PM2.5', - seriesIndex: 0 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#69dbf7' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: 'SO', - seriesIndex: 5 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#1be57a' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: 'CO2', - seriesIndex: 4 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#feb01e' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: 'PM2.5', - seriesIndex: 3 - }], - //x杞� - xAxis: { - axisLine: { - lineStyle: { - color: '#132987' - } - }, - axisLabel: { - textStyle: { - color: '#FFF', - fontSize: 12 - }, - }, - //鍒诲害绾� - axisTick: { - show: false - }, - //鍧愭爣杞存樉绀哄�� - data: ["1鏃�", "2鏃�", "3鏃�", "4鏃�", "5鏃�", "6鏃�", "7鏃�", "8鏃�"] - }, - //y杞� - yAxis: { - min: 0, - max: 100, - axisLabel: { // 鏀瑰彉y杞村瓧浣撻鑹插拰澶у皬 - //formatter: '{value} m鲁 ', // 缁檡杞存坊鍔犲崟浣� - textStyle: { - color: '#fff', - fontSize: 12, - }, - }, - //鍧愭爣杞寸嚎 - axisLine: { - show: false, - }, - //鍒诲害绾� - axisTick: { - show: false - }, - //鍦╣rid鍖哄煙涓殑鍒嗛殧绾� - splitLine: { - show: true, - lineStyle: { - color: '#132987', - } - }, - }, - - // - series: [{ - name: 'PM2.5', - type: 'line', - symbolSize: [0, 0], - itemStyle: { - color: '#feb01e' - }, - data: [43, 50, 41, 18, 28, 25, 26, 40], - }, { - name: 'CO2', - type: 'line', - symbolSize: [0, 0], - itemStyle: { - color: '#1be57a' - }, - data: [21, 30, 37, 39, 23, 37, 5, 50] - }, { - name: 'SO', - type: 'line', - symbolSize: [0, 0], - itemStyle: { - color: '#69dbf7' - }, - data: [76, 58, 60, 38, 49, 59, 78, 60] - }, { //姘存尝绾圭偣 - name: 'PM2.5', - type: 'effectScatter', - symbolSize: [5, 5], - rippleEffect: { - period: 1, - scale: 4, - brushType: 'fill' - }, - itemStyle: { - color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ - offset: 0, - color: '#feb01e' - }, { - offset: 1, - color: 'rgba(254,176,30,.3)' - }]) - }, - data: [43, 50, 41, 18, 28, 25, 26, 40] - - }, { //姘存尝绾圭偣 - name: 'CO2', - type: 'effectScatter', - symbolSize: [5, 5], - rippleEffect: { - period: 1, - scale: 4, - brushType: 'fill' - }, - itemStyle: { - color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ - offset: 0, - color: '#1be57a' - }, { - offset: 1, - color: 'rgba(27,229,122,.3)' - }]) - }, - data: [21, 30, 37, 39, 23, 37, 5, 50] - - }, { //姘存尝绾圭偣 - name: 'SO', - type: 'effectScatter', - symbolSize: [5, 5], - rippleEffect: { - period: 1, - scale: 4, - brushType: 'fill' - }, - itemStyle: { - color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ - offset: 0, - color: '#69dbf7' - }, { - offset: 1, - color: '#aefbc3' - }]) - }, - markLine: { - symbol: "none", - label: { - normal: { - show: false, - } - }, - lineStyle: { - type: "solid", - color: 'rgba(210,56,56,.6)', - width: 2 - }, - data: [{ - yAxis: 60 - }] - }, - data: [76, 58, 60, 38, 49, 59, 78, 60] - - }] - }; - }, - clearData() { - if (this.timer) { - clearInterval(this.timer); - this.timer = null; - } - }, - async getData() { - this.pageflag = true; - // currentGET("big2").then((res) => { - // if (!this.timer) { - // console.log("璁惧鎬昏2", res); - // } - // if (res.success) { - // this.userOverview = res.data; - // this.onlineconfig = { - // ...this.onlineconfig, - // number: [1] - // } - // this.config = { - // ...this.config, - // number: [7] - // } - // this.offlineconfig = { - // ...this.offlineconfig, - // number: [4] - // } - // this.laramnumconfig = { - // ...this.laramnumconfig, - // number: [10] - // } - // this.switper(); - // } else { - // this.pageflag = false; - // this.$Message.warning(res.msg); - // } - // }); - var rep = await ProLocationStatistics(); - this.options = { - //娴姩妗� - tooltip: {}, - //鍥句緥 - legend: { - right: '12%', - bottom: '4%', - textStyle: { - color: '#fff', - fontSize: '13' - }, - itemGap: 20, - itemWidth: 10, - itemHeight: 10, - icon: 'circle', - data: ['鎴愬搧鍏ュ簱', '鎴愬搧鍑哄簱', '鎴愬搧鍥炴'] - }, - grid: { - left: '8%', - top: '15%', - bottom: '14%', - width: '86%', - }, - visualMap: [{ - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#69dbf7' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: '鎴愬搧鍏ュ簱', - seriesIndex: 2 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#1be57a' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: '鎴愬搧鍑哄簱', - seriesIndex: 1 - }, { - type: 'piecewise', - show: false, - pieces: [{ - gt: 0, - lte: 60, - color: '#feb01e' - }, { - gte: 60, - color: '#e5421b' - }], - seriesName: '鎴愬搧鍥炴', - seriesIndex: 0 - }], - //x杞� - xAxis: { - axisLine: { - lineStyle: { - color: '#132987' - } - }, - axisLabel: { - textStyle: { - color: '#FFF', - fontSize: 12 - }, - }, - //鍒诲害绾� - axisTick: { - show: false - }, - //鍧愭爣杞存樉绀哄�� - data: ["04/19", "04/20", "04/21", "04/22", "04/23", "04/24", "04/25"] - }, - //y杞� - yAxis: { - axisLabel: { // 鏀瑰彉y杞村瓧浣撻鑹插拰澶у皬 - //formatter: '{value} m鲁 ', // 缁檡杞存坊鍔犲崟浣� - textStyle: { - color: '#fff', - fontSize: 12, - }, - }, - //鍧愭爣杞寸嚎 - axisLine: { - show: false, - }, - //鍒诲害绾� - axisTick: { - show: false - }, - //鍦╣rid鍖哄煙涓殑鍒嗛殧绾� - splitLine: { - show: true, - lineStyle: { - color: '#132987', - } - }, - }, - - // - series: [{ - name: '鎴愬搧鍏ュ簱', - type: 'line', - symbolSize: [0, 0], - itemStyle: { - color: '#feb01e' - }, - data: [160, 156, 150, 180, 170, 200, 20], - }, { - name: '鎴愬搧鍑哄簱', - type: 'line', - symbolSize: [0, 0], - itemStyle: { - color: '#1be57a' - }, - data: [80, 115, 120, 130, 91, 99, 20] - }, { - name: '鎴愬搧鍥炴', - type: 'line', - symbolSize: [0, 0], - itemStyle: { - color: '#69dbf7' - }, - data: [70, 113, 118, 111, 89, 99, 32] - }, { //姘存尝绾圭偣 - name: '鎴愬搧鍏ュ簱', - type: 'effectScatter', - symbolSize: [5, 5], - rippleEffect: { - period: 1, - scale: 4, - brushType: 'fill' - }, - itemStyle: { - color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ - offset: 0, - color: '#feb01e' - }, { - offset: 1, - color: 'rgba(254,176,30,.3)' - }]) - }, - data: [160, 156, 150, 180, 170, 200, 20] - - }, { //姘存尝绾圭偣 - name: '鎴愬搧鍑哄簱', - type: 'effectScatter', - symbolSize: [5, 5], - rippleEffect: { - period: 1, - scale: 4, - brushType: 'fill' - }, - itemStyle: { - color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ - offset: 0, - color: '#1be57a' - }, { - offset: 1, - color: 'rgba(27,229,122,.3)' - }]) - }, - data: [80, 115, 120, 130, 91, 99, 20] - - }, { //姘存尝绾圭偣 - name: '鎴愬搧鍥炴', - type: 'effectScatter', - symbolSize: [5, 5], - rippleEffect: { - period: 1, - scale: 4, - brushType: 'fill' - }, - itemStyle: { - color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ - offset: 0, - color: '#69dbf7' - }, { - offset: 1, - color: '#aefbc3' - }]) - }, - markLine: { - symbol: "none", - label: { - normal: { - show: false, - } - }, - lineStyle: { - type: "solid", - color: 'rgba(210,56,56,.6)', - width: 2 - }, - data: [{ - yAxis: 60 - }] - }, - data: [70, 113, 118, 111, 89, 99, 32] - - }] - }; - this.switper(); - }, - //杞 - switper() { - if (this.timer) { - return; - } - let looper = (a) => { - this.getData(); + tooltip: { + trigger: 'axis', + formatter: params => { + let result = `${params[0].axisValue}<br>`; + params.forEach(item => { + result += `${item.marker} ${item.seriesName}: ${item.value}<br>`; + }); + return result; + } + }, + legend: { + right: '12%', + bottom: '4%', + textStyle: { + color: '#fff', + fontSize: '13' + }, + itemGap: 20, + itemWidth: 10, + itemHeight: 10, + icon: 'circle', + data: ['鎴愬搧鍏ュ簱', '鎴愬搧鍑哄簱', '绌烘鍥炴祦', '鎴愬搧鍥炲簱'] + }, + grid: { + left: '8%', + top: '15%', + bottom: '14%', + width: '86%', + }, + xAxis: { + type: 'category', + axisLine: { + lineStyle: { + color: '#132987' + } + }, + axisLabel: { + textStyle: { + color: '#FFF', + fontSize: 12 + }, + }, + axisTick: { + show: false + }, + data: ['鍔犺浇涓�...'] + }, + yAxis: { + type: 'value', + axisLabel: { + textStyle: { + color: '#fff', + fontSize: 12, + }, + }, + axisLine: { + show: false, + }, + axisTick: { + show: false + }, + splitLine: { + show: true, + lineStyle: { + color: '#132987', + } + }, + }, + series: [ + { name: '鎴愬搧鍏ュ簱', type: 'line', data: [] }, + { name: '鎴愬搧鍑哄簱', type: 'line', data: [] }, + { name: '绌烘鍥炴祦', type: 'line', data: [] }, + { name: '鎴愬搧鍥炲簱', type: 'line', data: [] } + ] }; - this.timer = setInterval( - looper, - this.$store.state.setting.echartsAutoTime - ); }, - }, + async fetchData() { + this.loading = true; + this.error = null; + + try { + console.log('姝e湪璇锋眰鏁版嵁...'); + const response = await GetProWeekTasks({}); + console.log('瀹屾暣鍝嶅簲:', response); // 鎵撳嵃瀹屾暣鍝嶅簲鏌ョ湅缁撴瀯 + + // 鐩存帴浣跨敤response浣滀负鏁版嵁锛堟牴鎹疄闄呭搷搴旂粨鏋勮皟鏁达級 + if (!response || !response.dateRange || !response.dailyStatistics) { + throw new Error('鏁版嵁鏍煎紡涓嶆纭�'); + } + + this.updateChart(response); // 鐩存帴浼犲叆response锛岃�岄潪response.data + } catch (error) { + console.error('鑾峰彇鏁版嵁閿欒:', error); + this.error = error.message; + this.initEmptyChart(); + } finally { + this.loading = false; + } + }, + updateChart(data) { + + + const dates = data.dateRange; + const stats = data.dailyStatistics; + + const seriesData = { + '鎴愬搧鍏ュ簱': [], + '鎴愬搧鍑哄簱': [], + '绌烘鍥炴祦': [], + '鎴愬搧鍥炲簱': [] + }; + + // 鏍规嵁瀹為檯鏁版嵁鏍煎紡璋冩暣瀛楁鍚嶏紙灏忓啓寮�澶达級 + stats.forEach(day => { + seriesData['鎴愬搧鍏ュ簱'].push(day.inProduct || 0); + seriesData['鎴愬搧鍑哄簱'].push(day.outProduct || 0); + seriesData['绌烘鍥炴祦'].push(day.emptyProductBack || 0); + seriesData['鎴愬搧鍥炲簱'].push(day.inProductBack || 0); + }); + + this.options = { + ...this.options, + xAxis: { + ...this.options.xAxis, + data: dates + }, + series: this.options.series.map(series => ({ + ...series, + data: seriesData[series.name] || [] + })) + }; + }, + startAutoRefresh() { + this.stopAutoRefresh(); + this.timer = setInterval(() => { + this.fetchData(); + }, this.$store.state.setting.echartsAutoTime || 10000); + }, + stopAutoRefresh() { + if (this.timer) clearInterval(this.timer); + } + } }; </script> + <style lang='scss' scoped> .user_Overview { li { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/station-two.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/station-two.vue" index 8c14a2d..d3a1ef8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/station-two.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/LargeScreen/CP-Screen/src/views/indexs/station-two.vue" @@ -1,463 +1,289 @@ -<!-- - * @Author: daidai - * @Date: 2022-02-28 16:16:42 - * @LastEditors: Please set LastEditors - * @LastEditTime: 2022-07-20 17:57:11 - * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue ---> <template> - <div id="name" style="width: 100%; height: 100%"> - <Echart :options="options" style="width: 100%; height: 100%"></Echart> - </div> - </template> - - <script> - import { currentGET } from "api/modules"; - import { ProductionStock } from "@/api/http.js"; - import * as echarts from 'echarts'; - let style = { - fontSize: 24, - }; - export default { - data() { - return { - pageflag: true, - myChart: {}, - options: {}, - }; - }, - filters: { - numsFilter(msg) { - return msg || 0; - }, - }, - created() { - this.getData(); - }, - mounted() { - this.init(); - }, - beforeDestroy() { - this.clearData(); - }, - methods: { - init() { - let dataPie = [ + <div class="tech-chart-container"> + <Echart + :options="options" + :autoresize="true" + style="width: 100%; height: 100%" + /> + </div> +</template> - { - value: 410, - name: '浼佷笟' - }, - { - value: 380, - name: '鏀垮簻' - }, - { - value: 501, - name: '涓汉' - }, -]; -let colorPie = ['#173852', '#0b2036', '#002e49']; -let colorWrap = ['#3087d6', '#afe1ff', '#4be1ff']; -let baseDataPie = [], - baseDataWrap = []; -for (var i = 0; i < dataPie.length; i++) { - baseDataPie.push({ - value: dataPie[i].value, - name: dataPie[i].name, - itemStyle: { - normal: { - borderWidth: 50, +<script> +import { GetCPLargeStockCount } from "@/api/http.js"; +import * as echarts from 'echarts'; - borderColor: colorPie[i], - - } - } - }); - baseDataWrap.push({ - value: dataPie[i].value, - name: dataPie[i].name, - itemStyle: { - normal: { - color: colorWrap[i], - borderWidth: 10, - borderColor: colorWrap[i], - shadowBlur: 50, - shadowColor: 'rgba(48, 135, 214, 0.3)', - } - } - }, { - value: 10, - name: '', - itemStyle: { - normal: { - color: 'transparent', - borderWidth: 10, - borderColor: 'transparent', - - } - } - }); -} - - -this.options = { - backgroundColor: '#021228', - title: { - text: '鎶ヨ鎬绘暟', - subtext: '10,225', - textStyle: { +export default { + data() { + return { + options: { + backgroundColor: 'transparent', + title: { + text: '鎴愬搧浜у搧搴撳瓨鎬绘暟', + subtext: '鍔犺浇涓�...', + textStyle: { color: '#00b5f3', - fontSize: 12, - - }, - subtextStyle: { + fontSize: 14, + }, + subtextStyle: { align: 'center', - fontSize: 18, - color: ['#85c7e3'], - fontWeight:800 + fontSize: 28, + color: '#4be1ff', + fontWeight: 'bold', + textShadow: '0 0 15px rgba(75, 225, 255, 0.7)' + }, + x: 'center', + y: 'center', }, - x: '38%', - y: 'center', - }, - tooltip: { - show: true, - trigger: 'item', - formatter: "{a}锛歿b} <br/>鍗犳瘮锛歿d}%" - }, - legend: { - data: ['浼佷笟', '鏀垮簻', '涓汉'], - icon: 'vertical', - right: '1%', - top: 'center', - orient: 'vertical', - itemGap: 20, - itemWidth: 15, - itemHeight: 8, - - formatter: function(name) { - let target; - for (let i = 0; i < dataPie.length; i++) { - if (dataPie[i].name === name) { - target = dataPie[i].value - } - } - let arr = [name, target]; - return arr.join("\n") - + tooltip: { + show: false // 瀹屽叏绂佺敤tooltip }, - textStyle: { - lineHeight: 20, - color: '#9ed2f5', - - }, - }, - grid: { - left: '1%', // 涓庡鍣ㄥ乏渚х殑璺濈 - right: '1%', // 涓庡鍣ㄥ彸渚х殑璺濈 - top: '1%', // 涓庡鍣ㄩ《閮ㄧ殑璺濈 - bottom: '1%', // 涓庡鍣ㄥ簳閮ㄧ殑璺濈 - - }, - series: [ - { - name: '', + series: [ + { + name: '搴撳瓨鏁伴噺', type: 'pie', - clockWise: false, //椤烘椂鍔犺浇 - hoverAnimation: false, //榧犳爣绉诲叆鍙樺ぇ - center: ['40%', '50%'], - radius: ['80%', '81%'], - tooltip: { - show: false - }, + radius: ['65%', '85%'], + center: ['50%', '50%'], + hoverAnimation: false, // 绂佺敤鎮仠鍔ㄧ敾 + silent: true, // 绂佺敤鎵�鏈変氦浜� label: { - normal: { - show: false - } + show: false }, - data: baseDataWrap - }, - { - - name: '鎶ヨ', + labelLine: { + show: false + }, + itemStyle: { + borderWidth: 0, + shadowBlur: 20, + shadowColor: 'rgba(0, 150, 255, 0.5)' + }, + data: [{ + value: 0, + name: '', + itemStyle: { + // 闈掕摑鑹插埌钃濈櫧鑹叉笎鍙橈紝娣诲姞鍔ㄦ�佹晥鏋� + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { offset: 0, color: '#00ffcc' }, + { offset: 0.5, color: '#00b4ff' }, + { offset: 1, color: '#0062ff' } + ], + global: false + } + } + }] + }, + // 娣诲姞澶栧彂鍏夊渾鐜� + { type: 'pie', - color: colorPie, - selectedMode: 'single', - radius: ['55%', '58%'], - center: ['40%', '50%'], + radius: ['85%', '87%'], + center: ['50%', '50%'], hoverAnimation: false, - label: { - normal: { - show: false, - } + silent: true, + label: { show: false }, + labelLine: { show: false }, + itemStyle: { + // 闈掕摑鑹插埌钃濈櫧鑹叉笎鍙橈紝娣诲姞鍔ㄦ�佹晥鏋� + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { offset: 0, color: '#00ffcc' }, + { offset: 0.5, color: '#00b4ff' }, + { offset: 1, color: '#0062ff' } + ], + global: false + } }, - - data: baseDataPie - }, - - ] -}; - }, - clearData() { - if (this.timer) { - clearInterval(this.timer); - this.timer = null; - } - }, - async getData() { - this.pageflag = true; - // currentGET("big2").then((res) => { - // if (!this.timer) { - // console.log("璁惧鎬昏2", res); - // } - // if (res.success) { - // this.userOverview = res.data; - // this.onlineconfig = { - // ...this.onlineconfig, - // number: [1] - // } - // this.config = { - // ...this.config, - // number: [7] - // } - // this.offlineconfig = { - // ...this.offlineconfig, - // number: [4] - // } - // this.laramnumconfig = { - // ...this.laramnumconfig, - // number: [10] - // } - // this.switper(); - // } else { - // this.pageflag = false; - // this.$Message.warning(res.msg); - // } - // }); - // var rep = await ProductionStock(); - let dataPie = [ - { - value: 430, - name: '搴撳瓨浜у搧' - }, -]; -let colorPie = ['#173852']; -let colorWrap = ['#3087d6']; -let baseDataPie = [], - baseDataWrap = []; -for (var i = 0; i < dataPie.length; i++) { - baseDataPie.push({ - value: dataPie[i].value, - name: dataPie[i].name, - itemStyle: { - normal: { - borderWidth: 50, - - borderColor: colorPie[i], - - } - } - }); - baseDataWrap.push({ - value: dataPie[i].value, - name: dataPie[i].name, - itemStyle: { - normal: { - color: colorWrap[i], - borderWidth: 10, - borderColor: colorWrap[i], - shadowBlur: 50, - shadowColor: 'rgba(48, 135, 214, 0.3)', - } - } - }, { - value: 10, - name: '', - itemStyle: { - normal: { - color: 'transparent', - borderWidth: 10, - borderColor: 'transparent', - - } - } - }); -} - - -this.options = { - title: { - text: '浜у搧鎬绘暟', - subtext: '430', - textStyle: { - color: '#00b5f3', - fontSize: 12, - - }, - subtextStyle: { - align: 'center', - fontSize: 18, - color: ['#85c7e3'], - fontWeight:800 - }, - x: '33%', - y: 'center', - }, - tooltip: { - show: true, - trigger: 'item', - formatter: "{a}锛歿b} <br/>鍗犳瘮锛歿d}%" - }, - legend: { - data: ['搴撳瓨浜у搧'], - icon: 'vertical', - right: '1%', - top: 'center', - orient: 'vertical', - itemGap: 20, - itemWidth: 15, - itemHeight: 8, - - formatter: function(name) { - let target; - for (let i = 0; i < dataPie.length; i++) { - if (dataPie[i].name === name) { - target = dataPie[i].value - } - } - let arr = [name, target]; - return arr.join("\n") - - }, - textStyle: { - lineHeight: 20, - color: '#9ed2f5', - - }, - }, - grid: { - left: '1%', // 涓庡鍣ㄥ乏渚х殑璺濈 - right: '1%', // 涓庡鍣ㄥ彸渚х殑璺濈 - top: '1%', // 涓庡鍣ㄩ《閮ㄧ殑璺濈 - bottom: '1%', // 涓庡鍣ㄥ簳閮ㄧ殑璺濈 - - }, - series: [ - { - name: '', + data: [{ + value: 1, + name: '' + }] + }, + // 娣诲姞鍐呭彂鍏夊渾鐜� + { type: 'pie', - clockWise: false, //椤烘椂鍔犺浇 - hoverAnimation: false, //榧犳爣绉诲叆鍙樺ぇ - center: ['40%', '50%'], - radius: ['80%', '81%'], - tooltip: { - show: false - }, - label: { - normal: { - show: false - } - }, - data: baseDataWrap - }, - { - - name: '绉嶇被', - type: 'pie', - color: colorPie, - selectedMode: 'single', - radius: ['55%', '58%'], - center: ['40%', '50%'], + radius: ['63%', '65%'], + center: ['50%', '50%'], hoverAnimation: false, - label: { - normal: { - show: false, - } + silent: true, + label: { show: false }, + labelLine: { show: false }, + itemStyle: { + // 闈掕摑鑹插埌钃濈櫧鑹叉笎鍙橈紝娣诲姞鍔ㄦ�佹晥鏋� + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { offset: 0, color: '#00ffcc' }, + { offset: 0.5, color: '#00b4ff' }, + { offset: 1, color: '#0062ff' } + ], + global: false + } }, - - data: baseDataPie - }, - - ] -}; - this.switper(); + data: [{ + value: 1, + name: '' + }] + }, + // 娣诲姞鍔ㄦ�佺矑瀛愭晥鏋� + { + type: 'scatter', + coordinateSystem: 'none', + data: this.generateParticles(30), + symbolSize: (val) => { + return val[2] * 2; + }, + itemStyle: { + color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [ + { offset: 0, color: 'rgba(0, 255, 255, 0.8)' }, + { offset: 1, color: 'rgba(0, 255, 255, 0)' } + ]) + }, + // 娣诲姞绮掑瓙闂儊鏁堟灉 + effect: { + show: true, + period: 2, + trailLength: 0.1, + symbol: 'circle', + symbolSize: 0 + } + } + ] }, - //杞 - switper() { - if (this.timer) { - return; - } - let looper = (a) => { - this.getData(); - }; - this.timer = setInterval( - looper, - this.$store.state.setting.echartsAutoTime - ); - }, + timer: null, + particleTimer: null, + gradientTimer: null + }; + }, + mounted() { + this.fetchData(); + this.startAutoRefresh(); + this.startParticleAnimation(); + this.startGradientAnimation(); + }, + beforeDestroy() { + this.stopAutoRefresh(); + this.stopParticleAnimation(); + this.stopGradientAnimation(); + }, + methods: { + generateParticles(count) { + const particles = []; + for (let i = 0; i < count; i++) { + const angle = Math.random() * Math.PI * 2; + const radius = 0.7 + Math.random() * 0.2; + particles.push([ + Math.cos(angle) * radius, + Math.sin(angle) * radius, + Math.random() * 2 + 1 + ]); + } + return particles; }, - }; - </script> - <style lang='scss' scoped> - .user_Overview { - li { - flex: 1; - - p { - text-align: center; - height: 16px; - font-size: 16px; + async fetchData() { + try { + const response = await GetCPLargeStockCount({}); + const stockCount = response.stockCount || 0; + this.updateChart(stockCount); + } catch (error) { + console.error('鑾峰彇搴撳瓨鎬绘暟澶辫触:', error); + this.options.title.subtext = '鏁版嵁寮傚父'; + this.options.title.subtextStyle.color = '#ff4d4f'; } - - .user_Overview_nums { - width: 100px; - height: 100px; - text-align: center; - line-height: 100px; - font-size: 22px; - margin: 50px auto 30px; - background-size: cover; - background-position: center center; - position: relative; - - &::before { - content: ""; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - } - - &.bgdonghua::before { - animation: rotating 14s linear infinite; - } - } - - .allnum { - // background-image: url("../../assets/img/left_top_lan.png"); - &::before { - background-image: url("../../assets/img/left_top_lan.png"); - } - } - - .online { - &::before { - background-image: url("../../assets/img/left_top_lv.png"); - } - } - - .offline { - &::before { - background-image: url("../../assets/img/left_top_huang.png"); - } - } - - .laramnum { - &::before { - background-image: url("../../assets/img/left_top_hong.png"); - } - } + }, + updateChart(count) { + this.options.series[0].data[0].value = count; + this.options.title.subtext = count + '绉�'; + this.options.title.subtextStyle.color = count > 0? '#4be1ff' : '#ff4d4f'; + }, + startAutoRefresh() { + this.stopAutoRefresh(); + this.timer = setInterval(() => { + this.fetchData(); + }, 3000); + }, + stopAutoRefresh() { + if (this.timer) clearInterval(this.timer); + }, + startParticleAnimation() { + this.stopParticleAnimation(); + this.particleTimer = setInterval(() => { + this.options.series[3].data = this.generateParticles(30); + this.options = {...this.options }; // 瑙﹀彂瑙嗗浘鏇存柊 + }, 2000); + }, + stopParticleAnimation() { + if (this.particleTimer) clearInterval(this.particleTimer); + }, + startGradientAnimation() { + this.stopGradientAnimation(); + this.gradientTimer = setInterval(() => { + const offset = Math.random(); + this.options.series.forEach(series => { + if (series.itemStyle.color.type === 'linear') { + series.itemStyle.color.colorStops.forEach(stop => { + stop.offset = (stop.offset + offset) % 1; + }); + } + }); + this.options = {...this.options }; // 瑙﹀彂瑙嗗浘鏇存柊 + }, 1000); + }, + stopGradientAnimation() { + if (this.gradientTimer) clearInterval(this.gradientTimer); } } - </style> \ No newline at end of file +}; +</script> + +<style lang="scss" scoped> +.tech-chart-container { + width: 100%; + height: 100%; + position: relative; + background: radial-gradient(circle at center, #021228 0%, #000810 100%); + border-radius: 8px; + overflow: hidden; + box-shadow: 0 0 30px rgba(0, 100, 255, 0.2); + + &::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: + radial-gradient(circle at 20% 30%, rgba(0, 150, 255, 0.1) 0%, transparent 50%), + radial-gradient(circle at 80% 70%, rgba(0, 200, 255, 0.1) 0%, transparent 50%); + z-index: 0; + animation: pulse 8s infinite alternate; + } +} + +@keyframes pulse { + 0% { + opacity: 0.3; + } + 100% { + opacity: 0.7; + } +} + +::v-deep .echarts { + position: relative; + z-index: 1; +} +</style> \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue" index e4bbcd3..21dfb3c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue" @@ -391,6 +391,15 @@ :selectable="detailSelectable" ></vol-table> </div> + + <!--鏄庣粏body鑷畾涔夌粍浠�--> + <component + :is="dynamicComponent.modelSpec" + ref="modelSpec" + @parentCall="parentCall" + ></component> + + <!--鏄庣粏footer鑷畾涔夌粍浠�--> <component :is="dynamicComponent.modelFooter" @@ -551,7 +560,8 @@ gridFooter: Empty, modelHeader: Empty, modelBody: Empty, - modelFooter: Empty + modelFooter: Empty, + modelSpec:Empty }; //鍚堝苟鎵╁睍缁勪欢 if (props.extend.components) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderMaterielSpec.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderMaterielSpec.vue" new file mode 100644 index 0000000..60c17b1 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderMaterielSpec.vue" @@ -0,0 +1,155 @@ +<template> + <vol-box + :lazy="true" + v-model="model" + title="閫夋嫨鐗╂枡瑙勬牸" + :width="280" + :padding="0" + > + <div> + <div> + <!-- 鎼滅储閰嶇疆 --> + <div class="search-form"> + <label>鐗╂枡瑙勬牸锛�</label> + <el-input style="width: 160px" v-model="MaterialCode"></el-input> + </div> + <el-table + ref="singleTable" + :data="filteredData" + style="width: 100%; height: 100%" + highlight-current-row + height="500px" + @selection-change="handleSelectionChange" + > + > + <el-table-column type="selection" width="55"> </el-table-column> + <el-table-column + v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" + :key="index" + :prop="item.prop" + :label="item.title" + align="center" + > + </el-table-column> + </el-table> + </div> + </div> + <template #footer> + <div><el-button type="primary" @click="onSelect">纭</el-button></div> + </template> + </vol-box> + </template> + <script> + import VolBox from "@/components/basic/VolBox.vue"; + + /******娉ㄦ剰锛氬鏋滃嚭鐜版彁绀烘病鏈夋潈闄愮殑闂锛岃鍚庡彴寮�鍙戞枃妗d笂鐨勩�愰噸鍐欏悗鍙版潈闄愩��*****/ + + //杩欓噷浣跨敤鐨剉ue2璇硶锛屼篃鍙互鍐欐垚vue3璇硶 + export default { + components: { + "vol-box": VolBox, + }, + methods: {}, + data() { + return { + model: false, //寮瑰嚭妗� + wareId: null, + materielSpec:null, + showDetialBox: false, + MaterialCode:null, + selection:null, + tableData: [], + filteredData: [], + tableColumns: [ + { + prop: "materielSpec", + title: "鐗╂枡瑙勬牸", + type: "string", + }, + ], + }; + }, + watch: { + MaterialCode(newVal) { + this.filterLocalData(newVal); + } + }, + methods: { + open(purchaseOrderNo, materielCode) { // 閲嶅懡鍚嶅弬鏁帮紝璇箟鏇存竻鏅� + this.model = true; + this.purchaseOrderNo = purchaseOrderNo; // 瀛樺偍閲囪喘鍗曞彿 + this.materielCode = materielCode; // 瀛樺偍鐗╂枡缂栧彿 + this.getData(); // 璋冪敤鑾峰彇鏁版嵁鏂规硶 + }, + filterLocalData(code) { + if (code) { + this.filteredData = this.tableData.filter((item) => { + return item.materielSpec.includes(code); + }); + console.log(this.filteredData.length); + console.log(this.tableData.length); + } else { + this.filteredData = [...this.tableData]; // 閲嶇疆涓哄畬鏁存暟鎹� + } + }, + handleSelectionChange(val,val2) { + this.selection = val; + this.selection1 = val2; + if (this.selection.length > 1) { + this.$message.error("浠呴�夋嫨涓�鏉℃暟鎹�"); + // 娓呯┖閫変腑鐨勭涓�鏉℃暟鎹� + this.$refs.singleTable.clearSelection(); + } + if (this.selection1.length > 1) { + this.$message.error("浠呴�夋嫨涓�鏉℃暟鎹�"); + // 娓呯┖閫変腑鐨勭涓�鏉℃暟鎹� + this.$refs.singleTable.clearSelection(); + } + console.log(this.selection); + }, + getData() { + const url = `/api/PurchaseOrderDetail/GetOrderMaterielSpec?` + + `purchaseOrderNo=${encodeURIComponent(this.purchaseOrderNo)}&` + + `materielCode=${encodeURIComponent(this.materielCode)}`; + + this.http.post(url, null, "鏌ヨ涓�") + .then((x) => { + if (!x.status) { + return this.$error(x.message); + } + this.tableData = x.data.map((item) => ({ + materielSpec: item // 鍋囪鎺ュ彛杩斿洖鐨勮鏍肩洿鎺ユ槸瀛楃涓� + })); + this.filteredData = [...this.tableData]; // 閲嶇疆杩囨护鏁版嵁 + }) + .catch((error) => { + console.error("鎺ュ彛璇锋眰澶辫触:", error); + this.$message.error("鑾峰彇鐗╂枡瑙勬牸澶辫触锛岃閲嶈瘯"); + }); + }, + onSelect() { + if (!this.selection) { + return this.$message.error("璇烽�夋嫨鏁版嵁"); + } + this.$emit("parentCall", ($parent) => { + //濡傦細鍥炲啓缂栬緫琛ㄥ崟鏁版嵁 + $parent.editFormFields.materielSpec = this.selection[0].materielSpec; + this.model = false; + }); + this.MaterialCode = null; + this.tableData = []; + this.filteredData = []; + }, + }, + }; + </script> + <style lang="less" scoped> + .search-form { + display: flex; + padding: 10px; + line-height: 34px; + button { + margin-left: 10px; + } + } + </style> \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" index 516fc1d..24cec15 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" @@ -3,6 +3,7 @@ import modelHeader from './extend/materielcodeSelectView.vue' import modelBody from './extend/purchaseOrderNoSelectView.vue' import modelFooter from './extend/GetOrderQuantityView.vue' +import modelSpec from './extend/GetOrderMaterielSpec.vue' let extension = { components: { //鏌ヨ鐣岄潰鎵╁睍缁勪欢 @@ -12,7 +13,8 @@ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢 modelHeader: modelHeader, modelBody: modelBody, - modelFooter: modelFooter + modelFooter: modelFooter, + modelSpec: modelSpec }, tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓) buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽� @@ -87,6 +89,22 @@ } }); }); + this.editFormOptions.forEach((option) => { + option.forEach((item) => { + if (item.field == 'materielSpec') { + //鍒濆鍖栧脊鍑烘閫夋嫨鍣ㄩ厤缃� + item.extra = { + icon: 'el-icon-zoom-out', //鏄剧ず鍥炬爣 + text: '閫夋嫨鐗╂枡瑙勬牸', //鏄剧ず鏂囨湰 + style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;', + //瑙﹀彂浜嬩欢 + click: (item) => { + this.$refs.modelSpec.open(this.editFormFields.purchaseOrderNo,this.editFormFields.materielCode); + } + }; + } + }); + }); // warehouseIdOption.onChange = (val, option) => { // this.editFormFields.materielCode = ""; // materielCodeOption.data = []; @@ -124,6 +142,33 @@ // } }); + // 椤甸潰鍔犺浇鏃跺垵濮嬪寲宸查珮浜殑琛� + const initHighlightedRows = () => { + try { + const highlightedRowIds = localStorage.getItem('highlightedRowIds'); + if (highlightedRowIds) { + this.highlightedRowIds = JSON.parse(highlightedRowIds); + } else { + this.highlightedRowIds = []; + } + } catch (e) { + console.error('Failed to load highlighted rows from localStorage:', e); + this.highlightedRowIds = []; + } + }; + + // 淇濆瓨楂樹寒琛孖D鍒版湰鍦板瓨鍌� + const saveHighlightedRows = () => { + try { + localStorage.setItem('highlightedRowIds', JSON.stringify(this.highlightedRowIds)); + } catch (e) { + console.error('Failed to save highlighted rows to localStorage:', e); + } + }; + + // 鍦ㄧ粍浠跺垵濮嬪寲鏃惰皟鐢� + initHighlightedRows(); + this.columns.push({ field: '鎿嶄綔', title: '鎿嶄綔', @@ -132,13 +177,46 @@ align: 'center', formatter: (row) => { return ( - '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-printer">鎵撳嵃</i>' + '<i style="cursor: pointer;color: #2d8cf0;" class="el-icon-printer">鎵撳嵃</i>' ); }, click: (row) => { + // 鎵撳紑璇︽儏 this.$refs.gridBody.open(row); + // 鑾峰彇琛岀殑鍞竴鏍囪瘑锛堝亣璁緍ow.id鏄敮涓�ID锛� + const rowId = row.id; + // 娣诲姞鍒板凡楂樹寒鍒楄〃 + if (!this.highlightedRowIds.includes(rowId)) { + this.highlightedRowIds.push(rowId); + // 淇濆瓨鍒版湰鍦板瓨鍌� + saveHighlightedRows(); + // 鍒锋柊琛ㄦ牸浠ュ簲鐢ㄦ牱寮� + this.$refs.gridBody.refresh(); + } } }); + + // 閰嶇疆cellStyle + this.columns.forEach((column) => { + // 淇濆瓨鍘熸湁鐨刢ellStyle鍑芥暟 + const originalCellStyle = column.cellStyle; + + column.cellStyle = (row) => { + // 鍏堝簲鐢ㄥ師鏈夌殑鏍峰紡閫昏緫 + let style = originalCellStyle ? originalCellStyle(row) : {}; + + // 濡傛灉琛岃鏍囪涓洪珮浜紝鍒欐坊鍔犵豢鑹茶儗鏅� + if (this.highlightedRowIds.includes(row.id)) { + style = { + ...style, + background: '#d4edda', + color: '#155724' + }; + } + + return style; + }; + }); }, onInited() { //妗嗘灦鍒濆鍖栭厤缃悗 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/MesOutOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/MesOutOrderDetail.vue" index 9556fb4..3e5e94d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/MesOutOrderDetail.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/MesOutOrderDetail.vue" @@ -160,6 +160,20 @@ width: 150, }, { + prop: "productionDate", + title: "鐢熶骇鏃ユ湡", + type: "string", + width: 160, + + }, + { + prop: "effectiveDate", + title: "鏈夋晥鏈�", + type: "string", + width: 160, + + }, + { prop: "locationCode", title: "璐т綅缂栧彿", type: "string", @@ -188,7 +202,6 @@ "鏌ヨ涓�" ) .then((x) => { - var label=[ { label: '宸插垎閰�', value: 0 }, { label: '鍑哄簱涓�', value: 1 }, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/locationInfoRow.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/locationInfoRow.vue" index 2f44aea..5060660 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/locationInfoRow.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/locationInfoRow.vue" @@ -102,8 +102,8 @@ <p><strong>璐т綅鍙�:</strong>{{ currentLocation.locationCode }}</p> <p> <strong>璐т綅鎺掑垪灞�:</strong> {{ currentLocation.row }}鎺抺{ - currentLocation.layer - }}鍒梴{ currentLocation.index }}灞� + currentLocation.index + }}鍒梴{ currentLocation.layer }}灞� </p> <p><strong>鐘舵��:</strong> {{ getStatusText(currentLocation) }}</p> <p> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" index 528ef98..8a1f871 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" @@ -62,6 +62,13 @@ ], [ { + title: "鐗╂枡瑙勬牸", + field: "materielSpec", + type: "string", + }, + ], + [ + { title: "鎵规鍙�", field: "lotNo", required: true, @@ -122,7 +129,14 @@ field: "materielName", title: "鐗╂枡鍚嶇О", type: "string", - width: 100, + width: 150, + align: "left", + }, + { + field: "materielSpec", + title: "鐗╂枡瑙勬牸", + type: "string", + width: 150, align: "left", }, { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/inbound/returnOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/inbound/returnOrder.vue" index 9eed63d..a5da780 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/inbound/returnOrder.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/inbound/returnOrder.vue" @@ -154,7 +154,7 @@ field: "pickCode", title: "鐢宠鍙戞枡鍗曞彿", type: "select", - width: 160, + width: 180, align: "left", required: true, }, @@ -186,7 +186,31 @@ field: "mCode", title: "鐗╂枡缂栫爜", type: "string", - width: 90, + width: 130, + align: "left", + required: true, + }, + { + field: "qty", + title: "鍙��鏁伴噺", + type: "float", + width: 130, + align: "left", + required: true, + }, + { + field: "returnQty", + title: "閫�鍥炴暟閲�", + type: "float", + width: 130, + align: "left", + required: true, + }, + { + field: "overReturnQty", + title: "宸查��鍥炴暟閲�", + type: "float", + width: 130, align: "left", required: true, }, @@ -201,7 +225,7 @@ field: "materielSpec", title: "鐗╂枡瑙勬牸", type: "string", - width: 90, + width: 120, align: "left", }, { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/outStockLockInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/outStockLockInfo.vue" index 48e7735..1bcf0d6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/outStockLockInfo.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/outStockLockInfo.vue" @@ -207,6 +207,20 @@ align: "left", }, { + field: "productionDate", + title: "鐢熶骇鏃ユ湡", + type: "string", + width: 160, + align: "left", + }, + { + field: "effectiveDate", + title: "鏈夋晥鏈�", + type: "string", + width: 160, + align: "left", + }, + { field: "taskNum", title: "浠诲姟鍙�", type: "string", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue" index 0b94c04..4129a8d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue" @@ -30,27 +30,81 @@ const editFormOptions = ref([ [ { + title: "搴撳瓨涓婚敭", + readonly:true, + field: "stockId", + type: "string", + }, + + { title: "鐗╂枡缂栧彿", required: true, field: "materielCode", type: "string", }, { - title: "鍗曟嵁缂栧彿", + title: "鐗╂枡鍚嶇О", required: true, field: "materielName", type: "string", }, { - title: "鎵规鍙�", - required: true, + title: "鍗曟嵁缂栧彿", + readonly: true, field: "orderNo", type: "string", }, + + ], + [ + { + title: "鎵规鍙�", + required: true, + field: "batchNo", + type: "string", + }, + { + title: "搴撳瓨鏁伴噺", + required: true, + field: "stockQuantity", + type: "string", + }, + { + title: "鐢熶骇鏃ユ湡", + required: true, + field: "productionDate", + type: "string", + }, + { + title: "鏈夋晥鏈�", + required: true, + field: "effectiveDate", + type: "string", + }, + ], + [ { title: "搴忓垪鍙�", - required: true, + readonly: true, field: "serialNumber", + type: "string", + }, + { + title: "鍑哄簱鏁伴噺", + required: true, + field: "outboundQuantity", + type: "string", + }, + { + title: "搴撳瓨鏄庣粏鐘舵��", + readonly: true, + field: "status", + type: "string", + }, + { + title: "鍏ュ簱鍗曟槑缁嗚鍙�", + readonly: true, + field: "inboundOrderRowNo", type: "string", }, ], @@ -144,6 +198,21 @@ bind: { key: "stockStatusEmun", data: [] }, }, { + field: "productionDate", + title: "鐢熶骇鏃ユ湡", + type: "string", + width: 120, + align: "left", + + }, + { + field: "effectiveDate", + title: "鏈夋晥鏈�", + type: "string", + width: 120, + align: "left", + }, + { field: "creater", title: "鍒涘缓浜�", type: "string", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue" index b18d604..310b96c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue" @@ -225,6 +225,20 @@ align: "left", hidden: true, }, + { + field: "materielCode", + title: "鐗╂枡缂栧彿", + type: "string", + width: 150, + align: "left", + }, + { + field: "quantity", + title: "鐗╂枡鏁伴噺", + type: "float", + width: 100, + align: "left", + }, ]); const detail = ref({ cnName: "#detailCnName", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue" index 6ab9ba1..937a242 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue" @@ -225,6 +225,20 @@ align: "left", hidden: true, }, + { + field: "materielCode", + title: "鐗╂枡缂栧彿", + type: "string", + width: 150, + align: "left", + }, + { + field: "quantity", + title: "鐗╂枡鏁伴噺", + type: "float", + width: 100, + align: "left", + }, ]); const detail = ref({ cnName: "#detailCnName", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" index 6595181..18680f9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" @@ -16,5 +16,7 @@ WebResponseContent GetPurchaseOrderNos(string materielCode); WebResponseContent GetOrderQuantity(string purchaseOrderNo); + + WebResponseContent GetOrderMaterielSpec(string purchaseOrderNo, string materielCode); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index a608a7f..0bcdcfc 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -863,11 +863,17 @@ stockInfoDetails.Add(stockInfoDetail); - notGroupDetail.ReceiptQuantity += model.Quantity; - if (notGroupDetail.ReceiptQuantity>notGroupDetail.OrderQuantity) + decimal decimalReceiptQuantity = Convert.ToDecimal(notGroupDetail.ReceiptQuantity); + decimal decimalModelQuantity = Convert.ToDecimal(model.Quantity); + decimal decimalOrderQuantity = Convert.ToDecimal(notGroupDetail.OrderQuantity); + decimalReceiptQuantity += decimalModelQuantity; + // 妫�鏌ユ槸鍚﹁秴鍑鸿鍗曟暟閲� + if (decimalReceiptQuantity > decimalOrderQuantity) { - return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{notGroupDetail.ReceiptQuantity - notGroupDetail.OrderQuantity}"); + return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{decimalReceiptQuantity - decimalOrderQuantity}"); } + // 杞洖float绫诲瀷瀛樺偍锛屼絾姣旇緝鍜岃绠楅兘浣跨敤decimal瀹屾垚 + notGroupDetail.ReceiptQuantity = Convert.ToSingle(decimalReceiptQuantity); if (notGroupDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) { notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" index b0a6a70..2cd6d3a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" @@ -63,5 +63,22 @@ return WebResponseContent.Instance.Error(ex.Message); } } + + public WebResponseContent GetOrderMaterielSpec(string purchaseOrderNo, string materielCode) + { + try + { + List<Dt_PurchaseOrder> purchaseOrders = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == purchaseOrderNo).ToList(); + List<int> purchaseOrderIds = purchaseOrders.Select(x => x.Id).ToList(); + List<Dt_PurchaseOrderDetail> purchaseOrderDetails = BaseDal.Db.Queryable<Dt_PurchaseOrderDetail>() + .Where(x => purchaseOrderIds.Contains(x.PurchaseOrderId)&& x.MaterielCode == materielCode).ToList(); + List<string> materielSpec = purchaseOrderDetails.Select(x => x.MaterielSpec).ToList(); + return WebResponseContent.Instance.OK(data: materielSpec); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" index f5193dc..1cadc32 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" @@ -78,5 +78,11 @@ /// </summary> [SugarColumn(IsNullable = false, ColumnDescription = "渚涘簲鍟嗙紪鐮�")] public string SupplierCode { get; set; } + + /// <summary> + /// 鐗╂枡瑙勬牸 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡瑙勬牸")] + public string MaterielSpec { get; set; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs" index 190c8ae..4ee5363 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs" @@ -108,5 +108,17 @@ /// </summary> [SugarColumn(IsNullable = false, ColumnDescription = "鐘舵��")] public int Status { get; set; } + + /// <summary> + /// 鐢熶骇鏃ユ湡 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "鐢熶骇鏃ユ湡")] + public string ProductionDate { get; set; } + + /// <summary> + /// 鏈夋晥鏈� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "鏈夋晥鏈�")] + public string EffectiveDate { get; set; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs" index 9cefadd..46497d0 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs" @@ -148,5 +148,19 @@ [ExporterHeader(DisplayName = "澶囨敞")] [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")] public string Remark { get; set; } + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + [ImporterHeader(Name = "鐗╂枡缂栧彿")] + [ExporterHeader(DisplayName = "鐗╂枡缂栧彿")] + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")] + public string MaterielCode { get; set; } + /// <summary> + /// 鐗╂枡鏁伴噺 + /// </summary> + [ImporterHeader(Name = "鐗╂枡鏁伴噺")] + [ExporterHeader(DisplayName = "鐗╂枡鏁伴噺")] + [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "鐗╂枡鏁伴噺")] + public float Quantity { get; set; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs" index 5da8a45..cba7d6c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs" @@ -52,7 +52,10 @@ OriginalQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity), Status = taskNum == null ? OutLockStockStatusEnum.宸插垎閰�.ObjToInt() : OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(), StockId = item.Id, - TaskNum = taskNum + TaskNum = taskNum, + ProductionDate = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).FirstOrDefault()?.ProductionDate, + EffectiveDate = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).FirstOrDefault()?.EffectiveDate + }; outStockLockInfos.Add(outStockLockInfo); } @@ -80,6 +83,8 @@ TaskNum = taskNum, OrderQuantity = outboundOrderDetail.OrderQuantity, Unit = outboundOrderDetail.Unit, + ProductionDate = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).FirstOrDefault()?.ProductionDate, + EffectiveDate = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).FirstOrDefault()?.EffectiveDate }; return outStockLockInfo; @@ -111,7 +116,10 @@ StockId = outStock.Id, TaskNum = taskNum, OrderQuantity = mesOutboundOrder.OrderQuantity, - Unit = mesOutboundOrder.Unit + Unit = mesOutboundOrder.Unit, + ProductionDate = outStock.Details.Where(x => x.MaterielCode == mesOutboundOrder.MaterialCode).FirstOrDefault()?.ProductionDate, + EffectiveDate = outStock.Details.Where(x => x.MaterielCode == mesOutboundOrder.MaterialCode).FirstOrDefault()?.EffectiveDate + }; return outStockLockInfo; @@ -146,7 +154,9 @@ StockId = item.Id, TaskNum = taskNum, OrderQuantity = mesPPCutOutboundOrderDetail.OrderQuantity, - Unit = mesPPCutOutboundOrderDetail.Unit + Unit = mesPPCutOutboundOrderDetail.Unit, + ProductionDate = item.Details.Where(x => x.MaterielCode == mesPPCutOutboundOrderDetail.MaterielCode).FirstOrDefault()?.ProductionDate, + EffectiveDate = item.Details.Where(x => x.MaterielCode == mesPPCutOutboundOrderDetail.MaterielCode).FirstOrDefault()?.EffectiveDate }; outStockLockInfos.Add(outStockLockInfo); } @@ -173,7 +183,9 @@ StockId = outStock.Id, TaskNum = taskNum, OrderQuantity = mesPPOutboundOrder.OrderQuantity, - Unit = mesPPOutboundOrder.Unit + Unit = mesPPOutboundOrder.Unit, + ProductionDate = outStock.Details.Where(x => x.MaterielCode == mesPPOutboundOrder.MaterialCode).FirstOrDefault()?.ProductionDate, + EffectiveDate = outStock.Details.Where(x => x.MaterielCode == mesPPOutboundOrder.MaterialCode).FirstOrDefault()?.EffectiveDate }; return outStockLockInfo; diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" index 9a7f842..830712a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" @@ -173,7 +173,9 @@ StockId = stockInfo.Id, TaskNum = 0, OrderQuantity = outboundOrderDetail.OrderQuantity, - Unit = outboundOrderDetail.Unit + Unit = outboundOrderDetail.Unit, + ProductionDate = stockInfoDetail.ProductionDate, + EffectiveDate = stockInfoDetail.EffectiveDate }; #region 淇敼鍑哄簱鍗� diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs" index 6a41a2b..d6adcc8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs" @@ -20,6 +20,7 @@ using System.Text.RegularExpressions; using WIDESEA_Common.CommonEnum; using WIDESEA_Core.CodeConfigEnum; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; namespace WIDESEA_TaskInfoService { @@ -162,7 +163,9 @@ TaskType = TaskTypeEnum.InProduct.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = warehouse.WarehouseId, - PalletType = proStockInfo.PalletType + PalletType = proStockInfo.PalletType, + MaterielCode = proStockInfo.proStockInfoDetails.Where(x => x.ProStockId == proStockInfo.Id).FirstOrDefault()?.ProductCode, + Quantity = (float)proStockInfo.proStockInfoDetails.Where(x => x.ProStockId == proStockInfo.Id).Sum(x => x.StockPcsQty) }; _unitOfWorkManage.BeginTran(); int taskId = BaseDal.AddData(newTask); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" index c6db724..0df30d5 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" @@ -866,7 +866,9 @@ TaskType = TaskTypeEnum.Inbound.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = stockInfo.WarehouseId, - PalletType = stockInfo.PalletType + PalletType = stockInfo.PalletType, + MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; _unitOfWorkManage.BeginTran(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" index 4e74fc0..5c6ee66 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" @@ -206,7 +206,9 @@ TaskType = TaskTypeEnum.OutAllocate.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = stockInfo.WarehouseId, - PalletType = stockInfo.PalletType + PalletType = stockInfo.PalletType, + MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; _unitOfWorkManage.BeginTran(); BaseDal.AddData(newTask); @@ -374,6 +376,7 @@ }); //鏇存柊浠诲姟鐘舵�� task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); + FeedBackWCSTaskCompleted(taskNum); _unitOfWorkManage.BeginTran(); BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚); _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId); @@ -672,6 +675,7 @@ } task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); + FeedBackWCSTaskCompleted(taskNum); _unitOfWorkManage.BeginTran(); if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt()) @@ -706,7 +710,6 @@ int beforeStatus = locationInfo.LocationStatus; locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚); _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, (LocationStatusEnum)beforeStatus, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs" index 30a4ea6..7c452cc 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs" @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common.APIEnum; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.LocationEnum; using WIDESEA_Common.OtherEnum; @@ -110,5 +111,29 @@ return WebResponseContent.Instance.Error(ex.Message); } } + /// <summary> + /// 鍥炶皟wcs鎵嬪姩瀹屾垚浠诲姟 + /// </summary> + /// <param name="taskNum"></param> + /// <returns></returns> + public WebResponseContent FeedBackWCSTaskCompleted(int taskNum) + { + try + { + Dt_ApiInfo? url = _apiInfoRepository.QueryData(x => x.ApiCode == APIEnum.FeedBackWCSTaskCompleted.ToString()).First(); + string? apiAddress = url.ApiAddress; + if (string.IsNullOrEmpty(apiAddress)) + { + return WebResponseContent.Instance.Error($"{taskNum},鏈壘鍒癢CS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�"); + } + string responseStr = HttpHelper.Get(apiAddress + "?taskNum=" + taskNum); + WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? WebResponseContent.Instance.Error("鏈壘鍒颁换鍔″畬鎴愯繑鍥炲��"); + return content; + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" index a225003..29c3f68 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" @@ -88,7 +88,9 @@ TaskType = TaskTypeEnum.Inbound.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = stockInfo.WarehouseId, - PalletType = stockInfo.PalletType + PalletType = stockInfo.PalletType, + MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; //鑾峰彇鏄惁瀛樺湪鍏ュ簱鍗� Dt_InboundOrder? inboundOrder = null; @@ -326,7 +328,9 @@ TaskType = TaskTypeEnum.Inbound.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = stockInfo.WarehouseId, - PalletType = stockInfo.PalletType + PalletType = stockInfo.PalletType, + MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; //鑾峰彇鏄惁瀛樺湪鍏ュ簱鍗� @@ -434,7 +438,9 @@ TaskType = TaskTypeEnum.Inbound.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = stockInfo.WarehouseId, - PalletType = stockInfo.PalletType + PalletType = stockInfo.PalletType, + MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; @@ -533,7 +539,9 @@ TaskType = TaskTypeEnum.Inbound.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = stockInfo.WarehouseId, - PalletType = stockInfo.PalletType + PalletType = stockInfo.PalletType, + MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; if (stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt()) @@ -761,7 +769,9 @@ TaskType = TaskTypeEnum.InProductBack.ObjToInt(), TaskStatus = TaskStatusEnum.New.ObjToInt(), WarehouseId = warePoint.WarehouseId, - PalletType = proStockInfo.PalletType + PalletType = proStockInfo.PalletType, + MaterielCode = proStockInfo.proStockInfoDetails.Where(x => x.ProStockId == proStockInfo.Id).FirstOrDefault()?.ProductCode, + Quantity = (float)proStockInfo.proStockInfoDetails.Where(x => x.ProStockId == proStockInfo.Id).Sum(x => x.StockPcsQty) }; _unitOfWorkManage.BeginTran(); int taskId = BaseDal.AddData(newTask); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" index e295122..2914a7f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" @@ -486,7 +486,9 @@ TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), PalletType = stockInfo.PalletType, WarehouseId = stockInfo.WarehouseId, - GroupId= groupId + GroupId= groupId, + MaterielCode = stockInfo.proStockInfoDetails.Where(x => x.ProStockId == stockInfo.Id).FirstOrDefault()?.ProductCode, + Quantity = (float)stockInfo.proStockInfoDetails.Where(x => x.ProStockId == stockInfo.Id).Sum(x=> x.StockPcsQty) }; tasks.Add(task); } @@ -525,6 +527,8 @@ TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), PalletType = stockInfo.PalletType, WarehouseId = stockInfo.WarehouseId, + MaterielCode = stockInfo.Details.Where(x =>x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, + Quantity =(float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, }; tasks.Add(task); } @@ -770,7 +774,9 @@ StockId = x.Id, TaskNum = 0, OrderQuantity = OrderDetail.OrderQuantity, - Unit = OrderDetail.Unit + Unit = OrderDetail.Unit, + ProductionDate = v.ProductionDate, + EffectiveDate = v.EffectiveDate }; outStockLockInfos.Add(outStockLockInfo); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" index fd55656..cbdf94b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" @@ -149,6 +149,7 @@ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑缁堢偣璐т綅淇℃伅"); } task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); + FeedBackWCSTaskCompleted(task.TaskNum); _unitOfWorkManage.BeginTran(); stockInfo.LocationCode = locationInfoEnd.LocationCode; stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" index 2402aa9..dab54ac 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" @@ -34,5 +34,11 @@ { return Service.GetOrderQuantity(purchaseOrderNo); } + //鑾峰彇鐗╂枡瑙勬牸 + [HttpPost, HttpGet, Route("GetOrderMaterielSpec"), AllowAnonymous] + public WebResponseContent GetOrderMaterielSpec(string purchaseOrderNo, string materielCode) + { + return Service.GetOrderMaterielSpec(purchaseOrderNo, materielCode); + } } } -- Gitblit v1.9.3