using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_BasicRepository;
|
using WIDESEA_Common.CommonEnum;
|
using WIDESEA_Common.MaterielEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_DTO.Basic;
|
using WIDESEA_DTO.ERP;
|
using WIDESEA_DTO.PLS;
|
using WIDESEA_IBasicRepository;
|
using WIDESEA_IBasicService;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_BasicService
|
{
|
public partial class MaterielInfoService : ServiceBase<Dt_MaterielInfo, IMaterielInfoRepository>, IMaterielInfoService
|
{
|
/// <summary>
|
/// 判断物料是否存在
|
/// </summary>
|
/// <param name="materielCode">物料编号</param>
|
/// <returns></returns>
|
public bool ExsitMateriel(string materielCode)
|
{
|
return BaseDal.QueryFirst(x => x.MaterielCode == materielCode) != null;
|
}
|
|
/// <summary>
|
/// 判断物料是否存在
|
/// </summary>
|
/// <param name="materielCodes">物料编号集合</param>
|
/// <returns></returns>
|
public bool ExsitMateriels(List<string> materielCodes)
|
{
|
return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode)).Count == materielCodes.Count;
|
}
|
|
/// <summary>
|
/// 获取物料信息
|
/// </summary>
|
/// <param name="materielCode">物料编号</param>
|
/// <returns></returns>
|
public Dt_MaterielInfo GetMaterielInfo(string materielCode)
|
{
|
return BaseDal.QueryFirst(x => x.MaterielCode == materielCode);
|
}
|
|
/// <summary>
|
/// 查询物料信息
|
/// </summary>
|
/// <param name="materielCodes">物料编号</param>
|
/// <returns></returns>
|
public List<Dt_MaterielInfo> GetMaterielInfos(List<string> materielCodes)
|
{
|
return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode));
|
}
|
|
public WebResponseContent GetWarehouseMaterielInfos(int warehouseId)
|
{
|
try
|
{
|
List<Dt_MaterielInfo> materielInfos = BaseDal.QueryData(x => x.WarehouseId == warehouseId);
|
return WebResponseContent.Instance.OK(data: materielInfos);
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
/// <summary>
|
/// 接收ERP物料信息
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public WebResponseContent ReceiveMaterial(MaterielInfoDTO model)
|
{
|
try
|
{
|
Dt_Warehouse? warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == model.WaId);
|
if (model.OperateType.ObjToInt() == 0)
|
{
|
Dt_MaterielInfo materielInfo = new Dt_MaterielInfo()
|
{
|
IsCheck = warehouse == null ? 0 : (WhetherEnum)model.IsCheck,
|
MaterielCode = model.Code,
|
MaterielInvOrgId = model.InvOrgId,
|
MaterielLength = model.Length,
|
MaterielModel = model.Model,
|
MaterielName = model.Name,
|
MaterielSize = model.Size,
|
MaterielSpec = warehouse == null ? "空" : model.StandType,
|
MaterielState = (EnableEnum)(model.State.ObjToInt()),
|
MaterielThickness = model.Thickness,
|
MaterielUnit = model.Unit == null ? "" : model.Unit,
|
MaterielVersion = model.MaterialVersion,
|
MaterielWide = model.Wide,
|
WarehouseId = warehouse == null ? 0 : warehouse.WarehouseId,
|
};
|
BaseDal.AddData(materielInfo);
|
}
|
else if (model.OperateType.ObjToInt() == 1)
|
{
|
Dt_MaterielInfo materielInfo = BaseDal.QueryFirst(x => x.MaterielCode == model.Code);
|
if (materielInfo == null)
|
{
|
Dt_MaterielInfo materielInfoAddNew = new Dt_MaterielInfo()
|
{
|
IsCheck = warehouse == null ? 0 : (WhetherEnum)model.IsCheck,
|
MaterielCode = model.Code,
|
MaterielInvOrgId = model.InvOrgId,
|
MaterielLength = model.Length,
|
MaterielModel = model.Model,
|
MaterielName = model.Name,
|
MaterielSize = model.Size,
|
MaterielSpec = warehouse == null ? "空" : model.StandType,
|
MaterielState = (EnableEnum)(model.State.ObjToInt()),
|
MaterielThickness = model.Thickness,
|
MaterielUnit = model.Unit == null ? "" : model.Unit,
|
MaterielVersion = model.MaterialVersion,
|
MaterielWide = model.Wide,
|
WarehouseId = warehouse == null ? 0 : warehouse.WarehouseId,
|
};
|
BaseDal.AddData(materielInfoAddNew);
|
}
|
else
|
{
|
materielInfo.IsCheck = warehouse == null ? 0 : (WhetherEnum)model.IsCheck;
|
materielInfo.MaterielCode = model.Code;
|
materielInfo.MaterielInvOrgId = model.InvOrgId;
|
materielInfo.MaterielLength = model.Length;
|
materielInfo.MaterielModel = model.Model;
|
materielInfo.MaterielName = model.Name;
|
materielInfo.MaterielSize = model.Size;
|
materielInfo.MaterielSpec = warehouse == null ? "" : model.StandType;
|
materielInfo.MaterielState = (EnableEnum)model.State.ObjToInt();
|
materielInfo.MaterielThickness = model.Thickness;
|
materielInfo.MaterielUnit = model.Unit == null ? "" : model.Unit;
|
materielInfo.MaterielVersion = model.MaterialVersion;
|
materielInfo.MaterielWide = model.Wide;
|
materielInfo.WarehouseId = warehouse == null ? 0 : warehouse.WarehouseId;
|
BaseDal.UpdateData(materielInfo);
|
}
|
|
}
|
else if (model.OperateType.ObjToInt() == 2)
|
{
|
Dt_MaterielInfo materielInfo = BaseDal.QueryFirst(x => x.MaterielCode == model.Code);
|
if (materielInfo == null)
|
{
|
return WebResponseContent.Instance.Error($"未找到物料信息");
|
}
|
|
BaseDal.DeleteData(materielInfo);
|
}
|
return WebResponseContent.Instance.OK();
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.OK(ex.Message);
|
}
|
}
|
|
|
/// <summary>
|
/// 同步VMI物料信息
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public WebResponseContent ReceiveVMIMaterial(VMIItemCodeInfo vmiModel)
|
{
|
try
|
{
|
///参数校验
|
if (vmiModel == null || vmiModel.Data == null || !vmiModel.Data.Any())
|
{
|
return WebResponseContent.Instance.Error("接口传入的物料数据集合不能为空");
|
}
|
|
foreach (var itemData in vmiModel.Data)
|
{
|
var existMateriel = BaseDal.QueryFirst(x => x.MaterielCode == itemData.ItemCode);
|
|
if (existMateriel == null)
|
{
|
Dt_MaterielInfo addEntity = new Dt_MaterielInfo()
|
{
|
MaterielCode = itemData.ItemCode,
|
OrgId = itemData.OrgId,
|
MaterielInvOrgId = itemData.SupplierCode,
|
PackageQty = itemData.PackageQty,
|
MaterielState = itemData.DeleteFlag == "0" ? EnableEnum.Enable : EnableEnum.Disable,
|
WarehouseId = 0,
|
MaterielSourceType = 0,
|
Creater = itemData.CreateUser,
|
CreateDate = itemData.CreateDate,
|
Modifier = itemData.UpdateUser,
|
ModifyDate = itemData.UpdateDate
|
};
|
BaseDal.AddData(addEntity);
|
}
|
else
|
{
|
existMateriel.OrgId = itemData.OrgId;
|
existMateriel.MaterielInvOrgId = itemData.SupplierCode;
|
existMateriel.PackageQty = itemData.PackageQty;
|
existMateriel.MaterielState = itemData.DeleteFlag == "0" ? EnableEnum.Enable : EnableEnum.Disable;
|
|
existMateriel.Modifier = itemData.UpdateUser;
|
existMateriel.ModifyDate = itemData.UpdateDate;
|
|
BaseDal.UpdateData(existMateriel);
|
}
|
}
|
// 处理完成
|
return WebResponseContent.Instance.OK("VMI物料数据同步成功");
|
}
|
catch (Exception ex)
|
{
|
// 异常返回
|
return WebResponseContent.Instance.Error($"VMI物料同步失败:{ex.Message}");
|
}
|
}
|
}
|
}
|