首页 > 代码库 > Ilog 排程笔记
Ilog 排程笔记
1、在虚拟机中修订日期为2016-12-01,排产
2、发现需求中生成了1批的古田龙岩
3、检查发现mes系统的11月的周生产计划,古田还有1批没完成,但是需求结束时间被设定为12月22日。
4、判定1批的古田龙岩是数据录入错误,不予理睬。
5、因为需要修改,对排产模型ilog库,plant_jb库做ppo软件的备份。ilog_bak.csv,plant_jb_bak.csv
6、Pro_InsertPPOMaterialProductionProto中原代码屏蔽了梗丝部分。
7、打开梗丝部分。 是否要调用某个存过
8、排产,有梗丝生成,但梗丝膨胀丝全部集中在一天完成。
9、查看IV_ILogAdaption_TranslatedTaskInfo,发现没有梗丝。
10、追踪到视图IV_ILog_FinalResult,发现需要把梗丝线加入到1028,1029,1034资源组中的一个。
11、ilog数据库中梗丝线加入在资源组1034中。 在数据库中手动加入,客户端无法直接保存?
12、保存ilog数据库,重新排产。
13、检查发现IV_ILog_FinalResult中已有梗丝,但是IV_ILogAdaption_TranslatedTaskInfo没有梗丝。
14、再次追踪到IV_ILog_TaskInfo,发现需要在表T_Factory_ILog_SpecialResource中增加ilog导入到制丝的和mes的Factory做对照。
15、观察T_Factory_ILog_SpecialResource发现FactoryId应该为柜号。但是ilog中3002资源膨胀丝对应的mes资源356是柜组,怀疑此处数据有误。查看mes系统中膨胀丝任务,2016-12-05日的导入膨胀丝任务的柜号显示为356,而不是其他膨胀丝样显示为具体柜子。确认T_Factory_ILog_SpecialResource中膨胀丝对照错误。查询T_Factory表,356为柜组,357才是1#柜。
16、修改T_Factory_ILog_SpecialResource表中StorageResource为3002的FactoryId字段为357。
17、T_Factory_ILog_SpecialResource表中插入数据 2 9 1 369 3003
18、查看IV_ILogAdaption_TranslatedTaskInfo,发现梗丝。
19、执行查询语句:
SELECT ProdDate,SUM(膨胀烟丝) as 膨胀烟丝, SUM(二区烟丝) as 二区烟丝, SUM(梗丝) as 梗丝, SUM(一区烟丝)+SUM(二区烟丝) as 烟丝
from(
SELECT ProdDate,COUNT(*) as 膨胀烟丝,0 as 梗丝,0 as 一区烟丝,0 as 二区烟丝
FROM [SWDB_TEST].[dbo].[IV_ILogAdaption_TranslatedTaskInfo]
where mesItemType=8
group by ProdDate
UNION ALL
SELECT ProdDate,0 as 膨胀烟丝,COUNT(*) as 梗丝,0 as 一区烟丝,0 as 二区烟丝
FROM [SWDB_TEST].[dbo].[IV_ILogAdaption_TranslatedTaskInfo]
where mesItemType=9
group by ProdDate
UNION ALL
SELECT ProdDate,0 as 膨胀烟丝,0 as 梗丝,COUNT(*) as 一区烟丝,0 as 二区烟丝
FROM [SWDB_TEST].[dbo].[IV_ILogAdaption_TranslatedTaskInfo]
where mesItemType=7 and Shop=2
group by ProdDate
UNION ALL
SELECT ProdDate,0 as 膨胀烟丝,0 as 梗丝,0 as 一区烟丝,COUNT(*) as 二区烟丝
FROM [SWDB_TEST].[dbo].[IV_ILogAdaption_TranslatedTaskInfo]
where mesItemType=7 and Shop=9
group by ProdDate) a
group by ProdDate
发现膨胀丝时间分布不均匀。原因是膨胀丝的时间是用到该膨胀丝的制丝工序时间(比如假设每批膨胀丝可以分给3批烟丝,每天3个牌号各做1批丝,ilog的处理是先处理牌号1,然后牌号1需要的膨胀丝被分成3份,每份都绑给1批牌号1的丝,然后处理牌号2,牌号3,这样,其实第一天就要做3批膨胀丝,后2天不做丝,而不是每天1批;实际上因为膨胀丝、梗丝不是刚好够分,所以实际上会更复杂)。确认该部分有问题。梗丝也是如此,另外梗丝需要进行合并以及分成4-4-4或者4-6-4之类的处理。
一、关于原来的ilog需求计划的处理解析。
1、P_INIT_PLANT_JB调用了无参数的Pro_MakeJBPlanTmp,然后该存储过程处理的时间范围为Pro_MakeJBPlanTmp后决定的一个时间段,与传入的起止时间无关。(这样才可以反复地进行重排)
2、Pro_MakeJBPlanTmp设定范围为明天到30天后的一个时间窗口,处理的计划为包含了该时间窗口任一时间的计划。
3、Fun_PlanCut为计划做分割处理(分割掉不需要ilog排产部分),取T_Production_Sub_Plan满足条件(状态为2,在规定时间窗口内),烟丝Id查T_BOM表,F_Batch_Complete代表不参与ilog排产的批数,=dbo.fun_GetSubPlanAllDo(P.F_SUB_PLAN_ID)+dbo.fun_GetSubPlanLockDo(P.F_SUB_PLAN_ID),就是已完成+已锁定。再将批数转换为万支存到Qty_Remain字段。
4、Fun_CreateDemand_JB对计划做配方预处理,首先把Fun_PlanCut中满足条件(有需要ilog排产的数量)的计划插入临时表,计算卷包批大小到Batch_Converion;可用配方放入@FmlInfo临时表;针对卷包逐级查找子物料配方。(注意:匹配到的是当前第一个可用配方;看代码可以发现原来的算法是会根据配方可用批数做计划切割,但是考虑到做排产时,可能配方都没下,针对可用批数做切割没有意义,所以人为给配方可用批数设定了一个很大的值9999)
二、导入制丝的存储过程Ipro_ilogadaption_importtask解析。
1、实验线单独做一遍(因为实验线单独使用了一套表)。
2、删除2天后的满足条件(ilog排的任务--长度13,状态指定0或者100,等等)制丝任务。(今天、明天被锁定。)
3、插入视图IV_ILogAdaption_TranslatedTaskInfo结果。
Ilog 排程笔记