Example #1
0
        public override void ProcessMessage()
        {
            var bqdm = InObject.BINGQUDM;

            #region sql查询
            var listcwxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00004, bqdm));

            if (listcwxx.Count == 0)
            {
                throw new Exception(string.Format("无床位信息!"));
            }
            else
            {
                OutObject = new ZD_CHUANGWEIXX_OUT();

                foreach (var cwxx in listcwxx)
                {
                    var chuangweilb = new CHUANGWEIXX();
                    chuangweilb.CHUANGWEIH  = cwxx.Get("CHUANGWEIH").ToString();
                    chuangweilb.CHUANGWEISM = cwxx.Get("CHUANGWEISM");
                    OutObject.CHUANGWEIMX.Add(chuangweilb);
                }
            }
            #endregion
        }
Example #2
0
        public override void ProcessMessage()
        {
            if (string.IsNullOrEmpty(InObject.LEIXING))
            {
                throw new Exception("日志类型不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.CONTEXT))
            {
                throw new Exception("日志内容不能为空!");
            }
            string RiZId = "";
            var    maxid = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.HIS00026, " seq_GY_RIZHI_ZZJ.nextval "));

            if (maxid == null)
            {
                throw new Exception(string.Format("获取日志ID失败!"));
            }
            else
            {
                RiZId = maxid.Items["MAXID"].ToString();
            }
            string StrTct = InObject.CONTEXT.Replace("'", "").Trim();

            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00027, RiZId, InObject.JIUZHENKH, StrTct, InObject.BASEINFO.CAOZUOYDM,
                                                        InObject.IP, InObject.LEIXING, InObject.ERRBZ));
            OutObject = new CAOZUORIJL_OUT();
        }
Example #3
0
        public override void ProcessMessage()
        {
            var ZHIGONGLX = InObject.ZHIGONGLX;
            var ZHIGONGGH = InObject.ZHIGONGGH;
            var ZHIGONGXM = InObject.ZHIGONGXM;

            #region 参数验证
            //职工类型
            if (ZHIGONGLX == null || ZHIGONGLX == "")
            {
                throw new Exception(string.Format("职工类型不能为空!"));
            }
            else if (ZHIGONGLX != "1" && ZHIGONGLX != "2" && ZHIGONGLX != "0")
            {
                throw new Exception(string.Format("职工类型不正确,必须是:0.全部,1.医生,2.护士!"));
            }
            #endregion


            #region sql查询
            if (ZHIGONGLX != "0")
            {
                ZHIGONGLX = string.Format(" and ZGLB='{0}' ", ZHIGONGLX);
            }
            else
            {
                ZHIGONGLX = "";
            }
            if (!string.IsNullOrEmpty(ZHIGONGGH))
            {
                ZHIGONGGH = string.Format(" and ZGGH='{0}' ", ZHIGONGGH);
            }
            if (!string.IsNullOrEmpty(ZHIGONGXM))
            {
                ZHIGONGXM = string.Format(" and ZGXM='{0}' ", ZHIGONGXM);
            }

            var listpbxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00001, ZHIGONGLX, ZHIGONGGH, ZHIGONGXM));

            if (listpbxx.Count == 0)
            {
                throw new Exception(string.Format("无职工信息!"));
            }
            else
            {
                OutObject = new ZD_ZHIGONGXX_OUT();

                foreach (var zgxx in listpbxx)
                {
                    var zhigonglb = new ZHIGONGXX();
                    zhigonglb.ZHIGONGGH = zgxx.Get("ZGGH"); //工号
                    zhigonglb.ZHIGONGXM = zgxx.Get("ZGXM"); //姓名
                    zhigonglb.ZHIGONGZC = zgxx.Get("ZGZC"); //职称
                    zhigonglb.ZHIGONGJS = zgxx.Get("ZGJS"); //介绍
                    zhigonglb.ZHIGONGTC = zgxx.Get("ZGTC"); //特长
                    OutObject.ZHIGONGLB.Add(zhigonglb);
                }
            }
            #endregion
        }
Example #4
0
        public static void sendJCFL()
        {
            var JCFLtable = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00009));

            if (JCFLtable == null || JCFLtable.Count == 0)
            {
            }
            else
            {
                var xmlin = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
                xmlin += "<request action=\"sendCheckClassify\" client=\"市二:192.168.1.10\">";
                xmlin += "<head>";
                xmlin += "<patient>";
                xmlin += "<mpiId></mpiId>";
                xmlin += "</patient>";
                xmlin += "</head>";
                xmlin += "<body>";

                foreach (var mxxx in JCFLtable)
                {
                    xmlin += "<item>";
                    xmlin += "<classifyCode>" + mxxx.Get("id") + "</classifyCode>";
                    xmlin += "<classifyName>" + mxxx.Get("ylflmc") + "</classifyName>";
                    xmlin += "<departmentCode>" + mxxx.Get("zxkdm") + "</departmentCode>";
                    xmlin += "<inUseFlag>" + mxxx.Get("del_flag") + "</inUseFlag>";
                    xmlin += "<telephone>" + mxxx.Get("lxdh") + "</telephone>";
                    xmlin += "<departmentLocation>" + mxxx.Get("ksdz") + "</departmentLocation>";
                    xmlin += "<hospitalCode>47011662233010511A1001</hospitalCode>";
                    xmlin += "</item>";
                }
                xmlin += "</body>";
                xmlin += "</request>";
                var rtnstr = sendJK(xmlin);
            }
        }
Example #5
0
        public static void sendJCBW()
        {
            var JCBWtable = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00012));

            if (JCBWtable == null || JCBWtable.Count == 0)
            {
            }
            else
            {
                var xmlin = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
                xmlin += "<request action=\"sendCheckPart\" client=\"市二:192.168.1.10\">";
                xmlin += "<head>";
                xmlin += "<patient>";
                xmlin += "<mpiId></mpiId>";
                xmlin += "</patient>";
                xmlin += "</head>";
                xmlin += "<body>";

                foreach (var mxxx in JCBWtable)
                {
                    xmlin += "<item>";
                    xmlin += "<partCode>" + mxxx.Get("id") + "</partCode>";                 //检查部位代码
                    xmlin += "<partName>" + mxxx.Get("bwmc") + "</partName>";               //检查部位名称
                    xmlin += "<inUseFlag>" + mxxx.Get("del_flag") + "</inUseFlag>";
                    xmlin += "<classifyCode>" + mxxx.Get("flbm") + "</classifyCode>";       //检查类型代码
                    xmlin += "<departmentCode>" + mxxx.Get("zxksdm") + "</departmentCode>"; //执行科室代码
                    xmlin += "<hospitalCode>47011662233010511A1001</hospitalCode>";
                    xmlin += "</item>";
                }
                xmlin += "</body>";
                xmlin += "</request>";
                var rtnstr = sendJK(xmlin);
            }
        }
Example #6
0
        public static void sendJCFX()
        {
            var JCFXtable = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00011));

            if (JCFXtable == null || JCFXtable.Count == 0)
            {
            }
            else
            {
                var xmlin = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
                xmlin += "<request action=\"sendCheckDirection\" client=\"市二:192.168.1.10\">";
                xmlin += "<head>";
                xmlin += "<patient>";
                xmlin += "<mpiId></mpiId>";
                xmlin += "</patient>";
                xmlin += "</head>";
                xmlin += "<body>";

                foreach (var mxxx in JCFXtable)
                {
                    xmlin += "<item>";
                    xmlin += "<directionCode>" + mxxx.Get("id") + "</directionCode>";
                    xmlin += "<directionParentCode>" + mxxx.Get("IDF") + "</directionParentCode>";
                    xmlin += "<directionName>" + mxxx.Get("fxmc") + "</directionName>";
                    xmlin += "<inUseFlag>" + mxxx.Get("del_flag") + "</inUseFlag>";
                    xmlin += "<frequency>" + mxxx.Get("xmcs") + "</frequency>";
                    xmlin += "<hospitalCode>47011662233010511A1001</hospitalCode>";
                    xmlin += "</item>";
                }
                xmlin += "</body>";
                xmlin += "</request>";
                var rtnstr = sendJK(xmlin);
            }
        }
Example #7
0
        public int RunService(string TradeType, string TradeMsg, string YYDM, ref string TradeMsgOut)
        {
            ILog   log  = log4net.LogManager.GetLogger("XmlLog");
            string guid = Guid.NewGuid().ToString("N").ToUpper();

            log.InfoFormat("[{2}][{0}].IN  {1}", TradeType, LogUnity.I.ShowXml(TradeMsg), guid);
            //var asm = Assembly.LoadFile(@"F:\1.服务平台\3.HIS4\服务平台\HisWCF\HisWCFSVR\bin\HIS4.Schemas.dll");
            //Type tp = asm.GetType("HIS4.Schemas.ZHIFUBAOTF_IN");
            //dynamic obj = Activator.CreateInstance(tp);



            var           listpbxx      = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00002));
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(HIS4.Schemas.ZHIFUBAOTF_IN));
            Stream        stream        = new MemoryStream(ASCIIEncoding.UTF8.GetBytes(TradeMsg));

            HIS4.Schemas.ZHIFUBAOTF_IN p = xmlSerializer.Deserialize(stream) as HIS4.Schemas.ZHIFUBAOTF_IN;



            YuHangYY.HisApplayClient yhyy = new YuHangYY.HisApplayClient();
            int i = yhyy.RunService(TradeType, TradeMsg, ref TradeMsgOut);

            log.InfoFormat("[{2}][{0}].OUT {1}", TradeType, TradeMsgOut, guid);
            return(i);
        }
Example #8
0
        public static void sendRYSJ()
        {
            var Brxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00001, " and brzt in (3,4) and ryfszt = 0 "));

            if (Brxx == null || Brxx.Count == 0)
            {
            }
            else
            {
                foreach (var mxxx in Brxx)
                {
                    var str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                              "<request action= \"sendInHospitalFlag\" client=\"市二:192.168.1.10\" >" +
                              "<head><patient><mpiId></mpiId>" +
                              "<personName>" + mxxx.Get("brxm") + "</personName>" +
                              "<sexCode>" + mxxx.Get("brxb") + "</sexCode>" +
                              "<birthday>" + mxxx.Get("brcsrq") + "</birthday>" +
                              "<idCard>" + mxxx.Get("sfzh") + "</idCard>" +
                              "<idType>01</idType>" +
                              "<cardNo>" + mxxx.Get("jzkh") + "</cardNo>" +
                              "<cardType>" + mxxx.Get("jzklx") + "</cardType>" +
                              "</patient></head>" +
                              "<body>" +
                              "<hospitalCode>47011662233010511A1001</hospitalCode>" +
                              "<wardAreaCode>" + mxxx.Get("bqdm") + "</wardAreaCode>" +
                              "<wardArea>" + mxxx.Get("bqmc") + "</wardArea>" +
                              "<departmentCode>" + mxxx.Get("ksdm") + "</departmentCode>" +
                              "<department>" + mxxx.Get("ksmc") + "</department>" +
                              "<bedNo>" + mxxx.Get("curr_bed") + "</bedNo>" +
                              "<inHospitalTime>" + mxxx.Get("admiss_date") + "</inHospitalTime>" +
                              "<inHospitalReason></inHospitalReason>" +
                              "<doctorName>" + mxxx.Get("zzys") + "</doctorName>" +
                              "<doctorPhone>" + mxxx.Get("zzyslxdh") + "</doctorPhone>" +
                              "<reserveNo>" + mxxx.Get("zzsqdh") + "</reserveNo>" +
                              "<submitor>自动转发</submitor>" +
                              "<submitTime>" + System.DateTime.Now.ToString() + "</submitTime>" +
                              "<submitAgency>杭州市二医院</submitAgency></body></request>";

                    var rtnstr = sendJK(str);
                    var xmldom = new XmlDocument();
                    var xmlOut = "";
                    xmlOut = rtnstr;
                    xmldom.LoadXml(xmlOut);
                    var errno = xmldom.GetElementsByTagName("code").Item(0).FirstChild.InnerText;
                    if (errno == "200")
                    {
                        var tran = DBVisitor.Connection.BeginTransaction();
                        try
                        {
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.AUTO00007, mxxx.Get("zzsqdh")), tran);
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                        }
                    }
                }
            }
        }
Example #9
0
        public override void ProcessMessage()
        {
            #region sql查询
            if (InObject.XIAZAILX == "1")
            {
                var listjcxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00010));

                if (listjcxx.Count == 0)
                {
                    throw new Exception(string.Format("无检查明细信息!"));
                }
                else
                {
                    OutObject = new ZD_JIANCHAJYMX_OUT();

                    foreach (var jcxx in listjcxx)
                    {
                        var jianchalb = new JIANCHAJYXX();
                        jianchalb.MOBANDM     = jcxx.Get("MBLXDM");
                        jianchalb.JIANCHAJYDM = jcxx.Get("LBXH");
                        jianchalb.JIANCHAJYMC = jcxx.Get("LBMC");
                        jianchalb.FULEIXH     = jcxx.Get("FLXH");
                        jianchalb.MOJIEPB     = jcxx.Get("SFMJ");
                        jianchalb.ZHIXINGKS   = jcxx.Get("JCKS");
                        jianchalb.BEIZHU      = jcxx.Get("JCYQ");
                        OutObject.JIANCHAJYMX.Add(jianchalb);
                    }
                }
            }
            else
            {
                var listjyxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00012));

                if (listjyxx.Count == 0)
                {
                    throw new Exception(string.Format("无检验明细信息!"));
                }
                else
                {
                    OutObject = new ZD_JIANCHAJYMX_OUT();

                    foreach (var jyxx in listjyxx)
                    {
                        var jianyanlb = new JIANCHAJYXX();
                        jianyanlb.MOBANDM     = jyxx.Get("MBLXDM");
                        jianyanlb.JIANCHAJYDM = jyxx.Get("LBXH");
                        jianyanlb.JIANCHAJYMC = jyxx.Get("LBMC");
                        jianyanlb.FULEIXH     = "";
                        jianyanlb.MOJIEPB     = "0";
                        jianyanlb.ZHIXINGKS   = "";
                        jianyanlb.BEIZHU      = jyxx.Get("YLXH");
                        OutObject.JIANCHAJYMX.Add(jianyanlb);
                    }
                }
            }
            #endregion
        }
Example #10
0
        public static void sendCFTZ()
        {
            var Brxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00001, " and cftz in = 1 and cftzfszt = 0 "));

            if (Brxx == null || Brxx.Count == 0)
            {
            }
            else
            {
                foreach (var mxxx in Brxx)
                {
                    var str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                              "<request action= \"sendInhospitalVisitNotice\" client=\"市二:192.168.1.10\" >" +
                              "<head><patient><mpiId></mpiId>" +
                              "<personName>" + mxxx.Get("brxm") + "</personName>" +
                              "<sexCode>" + mxxx.Get("brxb") + "</sexCode>" +
                              "<birthday>" + mxxx.Get("brcsrq") + "</birthday>" +
                              "<idCard>" + mxxx.Get("sfzh") + "</idCard>" +
                              "<idType>01</idType>" +
                              "<cardNo>" + mxxx.Get("jzkh") + "</cardNo>" +
                              "<cardType>" + mxxx.Get("jzklx") + "</cardType>" +
                              "</patient></head>" +
                              "<body>" +
                              "<reserveNo>" + mxxx.Get("zzsqdh") + "</reserveNo>" +
                              "<visitDate>" + mxxx.Get("ywlx") + "</visitDate>" +
                              "<submitor>自动转发</submitor>" +
                              "<submitTime>" + System.DateTime.Now.ToString() + "</submitTime>" +
                              "<submitAgency>杭州市二医院</submitAgency></body></request>";

                    var rtnstr = sendJK(str);
                    var xmldom = new XmlDocument();
                    var xmlOut = "";
                    xmlOut = rtnstr;
                    xmldom.LoadXml(xmlOut);
                    var errno = xmldom.GetElementsByTagName("code").Item(0).FirstChild.InnerText;
                    if (errno == "200")
                    {
                        var tran = DBVisitor.Connection.BeginTransaction();
                        try
                        {
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.AUTO00007, mxxx.Get("zzsqdh")), tran);
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                        }
                    }
                }
            }
        }
