123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- using AutoMapper;
- using Microsoft.Extensions.Logging;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq.Expressions;
- using System.Text;
- using wms.dataservice.IDataSetvice;
- using wms.dto.request.sx;
- using wms.dto.response;
- using wms.dto.response.sx;
- using wms.service.IService;
- using wms.sqlsugar;
- using wms.sqlsugar.model;
- using wms.sqlsugar.model.sx;
- namespace wms.service.Service
- {
- public class SXService: ISXService
- {
- private readonly IMapper _mapper;
- private readonly ILogger<SXService> _logger;
- private readonly ISXDataService _sxtDataService;
- public SXService(IMapper mapper, ILogger<SXService> logger, ISXDataService sxtDataService)
- {
- _mapper = mapper;
- _logger = logger;
- _sxtDataService = sxtDataService;
- }
- Repository<sxBillDocument> _docrepository => new Repository<sxBillDocument>();
- Repository<sxBaseContainer> _sxBaseContainer => new Repository<sxBaseContainer>();
- Repository<sxSysConfig> _sysconfigrepository => new Repository<sxSysConfig>();
- Repository<sxBaseMater> _materrepository => new Repository<sxBaseMater>();
- Repository<sxBillTask> _billTaskrepository => new Repository<sxBillTask>();
- Repository<sxBaseWarehouse> _baseWareHouserepository => new Repository<sxBaseWarehouse>();
- Repository<sxBaseWareLocation> _baseWareLocationrepository => new Repository<sxBaseWareLocation>();
- Repository<sxBillBarcode> _billBarcoderepository => new Repository<sxBillBarcode>();
- Repository<sxBillFeedbackPush> _billFbackPushrepository => new Repository<sxBillFeedbackPush>();
- Repository<sxBillContainer> _billGroupStockrepository => new Repository<sxBillContainer>();
- Repository<sxBillTaskHistory> _billTaskHistoryrepository => new Repository<sxBillTaskHistory>();
- Repository<sxSysJob> _sysJobrepository => new Repository<sxSysJob>();
- Repository<sxSysJobApiRelation> _sysJobApirepository => new Repository<sxSysJobApiRelation>();
- Repository<sxBillInvFlow> _sxBillInvFlow => new Repository<sxBillInvFlow>();
- Repository<sxBillTaskDetail> _sxBillTaskDetail => new Repository<sxBillTaskDetail>();
- Repository<sxBillLocationMap> _sxBillLocationMap => new Repository<sxBillLocationMap>();
- ITenant _db => SqlSugarHelper.Db;//处理事务
- /// <summary>
- /// 添加单据
- /// </summary>
- /// <returns></returns>
- public bool Add(sxBillDocument data1)
- {
- try
- {
- _db.BeginTran();
- _docrepository.Insert(data1);
- _db.CommitTran();
- }
- catch (Exception)
- {
- _db.RollbackTran();
- throw;
- }
- return true;
- }
- /// <summary>
- /// 获取配置内容信息
- /// </summary>
- /// <param name="code">配置表code值</param>
- /// <returns></returns>
- public string GetSysConfigContentByCode(string code)
- {
- //先读缓存
- var cacheContent = RedisHelper.Get("sys_config" + code);
- if (!string.IsNullOrEmpty(cacheContent))
- {
- return cacheContent;
- }
- var sysconf = _sysconfigrepository.GetSingle(p => p.Code == code);
- if (sysconf == null)
- {
- throw new Exception("数据表没有配置" + code);
- }
- var content = sysconf.SContent;
- string sysname = sysconf.Default1;//所属系统mes/erp
- RedisHelper.Set("sys_config" + code, content + "|" + sysname);
- return content;
- }
- /// <summary>
- /// 获取配置信息
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public sxSysConfig GetSysConfigByCode(string code)
- {
- //Repository<dynamic> _billdtrepository = new Repository<dynamic>();
- return _sysconfigrepository.GetSingle(p => p.Code == code);
- }
- /// <summary>
- /// 获取物料信息
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public sxBaseMater GetBaseMaterByExpression(Expression<Func<sxBaseMater, bool>> WhereExpression)
- {
- return _materrepository.GetSingle(WhereExpression);
- }
- /// <summary>
- /// 获取配置信息
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public sxSysConfig GetSysConfigByExpression(Expression<Func<sxSysConfig, bool>> WhereExpression)
- {
- return _sysconfigrepository.GetSingle(WhereExpression);
- }
- /// <summary>
- /// 获取单据信息
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public sxBillDocument GetBillDocumentByExpression(Expression<Func<sxBillDocument, bool>> WhereExpression)
- {
- return _docrepository.GetSingle(WhereExpression);
- }
- /// <summary>
- /// 获取反馈信息
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public List<sxBillFeedbackPush> GetBillFeedbackList(Expression<Func<sxBillFeedbackPush, bool>> WhereExpression)
- {
- return _billFbackPushrepository.GetList(WhereExpression);
- }
- ///// <summary>
- ///// 获取单据信息
- ///// </summary>
- ///// <param name="code"></param>
- ///// <returns></returns>
- //public sxBillDocument GetBillDocumentList(Expression<Func<sxBillDocument, bool>> WhereExpression)
- //{
- // return _billdtrepository.Context.Queryable<sxBillDocument, sxSysConfig>((doc, conf) => new object[] {
- // JoinType.Left, doc.BState == conf.Code
- // }).Where((doc, conf) => doc.Status == 0)
- // .Select((bc, bm) => bc).First();
- //}
- /// <summary>
- /// 更新SysConfig表字段
- /// </summary>
- /// <param name="updateModel"></param>
- /// <returns></returns>
- public bool UpdateSysConfigModelColumns(UpdateModelColumns<sxSysConfig> updateModel)
- {
- return _sysconfigrepository.Update(updateModel.Columns, updateModel.WhereExpression);
- }
- public bool SyncMaterInfo(List<SXSyncMaterInfoResponseItem> ResData)
- {
- foreach (var item in ResData)
- {
- if (_materrepository.IsAny(p => p.Code == item.MatCode))
- {
- _materrepository.UpdateModelColumns(p => new sxBaseMater() { IsHold = item.IsHold, HoldDuration = item.HoldDuration },
- p => p.Code == item.MatCode);
- }
- else
- {
- var model = _mapper.Map<sxBaseMater>(item);
- _materrepository.Insert(model);
- }
- }
- return true;
- }
- public SRes SpoolMaterialInfoTrans(SxSpoolMaterialInfoTransRequest reqDto)
- {
- var result = new SRes();
- return result;
- }
- public SRes StockChange(SxStockChangeRequest reqDto)
- {
- var result = new SRes();
- return result;
- }
- }
- }
|