コード例 #1
0
ファイル: SaleOrder.cs プロジェクト: fightx/U8
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        /// <param name="id">主任务ID</param>
        /// <returns></returns>
        public override Model.Synergismlog GetLogModel(string id)
        {
            Synergismlog dt = new Synergismlog();

            dt.TaskType = tasktype;
            return(dt);
        }
コード例 #2
0
        /// <summary>
        /// 入口函数
        /// </summary>
        /// <param name="vouchtype"></param>
        /// <param name="dsHead"></param>
        /// <param name="dsBody"></param>
        public void Run(string vouchtype, DataSet dsHead, DataSet dsBody)
        {
            Model.Synergismlog log = new Synergismlog();
            log.OP       = (APIOp)ClassFactory.GetBaseOp(vouchtype, tasktype);
            log.TaskType = tasktype;

            DealResult dr = new DealResult();

            dr.ResultNum = Constant.ResultNum_NoError;

            BLL.TaskLog.ITaskLogDetail logdtbll = ClassFactory.GetITaskLogDetailBLL(log.TaskType);
            BLL.TaskLog.ITaskLogMain   logbll   = ClassFactory.GetITaskLogMainBLL(log.TaskType);

            Model.Synergismlogdt fdt = logdtbll.GetFrist(log, log.OP);

            //把记录设为处理中
            log.Cstatus = Constant.SynerginsLog_Cstatus_Dealing;
            log.Endtime = DateTime.Now;
            logbll.Update(log, log.OP);

            //预置为完成
            log.Cstatus = Constant.SynerginsLog_Cstatus_Complete;

            //获取下一节点(节点数可能大于1)
            List <Model.Synergismlogdt> listnext = logdtbll.GetNext(fdt, log.OP);

            //协同操作
            dr = MakeLogDT(vouchtype, dsHead, dsBody, log, dr, logdtbll, logbll, fdt, listnext);
        }
コード例 #3
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        /// <param name="autoid"> ID</param>
        /// <returns></returns>
        public override Model.Synergismlog GetLogModel(string autoid)
        {
            Model.Synergismlog tmpd = new Synergismlog();
            tmpd.Id           = autoid;
            tmpd.Cvouchertype = cardNo;
            tmpd.Cstatus      = U8.Interface.Bus.ApiService.DAL.Constant.SynerginsLog_Cstatus_NoDeal;
            DataSet ds = DbHelperSQL.Query("SELECT t." + voucherNoColumnName + ",t.id,t." + opertype + " FROM " + headtable + " t with(nolock)  WHERE t.id = '" + autoid + "' ");

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                tmpd.Cvoucherno = ds.Tables[0].Rows[i][voucherNoColumnName].ToString();
                tmpd.Id         = ds.Tables[0].Rows[i]["id"].ToString();
            }
            return(tmpd);
        }
コード例 #4
0
ファイル: PuStoreIn.cs プロジェクト: sky-tc/U8
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        /// <param name="autoid"> ID</param>
        /// <returns></returns>
        public override Model.Synergismlog GetLogModel(string autoid)
        {
            Model.Synergismlog tmpd = new Synergismlog();
            tmpd.Id           = autoid;
            tmpd.Cvouchertype = cardNo;
            tmpd.Cstatus      = U8.Interface.Bus.ApiService.DAL.Constant.SynerginsLog_Cstatus_NoDeal;
            DataSet ds = DbHelperSQL.Query("SELECT t.cRdCode,t.id,t.opertype FROM " + headtable + " t with(nolock)  WHERE t.id = '" + autoid + "' ");

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                tmpd.Cvoucherno = ds.Tables[0].Rows[i]["cRdCode"].ToString();
                tmpd.Id         = ds.Tables[0].Rows[i]["id"].ToString(); //int.Parse(ds.Tables[0].Rows[i]["id"].ToString());
                //tmpd.Cdealmothed = int.Parse(ds.Tables[0].Rows[i]["opertype"].ToString()) + 1; // 0(自动生单/自动审核) 1增 2修改 3删
            }
            return(tmpd);
        }
