1.出库单据、生成出库单据、计算物料时增加货架类型用于区分信息化货架和智能货架的物料 实现分开出
This commit is contained in:
@ -4,12 +4,14 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WCS.Model;
|
||||
using WCS.Model.ApiModel.MatInventoryDetail;
|
||||
using WCS.Model.ApiModel.OutStore;
|
||||
|
||||
namespace WCS.BLL.Services.IService
|
||||
{
|
||||
public interface IOutstoreService
|
||||
{
|
||||
public Task<ResponseCommon<List<MatInventorySummaryModel>>> importMat(List<OutImportMatModel> list);
|
||||
public Task<ResponseBase> SysOutOrderByMatCode(SysOutOrderByMatCodeRequest request);
|
||||
|
||||
public Task<ResponseBase> SysOutOrderByMatSn(SysOutOrderByMatSnRequest request);
|
||||
@ -22,7 +24,7 @@ namespace WCS.BLL.Services.IService
|
||||
|
||||
public Task<ResponseBase> GetOutOrderMatDetail(GetOutOrderDetailRequest request);
|
||||
|
||||
public Task<ResponseBase> GoInOutstore(GetOutOrderDetailRequest request);
|
||||
public Task<ResponseBase> GoInOutstore(GetOutOrderDetailRequest request);
|
||||
|
||||
public Task<ResponseBase> GoOutOutstore(GetOutOrderDetailRequest request);
|
||||
|
||||
|
@ -130,7 +130,7 @@ namespace WCS.BLL.Services.Service
|
||||
}
|
||||
|
||||
IShelfBase shelf = null;
|
||||
if (!request.IsSingleLightIn)
|
||||
if (!request.SingleLightIn)
|
||||
{
|
||||
//获取货架
|
||||
shelf = ShelfManager.Shelves.Where(t => t.ShelfCode == request.ShelfCode).FirstOrDefault();
|
||||
@ -164,13 +164,13 @@ namespace WCS.BLL.Services.Service
|
||||
{
|
||||
materialBar = request.MatSn
|
||||
};
|
||||
var Result = ApiHelp.GetDataFromHttp<ResponseCommon<List<queryByBarResponse>>>("http://192.168.2.23:9213/integrate/instock/queryBybar", body, "POST");
|
||||
var Result = ApiHelp.GetDataFromHttp<ResponseCommon<List<queryByBarResponse>>>("http://192.168.2.23:9213/integrate/instock/queryBybar", body, "POST", true);
|
||||
|
||||
//查询到物料信息
|
||||
if (Result != null && Result.Code == 200 && Result.Data != null && Result.Data.Count > 0)
|
||||
{
|
||||
var data = Result.Data.First();
|
||||
if (!request.IsSingleLightIn && shelf != null)
|
||||
if (!request.SingleLightIn && shelf != null)
|
||||
shelf.InStoreData = new MatInfoResponse()
|
||||
{
|
||||
materialBar = data.materialBar,
|
||||
@ -239,7 +239,7 @@ namespace WCS.BLL.Services.Service
|
||||
if (matInfo != null)
|
||||
{
|
||||
//TODO 改成wcs的实体
|
||||
if (!request.IsSingleLightIn && shelf != null)
|
||||
if (!request.SingleLightIn && shelf != null)
|
||||
shelf.InStoreData = new MatInfoResponse()
|
||||
{
|
||||
materialBar = matInfo.MatSn,
|
||||
@ -468,7 +468,7 @@ namespace WCS.BLL.Services.Service
|
||||
data1[5] = 0x03;
|
||||
data1[6] = 0x02;
|
||||
data1[7] = 0x02;
|
||||
byte[] senddata1 = Tool.Helper.Crc16(data1,data1.Length,false);
|
||||
byte[] senddata1 = Tool.Helper.Crc16(data1, data1.Length, false);
|
||||
tCPClient.Send(senddata1); //报警灯短亮一次
|
||||
|
||||
byte[] data2 = new byte[8];
|
||||
@ -489,7 +489,7 @@ namespace WCS.BLL.Services.Service
|
||||
Message = $"入库成功!",
|
||||
Data = rcs.Data,
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -128,16 +128,16 @@ namespace WCS.BLL.Services.Service
|
||||
var inventortyDetails = await DbHelp.db.Queryable<InventoryDetail>()
|
||||
.WhereIF(!string.IsNullOrEmpty(request.MatName), t => t.MatName.Contains(request.MatName))
|
||||
.WhereIF(!string.IsNullOrEmpty(request.MatCode), t => t.MatCode.Contains(request.MatCode))
|
||||
.WhereIF(!string.IsNullOrEmpty(request.MatBatch), t => t.MatBatch.Contains(request.MatBatch))
|
||||
.Where(t => t.StoreInfo.ShelfTypeId == request.ShelfTypeId)
|
||||
.GroupBy(t => t.MatCode)
|
||||
.GroupBy(t => t.MatBatch)
|
||||
.Select(t => new MatInventorySummaryModel
|
||||
{
|
||||
MatCode = t.MatCode,
|
||||
MatName = t.MatName,
|
||||
MatBatch = t.MatBatch,
|
||||
MatSpec = t.MatSpec,
|
||||
MatCustomer = t.MatCustomer,
|
||||
MatSupplier = t.MatSupplier,
|
||||
MatBatch = t.MatBatch,
|
||||
TotalQty = SqlFunc.AggregateSum(t.MatQty)
|
||||
})
|
||||
.ToListAsync();
|
||||
|
@ -1,19 +1,12 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TouchSocket.Sockets;
|
||||
using WCS.BLL.Config;
|
||||
using WCS.BLL.DbModels;
|
||||
using WCS.BLL.Manager;
|
||||
using WCS.BLL.Services.IService;
|
||||
using WCS.DAL.Db;
|
||||
using WCS.DAL.DbModels;
|
||||
using WCS.Model;
|
||||
using WCS.Model.ApiModel.InOutRecord;
|
||||
using WCS.Model.ApiModel.MatInventoryDetail;
|
||||
using WCS.Model.ApiModel.OutStore;
|
||||
|
||||
namespace WCS.BLL.Services.Service
|
||||
@ -23,6 +16,53 @@ namespace WCS.BLL.Services.Service
|
||||
public OutstoreService()
|
||||
{
|
||||
|
||||
}
|
||||
public async Task<ResponseCommon<List<MatInventorySummaryModel>>> importMat(List<OutImportMatModel> list)
|
||||
{
|
||||
//数据校验
|
||||
if (list == null || list.Count == 0)
|
||||
{
|
||||
return new ResponseCommon<List<MatInventorySummaryModel>>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = "导入失败:导入文件中没有内容!"
|
||||
};
|
||||
}
|
||||
//需求数量
|
||||
var errorCount = list.Where(t => t.需求数量 <= 0).ToList();
|
||||
if (errorCount != null && errorCount.Count > 0)
|
||||
{
|
||||
return new ResponseCommon<List<MatInventorySummaryModel>>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = "导入失败:需求数量需要大于0!"
|
||||
};
|
||||
}
|
||||
//每一个物料进行搜索库存
|
||||
var returnList = new List<MatInventorySummaryModel>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
var inventoryCount = await DbHelp.db.Queryable<InventoryDetail>()
|
||||
.Where(t => t.MatCode == item.物料编码)
|
||||
.Where(t => t.MatBatch == item.物料批次)
|
||||
.Where(t => t.IsLocked == false)
|
||||
.SumAsync(t => t.MatQty);
|
||||
var info = inventoryCount < item.需求数量 ? "库存数量小于需求数量" : string.Empty;
|
||||
returnList.Add(new MatInventorySummaryModel()
|
||||
{
|
||||
MatCode = item.物料编码,
|
||||
MatName = item.物料名称,
|
||||
MatBatch = item.物料批次,
|
||||
NeedQty = item.需求数量,
|
||||
TotalQty = inventoryCount,
|
||||
Info = info
|
||||
});
|
||||
}
|
||||
return new ResponseCommon<List<MatInventorySummaryModel>>()
|
||||
{
|
||||
Code = 200,
|
||||
Data = returnList
|
||||
};
|
||||
}
|
||||
public async Task<ResponseBase> SysOutOrderByMatCode(SysOutOrderByMatCodeRequest request)
|
||||
{
|
||||
@ -35,6 +75,24 @@ namespace WCS.BLL.Services.Service
|
||||
Message = "出库单据同步失败:缺少需要出库的物料类型!"
|
||||
};
|
||||
}
|
||||
//补齐货架类型名称
|
||||
if (string.IsNullOrEmpty(request.ShelfTypeName))
|
||||
{
|
||||
var shelfType = await DbHelp.db.Queryable<ShelfTypeInfo>()
|
||||
.Where(t => t.Id == request.ShelfTypeId)
|
||||
.FirstAsync();
|
||||
if (shelfType == null)
|
||||
{
|
||||
return new ResponseBase()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"出库单据同步失败:缺少必要参数!ShelfTypeId"
|
||||
};
|
||||
}
|
||||
else
|
||||
request.ShelfTypeName = shelfType.ShelfTypeName;
|
||||
}
|
||||
|
||||
//保存数据
|
||||
await DbHelp.db.BeginTranAsync();
|
||||
try
|
||||
@ -44,6 +102,8 @@ namespace WCS.BLL.Services.Service
|
||||
OrderNumber = request.OrderNumber,
|
||||
OrderSource = request.OrderSource,
|
||||
OrderType = request.OrderType,
|
||||
ShelfTypeId = request.ShelfTypeId,
|
||||
ShelfTypeName = request.ShelfTypeName,
|
||||
SyncType = SyncTypeEnum.ByMatCode,
|
||||
CreateUser = request.UserName,
|
||||
};
|
||||
@ -645,7 +705,8 @@ namespace WCS.BLL.Services.Service
|
||||
.Where(t => t.MatCode == outOrderDetail.MatCode)
|
||||
.WhereIF(!string.IsNullOrEmpty(outOrderDetail.MatBatch), t => t.MatBatch == outOrderDetail.MatBatch)
|
||||
.Where(t => t.IsLocked == false)//未锁定的物料
|
||||
.OrderBy(t => t.MatBatch)//先进先出
|
||||
.Where(t => t.StoreInfo.ShelfTypeId == order.ShelfTypeId)
|
||||
.OrderBy(t => t.MatBatch)//按批次先进先出
|
||||
//(t => t.MatQty)//零散料先出
|
||||
.ToList();
|
||||
|
||||
@ -873,7 +934,7 @@ namespace WCS.BLL.Services.Service
|
||||
}
|
||||
DbHelp.db.Updateable<OrderLight>().SetColumns(it => it.OrderNumber == null).Where(it => it.OrderNumber == request.OrderNumber).ExecuteCommand();
|
||||
//灭灯
|
||||
|
||||
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 200,
|
||||
@ -911,11 +972,11 @@ namespace WCS.BLL.Services.Service
|
||||
ior.OperateUser = request.userName;
|
||||
ior.OperateTime = DateTime.Now;
|
||||
//保存出库记录
|
||||
int count= DbHelp.db.Insertable(ior).ExecuteCommand();
|
||||
int count = DbHelp.db.Insertable(ior).ExecuteCommand();
|
||||
//删除库存
|
||||
DbHelp.db.Deleteable<InventoryDetail>().Where(it => it.MatSN == request.MatSn).ExecuteCommand();
|
||||
//更新需求表
|
||||
List<OutOrderDetail> odd = DbHelp.db.Queryable<OutOrderDetail>().Where(it => it.OrderNumber == request.orderNumber).Where(it=>it.MatCode==request.MatCode).ToList();
|
||||
List<OutOrderDetail> odd = DbHelp.db.Queryable<OutOrderDetail>().Where(it => it.OrderNumber == request.orderNumber).Where(it => it.MatCode == request.MatCode).ToList();
|
||||
odd[0].OutQty += request.Qty;
|
||||
DbHelp.db.Updateable(odd[0]).ExecuteCommand();
|
||||
|
||||
@ -926,5 +987,7 @@ namespace WCS.BLL.Services.Service
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user