Example #1
0
        public IActionResult GetPlanDetail([FromBody] PlanInitDto parm)
        {
            string[] subitemids = parm.Ids.Split(',');
            List <Biz_ContractItem_Sub> subItemlist = _contractitemsubService.GetWhere(m => subitemids.Contains(m.ID));

            if (subItemlist.Any(m => m.status > 20000))
            {
                return(toResponse(StatusCodeType.Error, "当前项目已经提交安排,请刷新列表再试!"));
            }

            if (subItemlist.Any(m => m.ContractItemSubType == 0) && subItemlist.Any(m => m.ContractItemSubType == 1))
            {
                return(toResponse(StatusCodeType.Error, "不允许同时安排一阶段跟二阶段项目,请核对!"));
            }

            string ids = "'" + string.Join("','", subitemids) + "'";

            var customerid = Core.DbContext.Db.Ado.SqlQuery <string>(string.Format("select distinct CustomerID from Biz_MainContract where ID in (select MainContractID from Biz_ContractItem_Sub where ID in ({0}))", ids)).ToList();

            if (customerid.Count() > 1)
            {
                return(toResponse(StatusCodeType.Error, "不同客户下项目不允许一起安排,请核对!"));
            }

            //任务信息
            ItemPlanVM plandata = new ItemPlanVM();

            plandata.CustomerID           = customerid.First().ToString();
            plandata.ContractItem_SubList = subItemlist; //添加体系项目

            //审核员信息
            List <PlanAuditorVM> planlist = new List <PlanAuditorVM>();

            PlanAuditorVM plan = new PlanAuditorVM();

            List <Biz_Contract_PlanAuditor_Item> AuditorItemList = new List <Biz_Contract_PlanAuditor_Item>();

            foreach (var subItem in subItemlist)
            {
                Biz_Contract_PlanAuditor_Item planauditor_item = new Biz_Contract_PlanAuditor_Item(); //审核员项目信息
                planauditor_item.ContractItemSubID = subItem.ID;
                AuditorItemList.Add(planauditor_item);
            }
            plan.PlanAuditItemList = AuditorItemList;
            planlist.Add(plan);
            plandata.PlanAuditorList = planlist;

            return(toResponse(plandata));
        }
        public IActionResult GetPlanDetail(string id = null)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(toResponse(StatusCodeType.Error, "id不允许为空!"));
            }
            using (SqlSugarClient db = Core.DbContext.CurrentDB)
            {
                Biz_Contract_Plan plan = _contractitemplanService.GetId(id);
                if (plan == null)
                {
                    return(toResponse(StatusCodeType.Error, "查询不到相关项目信息,请核对!"));
                }

                //任务信息
                ItemPlanVM plandata = Api.Common.Helpers.ComHelper.Mapper <ItemPlanVM, Biz_Contract_Plan>(plan);
                List <Biz_ContractItem_Sub> subItemList = _contractitemsubService.GetWhere(m => m.ContractPlanID == plandata.ID);

                //审核员信息
                List <Biz_Contract_PlanAuditor> planauditorlist     = _contractplanauditorService.GetWhere(m => m.ContractPlanID == plandata.ID);
                List <PlanAuditorVM>            planauditorviewlist = new List <PlanAuditorVM>();

                foreach (var planauditor in planauditorlist)
                {
                    PlanAuditorVM planauditorview = Api.Common.Helpers.ComHelper.Mapper <PlanAuditorVM, Biz_Contract_PlanAuditor>(planauditor);

                    planauditorview.PlanAuditItemList = _contractplanauditoritemService.GetWhere(m => m.PlanAuditorID == planauditorview.ID);

                    planauditorviewlist.Add(planauditorview);
                }
                plandata.ContractItem_SubList = subItemList;
                plandata.PlanAuditorList      = planauditorviewlist;

                return(toResponse(plandata));
            }
        }
