72 lines
2.9 KiB
C#
72 lines
2.9 KiB
C#
using Kingdee.BOS;
|
|
using Kingdee.BOS.App;
|
|
using Kingdee.BOS.App.Data;
|
|
using Kingdee.BOS.Contracts;
|
|
using Kingdee.BOS.Core;
|
|
using Kingdee.BOS.ServiceHelper;
|
|
using Kingdee.BOS.Util;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using ExtensionMethods;
|
|
using Kingdee.BOS.Log;
|
|
|
|
namespace MonthlyProductionSchedule
|
|
{
|
|
[Description("生产计划表-库存记录-定时任务"), HotUpdate]
|
|
public class AutoRecordsInventoryPlugIn : IScheduleService
|
|
{
|
|
public void Run(Context ctx, Schedule schedule)
|
|
{
|
|
|
|
try
|
|
{
|
|
var executeDay = schedule.Parameters.Long2Int();
|
|
if (executeDay == 0)
|
|
executeDay = 20;
|
|
|
|
if (executeDay > 28)
|
|
executeDay = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1).Day;
|
|
|
|
var newDate = DateTime.Now;
|
|
var appointDate = new DateTime(newDate.Year, newDate.Month, executeDay);
|
|
Logger.Info(schedule.Name, $"记录物料即时库存检测:约定记录时间[{appointDate:yyyy-MM-dd}],当前时间[{newDate:yyyy-MM-dd}]");
|
|
|
|
if (newDate.Day == executeDay)
|
|
{
|
|
try
|
|
{
|
|
Logger.Info(schedule.Name, "记录物料即时库存start...");
|
|
|
|
////如果这个日期下已保存有数据,先删除
|
|
//var delSql = $"DELETE FROM T_MATERIAL_INVENTORY_MONTH_RECORD WHERE RECORDDAY = {newDate.Day} AND RECORDMONTH = {newDate.Month} AND RECORDYEAR = {newDate.Year} ";
|
|
//var delNum = DBServiceHelper.Execute(ctx, $"/*dialect*/{delSql}");
|
|
//Logger.Info(schedule.Name, $"删除物料即时库存数据成功!(本次删除{delNum}条)");
|
|
|
|
var intoSql = $@" PROC_SAVE_MATERIAL_INVENTORY {ctx.UserLocale.LCID} ,{newDate.Year} ,{newDate.Month} ,{newDate.Day} ";
|
|
var intoNum = DBServiceHelper.Execute(ctx, $"/*dialect*/{intoSql}");
|
|
Logger.Info(schedule.Name, $"记录物料即时库存成功!(本次记录{intoNum}条)");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logger.Error(schedule.Name, ex.Message, ex);
|
|
}
|
|
finally
|
|
{
|
|
Logger.Info(schedule.Name, "记录物料即时库存end...");
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logger.Error(schedule.Name, ex.Message, ex);
|
|
}
|
|
|
|
//DBServiceHelper.Execute(ctx, $"/*dialect*/ EXEC PROC_PPL_AutoSaveCurrentData {tableName} , {newDate.ToLongFormat()} ,{startDate.ToShortFormat()} ,{endDate.ToShortFormat()} ,{year} ,{month}");
|
|
}
|
|
}
|
|
}
|