Example #11
0
        public override void ProcessMessage()
        {
            if (string.IsNullOrEmpty(InObject.ZHENGJIANHM))
            {
                throw new Exception("证件号码不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.XINGMING))
            {
                throw new Exception("姓名不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.BASEINFO.FENYUANDM))
            {
                throw new Exception("分院代码不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.JIUZHENKLX))
            {
                throw new Exception("就诊卡类型不能为空");
            }
            if (string.IsNullOrEmpty(InObject.JIUZHENKH))
            {
                throw new Exception("就诊卡号不能为空");
            }
            //判断是否存在传入身份证号的病人信息
            string fydmwhere = "";

            if (InObject.JIUZHENKLX != "2")
            { //如果是社保卡 则不增加医院条件 社保卡 全区都可以用
                fydmwhere = string.Format(" and  FENYUANDM='{0}'", InObject.BASEINFO.FENYUANDM);
            }
            InObject.JIUZHENKH = System.Convert.ToString(InObject.JIUZHENKH.ToUpper()).PadLeft(10, '0');
            var existInfo = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.HIS00004, InObject.ZHENGJIANHM.ToLower(), InObject.JIUZHENKH, InObject.JIUZHENKLX, fydmwhere));

            //if (InObject.JIUZHENKLX == "2" && InObject.BASEINFO.FENYUANDM == "10006" && existInfo == null)
            //{
            //    if (InObject.JIUZHENKH.Length == 10)
            //    {
            //        existInfo = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.HIS00004, InObject.ZHENGJIANHM.ToLower(), InObject.JIUZHENKH.Substring(1, 9), InObject.JIUZHENKLX, fydmwhere));
            //    }
            //}

            if (existInfo == null || existInfo.Items["ZUOFEIPB"].ToString() == "1")
            {
                throw new Exception("查询不到身份证号为【" + InObject.ZHENGJIANHM + "】的签约信息!");
            }
            if (InObject.XINGMING.ToString() != existInfo.Items["BINGRENXM"].ToString())
            {
                throw new Exception(string.Format("传入病人姓名[{0}]与签约账户姓名[{1}]不符", InObject.XINGMING, existInfo.Items["BINGRENXM"]));
            }
            OutObject           = new ZHIFUBAOBDCX_OUT();
            OutObject.ZHIFUBXYH = existInfo.Items["XIEYIHM"].ToString();
        }
Example #12
0
        public static void sendDRYSJ()
        {
            var Brxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00001, " and brzt in (1,3,4) and dryfszt = 0 "));

            if (Brxx == null || Brxx.Count == 0)
            {
            }
            else
            {
                foreach (var mxxx in Brxx)
                {
                    var str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                              "<request action= \"sendInHospitalAcceptFlag\" client=\"市二:192.168.1.10\" >" +
                              "<head><patient><mpiId></mpiId>" +
                              "<personName>" + mxxx.Get("brxm") + "</personName>" +
                              "<sexCode>" + mxxx.Get("brxb") + "</sexCode>" +
                              "<birthday>" + mxxx.Get("brcsrq") + "</birthday>" +
                              "<idCard>" + mxxx.Get("sfzh") + "</idCard>" +
                              "<idType>01</idType>" +
                              "<cardNo>" + mxxx.Get("jzkh") + "</cardNo>" +
                              "<cardType>" + mxxx.Get("jzklx") + "</cardType>" +
                              "</patient></head>" +
                              "<body>" +
                              "<reserveNo>" + mxxx.Get("zzsqdh") + "</reserveNo>" +
                              "<departmentNo>" + mxxx.Get("ksdm") + "</departmentNo>" +
                              "<department>" + mxxx.Get("ksmc") + "</department>" +
                              "</body></request>";

                    var rtnstr = sendJK(str);
                    var xmldom = new XmlDocument();
                    var xmlOut = "";
                    xmlOut = rtnstr;
                    xmldom.LoadXml(xmlOut);
                    var errno = xmldom.GetElementsByTagName("code").Item(0).FirstChild.InnerText;
                    if (errno == "200")
                    {
                        var tran = DBVisitor.Connection.BeginTransaction();
                        try
                        {
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.AUTO00007, mxxx.Get("zzsqdh")), tran);
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                        }
                    }
                }
            }
        }
Example #13
0
        private void FormDemo_Load(object sender, EventArgs e)
        {
            var proc = SqlLoad.GetProcedure("T00018");

            proc["Prm_Jzkh"]    = "8987";
            proc["Prm_AppCode"] = 0;
            proc["Prm_OutData"] = string.Empty.PadRight(1000);
            //DBVisitor.ExecuteProcedure(proc);
            comboBox1.Items.Add("1");
            comboBox1.Items.Add("15");
            comboBox1.Items.Add("16");
            comboBox1.Items.Add("55");
            comboBox1.Items.Add("56");
            comboBox1.SelectedIndex = 0;
        }
Example #14
0
        public override void ProcessMessage()
        {
            #region sql查询
            if (InObject.XIAZAILX == "1")
            {
                var listjcxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00009));

                if (listjcxx.Count == 0)
                {
                    throw new Exception(string.Format("无检查模版信息!"));
                }
                else
                {
                    OutObject = new ZD_JIANCHAJYMB_OUT();

                    foreach (var jcxx in listjcxx)
                    {
                        var jianchalb = new MOBANXX();
                        jianchalb.MOBANDM = jcxx.Get("MBLXDM");
                        jianchalb.MOBANMC = jcxx.Get("MBMC");
                        OutObject.MOBANMX.Add(jianchalb);
                    }
                }
            }
            else
            {
                var listjyxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00011));

                if (listjyxx.Count == 0)
                {
                    throw new Exception(string.Format("无检验模版信息!"));
                }
                else
                {
                    OutObject = new ZD_JIANCHAJYMB_OUT();

                    foreach (var jyxx in listjyxx)
                    {
                        var jianyanlb = new MOBANXX();
                        jianyanlb.MOBANDM = jyxx.Get("MBLXDM");
                        jianyanlb.MOBANMC = jyxx.Get("MBMC");
                        OutObject.MOBANMX.Add(jianyanlb);
                    }
                }
            }
            #endregion
        }
Example #15
0
        public override void ProcessMessage()
        {
            string where = "";
            if (!string.IsNullOrEmpty(InObject.YSDM))
            {
                where = " and YSGH='" + InObject.YSDM + "'";
            }
            #region sql查询
            var listbqxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00014, where));

            if (listbqxx.Count == 0)
            {
                throw new Exception(string.Format("无医生排班信息!"));
            }
            else
            {
                OutObject = new ZD_YISHENGPBXX_OUT();

                foreach (var bqxx in listbqxx)
                {
                    var pbxx = new PAIBANXX();
                    pbxx.JLXH   = bqxx.Get("JLXH");
                    pbxx.XQ     = bqxx.Get("XQ");
                    pbxx.KSMC   = bqxx.Get("KSMC");
                    pbxx.KSDM   = bqxx.Get("KSDM");
                    pbxx.MZLBMC = bqxx.Get("MZLBMC");
                    pbxx.SWXH   = bqxx.Get("SWJSH");
                    pbxx.SWZGH  = bqxx.Get("SWZGXH");
                    pbxx.XWXH   = bqxx.Get("XWJSH");
                    pbxx.XWZGH  = bqxx.Get("XWZGXH");
                    pbxx.YSGH   = bqxx.Get("YSGH");
                    pbxx.YSXM   = bqxx.Get("YSXM");
                    pbxx.SWYYXH = bqxx.Get("SWYYXH");
                    pbxx.XWYYXH = bqxx.Get("XWYYXH");
                    pbxx.YYF    = bqxx.Get("YYF");
                    pbxx.YSMS   = bqxx.Get("YSMS");
                    OutObject.PAIBANXX.Add(pbxx);
                }
            }
            #endregion
        }
Example #16
0
        public override void ProcessMessage()
        {
            #region sql查询
            var listbqxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00003));

            if (listbqxx.Count == 0)
            {
                throw new Exception(string.Format("无病区信息!"));
            }
            else
            {
                OutObject = new ZD_BINGQUXX_OUT();

                foreach (var bqxx in listbqxx)
                {
                    var bingqulb = new BINGQUXX();
                    bingqulb.BINGQUDM = bqxx.Get("BINGQUDM");
                    bingqulb.BINGQUMC = bqxx.Get("BINGQUMC");
                    OutObject.BINGQUMX.Add(bingqulb);
                }
            }
            #endregion
        }
Example #17
0
        public override void ProcessMessage()
        {
            #region sql查询
            var listfyglxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00005));

            if (listfyglxx.Count == 0)
            {
                throw new Exception(string.Format("无项目归类信息!"));
            }
            else
            {
                OutObject = new ZD_XIANGMUGLXX_OUT();

                foreach (var fyglxx in listfyglxx)
                {
                    var fygllb = new XIANGMUGLXX();
                    fygllb.XIANGMUGL   = fyglxx.Get("XIANGMUGL");
                    fygllb.XIANGMUGLMC = fyglxx.Get("XIANGMUGLMC");
                    OutObject.XIANGMUGLMX.Add(fygllb);
                }
            }
            #endregion
        }
Example #18
0
        public override void ProcessMessage()
        {
            #region sql查询
            var listpbxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00002));

            if (listpbxx.Count == 0)
            {
                throw new Exception(string.Format("无诊室信息!"));
            }
            else
            {
                OutObject = new ZD_ZHENSHIXX_OUT();

                foreach (var zsxx in listpbxx)
                {
                    var zhenshilb = new ZHENSHIXX();
                    zhenshilb.ZHENSHIDM = zsxx.Get("ZSDM");
                    zhenshilb.ZHENSHIMC = zsxx.Get("ZSMC");
                    OutObject.ZHENSHILB.Add(zhenshilb);
                }
            }
            #endregion
        }
Example #19
0
        public static void sendJCXM()
        {
            var JCXMtable = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.AUTO00010));

            if (JCXMtable == null || JCXMtable.Count == 0)
            {
            }
            else
            {
                var xmlin = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
                xmlin += "<request action=\"sendCheckItem\" client=\"市二:192.168.1.10\">";
                xmlin += "<head>";
                xmlin += "<patient>";
                xmlin += "<mpiId></mpiId>";
                xmlin += "</patient>";
                xmlin += "</head>";
                xmlin += "<body>";

                foreach (var mxxx in JCXMtable)
                {
                    xmlin += "<item>";
                    xmlin += "<itemCode>" + mxxx.Get("jcxmdm") + "</itemCode>";
                    xmlin += "<itemName>" + mxxx.Get("jcxmmc") + "</itemName>";
                    xmlin += "<needReserve>1</needReserve>";
                    xmlin += "<classifyCode>" + mxxx.Get("JCXMLX") + "</classifyCode>";
                    xmlin += "<partCode>" + mxxx.Get("JCXMBWDM") + "</partCode>";
                    xmlin += "<directionCode>" + mxxx.Get("JCXMFX") + "</directionCode>";
                    xmlin += "<hospitalCode>47011662233010511A1001</hospitalCode>";
                    xmlin += "<announcements>" + mxxx.Get("JCXMBZ") + "</announcements>";
                    xmlin += "</item>";
                }
                xmlin += "</body>";
                xmlin += "</request>";
                var rtnstr = sendJK(xmlin);
            }
        }
Example #20
0
        public override void ProcessMessage()
        {
            var fygl  = InObject.XIANGMUGL;
            var srmlx = InObject.SHURUMLX;
            var srm   = InObject.SHURUM;

            #region sql查询
            var listypxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00006, fygl, srmlx, srm));

            if (listypxx.Count == 0)
            {
                throw new Exception(string.Format("无药品信息!"));
            }
            else
            {
                OutObject = new ZD_YAOPINXX_OUT();

                foreach (var ypxx in listypxx)
                {
                    var yaopinlb = new YAOPINXX();
                    yaopinlb.XIANGMUGL   = ypxx.Get("XIANGMUGL").ToString();
                    yaopinlb.XIANGMUXH   = ypxx.Get("XIANGMUXH").ToString();
                    yaopinlb.XIANGMUCDDM = ypxx.Get("XIANGMUCDDM").ToString();
                    yaopinlb.XIANGMUMC   = ypxx.Get("XIANGMUMC");
                    yaopinlb.XIANGMUGLMC = ypxx.Get("XIANGMUGLMC");
                    yaopinlb.XIANGMUGG   = ypxx.Get("XIANGMUGG");
                    yaopinlb.XIANGMUJX   = ypxx.Get("XIANGMUJX").ToString();
                    yaopinlb.XIANGMUDW   = ypxx.Get("XIANGMUDW");
                    yaopinlb.XIANGMUCDMC = ypxx.Get("XIANGMUCDMC");
                    yaopinlb.DANJIA      = ypxx.Get("DANJIA").ToString();
                    yaopinlb.YIBAODJ     = ypxx.Get("YIBAODJ");
                    OutObject.YAOPINMX.Add(yaopinlb);
                }
            }
            #endregion
        }
