22
schangxiang@126.com
2024-12-15 c1c1b1f95b0880cd58afadb98d6933287fe6311c
CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -1,4 +1,6 @@
using Admin.NET.Application;
using iWareCC.SrmService;
using iWareCC.StationService;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
@@ -24,6 +26,43 @@
    {
        /// <summary>
        /// 生成最新的任务号
        /// </summary>
        /// <param name="wmsDB"></param>
        /// <param name="rbTaskTypeEnum"></param>
        /// <param name="plcTaskNo"></param>
        /// <returns></returns>
        public static string GetNewTaskNo(WmsDBModel wmsDB, RbTaskTypeEnum rbTaskTypeEnum, string plcTaskNo)
        {
            //判断如果任务号跟上一个任务号重复,就自动减去1
            var lastTask = wmsDB.wms_rbline_task.Where(x => x.RbTaskType == (int)rbTaskTypeEnum).OrderByDescending(x => x.Id).FirstOrDefault();
            if (lastTask != null && lastTask.TaskNo == plcTaskNo)
            {
                plcTaskNo = (Convert.ToInt32(plcTaskNo) - 1).ToString();
            }
            else
            {
            }
            return plcTaskNo;
        }
        /// <summary>
        /// 写入 报警信息
        /// </summary>
        /// <param name="warningAddress"></param>
        /// <returns></returns>
        public static async Task<iWareCC.StationService.SdaResEntity> WriteBoolPlcDataForWarning(string warningAddress)
        {
            using (StationServiceClient client = new StationServiceClient())
            {
                var res = await client.WriteBoolPlcDataAsync((int)EDevice.Station, "3000|" + warningAddress, true);
                return res;
            }
        }
        /// <summary>
        /// 处理 表 mes_order_gather
        /// </summary>
        /// <param name="wmsDB"></param>
@@ -36,7 +75,8 @@
        {
            errMsg = "";
            //处理表  mes_order_gather
            if (package == null) {
            if (package == null)
            {
                return true;
            }
            var isAddOrder = false;
@@ -59,15 +99,21 @@
                    Info5 = package.Info5,
                    OrderId = package.OrderId,
                    PlanNo = package.PlanNo,
                    CreateTime = DateTime.Now,
                    UpdateTime = DateTime.Now,
                    CreateUserName = SysGloble.WCSSystem,
                    UpdateUserName = SysGloble.WCSSystem
                };
                isAddOrder = true;
            }
            order.PackageNum = packageList.Count();
            order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.已下线).Count();
            order.NgPackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.已下线 && x.UpiFlag == (int)UpiFlagEnum.NG).Count();
            order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum;
            order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13));
            order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.已下线).Sum(x => Convert.ToDecimal(x.Info13));
            order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.已下线 && x.UpiFlag == (int)UpiFlagEnum.正常).Sum(x => Convert.ToDecimal(x.Info13));
            order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea;
            order.IsKitting = qitaoValue == "齐套" ? true : false;