21
This commit is contained in:
parent
54b6d7fd20
commit
7662935368
|
|
@ -166,14 +166,30 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
return ToResponse(ResultCode.FAIL, "请选择要导入的文件");
|
||||
}
|
||||
|
||||
var logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
List<OdfCableFaultImportDto> list = new();
|
||||
using (var stream = formFile.OpenReadStream())
|
||||
{
|
||||
// 使用动态查询读取原始数据,避免MiniExcel强类型映射丢失单元格内多行文本
|
||||
var rows = stream.Query(useHeaderRow: true, startCell: "A1").ToList();
|
||||
logger.Info($"[导入调试] 共读取到 {rows.Count} 行数据");
|
||||
|
||||
int rowIndex = 0;
|
||||
foreach (var row in rows)
|
||||
{
|
||||
rowIndex++;
|
||||
var dict = (IDictionary<string, object>)row;
|
||||
|
||||
// 打印所有列名和值,用于调试
|
||||
foreach (var kv in dict)
|
||||
{
|
||||
var valType = kv.Value?.GetType()?.Name ?? "null";
|
||||
var valStr = kv.Value?.ToString() ?? "(null)";
|
||||
// 转义换行符以便在日志中可见
|
||||
var valEscaped = valStr.Replace("\r", "\\r").Replace("\n", "\\n");
|
||||
logger.Info($"[导入调试] 行{rowIndex} 列[{kv.Key}] 类型={valType} 值=[{valEscaped}]");
|
||||
}
|
||||
|
||||
var dto = new OdfCableFaultImportDto();
|
||||
|
||||
if (dict.TryGetValue("编号", out var idVal) && idVal != null && int.TryParse(idVal.ToString(), out var id))
|
||||
|
|
@ -185,9 +201,20 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
if (dict.TryGetValue("故障时间", out var ftVal) && ftVal != null)
|
||||
{
|
||||
if (ftVal is DateTime dt)
|
||||
{
|
||||
dto.FaultTime = dt.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
logger.Info($"[导入调试] 行{rowIndex} 故障时间是DateTime类型,值={dt:yyyy-MM-dd HH:mm:ss}");
|
||||
}
|
||||
else
|
||||
{
|
||||
dto.FaultTime = ftVal.ToString();
|
||||
var escaped = dto.FaultTime.Replace("\r", "\\r").Replace("\n", "\\n");
|
||||
logger.Info($"[导入调试] 行{rowIndex} 故障时间是{ftVal.GetType().Name}类型,值=[{escaped}]");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Info($"[导入调试] 行{rowIndex} 未找到故障时间列");
|
||||
}
|
||||
|
||||
if (dict.TryGetValue("故障发生频次", out var fcVal) && fcVal != null && int.TryParse(fcVal.ToString(), out var fc))
|
||||
|
|
|
|||
|
|
@ -338,6 +338,7 @@ namespace ZR.Service.Business
|
|||
/// </summary>
|
||||
public (int successCount, int errorCount, string errorMsg) ImportFaults(List<OdfCableFaultImportDto> list)
|
||||
{
|
||||
var logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
int successCount = 0;
|
||||
int errorCount = 0;
|
||||
var errorMsgs = new List<string>();
|
||||
|
|
@ -373,15 +374,36 @@ namespace ZR.Service.Business
|
|||
var allTimes = new List<DateTime>();
|
||||
if (!string.IsNullOrWhiteSpace(item.FaultTime))
|
||||
{
|
||||
var rawFaultTime = item.FaultTime;
|
||||
var escapedRaw = rawFaultTime.Replace("\r", "\\r").Replace("\n", "\\n");
|
||||
logger.Info($"[导入调试] 行{rowNum} FaultTime原始值=[{escapedRaw}] 长度={rawFaultTime.Length}");
|
||||
|
||||
// 打印每个字符的Unicode编码,排查隐藏字符
|
||||
var charCodes = string.Join(",", rawFaultTime.Select(c => $"U+{(int)c:X4}"));
|
||||
logger.Info($"[导入调试] 行{rowNum} FaultTime字符编码=[{charCodes}]");
|
||||
|
||||
var timeParts = item.FaultTime.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
foreach (var part in timeParts)
|
||||
logger.Info($"[导入调试] 行{rowNum} Split后得到 {timeParts.Length} 段");
|
||||
for (int k = 0; k < timeParts.Length; k++)
|
||||
{
|
||||
if (DateTime.TryParse(part.Trim(), out var parsed))
|
||||
logger.Info($"[导入调试] 行{rowNum} 时间段[{k}]=[{timeParts[k].Trim()}]");
|
||||
if (DateTime.TryParse(timeParts[k].Trim(), out var parsed))
|
||||
{
|
||||
allTimes.Add(parsed);
|
||||
logger.Info($"[导入调试] 行{rowNum} 时间段[{k}] 解析成功={parsed:yyyy-MM-dd HH:mm:ss}");
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Info($"[导入调试] 行{rowNum} 时间段[{k}] 解析失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Info($"[导入调试] 行{rowNum} FaultTime为空");
|
||||
}
|
||||
|
||||
logger.Info($"[导入调试] 行{rowNum} 共解析到 {allTimes.Count} 个有效时间");
|
||||
|
||||
// 按时间排序,第一个作为主故障时间
|
||||
allTimes.Sort();
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# 开发环境配置
|
||||
ENV = 'development'
|
||||
|
||||
VITE_APP_API_HOST = 'http://localhost:11082/'
|
||||
VITE_APP_API_HOST = 'http://localhost:8888'
|
||||
|
||||
# 开发环境
|
||||
VITE_APP_BASE_API = 'http://localhost:8888/'
|
||||
VITE_APP_BASE_API = 'http://localhost:8888'
|
||||
# VITE_APP_BASE_API = 'http://49.233.115.141:11082/'
|
||||
|
||||
# 路由前缀
|
||||
|
|
@ -14,4 +14,4 @@ VITE_APP_ROUTER_PREFIX = '/'
|
|||
VITE_APP_UPLOAD_URL = 'Common/UploadFile'
|
||||
|
||||
#socket API
|
||||
VITE_APP_SOCKET_API = 'http://localhost:11082/msghub'
|
||||
VITE_APP_SOCKET_API = 'http://localhost:8888/msghub'
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user