Example #21
0
        public override void ProcessMessage()
        {
            var sql  = "";
            var yyrq = "";
            int jl   = 0;

            OutObject           = new YUYUEXXCX_OUT();
            OutObject.YUYUEXXXX = new List <YUYUEXX>();

            if (InObject.YUYUESQDBH.ToString() != "")
            {
                sql = " and a.yysqdbh = '" + InObject.YUYUESQDBH.ToString() + "'";
            }
            if (InObject.BINGRENKH.ToString() != "")
            {
                sql = sql + " and a.brkh = '" + InObject.BINGRENKH.ToString() + "'";
            }
            if (InObject.BINGRENMZH.ToString() != "")
            {
                sql = sql + " and a.brmzh = '" + InObject.BINGRENMZH.ToString() + "'";
            }
            if (InObject.BINGRENZYH.ToString() != "")
            {
                sql = sql + " and a.brzyh = '" + InObject.BINGRENZYH.ToString() + "'";
            }
            if (InObject.SHENFENZH.ToString() != "")
            {
                sql = sql + " and a.sfzh = '" + InObject.SHENFENZH.ToString() + "'";
            }
            if (InObject.JIANCHASQDBH.ToString() != "")
            {
                sql = sql + " and a.jcsqdbh = '" + InObject.JIANCHASQDBH.ToString() + "'";
            }
            int dtrq = 0;//如果是当天则为0,非当天为1

            if (InObject.YUYUEKSRQ.ToString() == "")
            {
                dtrq = 1;
                yyrq = DateTime.Now.ToString("yyyy-MM-dd");
            }
            else
            {
                if (InObject.YUYUEKSRQ == DateTime.Now.ToString("yyyy-MM-dd"))
                {
                    dtrq = 0;
                }
                else
                {
                    dtrq = 1;
                }
                yyrq = InObject.YUYUEKSRQ.ToString();
            }
            if (string.IsNullOrEmpty(InObject.CHAXUNLX))//0是所有,1是已预约,2未预约
            {
                InObject.CHAXUNLX = "0";
            }
            if (InObject.CHAXUNLX == "0" || InObject.CHAXUNLX == "1")
            {
                var listyyxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00006, sql, yyrq, dtrq));
                if (listyyxx.Count == 0)
                {
                    jl = 2;
                    //OutObject = new YUYUEXXCX_OUT();
                    //OutObject.OUTMSG.ERRNO = "-2";
                    //OutObject.OUTMSG.ERRMSG = "找不到预约信息";
                    //return;
                    //throw new Exception(string.Format("找不到预约信息"));
                }
                else
                {
                    jl = 1;
                    foreach (var item in listyyxx)
                    {
                        var yyxx = new YUYUEXX();
                        var csrq = "";
                        if (string.IsNullOrEmpty(item.Get("brcsrq")))
                        {
                            csrq = "1901-01-01";
                        }
                        else
                        {
                            csrq = item.Get("brcsrq").ToString();
                        }
                        yyxx.JIANCHAKSDM  = string.Empty;// (item.Get("jcksdm") == "" ? string.Empty : item.Get("jcksdm"));
                        yyxx.JIANCHAKSMC  = item.Get("jcksmc");
                        yyxx.BINGRENFPH   = item.Get("brfph");
                        yyxx.BINGRENLX    = int.Parse(item.Get("brlx"));
                        yyxx.BINGRENLXMC  = item.Get("brlxmc");
                        yyxx.BINGRENKH    = item.Get("brkh");
                        yyxx.BINGRENMZH   = item.Get("brmzh");
                        yyxx.BINGRENZYH   = item.Get("brzyh");
                        yyxx.BINGRENBQDM  = item.Get("brbqdm");
                        yyxx.BINGRENBQMC  = item.Get("brbqmc");
                        yyxx.BINGRENCWH   = item.Get("brcwh");
                        yyxx.BINGRENXM    = item.Get("brxm");
                        yyxx.BINGRENXB    = int.Parse(item.Get("brxb"));
                        yyxx.BINGRENNL    = item.Get("brnl").ToString();
                        yyxx.BINGRENCSRQ  = Convert.ToDateTime(csrq).ToString("yyyy-MM-dd HH:mm:ss");
                        yyxx.BINGRENLXDZ  = item.Get("brlxdz");
                        yyxx.BINGRENLXDH  = item.Get("brlxdh");
                        yyxx.SHENQINGYSGH = item.Get("sqysgh");
                        yyxx.SHENQINGYSMC = item.Get("sqysmc");
                        yyxx.SHENQINGYYDM = item.Get("sqyydm");
                        yyxx.SHENQINGYYMC = item.Get("sqyymc");
                        yyxx.JIANCHAXMDM  = item.Get("jcxmdm");
                        yyxx.JIANCHAXMMC  = item.Get("jcxmmc");
                        yyxx.JIANCHAXMLX  = item.Get("jcxmlx");
                        yyxx.JIANCHABWDM  = item.Get("jcbwdm");
                        yyxx.JIANCHABWMC  = item.Get("jcbwmc");
                        yyxx.JIANCHASBDM  = int.Parse(item.Get("jcsbdm"));
                        yyxx.JIANCHASBMC  = item.Get("jcsbmc");
                        yyxx.JIANCHASBDD  = item.Get("jcsbdd");
                        yyxx.YUYUEH       = item.Get("yyh");
                        yyxx.SHENFENZH    = item.Get("sfzh");
                        yyxx.YUYUESF      = int.Parse(item.Get("yysf"));
                        yyxx.YUYUESQDBH   = item.Get("yysqdbh");
                        yyxx.YUYUESQDZT   = int.Parse(item.Get("yysqdzt"));
                        yyxx.SHENQINGSJ   = item.Get("sqsj");
                        yyxx.JIANCHAH     = item.Get("jch");
                        yyxx.YUYUERQ      = item.Get("jcrq");
                        yyxx.YUYUESJ      = item.Get("jcsj");
                        yyxx.JIANCHASQDBH = item.Get("jcsqdbh");
                        yyxx.YINGXIANGFX  = item.Get("yxfx");
                        yyxx.YUYUSJD      = item.Get("yysjd");
                        OutObject.YUYUEXXXX.Add(yyxx);
                    }
                }
            }
            if (InObject.CHAXUNLX == "0" || InObject.CHAXUNLX == "2")
            {
                //查询未预约信息
                var listwyyxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00019, sql));
                if (listwyyxx.Count == 0)
                {
                    if (jl != 1)
                    {
                        jl = 2;
                    }
                    //OutObject = new YUYUEXXCX_OUT();
                    //OutObject.OUTMSG.ERRNO = "-2";
                    //OutObject.OUTMSG.ERRMSG = "找不到预约信息";
                    //return;
                    //throw new Exception(string.Format("找不到预约信息"));
                }
                else
                {
                    jl = 1;
                    //OutObject = new YUYUEXXCX_OUT();
                    //OutObject.YUYUEXXXX = new List<YUYUEXX>();
                    foreach (var item in listwyyxx)
                    {
                        var yyxx = new YUYUEXX();
                        var csrq = "";
                        if (string.IsNullOrEmpty(item.Get("brcsrq")))
                        {
                            csrq = "1901-01-01";
                        }
                        else
                        {
                            csrq = item.Get("brcsrq").ToString();
                        }
                        yyxx.JIANCHAKSDM  = item.Get("jcksdm");
                        yyxx.JIANCHAKSMC  = item.Get("jcksmc");
                        yyxx.BINGRENFPH   = item.Get("brfph");
                        yyxx.BINGRENLX    = int.Parse(item.Get("brlx"));
                        yyxx.BINGRENLXMC  = item.Get("brlxmc");
                        yyxx.BINGRENKH    = item.Get("brkh");
                        yyxx.BINGRENMZH   = item.Get("brmzh");
                        yyxx.BINGRENZYH   = item.Get("brzyh");
                        yyxx.BINGRENBQDM  = item.Get("brbqdm");
                        yyxx.BINGRENBQMC  = item.Get("brbqmc");
                        yyxx.BINGRENCWH   = item.Get("brcwh");
                        yyxx.BINGRENXM    = item.Get("brxm");
                        yyxx.BINGRENXB    = int.Parse(item.Get("brxb"));
                        yyxx.BINGRENNL    = item.Get("brnl").ToString();
                        yyxx.BINGRENCSRQ  = Convert.ToDateTime(csrq).ToString("yyyy-MM-dd HH:mm:ss");
                        yyxx.BINGRENLXDZ  = item.Get("brlxdz");
                        yyxx.BINGRENLXDH  = item.Get("brlxdh");
                        yyxx.SHENQINGYSGH = item.Get("sqysgh");
                        yyxx.SHENQINGYSMC = item.Get("sqysmc");
                        yyxx.SHENQINGYYDM = item.Get("sqyydm");
                        yyxx.SHENQINGYYMC = item.Get("sqyymc");
                        yyxx.JIANCHAXMDM  = item.Get("jcxmdm");
                        yyxx.JIANCHAXMMC  = item.Get("jcxmmc");
                        yyxx.JIANCHAXMLX  = item.Get("jcxmlx");
                        yyxx.JIANCHABWDM  = item.Get("jcbwdm");
                        yyxx.JIANCHABWMC  = item.Get("jcbwmc");
                        //yyxx.JIANCHASBDM = int.Parse(item.Get("jcsbdm"));
                        yyxx.JIANCHASBMC = "";
                        yyxx.JIANCHASBDD = "";
                        yyxx.YUYUEH      = "";
                        yyxx.SHENFENZH   = item.Get("sfzh");
                        //yyxx.YUYUESF = int.Parse(item.Get("yysf"));
                        yyxx.YUYUESQDBH = "";
                        //yyxx.YUYUESQDZT = int.Parse(item.Get("yysqdzt"));
                        yyxx.SHENQINGSJ   = item.Get("jcsqrq");
                        yyxx.JIANCHAH     = "";
                        yyxx.YUYUERQ      = "";
                        yyxx.YUYUESJ      = "";
                        yyxx.JIANCHASQDBH = item.Get("jcsqdbh");
                        yyxx.YINGXIANGFX  = item.Get("yxfx");
                        yyxx.YUYUSJD      = "";
                        OutObject.YUYUEXXXX.Add(yyxx);
                    }
                }
            }
            if (jl != 1)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = "找不到预约信息";
            }
        }
Example #22
0
        public override void ProcessMessage()
        {
            OutObject = new JIESHOUSZSQ_OUT();
            string jiuzhenKh  = InObject.JIUZHENKH;
            string jiuzhenkLx = InObject.JIUZHENKLX;

            int JIUZHENKCD = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]);//就诊卡默认长度

            #region 基本入参判断
            if (InObject.YEWULX == null || InObject.YEWULX == "")
            {
                throw new Exception(string.Format("业务类型不能为空!"));
            }
            if (InObject.BINGRENXM == null || InObject.BINGRENXM == "")
            {
                throw new Exception(string.Format("病人姓名不能为空!"));
            }
            if (InObject.BINGRENXB == null || InObject.BINGRENXB == "")
            {
                throw new Exception(string.Format("病人性别不能为空!"));
            }
            if (InObject.BINGRENCSRQ == null || InObject.BINGRENCSRQ == "")
            {
                throw new Exception(string.Format("病人出生日期不能为空!"));
            }
            if (InObject.BINGRENSFZH == null || InObject.BINGRENSFZH == "")
            {
                throw new Exception(string.Format("病人身份证号不能为空!"));
            }
            if (InObject.BINGRENLXDH == null || InObject.BINGRENLXDH == "")
            {
                throw new Exception(string.Format("病人联系电话不能为空!"));
            }
            if (InObject.BINGRENLXDZ == null || InObject.BINGRENLXDZ == "")
            {
                throw new Exception(string.Format("病人联系地址不能为空!"));
            }
            if (InObject.SHENQINGJGDM == null || InObject.SHENQINGJGDM == "")
            {
                throw new Exception(string.Format("申请机构代码不能为空!"));
            }
            if (InObject.SHENQINGJGMC == null || InObject.SHENQINGJGMC == "")
            {
                throw new Exception(string.Format("申请机构名称不能为空!"));
            }
            if (InObject.SHENQINGYS == null || InObject.SHENQINGYS == "")
            {
                throw new Exception(string.Format("申请医生不能为空!"));
            }
            if (InObject.SHENQINGYSDH == null || InObject.SHENQINGYSDH == "")
            {
                throw new Exception(string.Format("申请医生电话不能为空!"));
            }
            if (InObject.SHENQINGRQ == null || InObject.SHENQINGRQ == "")
            {
                throw new Exception(string.Format("申请日期不能为空!"));
            }
            if (InObject.BINQINGMS == null || InObject.BINQINGMS == "")
            {
                throw new Exception(string.Format("病情描述不能为空!"));
            }
            if (InObject.ZHUANZHENZYSX == null || InObject.ZHUANZHENZYSX == "")
            {
                throw new Exception(string.Format("转诊注意事项不能为空!"));
            }
            #endregion

            if (JIUZHENKCD > 0)
            {
                if (jiuzhenKh.Length < JIUZHENKCD)
                {
                    jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, '0');
                }
            }

            //转诊申请单号
            var zzsqdbh = DBVisitor.ExecuteScalar(SqlLoad.GetFormat("select seq_sxzz_zzsqd.nextval zzsqd from dual")).ToString();

            var tran = DBVisitor.Connection.BeginTransaction();
            try
            {
                #region//申请单信息
                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00007,
                                                            zzsqdbh, InObject.JIUZHENKLX, InObject.JIUZHENKH, InObject.YEWULX,
                                                            InObject.BINGRENXM, InObject.BINGRENXB, InObject.BINGRENCSRQ,
                                                            InObject.BINGRENNL, InObject.BINGRENSFZH, InObject.BINGRENLXDH,
                                                            InObject.BINGRENLXDZ, InObject.BINGRENFYLB, InObject.SHENQINGJGDM,
                                                            InObject.SHENQINGJGMC, InObject.SHENQINGJGLXDH, InObject.SHENQINGYS,
                                                            InObject.SHENQINGYSDH, InObject.SHENQINGRQ, InObject.ZHUANZHENYY,
                                                            InObject.BINQINGMS, InObject.ZHUANZHENZYSX, InObject.ZHUANZHENDH,
                                                            InObject.SZJSLXR, InObject.SZJSLXRDH, InObject.ZHUANRUKSDM,
                                                            InObject.ZHUANRUKSMC), tran);
                //申请单状态
                //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00077, zzsqdbh), tran);
                #endregion
                #region //门诊处方信息
                foreach (var item in InObject.CHUFANGMX)
                {
                    int i = 0;
                    if (item.CHUFANGXXMX.Count > 0)
                    {
                        if (string.IsNullOrEmpty(item.CHUFANGID))
                        {
                            throw new Exception(string.Format("处方ID不能为空!"));
                        }
                        /*zzsqdh,cfid,cfly,cflx,kfrq,bz*/
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00008,
                                                                    zzsqdbh, item.CHUFANGID, item.CHUFANGLY, item.CHUFANGLX, item.KAIFANGRQ, item.BEIZHU), tran);
                        foreach (var itemmx in item.CHUFANGXXMX)
                        {
                            if (string.IsNullOrEmpty(itemmx.XIANGMUMC))
                            {
                                throw new Exception(string.Format("药品项目名称不能为空!"));
                            }
                            //门诊处方明细

                            /*xh,cfid,fylx,xmmc,yptym,ypspm,
                             *    cdmc,ypgg,dw,sl,pl,gytj,
                             *    yyts,dcyl,yldw,psjg,zcyts,
                             *    fyrq*/
                            ++i;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00009,
                                                                        i, item.CHUFANGID, itemmx.FEIYONGLX, itemmx.XIANGMUMC, itemmx.YAOPINTYM, itemmx.YAOPINSPM,
                                                                        itemmx.CHANGDIMC, itemmx.YAOPINGG, itemmx.DANGWEI, itemmx.SHULIANG, itemmx.PINLV, itemmx.GEIYAOTJ,
                                                                        itemmx.YONGYAOTS, itemmx.DANCIYL, itemmx.YONGLIANGDW, itemmx.PISHIJG, itemmx.ZHONGCHAOYTS,
                                                                        itemmx.FAYAORQ, zzsqdbh), tran);
                        }
                    }
                }
                #endregion
                #region//检验处方信息
                foreach (var item in InObject.JIANYANMX)
                {
                    int i = 0;
                    if (item.JIANYANXXMX.Count > 0)
                    {
                        if (string.IsNullOrEmpty(item.JIANYANID))
                        {
                            throw new Exception(string.Format("检验ID不能为空!"));
                        }

                        /*zzsqdh,jyid,xmmc,kdrq,bz,jyjg,
                         * jcff,wjzbz,jczd,jcrq,yblxmc,ybh,
                         * shys,jyrq*/
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00010,
                                                                    zzsqdbh, item.JIANYANID, item.XIANGMUMC, item.KAIDANRQ, item.BEIZHU, item.JIANYANJG,
                                                                    item.JIANCEFF, item.WEIJIZBZ, item.JIANCHAZD, item.JIANCHARQ, item.YANGBENLXMC, item.YANGBENGH,
                                                                    item.SHENGHEYS, item.JIANYANRQ), tran);
                        foreach (var itemmx in item.JIANYANXXMX)
                        {
                            if (string.IsNullOrEmpty(itemmx.XIANGMUMC))
                            {
                                throw new Exception(string.Format("检验项目名称不能为空!"));
                            }
                            //检验处方明细

                            /*xh,jyid,xmmc,jyz,dyxh,dx,
                             *    fw,dw*/
                            ++i;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00011,
                                                                        i, item.JIANYANID, itemmx.XIANGMUMC, itemmx.JIANYANZ, itemmx.DAYINXH, itemmx.DINGXING,
                                                                        itemmx.FANWEI, itemmx.DANWEI, zzsqdbh), tran);
                        }
                    }
                }
                #endregion
                #region 检查信息
                foreach (var item in InObject.JIANCHAMX)
                {
                    /*zzsqdh,jcid,jclxmc,kdrq,xmmc,yxsj,
                     * zdjg,bz,bgdz,kdys*/
                    if (string.IsNullOrEmpty(item.JIANCHAID))
                    {
                        throw new Exception(string.Format("检查ID不能为空!"));
                    }
                    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00012,
                                                                zzsqdbh, item.JIANCHAID, item.JIANCHALX, item.KAIDANRQ, item.XIANGMUMC, item.YIXIANGSJ,
                                                                item.ZHENDUAMJG, item.BEIZHU, item.BAOGAODZ, item.KAIDANYS), tran);
                }
                #endregion
                #region//住院医嘱信息
                foreach (var item in InObject.ZHUYUANYZMX)
                {
                    /*zzsqdh,yzid,yzlx,yzmc,yzzh,kssj,
                     * jssj,ycsl,yldw,zxrq,pl,yzlb,
                     * kdys,fyzid,psjg,gytj*/
                    if (string.IsNullOrEmpty(item.YIZHUXH))
                    {
                        throw new Exception(string.Format("医嘱序号不能为空!"));
                    }
                    string sql = SqlLoad.GetFormat(SQ.HIS00013,
                                                   zzsqdbh, item.YIZHUXH, item.YIZHULX, item.YIZHUMC, item.YIZHUZH, item.KAISHISJ,
                                                   item.TINGZHISJ, item.YICISL, item.YONGLIANGDW, item.ZHIXINGRQ, item.PINGLV, item.YIZHULB,
                                                   item.KAIDANYS, item.FUYIZXH, item.PISHIJG, item.GEIYAOTJ);
                    DBVisitor.ExecuteNonQuery(sql, tran);
                }
                #endregion
                tran.Commit();
                OutObject             = new JIESHOUSZSQ_OUT();
                OutObject.ZHUANZHENDH = zzsqdbh;
            }
            catch (Exception ex)
            {
                tran.Rollback();
                throw ex;
            }
        }
