示例#1
0
        /// <summary>
        /// 重置状态数据
        /// </summary>
        /// <returns></returns>
        public virtual async Task <ApiResult> ReinstantiateState(TState state = default)
        {
            try
            {
                TState result = (TState)state;
                if (result == null)
                {
                    var onReadDbTask = OnReadFromDbAsync();
                    if (!onReadDbTask.IsCompletedSuccessfully)
                    {
                        await onReadDbTask;
                    }
                    result = onReadDbTask.Result;
                }

                if (result != null)
                {
                    State = result;
                    await WriteStateAsync();
                }
                else
                {
                    await ClearStateAsync();
                }

                return(ApiResultUtil.IsSuccess());
            }
            catch (Exception ex)
            {
                Logger.LogError("刷新状态", ex);
                return(ApiResultUtil.IsFailed(ex.Message));
            }
        }
示例#2
0
        public async Task <ApiResult> UpdateAsync(SubmitDTO <XsReceReceivableDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            XsReceReceivableState xsReceReceivableState = this.State;

            if (dto.IsDel != 1)
            {
            }
            xsReceReceivableState.IsDel        = dto.IsDel;
            xsReceReceivableState.ModityBy     = model.UserId;
            xsReceReceivableState.ModityByName = model.UserName;
            xsReceReceivableState.ModityDate   = System.DateTime.Now;
            xsReceReceivableState.Version      = dto.Version;

            XsReceReceivableDO xsLadeBaseDO = this.ObjectMapper.Map <XsReceReceivableDO>(xsReceReceivableState);

            bool bRet = await _xsReceReceivableRepository.SetAsync(xsLadeBaseDO);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            await this.Persist(ProcessAction.Update, xsReceReceivableState);

            return(ApiResultUtil.IsSuccess());
        }
示例#3
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> DelAsync(SubmitDTO <HyFormulaMaterDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            HyFormulaMaterState hyFormulaMaterState = this.State;

            hyFormulaMaterState.IsDel        = 1;
            hyFormulaMaterState.ModityBy     = model.UserId;
            hyFormulaMaterState.ModityByName = model.UserName;
            hyFormulaMaterState.ModityDate   = System.DateTime.Now;
            hyFormulaMaterState.Version      = dto.Version;
            HyFormulaMaterDO xsLadeRimpactDO = this.ObjectMapper.Map <HyFormulaMaterDO>(hyFormulaMaterState);
            bool             bRet            = await _hyFormulaMaterRepository.SetAsync(xsLadeRimpactDO);;

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            await this.Persist(ProcessAction.Update, hyFormulaMaterState);

            return(ApiResultUtil.IsSuccess("处理成功!"));
        }
示例#4
0
        public async Task <ApiResult> AddAsync(SubmitDTO <ScheduleTaskDTO> model)
        {
            //参数校验
            if (!model.Data.IsValid(out string exMsg))
            {
                return(ApiResultUtil.IsFailed(exMsg));
            }

            //转换为数据库实体
            ScheduleTaskDO scheduleDO = this.ObjectMapper.Map <ScheduleTaskDO>(model.Data);

            scheduleDO.CreateBy   = model.UserId;
            scheduleDO.CreateDate = System.DateTime.Now;
            scheduleDO.ModityBy   = model.UserId;
            scheduleDO.ModityDate = System.DateTime.Now;

            bool bRet = await _scheduleRepository.AddAsync(scheduleDO);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据插入失败!"));
            }

            //更新服务状态
            ScheduleTaskState scheduleTaskState = this.ObjectMapper.Map <ScheduleTaskState>(scheduleDO);

            await this.Persist(ProcessAction.Create, scheduleTaskState);

            return(ApiResultUtil.IsSuccess(model.Data.Id.ToString()));
        }
示例#5
0
        public async Task <ApiResult> UpdateAsync(SubmitDTO <ScheduleTaskDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }

            bool bRet = await _scheduleRepository.SetAsync(() => new { task_name = dto.TaskName, line_code = dto.LineCode, version = (dto.Version + 1) }, oo => oo.Id == this.GrainId);


            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            ScheduleTaskState scheduleTaskState = this.State;

            scheduleTaskState.TaskName = dto.TaskName;
            scheduleTaskState.LineCode = dto.LineCode;
            scheduleTaskState.Version++;

            ///任务完成 进行系统对接
            if (dto.TaskState == TaskState.Complete)
            {
                ScheduleTaskVO scheduleTaskVO = this.ObjectMapper.Map <ScheduleTaskVO>(this.State);
                await PublishAsync(scheduleTaskVO);
            }
            await this.Persist(ProcessAction.Update, scheduleTaskState);

            return(ApiResultUtil.IsSuccess());
        }
        public async Task <ApiResult> UpdateColumnAsync(ColumnInfoDO model)
        {
            var state = this.State;

            if (state.ColumnInfos.Any(m => m.Id == model.Id))
            {
                var columnInfo = state.ColumnInfos.First(mbox => mbox.Id == model.Id);
                columnInfo.IsDel       = model.IsDel;
                columnInfo.SelfColumn  = string.IsNullOrWhiteSpace(model.SelfColumn) ? columnInfo.SelfColumn : model.SelfColumn;
                columnInfo.ModelColumn = string.IsNullOrWhiteSpace(model.ModelColumn) ? columnInfo.ModelColumn : model.ModelColumn;
                columnInfo.Desc        = string.IsNullOrWhiteSpace(model.Desc) ? columnInfo.Desc : model.Desc;
                columnInfo.SortNo      = model.SortNo > 0 ? model.SortNo : columnInfo.SortNo;
                columnInfo.DisplayName = string.IsNullOrWhiteSpace(model.DisplayName) ? columnInfo.DisplayName : model.DisplayName;
                columnInfo.Version++;
                columnInfo.ModityDate = DateTime.Now;

                bool bRet = await _columnInfoRepository.SetAsync(columnInfo);

                if (!bRet)
                {
                    return(ApiResultUtil.IsFailed("更新失败!"));
                }

                //刷新缓存
                var groupCodes = new List <string> {
                    this.State.TableInfos.First(mbox => mbox.Id == columnInfo.TableId).GroupCode
                };
                await RefrshGroupState(groupCodes.ToList());

                await this.Persist(Kaneko.Core.Contract.ProcessAction.Update, this.State);
            }

            return(ApiResultUtil.IsFailed($"列ID【{model.Id}】不存在!"));
        }
