代码管理/WMS/WIDESEA_WMSClient/public/webconfig.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/淮安PDA/pages/stash/OutEmpty.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/public/webconfig.js
@@ -1,3 +1,3 @@ window.webConfig = { "webApiBaseUrl": "http://127.0.0.1:9293/" "webApiBaseUrl": "http://10.30.4.92:9283/" } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js
@@ -1,123 +1,134 @@ //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè éæ°é ç½®çæç代ç import { el } from "element-plus/es/locales.mjs"; let extension = { components: { //æ¥è¯¢ç颿©å±ç»ä»¶ gridHeader: '', gridBody: '', gridFooter: '', //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ modelHeader: '', modelBody: '', modelFooter: '' }, tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® methods: { //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ onInit() { // let InOrder = this.buttons.find(x => x.value == 'StockOutbound'); // if (InOrder) { // InOrder.onClick = function () { // let rows = this.$refs.table.getSelected(); // if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); // if (rows.length > 1) return this.$error("è¯·éæ©åæ¡æ°æ®!"); // var keys = rows.map(x => { return x.stockId }); // this.http // .post("api/Task/Outbound?id="+keys[0], null, "æ°æ®å¤çä¸") // .then((x) => { // if (!x.status) return this.$message.error(x.message); // this.$message.success("æä½æå"); // this.refresh(); // }); // } // } this.columns.forEach(column => { if (column.field == 'materielCode') { column.formatter = (row) => { var str=''; var list=row.materielCode.split(','); for (let index = 0; index < list.length; index++) { str+=list[index]+'<br>'; } return str; components: { //æ¥è¯¢ç颿©å±ç»ä»¶ gridHeader: '', gridBody: '', gridFooter: '', //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ modelHeader: '', modelBody: '', modelFooter: '' }, tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® methods: { //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ onInit() { // let InOrder = this.buttons.find(x => x.value == 'StockOutbound'); // if (InOrder) { // InOrder.onClick = function () { // let rows = this.$refs.table.getSelected(); // if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); // if (rows.length > 1) return this.$error("è¯·éæ©åæ¡æ°æ®!"); // var keys = rows.map(x => { return x.stockId }); // this.http // .post("api/Task/Outbound?id="+keys[0], null, "æ°æ®å¤çä¸") // .then((x) => { // if (!x.status) return this.$message.error(x.message); // this.$message.success("æä½æå"); // this.refresh(); // }); // } // } this.columns.forEach(column => { if (column.field == 'materielCode') { column.formatter = (row) => { var str = ''; var list = row.materielCode.split(','); for (let index = 0; index < list.length; index++) { str += list[index] + '<br>'; } return str = list[0] == "" ? "空箱" : str; } if (column.field == 'batchNo') { column.formatter = (row) => { var str=''; var list=row.batchNo.split(','); for (let index = 0; index < list.length; index++) { str+=list[index]+'<br>'; } return str; } if (column.field == 'batchNo') { column.formatter = (row) => { var str = ''; var list = row.batchNo.split(','); for (let index = 0; index < list.length; index++) { str += list[index] + '<br>'; } return str = list[0] == "" ? "æ " : str; } if (column.field == 'materielInfo') { const today = new Date() column.formatter = (row) => { } if (column.field == 'materielInfo') { const today = new Date() column.formatter = (row) => { if (row.details.length > 0) { const today = new Date(); const closestDate = row.details .map(x => { .map(x => { const date = new Date(x.effectiveDate); const diffInDays = Math.ceil(Math.abs((today - date) / (1000 * 60 * 60 * 24))); return { date, diffInDays }; }) .reduce((closest, current) => (current.diffInDays < closest.diffInDays? current : closest)) .date; .reduce((closest, current) => (current.diffInDays < closest.diffInDays ? current : closest)) .date; const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24))); return '<span style="color: #F56C6C">'+ daysSinceClosest+"天"+'</span>'; return '<span style="color: #F56C6C">' + daysSinceClosest + "天" + '</span>'; } else { return '<span style="color: #F56C6C">' + "æ ä¿è´¨æ" + '</span>'; } } if (column.field == 'sumStock') { column.formatter = (row) => { var sum=0; } if (column.field == 'sumStock') { column.formatter = (row) => { if (row.details.length > 0) { var sum = 0; const closestDate = row.details .map(x => { sum+=(x.stockQuantity) }) return '<span style="color: #F56C6C">'+ sum+row.details[0].unit+'</span>'; .map(x => { sum += (x.stockQuantity) }) return '<span style="color: #F56C6C">' + sum + row.details[0].unit + '</span>'; } else { return '<span style="color: #F56C6C">' + "1个" + '</span>'; } } }) }, onInited() { //æ¡æ¶åå§åé ç½®å //妿è¦é ç½®æç»è¡¨,卿¤æ¹æ³æä½ //this.detailOptions.columns.forEach(column=>{ }); }, searchBefore(param) { //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ return true; }, searchAfter(result) { //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ return true; }, addBefore(formData) { //æ°å»ºä¿ååformData为对象ï¼å æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ return true; }, updateBefore(formData) { //ç¼è¾ä¿ååformData为对象ï¼å æ¬æç»è¡¨ãå é¤è¡çId return true; }, rowClick({ row, column, event }) { //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; }, modelOpenAfter(row) { //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ //(3)this.editFormFields.åæ®µ='xxx'; //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é 置对åºdata屿§çkeyå¼ //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) } } }) }, onInited() { //æ¡æ¶åå§åé ç½®å //妿è¦é ç½®æç»è¡¨,卿¤æ¹æ³æä½ //this.detailOptions.columns.forEach(column=>{ }); }, searchBefore(param) { //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ return true; }, searchAfter(result) { //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ return true; }, addBefore(formData) { //æ°å»ºä¿ååformData为对象ï¼å æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ return true; }, updateBefore(formData) { //ç¼è¾ä¿ååformData为对象ï¼å æ¬æç»è¡¨ãå é¤è¡çId return true; }, rowClick({ row, column, event }) { //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; }, modelOpenAfter(row) { //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ //(3)this.editFormFields.åæ®µ='xxx'; //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é 置对åºdata屿§çkeyå¼ //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) } }; export default extension; } }; export default extension; ´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
@@ -49,7 +49,8 @@ ], [ { title: "ç©æç¼å·", field: "materielCode",type: "like"}, { title: "æ¹æ¬¡å·", field: "batchNo",type: "like"} { title: "æ¹æ¬¡å·", field: "batchNo",type: "like"}, { title: "æå±ä»åº", field: "warehouseId",type: "selectList",dataKey: "warehouse",data: [],}, ], ]); const columns = ref([ @@ -86,6 +87,14 @@ align: "left", }, { field: "warehouseId", title: "æå±ä»åº", type: "string", width: 80, align: "left", bind: { key: "warehouse", data: [] }, }, { field: "roadwayNo", title: "å··éç¼å·", type: "decimal", ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs
@@ -131,6 +131,7 @@ Details = new List<Dt_StockInfoDetail>() }; var ContainerDetailsInfos = TesugarClient.Queryable("ContainerDetailsInfo", "x").Where("CId", "=", id).ToList(); if (ContainerDetailsInfos.Count < 1) stockInfo.PalletType = PalletTypeEnum.Empty.ObjToInt(); foreach (var ContainerDetailsInfo in ContainerDetailsInfos) { dynamic ruleConfig1 = ContainerDetailsInfo; ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs
@@ -16,62 +16,67 @@ public class StockViewDTO { /// <summary> /// /// è´§ä½ç¼å· /// </summary> public string LocationCode { get; set; } /// <summary> /// /// è´§ä½åç§° /// </summary> public string LocationName { get; set; } /// <summary> /// /// è´§ä½å /// </summary> public int Column { get; set; } /// <summary> /// /// è´§ä½è¡ /// </summary> public int Row { get; set; } /// <summary> /// /// è´§ä½å± /// </summary> public int Layer { get; set; } /// <summary> /// /// åºåºä¸»é® /// </summary> public int WarehouseId { get; set; } /// <summary> /// è´§ä½æ·±åº¦ /// </summary> public int Depth { get; set; } /// <summary> /// /// è´§ä½ç¶æ /// </summary> public int LocationStatus { get; set; } /// <summary> /// /// è´§ä½ç±»å /// </summary> public int LocationType { get; set; } /// <summary> /// /// å··éç¼å· /// </summary> public string RoadwayNo { get; set; } /// <summary> /// /// ç¦ç¨ç¶æ /// </summary> public int EnalbeStatus { get; set; } /// <summary> /// /// åºåä¸»é® /// </summary> public int StockId { get; set; } /// <summary> /// /// æçå· /// </summary> public string PalletCode { get; set; } @@ -81,47 +86,47 @@ public bool IsFull { get; set; } /// <summary> /// /// ç©æç¼ç /// </summary> public string MaterielCode { get; set; } /// <summary> /// /// ç©ææ¹å· /// </summary> public string BatchNo { get; set; } /// <summary> /// /// åºåç¶æ /// </summary> public int StockStatus { get; set; } /// <summary> /// /// åºå夿³¨ /// </summary> public string StockRemark { get; set; } /// <summary> /// /// å建人 /// </summary> public string Creater { get; set; } /// <summary> /// /// å建æ¶é´ /// </summary> public DateTime CreateDate { get; set; } /// <summary> /// /// ä¿®æ¹äºº /// </summary> public string Modifier { get; set; } /// <summary> /// /// ä¿®æ¹æ¶é´ /// </summary> public DateTime? ModifyDate { get; set; } /// <summary> /// /// åºå详æ /// </summary> [Navigate(NavigateType.OneToMany, nameof(Dt_StockInfoDetail.StockId), nameof(StockId))] public List<Dt_StockInfoDetail> Details { get; set; } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -76,7 +76,7 @@ /// <param name="qty">æ°é</param> /// <param name="address">å°å</param> /// <returns></returns> WebResponseContent OutEmpty(int qty, string address, int WarehouseId); WebResponseContent OutEmpty(int qty, string address, int WarehouseId, string barcode); /// <summary> /// WCSç³è¯·å ¥åº ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
@@ -88,6 +88,7 @@ Depth = a.Depth, EnalbeStatus = a.EnableStatus, Layer = a.Layer, WarehouseId = b.WarehouseId, LocationName = a.LocationName, LocationStatus = a.LocationStatus, LocationType = a.LocationType, @@ -101,7 +102,7 @@ StockStatus = b.StockStatus, Details = b.Details, }); int totalCount = 0; ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -53,7 +53,7 @@ { return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); } if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.æå¨ç»çæå.ObjToInt() && stockInfo.StockStatus!=StockStatusEmun.åºåºå®æ.ObjToInt()) if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.æå¨ç»çæå.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.åºåºå®æ.ObjToInt()) { return WebResponseContent.Instance.Error($"该æçç¶æä¸æ£ç¡®,ä¸å¯ç³è¯·å ¥åº"); } @@ -173,7 +173,7 @@ return WebResponseContent.Instance.Error(ex.Message); } } public WebResponseContent OutEmpty(int qty, string address, int WarehouseId) public WebResponseContent OutEmpty(int qty, string address, int WarehouseId, string barcode) { try { @@ -182,8 +182,17 @@ { return WebResponseContent.Instance.Error($"æªæ¾å°åºåº"); } var stockInfos = _stockRepository.StockInfoRepository.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == PalletTypeEnum.Empty.ObjToInt() && x.StockStatus == StockStatusEmun.å ¥åºå®æ.ObjToInt(), qty, nameof(Dt_StockInfo.CreateDate)); if (stockInfos == null) return WebResponseContent.Instance.Error($"{warehouse.WarehouseName}æªæ¾å°ç©ºç®±åºå"); List<Dt_StockInfo> stockInfos = null; if (string.IsNullOrEmpty(barcode)) { stockInfos = _stockRepository.StockInfoRepository.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == PalletTypeEnum.Empty.ObjToInt() && x.StockStatus == StockStatusEmun.å ¥åºå®æ.ObjToInt(), qty, nameof(Dt_StockInfo.CreateDate)); } else { stockInfos = _stockRepository.StockInfoRepository.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == PalletTypeEnum.Empty.ObjToInt() && x.StockStatus == StockStatusEmun.å ¥åºå®æ.ObjToInt() && x.PalletCode == barcode); if (stockInfos.Count == 0) return WebResponseContent.Instance.Error($"{warehouse.WarehouseName}æªæ¾å°ç©ºç®±ã{barcode}ã"); } if (stockInfos.Count < qty) return WebResponseContent.Instance.Error($"{warehouse.WarehouseName}空箱åºåä¸è¶³,åºåæ°ã{stockInfos.Count}ã"); List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutEmpty); stockInfos.ForEach(x => ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -61,9 +61,9 @@ /// <param name="address">å°å</param> /// <returns></returns> [HttpPost, HttpGet, Route("OutEmpty"), AllowAnonymous] public WebResponseContent OutEmpty(int qty, string address, int WarehouseId) public WebResponseContent OutEmpty(int qty, string address, int WarehouseId, string barcode) { return Service.OutEmpty(qty, address, WarehouseId); return Service.OutEmpty(qty, address, WarehouseId,barcode); } [HttpPost, HttpGet, Route("DeviceRequestInboundTask"), AllowAnonymous] ´úÂë¹ÜÀí/»´°²PDA/pages/stash/OutEmpty.vue
@@ -6,6 +6,9 @@ <uni-easyinput type="text" placeholder="请è¾å ¥æ°é" ref='midInput' :focus="!focus" v-model="qty" @input="barcodeInput" /> </uni-forms-item> <uni-forms-item label="æçæ¡ç :"> <uni-easyinput type="text" placeholder="è¯·æ«ææçæ¡ç " ref='midInput' :focus="focus" v-model="barcode" /> </uni-forms-item> <uni-forms-item> <button @click="OutEmpty" type="primary" size="default" style="margin-top: 2%;">空箱åºåº</button> </uni-forms-item> @@ -23,12 +26,14 @@ focus: false, qty: "", address: "", barcode: "", } }, onShow() {}, onLoad(res) { this.WarehouseId = res.warehouseId; this.focus = false; this.qty = 1; if (res.warehouseId == 5) { this.address = "8001"; } @@ -53,8 +58,15 @@ }) return; } if (this.qty < 1) { this.$refs.uToast.show({ title: "æ°éä¸è½å°äº1", type: 'error' }) return; } this.$u.post('/api/Task/OutEmpty?qty=' + this.qty + '&address=' + this.address + '&WarehouseId=' + this.WarehouseId).then( this.WarehouseId + '&barcode=' + this.barcode).then( res => { if (res.status) { this.$refs.uToast.show({