using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration.UserSecrets; using Newtonsoft.Json; using Shentun.PeisReport.Api.Dto; using SqlSugar; using System.Data; using static Dm.net.buffer.ByteArrayBuffer; namespace Shentun.PeisReport.Api.Controllers { /// /// 青海五院数据上传接口 /// [Route("api/[controller]/[action]")] [ApiController] [ApiExplorerSettings(GroupName = "QingHaiWuYuanApi")] public class ReportController : ControllerBase { private readonly SqlSugarClient _peisDb; private readonly SqlSugarClient _reportDb; private readonly IConfiguration _configuration; private readonly ILogger _logger; public ReportController( IConfiguration configuration, ILogger logger) { _configuration = configuration; _logger = logger; _reportDb = new SqlSugarClient(new ConnectionConfig() { ConnectionString = _configuration.GetSection("ConnectionStrings:Report").Value, DbType = SqlSugar.DbType.Oracle, IsAutoCloseConnection = true }); //_reportDb.Aop.OnLogExecuting = (sql, pars) => //{ // _logger.LogError(sql); // _logger.LogError("参数:" + string.Join(",", pars.Select(p => $"{p.ParameterName}={p.Value}"))); //}; _peisDb = new SqlSugarClient(new ConnectionConfig() { ConnectionString = _configuration.GetSection("ConnectionStrings:Default").Value, DbType = SqlSugar.DbType.SqlServer, IsAutoCloseConnection = true }); } /// /// 上传体检数据 /// /// /// [HttpPost] public async Task UploadReportAsync(UploadReportInputDto input) { var result = new UploadReportDto { Code = 100, Message = "请求失败" }; try { var peisQuery = await _peisDb.Ado.GetDataTableAsync($"select name as patient_name from patient_register where patient_register_id='{input.PatientRegisterId}' and create_pdf_flag='1'"); if (peisQuery.Rows.Count > 0) { string patientName = peisQuery.Rows[0]["patient_name"].ToString(); string directoryDate = input.PatientRegisterId.Substring(0, 6); string zWHostAddress = _configuration.GetSection("ZWHostAddress").Value; string reportVirtual = _configuration.GetSection("ReportVirtualPath:RequestPath").Value; string reportUrl = $"{zWHostAddress + reportVirtual}/{directoryDate}/{input.PatientRegisterId}({patientName}).pdf"; input.bgdz = reportUrl; } var query = await _reportDb.Ado.GetDataTableAsync($"select * from TJDJ_00.tj_jbxxb where examRequestCode='{input.examRequestCode}' " + $" and yljgdm='{input.yljgdm}' and yljgmc='{input.yljgmc}' "); if (query.Rows.Count > 0) { ////修改 //var exeCount = await _reportDb.Ado.ExecuteCommandAsync("update TJDJ_00.tj_jbxxb set name=@name,iDCard=@iDCard,identityType=@identityType,birthDate=@birthDate,xb=@xb,age=@age," + // "telephone=@telephone,mz=@mz,kh=@kh,klx=@klx,gzdw=@gzdw,xjzdz=@xjzdz,regCode=@regCode,scheduleDate=@scheduleDate,iTypeName=@iTypeName," + // "groupName=@groupName,tjzje=@tjzje,bgdz=@bgdz,scheduleStatus=@scheduleStatus,xgbz=@xgbz,scsj=@scsj,yljgdm=@yljgdm,yljgmc=@yljgmc where examRequestCode=@examRequestCode", // new List() { // new SugarParameter("name",input.name), // new SugarParameter("iDCard",input.iDCard), // new SugarParameter("identityType",input.identityType), // new SugarParameter("birthDate",input.birthDate), // new SugarParameter("xb",input.xb), // new SugarParameter("age",input.age), // new SugarParameter("telephone",input.telephone), // new SugarParameter("mz",input.mz), // new SugarParameter("kh",input.kh), // new SugarParameter("klx",input.klx), // new SugarParameter("gzdw",input.gzdw), // new SugarParameter("xjzdz",input.xjzdz), // new SugarParameter("examRequestCode",input.examRequestCode), // new SugarParameter("scheduleDate",input.scheduleDate), // new SugarParameter("iTypeName",input.iTypeName), // new SugarParameter("groupName",input.groupName), // new SugarParameter("regCode",input.regCode), // new SugarParameter("tjzje",input.tjzje), // new SugarParameter("bgdz",input.bgdz), // new SugarParameter("scheduleStatus",input.scheduleStatus), // new SugarParameter("xgbz","2"), // new SugarParameter("scsj",input.scsj), // new SugarParameter("yljgdm",input.yljgdm), // new SugarParameter("yljgmc",input.yljgmc) // }); //修改 var exeCount = await _reportDb.Ado.ExecuteCommandAsync($"update TJDJ_00.tj_jbxxb set name='{input.name}',iDCard='{input.iDCard}',identityType='{input.identityType}'," + $"birthDate='{input.birthDate}',xb='{input.xb}',age='{input.age}',telephone='{input.telephone}',mz='{input.mz}',kh='{input.kh}',klx='{input.klx}',gzdw='{input.gzdw}'," + $"xjzdz='{input.xjzdz}',regCode='{input.regCode}',scheduleDate='{input.scheduleDate}',iTypeName='{input.iTypeName}',groupName='{input.groupName}',tjzje='{input.tjzje}'," + $"bgdz='{input.bgdz}',scheduleStatus='{input.scheduleStatus}',xgbz='{input.xgbz}',scsj='{input.scsj}' " + $" where examRequestCode='{input.examRequestCode}' and yljgdm='{input.yljgdm}' and yljgmc='{input.yljgmc}' "); if (exeCount == 0) { _logger.LogError($"接口UploadReportAsync异常,更新失败:{JsonConvert.SerializeObject(input)}"); result = new UploadReportDto { Code = 100, Message = "更新失败" }; } else { result = new UploadReportDto { Code = 200, Message = "更新成功" }; } } else { ////新增 //var exeCount = await _reportDb.Ado.ExecuteCommandAsync("INSERT INTO TJDJ_00.tj_jbxxb(name,iDCard,identityType,birthDate,xb,age,telephone,mz,kh,klx,gzdw,xjzdz,examRequestCode,scheduleDate,iTypeName," + // "groupName,regCode,tjzje,bgdz,scheduleStatus,xgbz,scsj,yljgdm,yljgmc) VALUES (@name,@iDCard,@identityType,@birthDate,@xb,@age,@telephone,@mz,@kh,@klx,@gzdw,@xjzdz,@examRequestCode," + // "@scheduleDate,@iTypeName,@groupName,@regCode,@tjzje,@bgdz,@scheduleStatus,@xgbz,@scsj,@yljgdm,@yljgmc);", // new List() { // new SugarParameter("name",input.name), // new SugarParameter("iDCard",input.iDCard), // new SugarParameter("identityType",input.identityType), // new SugarParameter("birthDate",input.birthDate), // new SugarParameter("xb",input.xb), // new SugarParameter("age",input.age), // new SugarParameter("telephone",input.telephone), // new SugarParameter("mz",input.mz), // new SugarParameter("kh",input.kh), // new SugarParameter("klx",input.klx), // new SugarParameter("gzdw",input.gzdw), // new SugarParameter("xjzdz",input.xjzdz), // new SugarParameter("examRequestCode",input.examRequestCode), // new SugarParameter("scheduleDate",input.scheduleDate), // new SugarParameter("iTypeName",input.iTypeName), // new SugarParameter("groupName",input.groupName), // new SugarParameter("regCode",input.regCode), // new SugarParameter("tjzje",input.tjzje), // new SugarParameter("bgdz",input.bgdz), // new SugarParameter("scheduleStatus",input.scheduleStatus), // new SugarParameter("xgbz","1"), // new SugarParameter("scsj",input.scsj), // new SugarParameter("yljgdm",input.yljgdm), // new SugarParameter("yljgmc",input.yljgmc) // }); //新增 var exeCount = await _reportDb.Ado.ExecuteCommandAsync($"INSERT INTO TJDJ_00.tj_jbxxb(name,iDCard,identityType,birthDate,xb,age,telephone,mz,kh,klx,gzdw,xjzdz,examRequestCode,scheduleDate,iTypeName," + $"groupName,regCode,tjzje,bgdz,scheduleStatus,xgbz,scsj,yljgdm,yljgmc) VALUES ('{input.name}','{input.iDCard}','{input.identityType}','{input.birthDate}','{input.xb}','{input.age}'," + $"'{input.telephone}','{input.mz}','{input.kh}','{input.klx}','{input.gzdw}','{input.xjzdz}','{input.examRequestCode}'," + $"'{input.scheduleDate}','{input.iTypeName}','{input.groupName}','{input.regCode}','{input.tjzje}','{input.bgdz}','{input.scheduleStatus}','1','{input.scsj}','{input.yljgdm}','{input.yljgmc}');"); if (exeCount == 0) { _logger.LogError($"接口UploadReportAsync异常,上传失败:{JsonConvert.SerializeObject(input)}"); result = new UploadReportDto { Code = 100, Message = "上传失败" }; } else { result = new UploadReportDto { Code = 200, Message = "上传成功" }; } } } catch (Exception ex) { result.Message = ex.Message; _logger.LogError($"接口UploadReportAsync异常,上传失败:{JsonConvert.SerializeObject(input)},异常信息:{ex.ToString()}"); } return result; } /// /// 撤销上传的数据 /// /// /// [HttpPost] public async Task DeleteReportAsync(DeleteReportInputDto input) { var result = new UploadReportDto { Code = 100, Message = "请求失败" }; try { var query = await _reportDb.Ado.GetDataTableAsync($"select * from TJDJ_00.tj_jbxxb where examRequestCode='{input.examRequestCode}' and yljgdm='{input.yljgdm}' and yljgmc='{input.yljgmc}' "); if (query.Rows.Count > 0) { //修改 var exeCount = await _reportDb.Ado.ExecuteCommandAsync($"update TJDJ_00.tj_jbxxb set xgbz='3' where examRequestCode='{input.examRequestCode}' " + " and yljgdm='{input.yljgdm}' and yljgmc='{input.yljgmc}' "); if (exeCount == 0) { _logger.LogError($"接口DeleteReportAsync异常,更新失败:{JsonConvert.SerializeObject(input)}"); result = new UploadReportDto { Code = 100, Message = "更新失败" }; } else { result = new UploadReportDto { Code = 200, Message = "更新成功" }; } } else { result = new UploadReportDto { Code = 100, Message = "数据不存在" }; } } catch (Exception ex) { result.Message = ex.Message; _logger.LogError($"接口DeleteReportAsync异常,上传失败:{JsonConvert.SerializeObject(input)},异常信息:{ex.ToString()}"); } return result; } /// /// 查询测试 /// /// [HttpPost] public async Task TestSqlAsync() { var result = new PublicResultDto { Code = 100, Message = "请求失败" }; try { var query = _reportDb.Ado.GetScalar("select count(*) from TJDJ_00.tj_jbxxb"); result = new PublicResultDto { Code = 200, Message = query.ToString() }; } catch (Exception ex) { result.Message = ex.Message; _logger.LogError($"接口TestSqlAsync异常,上传失败:{ex.Message}"); } return result; } ///// ///// 删除测试 ///// ///// //[HttpPost] //public async Task TestDeleteSqlAsync(string examRequestCode) //{ // var result = new PublicResultDto // { // Code = 100, // Message = "请求失败" // }; // try // { // var query = _reportDb.Ado.ExecuteCommand("delete from TJDJ_00.tj_jbxxb where examRequestCode='{examRequestCode}' "); // result = new PublicResultDto // { // Code = 200, // Message = query.ToString() // }; // } // catch (Exception ex) // { // result.Message = ex.Message; // _logger.LogError($"接口TestDeleteSqlAsync异常,失败:{ex.Message}"); // } // return result; //} } }