示例#7
0
        public async Task <ApiResult> AddAsync(SubmitDTO <XsReceReceivableDTO> model)
        {
            var dto = model.Data;

            //转换为数据库实体
            XsReceReceivableDO xsReceReceivableDO = this.ObjectMapper.Map <XsReceReceivableDO>(dto);

            xsReceReceivableDO.CreateBy     = model.UserId;
            xsReceReceivableDO.CreateByName = model.UserName;
            xsReceReceivableDO.CreateDate   = System.DateTime.Now;
            xsReceReceivableDO.ModityBy     = model.UserId;
            xsReceReceivableDO.ModityByName = model.UserName;
            xsReceReceivableDO.ModityDate   = System.DateTime.Now;

            bool bRet = await _xsReceReceivableRepository.AddAsync(xsReceReceivableDO);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据插入失败!"));
            }
            //string sql = _xsLadeRimpactRepository.ExecuteScript;

            //更新服务状态
            XsReceReceivableState xsLadeBaseState = this.ObjectMapper.Map <XsReceReceivableState>(xsReceReceivableDO);

            await this.Persist(ProcessAction.Create, xsLadeBaseState);

            return(ApiResultUtil.IsSuccess(dto.Id.ToString()));
        }
        public async Task <ApiResult> UpdateTableAsync(TableInfoDO model)
        {
            var state = this.State;

            if (state.TableInfos.Any(m => m.Id == model.Id))
            {
                var tableInfoDO = state.TableInfos.First(mbox => mbox.Id == model.Id);
                tableInfoDO.IsDel     = model.IsDel;
                tableInfoDO.TableName = string.IsNullOrWhiteSpace(model.TableName) ? tableInfoDO.TableName : model.TableName;
                tableInfoDO.GroupCode = string.IsNullOrWhiteSpace(model.GroupCode) ? tableInfoDO.GroupCode : model.GroupCode;
                tableInfoDO.Desc      = string.IsNullOrWhiteSpace(model.Desc) ? tableInfoDO.Desc : model.Desc;
                tableInfoDO.Version++;
                tableInfoDO.ModityDate = DateTime.Now;

                bool bRet = await _tableInfoRepository.SetAsync(tableInfoDO);

                if (!bRet)
                {
                    return(ApiResultUtil.IsFailed("更新失败!"));
                }

                //刷新缓存
                var groupCodes = new List <string> {
                    tableInfoDO.GroupCode
                };
                await RefrshGroupState(groupCodes.ToList());

                await this.Persist(Kaneko.Core.Contract.ProcessAction.Update, this.State);
            }

            return(ApiResultUtil.IsFailed($"表ID【{model.Id}】不存在!"));
        }
示例#9
0
        public async Task <ApiResult> UpdateAsync(SubmitDTO <ScheduleTaskDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }

            bool bRet = await _scheduleRepository.SetAsync(() => new { task_name = dto.TaskName, line_code = dto.LineCode, version = (dto.Version + 1) }, oo => oo.Id == this.GrainId);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            ScheduleTaskState scheduleTaskState = this.State;

            scheduleTaskState.TaskName = dto.TaskName;
            scheduleTaskState.LineCode = dto.LineCode;
            scheduleTaskState.Version++;

            ///任务完成 进行系统对接
            if (dto.TaskState == TaskState.Complete)
            {
                TaskListModel scheduleTaskModel = new TaskListModel()
                {
                    TaskCode = dto.TaskCode
                };
                await Observer.PublishAsync(EventContract.ComConcrete.TaskListToZK, scheduleTaskModel);
            }
            await this.Persist(ProcessAction.Update, scheduleTaskState);

            return(ApiResultUtil.IsSuccess());
        }
