/*
|
*所有关于Dt_mes_goods_info类的业务代码应在此处编写
|
*可使用repository.调用常用方法,获取EF/Dapper等信息
|
*如果需要事务请使用repository.DbContextBeginTransaction
|
*也可使用DBServerProvider.手动获取数据库相关信息
|
*用户信息、权限、角色等使用UserContext.Current操作
|
*Dt_mes_goods_infoService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
|
*/
|
using WIDESEA.Core.BaseProvider;
|
using WIDESEA.Core.Extensions.AutofacManager;
|
using WIDESEA.Entity.DomainModels;
|
using System.Linq;
|
using WIDESEA.Core.Utilities;
|
using System.Linq.Expressions;
|
using WIDESEA.Core.Extensions;
|
using Microsoft.EntityFrameworkCore;
|
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.AspNetCore.Http;
|
using WIDESEA.Services.IRepositories;
|
using System;
|
using System.Security.Cryptography;
|
using System.Text;
|
using WIDESEA.Services.Repositories;
|
using WIDESEA.Core.ManageUser;
|
using Microsoft.Extensions.Caching.Memory;
|
using HttpContext = WIDESEA.Core.Utilities.HttpContext;
|
using Microsoft.Extensions.Logging;
|
using WIDESEA.Core.Services;
|
using WIDESEA.Common;
|
using WIDESEA.Services.Services.ToMes;
|
|
namespace WIDESEA.Services.Services
|
{
|
public partial class Dt_mes_goods_infoService
|
{
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly IDt_mes_goods_infoRepository _repository;//访问数据库
|
|
[ActivatorUtilitiesConstructor]
|
public Dt_mes_goods_infoService(
|
IDt_mes_goods_infoRepository dbRepository,
|
IHttpContextAccessor httpContextAccessor
|
)
|
: base(dbRepository)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
_repository = dbRepository;
|
//多租户会用到这init代码,其他情况可以不用
|
//base.Init(dbRepository);
|
}
|
|
|
/// <summary>
|
/// 添加一条轴承信息记录
|
/// </summary>
|
/// <param name="saveModel"></param>
|
/// <returns></returns>
|
public static WebResponseContent AddGoodsInformation(SaveModel saveModel)
|
{
|
WebResponseContent content = new WebResponseContent();
|
|
try
|
{
|
string code = saveModel.MainData["inUnit"].ToString();
|
//getInfoByBearingXMLEntity xmlEntity = ToMesService.Mes_GetBearingInfo(code);
|
//if (null != xmlEntity)
|
//{
|
// if ("S".Equal(xmlEntity.FLAG))
|
// {
|
// Dt_mes_goods_info mesInfo = Dt_mes_goods_infoRepository.Instance.FindFirst(x => x.mesInfo_number == code);
|
// if (null != mesInfo)
|
// throw new Exception("已经录入过以上信息,请检查相关信息." + code);
|
|
// Dt_container_detail detail = Dt_container_detailRepository.Instance.FindFirst(r => r.containerdtl_number == code);
|
// if (null != detail)
|
// throw new Exception("条码已存在库内,请检查相关信息." + code);
|
|
// Dt_materielinfo materiel = Dt_materielinfoRepository.Instance.FindFirst(r => r.materiel_id == xmlEntity.TRAINTYPE);
|
// if (null == materiel)
|
// throw new Exception("当前车型未在车型管理进行维护,请先维护." + xmlEntity.TRAINTYPE);
|
|
// mesInfo = new Dt_mes_goods_info()
|
// {
|
// mesInfo_carType = xmlEntity.TRAINTYPE,
|
// mesInfo_createDate = DateTime.Now,
|
// mesInfo_createType = "mes",
|
// mesInfo_inUnit = "智粤",
|
// mesInfo_id = Guid.NewGuid(),
|
// mesInfo_madeDate = DateTime.Now,
|
// mesInfo_madeUnit = xmlEntity.MANUFACTOR,
|
// mesInfo_number = code,
|
// mesInfo_qrCode = xmlEntity.BEARING,
|
// mesInfo_standard = (xmlEntity.MAINFREQ.Equal("0") || xmlEntity.MAINFREQ.Equal("R0")) ? "新品" : "旧品",
|
// mesInfo_weight = ""
|
// };
|
|
// }
|
// else
|
// throw new Exception($"获取{code}轴承信息失败.{xmlEntity.ERROR}");
|
//}
|
//else
|
// throw new Exception($"获取{code}轴承信息失败.");
|
|
|
|
string inUnit = "广州南";
|
string madeUnit = "中国中车";
|
string carType = code.Split(" ")[0];
|
string type = code.Split(" ")[1];
|
string madeDate = "2023-05-07";
|
string _number = "123456789";
|
string standard = "新品";
|
string addType = "Scan";
|
|
string sourceStr = inUnit + madeUnit + carType + type + madeDate + _number + standard;
|
|
//暂时用MD5加密来替代唯一码的生成
|
string uniCodeQr = MD5Encrypt64(sourceStr);
|
uniCodeQr = uniCodeQr.Substring(0, 4);
|
|
Dt_mes_goods_info tmpInfo = Dt_mes_goods_infoRepository.Instance.FindFirst(x => x.mesInfo_qrCode == uniCodeQr);
|
if (tmpInfo != null)
|
{
|
throw new Exception("已经录入过以上信息,请检查相关信息");
|
}
|
|
Dt_mes_goods_info info = new Dt_mes_goods_info();
|
info.mesInfo_id = Guid.NewGuid();
|
info.mesInfo_inUnit = inUnit;
|
info.mesInfo_madeUnit = madeUnit;
|
info.mesInfo_carType = carType;
|
info.mesInfo_type = type;
|
info.mesInfo_madeDate = DateTime.Parse(madeDate);
|
info.mesInfo_number = _number;
|
info.mesInfo_standard = standard;
|
info.mesInfo_createType = addType;
|
info.mesInfo_qrCode = uniCodeQr;
|
info.mesInfo_createDate = DateTime.Now;
|
|
Dt_mes_goods_infoRepository.Instance.Add(info, true);
|
|
|
content.OK("录入轴承信息成功");
|
}
|
catch (Exception ex)
|
{
|
content.Error("录入轴承信息失败:" + ex.Message);
|
}
|
Logger.AddLog(Core.Enums.LoggerType.Add, saveModel, content, content);
|
return content;
|
|
}
|
|
|
public override WebResponseContent Add(SaveModel saveDataModel)
|
{
|
string sourceStr =
|
saveDataModel.MainData["mesInfo_inUnit"].ToString() +
|
saveDataModel.MainData["mesInfo_madeUnit"].ToString() +
|
saveDataModel.MainData["mesInfo_carType"].ToString() +
|
saveDataModel.MainData["mesInfo_type"].ToString() +
|
saveDataModel.MainData["mesInfo_madeDate"].ToString() +
|
saveDataModel.MainData["mesInfo_number"].ToString() +
|
saveDataModel.MainData["mesInfo_standard"].ToString();
|
|
//暂时用MD5加密来替代唯一码的生成
|
string uniCodeQr = MD5Encrypt64(sourceStr);
|
uniCodeQr = uniCodeQr.Substring(0, 4);
|
|
Dt_general_info general_Info = Dt_general_infoRepository.Instance.FindFirst(x => true);
|
|
saveDataModel.MainData.Add("mesInfo_qrCode", uniCodeQr);
|
saveDataModel.MainData.Add("mesInfo_createType", general_Info.general_bak_1); //UserContext.Current.UserTrueName
|
saveDataModel.MainData.Add("mesInfo_createDate", DateTime.Now);
|
|
|
|
return base.Add(saveDataModel);
|
}
|
|
|
/// <summary>
|
/// MD5加密,暂时用来模拟生成唯一码
|
/// </summary>
|
/// <param name="str"></param>
|
/// <returns></returns>
|
public static string MD5Encrypt64(string str)
|
{
|
string cl = str;
|
MD5 md5 = MD5.Create();
|
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
|
return Convert.ToBase64String(s);
|
}
|
|
|
|
/// <summary>
|
/// 打印生成的轴承唯一码
|
/// </summary>
|
/// <param name="saveModel"></param>
|
/// <returns></returns>
|
public static WebResponseContent PrintGoodsQrCode(SaveModel saveModel)
|
{
|
WebResponseContent content = new WebResponseContent();
|
|
try
|
{
|
string qrCode = saveModel.MainData["qrCode"].ToString();
|
|
//这里接打印动作
|
|
content.OK();
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
|
return content;
|
|
}
|
|
|
}
|
}
|