| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 | 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.cp;using wms.dto.request.fj;using wms.dto.response;using wms.dto.response.cp;using wms.service.IService;using wms.sqlsugar;using wms.sqlsugar.model;using wms.sqlsugar.model.cp;namespace wms.service.Service{    public class CPService: ICPService    {        private readonly IMapper _mapper;        private readonly ILogger<CPService> _logger;        private readonly ICPDataService _cptDataService;        public CPService(IMapper mapper, ILogger<CPService> logger, ICPDataService cptDataService)        {            _mapper = mapper;            _logger = logger;            _cptDataService = cptDataService;        }        Repository<cpBillDocument> _docrepository => new Repository<cpBillDocument>();        Repository<cpBaseContainer> _cpBaseContainer => new Repository<cpBaseContainer>();        Repository<cpSysConfig> _sysconfigrepository => new Repository<cpSysConfig>();        Repository<cpBaseMater> _materrepository => new Repository<cpBaseMater>();        Repository<cpBillTask> _billTaskrepository => new Repository<cpBillTask>();        Repository<cpBaseWarehouse> _baseWareHouserepository => new Repository<cpBaseWarehouse>();        Repository<cpBaseWareLocation> _baseWareLocationrepository => new Repository<cpBaseWareLocation>();        Repository<cpBillBarcode> _billBarcoderepository => new Repository<cpBillBarcode>();        Repository<cpBillFeedbackPush> _billFbackPushrepository => new Repository<cpBillFeedbackPush>();        Repository<cpBillContainer> _billGroupStockrepository => new Repository<cpBillContainer>();        Repository<cpBillTaskHistory> _billTaskHistoryrepository => new Repository<cpBillTaskHistory>();        Repository<cpSysJob> _sysJobrepository => new Repository<cpSysJob>();        Repository<cpSysJobApiRelation> _sysJobApirepository => new Repository<cpSysJobApiRelation>();        Repository<cpBillInvFlow> _cpBillInvFlow => new Repository<cpBillInvFlow>();        Repository<cpBillTaskDetail> _cpBillTaskDetail => new Repository<cpBillTaskDetail>();        Repository<cpBillLocationMap> _cpBillLocationMap => new Repository<cpBillLocationMap>();        ITenant _db => SqlSugarHelper.Db;//处理事务        /// <summary>        /// 添加单据        /// </summary>        /// <returns></returns>        public bool Add(cpBillDocument 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 cpSysConfig 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 cpBaseMater GetBaseMaterByExpression(Expression<Func<cpBaseMater, bool>> WhereExpression)        {            return _materrepository.GetSingle(WhereExpression);        }        /// <summary>        /// 获取配置信息        /// </summary>        /// <param name="code"></param>        /// <returns></returns>        public cpSysConfig GetSysConfigByExpression(Expression<Func<cpSysConfig, bool>> WhereExpression)        {            return _sysconfigrepository.GetSingle(WhereExpression);        }        /// <summary>        /// 获取单据信息        /// </summary>        /// <param name="code"></param>        /// <returns></returns>        public cpBillDocument GetBillDocumentByExpression(Expression<Func<cpBillDocument, bool>> WhereExpression)        {            return _docrepository.GetSingle(WhereExpression);        }        /// <summary>        /// 获取反馈信息        /// </summary>        /// <param name="code"></param>        /// <returns></returns>        public List<cpBillFeedbackPush> GetBillFeedbackList(Expression<Func<cpBillFeedbackPush, bool>> WhereExpression)        {            return _billFbackPushrepository.GetList(WhereExpression);        }        ///// <summary>        ///// 获取单据信息        ///// </summary>        ///// <param name="code"></param>        ///// <returns></returns>        //public cpBillDocument GetBillDocumentList(Expression<Func<cpBillDocument, bool>> WhereExpression)        //{        //    return _billdtrepository.Context.Queryable<cpBillDocument, cpSysConfig>((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<cpSysConfig> updateModel)        {            return _sysconfigrepository.Update(updateModel.Columns, updateModel.WhereExpression);        }        public bool SyncMaterInfo(List<CPSyncMaterInfoResponseItem> ResData)        {            foreach (var item in ResData)            {                if (_materrepository.IsAny(p => p.Code == item.MatCode))                {                    _materrepository.UpdateModelColumns(p => new cpBaseMater() { IsHold = item.IsHold, HoldDuration = item.HoldDuration },                       p => p.Code == item.MatCode);                }                else                {                    var model = _mapper.Map<cpBaseMater>(item);                    _materrepository.Insert(model);                }            }            return true;        }        public SRes SpoolMaterialInfoTrans(dto.request.cp.SpoolMaterialInfoTransRequest reqDto)        {            var result = new SRes();            return result;        }            public SRes SalesDocTrans(SalesDocTransRequest reqDto)        {            var result = new SRes();            return result;        }        public SRes SalesBackDocTrans(SalesDocTransRequest reqDto)        {            var result = new SRes();            return result;        }        public SRes ComPushApiResInfo(ComPushApiResInfoRequest reqDto)        {            var result = new SRes();            return result;        }        public SRes ErrorMaterialStockOut(dto.request.cp.ErrorMaterialStockOutRequest reqDto)        {            var result = new SRes();            return result;        }        public SRes StockChange(CpStockChangeRequest reqDto)        {            var result = new SRes();            return result;        }        public StockStateChangeResponse StockStateChange(StockStateChangeRequest reqDto)        {            var result = new StockStateChangeResponse();            return result;        }    }}
 |