示例#10
0
        public async Task <ApiResult> DeleteAsync(long id)
        {
            if (id <= 0)
            {
                return(ApiResultUtil.IsFailed("主键ID不能为空!"));
            }
            if (!this.State.Balance.Any(m => m.Id == id))
            {
                return(ApiResultUtil.IsFailed("不存在该字典!"));
            }

            var currentState = this.State.Balance.First(m => m.Id == id);

            bool bRet = await _dictRepository.SetAsync(() => new { is_del = 1, version = (currentState.Version + 1), modity_date = System.DateTime.Now }, oo => oo.Id == id);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            currentState.IsDel      = 1;
            currentState.ModityDate = System.DateTime.Now;
            currentState.Version++;
            await this.Persist(ProcessAction.Update, this.State);

            return(ApiResultUtil.IsSuccess());
        }
示例#11
0
 public Task <ApiResult> DeleteAsync(string Id)
 {
     if (string.IsNullOrWhiteSpace(Id))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed("Id不能为空!")));
     }
     return(factory.GetGrain <IXsLadeBaseStateGrain>(Id).DeleteAsync());
 }
示例#12
0
 public Task <ApiResult> UpdateAsync([FromForm] SubmitDTO <XsLadeBaseDTO> model)
 {
     if (string.IsNullOrWhiteSpace(model.Data.Id))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed("Id不能为空!")));
     }
     return(factory.GetGrain <IXsLadeBaseStateGrain>(model.Data.Id).UpdateAsync(model));
 }
示例#13
0
 public Task <ApiResult> UpdateAsync([FromForm] SubmitDTO <ScheduleTaskDTO> model)
 {
     if (model.Data.Id <= 0)
     {
         return(Task.FromResult(ApiResultUtil.IsFailed("Id不能为空!")));
     }
     return(factory.GetGrain <IScheduleTaskStateGrain>(model.Data.Id).UpdateAsync(model));
 }
示例#14
0
 public Task <ApiResult> UpdateAsync([FromForm] SubmitDTO <DictDTO> model)
 {
     if (string.IsNullOrEmpty(model.Data.DataType))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed("字典类型不能为空!")));
     }
     return(factory.GetGrain <IDictDataTypeStateGrain>(model.Data.DataType).UpdateAsync(model));
 }
示例#15
0
 public Task <ApiResult> DelAsync([FromForm] SubmitDTO <HyFormulaMaterDTO> model)
 {
     if (string.IsNullOrWhiteSpace(model.Data.Id))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed("Id不能为空!")));
     }
     return(factory.GetGrain <IHyFormulaMaterStateGrain>(model.Data.Id).DelAsync(model));
 }
示例#16
0
 public Task <ApiResult <DictVO> > GetAsync(string dataType, long id)
 {
     if (string.IsNullOrEmpty(dataType))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed <DictVO>("字典类型不能为空!")));
     }
     return(factory.GetGrain <IDictDataTypeStateGrain>(dataType).GetAsync(id));
 }
示例#17
0
        public Task <ApiResult <DictVO> > GetAsync(long id)
        {
            if (this.State.Balance.Any(m => m.Id == id))
            {
                var    dictDO = this.State.Balance.First(m => m.Id == id);
                DictVO dictVO = this.ObjectMapper.Map <DictVO>(dictDO);
                return(Task.FromResult(ApiResultUtil.IsSuccess(dictVO)));
            }

            return(Task.FromResult(ApiResultUtil.IsFailed <DictVO>("无数据!")));
        }
示例#18
0
 public Task <ApiResult <XsLadeBaseVO> > GetByLadeIdSync([FromQuery] XsLadeBaseDTO model)
 {
     if (string.IsNullOrWhiteSpace(model.XLB_LadeId))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed <XsLadeBaseVO>("发货单编号不允许为空!")));
     }
     if (string.IsNullOrWhiteSpace(model.XLB_Firm))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed <XsLadeBaseVO>("所属企业不允许为空!")));
     }
     return(factory.GetGrain <IXsLadeBaseGrain>(System.Guid.NewGuid().ToString()).GetByLadeIdSync(model));
 }
        public async Task <ApiResult> AddColumnAsync(List <ColumnInfoDTO> model)
        {
            //参数校验
            if (!model.IsValid(out string exMsg))
            {
                return(ApiResultUtil.IsFailed(exMsg));
            }

            List <ColumnInfoDO> columnInfos = new List <ColumnInfoDO>();
            List <string>       groupCodes  = new List <string>();

            foreach (var column in model)
            {
                if (columnInfos.Any(mbox => mbox.SelfColumn == column.SelfColumn))
                {
                    return(ApiResultUtil.IsFailed($"列名称【{column.SelfColumn}】重复!"));
                }
                if (!this.State.TableInfos.Any(mbox => mbox.Id == column.TableId))
                {
                    return(ApiResultUtil.IsFailed($"表ID【{column.TableId}】不存在!"));
                }

                groupCodes.Add(this.State.TableInfos.First(mbox => mbox.Id == column.TableId).GroupCode);

                long columnId = await this.GrainFactory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewLongID();

                var columnInfo = this.ObjectMapper.Map <ColumnInfoDO>(column);
                columnInfo.Id         = columnId;
                columnInfo.CreateDate = System.DateTime.Now;
                columnInfo.ModityDate = System.DateTime.Now;
                columnInfos.Add(columnInfo);
            }

            bool bRet = await _columnInfoRepository.AddAsync(columnInfos.ToArray());

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据保存失败!"));
            }

            var state = this.State;

            state.ColumnInfos.AddRange(columnInfos);

            //刷新缓存
            await RefrshGroupState(groupCodes.Distinct().ToList());

            await this.Persist(Kaneko.Core.Contract.ProcessAction.Create, state);

            return(ApiResultUtil.IsSuccess());
        }
