Ejemplo n.º 1
0
        /// <summary>
        /// 职工取消结算
        /// </summary>
        /// <param name="param"></param>
        public string WorkerSettlementCancel(WorkerSettlementCancelParam param)
        {
            var    cancelLimit = param.CancelLimit;
            string cancelData;

            if (param.CancelLimit == "1")
            {
                cancelData = Cancel(param);
            }
            else
            {
                param.CancelLimit = "1";
                cancelData        = Cancel(param);

                param.CancelLimit = "2";
                cancelData        = Cancel(param);
            }
            string Cancel(WorkerSettlementCancelParam paramc)
            {
                //返回状态
                var resultState = new byte[1024];
                //消息
                var msg      = new byte[1024];
                var yearSign = new byte[1024];

                WorkerMedicalInsurance.WorkerSettlementCancel
                    (param.AdministrativeArea,
                    param.OrganizationCode,
                    param.MedicalInsuranceHospitalizationNo,
                    param.SettlementNo,
                    param.CancelLimit,
                    param.User.UserName,
                    yearSign,
                    resultState,
                    msg
                    );
                if (CommonHelp.StrToTransCoding(resultState) != "1")
                {
                    throw new Exception(CommonHelp.StrToTransCoding(msg));
                }
                return(CommonHelp.StrToTransCoding(yearSign));
            }

            return(cancelData);
        }
        /// <summary>
        ///取消结算
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public string WorkerSettlementCancel(WorkerSettlementCancelParam param)
        {
            string resultData = null;

            if (param.CancelLimit == "1")
            { //划卡取消
                if (param.WorkersStrokeCardNo != null)
                {
                    _workerMedicalInsuranceRepository.CancelWorkerStrokeCard(new CancelWorkersStrokeCardParam()
                    {
                        WorkersStrokeCardNo = param.WorkersStrokeCardNo,
                        Operate             = param.User.UserName,
                        Remarks             = param.CancelSettlementRemarks
                    });
                }

                // 结算取消
                resultData = _workerMedicalInsuranceRepository.WorkerSettlementCancel(param);
                //取消交易id
                var cancelTransactionId = param.User.TransKey;
                //回参构建
                var xmlData = new HospitalSettlementCancelXml()
                {
                    SettlementNo = param.SettlementNo,
                };
                var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
                var saveXml         = new SaveXmlDataParam()
                {
                    User = param.User,
                    MedicalInsuranceBackNum = param.MedicalInsuranceHospitalizationNo,
                    MedicalInsuranceCode    = "42",
                    BusinessId = param.BusinessId,
                    BackParam  = strXmlBackParam
                };
                //存基层
                _webBasicRepository.SaveXmlData(saveXml);
                var updateParam = new UpdateMedicalInsuranceResidentSettlementParam()
                {
                    UserId = param.User.UserId,
                    Id     = param.Id,
                    CancelTransactionId     = cancelTransactionId,
                    MedicalInsuranceState   = MedicalInsuranceState.MedicalInsurancePreSettlement,
                    CancelSettlementRemarks = param.CancelSettlementRemarks
                };
                //存入中间层
                _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParam);
                //添加日志
                var logParam = new AddHospitalLogParam()
                {
                    JoinOrOldJson   = JsonConvert.SerializeObject(param),
                    ReturnOrNewJson = "{ yearSign= " + resultData + " }",
                    User            = param.User,
                    Remark          = "职工住院结算取消",
                    RelationId      = param.Id,
                };
                _systemManageRepository.AddHospitalLog(logParam);
            }
            else if (param.CancelLimit == "2")//取消结算,并删除资料<==>删除资料与取消入院
            {
                //回参构建
                var xmlData = new HospitalizationRegisterXml()
                {
                    MedicalInsuranceHospitalizationNo = param.MedicalInsuranceHospitalizationNo,
                };
                var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
                var saveXml         = new SaveXmlDataParam()
                {
                    User = param.User,
                    MedicalInsuranceBackNum = "Qxjs",
                    MedicalInsuranceCode    = "22",
                    BusinessId = param.BusinessId,
                    BackParam  = strXmlBackParam
                };
                //存基层
                _webBasicRepository.SaveXmlData(saveXml);

                var updateParamData = new UpdateMedicalInsuranceResidentSettlementParam()
                {
                    UserId = param.User.UserId,
                    Id     = param.Id,
                    CancelTransactionId   = param.User.TransKey,
                    MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceCancelSettlement,
                    IsHisUpdateState      = true
                };
                //更新中间层
                _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParamData);
            }



            //if (param.CancelLimit == "2") //取消结算,并删除资料<==>删除资料与取消入院
            //{
            //    //回参构建
            //    var xmlData = new HospitalizationRegisterXml()
            //    {
            //        MedicalInsuranceHospitalizationNo = param.MedicalInsuranceHospitalizationNo,
            //    };
            //    var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
            //    var saveXml = new SaveXmlDataParam()
            //    {
            //        User = param.User,
            //        MedicalInsuranceBackNum = "Qxjs",
            //        MedicalInsuranceCode = "22",
            //        BusinessId = param.BusinessId,
            //        BackParam = strXmlBackParam
            //    };
            //    //存基层
            //    _webBasicRepository.SaveXmlData(saveXml);

            //    var updateParamData = new UpdateMedicalInsuranceResidentSettlementParam()
            //    {
            //        UserId = param.User.UserId,
            //        Id = param.Id,
            //        CancelTransactionId = cancelTransactionId,
            //        MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceCancelSettlement,
            //        IsHisUpdateState = true
            //    };
            //    //更新中间层
            //    _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParamData);

            //}
            return(resultData);
        }