public override object Execute() { T_CapitalFlowEntity cf = new T_CapitalFlowEntity() { CapitalFlow_Id = this._context.strBOID, ApprovalState = this._context.ApproveStatus, LatestApprover = this._context.strApproverId, LatestApprovetime = this._context.dtTime, LatestComment = this._context.strComment, Procinstid = this._context.iProcInstID.ToString(), }; cfBll.ApprovalUpdateState(this._context.strBOID, cf); return(true); }
public override object Execute() { T_CapitalFlowEntity cf = new T_CapitalFlowEntity() { CapitalFlow_Id = this._context.strBOID, LatestApprovetime = this._context.dtTime, ApprovalState = this._context.ApproveStatus, LatestComment = this._context.strComment, Procinstid = this._context.iProcInstID.ToString(), }; cfBll.ApprovalUpdateState(this._context.strBOID, cf); if (this._context.ApproveStatus == (int)ApproveStatus.approved) { /// <summary> /// 1.根据CapitalFlow_Id 查询 /// 1.1如果orderNo为空 是第一个 /// 1.1.1根据CapitalFlow_Id查询出子表数据 /// 1.1.2循环子表数据 根据每一个子表数据中的电商id和项目id 查询出来合同表 /// 1.1.3然后将子表中资金和合同表中资金相加 然后更新合同表 /// 1.1.4更新当前CapitalFlow的orderNo为0 /// 1.2如果不为空 /// 1.2.1根据查询出来orderNo最大的一条CapitalFlow记录 /// 1.2.2根据CapitalFlow_Id查询出子表数据 /// 1.2.3循环子表数据 根据每一个子表数据中的电商id和项目id 查询出来合同表 /// </summary> //根据区域id 年份 月份 获取orderno最大的一条 List <T_CapitalFlowEntity> cfEntity = cfBll.check(this._context.strBOID, cf).ToList(); //判断是否为第一次收入 if (cfEntity[0].OrderNo == null) { //第一笔收入 //获取子表 List <CapitalFlow_ProRelaView> cfNodeList = cfBll.updateMoney(this._context.strBOID).ToList(); //新建一个合同list 便于update List <EcommerceProjectRelationEntity> ecomList = new List <EcommerceProjectRelationEntity>(); //新建一个流水list 便于insert List <T_PartnerCapitalPoolEntity> pCaPoolList = new List <T_PartnerCapitalPoolEntity>(); CapitalFlow_ProRelaView ecomEntity = new CapitalFlow_ProRelaView(); foreach (CapitalFlow_ProRelaView c in cfNodeList) { EcommerceProjectRelationEntity ecomProReEntity = new EcommerceProjectRelationEntity(); T_PartnerCapitalPoolEntity pcEntity = new T_PartnerCapitalPoolEntity(); //根据项目id和电商id查询合同表 //ecomEntity = ecomBll.GetTrunkEntity(c.ProjectID, c.EcommerceID); ecomEntity = cfNodeList.FirstOrDefault(p => p.ProjectID == c.ProjectID && p.EcommerceID == c.EcommerceID); if (ecomEntity != null) { //List<EcommerceProjectRelationEntity> list= ecomBll.searchActAmount(ecomEntity.EcommerceID,ecomEntity.ProjectID).ToList(); decimal aca = (decimal)(ecomEntity.ActualControlTotalAmount + c.CapitalPoolAdd); decimal ca = (decimal)(ecomEntity.ControlTotalAmount + c.CapitalPoolAdd); //合同表 ecomProReEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; ecomProReEntity.ActualControlTotalAmount = aca; ecomProReEntity.ControlTotalAmount = ca; ecomList.Add(ecomProReEntity); //流水表 pcEntity.OperationTitle = "资金导入"; pcEntity.OperationType = 3; pcEntity.T_P_PartnerCapitalPoolID = null; pcEntity.OperationMoney = c.CapitalPoolAdd; pcEntity.CurrentMoney = ecomEntity.ControlTotalAmount; pcEntity.CurrentBalance = ca; pcEntity.AccountingType = 0; pcEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; pcEntity.PartnerCapitalPoolID = Guid.NewGuid().ToString(); pcEntity.CreateDate = DateTime.Now; pcEntity.CreateUserId = c.CreateUserId; pcEntity.CreateUserName = c.CreateUserName; pcEntity.ObjectID = c.CapitalFlow_Details_Id; pcEntity.DeleteMark = 0; pcEntity.StatisticalDate = c.UploadDate; pCaPoolList.Add(pcEntity); } } //更新钱 ecomBll.updateMoneyAA(ecomList); pCaPoolBll.InsertEntityList(pCaPoolList); //更新orderno cfBll.updateOrderNo(0, this._context.strBOID); } else { //获取流水表的明细 IEnumerable <T_PartnerCapitalPoolEntity> paCaPoolList = pCaPoolBll.getAllPaCaPoolList(); //获取上一个通过的记录 List <CapitalFlow_ProRelaView> cfNodeListBefor = cfBll.updateMoney(cfEntity[0].CapitalFlow_Id).ToList(); //获取当前记录 List <CapitalFlow_ProRelaView> cfNodeListNow = cfBll.updateMoney(this._context.strBOID).ToList(); //新建一个资金池list 更新资金池 List <EcommerceProjectRelationEntity> ecomListBefor = new List <EcommerceProjectRelationEntity>(); //新建一个流水list 便于insert List <T_PartnerCapitalPoolEntity> pCaPoolListBefor = new List <T_PartnerCapitalPoolEntity>(); //新建一个流水list 便于update deletemark=1 List <T_PartnerCapitalPoolEntity> pCaPoolListDel = new List <T_PartnerCapitalPoolEntity>(); //循环上一个通过的记录 foreach (CapitalFlow_ProRelaView c in cfNodeListBefor) { EcommerceProjectRelationEntity ecomProReEntity = new EcommerceProjectRelationEntity(); CapitalFlow_ProRelaView ecomEntity = new CapitalFlow_ProRelaView(); CapitalFlow_ProRelaView ecomEntityZ = new CapitalFlow_ProRelaView(); T_PartnerCapitalPoolEntity pcEntity = new T_PartnerCapitalPoolEntity(); T_PartnerCapitalPoolEntity pcZEntity = new T_PartnerCapitalPoolEntity(); //根据项目id和电商id查询合同表 ecomEntity = cfNodeListBefor.FirstOrDefault(p => p.ProjectID == c.ProjectID && p.EcommerceID == c.EcommerceID); ecomEntityZ = cfNodeListNow.FirstOrDefault(p => p.ProjectID == c.ProjectID && p.EcommerceID == c.EcommerceID); pcZEntity = paCaPoolList.FirstOrDefault(p => p.ObjectID == c.CapitalFlow_Details_Id && p.OperationType == 3); pcZEntity.DeleteMark = 1; pCaPoolListDel.Add(pcZEntity); if (ecomEntity != null) { decimal aca = (decimal)(ecomEntity.ActualControlTotalAmount - c.CapitalPoolAdd); decimal ca = (decimal)(ecomEntity.ControlTotalAmount - c.CapitalPoolAdd); ecomProReEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; ecomProReEntity.ActualControlTotalAmount = aca; ecomProReEntity.ControlTotalAmount = ca; ecomListBefor.Add(ecomProReEntity); //流水表 pcEntity.OperationTitle = "资金导入"; pcEntity.OperationType = 2; pcEntity.OperationMoney = c.CapitalPoolAdd; pcEntity.CurrentMoney = ecomEntity.ControlTotalAmount; pcEntity.CurrentBalance = ca; pcEntity.AccountingType = 1; pcEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; pcEntity.PartnerCapitalPoolID = Guid.NewGuid().ToString(); pcEntity.CreateDate = DateTime.Now; pcEntity.T_P_PartnerCapitalPoolID = pcZEntity.PartnerCapitalPoolID; if (ecomEntityZ != null) { pcEntity.ObjectID = ecomEntityZ.CapitalFlow_Details_Id; } else { pcEntity.ObjectID = ecomEntity.CapitalFlow_Details_Id; } pcEntity.StatisticalDate = c.UploadDate; pcEntity.DeleteMark = 1; pcEntity.CreateUserId = cfNodeListNow.First().CreateUserId; pcEntity.CreateUserName = cfNodeListNow.First().CreateUserName; pCaPoolListBefor.Add(pcEntity); } } pCaPoolBll.InsertEntityList(pCaPoolListBefor); ecomBll.updateMoneyAA(ecomListBefor); pCaPoolBll.UpdateEntityList(pCaPoolListDel); cfBll.updateDeleteMark(cfEntity[0].CapitalFlow_Id); cfBll.updateCapDeleteMark(cfEntity[0].CapitalFlow_Id); //获取当前的记录 paCaPoolList = pCaPoolBll.getAllPaCaPoolList(); cfNodeListNow = cfBll.updateMoney(this._context.strBOID).ToList(); List <EcommerceProjectRelationEntity> ecomListNow = new List <EcommerceProjectRelationEntity>(); //新建一个流水list 便于insert List <T_PartnerCapitalPoolEntity> pCaPoolListNow = new List <T_PartnerCapitalPoolEntity>(); foreach (CapitalFlow_ProRelaView c in cfNodeListNow) { EcommerceProjectRelationEntity ecomProReEntity = new EcommerceProjectRelationEntity(); CapitalFlow_ProRelaView ecomEntity = new CapitalFlow_ProRelaView(); T_PartnerCapitalPoolEntity pcEntity = new T_PartnerCapitalPoolEntity(); T_PartnerCapitalPoolEntity pcZEntity = new T_PartnerCapitalPoolEntity(); //根据项目id和电商id查询合同表 ecomEntity = cfNodeListNow.FirstOrDefault(p => p.ProjectID == c.ProjectID && p.EcommerceID == c.EcommerceID); pcZEntity = paCaPoolList.FirstOrDefault(p => p.ObjectID == c.CapitalFlow_Details_Id); if (ecomEntity != null) { decimal aca = (decimal)(ecomEntity.ActualControlTotalAmount + c.CapitalPoolAdd); decimal ca = (decimal)(ecomEntity.ControlTotalAmount + c.CapitalPoolAdd); ecomProReEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; ecomProReEntity.ActualControlTotalAmount = aca; ecomProReEntity.ControlTotalAmount = ca; ecomListNow.Add(ecomProReEntity); //流水表 if (pcZEntity != null) { pcEntity.OperationTitle = "资金导入"; pcEntity.OperationType = 3; pcEntity.OperationMoney = c.CapitalPoolAdd; pcEntity.CurrentMoney = ecomEntity.ControlTotalAmount; pcEntity.CurrentBalance = ca; pcEntity.AccountingType = 0; pcEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; pcEntity.PartnerCapitalPoolID = Guid.NewGuid().ToString(); pcEntity.CreateDate = DateTime.Now; pcEntity.CreateUserId = c.CreateUserId; pcEntity.T_P_PartnerCapitalPoolID = pcZEntity.PartnerCapitalPoolID; pcEntity.CreateUserName = c.CreateUserName; pcEntity.ObjectID = c.CapitalFlow_Details_Id; pcEntity.StatisticalDate = c.UploadDate; pcEntity.DeleteMark = 0; } else { pcEntity.OperationTitle = "资金导入"; pcEntity.OperationType = 3; pcEntity.OperationMoney = c.CapitalPoolAdd; pcEntity.CurrentMoney = ecomEntity.ControlTotalAmount; pcEntity.CurrentBalance = ca; pcEntity.AccountingType = 0; pcEntity.EcommerceProjectRelationID = c.EcommerceProjectRelationID; pcEntity.PartnerCapitalPoolID = Guid.NewGuid().ToString(); pcEntity.CreateDate = DateTime.Now; pcEntity.CreateUserId = c.CreateUserId; pcEntity.T_P_PartnerCapitalPoolID = null; pcEntity.CreateUserName = c.CreateUserName; pcEntity.ObjectID = c.CapitalFlow_Details_Id; pcEntity.StatisticalDate = c.UploadDate; pcEntity.DeleteMark = 0; } pCaPoolListNow.Add(pcEntity); } } ecomBll.updateMoneyAA(ecomListNow); pCaPoolBll.InsertEntityList(pCaPoolListNow); int a = cfEntity[0].OrderNo ?? 0; cfBll.updateOrderNo(a + 1, this._context.strBOID); } } return(true); }