示例#20
0
        public async Task <ApiResult> DeleteAsync()
        {
            if (this.GrainId <= 0)
            {
                return(ApiResultUtil.IsFailed("主键ID不能为空!"));
            }

            bool bRet = await _scheduleRepository.DeleteAsync(oo => oo.Id == this.GrainId);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据删除失败!"));
            }

            await this.Persist(ProcessAction.Delete);

            return(ApiResultUtil.IsSuccess());
        }
示例#21
0
        public async Task <ApiResult> DeleteAsync()
        {
            if (string.IsNullOrEmpty(this.GrainId))
            {
                return(ApiResultUtil.IsFailed("主键ID不能为空!"));
            }

            bool bRet = await _xsLadeBaseRepository.DeleteAsync(oo => oo.Id == this.GrainId);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据删除失败!"));
            }

            await this.Persist(ProcessAction.Delete);

            return(ApiResultUtil.IsSuccess());
        }
示例#22
0
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> AddAsync(SubmitDTO <HyFormulaMaterDTO> model)
        {
            var dto = model.Data;

            HyFormulaMaterDO hyFormulaMaterDO = this.ObjectMapper.Map <HyFormulaMaterDO>(dto);

            hyFormulaMaterDO.Create(model.UserId, model.UserName);

            bool bRet = await _hyFormulaMaterRepository.AddAsync(hyFormulaMaterDO);;

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据插入失败!"));
            }

            //更新服务状态
            HyFormulaMaterState hyFormulaMaterState = this.ObjectMapper.Map <HyFormulaMaterState>(hyFormulaMaterDO);

            await this.Persist(ProcessAction.Create, hyFormulaMaterState);

            return(ApiResultUtil.IsSuccess("处理成功!"));
        }
        public async Task <ApiResult> UpdateSystemAsync(SystemInfoDO model)
        {
            var state = this.State;

            if (state.SystemInfos.Any(m => m.Id == model.Id))
            {
                var systemInfoDO = state.SystemInfos.First(mbox => mbox.Id == model.Id);

                string oldConnection = systemInfoDO.DbConnection;

                systemInfoDO.IsDel        = model.IsDel;
                systemInfoDO.SystemName   = string.IsNullOrWhiteSpace(model.SystemName) ? systemInfoDO.SystemName : model.SystemName;
                systemInfoDO.DbConnection = string.IsNullOrWhiteSpace(model.DbConnection) ? systemInfoDO.DbConnection : model.DbConnection;
                systemInfoDO.Desc         = string.IsNullOrWhiteSpace(model.Desc) ? systemInfoDO.Desc : model.Desc;
                systemInfoDO.Version++;
                systemInfoDO.ModityDate = DateTime.Now;
                systemInfoDO.Firm       = string.IsNullOrWhiteSpace(model.Firm) ? systemInfoDO.Firm : model.Firm;
                systemInfoDO.Line       = string.IsNullOrWhiteSpace(model.Line) ? systemInfoDO.Line : model.Line;

                bool bRet = await _systemInfoRepository.SetAsync(systemInfoDO);

                if (!bRet)
                {
                    return(ApiResultUtil.IsFailed("更新失败!"));
                }

                //if (oldConnection != model.DbConnection || oldDbType != model.DbType)
                {
                    //修改了数据库配置需要刷新缓存
                    var groupCodes = state.TableInfos.Where(m => m.SystemId == model.Id).Select(mbox => mbox.GroupCode).Distinct();
                    await RefrshGroupState(groupCodes.ToList());
                }

                await this.Persist(Kaneko.Core.Contract.ProcessAction.Update, this.State);
            }

            return(ApiResultUtil.IsFailed($"系统ID【{model.Id}】不存在!"));
        }
示例#24
0
        public async Task <ApiResult> UpdateAsync(SubmitDTO <DictDTO> model)
        {
            var dto = model.Data;

            if (dto.Id <= 0)
            {
                return(ApiResultUtil.IsFailed("主键ID不能为空!"));
            }
            if (!this.State.Balance.Any(m => m.Id == dto.Id))
            {
                return(ApiResultUtil.IsFailed("不存在该字典!"));
            }

            var currentState = this.State.Balance.First(m => m.Id == dto.Id);

            bool bRet = await _dictRepository.SetAsync(() => new
            {
                is_del      = 1,
                data_desc   = dto.DataDesc,
                data_value  = dto.DataValue,
                version     = (currentState.Version + 1),
                modity_date = System.DateTime.Now
            }, oo => oo.Id == dto.Id);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            currentState.DataValue  = dto.DataValue;
            currentState.DataDesc   = dto.DataDesc;
            currentState.IsDel      = 1;
            currentState.ModityDate = System.DateTime.Now;
            currentState.Version++;
            await this.Persist(ProcessAction.Update, this.State);

            return(ApiResultUtil.IsSuccess());
        }
