liudl
2025-01-20 48d66a079c307356997fb400d27907ff6d363b7b
Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Presentation;
using Dm.filter;
using DocumentFormat.OpenXml.Presentation;
using Elastic.Clients.Elasticsearch;
using Furion.Logging;
using Newtonsoft.Json;
@@ -178,6 +179,7 @@
                        Qty = item.Qty,
                        TaskType = (TaskTypeEnum)item.TaskType,
                        CreateTime = DateTime.Now,
                        Status = TaskStatusEnum.Wait,
                    };
                    _db.Insertable(orderAdd).ExecuteCommand();
               //}
@@ -350,34 +352,45 @@
    /// <summary>
    /// WCS接受赋码系统推送的结批总数量
    /// </summary>
    /// <param name="models">箱码信息</param>
    /// <param name="models">结批数量信息</param>
    /// <returns>反馈信息</returns>
    [HttpPost]
    [AllowAnonymous]
    public ResponseFuMaModel HttpTotalNum(FumaBoxInfoInput models)
    public ResponseFuMaModel HttpTotalNum(FumaJiepiModel models)
    {
        try
        {
            string str = JsonConvert.SerializeObject(models);
            Log.Information("接收赋码推送的结批总数量:" + str);
            var num = _db.Queryable<WcsBoxInfo>().Where(m => m.BoxNo == models.BoxNo && m.IsDelete == false).ToList();
            if (num.Count > 0)
            Log.Information("接收赋码推送的完工结批总数量:" + str);
            //查看赋码下发的任务信息是否正在分拣
            var num = _db.Queryable<WcsCheckTask>().Where(m => m.SkuNo == models.SkuNo &&m.LotNo == models.LotNo && m.Status == "1").ToList();
            if (num.Count < 1)
            {
                //WCS存在箱码信息,更新箱码信息(需判断箱码是否已组盘入库)
                var num2 = num.Count(m => m.Status != "0" || !string.IsNullOrWhiteSpace(m.PalletNo));
                if (num2 > 0)
                {
                    throw new Exception("该箱已盘入库,不可更新信息");
                }
            }
            if (num.Count == 0)
            {
                throw new Exception("未找到该箱码,箱码移除失败!");
                return new ResponseFuMaModel() { Success = "-1", Message = "该批次未进行分拣或已结批" };
            }
            _db.Deleteable(num).ExecuteCommand();
            return new ResponseFuMaModel() { Success = "0", Message = "移除箱码成功" };
            //获取包装数量
            int Fqty = int.Parse(models.FinishQty);
            var boxinfolog = _db.Queryable<WcsBoxInfoLog>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.BitBoxMark == "0").First();
            if (boxinfolog == null)
            {
                var boxinfo = _db.Queryable<WcsBoxInfo>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.BitBoxMark == "0").First();
                Fqty = (int)(Fqty /boxinfo.QtyCount);
            }
            else
            {
                Fqty = (int)(Fqty / boxinfolog.QtyCount);
            }
            //写入该任务完成数量
            foreach (var item in num)
            {
                item.FinishQty = Fqty;
            }
            _db.Updateable(num).ExecuteCommand();
            return new ResponseFuMaModel() { Success = "0", Message = "接受完工结批数量成功" };
        }
        catch (Exception ex)
        {