Example #1
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());
        }
Example #2
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());
        }
Example #3
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()));
        }
Example #4
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("处理成功!"));
        }
Example #5
0
        public async Task SubmitAsync(Guid transactionId, SubmitDTO <XsReceReceivableDTO> model)
        {
            if (State.Transactions.ContainsKey(transactionId))
            {
                return;
            }

            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;
            }

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

            xsLadeBaseState.Transactions[transactionId] = true;//执行成功赋值

            await this.Persist(ProcessAction.Create, xsLadeBaseState);
        }
Example #6
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> AddAsync([FromForm] SubmitDTO <HyFormulaMaterDTO> model)
        {
            string newId = await factory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewID();

            model.Data.Id = newId;
            return(await factory.GetGrain <IHyFormulaMaterStateGrain>(newId).AddAsync(model));
        }
Example #8
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());
        }
Example #9
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));
 }
Example #10
0
        public async Task <ApiResult> AddAsync([FromForm] SubmitDTO <XsLadeBaseDTO> model)
        {
            //生成唯一ID
            string newId = await factory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewID();

            model.Data.Id = newId;
            return(await factory.GetGrain <IXsLadeBaseStateGrain>(newId).AddAsync(model));
        }
Example #11
0
        public bool InsertToScoreboard(ScoreboardDTO scoreboardDTO)
        {
            SubmitDTO submitDTO = new SubmitDTO {
                Category = scoreboardDTO.Category, Difficulty = scoreboardDTO.Difficulty, UniqueID = scoreboardDTO.UserID, Score = scoreboardDTO.Score, QuestionList = scoreboardDTO.QuestionList
            };

            return(SubmitRepository.InsertToScoreboard(submitDTO));
        }
Example #12
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));
 }
Example #13
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));
 }
Example #14
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));
 }
Example #15
0
        public async Task <ApiResult> AddAsync([FromForm] SubmitDTO <ScheduleTaskDTO> model)
        {
            //生成唯一ID
            long newId = await factory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewLongID();

            model.Data.Id = newId;
            return(await factory.GetGrain <IScheduleTaskStateGrain>(newId).AddAsync(model));
        }
Example #16
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("处理成功!"));
        }
Example #17
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());
        }
Example #18
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());
        }
Example #19
0
        /// <summary>
        /// 新增发货单作废
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> AddAsync(SubmitDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            var lbResult = await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(dto.XLR_Lade).GetAsync();

            var lbData = lbResult.Success ? lbResult.Data : null;

            dto.XLR_Total = lbData?.XLB_FactTotal;

            //作废单新建
            var activitys = this.GrainFactory.CreateSaga().AddActivity <XsLadeRimpactActivity>(x =>
            {
                x.Add("GrainId", GrainId);
                x.Add("EventType", "ADD");
                x.Add("Data", model);
            });

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

            var recData = recResult.Success ? recResult.Data : new List <XsReceReceivableDO>();

            switch (dto.XLR_Type)
            {
            case "101":    //本月
                //发货单状态更新
                activitys.AddActivity <XsLadeBaseActivity>(x =>
                {
                    x.Add("GrainId", dto.XLR_Lade);
                    x.Add("XLB_Status", "2");
                    x.Add("UserId", model.UserId);
                    x.Add("UserName", model.UserName);
                });

                foreach (var item in recData)
                {
                    //应收款删除
                    activitys.AddActivity <XsReceReceivableActivity>(x =>
                    {
                        x.Add("GrainId", item.Id);
                        x.Add("EventType", "UPDATE");
                        x.Add("IsDel", 1);
                        x.Add("UserId", model.UserId);
                        x.Add("UserName", model.UserName);
                    });
                }

                break;

            case "102":    //跨月
                foreach (var item in recData)
                {
                    string newId = await this.GrainFactory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewID();

                    var submitData = new SubmitDTO <XsReceReceivableDTO>
                    {
                        Data = new XsReceReceivableDTO
                        {
                            Id          = newId,
                            XRC_SetDate = dto.XLR_SetDate,
                            XRC_BillID  = dto.Id,   //作废主键
                            XRC_Origin  = "4" + item.XRC_Origin,
                            XRC_Total   = -item.XRC_Total,
                            XRC_Firm    = dto.XLR_Firm
                        },
                        UserId   = model.UserId,
                        UserName = model.UserName
                    };

                    //应收款新建
                    activitys.AddActivity <XsReceReceivableActivity>(x =>
                    {
                        x.Add("GrainId", newId);
                        x.Add("EventType", "ADD");
                        x.Add("Data", submitData);
                    });
                }

                break;

            default:
                break;
            }

            //执行
            var saga = await activitys.ExecuteSagaAsync();

            await saga.Wait();

            if (SagaStatus.Executed == await saga.GetStatus())
            {
                return(ApiResultUtil.IsSuccess("发货单作废成功新增成功!"));
            }
            else
            {
                return(ApiResultUtil.IsSuccess("发货单作废失败!"));
            }
        }