示例#25
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> UpdateAsync(SubmitDTO <HyFormulaMaterDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            HyFormulaMaterState xsLadeBaseState = this.State;

            xsLadeBaseState.HFM_Name      = dto.HFM_Name;
            xsLadeBaseState.HFM_Cement    = dto.HFM_Cement;
            xsLadeBaseState.HFM_Line      = dto.HFM_Line;
            xsLadeBaseState.HFM_Field     = dto.HFM_Field;
            xsLadeBaseState.HFM_FactField = dto.HFM_FactField;
            xsLadeBaseState.HFM_Firm      = dto.HFM_Firm;
            xsLadeBaseState.HFM_Order     = dto.HFM_Order;
            xsLadeBaseState.ModityBy      = model.UserId;
            xsLadeBaseState.ModityByName  = model.UserName;
            xsLadeBaseState.ModityDate    = System.DateTime.Now;
            xsLadeBaseState.Version       = dto.Version;

            HyFormulaMaterDO xsLadeBaseDO = this.ObjectMapper.Map <HyFormulaMaterDO>(xsLadeBaseState);

            bool bRet = await _hyFormulaMaterRepository.SetAsync(xsLadeBaseDO);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            await this.Persist(ProcessAction.Update, xsLadeBaseState);

            return(ApiResultUtil.IsSuccess());
        }
        public async Task <ApiResult> UpdateAsync(SubmitDTO <XsProductMiddleDataDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            XsProductMiddleDataState xsProductMiddleDataState = this.State;

            if (dto.IsDel != 1)
            {
                xsProductMiddleDataState.XPM_EID            = dto.XPM_EID;
                xsProductMiddleDataState.XPM_Tagalong       = dto.XPM_Tagalong;
                xsProductMiddleDataState.XPM_Matching       = dto.XPM_Matching;
                xsProductMiddleDataState.XPM_CurDate        = dto.XPM_CurDate;
                xsProductMiddleDataState.XPM_JobNo          = dto.XPM_JobNo;
                xsProductMiddleDataState.XPM_PropNo         = dto.XPM_PropNo;
                xsProductMiddleDataState.XPM_Strength       = dto.XPM_Strength;
                xsProductMiddleDataState.XPM_CustNm         = dto.XPM_CustNm;
                xsProductMiddleDataState.XPM_ProjNm         = dto.XPM_ProjNm;
                xsProductMiddleDataState.XPM_Location       = dto.XPM_Location;
                xsProductMiddleDataState.XPM_SiteNo         = dto.XPM_SiteNo;
                xsProductMiddleDataState.XPM_TechReq        = dto.XPM_TechReq;
                xsProductMiddleDataState.XPM_ETel           = dto.XPM_ETel;
                xsProductMiddleDataState.XPM_DeliveryMode   = dto.XPM_DeliveryMode;
                xsProductMiddleDataState.XPM_TTLQntyPlanned = dto.XPM_TTLQntyPlanned;
                xsProductMiddleDataState.XPM_YSLC           = dto.XPM_YSLC;
                xsProductMiddleDataState.XPM_KangShenLevel  = dto.XPM_KangShenLevel;
                xsProductMiddleDataState.XPM_PBBL           = dto.XPM_PBBL;
                xsProductMiddleDataState.XPM_SNBH           = dto.XPM_SNBH;
                xsProductMiddleDataState.XPM_SZGG           = dto.XPM_SZGG;
                xsProductMiddleDataState.XPM_TaLuoDu        = dto.XPM_TaLuoDu;
                xsProductMiddleDataState.XPM_Remark         = dto.XPM_Remark;
                xsProductMiddleDataState.XPM_LJFL           = dto.XPM_LJFL;
                xsProductMiddleDataState.XPM_FHBH           = dto.XPM_FHBH;
                xsProductMiddleDataState.XPM_Truckvol       = dto.XPM_Truckvol;
                xsProductMiddleDataState.XPM_YSGJ           = dto.XPM_YSGJ;
                xsProductMiddleDataState.XPM_CurTime        = dto.XPM_CurTime;
                xsProductMiddleDataState.XPM_JSY            = dto.XPM_JSY;
                xsProductMiddleDataState.XPM_Operator       = dto.XPM_Operator;
                xsProductMiddleDataState.XPM_FHR            = dto.XPM_FHR;
                xsProductMiddleDataState.XPM_ProduceLine    = dto.XPM_ProduceLine;
                xsProductMiddleDataState.XPM_QYDD           = dto.XPM_QYDD;
                xsProductMiddleDataState.XPM_TruckNo        = dto.XPM_TruckNo;
                xsProductMiddleDataState.XPM_Driver         = dto.XPM_Driver;
                xsProductMiddleDataState.XPM_TBBJ           = dto.XPM_TBBJ;
                xsProductMiddleDataState.XPM_SCBJ           = dto.XPM_SCBJ;
                xsProductMiddleDataState.XPM_YLa            = dto.XPM_YLa;
                xsProductMiddleDataState.XPM_YLb            = dto.XPM_YLb;
                xsProductMiddleDataState.XPM_SCXH           = dto.XPM_SCXH;
                xsProductMiddleDataState.XPM_IsTransMit     = dto.XPM_IsTransMit;
                xsProductMiddleDataState.XPM_Line           = dto.XPM_Line;
                xsProductMiddleDataState.XPM_RepetBill      = dto.XPM_RepetBill;
            }
            xsProductMiddleDataState.IsDel        = dto.IsDel;
            xsProductMiddleDataState.ModityBy     = model.UserId;
            xsProductMiddleDataState.ModityByName = model.UserName;
            xsProductMiddleDataState.ModityDate   = System.DateTime.Now;
            xsProductMiddleDataState.Version      = dto.Version;

            XsProductMiddleDataDO xsProductMiddleDataDO = this.ObjectMapper.Map <XsProductMiddleDataDO>(xsProductMiddleDataState);

            bool bRet = await _xsProductMiddleDataRepository.SetAsync(xsProductMiddleDataDO);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            await this.Persist(ProcessAction.Update, xsProductMiddleDataState);

            return(ApiResultUtil.IsSuccess());
        }