Example #23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SortedDictionary <string, string> sPara = GetRequestPost();

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify = new Notify();
                HIS4.Biz.LogUnit.Write("notify_id:" + Request.Form["notify_id"], "NotifyUrl");
                HIS4.Biz.LogUnit.Write("sign" + Request.Form["sign"], "NotifyUrl");

                bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]);
                // if (verifyResult)//验证成功
                if (true)
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码

                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表

                    //商户订单号
                    string out_trade_no = Request.Form["out_trade_no"];
                    HIS4.Biz.LogUnit.Write("out_trade_no:" + Request.Form["out_trade_no"], "NotifyUrl");

                    //支付宝交易号
                    string trade_no = Request.Form["trade_no"];
                    HIS4.Biz.LogUnit.Write("trade_no:" + Request.Form["trade_no"], "NotifyUrl");

                    //交易状态
                    string trade_status = Request.Form["trade_status"];
                    HIS4.Biz.LogUnit.Write("trade_status:" + Request.Form["trade_status"], "NotifyUrl");
                    //WAIT_BUYER_PAY	交易创建,等待买家付款。
                    //TRADE_CLOSED	在指定时间段内未支付时关闭的交易;
                    //在交易完成全额退款成功时关闭的交易。
                    //TRADE_SUCCESS	交易成功,且可对该交易做操作,如:多级分润、退款等。
                    //TRADE_PENDING	等待卖家收款(买家付款后,如果卖家账号被冻结)。
                    //TRADE_FINISHED	交易成功且结束,即不可再做任何操作

                    if (trade_status == "TRADE_SUCCESS")
                    {
                        //更新状态 未入账
                        DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set JIESUANZT='2',IBUYERID='{1}',IBUYEREMAIL='{2}' where IOUTTRADENO='{0}' ", out_trade_no, sPara["buyer_id"], sPara["buyer_email"]));
                    }
                    else
                    {
                        //更新状态 结算失败
                        DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set FAILERR='{0}',JIESUANZT='-1' ,IBUYERID='{1}',IBUYEREMAIL='{2}' where IOUTTRADENO='{3}' ", trade_status, sPara["buyer_id"], sPara["buyer_email"], Request.Form["trade_no"]));
                    }

                    //如果没有数据 修改返回状态
                    var listpbxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.HIS00002, out_trade_no));
                    if (listpbxx.Count <= 0)
                    {
                        trade_status = "NODATA";
                        return;
                    }
                    string HttpIndata = "notify_id=" + Request.Form["notify_id"] + "&" +
                                        "sign=" + Request.Form["sign"] + "&" +
                                        "out_trade_no=" + out_trade_no + "&" +
                                        "trade_no=" + trade_no + "&" +
                                        "trade_status=" + trade_status + "&" +
                                        "total_fee=" + Request.Form["total_fee"];
                    HIS4.Biz.LogUnit.Write("POSE入参:" + HttpIndata, "NotifyUrl");
                    //POST提交给请求断
                    string ret = PostWebRequest(listpbxx[0]["INOTIFYURL"].ToString(), HttpIndata);
                    HIS4.Biz.LogUnit.Write("POSE出参:" + ret, "NotifyUrl");
                    if (ret.ToLower() == "success") //处理成功
                    {                               //结算成功
                        DateTime dt = string.IsNullOrEmpty(Request.Form["gmt_payment"]) ? DateTime.Now : DateTime.Parse(Request.Form["gmt_payment"]);
                        DBVisitor.ExecuteNonQuery(
                            "update JR_ZHIFUBAOJSXX set JIESUANSJ=To_Date('{dt}','yyyy-mm-dd hh24:mi:ss'),JIESUANZT='1',TRADENO='{trade_no}' where IOUTTRADENO='{out_trade_no}' ");
                        Response.Write("success");  //请不要修改或删除
                    }
                    else
                    {
                        //更新状态 结算失败
                        DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set FAILERR='{0}' where IOUTTRADENO='{1}' ", ret, out_trade_no));
                        Response.Write("success");//处理失败
                    }
                }
                else//验证失败
                {
                    DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set FAILERR='{0}',JIESUANZT='-1' where IOUTTRADENO='{1}' ", "验证失败", Request.Form["out_trade_no"]));
                    Response.Write("success");
                }
            }
            else
            {
                Response.Write("无通知参数");
            }
        }
Example #24
0
        public override void ProcessMessage()
        {
            //取得预约信息
            OutObject = new SHEBEIYYQX_OUT();
            if (InObject.YUYUESQDBH == null || InObject.YUYUESQDBH == "")
            {
                throw new Exception(string.Format("预约申请单编号为空!"));
            }
            var listyyxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00004, InObject.YUYUESQDBH.ToString()));

            if (listyyxx == null)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                return;
                //throw new Exception(string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString()));
            }
            if (listyyxx.Items.Count == 0)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                return;
                //throw new Exception(string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString()));
            }

            if (System.Configuration.ConfigurationManager.AppSettings["JianChaJKMS"] == "1")
            {
                var resource = new HISYY_Cancel();
                resource.RequestNo = listyyxx.Items["YYH"].ToString();
                resource.YYH       = "";
                resource.JCH       = "";
                string url = System.Configuration.ConfigurationManager.AppSettings["LAIDAURL"];
                string xml = XMLHandle.EntitytoXML <HISYY_Cancel>(resource);
                HISYY_Cancel_Result result = XMLHandle.XMLtoEntity <HISYY_Cancel_Result>(WSServer.Call <HISYY_GetResource>(url, xml).ToString());
                if (result.Success == "False")
                {
                    throw new Exception("取消预约失败,错误原因:" + result.Message);
                }
                var tran = DBVisitor.Connection.BeginTransaction();
                try
                {
                    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00005, InObject.YUYUESQDBH.ToString(), 9), tran);
                    tran.Commit();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
            }
            else
            {
                var listyyhxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00014, listyyxx.Items["JCSBDM"].ToString(), listyyxx.Items["JCRQ"].ToString(), listyyxx.Items["JCSJ"].ToString()));
                foreach (var item in listyyhxx)
                {
                    var listyyh = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00010, item.Get("yyhxx").ToString(), listyyxx.Items["YYH"].ToString()));
                    var zyyyys  = int.Parse(item.Get("zyyyys"));
                    var mzyyys  = int.Parse(item.Get("mzyyys"));
                    var sqyyys  = int.Parse(item.Get("sqyyys"));
                    var yyys    = int.Parse(item.Get("yyys"));
                    var yyly    = listyyxx.Items["YYLY"].ToString();
                    if (yyly == "3")
                    {
                        --sqyyys;
                    }
                    else if (yyly == "2")
                    {
                        --zyyyys;
                    }
                    else if (yyly == "1")
                    {
                        --mzyyys;
                    }
                    else
                    {
                        if (listyyxx.Items["BRLX"].ToString() == "2")
                        {
                            --zyyyys;
                        }
                    }

                    //if (listyyxx.Items["BRLX"].ToString() == "2")
                    //{
                    //    --zyyyys;
                    //}
                    if (listyyh == null)
                    {
                        continue;
                    }
                    if (listyyh.Items.Count > 0)
                    {
                        var tran = DBVisitor.Connection.BeginTransaction();
                        try
                        {
                            //更新预约信息状态为取消
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00005, InObject.YUYUESQDBH.ToString(), 9), tran);
                            //更新预约号状态
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00009, item.Get("yyhxx").ToString(), listyyxx.Items["YYH"], 0), tran);
                            //更新预约排班表
                            if (yyly == "3")
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00021, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, sqyyys), tran);
                            }
                            else if (yyly == "2")
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, zyyyys), tran);
                            }
                            else if (yyly == "1")
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00020, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, mzyyys), tran);
                            }
                            else
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, zyyyys), tran);
                            }
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                            throw ex;
                        }
                    }
                }
            }
        }
Example #25
0
        public override void ProcessMessage()
        {
            var sqlsb = "";

            OutObject = new SHEBEIYYZTCX_OUT();
            OutObject.SHEBEIYYXXXX = new List <SHEBEIYYXX>();
            var xmlIn = "";

            //var ldweb = new LaiDaWebService.WebServiceSoapClient();
            //var xmlOut = ldweb.HISYY_GetResource(xmlIn);
            if (string.Compare(InObject.YUYUERQ.ToString(), DateTime.Now.ToString("yyyy-MM-dd")) < 0)
            {
                throw new Exception(string.Format("预约日期必须大于等于今天!"));
            }
            if (InObject.JIANCHAXMDM == null || InObject.JIANCHAXMDM == "")
            {
                throw new Exception(string.Format("预约项目不能为空!"));
            }

            if (System.Configuration.ConfigurationManager.AppSettings["JianChaJKMS"] == "1")
            {
                var resource = new HISYY_GetResource();
                //var result = new HISYY_GetResource_Result();

                resource.HospitalCode = InObject.BASEINFO.JIGOUDM;
                resource.HospitalName = "杭州市第一人民医院";
                var codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, InObject.JIANCHAXMDM));
                foreach (var code in codes)
                {
                    resource.BespeakExamine.Add(new BespeakExamine()
                    {
                        ExamineCode = code["LBXH"].ToString(),
                        ExamineName = Unity.encodeString(code["LBMC"].ToString())
                    });
                }
                resource.BespeakDate = InObject.YUYUERQ.Replace("-", string.Empty);
                if (InObject.YEWULX == "2")
                {
                    resource.AdmissionSource = "10";
                }
                else
                {
                    resource.AdmissionSource = "50";
                }

                codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, InObject.JIANCHAXMDM));
                resource.StudiesDepartMentCode = codes[0]["JCKS"].ToString();
                resource.StudiesDepartMentName = codes[0]["KSMC"].ToString();

                resource.IsJZ = InObject.JIZHEN;
                resource.IsZQ = InObject.ZENGQIANG;
                resource.IsLS = InObject.LINSHI;

                ///调用WEBSERVICE
                string url = System.Configuration.ConfigurationManager.AppSettings["LAIDAURL"];
                string xml = XMLHandle.EntitytoXML <HISYY_GetResource>(resource);
                HISYY_GetResource_Result result = XMLHandle.XMLtoEntity <HISYY_GetResource_Result>(WSServer.Call <HISYY_GetResource>(url, xml).ToString());

                if (result.Success == "False")
                {
                    throw new Exception("取号源信息失败,错误原因:" + result.Message);
                }
                string[] separators = { ",", " " };
                foreach (var time in result.BespeakDatePart.Split(separators, StringSplitOptions.RemoveEmptyEntries))
                {
                    var pbxx = new SHEBEIYYXX();
                    pbxx.JIANCHASBDM = result.DeviceCode;
                    pbxx.JIANCHASBMC = result.DeviceName;
                    pbxx.JIANCHASBDD = result.DeviceLocation;
                    pbxx.YUYUERQ     = InObject.YUYUERQ;
                    pbxx.YUYUEKSSJ   = time.Split('-')[0];
                    pbxx.YUYUEJSSJ   = time.Split('-')[1];
                    pbxx.JIANCHAYYLX = 1;
                    pbxx.XIANGMUHS   = Convert.ToInt16(result.ExaminePartTime);
                    OutObject.SHEBEIYYXXXX.Add(pbxx);
                }
            }
            else
            {
                #region 市2模式
                InObject.JIANCHAXMDM = InObject.JIANCHAXMDM.ToString().Replace(",", ",");
                if (InObject.JIANCHAXMDM.IndexOf(',') >= 0)
                {
                    sqlsb += " having( count(distinct a.jcxmdm) >= " + InObject.JIANCHAXMDM.Split(',').Length.ToString() + ") group by a.jcsbdm ";
                }
                //取得对应设备
                var listdysb = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00001, InObject.JIANCHAXMDM, sqlsb));

                if (listdysb.Count == 0)
                {
                    throw new Exception(string.Format("找不到项目对应的检查设备信息:项目代码[{0}]", InObject.JIANCHAXMDM));
                }
                else
                {
                    foreach (var item in listdysb)
                    {
                        var jcsbdm = item.Get("jcsbdm");
                        var sypb   = 0;
                        //取得设备当前日期和时间的排班信息--
                        //若查询类型为空或0,则查询当前日期当前时间之后的所有排班信息
                        if (InObject.CHAXUNLX == null || InObject.CHAXUNLX == "0")
                        {
                            sypb = 1;
                        }
                        var listsbpbxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00002, jcsbdm, InObject.YUYUERQ, InObject.YUYUESJ, sypb));
                        if (listsbpbxx.Count == 0)
                        {
                            //throw new Exception(string.Format("未找到排班信息!"));
                        }
                        else
                        {
                            foreach (var item_sb in listsbpbxx)
                            {
                                var pbxx = new SHEBEIYYXX();
                                pbxx.JIANCHASBDM = item_sb.Get("jcsbdm");
                                pbxx.JIANCHASBMC = item_sb.Get("jcsbmc");
                                pbxx.JIANCHASBDD = item_sb.Get("jcsbdd");
                                pbxx.YUYUERQ     = item_sb.Get("pbrq");
                                pbxx.YUYUEKSSJ   = item_sb.Get("kssj");
                                pbxx.YUYUEJSSJ   = item_sb.Get("jssj");
                                pbxx.YUYUEJCBW   = item_sb.Get("yyjcbw");
                                pbxx.JIANCHAYYLX = Convert.ToInt16(item_sb.Get("jcyylx"));
                                int xcyy = 0;//现场预约值为2,检索所有数据

                                if (InObject.YEWULY == "3")
                                {
                                    pbxx.YUYUEHZS = int.Parse(item_sb.Get("sqkyys"));
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("sqyyys"));
                                }
                                else if (InObject.YEWULY == "2")
                                {
                                    pbxx.YUYUEHZS = int.Parse(item_sb.Get("zykyys"));
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("zyyyys"));
                                }
                                else if (InObject.YEWULY == "1")
                                {
                                    pbxx.YUYUEHZS = int.Parse(item_sb.Get("mzkyys"));
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("mzyyys"));
                                }
                                else
                                {
                                    if (item_sb.Get("pbrq") == DateTime.Now.ToString("yyyy-MM-dd"))
                                    {
                                        pbxx.YUYUEHZS = int.Parse(item_sb.Get("yyzs"));
                                        xcyy          = 2;
                                    }
                                    else
                                    {
                                        pbxx.YUYUEHZS = int.Parse(item_sb.Get("kyys"));
                                    }
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("yyys"));
                                }
                                //当天预约,查询所有预约号
                                //非当天预约,查询可预约号(去除预留号)
                                if (pbxx.YUYUEHZS > pbxx.YIYUYUES)
                                {
                                    var listyyhxx  = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00003, item_sb.Get("yyhxx"), xcyy));
                                    var yyhxx_list = new List <YUYUEHXX>();

                                    foreach (var item_yyh in listyyhxx)
                                    {
                                        var yyhxx = new YUYUEHXX();
                                        yyhxx.YUYUEH  = item_yyh.Get("yyh");
                                        yyhxx.YUYUEZT = int.Parse(item_yyh.Get("yyzt"));
                                        yyhxx_list.Add(yyhxx);
                                    }
                                    pbxx.YUYUEHXXXX = yyhxx_list;
                                    //OutObject.SHEBEIYYXXXX.Add(pbxx);
                                }
                                else
                                {
                                    var yyhxx_list = new List <YUYUEHXX>();
                                    pbxx.YUYUEHXXXX = yyhxx_list;
                                }
                                OutObject.SHEBEIYYXXXX.Add(pbxx);
                            }
                        }
                    }
                }
                #endregion
            }
        }
