public IActionResult GetRegisterDetail(string id = null)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(toResponse(StatusCodeType.Error, "Id 不能为空"));
            }
            if (!_precontractService.Any(m => m.ID == id && m.Status == 0))
            {
                return(toResponse(StatusCodeType.Error, "当前合同信息不存在,请核对"));
            }
            var oacontrcat = _precontractService.GetId(id);

            if (oacontrcat.ID != null)
            {
                MainContractCreateDto maincontract = new MainContractCreateDto();
                maincontract.PreContractID = oacontrcat.ID;
                maincontract.CustomerID    = oacontrcat.khid;
                maincontract.ContractNo    = oacontrcat.ContractNo;
                maincontract.ApplyDate     = DateTime.Today;

                maincontract.ContractCustomerInfo = _customerService.GetId(oacontrcat.khid);
                maincontract.ContractItemList     = new List <ContractItemVM>(); //合同项目结构
                maincontract.ContractfcsList      = new List <FcsVM>();          //分场所信息
                maincontract.ContractFileList     = new List <FileVM>();         //附件信息

                return(toResponse(maincontract));
            }
            else
            {
                return(toResponse(StatusCodeType.Error, "当前合同信息不存在,请核对"));
            }
        }
Example #2
0
        public IActionResult Apply([FromBody] MainContractCreateDto parm)
        {
            var userinfo = _tokenManager.GetSessionInfo();

            if (!_precontractService.Any(m => m.ID == parm.PreContractID && m.Status == 0))
            {
                return(toResponse(StatusCodeType.Error, $"不存在当前未登记OA合同,请核对!"));
            }
            if (_maincontractService.Any(m => m.PreContractID == parm.PreContractID && m.deleted == 0))
            {
                using (SqlSugarClient db = Core.DbContext.Current)
                {
                    //更新状态为已登记
                    var i = db.Updateable <Biz_PreContract>()
                            .SetColumns(it => new Biz_PreContract()
                    {
                        Status = 1, RegisterTime = DateTime.Now, RegisterID = userinfo.ID, RegisterName = userinfo.UserName
                    })
                            .Where(it => it.ID == parm.PreContractID).ExecuteCommand();
                }
                return(toResponse(StatusCodeType.Error, $"当前合同已经受理,不能重复!"));
            }


            using (SqlSugarClient db = Core.DbContext.CurrentDB)
            {
                Core.DbContext.BeginTran();
                try
                {
                    //从 Dto 映射到 实体
                    var options = parm.Adapt <Biz_MainContract>().ToCreate(_tokenManager.GetSessionInfo());
                    options.status = 10000;
                    if (db.Insertable <Biz_MainContract>(options).ExecuteCommand() == 0)
                    {
                        return(toResponse(StatusCodeType.Error, "受理失败,不能重复!"));
                    }
                    //添加合同关联项目信息
                    List <ContractItemVM> ItemList = parm.ContractItemList_insert;
                    if (ItemList != null)
                    {
                        foreach (var Item in ItemList)
                        {
                            Biz_ContractItem contractitem = new Biz_ContractItem();
                            contractitem.ID               = Guid.NewGuid().ToString();
                            contractitem.MainContractID   = options.ID;
                            contractitem.ItemStandardID   = Item.ItemStandardID;   //标准ID
                            contractitem.ItemStandardCode = Item.ItemStandardCode; //标准code
                            contractitem.ItemName         = Item.ItemName;         //标准名称
                            contractitem.AuditTypeID      = Item.AuditTypeID;      //审核类型
                            contractitem.AuditTypeName    = Item.AuditTypeName;    //审核类型名称
                            contractitem.PropleNum        = Item.PropleNum;        //体系人数
                            contractitem.ApplyRange       = Item.ApplyRange;       //申请范围
                            contractitem.ApplyRangeEN     = Item.ApplyRangeEN;     //申请范围英文
                            contractitem.OrganizationIn   = Item.OrganizationIn;   //是否机构转入
                            contractitem.ReevaluateNum    = Item.ReevaluateNum;
                            contractitem.CreateTime       = DateTime.Now;
                            contractitem.CreateID         = userinfo.ID;
                            contractitem.CreateName       = userinfo.UserName;
                            contractitem.deleted          = 0;

                            var standard = db.Queryable <Abi_SysStandard>().First(m => m.AutoID == int.Parse(Item.ItemStandardID));
                            contractitem.ContractItemNo = options.ContractNo + standard.SysStandardNo;

                            db.Insertable <Biz_ContractItem>(contractitem).ExecuteCommand();
                        }
                    }
                    //添加合同多场所信息
                    List <FcsVM> FcsList = parm.ContractfcsList_insert;
                    if (FcsList != null)
                    {
                        foreach (var fcs in FcsList)
                        {
                            Biz_ContractFcs contractfcs = new Biz_ContractFcs();
                            contractfcs.ID             = Guid.NewGuid().ToString();
                            contractfcs.fcsID          = fcs.fcsID;
                            contractfcs.MainContractID = options.ID;
                            contractfcs.CustomerID     = options.CustomerID;
                            contractfcs.CreateTime     = DateTime.Now;
                            contractfcs.CreateID       = userinfo.ID;
                            contractfcs.CreateName     = userinfo.UserName;

                            db.Insertable <Biz_ContractFcs>(contractfcs).ExecuteCommand();
                        }
                    }
                    //评审附件
                    List <FileVM> FileList = parm.ContractFileList_insert;
                    if (FileList != null)
                    {
                        foreach (var file in FileList)
                        {
                            Biz_ContractFile contractfile = new Biz_ContractFile();
                            contractfile.ID             = Guid.NewGuid().ToString();
                            contractfile.FileID         = file.FileID;
                            contractfile.FileName       = file.FileName;
                            contractfile.Name           = file.FileName;
                            contractfile.MainContractID = options.ID;
                            contractfile.CustomerID     = options.CustomerID;
                            contractfile.CreateTime     = DateTime.Now;
                            contractfile.CreateID       = userinfo.ID;
                            contractfile.CreateName     = userinfo.UserName;

                            db.Insertable <Biz_ContractFile>(contractfile).ExecuteCommand();
                        }
                    }
                    //更新状态为已登记
                    var i = db.Updateable <Biz_PreContract>()
                            .SetColumns(it => new Biz_PreContract()
                    {
                        Status = 1, RegisterTime = DateTime.Now, RegisterID = userinfo.ID, RegisterName = userinfo.UserName
                    })
                            .Where(it => it.ID == options.PreContractID).ExecuteCommand();

                    Core.DbContext.CommitTran();

                    return(toResponse(options.ID));
                }
                catch (Exception ex)
                {
                    Core.DbContext.RollbackTran();
                    return(toResponse(StatusCodeType.Error, ex.Message));
                }
            }
        }