示例#27
0
        public async Task <ApiResult> UpdateAsync(SubmitDTO <XsLadeBaseDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            XsLadeBaseState xsLadeBaseState = this.State;

            if (dto.IsDel != 1)
            {
                xsLadeBaseState.XLB_LadeId         = dto.XLB_LadeId;
                xsLadeBaseState.XLB_SetDate        = dto.XLB_SetDate;
                xsLadeBaseState.XLB_Area           = dto.XLB_Area;
                xsLadeBaseState.XLB_Origin         = dto.XLB_Origin;
                xsLadeBaseState.XLB_Line           = dto.XLB_Line;
                xsLadeBaseState.XLB_Client         = dto.XLB_Client;
                xsLadeBaseState.XLB_Cement         = dto.XLB_Cement;
                xsLadeBaseState.XLB_Number         = dto.XLB_Number;
                xsLadeBaseState.XLB_Price          = dto.XLB_Price;
                xsLadeBaseState.XLB_CardPrice      = dto.XLB_CardPrice;
                xsLadeBaseState.XLB_Total          = dto.XLB_Total;
                xsLadeBaseState.XLB_FactNum        = dto.XLB_FactNum;
                xsLadeBaseState.XLB_TurnNum        = dto.XLB_TurnNum;
                xsLadeBaseState.XLB_ReturnNum      = dto.XLB_ReturnNum;
                xsLadeBaseState.XLB_FactTotal      = dto.XLB_FactTotal;
                xsLadeBaseState.XLB_ScaleDifNum    = dto.XLB_ScaleDifNum;
                xsLadeBaseState.XLB_InvoNum        = dto.XLB_InvoNum;
                xsLadeBaseState.XLB_SendArea       = dto.XLB_SendArea;
                xsLadeBaseState.XLB_ApproveMan     = dto.XLB_ApproveMan;
                xsLadeBaseState.XLB_CarCode        = dto.XLB_CarCode;
                xsLadeBaseState.XLB_Quantity       = dto.XLB_Quantity;
                xsLadeBaseState.XLB_PickMan        = dto.XLB_PickMan;
                xsLadeBaseState.XLB_PrintNum       = dto.XLB_PrintNum;
                xsLadeBaseState.XLB_ScaleDifID     = dto.XLB_ScaleDifID;
                xsLadeBaseState.XLB_IsOut          = dto.XLB_IsOut;
                xsLadeBaseState.XLB_Gather         = dto.XLB_Gather;
                xsLadeBaseState.XLB_IsInvo         = dto.XLB_IsInvo;
                xsLadeBaseState.XLB_Collate        = dto.XLB_Collate;
                xsLadeBaseState.XLB_Firm           = dto.XLB_Firm;
                xsLadeBaseState.XLB_Status         = dto.XLB_Status;
                xsLadeBaseState.XLB_Remark         = dto.XLB_Remark;
                xsLadeBaseState.XLB_ReturnRemark   = dto.XLB_ReturnRemark;
                xsLadeBaseState.XLB_IsAgainPrint   = dto.XLB_IsAgainPrint;
                xsLadeBaseState.XLB_Tranist        = dto.XLB_Tranist;
                xsLadeBaseState.XLB_ColType        = dto.XLB_ColType;
                xsLadeBaseState.XLB_AuditCarryTime = dto.XLB_AuditCarryTime;
                xsLadeBaseState.XLB_TaskID         = dto.XLB_TaskID;
                xsLadeBaseState.XLB_BackNum        = dto.XLB_BackNum;
                xsLadeBaseState.XLB_IsTransmit     = dto.XLB_IsTransmit;
                xsLadeBaseState.XLB_OptName        = dto.XLB_OptName;
                xsLadeBaseState.XLB_OptID          = dto.XLB_OptID;
                xsLadeBaseState.XLB_CarNo          = dto.XLB_CarNo;
                xsLadeBaseState.XLB_AgiId          = dto.XLB_AgiId;
                xsLadeBaseState.XLB_Mortar         = dto.XLB_Mortar;
                xsLadeBaseState.XLB_Method         = dto.XLB_Method;
                xsLadeBaseState.XLB_ReturnPrice    = dto.XLB_ReturnPrice;
                xsLadeBaseState.XLB_ReturnTotal    = dto.XLB_ReturnTotal;
                xsLadeBaseState.XLB_AgentPrice     = dto.XLB_AgentPrice;
                xsLadeBaseState.XLB_AgentTotal     = dto.XLB_AgentTotal;
                xsLadeBaseState.XLB_RecipeNo       = dto.XLB_RecipeNo;
                xsLadeBaseState.XLB_TurnType       = dto.XLB_TurnType;
            }
            xsLadeBaseState.IsDel        = dto.IsDel;
            xsLadeBaseState.ModityBy     = model.UserId;
            xsLadeBaseState.ModityByName = model.UserName;
            xsLadeBaseState.ModityDate   = System.DateTime.Now;
            xsLadeBaseState.Version      = dto.Version;

            XsLadeBaseDO xsLadeBaseDO = this.ObjectMapper.Map <XsLadeBaseDO>(xsLadeBaseState);

            bool bRet = await _xsLadeBaseRepository.SetAsync(xsLadeBaseDO);

            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }

            await this.Persist(ProcessAction.Update, xsLadeBaseState);

            return(ApiResultUtil.IsSuccess());
        }
