CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
@@ -976,6 +976,9 @@ private bool R_OutboundFinishField; [System.Runtime.Serialization.OptionalFieldAttribute()] private bool R_OutboundModeField; [System.Runtime.Serialization.OptionalFieldAttribute()] private string R_OutboundNumberField; [System.Runtime.Serialization.OptionalFieldAttribute()] @@ -1174,6 +1177,19 @@ } [System.Runtime.Serialization.DataMemberAttribute()] public bool R_OutboundMode { get { return this.R_OutboundModeField; } set { if ((this.R_OutboundModeField.Equals(value) != true)) { this.R_OutboundModeField = value; this.RaisePropertyChanged("R_OutboundMode"); } } } [System.Runtime.Serialization.DataMemberAttribute()] public string R_OutboundNumber { get { return this.R_OutboundNumberField; CC/iWareCC_ASRS/Connected Services/StationService/item4.xsd
@@ -89,6 +89,7 @@ <xs:element minOccurs="0" name="R_Inbound_TaskID" type="xs:short" /> <xs:element minOccurs="0" name="R_Model" type="xs:short" /> <xs:element minOccurs="0" name="R_OutboundFinish" type="xs:boolean" /> <xs:element minOccurs="0" name="R_OutboundMode" type="xs:boolean" /> <xs:element minOccurs="0" name="R_OutboundNumber" nillable="true" type="xs:string" /> <xs:element minOccurs="0" name="R_Outbound_TaskID" type="xs:short" /> <xs:element minOccurs="0" name="R_PalletizingAck" type="xs:boolean" /> CC/iWareModel/EnumType/WMS/StockStatusEnum.cs
@@ -37,7 +37,13 @@ /// 人工强å¶ä»»å¡å·²å建 /// </summary> [Description("人工强å¶ä»»å¡å·²å建")] 人工强å¶ä»»å¡å·²å建 = 5 人工强å¶ä»»å¡å·²å建 = 5, /// <summary> /// 人工é½å åºåºä»»å¡å·²å建 /// </summary> [Description("人工é½å åºåºä»»å¡å·²å建")] 人工é½å åºåºä»»å¡å·²å建 = 6 } /// <summary> LA24030_LuLiPackageLine_Pda/manifest.json
@@ -1,8 +1,8 @@ { "name" : "LuLiMuYe_Package_Pda", "appid" : "__UNI__28D87EB", "description" : "2024.12.12", "versionName" : "1.0.3", "description" : "2024.12.14", "versionName" : "1.0.4", "versionCode" : "100", "transformPx" : false, "app-plus" : { LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
@@ -87,6 +87,7 @@ <el-button type="primary" icon="ele-Search" @click="handleQuery"> æ¥è¯¢ </el-button> <el-button icon="ele-Refresh" @click="() => (queryParams = {})"> éç½® </el-button> <el-button icon="ele-Finished" @click="clickOutForQiBao"> é½å åºåº </el-button> <el-button icon="ele-Finished" @click="clickOut"> 强å¶åºåº </el-button> <!-- <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left: 5px"> é«çº§æ¥è¯¢ </el-button> @@ -103,7 +104,12 @@ <div class="left-table"> <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 :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" ref="tableRef" row-key="id" @selection-change="handleSelectionChangeForQiBao" @sort-change="sortChange" :summary-method="getExportTitle" border=""> <el-table-column align="center" width="60" type="selection" /> <el-table-column type="index" label="åºå·" width="55" align="center" /> <!-- <el-table-column prop="packageCode" label="å è£ å·" show-overflow-tooltip="" /> --> <el-table-column label="å è£ å·" prop="packageCode" width="150" align="left" show-overflow-tooltip> @@ -205,6 +211,7 @@ downloadExcelTemplateWmsOrderPurchaseAll, packList, ForceOutbound, PersonOutbound } from '/@/api/main/WmsOrder/wmsOrderPurchase'; import { handleSlectDataWmsBusinessType } from '/@/utils/selectData'; import { getAPI } from '/@/utils/axios-utils'; @@ -466,6 +473,14 @@ }; //éä¸çè¡ const checkRowsForQiBao = ref<{ id: number }[]>([]); // éæ© const handleSelectionChangeForQiBao = (val: any) => { checkRowsForQiBao.value = val; }; //éä¸çè¡ const checkRows = ref<{ id: number }[]>([]); // éæ© @@ -473,6 +488,30 @@ checkRows.value = val; }; const clickOutForQiBao = () => { var PackageCodeList = checkRowsForQiBao.value.map((x: any) => x.packageCode); if (PackageCodeList.length == 0) { ElMessage.error('è¯·éæ©éè¦é½å åºåºç订åï¼'); return; } ElMessageBox.confirm('æ¯å¦ç¡®è®¤é½å åºåºï¼', 'æç¤º', { confirmButtonText: '确认', cancelButtonText: 'åæ¶', type: 'warning', }) .then(async () => { loading.value = true; var res = await PersonOutbound( { "PackageCodeList": PackageCodeList } ); handleQuery(); ElMessage.success('é½å åºåºè¯·æ±æå'); loading.value = false; }) .catch(() => ElMessage.info('已忶')); }; const clickOut = () => { var PackageCodeList = checkRows.value.map((x: any) => x.packageCode); if (PackageCodeList.length == 0) { @@ -492,7 +531,7 @@ } ); handleQuery(); ElMessage.success('强å¶åºåºæå'); ElMessage.success('强å¶åºåºè¯·æ±æå'); loading.value = false; }) .catch(() => ElMessage.info('已忶')); LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs
@@ -34,7 +34,13 @@ /// 人工强å¶ä»»å¡å·²å建 /// </summary> [Description("人工强å¶ä»»å¡å·²å建")] 人工强å¶ä»»å¡å·²å建 = 5 人工强å¶ä»»å¡å·²å建 = 5, /// <summary> /// 人工é½å åºåºä»»å¡å·²å建 /// </summary> [Description("人工é½å åºåºä»»å¡å·²å建")] 人工é½å åºåºä»»å¡å·²å建 = 6 } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/Dto/WmsCommonnQueryInput.cs
@@ -7,43 +7,16 @@ namespace Admin.NET.Application.Service.WmsCommonnQuery.Dto; /// <summary> /// åºåä¿¡æ¯å页æ¥è¯¢è¾å ¥åæ° /// ç¼åå²é½å æ¥è¯¢è¾å ¥åæ° /// </summary> public class PackListInput : BasePageInput public class PackListInput { /// <summary> /// å ³é®åæ¥è¯¢ /// </summary> public string? SearchKey { get; set; } /// <summary> /// æ¯å¦é½å¥ /// æ¯å¦é½å /// </summary> public bool? IsPack { get; set; } /// <summary> /// è¿å ¥æ¶é´ /// </summary> public DateTime? InTime { get; set; } /// <summary> /// è¿å ¥æ¶é´èå´ /// </summary> public List<DateTime?> InTimeRange { get; set; } /// <summary> /// é¨ä»¶æ¡ç /// </summary> public string? Upi { get; set; } /// <summary> /// é¨ä»¶åç§° /// </summary> public string? DetailName { get; set; } /// <summary> /// æ¹æ¬¡ /// </summary> public string? PlanNo { get; set; } public string PackageCode { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/Dto/PersonOutboundInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ using Admin.NET.Core; using System.ComponentModel.DataAnnotations; namespace Admin.NET.Application; /// <summary> /// 人工é½å åºåºè¾å ¥åæ° /// </summary> public class PersonOutboundInput { /// <summary> /// å è£ å·éå /// </summary> public virtual List<string> PackageCodeList { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -8,6 +8,7 @@ using Microsoft.CodeAnalysis.Operations; using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto; using Furion.DatabaseAccessor; using Admin.NET.Application.Service.WmsCommonnQuery.Dto; namespace Admin.NET.Application; /// <summary> @@ -26,6 +27,7 @@ private readonly SqlSugarRepository<WmsRecordPackageProcess> _wmsRecordPackageProcessRep; private readonly SqlSugarRepository<Mes_Upi_LineQueue> _mes_Upi_LineQueueRep; private readonly SqlSugarRepository<WmsRecordUpiNg> _wmsRecordUpiNgRep; private readonly WmsCommonnQueryService _wmsCommonnQueryService; public WmsOperationTaskService( SqlSugarRepository<Mes_Upi_LineQueue> mes_Upi_LineQueueRep, @@ -37,8 +39,10 @@ , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep , SqlSugarRepository<WmsRecordUpiNg> wmsRecordUpiNgRep , WmsCommonnQueryService wmsCommonnQueryService ) { _wmsCommonnQueryService = wmsCommonnQueryService; _wmsRecordUpiNgRep = wmsRecordUpiNgRep; _sysConfigRep = sysConfigRep; _mesPackageGatherRep = mesPackageGatherRep; @@ -68,14 +72,23 @@ { throw Oops.Oh("åæ°ä¸è½ä¸ºç©º"); } //éªè¯ä¼ éçå æ¯å¦é½å¨é½å ä¹å ã List<WmsPackListOutput> packList = await _wmsCommonnQueryService.PackList(new Service.WmsCommonnQuery.Dto.PackListInput() { IsPack = false }); List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>(); foreach (var item in input.PackageCodeList) { var isExistCount = packList.Where(x => x.PackageCode == item).Count(); if (isExistCount == 0) { throw Oops.Oh($"å {item}䏿¯ç¼ºå ç¶æï¼è¯·æ£æ¥ï¼"); } var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync(); var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.é½å å¾ åºåº).Count(); var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.é½å å¾ åºåº || x.StockStatus == StockStatusEnum.人工é½å åºåºä»»å¡å·²å建).Count(); if (isExist > 0) { throw Oops.Oh($"å {item}ä¸å ¶ä¸ææ¿ç¶ææ¯'{StockStatusEnum.é½å å¾ åºåº.ToString()}'ï¼ä¸å 许强å¶åºåº"); throw Oops.Oh($"å {item}ä¸å ¶ä¸ææ¿ç¶ææ¯'{StockStatusEnum.é½å å¾ åºåº.ToString()}' æ'{StockStatusEnum.人工é½å åºåºä»»å¡å·²å建.ToString()}'ï¼ä¸å 许强å¶åºåº"); } //æ´æ°ç¶æ @@ -93,6 +106,56 @@ } /// <summary> /// 人工é½å åºåº /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "PersonOutbound")] [Description("WmsOperationTask/PersonOutbound")] [UnitOfWork] public async Task PersonOutbound(PersonOutboundInput input) { if (input == null || input.PackageCodeList?.Count == 0) { throw Oops.Oh("åæ°ä¸è½ä¸ºç©º"); } //éªè¯ä¼ éçå æ¯å¦é½å¨é½å ä¹å ã List<WmsPackListOutput> packList = await _wmsCommonnQueryService.PackList(new Service.WmsCommonnQuery.Dto.PackListInput() { IsPack = true }); List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>(); foreach (var item in input.PackageCodeList) { var isExistCount = packList.Where(x => x.PackageCode == item).Count(); if (isExistCount == 0) { throw Oops.Oh($"å {item}䏿¯é½å ç¶æï¼è¯·æ£æ¥ï¼"); } var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync(); var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.人工强å¶å¾ åºåº || x.StockStatus == StockStatusEnum.人工强å¶ä»»å¡å·²å建).Count(); if (isExist > 0) { throw Oops.Oh($"å {item}ä¸å ¶ä¸ææ¿ç¶ææ¯'{StockStatusEnum.人工强å¶å¾ åºåº.ToString()}'æ'{StockStatusEnum.人工强å¶ä»»å¡å·²å建.ToString()}'ï¼ä¸å 许人工é½å åºåº"); } //æ´æ°ç¶æ foreach (var quan in quanList) { quan.StockStatus = StockStatusEnum.é½å å¾ åºåº; quan.StockStatusName = StockStatusEnum.é½å å¾ åºåº.ToString(); quan.UpdateTime = DateTime.Now; quan.OperReason = "人工é½å åºåº"; } updateQuanList.AddRange(quanList); } await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList); } /// <summary> /// 夿é½å¥ /// </summary> SDA/iWareSda/Devices/4-Station/StationModel/DB/Items/Read/StationDB2ObjForReadComm.cs
@@ -155,6 +155,13 @@ /// </summary> [Description("强å¶åºåºæ¨¡å¼")] public bool R_ForceOutboundMode { get; set; } /// <summary> /// åºåºæ¨¡å¼ /// </summary> [Description("åºåºæ¨¡å¼")] public bool R_OutboundMode { get; set; } /// <summary> /// åå ä»»å¡å®æ /// </summary> SDA/iWareSda/Devices/4-Station/StationModel/DB/Items/Read/StationDBForReadComm.cs
@@ -98,6 +98,12 @@ public string R_ForceOutboundMode { get; set; } /// <summary> /// åºåºæ¨¡å¼ /// </summary> [Description("åºåºæ¨¡å¼")] public string R_OutboundMode { get; set; } /// <summary> /// åå ä»»å¡å®æ /// </summary> [Description("åå ä»»å¡å®æ")] SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
@@ -317,6 +317,7 @@ R_Outbound_TaskID = W_DBHeaderWithSeparate_BZ39 + "114.0", R_ForceOutboundMode = W_DBHeaderWithSeparate_BZ39 + "50.3", R_OutboundMode = W_DBHeaderWithSeparate_BZ39 + "50.5", });