点检保养bug

This commit is contained in:
2024-08-12 09:44:05 +08:00
parent cb24d13fff
commit 3c47cd5450
2 changed files with 25 additions and 20 deletions

View File

@@ -34,11 +34,14 @@ namespace JNPF.TaskScheduler.Listener
List<EqpMaintainRecordH> tobeCreateList = new List<EqpMaintainRecordH>();
List<EqpMaintainTemEquipH> tobeCreateTemplets = new List<EqpMaintainTemEquipH>();
int second = DateTime.Now.Second;//当前的秒数
int offsetMinute = second > 30 ? 1 : 0;
DateTime now = DateTime.Parse(DateTime.Now.AddMinutes(offsetMinute).ToString("yyyy-MM-dd HH:mm:00"));
foreach (var item in eqpSpotInsTemEquipHsByOne)
{
if (item.start_time.AddDays((double)item.plan_cycle).ToString("yyyy-MM-dd") ==
DateTime.Now.ToString("yyyy-MM-dd"))
now.ToString("yyyy-MM-dd"))
{
tobeCreateTemplets.Add(item);
}
@@ -50,7 +53,7 @@ namespace JNPF.TaskScheduler.Listener
//整除表示一个周期到了
// foreach (var item in eqpSpotInsTemEquipHsByCirculate)
// {
// TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).Ticks);
// TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd")).Ticks);
// TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(item.start_time.ToString("yyyy-MM-dd")).Ticks);
// TimeSpan ts3 = ts1.Subtract(ts2).Duration();
// if (ts3.TotalDays * 10 % (10 * (double)item.plan_cycle) == 0)
@@ -67,7 +70,7 @@ namespace JNPF.TaskScheduler.Listener
.FirstAsync();
if (eqpMaintainRecordH == null)
{
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts2 =
new TimeSpan(Convert.ToDateTime(item.start_time.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
@@ -78,7 +81,7 @@ namespace JNPF.TaskScheduler.Listener
}
else if (eqpMaintainRecordH.status != "1")
{
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts2 = new TimeSpan(Convert
.ToDateTime(eqpMaintainRecordH.execute_time.Value.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
@@ -102,7 +105,7 @@ namespace JNPF.TaskScheduler.Listener
if (equipments.FirstOrDefault(x => x.id == item.equip_id) == null)
continue;
string code = $"{DateTime.Now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
string code = $"{now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
tobeCreateList.Add(new EqpMaintainRecordH()
{
code = code,
@@ -119,7 +122,7 @@ namespace JNPF.TaskScheduler.Listener
is_send = item.is_send,
repeat_user_id = item.repeat_user_id,
execute_user_id = item.duty_user_id,
create_time = DateTime.Now,
create_time = now,
status = Tnb.EquipMgr.SpotInsRecordExecutionStatus.TOBEEXECUTED
@@ -224,7 +227,7 @@ namespace JNPF.TaskScheduler.Listener
foreach (var item in toolMoldByOne)
{
if (item.start_time.AddDays((double)item.plan_cycle).ToString("yyyy-MM-dd") ==
DateTime.Now.ToString("yyyy-MM-dd"))
now.ToString("yyyy-MM-dd"))
{
toolMoldTobeCreateTemplets.Add(item);
}
@@ -236,7 +239,7 @@ namespace JNPF.TaskScheduler.Listener
//整除表示一个周期到了
// foreach (var item in toolMoldByCirculate)
// {
// TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).Ticks);
// TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd")).Ticks);
// TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(item.start_time.ToString("yyyy-MM-dd")).Ticks);
// TimeSpan ts3 = ts1.Subtract(ts2).Duration();
// if (ts3.TotalDays * 10 % (10 * (double)item.plan_cycle) == 0)
@@ -253,7 +256,7 @@ namespace JNPF.TaskScheduler.Listener
.FirstAsync();
if (eqpMaintainRecordH == null)
{
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts2 =
new TimeSpan(Convert.ToDateTime(item.start_time.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
@@ -264,7 +267,7 @@ namespace JNPF.TaskScheduler.Listener
}
else if (eqpMaintainRecordH.status != "1")
{
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts2 = new TimeSpan(Convert
.ToDateTime(eqpMaintainRecordH.execute_time.Value.ToString("yyyy-MM-dd")).Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
@@ -287,7 +290,7 @@ namespace JNPF.TaskScheduler.Listener
if (toolMoldList.FirstOrDefault(x => x.id == item.mold_id) == null)
continue;
string code = $"{DateTime.Now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
string code = $"{now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
toolMoldTobeCreateList.Add(new ToolMoldMaintainRecordH()
{
code = code,
@@ -304,7 +307,7 @@ namespace JNPF.TaskScheduler.Listener
is_send = item.is_send,
repeat_user_id = item.repeat_user_id,
execute_user_id = item.duty_user_id,
create_time = DateTime.Now,
create_time = now,
status = Tnb.EquipMgr.SpotInsRecordExecutionStatus.TOBEEXECUTED

View File

@@ -29,10 +29,16 @@ namespace JNPF.TaskScheduler.Listener
List<EqpSpotInsTemEquipH> eqpSpotInsTemEquipHsByCirculate = await db.Queryable<EqpSpotInsTemEquipH>().Where(x => x.is_start == "1" && x.plan_cycle_unit == "2").ToListAsync();
List<EqpSpotInsRecordH> tobeCreateList = new List<EqpSpotInsRecordH>();
List<EqpSpotInsTemEquipH> tobeCreateTemplets = new List<EqpSpotInsTemEquipH>();
//丢失精度补齐 例如设定10分钟执行 但是这个破框架会再9:59 时进入这个方法导致不能正常执行
//精确到分的定时任务可以不使用本地任务 采用数据接口的方式规避掉这个问题
int second = DateTime.Now.Second;//当前的秒数
int offsetMinute = second > 30 ? 1 : 0;
DateTime now = DateTime.Parse(DateTime.Now.AddMinutes(offsetMinute).ToString("yyyy-MM-dd HH:mm:00"));
foreach (var item in eqpSpotInsTemEquipHsByOne)
{
if (item.start_time.AddHours((double)item.plan_cycle).ToString("yyyy-MM-dd HH:mm") == DateTime.Now.ToString("yyyy-MM-dd HH:mm"))
if (item.start_time.AddHours((double)item.plan_cycle).ToString("yyyy-MM-dd HH:mm") == now.ToString("yyyy-MM-dd HH:mm"))
{
tobeCreateTemplets.Add(item);
}
@@ -60,15 +66,11 @@ namespace JNPF.TaskScheduler.Listener
// }
// }
//丢失精度补齐 例如设定10分钟执行 但是这个破框架会再9:59 时进入这个方法导致不能正常执行
//精确到分的定时任务可以不使用本地任务 采用数据接口的方式规避掉这个问题
int second = DateTime.Now.Second;//当前的秒数
int offsetMinute = second > 30 ? 1 : 0;
//整除表示一个周期到了
foreach (var item in eqpSpotInsTemEquipHsByCirculate)
{
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm")).Ticks);
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(now.ToString("yyyy-MM-dd HH:mm")).Ticks);
TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(item.start_time.ToString("yyyy-MM-dd HH:mm")).Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
if ((ts3.TotalMinutes + offsetMinute) * 10 / 60 % (10 * (double)item.plan_cycle) == 0)
@@ -88,7 +90,7 @@ namespace JNPF.TaskScheduler.Listener
if (equipments.FirstOrDefault(x => x.id == item.equip_id) == null)
continue;
string code = $"{DateTime.Now.ToString("yyyyMMddHHmm") + (index++).ToString().PadLeft(3, '0')}";
string code = $"{now.ToString("yyyyMMddHHmm") + (index++).ToString().PadLeft(3, '0')}";
tobeCreateList.Add(new EqpSpotInsRecordH()
{
id = SnowflakeIdHelper.NextId(),
@@ -104,7 +106,7 @@ namespace JNPF.TaskScheduler.Listener
is_repeat = item.is_repeat,
repeat_post_info_user_id = item.repeat_post_info_user_id,
is_send = item.is_send,
create_time = DateTime.Now,
create_time = now,
repeat_user_id= item.repeat_user_id,
spot_record_user_id=item.duty_user_id,
status = Tnb.EquipMgr.SpotInsRecordExecutionStatus.TOBEEXECUTED