示例#28
0
        /// <summary>
        /// 新增发货单作废
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> AddAsync(SubmitDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            #region 插入发货单作废
            //查对应发货单
            ApiResult <XsLadeBaseVO> xsLadeBaseResult = await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(dto.XLR_Lade).GetAsync();

            XsLadeBaseDTO xsLadeBaseDTO = xsLadeBaseResult.Success ? this.ObjectMapper.Map <XsLadeBaseDTO>(xsLadeBaseResult.Data) : null;
            //插入发货单作废
            XsLadeRimpactDO xsLadeRimpactDO = this.ObjectMapper.Map <XsLadeRimpactDO>(dto);
            xsLadeRimpactDO.XLR_Total    = xsLadeBaseDTO.XLB_FactTotal;
            xsLadeRimpactDO.CreateBy     = model.UserId;
            xsLadeRimpactDO.CreateByName = model.UserName;
            xsLadeRimpactDO.CreateDate   = System.DateTime.Now;
            xsLadeRimpactDO.ModityBy     = model.UserId;
            xsLadeRimpactDO.ModityByName = model.UserName;
            xsLadeRimpactDO.ModityDate   = System.DateTime.Now;
            bool bRet = await _xsLadeRimpactRepository.AddAsync(xsLadeRimpactDO);;
            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据插入失败!"));
            }
            #endregion

            if (dto.XLR_Type == "101")//本月
            {
                #region 更新发货单状态
                xsLadeBaseDTO.XLB_Status = "2";
                await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(xsLadeBaseDTO.Id).UpdateAsync(new SubmitDTO <XsLadeBaseDTO>
                {
                    Data     = xsLadeBaseDTO,
                    UserId   = model.UserId,
                    UserName = model.UserName
                });

                #endregion

                #region  除应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.XLR_Lade,
                    XRC_Origins = { "102", "103", "104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        xsReceReceivableDO.IsDel = 1;
                        XsReceReceivableDTO xsReceReceivableDTO = this.ObjectMapper.Map <XsReceReceivableDTO>(xsReceReceivableDO);
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).UpdateAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }
            else if (dto.XLR_Type == "102")//跨月
            {
                #region 插入调整应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.XLR_Lade,
                    XRC_Origins = { "102", "103", "104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        XsReceReceivableDTO xsReceReceivableDTO = new XsReceReceivableDTO
                        {
                            Id          = await this.GrainFactory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewID(),
                            XRC_SetDate = xsLadeRimpactDO.XLR_SetDate,
                            XRC_BillID  = xsLadeRimpactDO.Id,//作废主键
                            XRC_Origin  = "4" + xsReceReceivableDO.XRC_Origin,
                            XRC_Total   = -xsReceReceivableDO.XRC_Total,
                            XRC_Firm    = xsLadeRimpactDO.XLR_Firm
                        };
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).AddAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }

            //更新服务状态
            XsLadeRimpactState xsLadeRimpactState = this.ObjectMapper.Map <XsLadeRimpactState>(xsLadeRimpactDO);

            await this.Persist(ProcessAction.Create, xsLadeRimpactState);

            return(ApiResultUtil.IsSuccess("处理成功!"));
        }
