public IActionResult ContractEnd(ApproveContractSubmitDto param)
        {
            var userinfo     = _tokenManager.GetSessionInfo();
            var maincontract = _maincontractService.GetId(param.ID);

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

                    parameters.Add(new SugarParameter("ContractApproveTime", param.ContractApproveTime)); //合同审批日期
                    parameters.Add(new SugarParameter("ApproveRemark", param.ApproveRemark));             //批准备注

                    Step.Submit(db, maincontract, "Biz_MainContract", "ID", "status", "105", parameters, UpdateBizEntityAfterSubmitted, "合同终止");
                    Core.DbContext.CommitTran();
                    return(toResponse("提交成功"));
                }
                catch (Exception ex)
                {
                    Core.DbContext.RollbackTran();
                    return(toResponse(StatusCodeType.Error, ex.Message));
                }
            }
        }
        public IActionResult ApprovePass(ApproveContractSubmitDto param)
        {
            var userinfo     = _tokenManager.GetSessionInfo();
            var maincontract = _maincontractService.GetId(param.ID);

            if (maincontract.status != 10020)
            {
                return(toResponse(StatusCodeType.Error, "当前合同不在当前状态,请核对"));
            }
            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));

                    parameters.Add(new SugarParameter("ContractApproveTime", param.ContractApproveTime)); //合同审批日期
                    parameters.Add(new SugarParameter("ApproveRemark", param.ApproveRemark));             //批准备注

                    Step.Submit(db, maincontract, "Biz_MainContract", "ID", "status", "103", parameters, UpdateBizEntityAfterSubmitted, "审批通过");

                    #region 生成子项目信息

                    List <Biz_ContractItem> itemList = _contractitemService.GetWhere(m => m.MainContractID == param.ID && m.deleted == 0);

                    foreach (var Item in itemList)
                    {
                        var AuditType = db.Queryable <Cfg_AuditType>().First(m => m.ID == Item.AuditTypeID);
                        if ((bool)AuditType.NeedFirstStage)
                        {
                            ContractItemSubCreateDto itemsub1 = new ContractItemSubCreateDto();
                            itemsub1.MainContractID          = Item.MainContractID;
                            itemsub1.ContractItemID          = Item.ID;
                            itemsub1.ContractItemSubType     = 0;         //一阶段
                            itemsub1.ContractItemSubTypeCode = string.Format("一阶段({0})", (Item.IsSiteWork != null && (bool)Item.IsSiteWork) ? "现" : "非");
                            itemsub1.CNAS              = Item.CNAS;       //认可标识
                            itemsub1.AuditScope        = Item.AuditScope; //审核范围
                            itemsub1.CertificatesIssue = true;            //是否发证
                            itemsub1.NotificationIssue = false;           //是否发保持通知书

                            ContractItemSubCreateDto itemsub2 = new ContractItemSubCreateDto();
                            itemsub2.MainContractID          = Item.MainContractID;
                            itemsub2.ContractItemID          = Item.ID;
                            itemsub2.ContractItemSubType     = 1;         //二阶段
                            itemsub2.ContractItemSubTypeCode = "二阶段";
                            itemsub2.CNAS              = Item.CNAS;       //认可标识
                            itemsub2.AuditScope        = Item.AuditScope; //审核范围
                            itemsub2.CertificatesIssue = true;            //是否发证
                            itemsub2.NotificationIssue = false;           //是否发保持通知书

                            db.Insertable(itemsub1).AS("Biz_ContractItem_Sub").ExecuteCommand();
                            db.Insertable(itemsub2).AS("Biz_ContractItem_Sub").ExecuteCommand();
                        }
                        else
                        {
                            ContractItemSubCreateDto itemsub = new ContractItemSubCreateDto();
                            itemsub.MainContractID          = Item.MainContractID;
                            itemsub.ContractItemID          = Item.ID;
                            itemsub.ContractItemSubType     = 3;
                            itemsub.ContractItemSubTypeCode = AuditType.AuditTypeName;
                            itemsub.CNAS              = Item.CNAS;       //认可标识
                            itemsub.AuditScope        = Item.AuditScope; //审核范围
                            itemsub.CertificatesIssue = true;            //是否发证
                            itemsub.NotificationIssue = false;           //是否发保持通知书

                            db.Insertable(itemsub).AS("Biz_ContractItem_Sub").ExecuteCommand();
                        }
                    }
                    #endregion
                    Core.DbContext.CommitTran();
                    return(toResponse("提交成功"));
                }
                catch (Exception ex)
                {
                    Core.DbContext.RollbackTran();
                    return(toResponse(StatusCodeType.Error, ex.Message));
                }
            }
        }