Example #26
0
        public override void ProcessMessage()
        {
            //取得预约信息
            OutObject = new SHEBEIYYQR_OUT();
            if (InObject.YUYUESQDBH == null || InObject.YUYUESQDBH == "")
            {
                throw new Exception(string.Format("预约申请单编号为空!"));
            }
            var listyyxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00004, InObject.YUYUESQDBH.ToString()));

            if (listyyxx == null)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                return;
                //throw new Exception(string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString()));
            }
            if (listyyxx.Items.Count == 0)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                return;
                //throw new Exception(string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString()));
            }
            else
            {
                var tran = DBVisitor.Connection.BeginTransaction();
                try
                {
                    if (InObject.YUYUEQRLX == "1")
                    {
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00005, InObject.YUYUESQDBH.ToString(), 1), tran);
                    }
                    else if (InObject.YUYUEQRLX == "2")
                    {
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00015, InObject.YUYUESQDBH.ToString(), 1), tran);
                    }
                    else if (InObject.YUYUEQRLX == "3")
                    {
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00016, InObject.YUYUESQDBH.ToString(), 1), tran);
                    }
                    else
                    {
                        OutObject.OUTMSG.ERRNO  = "-2";
                        OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                        return;
                    }

                    tran.Commit();
                    OutObject         = new SHEBEIYYQR_OUT();
                    OutObject.YUYUEH  = listyyxx.Items["YYH"].ToString();
                    OutObject.YUYUERQ = listyyxx.Items["JCRQ"].ToString();
                    OutObject.YUYUESJ = listyyxx.Items["JCSJ"].ToString();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
            }
        }
Example #27
0
        public override void ProcessMessage()
        {
            if (InObject.YUYUERQ == null)
            {
                throw new Exception(string.Format("预约日期不能为空!"));
            }
            if (InObject.YUYUESJ == null)
            {
                throw new Exception(string.Format("预约时间不能为空!"));
            }
            //if (InObject.JIANCHAXMDM == null || InObject.JIANCHAXMDM == "")
            //{
            //    throw new Exception(string.Format("检查项目不能为空!"));
            //}
            if (InObject.BINGRENLX == null || InObject.BINGRENLX < 1 || InObject.BINGRENLX > 3)
            {
                throw new Exception(string.Format("病人类型代码不对!"));
            }
            if (InObject.YEWULY == null)
            {
                InObject.YEWULY = InObject.BINGRENLX.ToString();
            }
            var jcsbdm = InObject.JIANCHASBDM.ToString();
            var yyrq   = InObject.YUYUERQ.ToString();
            var yysj   = InObject.YUYUESJ.ToString();
            var yyh    = "";

            //不能预约以前的日期
            if (string.Compare(yyrq, DateTime.Now.ToString("yyyy-MM-dd")) < 0)
            {
                throw new Exception(string.Format("预约日期必须大于等于今天!"));
            }

            if (System.Configuration.ConfigurationManager.AppSettings["JianChaJKMS"] == "1")
            {
                HISYY_Submit resource = new HISYY_Submit();
                var          yysqdbh  = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00018)).Items["YYSQDBH"].ToString();
                //检查
                if (InObject.YEWULY == "1")
                {
                    #region 调用包,判断入参是否正确
                    var jyjcdxx = "";
                    var jyjcmx  = "";
                    var zdmx    = "";
                    var jcxmdm  = "";
                    int i       = 0;
                    if (InObject.JIANCHALB.Count < 1)
                    {
                        throw new Exception(string.Format("检查项目不能为空!"));
                    }
                    #region 检查单信息
                    jyjcdxx += InObject.JIUZHENKLX + "|";                       //	就诊卡类型
                    jyjcdxx += InObject.JIUZHENKH + "|";                        //	就诊卡号
                    jyjcdxx += InObject.SHENQINGYSGH + "|";                     //	送检医生
                    jyjcdxx += InObject.SHENQINGYYDM + "|";                     //	送检科室
                    jyjcdxx += InObject.YUYUESF + "|";                          //	收费识别
                    jyjcdxx += InObject.BINGQINGMS + "|";                       //	病情描述
                    jyjcdxx += InObject.ZHENDUAN + "|";                         //	诊断
                    jyjcdxx += InObject.BINGRENTZ + "|";                        //	病人体征
                    jyjcdxx += InObject.QITAJC + "|";                           //	其它检查
                    jyjcdxx += InObject.BINGRENZS + "|";                        //	病人主诉
                    jyjcdxx += InObject.YEWULY + "|";                           //	检查来源
                    jyjcdxx += InObject.BINGRENXM + "|";                        //	病人姓名
                    jyjcdxx += InObject.SHENFENZH + "|";                        //	病人身份证号
                    jyjcdxx += "0" + "|";                                       //	接收方式
                    jyjcdxx += "|";                                             //	检查申请单号
                    jyjcdxx += InObject.YUYUERQ + " " + InObject.YUYUESJ + "|"; //	检查日期
                    jyjcdxx += InObject.BINGRENXB + "|";                        //	病人性别
                    jyjcdxx += InObject.BINGRENNL;                              //	病人年龄
                    #endregion
                    #region 检验检查明细
                    foreach (var item in InObject.JIANCHALB)
                    {
                        if (i == 0)
                        {
                            jcxmdm = item.JIANCHAXMBH;
                        }
                        else
                        {
                            jcxmdm += "," + item.JIANCHAXMBH;
                        }
                        ++i;
                        jyjcmx += item.JIANCHAXMBH + "|"; //	检查项目编号
                        jyjcmx += item.JIANCHAXMMC + "|"; //	检查项目名称
                        jyjcmx += item.JIANCHAFLBM + "|"; //	检查分类编码
                        jyjcmx += item.JIANCHASTBW + "|"; //	检查身体部位
                        jyjcmx += item.JIANCHAFXDM + "|"; //	检查方向代码
                        jyjcmx += item.JIANCHAZYDM + "|"; //	检查肢位代码
                        jyjcmx += item.JIANCHATS + "^";   //	检查提示
                    }
                    #endregion
                    #region 疾病明细
                    foreach (var item in InObject.ZHENDUANLB)
                    {
                        zdmx += item.ICD10 + "|";      //	ICD10
                        zdmx += item.ZHENDUANMC + "^"; //	诊断名称
                    }
                    #endregion
                    #region 调用包
                    var jianchakd = SqlLoad.GetProcedure(SQ.P_FSD00030);
                    jianchakd["ywlx"]    = 1;
                    jianchakd["jyjcdxx"] = jyjcdxx;
                    jianchakd["jyjcmx"]  = jyjcmx;
                    jianchakd["zdmx"]    = zdmx;
                    jianchakd["jylx"]    = 1;
                    jianchakd["errno"]   = -1;
                    jianchakd["errmsg"]  = string.Empty.PadRight(1024);
                    jianchakd["outdata"] = string.Empty.PadRight(1024);
                    DBVisitor.ExecuteProcedure(jianchakd);

                    if (jianchakd["errno"].ToString() != "0")
                    {
                        throw new Exception("更新库存失败:" + jianchakd["errmsg"]);
                    }
                    #endregion
                    #endregion

                    if (InObject.YEWULX == "2")
                    {
                        resource.AdmissionSource = "10";
                    }
                    else
                    {
                        resource.AdmissionSource = "50";
                    }
                    resource.HospitalCode = InObject.BASEINFO.JIGOUDM;
                    resource.HospitalName = "余杭三院";
                    resource.PatientName  = InObject.BINGRENXM;
                    resource.IdNumber     = InObject.SHENFENZH;
                    resource.RequestNo    = yysqdbh;
                    if (InObject.YEWULY == "2")
                    {
                        resource.AdmissionID = InObject.BINGRENZYH;
                    }
                    else
                    {
                        resource.AdmissionID = InObject.BINGRENMZH;
                    }
                    resource.ExaminePartTime   = InObject.XIANGMUHS;
                    resource.PatientSex        = InObject.BINGRENXB.ToString();
                    resource.PatientBorn       = InObject.BINGRENCSRQ;
                    resource.PatientAge        = InObject.BINGRENNL;
                    resource.PatientTel        = InObject.BINGRENLXDH;
                    resource.PatientAddress    = InObject.BINGRENLXDZ;
                    resource.PatientCard       = InObject.BINGRENKH;
                    resource.InPatientAreaName = InObject.BINGRENBQMC;
                    resource.InPatientAreaCode = InObject.BINGRENBQDM;
                    resource.BedNum            = InObject.BINGRENCWH;
                    resource.DeviceCode        = InObject.JIANCHASBDM.ToString();
                    resource.DeviceName        = InObject.JIANCHASBMC;
                    var codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, jcxmdm));
                    foreach (var code in codes)
                    {
                        resource.StudiesExamine.Add(new StudiesExamine()
                        {
                            ExamineCode  = code["LBXH"].ToString(),
                            ExamineName  = Unity.encodeString(code["LBMC"].ToString()),
                            Numbers      = "1",
                            ExaminePrice = DBVisitor.ExecuteScalar(SqlLoad.GetFormat(SQ.FSD00029, code["LBXH"].ToString())).ToString()
                        });
                    }
                    resource.ExamineFY  = resource.StudiesExamine.Sum <StudiesExamine>(group => { return(Convert.ToDecimal(group.ExaminePrice)); }).ToString();
                    resource.ReceiptNum = InObject.BINGRENFPH;
                    codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, jcxmdm));
                    resource.ZxDepartmentId   = codes[0]["JCKS"].ToString();
                    resource.ZxDepartmentName = codes[0]["KSMC"].ToString();
                    resource.Sqrq             = InObject.BASEINFO.CAOZUORQ;
                    resource.BespeakDateTime  = InObject.YUYUERQ + " " + InObject.YUYUESJ;
                    resource.JZ = "0"; // InObject.JIZHEN;
                    resource.ZQ = "0"; //InObject.ZENGQIANG;
                    resource.LS = "0"; //InObject.LINSHI;
                    resource.PF = "1";

                    ///调用WEBSERVICE
                    string url = System.Configuration.ConfigurationManager.AppSettings["LAIDAURL"];
                    string xml = XMLHandle.EntitytoXML <HISYY_Submit>(resource);
                    HISYY_Submit_Result result = XMLHandle.XMLtoEntity <HISYY_Submit_Result>(WSServer.Call <HISYY_Submit>(url, xml).ToString());

                    if (result.Success == "False")
                    {
                        throw new Exception("预约失败,错误原因:" + result.Message);
                    }

                    var tran = DBVisitor.Connection.BeginTransaction();
                    try
                    {
                        #region 先插入到临时表
                        var ID     = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00024, " seq_sxzz_jianchad.nextval "));
                        var xh     = "";
                        var JCSQDH = result.JCH;
                        int k      = 0;
                        if (ID == null)
                        {
                            throw new Exception(string.Format("检查单序列获取失败!"));
                        }
                        else
                        {
                            xh = ID.Items["MAXID"].ToString();
                        }
                        //var SQDH = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00023, " SEQ_GY_YXSQD_SQDH.NEXTVAL "));
                        //if (SQDH == null)
                        //{
                        //    throw new Exception(string.Format("申请单号获取失败!"));
                        //}
                        //else
                        //{
                        //    JCSQDH = SQDH.Items["MAXID"].ToString();
                        //}
                        //插入检查单信息
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00022,
                                                                    xh, "", InObject.BINGRENMZH, InObject.BINGRENXM,
                                                                    InObject.SHENFENZH, InObject.SHENQINGYSGH, InObject.JIANCHAKSDM, 0,
                                                                    InObject.BINGQINGMS, InObject.ZHENDUAN, InObject.BINGRENTZ, InObject.QITAJC,
                                                                    InObject.BINGRENZS, InObject.YEWULX, 0, JCSQDH, InObject.YUYUERQ,
                                                                    InObject.BINGRENXB, InObject.BINGRENNL), tran);
                        //插入检查明细
                        foreach (var item in InObject.JIANCHALB)
                        {
                            ++k;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00023,
                                                                        xh, k, item.JIANCHAXMBH,
                                                                        item.JIANCHAXMMC, item.JIANCHAFLBM, item.JIANCHASTBW,
                                                                        item.JIANCHAFXDM, item.JIANCHAZYDM, item.JIANCHATS), tran);
                        }
                        k = 0;
                        //插入诊断明细
                        foreach (var item in InObject.ZHENDUANLB)
                        {
                            ++k;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00025,
                                                                        xh, k, item.ICD10, item.ZHENDUANMC), tran);
                        }


                        #endregion

                        var listyylsh = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00017));
                        var yysqlsh   = listyylsh.Items["YYSQLSH"].ToString();

                        //插入预约申请信息fdsyy_sq
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00011,
                                                                    "申请单",                 //预约申请单名称
                                                                    InObject.YUYUEZT,      //预约申请单状态(0未确认,1已确认,9作废)
                                                                    InObject.JIANCHAKSDM,  //检查科室代码
                                                                    InObject.JIANCHAKSMC,  //检查科室名称
                                                                    InObject.BINGRENFPH,   //病人发票号
                                                                    InObject.BINGRENLX,    //病人类型
                                                                    InObject.BINGRENLXMC,  //病人类型名称
                                                                    InObject.BINGRENKH,    //病人卡号
                                                                    InObject.BINGRENMZH,   //病人门诊号
                                                                    InObject.BINGRENZYH,   //病人住院号
                                                                    InObject.BINGRENBQDM,  //病人病区代码
                                                                    InObject.BINGRENBQMC,  //病人病区名称
                                                                    InObject.BINGRENCWH,   //病人床位号
                                                                    InObject.BINGRENXM,    //病人姓名
                                                                    InObject.BINGRENXB,    //病人性别
                                                                    InObject.BINGRENNL,    //病人年龄
                                                                    InObject.BINGRENCSRQ,  //病人出生日期
                                                                    InObject.BINGRENLXDZ,  //病人联系地址
                                                                    InObject.BINGRENLXDH,  //病人联系电话
                                                                    InObject.SHENQINGYSGH, //申请医生工号
                                                                    InObject.SHENQINGYSMC, //申请医生姓名
                                                                    "",                    //申请科室代码
                                                                    "",                    //申请科室名称
                                                                    InObject.SHENQINGYYDM, //申请医院代码
                                                                    InObject.SHENQINGYYMC, //申请医院名称
                                                                    result.JCH,            //检查号
                                                                    InObject.YUYUERQ,      //检查日期
                                                                    InObject.YUYUESJ,      //检查时间

                                                                    jcxmdm,                //InObject.JIANCHAXMDM,//检查项目代码
                                                                    InObject.JIANCHAXMMC,  //检查项目名称

                                                                    InObject.JIANCHAXMLX,  //检查项目类型
                                                                    InObject.JIANCHABWDM,  //检查部位代码
                                                                    InObject.JIANCHABWMC,  //检查部位名称
                                                                    InObject.JIANCHASBDM,  //检查设备代码
                                                                    InObject.JIANCHASBMC,  //检查设备名称
                                                                    InObject.JIANCHASBDD,  //检查设备地点
                                                                    result.YYH,            //预约号
                                                                    InObject.SHENFENZH,    //身份证号
                                                                    InObject.YUYUESF,      //预约收费(0未收费,1已收费)
                                                                    InObject.JIANCHASQDBH, //检查申请单编号
                                                                    InObject.YINGXIANGFX,
                                                                    "",                    //影像方向
                                                                    yysqlsh,               //预约申请流水号
                                                                    yysqdbh,               //预约申请单编号
                                                                    InObject.XIANGMUHS,    //详细安排时间
                                                                    InObject.YEWULY,
                                                                    InObject.YEWULX,
                                                                    InObject.ZENGQIANG,
                                                                    InObject.JIZHEN,
                                                                    InObject.LINSHI
                                                                    ), tran);//业务来源
                        tran.Commit();

                        OutObject            = new SHEBEIYY_OUT();
                        OutObject.YUYUERQ    = InObject.YUYUERQ;
                        OutObject.YUYUESJ    = InObject.YUYUESJ;
                        OutObject.YUYUEH     = result.YYH;
                        OutObject.JIANCHAH   = result.JCH;
                        OutObject.YUYUESQDBH = yysqdbh;
                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();
                        throw ex;
                    }
                }
                //检验
                else
                {
                }
            }
            else
            {
                #region 市二
                if (InObject.JIANCHAXMDM == null || InObject.JIANCHAXMDM == "")
                {
                    throw new Exception(string.Format("检查项目不能为空!"));
                }
                var listjcsb = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00007, jcsbdm));
                if (listjcsb == null)
                {
                    throw new Exception(string.Format("未找到预约设备:设备编号[{0}]", jcsbdm));
                }
                if (listjcsb.Items.Count == 0)//判断有无该设备
                {
                    throw new Exception(string.Format("未找到预约设备:设备编号[{0}]", jcsbdm));
                }
                else
                {
                    if (listjcsb.Items["JCSBZT"].ToString() != "0")//设备是否可用
                    {
                        throw new Exception(string.Format("预约设备故障或者已停用:设备编号[{0}]", jcsbdm));
                    }
                    else
                    {
                        if (listjcsb.Items["SBYYBZ"].ToString() != "0")//设备是否可预约
                        {
                            throw new Exception(string.Format("预约设备为不可预约状态:设备编号[{0}]", jcsbdm));
                        }
                        else
                        {
                            //获取设备某天预约排班信息
                            var listsbyyxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00002, jcsbdm, yyrq, yysj, 0));
                            if (listsbyyxx == null)
                            {
                                throw new Exception(string.Format("未找到预约号信息!"));
                            }
                            //取得预约类型,再去取预约号及状态
                            var jcyylx = int.Parse(listsbyyxx.Items["JCYYLX"].ToString());
                            var yyhxx  = int.Parse(listsbyyxx.Items["YYHXX"].ToString());
                            var yyzs   = int.Parse(listsbyyxx.Items["YYZS"].ToString());
                            var kyys   = int.Parse(listsbyyxx.Items["KYYS"].ToString());
                            var xcyls  = int.Parse(listsbyyxx.Items["XCYLS"].ToString());
                            var yyys   = int.Parse(listsbyyxx.Items["YYYS"].ToString());
                            int xcyy   = 0;//现场预约值为2,则检索所有数据
                            var zykyys = int.Parse(listsbyyxx.Items["ZYKYYS"].ToString());
                            var zyyyys = int.Parse(listsbyyxx.Items["ZYYYYS"].ToString());
                            var mzkyys = int.Parse(listsbyyxx.Items["MZKYYS"].ToString());
                            var mzyyys = int.Parse(listsbyyxx.Items["MZYYYS"].ToString());
                            var sqkyys = int.Parse(listsbyyxx.Items["SQKYYS"].ToString());
                            var sqyyys = int.Parse(listsbyyxx.Items["SQYYYS"].ToString());
                            var tran   = DBVisitor.Connection.BeginTransaction();
                            var yysjd  = listsbyyxx.Items["KSSJ"].ToString() + "-" + listsbyyxx.Items["JSSJ"].ToString();
                            if (string.Compare(listsbyyxx.Items["PBRQ"].ToString(), DateTime.Now.ToString("yyyy-MM-dd")) == 0)
                            {
                                xcyy = 2;
                            }
                            if (xcyy == 0)//非现场预约,则判断门诊住院预约的比例值
                            {
                                if (InObject.BINGRENLX == 2)
                                {
                                    if (InObject.YEWULY == "3")
                                    {
                                        if (sqkyys <= sqyyys)
                                        {
                                            throw new Exception(string.Format("当前社区可预约数已预约完,不能再预约!"));
                                        }
                                        ++sqyyys;
                                    }
                                    else
                                    {
                                        if (zykyys <= zyyyys)
                                        {
                                            throw new Exception(string.Format("当前住院可预约数已预约完,不能再预约!"));
                                        }
                                        ++zyyyys;
                                    }
                                }
                                else
                                {
                                    if (InObject.YEWULY == "3")
                                    {
                                        if (sqkyys <= sqyyys)
                                        {
                                            throw new Exception(string.Format("当前社区可预约数已预约完,不能再预约!"));
                                        }
                                        ++sqyyys;
                                    }
                                    else
                                    {
                                        if (mzkyys <= mzyyys)
                                        {
                                            throw new Exception(string.Format("当前门诊可预约数已预约完,不能再预约!"));
                                        }
                                        ++mzyyys;
                                    }
                                }
                            }
                            if (jcyylx == 1)//有预约号模式
                            {
                                if (InObject.YUYUEH == null || InObject.YUYUEH == "")
                                {
                                    throw new Exception(string.Format("预约号不能为空!"));
                                }
                                yyh = InObject.YUYUEH.ToString();
                                var listsbyyhxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00010, yyhxx, yyh));
                                if (listsbyyhxx == null)
                                {
                                    throw new Exception(string.Format("未找到预约号:预约号:[{0}]!", yyh));
                                }
                                if (listsbyyhxx.Items["YYZT"].ToString() == "1")
                                {
                                    throw new Exception(string.Format("该预约号已被预约:预约号:[{0}]!", yyh));
                                }
                                else
                                {
                                    try
                                    {
                                        if (InObject.YEWULY == "3")
                                        {
                                            //更新预约排班表 社区
                                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00021, yyhxx, yyys + 1, sqyyys), tran);
                                        }
                                        else if (InObject.BINGRENLX == 2)
                                        {
                                            //更新预约排班表 住院
                                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                        }
                                        else
                                        {
                                            //更新预约排班表 门诊
                                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00020, yyhxx, yyys + 1, mzyyys), tran);
                                        }
                                        //更新预约排班表
                                        //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                        //更新预约号状态
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00009, yyhxx, yyh, 1), tran);
                                        //tran.Commit();
                                    }
                                    catch (Exception ex)
                                    {
                                        tran.Rollback();
                                        throw ex;
                                    }
                                }
                            }
                            else//无预约号模式
                            {
                                try
                                {
                                    //取得当前预约信息未预约的最小号码
                                    var listsbyyhxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00013, yyhxx, xcyy));
                                    if (listsbyyhxx == null)
                                    {
                                        throw new Exception(string.Format("预约已满!"));
                                    }
                                    yyh = listsbyyhxx.Items["YYH"].ToString();
                                    if (InObject.YEWULY == "3")
                                    {
                                        //更新预约排班表 社区
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00021, yyhxx, yyys + 1, sqyyys), tran);
                                    }
                                    else if (InObject.BINGRENLX == 2)
                                    {
                                        //更新预约排班表 住院
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                    }
                                    else
                                    {
                                        //更新预约排班表 门诊
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00020, yyhxx, yyys + 1, mzyyys), tran);
                                    }
                                    //更新预约排班表
                                    //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                    //更新预约号状态
                                    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00009, yyhxx, yyh, 1), tran);
                                    //tran.Commit();
                                }
                                catch (Exception ex)
                                {
                                    tran.Rollback();
                                    throw ex;
                                }
                            }
                            try
                            {
                                var listyylsh   = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00017));
                                var yysqlsh     = listyylsh.Items["YYSQLSH"].ToString();
                                var listyysqdbh = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00018));
                                var yysqdbh     = listyysqdbh.Items["YYSQDBH"].ToString();
                                //插入预约申请信息fdsyy_sq
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00011,
                                                                            "申请单",                 //预约申请单名称
                                                                            InObject.YUYUEZT,      //预约申请单状态(0未确认,1已确认,9作废)
                                                                            InObject.JIANCHAKSDM,  //检查科室代码
                                                                            InObject.JIANCHAKSMC,  //检查科室名称
                                                                            InObject.BINGRENFPH,   //病人发票号
                                                                            InObject.BINGRENLX,    //病人类型
                                                                            InObject.BINGRENLXMC,  //病人类型名称
                                                                            InObject.BINGRENKH,    //病人卡号
                                                                            InObject.BINGRENMZH,   //病人门诊号
                                                                            InObject.BINGRENZYH,   //病人住院号
                                                                            InObject.BINGRENBQDM,  //病人病区代码
                                                                            InObject.BINGRENBQMC,  //病人病区名称
                                                                            InObject.BINGRENCWH,   //病人床位号
                                                                            InObject.BINGRENXM,    //病人姓名
                                                                            InObject.BINGRENXB,    //病人性别
                                                                            InObject.BINGRENNL,    //病人年龄
                                                                            InObject.BINGRENCSRQ,  //病人出生日期
                                                                            InObject.BINGRENLXDZ,  //病人联系地址
                                                                            InObject.BINGRENLXDH,  //病人联系电话
                                                                            InObject.SHENQINGYSGH, //申请医生工号
                                                                            InObject.SHENQINGYSMC, //申请医生姓名
                                                                            "",                    //申请科室代码
                                                                            "",                    //申请科室名称
                                                                            InObject.SHENQINGYYDM, //申请医院代码
                                                                            InObject.SHENQINGYYMC, //申请医院名称
                                                                            "",                    //检查号
                                                                            InObject.YUYUERQ,      //检查日期
                                                                            InObject.YUYUESJ,      //检查时间
                                                                            InObject.JIANCHAXMDM,  //检查项目代码
                                                                            InObject.JIANCHAXMMC,  //检查项目名称
                                                                            InObject.JIANCHAXMLX,  //检查项目类型
                                                                            InObject.JIANCHABWDM,  //检查部位代码
                                                                            InObject.JIANCHABWMC,  //检查部位名称
                                                                            InObject.JIANCHASBDM,  //检查设备代码
                                                                            InObject.JIANCHASBMC,  //检查设备名称
                                                                            InObject.JIANCHASBDD,  //检查设备地点
                                                                            yyh,                   //预约号
                                                                            InObject.SHENFENZH,    //身份证号
                                                                            InObject.YUYUESF,      //预约收费(0未收费,1已收费)
                                                                            InObject.JIANCHASQDBH, //检查申请单编号
                                                                            InObject.YINGXIANGFX,
                                                                            yysjd,                 //影像方向
                                                                            yysqlsh,               //预约申请流水号
                                                                            yysqdbh,               //预约申请单编号
                                                                            InObject.XIANGXIAPSJ,  //详细安排时间
                                                                            InObject.YEWULY,
                                                                            1,
                                                                            0,
                                                                            0,
                                                                            0), tran);//业务来源
                                tran.Commit();
                                OutObject            = new SHEBEIYY_OUT();
                                OutObject.YUYUERQ    = yyrq;
                                OutObject.YUYUESJ    = yysj;
                                OutObject.YUYUEH     = yyh;
                                OutObject.YUYUESQDBH = yysqdbh;
                            }
                            catch (Exception ex)
                            {
                                tran.Rollback();
                                throw ex;
                            }
                        }
                    }
                }
                #endregion
            }
        }