コード例 #5
0
ファイル: OperUtility.cs プロジェクト: sky-tc/U8
        /// <summary>
        /// 生单\审核 主函数
        /// </summary>
        /// <param name="log">任务主表信息</param>
        /// <param name="dr"></param>
        /// <param name="logdtbll">任务子表信息</param>
        /// <param name="logbll">任务主表BLL</param>
        /// <param name="fdt">首节点信息</param>
        /// <param name="listnext">当前任务节点信息,档案同步时有可能存在多个子结点</param>
        /// <returns></returns>
        private DealResult MakeLogDT(Synergismlog log, DealResult dr, BLL.TaskLogFactory.ITaskLogDetail logdtbll, BLL.TaskLogFactory.ITaskLogMain logbll, Model.Synergismlogdt fdt, List <Model.Synergismlogdt> listnext)
        {
            for (int i = 0; i < listnext.Count; i++)
            {
                System.Diagnostics.Trace.WriteLine("listnext.Count:  " + listnext.Count);

                Synergismlogdt       preDt;
                Model.Synergismlogdt nextdt = listnext[i];

                ////处理数据开始
                try
                {
                    System.Diagnostics.Trace.WriteLine("  处理数据开始  ");

                    BaseData bd = ClassFactory.GetBaseData(nextdt);
                    bd.Fristsynergismlogdt = fdt;
                    bd.Synergismlogdt      = nextdt;

                    BaseOp op = ClassFactory.GetBaseOp(nextdt);
                    nextdt.OP = op;
                    preDt     = logdtbll.GetPrevious(nextdt, nextdt.OP);
                    if (op == null)
                    {
                        throw new Exception("插件安装错误");
                    }

                    if (nextdt.Cdealmothed == 3)  //删除
                    {
                        TaskOperator t = new TaskOperator();
                        return(t.DeleteVouch(0, nextdt));
                    }
                    else if (nextdt.Cdealmothed == 2)  //修改
                    {
                    }



                    System.Diagnostics.Trace.WriteLine("  before MakeData  ");
                    dr = op.MakeData(nextdt, bd);
                    System.Diagnostics.Trace.WriteLine("  after MakeData  ");


                    string ccode;
                    if (nextdt.Cstatus != DAL.Constant.SynergisnLogDT_Cstatus_NoAudit)
                    {
                        if (nextdt.Cdealmothed == 2)
                        {
                            dr = op.MakeUpdate(bd);
                            return(dr);
                        }

                        System.Diagnostics.Trace.WriteLine("  before MakeVouch  ");
                        dr = op.MakeVouch(bd);  //生单、档案协同
                        System.Diagnostics.Trace.WriteLine("  after MakeVouch  ");

                        if (dr.ResultNum == DAL.Constant.ResultNum_NormalError)
                        {
                            throw new Exception("API错误:" + dr.ResultMsg);
                        }

                        ccode = op.GetCodeorID(dr.VouchIdRet, bd, "code");

                        nextdt.Cstatus    = DAL.Constant.SynergisnLogDT_Cstatus_NoAudit;
                        nextdt.Dmaketime  = DateTime.Now;
                        nextdt.Cvoucherno = ccode;
                        logdtbll.Update(nextdt, nextdt.OP);
                    }
                    else
                    {
                        ccode = nextdt.Cvoucherno;
                    }

                    if (string.IsNullOrEmpty(ccode))
                    {
                        //throw new Exception("获取上游单据失败");

                        if (nextdt.Cstatus != DAL.Constant.SynergisnLogDT_Cstatus_NoAudit)
                        {
                            nextdt.Cstatus = DAL.Constant.SynerginsLog_Cstatus_NoDeal;
                        }
                        nextdt.Dmaketime  = DateTime.Now;
                        nextdt.Cvoucherno = ccode;
                        logdtbll.Update(nextdt, nextdt.OP);
                        break;
                    }

                    if (nextdt.Isaudit == DAL.Constant.SynergisnLogDT_Isaudit_True)
                    {
                        nextdt.Cstatus = DAL.Constant.SynergisnLogDT_Cstatus_Complete;
                        dr             = op.MakeAudit(bd, nextdt); //审核单据
                    }
                    else
                    {
                        nextdt.Cstatus = DAL.Constant.SynergisnLogDT_Cstatus_NoAudit;
                    }
                    //nextdt.Cstatus = Constant.SynergisnLogDT_Cstatus_Complete;
                    nextdt.Dmaketime  = DateTime.Now;
                    nextdt.Cvoucherno = ccode;
                    logdtbll.Update(nextdt, nextdt.OP);

                    //log.Cstatus = DAL.Common.SetLogStatus(log.Cstatus, Constant.SynerginsLog_Cstatus_Complete);
                    if (nextdt.Isaudit == DAL.Constant.SynergisnLogDT_Isaudit_True)
                    {
                        log.Cstatus = DAL.Common.SetLogStatus(log.Cstatus, DAL.Constant.SynerginsLog_Cstatus_Complete);
                    }
                    else
                    {
                        log.Cstatus = DAL.Common.SetLogStatus(log.Cstatus, DAL.Constant.SynerginsLog_Cstatus_Wait);
                        break;
                    }
                    List <Model.Synergismlogdt> listnl = logdtbll.GetNext(nextdt, nextdt.OP);
                    MakeLogDT(log, dr, logdtbll, logbll, fdt, listnl);
                }
                catch (Exception ex)
                {
                    dr.ResultNum = DAL.Constant.ResultNum_NormalError;
                    dr.ResultMsg = ex.Message;
                    Log.WriteWinLog(ex.ToString());
                    nextdt.Cstatus    = DAL.Constant.SynergisnLogDT_Cstatus_Error;
                    nextdt.Cerrordesc = ex.Message;
                    nextdt.Errortimes++;
                    nextdt.Dmaketime = DateTime.Now;
                    logdtbll.Update(nextdt, nextdt.OP);
                    preDt = logdtbll.GetPrevious(nextdt, nextdt.OP);

                    log.Cstatus = DAL.Common.SetLogStatus(log.Cstatus, DAL.Constant.SynerginsLog_Cstatus_Error);
                }
            }

            return(dr);
        }