示例#29
0
        /// <summary>
        /// 删除发货单作废
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> DelAsync(SubmitDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            #region  除发货单作废
            //查对应发货单
            var xsLadeBaseResult = await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(this.State.XLR_Lade).GetAsync();

            XsLadeBaseDTO xsLadeBaseDTO = xsLadeBaseResult.Success ? this.ObjectMapper.Map <XsLadeBaseDTO>(xsLadeBaseResult.Data) : null;
            //删除发货单作废
            XsLadeRimpactState xsLadeRimpactState = this.State;
            xsLadeRimpactState.IsDel        = 1;
            xsLadeRimpactState.ModityBy     = model.UserId;
            xsLadeRimpactState.ModityByName = model.UserName;
            xsLadeRimpactState.ModityDate   = System.DateTime.Now;
            xsLadeRimpactState.Version      = dto.Version;
            XsLadeRimpactDO xsLadeRimpactDO = this.ObjectMapper.Map <XsLadeRimpactDO>(xsLadeRimpactState);
            bool            bRet            = await _xsLadeRimpactRepository.SetAsync(xsLadeRimpactDO);;
            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }
            #endregion

            //查对应应收款
            IList <XsReceReceivableDO> xsReceReceivableDOs = new List <XsReceReceivableDO>();
            if (xsLadeRimpactState.XLR_Type == "101")//本月
            {
                #region 更新发货单状态
                xsLadeBaseDTO.XLB_Status = "1";
                await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(xsLadeBaseDTO.Id).UpdateAsync(new SubmitDTO <XsLadeBaseDTO>
                {
                    Data     = xsLadeBaseDTO,
                    UserId   = model.UserId,
                    UserName = model.UserName
                });

                #endregion

                #region 还原应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.XLR_Lade,
                    XRC_Origins = { "102", "103", "104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        xsReceReceivableDO.IsDel = 0;
                        XsReceReceivableDTO xsReceReceivableDTO = this.ObjectMapper.Map <XsReceReceivableDTO>(xsReceReceivableDO);
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).UpdateAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }
            else if (xsLadeRimpactState.XLR_Type == "102")//跨月
            {
                #region  除调整应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.Id,
                    XRC_Origins = { "4102", "4103", "4104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        xsReceReceivableDO.IsDel = 1;
                        XsReceReceivableDTO xsReceReceivableDTO = this.ObjectMapper.Map <XsReceReceivableDTO>(xsReceReceivableDO);
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).UpdateAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }

            await this.Persist(ProcessAction.Update, xsLadeRimpactState);

            return(ApiResultUtil.IsSuccess("处理成功!"));
        }
示例#30
0
        /// <summary>
        /// 根据企业主键和发货单编号,查发货单数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult <XsLadeBaseVO> > GetByLadeIdSync(XsLadeBaseDTO model)
        {
            var expression = model.GetExpression2();
            var entitys    = await _xsLadeBaseRepository.GetAllAsync(expression, isMaster : false);

            if (entitys.AsList().Count == 0)
            {
                return(ApiResultUtil.IsFailed <XsLadeBaseVO>("当前企业该发货单编号不存在,请核对!"));
            }
            else if (entitys.AsList().Count > 1)
            {
                return(ApiResultUtil.IsFailed <XsLadeBaseVO>("当前企业该发货单编号存在多条,请核对!"));
            }
            var xsLadeBaseVO = this.ObjectMapper.Map <XsLadeBaseVO>(entitys.FirstOrDefault());

            if (xsLadeBaseVO.XLB_Status == "2")
            {
                return(ApiResultUtil.IsFailed <XsLadeBaseVO>("该发货单已冲红,请核对!"));
            }

            //查客商名称
            if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Client))
            {
                var xsCompyBaseResult = await _orleansClient.GetGrain <IXsCompyBaseStateGrain>(xsLadeBaseVO.XLB_Firm).GetAllSync(new XsCompyBaseDTO {
                    Ids = new List <string> {
                        xsLadeBaseVO.XLB_Client
                    }
                });

                if (xsCompyBaseResult.Success && xsCompyBaseResult.Data.Count > 0)
                {
                    xsLadeBaseVO.XLB_ClientName = xsCompyBaseResult.Data[0].XOB_Name;
                }
            }
            //查企业名称
            if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Firm))
            {
                var pbBasicFirmResult = await _orleansClient.GetGrain <IPbBasicFirmStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new PbBasicFirmDTO {
                    Ids = new List <string> {
                        xsLadeBaseVO.XLB_Firm
                    }
                });

                if (pbBasicFirmResult.Success && pbBasicFirmResult.Data.Count > 0)
                {
                    xsLadeBaseVO.XLB_FirmName = pbBasicFirmResult.Data[0].PBF_ShortName;
                }
            }
            //查物料名称
            if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Cement))
            {
                var pbCodeMaterialResult = await _orleansClient.GetGrain <IPbCodeMaterialStateGrain>(xsLadeBaseVO.XLB_Firm).GetAllSync(new PbCodeMaterialDTO {
                    Ids = new List <string> {
                        xsLadeBaseVO.XLB_Cement
                    }
                });

                if (pbCodeMaterialResult.Success && pbCodeMaterialResult.Data.Count > 0)
                {
                    xsLadeBaseVO.XLB_CementName = pbCodeMaterialResult.Data[0].PCM_Name;
                }
            }

            return(await Task.FromResult(ApiResultUtil.IsSuccess(xsLadeBaseVO)));
        }