diff --git a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java index 89b81e5..7511f9d 100644 --- a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java +++ b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java @@ -28,6 +28,7 @@ import javax.annotation.Resource; import java.net.ConnectException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -108,13 +109,33 @@ public class YbClient { respStr = e.getMessage(); return ResultVOUtils.error(500,"【" + apiNo + "】上传医保失败"+e.getMessage()); }finally { - YbUploadingLog ybUploadingLog = new YbUploadingLog(); - ybUploadingLog.setYbParam(reqStr); - ybUploadingLog.setYbReturn(respStr); - ybUploadingLog.setBillNo(billNo); - ybUploadingLog.setApiNo(apiNo); - ybUploadingLog.setUpdateTime(new Date()); - ybUploadingLogMapper.insert(ybUploadingLog); + + // 构建查询条件,按更新时间降序排序 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("billNo", billNo) + .orderByDesc("updateTime"); + // 查询最新的一条记录 + List logList = ybUploadingLogMapper.selectList(queryWrapper); + YbUploadingLog latestLog = logList.isEmpty() ? null : logList.get(0); + + if (latestLog != null) { + // 存在记录,更新 + latestLog.setYbParam(reqStr); + latestLog.setYbReturn(respStr); + latestLog.setApiNo(apiNo); + latestLog.setUpdateTime(new Date()); + ybUploadingLogMapper.updateById(latestLog); + } else { + // 不存在记录,新增 + YbUploadingLog newLog = new YbUploadingLog(); + newLog.setYbParam(reqStr); + newLog.setYbReturn(respStr); + newLog.setBillNo(billNo); + newLog.setApiNo(apiNo); + newLog.setUpdateTime(new Date()); + ybUploadingLogMapper.insert(newLog); + } + } }