2023-12-17 11:37:43 +08:00
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 ;
2023-12-29 08:46:01 +08:00
using Kingdee.BOS.Log ;
2023-12-17 11:37:43 +08:00
namespace MonthlyProductionSchedule
{
2023-12-29 08:46:01 +08:00
[Description("生产计划表-库存记录-定时任务"), HotUpdate]
2023-12-17 11:37:43 +08:00
public class AutoRecordsInventoryPlugIn : IScheduleService
{
public void Run ( Context ctx , Schedule schedule )
{
2024-01-02 10:44:59 +08:00
try
2023-12-29 08:46:01 +08:00
{
2024-01-08 10:58:24 +08:00
var executeDay = schedule . Parameters . Long2Int ( ) ;
if ( executeDay = = 0 )
executeDay = 20 ;
2023-12-29 08:46:01 +08:00
2024-01-08 10:58:24 +08:00
if ( executeDay > 28 )
2024-01-02 10:44:59 +08:00
executeDay = DateTime . Now . AddDays ( 1 - DateTime . Now . Day ) . Date . AddMonths ( 1 ) . AddSeconds ( - 1 ) . Day ;
2023-12-29 08:46:01 +08:00
2024-01-02 10:44:59 +08:00
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 )
2023-12-29 08:46:01 +08:00
{
2024-01-02 10:44:59 +08:00
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..." ) ;
}
2023-12-29 08:46:01 +08:00
}
}
2024-01-02 10:44:59 +08:00
catch ( Exception ex )
{
Logger . Error ( schedule . Name , ex . Message , ex ) ;
}
2023-12-29 08:46:01 +08:00
//DBServiceHelper.Execute(ctx, $"/*dialect*/ EXEC PROC_PPL_AutoSaveCurrentData {tableName} , {newDate.ToLongFormat()} ,{startDate.ToShortFormat()} ,{endDate.ToShortFormat()} ,{year} ,{month}");
2023-12-17 11:37:43 +08:00
}
}
}