Example #20
0
        public async Task <ApiResult> AddAsync(SubmitDTO <DictDTO> model)
        {
            var dto = model.Data;

            //参数校验
            if (!dto.IsValid(out string exMsg))
            {
                return(ApiResultUtil.IsFailed(exMsg));
            }

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

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

            dictDO.Id         = newId;
            dictDO.IsDel      = 0;
            dictDO.Version    = 1;
            dictDO.CreateBy   = model.UserId;
            dictDO.CreateDate = System.DateTime.Now;
            dictDO.ModityBy   = model.UserId;
            dictDO.ModityDate = System.DateTime.Now;

            string attribute = System.Guid.NewGuid().ToString();

            //测试先去掉数据写数
            //await PublishAsync(new TestModel
            //{
            //    Id = System.Guid.NewGuid().ToString(),
            //    CreateDate = System.DateTime.Now,
            //    Attribute01 = attribute,
            //    Attribute02 = attribute,
            //    Attribute03 = attribute,
            //    Attribute04 = attribute,
            //    Attribute05 = attribute,
            //    Attribute06 = attribute,
            //    Attribute07 = attribute,
            //    Attribute08 = attribute,
            //    Attribute09 = attribute,
            //    Attribute10 = attribute,
            //    Attribute11 = attribute,
            //    Attribute12 = attribute,
            //    Attribute13 = attribute
            //});

            bool bRet = await _dictRepository.AddAsync(dictDO);

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

            if (this.GrainId != "TY22")
            {
                var client = _httpClientFactory.CreateClient();
                client.BaseAddress = new Uri("http://127.0.0.1:6114");
                Dictionary <string, string> postForm = new Dictionary <string, string>
                {
                    { "Data.DataType", "TY22" },
                    { "Data.DataCode", "A001" },
                    { "Data.DataValue", "V001" },
                    { "Data.DataDesc", "测试" },
                    { "Data.SortNo", "1" },
                    { "Data.Firm", "YT001" }
                };
                var task = await client.PostKanekoAsync("/BasicData/api/Dict/add", "", null, postForm);
            }

            //更新服务状态
            DictState scheduleTaskState = this.State;

            scheduleTaskState.Balance.Add(dictDO);

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

            return(ApiResultUtil.IsSuccess(newId.ToString()));
        }
Example #21
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("处理成功!"));
        }
Example #22
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("处理成功!"));
        }
        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());
        }
Example #24
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());
        }
Example #25
0
        /// <summary>
        /// 删除发货单作废
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> DelAsync(SubmitDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            //作废单删除
            var activitys = this.GrainFactory.CreateSaga().AddActivity <XsLadeRimpactActivity>(x =>
            {
                x.Add("GrainId", GrainId);
                x.Add("EventType", "UPDATE");
                x.Add("IsDel", 1);
                x.Add("UserId", model.UserId);
                x.Add("UserName", model.UserName);
            });

            //应收款
            List <string> XRCOrigins = "101" == dto.XLR_Type ? new List <string> {
                "102", "103", "104"
            } : new List <string> {
                "4102", "4103", "4104"
            };
            var recResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
            {
                XRC_BillID  = dto.XLR_Lade,
                XRC_Origins = XRCOrigins
            });

            var recData = recResult.Success ? recResult.Data : new List <XsReceReceivableDO>();

            switch (dto.XLR_Type)
            {
            case "101":    //本月
                //发货单状态更新
                activitys.AddActivity <XsLadeBaseActivity>(x =>
                {
                    x.Add("GrainId", dto.XLR_Lade);
                    x.Add("XLB_Status", "1");
                    x.Add("UserId", model.UserId);
                    x.Add("UserName", model.UserName);
                });

                foreach (var item in recData)
                {
                    //还原应收款
                    activitys.AddActivity <XsReceReceivableActivity>(x =>
                    {
                        x.Add("GrainId", item.Id);
                        x.Add("EventType", "UPDATE");
                        x.Add("IsDel", 0);
                        x.Add("UserId", model.UserId);
                        x.Add("UserName", model.UserName);
                    });
                }

                break;

            case "102":    //跨月
                foreach (var item in recData)
                {
                    //删除调整应收款
                    activitys.AddActivity <XsReceReceivableActivity>(x =>
                    {
                        x.Add("GrainId", item.Id);
                        x.Add("EventType", "UPDATE");
                        x.Add("IsDel", 1);
                        x.Add("UserId", model.UserId);
                        x.Add("UserName", model.UserName);
                    });
                }

                break;

            default:
                break;
            }

            //执行
            var saga = await activitys.ExecuteSagaAsync();

            await saga.Wait();

            if (SagaStatus.Executed == await saga.GetStatus())
            {
                return(ApiResultUtil.IsSuccess());
            }
            else
            {
                return(ApiResultUtil.IsFailed("删除发货单作废失败!"));
            }
        }