Example #28
0
        /// <summary>
        /// 支付宝对账
        /// </summary>
        public override void ProcessMessage()
        {
            if (string.IsNullOrEmpty(InObject.BASEINFO.FENYUANDM))
            {
                throw new Exception("分院代码不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.DZLX))
            {
                throw new Exception("对账类型不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.JIESUANZE))
            {
                throw new Exception("结算总额不能为空!");
            }
            if (string.IsNullOrEmpty(InObject.DZRQ))
            {
                throw new Exception("对账日期不能为空!");
            }

            OutObject = new ZHIFUBAODZ_OUT();
            //操作员日对账 需传入操作工号
            if (InObject.DZLX == "1")
            {
                if (string.IsNullOrEmpty(InObject.CZYDM))
                {
                    throw new Exception("要对账的操作员代码不能为空!");
                }
                string    CZDM = string.Format(" and CAOZUOYDM='{0}'", InObject.CZYDM);
                DataTable ddxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00014, InObject.DZRQ, InObject.BASEINFO.FENYUANDM, CZDM));
                double    ze   = double.Parse(ddxx.Rows[0]["FYZE"].ToString());
                if (double.Parse(InObject.JIESUANZE) == ze)
                {
                    OutObject.DZJG = "0";
                }
                else if (double.Parse(InObject.JIESUANZE) > ze)
                {
                    OutObject.DZJG = "2";
                    OutObject.BZXX = string.Format("平台总额:{0}元,HIS总额{1}元,HIS多", ze, InObject.JIESUANZE);
                }
                else if (double.Parse(InObject.JIESUANZE) < ze)
                {
                    OutObject.DZJG = "1";
                    OutObject.BZXX = string.Format("平台总额:{0}元,HIS总额{1}元,平台多", ze, InObject.JIESUANZE);
                }
            }
            //日对账
            else if (InObject.DZLX == "2")
            {
                DataTable ddxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00014, InObject.DZRQ, InObject.BASEINFO.FENYUANDM, ""));
                double    ze   = double.Parse(ddxx.Rows[0]["FYZE"].ToString());
                if (double.Parse(InObject.JIESUANZE) == ze)
                {
                    OutObject.DZJG = "0";
                }
                else if (double.Parse(InObject.JIESUANZE) > ze)
                {
                    OutObject.DZJG = "2";
                    OutObject.BZXX = string.Format("平台总额:{0}元,HIS总额{1}元,HIS多", ze, InObject.JIESUANZE);
                }
                else if (double.Parse(InObject.JIESUANZE) < ze)
                {
                    OutObject.DZJG = "1";
                    OutObject.BZXX = string.Format("平台总额:{0}元,HIS总额{1}元,平台多", ze, InObject.JIESUANZE);
                }
            }
            else
            {
                throw new Exception("对账类型不正确!");
            }
        }