Example #3
0
        public IActionResult Create([FromBody] ItemPlanVM parm)
        {
            var userinfo = _tokenManager.GetSessionInfo();

            using (SqlSugarClient db = Core.DbContext.CurrentDB)
            {
                Core.DbContext.BeginTran();
                try
                {
                    List <SugarParameter> parameters = new List <SugarParameter>();
                    parameters.Add(new SugarParameter("UserID", userinfo.UserID));
                    parameters.Add(new SugarParameter("UserName", userinfo.UserName));

                    //体系项目信息
                    List <Biz_ContractItem_Sub> subitemlist = parm.ContractItem_SubList;
                    if (subitemlist.Count == 0)
                    {
                        throw new Exception("提交数据不包含体系项目信息,请核对!");
                    }
                    string IDs = string.Join(",", subitemlist.Select(m => m.AutoID));

                    if (db.Ado.GetScalar("select 1 from Biz_ContractItem_Sub where status > 20000 and ContractItemSubID in (@ids)", new { ids = IDs }) != null)
                    {
                        throw new Exception("提交项目包含已经安排项目,请核对!");
                    }

                    //匹配任务信息
                    Biz_Contract_Plan plan = new Biz_Contract_Plan();
                    Api.Common.Helpers.ComHelper.MapperMatch <Biz_Contract_Plan, ItemPlanVM>(plan, parm, "ID", "status");

                    var helper   = new Common.SerialNoHelper();
                    var serialno = helper.Generate("N20"); //生成任务编号

                    plan.ContractPlanNo = serialno;

                    plan = plan.Adapt <Biz_Contract_Plan>().ToCreate(_tokenManager.GetSessionInfo());
                    int ContractPlanID = db.Insertable <Biz_Contract_Plan>(plan).ExecuteReturnIdentity();

                    //处理项目信息
                    foreach (var subitem in subitemlist)
                    {
                        //subitem.ContractPlanID = plan.ID;

                        db.Updateable <Biz_ContractItem_Sub>().SetColumns(m => new Biz_ContractItem_Sub()
                        {
                            ContractPlanID       = plan.ID,
                            MultiSiteAddDays     = subitem.MultiSiteAddDays,
                            AuditCombinDegree    = subitem.AuditCombinDegree,
                            DeletionScale        = subitem.DeletionScale,
                            PlanTotalDays        = subitem.PlanTotalDays,
                            OffSiteDays          = subitem.OffSiteDays,
                            FirstDays            = subitem.FirstDays,
                            SecondDays           = subitem.SecondDays,
                            MultiSitetTravelDays = subitem.MultiSitetTravelDays,
                            OtherAddDays         = subitem.OtherAddDays,
                            TrueFirstDays        = subitem.TrueFirstDays,
                            TrueSecondDays       = subitem.TrueSecondDays,
                        }).Where(m => m.ID == subitem.ID).ExecuteCommand();

                        //提交
                        Step.Submit(db, subitem, "Biz_ContractItem_Sub", "ID", "status", "201", parameters, UpdateBizEntityAfterSubmitted, "提交安排");
                    }

                    //审核员信息
                    List <PlanAuditorVM> auditorlist = parm.PlanAuditorList;
                    foreach (var auditorVM in auditorlist)
                    {
                        Biz_Contract_PlanAuditor auditor = Api.Common.Helpers.ComHelper.Mapper <Biz_Contract_PlanAuditor, PlanAuditorVM>(auditorVM);
                        auditor = auditor.Adapt <Biz_Contract_PlanAuditor>().ToCreate(_tokenManager.GetSessionInfo());
                        auditor.ContractPlanID = plan.ID;
                        db.Insertable(auditor).AS("Biz_Contract_PlanAuditor").ExecuteCommand();

                        foreach (var auditoritem in auditorVM.PlanAuditItemList)
                        {
                            auditoritem.ID             = Guid.NewGuid().ToString();
                            auditoritem.PlanAuditorID  = auditor.ID;
                            auditoritem.ContractPlanID = plan.ID;

                            db.Insertable(auditoritem).AS("Biz_Contract_PlanAuditor_Item").ExecuteCommand();
                        }
                    }
                    Core.DbContext.CommitTran();

                    return(toResponse(plan.ID));
                }
                catch (Exception ex)
                {
                    Core.DbContext.RollbackTran();
                    return(toResponse(StatusCodeType.Error, ex.Message));
                }
            }
        }
        public IActionResult Update([FromBody] ItemPlanVM parm)
        {
            using (SqlSugarClient db = Core.DbContext.CurrentDB)
            {
                db.Ado.BeginTran();
                try
                {
                    //合同信息
                    Biz_Contract_Plan plan = Api.Common.Helpers.ComHelper.Mapper <Biz_Contract_Plan, ItemPlanVM>(parm);

                    db.Updateable <Biz_Contract_Plan>().SetColumns(m => new Biz_Contract_Plan()
                    {
                        PlanStartDate = parm.PlanStartDate,
                        PlanEndDate   = parm.PlanEndDate,
                        PlanRemark    = parm.PlanRemark,
                        Remark        = parm.Remark,
                    }).Where(m => m.ID == parm.ID).ExecuteCommand();

                    //体系项目信息
                    List <Biz_ContractItem_Sub> subitemlist = parm.ContractItem_SubList;
                    foreach (var subitem in subitemlist)
                    {
                        //subitem.ContractPlanID = plan.ID;

                        db.Updateable <Biz_ContractItem_Sub>().SetColumns(m => new Biz_ContractItem_Sub()
                        {
                            ContractPlanID       = plan.ID,
                            MultiSiteAddDays     = subitem.MultiSiteAddDays,
                            AuditCombinDegree    = subitem.AuditCombinDegree,
                            DeletionScale        = subitem.DeletionScale,
                            PlanTotalDays        = subitem.PlanTotalDays,
                            OffSiteDays          = subitem.OffSiteDays,
                            FirstDays            = subitem.FirstDays,
                            SecondDays           = subitem.SecondDays,
                            MultiSitetTravelDays = subitem.MultiSitetTravelDays,
                            OtherAddDays         = subitem.OtherAddDays,
                            TrueFirstDays        = subitem.TrueFirstDays,
                            TrueSecondDays       = subitem.TrueSecondDays,
                        }).Where(m => m.ID == subitem.ID).ExecuteCommand();
                    }

                    //审核员信息
                    List <PlanAuditorVM> auditorlist_insert = parm.PlanAuditorList_insert; //插入
                    List <PlanAuditorVM> auditorlist_update = parm.PlanAuditorList_update; //更新
                    List <PlanAuditorVM> auditorlist_delete = parm.PlanAuditorList_delete; //删除

                    //删除信息
                    string[] auditorids = auditorlist_delete.Select(x => x.ID).ToArray();

                    db.Deleteable <Biz_Contract_PlanAuditor_Item>().Where(m => auditorids.Contains(m.PlanAuditorID)).ExecuteCommand(); //删除审核人项目
                    db.Deleteable <Biz_Contract_PlanAuditor>().Where(m => auditorids.Contains(m.ID)).ExecuteCommand();                 //删除审核人

                    //插入审核员信息
                    foreach (var auditorVM in auditorlist_insert)
                    {
                        Biz_Contract_PlanAuditor auditor = Api.Common.Helpers.ComHelper.Mapper <Biz_Contract_PlanAuditor, PlanAuditorVM>(auditorVM);
                        auditor = auditor.Adapt <Biz_Contract_PlanAuditor>().ToCreate(_tokenManager.GetSessionInfo());
                        auditor.ContractPlanID = parm.ID;
                        db.Insertable(auditor).AS("Biz_Contract_PlanAuditor").ExecuteCommand();

                        foreach (var auditoritem in auditorVM.PlanAuditItemList)
                        {
                            auditoritem.ID             = Guid.NewGuid().ToString();
                            auditoritem.PlanAuditorID  = auditor.ID;
                            auditoritem.ContractPlanID = plan.ID;

                            db.Insertable(auditoritem).AS("Biz_Contract_PlanAuditor_Item").ExecuteCommand();
                        }
                    }

                    //更新审核员信息
                    foreach (var auditorVM in auditorlist_update)
                    {
                        db.Updateable <Biz_Contract_PlanAuditor>().SetColumns(m => new Biz_Contract_PlanAuditor()
                        {
                            UserID = auditorVM.UserID,
                        }).Where(m => m.ID == auditorVM.ID).ExecuteCommand();

                        foreach (var auditoritem in auditorVM.PlanAuditItemList)
                        {
                            db.Updateable <Biz_Contract_PlanAuditor_Item>().SetColumns(m => new Biz_Contract_PlanAuditor_Item()
                            {
                                GroupIdentityID     = auditoritem.GroupIdentityID,
                                GroupIdentityName   = auditoritem.GroupIdentityName,
                                WitnessTypeID       = auditoritem.WitnessTypeID,
                                WitnessTypeName     = auditoritem.WitnessTypeName,
                                WitnessTypeUserName = auditoritem.WitnessTypeUserName,
                                GroupCode           = auditoritem.GroupCode,
                                ProfessionCode      = auditoritem.ProfessionCode,
                            }).Where(m => m.ID == auditoritem.ID).ExecuteCommand();
                        }
                    }
                    db.Ado.CommitTran();

                    return(toResponse(plan.ID));
                }
                catch (Exception ex)
                {
                    db.Ado.RollbackTran();
                    return(toResponse(StatusCodeType.Error, ex.Message));
                }
            }
        }