Пример #1
0
        public string SettleMZInsurance(request <settleMZInsurance> settleMZInsurance)
        {
            if (settleMZInsurance == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var ptInfo = ptInfoBLL.GetPtInfoByCardNo("", Convert.ToInt32(settleMZInsurance.model.patCardType), settleMZInsurance.model.patCardNo);

            if (ptInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var dept   = sysDeptBLL.GetDeptByCode(settleMZInsurance.model.deptCode);
            var doctor = sysUserinfoBLL.GetRDoctor(settleMZInsurance.model.doctorCode);

            var pt_Info = ptInfoBLL.GetPtInfoByCardNo("", Convert.ToInt32(settleMZInsurance.model.patCardType), settleMZInsurance.model.patCardNo);

            if (pt_Info == null)
            {
                return(RsXmlHelper.ResXml(-1, "患者信息为空"));
            }

            var regInfo = reginfoBLL.GetReg_Info(Convert.ToInt32(settleMZInsurance.model.mzFeeId));

            var orderInfoList = orderInfoBLL.GetMZOrderInfo(settleMZInsurance.model.mzFeeId, settleMZInsurance.model.mzBillId);

            if (regInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "挂号信息为空"));
            }

            var ybsssno = commKeyBLL.GetYBNO();

            var FeeTrail = feeTrialBLL.Get(x => x.bke384 == settleMZInsurance.model.SSSerNo);

            if (FeeTrail == null && !string.IsNullOrWhiteSpace(FeeTrail.transBody))
            {
                //return RsXmlHelper.ResXml(0, JsonOperator.JsonSerialize(FeeTrail.transBody));
                return(XMLHelper.XmlSerialize(new response <FeeSettlement>()
                {
                    model = new FeeSettlement()
                    {
                        resultCode = 0,
                        resultMessage = FeeTrail.transBody,
                        akc190 = FeeTrail.akc190
                    }
                }));
            }
            FY005 fY005 = new FY005()
            {
                aaz500 = settleMZInsurance.model.socialSecurityNo,
                bzz269 = string.IsNullOrWhiteSpace(settleMZInsurance.model.patCardPwd) ? "000000" : settleMZInsurance.model.patCardPwd,
                akc190 = FeeTrail.akc190,
                aka130 = FeeTrail.aka130,
                bkc320 = FeeTrail.bkc320,
                ckc350 = FeeTrail.ckc350,
                aka030 = FeeTrail.aka030,
                akc264 = FeeTrail.akc264.ToString(),
                ckc601 = FeeTrail.ckc601,
                bke384 = FeeTrail.bke384
            };

            var ybSno = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno;
            var getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "FY005|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            if (getVerifyCodeResult.resultCode != 0)
            {
                return(null);
            }

            var version = getVerifyCodeResult.outParam.Split("|")[2];
            var verify  = getVerifyCodeResult.outParam.Split("|")[0] + "|" + getVerifyCodeResult.outParam.Split("|")[1];
            var result  = HealthInsuranceHelper.RegTrial <BaseMedInsurance <Entity.SResponse.FY005> >("FY005", version, verify, ybsssno.ToString(), fY005);

            if (result.transReturnCode == "0" || result.transReturnCode == "00000000")
            {
                var resultObj = new Entity.SResponse.getMZInsurance()
                {
                    resultCode    = 0,
                    resultMessage = "",
                    mzFeeId       = regInfo.regid,
                    mzBillId      = string.Join(",", orderInfoList.Select(x => x.billid)),
                    SSFeeNo       = ybSno,
                    SSBillNumber  = null,
                    time          = DateTime.Now,
                    recipeCount   = orderInfoList.Count.ToString(),
                    deptCode      = dept.code,
                    doctorCode    = doctor.userno,
                    doctorName    = doctor.username,
                    payType       = "医保",
                    payAmount     = result.transBody.akb067.ToString(),
                    totalAmout    = orderInfoList.Sum(x => x.totprice).ToString(),
                    akc190        = fY005.akc190,
                    SSInfoNew     = JsonOperator.JsonSerialize(result.transBody)
                };
                return(XMLHelper.XmlSerialize(new response <FeeSettlement>()
                {
                    model = new FeeSettlement()
                    {
                        resultCode = 0,
                        resultMessage = JsonOperator.JsonSerialize(result.transBody),
                        akc190 = fY005.akc190
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, result.transReturnMessage + "{" + JsonOperator.JsonSerialize(fY005) + "}"));
            }
        }