Example #29
0
        /// <summary>
        /// 支付宝结算
        /// </summary>
        public override void ProcessMessage()
        {
            var listpbxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00002, InObject.WIDOUTTRADENO));

            LogUnit.Write(listpbxx.Rows.Count.ToString());
            if (listpbxx.Rows.Count > 0)
            {
                throw new Exception("商户订单号不能重复!");
            }

            #region //手机网页支付
            if (InObject.JIESUANLX == "1")
            {
                //支付宝网关地址
                string GATEWAY_NEW = "http://wappaygw.alipay.com/service/rest.htm?";
                ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token////////////////////////////////////////////

                //返回格式
                string format = "xml";
                //必填,不需要修改

                //返回格式
                string v = "2.0";
                //必填,不需要修改

                if (string.IsNullOrEmpty(InObject.QINGQIUDH))
                {
                    throw new Exception("请求单号不能为空!");
                }
                //请求号
                string req_id = InObject.QINGQIUDH; //DateTime.Now.ToString("yyyyMMddHHmmss");
                //必填,须保证每次请求都是唯一

                //req_data详细信息
                if (string.IsNullOrEmpty(InObject.NOTIFYURL))
                {
                    throw new Exception("服务器异步通知页面路径不能为空!");
                }
                //服务器异步通知页面路径
                string notify_url = InObject.NOTIFYURL;//"http://商户网关地址/WS_WAP_PAYWAP-CSHARP-UTF-8/notify_url.aspx";
                //需http://格式的完整路径,不允许加?id=123这类自定义参数

                if (string.IsNullOrEmpty(InObject.CALLBACKURL))
                {
                    throw new Exception("页面跳转同步通知页面路径不能为空!");
                }
                //页面跳转同步通知页面路径
                string call_back_url = InObject.CALLBACKURL;//"http://127.0.0.1:64704/WS_WAP_PAYWAP-CSHARP-UTF-8/call_back_url.aspx";
                //需http://格式的完整路径,不允许加?id=123这类自定义参数

                if (string.IsNullOrEmpty(InObject.MERCHANTURL))
                {
                    throw new Exception("操作中断返回地址不能为空!");
                }
                //操作中断返回地址
                string merchant_url = InObject.MERCHANTURL;// "http://127.0.0.1:64704/WS_WAP_PAYWAP-CSHARP-UTF-8/xxxxx.aspx";
                //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数

                if (string.IsNullOrEmpty(InObject.WIDOUTTRADENO))
                {
                    throw new Exception("商户订单号不能为空!");
                }
                //商户订单号
                string out_trade_no = InObject.WIDOUTTRADENO;// WIDout_trade_no.Text.Trim();
                //商户网站订单系统中唯一订单号,必填

                if (string.IsNullOrEmpty(InObject.WIDSUBJECT))
                {
                    throw new Exception("订单名称不能为空!");
                }
                //订单名称
                string subject = InObject.WIDSUBJECT;//WIDsubject.Text.Trim();
                //必填

                if (string.IsNullOrEmpty(InObject.WIDTOTALFEE))
                {
                    throw new Exception("付款金额不能为空!");
                }
                //付款金额
                string total_fee = InObject.WIDTOTALFEE; //WIDtotal_fee.Text.Trim();
                //必填

                //请求业务参数详细
                string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url +
                                       "</notify_url><call_back_url>" + call_back_url +
                                       "</call_back_url><seller_account_name>" + Common.Alipay.Config.Seller_email +
                                       "</seller_account_name><out_trade_no>" + out_trade_no +
                                       "</out_trade_no><subject>" + subject +
                                       "</subject><total_fee>" + total_fee +
                                       "</total_fee><merchant_url>" + merchant_url +
                                       "</merchant_url></direct_trade_create_req>";
                //必填

                //把请求参数打包成数组
                Dictionary <string, string> sParaTempToken = new Dictionary <string, string>();
                sParaTempToken.Add("partner", Config.Partner);
                sParaTempToken.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTempToken.Add("sec_id", Config.Sign_type.ToUpper());
                sParaTempToken.Add("service", "alipay.wap.trade.create.direct");
                sParaTempToken.Add("format", format);
                sParaTempToken.Add("v", v);
                sParaTempToken.Add("req_id", req_id);
                sParaTempToken.Add("req_data", req_dataToken);

                //建立请求
                string sHtmlTextToken = Submit.BuildRequest(GATEWAY_NEW, sParaTempToken);
                //URLDECODE返回的信息
                Encoding code = Encoding.GetEncoding(Config.Input_charset);
                sHtmlTextToken = System.Web.HttpUtility.UrlDecode(sHtmlTextToken, code);

                //解析远程模拟提交后返回的信息
                Dictionary <string, string> dicHtmlTextToken = Submit.ParseResponse(sHtmlTextToken);

                //获取token
                string request_token = dicHtmlTextToken["request_token"];


                ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute////////////////////////////////////////////

                //业务详细
                string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>";
                //必填

                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00001,
                                                            InObject.QINGQIUDH,     //请求单号
                                                            '1',                    //结算类型 1手机网页支付 2二维码扫描支付 3商户代扣
                                                            InObject.NOTIFYURL,     //服务器异步通知页面路径
                                                            InObject.CALLBACKURL,   //页面跳转同步通知页面路径
                                                            InObject.MERCHANTURL,   //操作中断返回地址)
                                                            InObject.WIDOUTTRADENO, //商户订单号
                                                            InObject.WIDSUBJECT,    //订单名称
                                                            InObject.WIDTOTALFEE,   //订单金额
                                                            InObject.WIDBODY,       //订单描述
                                                            InObject.OUTTIME,       //超时时间取值范围
                                                            "",                     //买家支付宝用户号
                                                            "",                     //买家支付宝帐号
                                                            "",                     //授权号
                                                            "",                     //协议号
                                                            "0",                    //结算状态 0未结算 1结算成功 2结算失败
                                                            request_token));

                //把请求参数打包成数组
                Dictionary <string, string> sParaTemp = new Dictionary <string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("sec_id", Config.Sign_type.ToUpper());
                sParaTemp.Add("service", "alipay.wap.auth.authAndExecute");
                sParaTemp.Add("format", format);
                sParaTemp.Add("v", v);
                sParaTemp.Add("req_data", req_data);

                //建立请求
                string sHtmlText = Submit.BuildRequest(GATEWAY_NEW, sParaTemp, "get", "确认");
                OutObject            = new ZHIFUBAOJS_OUT();
                OutObject.JIESUANURL = sHtmlText;
            }
            #endregion
            #region 二维码支付
            else if (InObject.JIESUANLX == "2")
            {
                if (string.IsNullOrEmpty(InObject.BASEINFO.FENYUANDM))
                {
                    throw new Exception("医院代码不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.BASEINFO.CAOZUOYDM))
                {
                    throw new Exception("操作员代码不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.BASEINFO.CAOZUOYXM))
                {
                    throw new Exception("操作员姓名不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.JIUZHENKH))
                {
                    throw new Exception("就诊卡号不能为空!");
                }
                DataTable dt = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00006, InObject.BASEINFO.FENYUANDM));
                if (dt.Rows.Count <= 0)
                {
                    throw new Exception("查询不到医院代码为【" + InObject.BASEINFO.FENYUANDM + "】的医院信息");
                }
                var ddxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00002, InObject.WIDOUTTRADENO));
                if (ddxx.Rows.Count > 0)
                {
                    throw new Exception("已存在相同订单号的结算信息!");
                }
                if (string.IsNullOrEmpty(InObject.NOTIFYURL))
                {
                    throw new Exception("异步请求地址不能为空!");
                }
                //服务器异步通知页面路径
                string notify_url = ConfigurationManager.AppSettings["FWPTURL"] + "NotifyUrl2.aspx";//InObject.NOTIFYURL;
                //需http://格式的完整路径,不能加?id=123这类自定义参数
                //商户订单号
                string out_trade_no = InObject.WIDOUTTRADENO;// WIDout_trade_no.Text.Trim();
                //商户网站订单系统中唯一订单号,必填

                //订单名称
                string subject = InObject.WIDSUBJECT;// WIDsubject.Text.Trim();
                //必填

                //订单业务类型
                string product_code = "QR_CODE_OFFLINE";// WIDproduct_code.Text.Trim();
                //目前只支持QR_CODE_OFFLINE(二维码支付),必填

                //付款金额
                string total_fee = InObject.WIDTOTALFEE;// WIDtotal_fee.Text.Trim();
                //必填

                //卖家支付宝帐户
                string seller_email = dt.Rows[0]["SELLEREMAIL"].ToString(); //WIDseller_email.Text.Trim();
                //必填

                //订单描述
                string body = InObject.WIDBODY;

                //把请求参数打包成数组
                SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("service", "alipay.acquire.precreate");
                sParaTemp.Add("notify_url", notify_url);
                sParaTemp.Add("out_trade_no", out_trade_no);
                sParaTemp.Add("subject", subject);
                sParaTemp.Add("product_code", product_code);
                sParaTemp.Add("total_fee", total_fee);
                sParaTemp.Add("seller_email", seller_email);
                sParaTemp.Add("body", body);
                sParaTemp.Add("it_b_pay", InObject.OUTTIME);
                sParaTemp.Add("key", "rfk3sw6dlq28k2tijjj54le6lfhw73s4");//取余杭卫生局的key
                //将请求数据 插入数据库
                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00001,
                                                            InObject.WIDOUTTRADENO,               //商户订单号
                                                            '2',                                  //结算类型 1手机网页支付 2二维码扫描支付 3商户代扣
                                                            InObject.NOTIFYURL,                   //服务器异步通知页面路径
                                                            "",                                   //页面跳转同步通知页面路径
                                                            "",                                   //操作中断返回地址)
                                                            InObject.WIDSUBJECT,                  //订单名称
                                                            InObject.WIDTOTALFEE,                 //订单金额
                                                            InObject.WIDBODY,                     //订单描述
                                                            InObject.OUTTIME,                     //超时时间取值范围
                                                            InObject.BUYERID,                     //买家支付宝用户号
                                                            InObject.BUYEREMAIL,                  //买家支付宝帐号
                                                            InObject.AUTHNO,                      //授权号
                                                            InObject.AGREENNO,                    //协议号
                                                            "0",                                  //结算状态 0未结算 1结算成功 2结算失败
                                                            "",
                                                            InObject.BASEINFO.FENYUANDM,          //分院代码
                                                            dt.Rows[0]["SELLEREMAIL"].ToString(), //收款帐号
                                                            InObject.BASEINFO.CAOZUOYXM,
                                                            InObject.BASEINFO.CAOZUOYDM,
                                                            "",                //身份证号
                                                            InObject.JIUZHENKH //就诊卡号
                                                            ));

                //建立请求
                string sHtmlText = Submit.BuildRequest(sParaTemp);
                //记录日志
                LogUnit.Write("JIESUANLX == 2###" + sHtmlText, "ZHIFUBAOJS");
                OutObject = new ZHIFUBAOJS_OUT();
                XmlDocument xmlDoc = new XmlDocument();
                try
                {
                    string PicUrl = "";
                    xmlDoc.LoadXml(sHtmlText);
                    XmlNodeList nodeList = xmlDoc.SelectSingleNode("alipay").ChildNodes;
                    foreach (XmlNode xn in nodeList)
                    {
                        //判断是否异常,如果返回异常 则抛出
                        //if (xn.Name == "is_success" && xn.InnerText == "F")
                        //{
                        //    throw new Exception("支付宝请求生成二维码失败!");
                        //}
                        if (xn.Name == "error")
                        {
                            throw new Exception(xn.InnerText);
                        }
                        if (xn.Name == "response")
                        {
                            XmlElement  xe      = (XmlElement)xn;
                            XmlNodeList subList = xe.ChildNodes;
                            foreach (XmlNode xmlNode in subList)
                            {
                                if (xmlNode.Name == "alipay")
                                {
                                    XmlElement  xemx      = (XmlElement)xmlNode;
                                    XmlNodeList submxList = xemx.ChildNodes;

                                    foreach (XmlNode mxnode in submxList)
                                    {
                                        if (mxnode.Name == "detail_error_code")
                                        {
                                            OutObject.ERRORCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "detail_error_des")
                                        {
                                            OutObject.ERRORDES = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "big_pic_url")
                                        {
                                            //   OutObject.PICURL = mxnode.InnerText;
                                            PicUrl = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "out_trade_no")
                                        {
                                            OutObject.WIDOUTTRADENO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "qr_code")
                                        {
                                            OutObject.QRCODE = mxnode.InnerText;
                                        }
                                    }
                                    try
                                    {//将二维码图片下载到服务平台本地
                                        var path = HostingEnvironment.ApplicationPhysicalPath + "ZFBImg\\";
                                        DeletePic(path);
                                        System.Net.WebClient webClient = new System.Net.WebClient();
                                        webClient.DownloadFile(PicUrl, path + OutObject.WIDOUTTRADENO + ".jpg");
                                        OutObject.PICLOCAL = OutObject.WIDOUTTRADENO + ".jpg";
                                    }
                                    catch
                                    {
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception exp)
                {
                    throw new Exception(exp.Message.ToString());
                }
            }
            #endregion
            #region 签约账户支付 商户代扣
            else if (InObject.JIESUANLX == "3")
            {
                if (string.IsNullOrEmpty(InObject.BASEINFO.FENYUANDM))
                {
                    throw new Exception("医院代码不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.BASEINFO.CAOZUOYDM))
                {
                    throw new Exception("操作员代码不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.BASEINFO.CAOZUOYXM))
                {
                    throw new Exception("操作员姓名不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.JIUZHENKH))
                {
                    throw new Exception("就诊卡号不能为空!");
                }
                DataTable dt = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00006, InObject.BASEINFO.FENYUANDM));
                if (dt.Rows.Count <= 0)
                {
                    throw new Exception("查询不到医院代码为【" + InObject.BASEINFO.FENYUANDM + "】的医院信息");
                }

                var ddxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00002, InObject.WIDOUTTRADENO));
                if (ddxx.Rows.Count > 0)
                {
                    throw new Exception("已存在相同订单号的结算信息!");
                }

                SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("service", "alipay.acquire.createandpay");
                sParaTemp.Add("notify_url", InObject.NOTIFYURL);
                sParaTemp.Add("seller_email", dt.Rows[0]["SELLEREMAIL"].ToString()); //Config.Seller_email);
                //sParaTemp.Add("seller_id", "2088121042783039");
                sParaTemp.Add("out_trade_no", InObject.WIDOUTTRADENO);               //InObject.WIDOUTTRADENO
                sParaTemp.Add("subject", InObject.WIDSUBJECT);
                sParaTemp.Add("product_code", "GENERAL_WITHHOLDING");
                sParaTemp.Add("total_fee", InObject.WIDTOTALFEE);
                sParaTemp.Add("agreement_info", "{\"agreement_no\":\"" + InObject.AGREENNO + "\"}"); //协议号 必传 签约后传回
                sParaTemp.Add("key", "rfk3sw6dlq28k2tijjj54le6lfhw73s4");                            //取余杭卫生局的key
                // sParaTemp.Add("royalty_type", "ROYALTY");
                // sParaTemp.Add("buyer_id", InObject.BUYERID);
                // sParaTemp.Add("buyer_email", InObject.BUYEREMAIL);
                // sParaTemp.Add("body", InObject.WIDBODY);
                //sParaTemp.Add("it_b_pay", InObject.OUTTIME);
                //sParaTemp.Add("dynamic_id_type", "bar_code");//动态ID类型
                //sParaTemp.Add("dynamic_id", "kff3hjwqzxrbvrrkd0");//动态ID
                //  sParaTemp.Add("auth_no", InObject.AUTHNO);

                string    sfzh = "";
                DataTable qyxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00021, InObject.AGREENNO));
                if (qyxx.Rows.Count >= 0)
                {
                    sfzh = qyxx.Rows[0]["SHENFENZH"].ToString();
                }
                //将请求数据 插入数据库
                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00001,
                                                            InObject.WIDOUTTRADENO,               //商户订单号
                                                            '3',                                  //结算类型 1手机网页支付 2二维码扫描支付 3商户代扣
                                                            "",                                   //服务器异步通知页面路径
                                                            "",                                   //页面跳转同步通知页面路径
                                                            "",                                   //操作中断返回地址)
                                                            InObject.WIDSUBJECT,                  //订单名称
                                                            InObject.WIDTOTALFEE,                 //订单金额
                                                            InObject.WIDBODY,                     //订单描述
                                                            InObject.OUTTIME,                     //超时时间取值范围
                                                            InObject.BUYERID,                     //买家支付宝用户号
                                                            InObject.BUYEREMAIL,                  //买家支付宝帐号
                                                            InObject.AUTHNO,                      //授权号
                                                            InObject.AGREENNO,                    //协议号
                                                            "0",                                  //结算状态 0未结算 1结算成功 2结算失败
                                                            "",
                                                            InObject.BASEINFO.FENYUANDM,          //分院代码
                                                            dt.Rows[0]["SELLEREMAIL"].ToString(), //收款帐号
                                                            InObject.BASEINFO.CAOZUOYXM,
                                                            InObject.BASEINFO.CAOZUOYDM,
                                                            sfzh,
                                                            InObject.JIUZHENKH
                                                            ));

                LogUnit.Write("开始请求支付宝!");
                //建立请求
                string sHtmlText = Submit.BuildRequest(sParaTemp);
                //记录日志
                LogUnit.Write("JIESUANLX == 3###" + sHtmlText, "ZHIFUBAOJS");
                OutObject = new ZHIFUBAOJS_OUT();
                XmlDocument xmlDoc = new XmlDocument();
                try
                {
                    xmlDoc.LoadXml(sHtmlText);
                    XmlNodeList nodeList = xmlDoc.SelectSingleNode("alipay").ChildNodes;
                    foreach (XmlNode xn in nodeList)
                    {
                        if (xn.Name == "error")
                        {
                            DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set FAILERR='{0}',JIESUANZT='-1' where IOUTTRADENO='{1}' ", xn.InnerText, InObject.WIDOUTTRADENO));
                            throw new Exception(xn.InnerText);
                        }
                        if (xn.Name == "response")
                        {
                            XmlElement  xe      = (XmlElement)xn;
                            XmlNodeList subList = xe.ChildNodes;
                            foreach (XmlNode xmlNode in subList)
                            {
                                if (xmlNode.Name == "alipay")
                                {
                                    XmlElement  xemx      = (XmlElement)xmlNode;
                                    XmlNodeList submxList = xemx.ChildNodes;

                                    foreach (XmlNode mxnode in submxList)
                                    {
                                        if (mxnode.Name == "detail_error_code")
                                        {
                                            OutObject.ERRORCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "detail_error_des")
                                        {
                                            OutObject.ERRORDES = mxnode.InnerText;
                                            throw new Exception(mxnode.InnerText);
                                        }
                                        if (mxnode.Name == "result_code")
                                        {
                                            OutObject.RESULTCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "trade_no")
                                        {
                                            OutObject.TRADENO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "out_trade_no")
                                        {
                                            OutObject.WIDOUTTRADENO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "buyer_user_id")
                                        {
                                            OutObject.BUYERID = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "buyer_logon_id")
                                        {
                                            OutObject.BUYEREMAIL = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "total_fee")
                                        {
                                            OutObject.TOTALFREE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "gmt_payment")
                                        {
                                            OutObject.PAYMENTTIME = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "extend_info")
                                        {
                                            OutObject.EXTENDINFO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "fund_bill_list")
                                        {
                                            OutObject.FUNDBILLLIST = mxnode.InnerText;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (OutObject.RESULTCODE.ToUpper() == "ORDER_SUCCESS_PAY_SUCCESS")
                    {
                        DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set TRADENO='{0}',JIESUANZT='1',JIESUANSJ= sysdate,IBUYERID='{1}',IBUYEREMAIL='{2}'  where IOUTTRADENO='{3}' ", OutObject.TRADENO, OutObject.BUYERID, OutObject.BUYEREMAIL, InObject.WIDOUTTRADENO));
                    }
                    else
                    {
                        DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set FAILERR='{0}',JIESUANZT='-1',IBUYERID='{1}',IBUYEREMAIL='{2}'  where IOUTTRADENO='{3}' ", OutObject.ERRORDES, OutObject.BUYERID, OutObject.BUYEREMAIL, InObject.WIDOUTTRADENO));
                    }
                }
                catch (Exception ep)
                {
                    LogUnit.Write(ep.Message);
                    throw new Exception(ep.Message);
                }
            }
            #endregion
            else
            {
                throw new Exception("支付类型不正确!");
            }
        }
Example #30
0
        public override void ProcessMessage()
        {
            #region 手机网页退费
            if (InObject.TUIFEILX == "1")
            {
                ////////////////////////////////////////////请求参数////////////////////////////////////////////


                //服务器异步通知页面路径
                string notify_url = InObject.NOTIFYURL;
                //需http://格式的完整路径,不允许加?id=123这类自定义参数

                //卖家支付宝帐户
                string seller_email = Common.Alipay.Config.Seller_email;
                //必填

                if (string.IsNullOrEmpty(InObject.REFUNDDATA))
                {
                    throw new Exception("退款请求时间不能为空!");
                }

                try
                {
                    string dt = DateTime.Parse(InObject.REFUNDDATA).ToString("yyyy-MM-dd HH:mm:ss");
                }
                catch
                {
                    throw new Exception("退款时间格式不正确!");
                }
                //退款当天日期
                string refund_date = InObject.REFUNDDATA;
                //必填,格式:年[4位]-月[2位]-日[2位] 小时[2位 24小时制]:分[2位]:秒[2位],如:2007-10-01 13:13:13

                if (string.IsNullOrEmpty(InObject.BATCHNO))
                {
                    throw new Exception("批次号不能为空!");
                }
                //批次号
                string batch_no = InObject.BATCHNO;// WIDbatch_no.Text.Trim();
                //必填,格式:当天日期[8位]+序列号[3至24位],如:201008010000001

                if (string.IsNullOrEmpty(InObject.BATCHNUM))
                {
                    throw new Exception("退款笔数不能为空!");
                }
                //退款笔数
                string batch_num = InObject.BATCHNUM;
                //必填,参数detail_data的值中,“#”字符出现的数量加1,最大支持1000笔(即“#”字符出现的数量999个)

                //退款用trade_no 异步通知回调的时候你们可以拿到
                if (string.IsNullOrEmpty(InObject.DETAILDATA))
                {
                    throw new Exception("退款详细数据不能为空!");
                }
                //退款详细数据  结算时的trade_no
                string detail_data = InObject.DETAILDATA;// WIDdetail_data.Text.Trim();
                //必填,具体格式请参见接口技术文档


                ////////////////////////////////////////////////////////////////////////////////////////////////

                //把请求参数打包成数组
                SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("service", "refund_fastpay_by_platform_pwd");
                sParaTemp.Add("notify_url", notify_url);
                sParaTemp.Add("seller_email", seller_email);
                sParaTemp.Add("refund_date", refund_date);
                sParaTemp.Add("batch_no", batch_no);
                sParaTemp.Add("batch_num", batch_num);
                sParaTemp.Add("detail_data", detail_data);

                //建立请求
                string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "确认");
                OutObject           = new ZHIFUBAOTF_OUT();
                OutObject.TUIFEIURL = sHtmlText;
            }
            #endregion
            #region 商户代扣、二维码支付退费,两个方式一样
            else if (InObject.TUIFEILX == "2" || InObject.TUIFEILX == "3")
            {
                var listpbxx = DBVisitor.ExecuteTable(SqlLoad.GetFormat(SQ.HIS00002, InObject.WIDOUTTRADENO));
                if (listpbxx.Rows.Count <= 0)
                {
                    //if(string.IsNullOrEmpty(InObject.WIDTOTALFEE)&&)
                    throw new Exception("订单号为【" + InObject.WIDOUTTRADENO + "】的结算信息不存在!");
                }
                if (listpbxx.Rows[0]["JIESUANZT"].ToString() == "0")
                {
                    throw new Exception("订单【" + InObject.WIDOUTTRADENO + "】未支付!");
                }
                //-1支付失败 2未入账 3 退费成功 4 退费中 5 退费失败
                if (listpbxx.Rows[0]["JIESUANZT"].ToString() == "-1")
                {
                    throw new Exception("订单【" + InObject.WIDOUTTRADENO + "】支付未成功!");
                }
                //正记录的冲销标志=1代表 已经退费
                if (listpbxx.Rows[0]["CXBZ"].ToString() == "1")
                {
                    throw new Exception("订单【" + InObject.WIDOUTTRADENO + "】已退费!");
                }
                if (double.Parse(InObject.WIDTOTALFEE) != double.Parse(listpbxx.Rows[0]["ITOTALFEE"].ToString()))
                {
                    throw new Exception("传入的金额与结算的金额不一致!");
                }

                SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("service", "alipay.acquire.refund");
                sParaTemp.Add("out_trade_no", InObject.WIDOUTTRADENO);                    //out_trade_no	商户网站唯一订单号	String(64)	支付宝合作商户网站唯一订单号。	不可空	HZ0120131127001
                sParaTemp.Add("refund_amount", listpbxx.Rows[0]["ITOTALFEE"].ToString()); //refund_amount	退款金额	number(9,2)	退款金额不能大于订单金额,全额退款必须与订单金额一致。	不可空	200.00
                sParaTemp.Add("trade_no", listpbxx.Rows[0]["TRADENO"].ToString());        //trade_no	支付宝交易号	String(64)	该交易在支付宝系统中的交易流水号。最短16位,最长64位。如果同时传了out_trade_no和trade_no,则以trade_no为准。	可空	2013112611001004680073956707
                sParaTemp.Add("out_request_no", InObject.WIDOUTREQUESTNO);                //out_request_no	商户退款请求单号	String(64)	商户退款请求单号,用以标识本次交易的退款请求。如果不传入本参数,则以out_trade_no填充本参数的值。同时,认为本次请求为全额退款,要求退款金额和交易支付金额一致。	可空	HZ01RF001
                sParaTemp.Add("operator_id", InObject.BASEINFO.CAOZUOYDM);                //operator_id	操作员号	String(28)	卖家的操作员ID。	可空	OP001
                sParaTemp.Add("refund_reason", InObject.REFUNDREASON);                    //refund_reason	退款原因	String(128)	退款原因说明。	可空	正常退款
                sParaTemp.Add("key", "rfk3sw6dlq28k2tijjj54le6lfhw73s4");                 //取余杭卫生局的key
                //sParaTemp.Add("it_b_pay", InObject.OUTTIME);
                //ref_ids	业务关联ID集合	String(256)	业务关联ID集合,用于放置商户的退款单号、退款流水号等信息,json格式,具体请参见“4.3  业务关联ID集合说明”。	可空	[{"id_type":"orig_out_request_no","id":"HZ0001"},{"id_type":"orig_out_order_no","id":"HZ0001"}]



                string sHtmlText = Submit.BuildRequest(sParaTemp);
                OutObject = new ZHIFUBAOTF_OUT();
                XmlDocument xmlDoc = new XmlDocument();
                try
                {
                    xmlDoc.LoadXml(sHtmlText);
                    XmlNodeList nodeList = xmlDoc.SelectSingleNode("alipay").ChildNodes;
                    foreach (XmlNode xn in nodeList)
                    {
                        //判断是否异常,如果返回异常 则抛出
                        //if (xn.Name == "is_success" && xn.InnerText == "F")
                        //{

                        //    throw new Exception("支付宝商户代扣失败!");
                        //}
                        if (xn.Name == "error")
                        {
                            throw new Exception(xn.InnerText);
                        }
                        if (xn.Name == "response")
                        {
                            XmlElement  xe      = (XmlElement)xn;
                            XmlNodeList subList = xe.ChildNodes;
                            foreach (XmlNode xmlNode in subList)
                            {
                                if (xmlNode.Name == "alipay")
                                {
                                    XmlElement  xemx      = (XmlElement)xmlNode;
                                    XmlNodeList submxList = xemx.ChildNodes;

                                    foreach (XmlNode mxnode in submxList)
                                    {
                                        if (mxnode.Name == "detail_error_code")
                                        {
                                            OutObject.ERRORCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "detail_error_des")
                                        {
                                            OutObject.ERRORDES = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "result_code")
                                        {
                                            OutObject.RESULTCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "trade_no")
                                        {
                                            OutObject.TRADENO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "out_trade_no")
                                        {
                                            OutObject.WIDOUTREQUESTNO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "buyer_user_id")
                                        {
                                            OutObject.BUYERUSERID = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "buyer_logon_id")
                                        {
                                            OutObject.BUYEREMAIL = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "fund_change")
                                        {
                                            OutObject.FUNDCHANGE = mxnode.InnerText;
                                        }

                                        if (mxnode.Name == "refund_fee")
                                        {
                                            OutObject.REFUNDFEE = mxnode.InnerText;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (OutObject.RESULTCODE.ToUpper() == "SUCCESS")
                    {
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00015, "T" + InObject.WIDOUTTRADENO, "3",
                                                                    InObject.BASEINFO.CAOZUOYXM, InObject.BASEINFO.CAOZUOYDM, InObject.WIDOUTTRADENO));
                        //更新付记录状态 退费成功
                        // DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set JIESUANZT='3' where IOUTTRADENO='{0}' ", InObject.WIDOUTREQUESTNO));
                        //更新正记录 冲销标志
                        DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set CXBZ='1' where IOUTTRADENO='{0}' ", InObject.WIDOUTTRADENO));
                    }
                }
                catch (Exception exp)
                {
                    throw new Exception(exp.Message.ToString());
                }
            }
            #endregion
            #region 支付宝中心多了结算数据,冲正
            else if (InObject.TUIFEILX == "4")
            {
                SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("service", "alipay.acquire.refund");
                sParaTemp.Add("out_trade_no", InObject.WIDOUTTRADENO);     //out_trade_no	商户网站唯一订单号	String(64)	支付宝合作商户网站唯一订单号。	不可空	HZ0120131127001
                sParaTemp.Add("refund_amount", InObject.WIDTOTALFEE);      //refund_amount	退款金额	number(9,2)	退款金额不能大于订单金额,全额退款必须与订单金额一致。	不可空	200.00
                sParaTemp.Add("trade_no", InObject.TRADENO);               //trade_no	支付宝交易号	String(64)	该交易在支付宝系统中的交易流水号。最短16位,最长64位。如果同时传了out_trade_no和trade_no,则以trade_no为准。	可空	2013112611001004680073956707
                sParaTemp.Add("out_request_no", InObject.WIDOUTREQUESTNO); //out_request_no	商户退款请求单号	String(64)	商户退款请求单号,用以标识本次交易的退款请求。如果不传入本参数,则以out_trade_no填充本参数的值。同时,认为本次请求为全额退款,要求退款金额和交易支付金额一致。	可空	HZ01RF001
                sParaTemp.Add("operator_id", InObject.BASEINFO.CAOZUOYDM); //operator_id	操作员号	String(28)	卖家的操作员ID。	可空	OP001
                sParaTemp.Add("refund_reason", InObject.REFUNDREASON);     //refund_reason	退款原因	String(128)	退款原因说明。	可空	正常退款
                sParaTemp.Add("key", "rfk3sw6dlq28k2tijjj54le6lfhw73s4");  //取余杭卫生局的key

                string sHtmlText = Submit.BuildRequest(sParaTemp);
                OutObject = new ZHIFUBAOTF_OUT();
                XmlDocument xmlDoc = new XmlDocument();
                try
                {
                    xmlDoc.LoadXml(sHtmlText);
                    XmlNodeList nodeList = xmlDoc.SelectSingleNode("alipay").ChildNodes;
                    foreach (XmlNode xn in nodeList)
                    {
                        if (xn.Name == "error")
                        {
                            throw new Exception(xn.InnerText);
                        }
                        if (xn.Name == "response")
                        {
                            XmlElement  xe      = (XmlElement)xn;
                            XmlNodeList subList = xe.ChildNodes;
                            foreach (XmlNode xmlNode in subList)
                            {
                                if (xmlNode.Name == "alipay")
                                {
                                    XmlElement  xemx      = (XmlElement)xmlNode;
                                    XmlNodeList submxList = xemx.ChildNodes;

                                    foreach (XmlNode mxnode in submxList)
                                    {
                                        if (mxnode.Name == "detail_error_code")
                                        {
                                            OutObject.ERRORCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "detail_error_des")
                                        {
                                            OutObject.ERRORDES = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "result_code")
                                        {
                                            OutObject.RESULTCODE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "trade_no")
                                        {
                                            OutObject.TRADENO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "out_trade_no")
                                        {
                                            OutObject.WIDOUTREQUESTNO = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "buyer_user_id")
                                        {
                                            OutObject.BUYERUSERID = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "buyer_logon_id")
                                        {
                                            OutObject.BUYEREMAIL = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "fund_change")
                                        {
                                            OutObject.FUNDCHANGE = mxnode.InnerText;
                                        }
                                        if (mxnode.Name == "refund_fee")
                                        {
                                            OutObject.REFUNDFEE = mxnode.InnerText;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    //if (OutObject.RESULTCODE.ToUpper() == "SUCCESS")
                    //{
                    //    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00015, InObject.WIDOUTREQUESTNO, "3",
                    //               InObject.BASEINFO.CAOZUOYXM, InObject.BASEINFO.CAOZUOYDM, InObject.WIDOUTTRADENO));
                    //    //更新付记录状态 退费成功
                    //    // DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set JIESUANZT='3' where IOUTTRADENO='{0}' ", InObject.WIDOUTREQUESTNO));
                    //    //更新正记录 冲销标志
                    //    DBVisitor.ExecuteNonQuery(string.Format("update JR_ZHIFUBAOJSXX set CXBZ='1' where IOUTTRADENO='{0}' ", InObject.WIDOUTTRADENO));

                    //}
                }
                catch (Exception exp)
                {
                    throw new Exception(exp.Message.ToString());
                }
            }
            #endregion
            else
            {
                throw new Exception("退费类型不正确!");
            }
        }