Files
wcs/WCS.BLL/Services/Service/UploadService.cs
hehaibing-1996 ed3673db03 1
2024-07-05 14:36:34 +08:00

137 lines
4.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using TouchSocket.Core;
using WCS.BLL.DbModels;
using WCS.BLL.Manager;
using WCS.BLL.Services.IService;
using WCS.BLL.Tool;
using WCS.DAL;
using WCS.DAL.Db;
using WCS.DAL.Db.AuthDb;
using WCS.DAL.DbModels;
using WCS.Model;
using WCS.Model.ApiModel;
using WCS.Model.ApiModel.SingleLight;
using WCS.Model.ApiModel.UpLoad;
using WCS.Model.ApiModel.User;
using WCS.Model.WebSocketModel;
using static System.Formats.Asn1.AsnWriter;
using static WCS.BLL.Tool.Helper;
namespace WCS.BLL.Services.Service
{
public class UploadService : IUploadService
{
public async Task<ResponseBase> GetReelInfo(string MatSn)
{
if (string.IsNullOrEmpty(MatSn))
{
return new ResponseBase<object>()
{
Code = 201,
Message = "操作失败:条码不能为空"
};
}
//查询物料条码是否存在
var matInfo = await DbHelp.db.Queryable<MatInfo>()
.Where(t => t.MatSn == MatSn)
.FirstAsync();
return new ResponseBase<object>()
{
Code = 200,
Message = "success",
Data = new
{
MatSN = matInfo?.MatSn,
Qty = matInfo?.MatQty
}
};
}
public async Task<ResponseBase> UploadReelInfo(UploadReelInfoRequest request)
{
//校验参数
if (string.IsNullOrEmpty(request.MatSN) || request.Qty <= 0)
{
return new ResponseBase()
{
Code = 201,
Message = "操作失败:条码或数量不合法!"
};
}
//查询物料条码是否存在
var matInfo = await DbHelp.db.Queryable<MatInfo>()
.Where(t => t.MatSn == request.MatSN)
.FirstAsync();
if (matInfo == null)
{
return new ResponseBase()
{
Code = 201,
Message = $"操作失败:不存在此条码【{request.MatSN}】"
};
}
//是否在库存中
var inventoryDetail = await DbHelp.db.Queryable<InventoryDetail>()
.Where(t => t.MatSN == request.MatSN)
.FirstAsync();
if (inventoryDetail != null)
{
return new ResponseBase()
{
Code = 201,
Message = $"操作失败:此条码在库位{inventoryDetail.StoreCode}上,请下架后再进行操作。"
};
}
try
{
DbHelp.db.BeginTran();
//记录日志
var MatInfoLog = new MatInfoLog()
{
MatQty = request.Qty,
MatSn = request.MatSN,
Info = $"[{request.IPAddress}]数量从{matInfo.MatQty}修改为{request.Qty}!"
};
DbHelp.db.Insertable(MatInfoLog).ExecuteCommand();
//修改数量
matInfo.MatQty = request.Qty;
DbHelp.db.Updateable(matInfo).ExecuteCommand();
DbHelp.db.CommitTran();
return new ResponseBase()
{
Code = 200,
Message = "success"
};
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseBase()
{
Code = 300,
Message = "操作失败:" + ex.Message
};
}
}
}
}