Commit cca0688f by xin.yang

some update

parent 46ab806f
...@@ -14,6 +14,7 @@ using Siger.Middlelayer.QmsRepository.Repositories.Interface; ...@@ -14,6 +14,7 @@ using Siger.Middlelayer.QmsRepository.Repositories.Interface;
using Siger.Middlelayer.Repository.Repositories.Interface; using Siger.Middlelayer.Repository.Repositories.Interface;
using Siger.Middlelayer.TpmRepository.Repositories.Interface; using Siger.Middlelayer.TpmRepository.Repositories.Interface;
using Siger.Middlelayer.TpmRepository.Response; using Siger.Middlelayer.TpmRepository.Response;
using ICheckSnTraceInspectionRepository = Siger.Middlelayer.QmsRepository.Repositories.Interface.ICheckSnTraceInspectionRepository;
namespace Siger.ApiDashboard.Controllers namespace Siger.ApiDashboard.Controllers
{ {
......
...@@ -23,6 +23,7 @@ using SigerProjectKpiTasklist = Siger.Middlelayer.KpiRespository.Entities.SigerP ...@@ -23,6 +23,7 @@ using SigerProjectKpiTasklist = Siger.Middlelayer.KpiRespository.Entities.SigerP
using Siger.Middlelayer.Repository.Response; using Siger.Middlelayer.Repository.Response;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Siger.Middlelayer.KpiRespository; using Siger.Middlelayer.KpiRespository;
using siger_check_sn_trace_inspection = Siger.Middlelayer.QmsRepository.Entities.siger_check_sn_trace_inspection;
namespace Siger.ApiDashboard.Tasks namespace Siger.ApiDashboard.Tasks
{ {
......
...@@ -3,9 +3,6 @@ using Siger.DataSchedule.Infrastructure.Extend; ...@@ -3,9 +3,6 @@ using Siger.DataSchedule.Infrastructure.Extend;
using Siger.Middlelayer.Common; using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions; using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Common.Helpers; using Siger.Middlelayer.Common.Helpers;
using Siger.Middlelayer.Dapper.CheckTrace.Constant;
using Siger.Middlelayer.Dapper.CheckTrace.Data;
using Siger.Middlelayer.Dapper.CheckTrace.Repostriories;
using Siger.Middlelayer.Log; using Siger.Middlelayer.Log;
using Siger.Middlelayer.QmsRepository; using Siger.Middlelayer.QmsRepository;
using Siger.Middlelayer.Redis; using Siger.Middlelayer.Redis;
...@@ -79,7 +76,7 @@ namespace Siger.Schedule.QmsModule ...@@ -79,7 +76,7 @@ namespace Siger.Schedule.QmsModule
{ {
if (item.Cid > 0 && item.Pid > 0) if (item.Cid > 0 && item.Pid > 0)
{ {
CreateTraceTable(item.Pid, item.Cid); //CreateTraceTable(item.Pid, item.Cid);
} }
} }
catch (Exception e) catch (Exception e)
...@@ -97,93 +94,5 @@ namespace Siger.Schedule.QmsModule ...@@ -97,93 +94,5 @@ namespace Siger.Schedule.QmsModule
Logger.WriteLineError(ex.Message); Logger.WriteLineError(ex.Message);
} }
} }
private void CreateTraceTable(int pid, int cid)
{
var projectInfo = _configContext.siger_project.FirstOrDefault(q => q.id == pid);
if (projectInfo == null)
{
return;
}
var _traceRepostory = new TraceDetailTableRepository(cid, pid);
var traceIsExsit = _traceRepostory.TableIsExsit(TabelNameConstant.SnTraceTable, $"{cid}_{pid}");
if (!traceIsExsit)
{
_traceRepostory.CreateTable(TabelNameConstant.SnTraceTable, TabelNameConstant.SnTraceTable, 1);
}
var subTableIsExsit = _traceRepostory.TableIsExsit(TabelNameConstant.SubTableTable, $"{cid}_{pid}");
if (!subTableIsExsit)
{
_traceRepostory.CreateTable(TabelNameConstant.SubTableTable, TabelNameConstant.SubTableTable, 1);
}
var now = DateTime.Now.ToString(ParameterConstant.MouthFirstDay).ToDateTime();
var startTime = "2020-03-01 00:00:00".ToDateTime();
var projectStartTime = UnixTimeHelper.ConvertIntDate(projectInfo.createtime).ToDateTime().ToString(ParameterConstant.MouthFirstDay).ToDateTime();
startTime = startTime > projectStartTime ? startTime : projectStartTime;
for (var time = startTime; time <= now; time = time.AddMonths(1))
{
var detailTableName = $"{TabelNameConstant.SnTraceDetailTable}_{time.Year}{time.Month.ToString("00")}";
var detailIsExsit = _traceRepostory.TableIsExsit(detailTableName, $"{cid}_{pid}");
if (detailIsExsit)
{
var detailTable = _traceRepostory.GetSubTableInfo(detailTableName, TabelNameConstant.SnTraceDetailTable);
if (detailTable == null)
{
var minid = _traceRepostory.GetTableMinID(detailTableName);
var maxid = _traceRepostory.GetTableMaxID(detailTableName);
_traceRepostory.InsertSubTable(new SubTable
{
name = detailTableName,
tablename = TabelNameConstant.SnTraceDetailTable,
startid = minid,
endid = maxid,
validtime = time.AddMonths(-1),
createtime = DateTime.Now,
status = (int)RowState.Valid
});
}
continue;
}
var startid = 1L;
if (time > startTime)
{
var lastDetailTableName = $"{TabelNameConstant.SnTraceDetailTable}_{time.AddMonths(-1).Year}{time.AddMonths(-1).Month.ToString("00")}";
var lastDetailTable = _traceRepostory.GetSubTableInfo(lastDetailTableName, TabelNameConstant.SnTraceDetailTable);
if (lastDetailTable == null)
{
var minid = _traceRepostory.GetTableMinID(lastDetailTableName);
var maxid = _traceRepostory.GetTableMaxID(lastDetailTableName);
_traceRepostory.InsertSubTable(new SubTable
{
name = lastDetailTableName,
tablename = TabelNameConstant.SnTraceDetailTable,
startid = minid,
endid = maxid,
validtime = time.AddMonths(-1),
createtime = DateTime.Now,
status = (int)RowState.Valid
});
}
else
{
var maxId = _traceRepostory.GetTableMaxID(lastDetailTableName);
startid = maxId + 1;
_traceRepostory.UpdateSubTableEndId(lastDetailTable.id, maxId);
}
}
_traceRepostory.CreateTable(TabelNameConstant.SnTraceDetailTable, detailTableName, startid);
_traceRepostory.InsertSubTable(new SubTable
{
name = detailTableName,
tablename = TabelNameConstant.SnTraceDetailTable,
startid = startid,
endid = 0,
validtime = time,
createtime = DateTime.Now,
status = (int)RowState.Valid
});
}
}
} }
} }
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
using Siger.Middlelayer.Common; using Siger.Middlelayer.Common;
using Siger.Middlelayer.Common.Extensions; using Siger.Middlelayer.Common.Extensions;
using Siger.Middlelayer.Common.ModuleEnum; using Siger.Middlelayer.Common.ModuleEnum;
using Siger.Middlelayer.Dapper.CheckTrace.Repostriories;
using Siger.Middlelayer.Log; using Siger.Middlelayer.Log;
using Siger.Middlelayer.QmsRepository; using Siger.Middlelayer.QmsRepository;
using Siger.Middlelayer.QmsRepository.Entities; using Siger.Middlelayer.QmsRepository.Entities;
...@@ -64,8 +63,7 @@ namespace Siger.Schedule.QmsModule ...@@ -64,8 +63,7 @@ namespace Siger.Schedule.QmsModule
{ {
try try
{ {
SyncBigDataToMiddleDataBase(item.Pid, item.Cid);
SyncMiddleDataToBigDataBase();
} }
catch (Exception e) catch (Exception e)
{ {
...@@ -81,115 +79,6 @@ namespace Siger.Schedule.QmsModule ...@@ -81,115 +79,6 @@ namespace Siger.Schedule.QmsModule
} }
} }
/// <summary>
/// 迁移大数据的数据到中间层(老数据迁移
/// </summary>
public void SyncBigDataToMiddleDataBase(int projectid, int companyid)
{
var _traceRepository = new TraceDataRepository(companyid, projectid);
var datas = _traceRepository.GetSnTraceList(projectid);
var traces = _context.siger_check_sn_trace_inspection.Where(t => t.projectid == projectid && t.status == (int)RowState.Valid &&
datas.Select(q => q.ID).Contains(t.trace_id)).ToList();
datas = datas.Where(t => !traces.Select(q => q.trace_id).Contains(t.ID)).ToList();
var insertModels = new List<siger_check_sn_trace_inspection>();
var insertDetailModels = new List<siger_check_sn_trace_detail>();
foreach (var data in datas)
{
var model = new siger_check_sn_trace_inspection
{
trace_id = data.ID,
testroom = "",
productid = data.ProductID,
materialid = data.MaterialID,
sectionid = data.SectionID,
sn = data.SN,
routeid = data.RouteID,
check_type = data.CheckType,
check_status = (int)SendCheckStatus.Completed,
result = data.Result.ToUpper() == "OK" ? ((int)SendTestType.Qalified).ToString() : ((int)SendTestType.Unqualified).ToString(),
send_mid = data.UserID,
send_time = data.CreateTime,
check_mid = data.UserID,
check_time = data.CreateTime,
inspection_type = (int)InspectionType.ManualCollection,
projectid = projectid,
reason = "",
workorder = data.WorkOrder,
recieve_mid = data.UserID,
recieve_time = data.CreateTime,
checking_mid = data.UserID,
checking_time = data.CreateTime
};
var dataDetails = _context.siger_check_sn_trace_detail.Where(t => t.projectid == projectid && t.status == (int)RowState.Valid &&
data.ID == t.TraceID).ToList();
if (dataDetails.Any())
{
continue;
}
var details = _traceRepository.GetSingleTraceDetailList(data.ID, projectid);
var numberIndexs = _context.siger_check_partindex.Where(t => t.projectid == projectid && t.status == (int)RowState.Valid &&
details.Select(q => q.ID).Contains(t.trace_detailid)).ToList();
var number = 0;
foreach (var detail in details)
{
var numberIndex = numberIndexs.FirstOrDefault(t => t.trace_detailid == detail.ID);
var detailModel = new siger_check_sn_trace_detail
{
TraceID = detail.TraceID,
ItemID = detail.ItemID,
Result = detail.Result,
Value = detail.Value,
ItemName = detail.ItemName,
SN = string.IsNullOrEmpty(detail.SN) ? model.sn : detail.SN,
NumberIndex = numberIndex?.partindex ?? 1,
projectid = projectid,
CreateTime = data.CreateTime
};
insertDetailModels.Add(detailModel);
if (detailModel.NumberIndex > number)
{
number = detailModel.NumberIndex;
}
}
model.number = number;
insertModels.Add(model);
}
foreach (var trace in traces)
{
var dataDetails = _context.siger_check_sn_trace_detail.Where(t => t.projectid == projectid && t.status == (int)RowState.Valid &&
trace.trace_id == t.TraceID).ToList();
if (dataDetails.Any())
{
continue;
}
var details = _traceRepository.GetSingleTraceDetailList(trace.trace_id, projectid);
var numberIndexs = _context.siger_check_partindex.Where(t => t.projectid == projectid && t.status == (int)RowState.Valid &&
details.Select(q => q.ID).Contains(t.trace_detailid)).ToList();
foreach (var detail in details)
{
var numberIndex = numberIndexs.FirstOrDefault(t => t.trace_detailid == detail.ID);
var detailModel = new siger_check_sn_trace_detail
{
TraceID = detail.TraceID,
ItemID = detail.ItemID,
Result = detail.Result,
Value = detail.Value,
ItemName = detail.ItemName,
SN = string.IsNullOrEmpty(detail.SN) ? trace.sn : detail.SN,
NumberIndex = numberIndex?.partindex ?? 1,
projectid = projectid,
CreateTime = (trace.check_time.HasValue && trace.check_time != DateTime.MinValue) ? trace.check_time.Value : DateTime.Now
};
insertDetailModels.Add(detailModel);
}
}
_context.siger_check_sn_trace_inspection.AddRange(insertModels);
_context.siger_check_sn_trace_detail.AddRange(insertDetailModels);
_context.SaveChanges();
}
public void SyncMiddleDataToBigDataBase() public void SyncMiddleDataToBigDataBase()
{ {
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment