王 垚
2021-02-16 4edfc50d4e8d015081cb9ac473635d83c38c1127
src/BLL/Demo.TimedTaskPlugIn/PRD/TLPlanTimeTask.cs
@@ -36,11 +36,8 @@
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        Extraction(dr["FDAYPLANID"].ToString());
                        sqlList.Add($"/*dialect*/  update sc_TLPLANZXJH set  FZXDATE = getdate(), FISZX = 1 where FID={dr["FID"]}");
                    }
                    Extraction();
                    sqlList.Add($"/*dialect*/  update sc_TLPLANZXJH set  FZXDATE = getdate(), FISZX = 1 where FISZX = 0 ");
                    DBServiceHelper.ExecuteBatch(Context, sqlList);
                }
                LogHelper.Info("提料计划时长:" + sw.Elapsed);
@@ -53,7 +50,7 @@
            }
        }
        public void Extraction(string FDayPlanWorkID)
        public void Extraction()
        {
            LogHelper.Info("[提料计划准备阶段]:测试测试测试测试测试测试测试测试");
            try
@@ -63,8 +60,8 @@
                //提料计划预处理 清理提料计划单数据 更新采购订单提料计划数量
                string sql = string.Format(@"
  /*dialect*/
 exec [提料计划预处理] '{0}'
 ", FDayPlanWorkID.Replace(",", "-"));
 exec [提料计划预处理]
 ");
                DBServiceHelper.Execute(Context, sql);
                LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql);
                //采购订单数据
@@ -83,24 +80,6 @@
                LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql);
                sql = string.Format(@"
 /*dialect*/
 SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId
FROM  SC_WORKBILLSORTBILLMAIN T1
JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID
LEFT JOIN(SELECT T1.FID,max(t2.FMATERIALID)FMATERIALIDMAIN, max(t2.FMoId)FMoId,MAX(FENTRYID) FENTRYID, SUM(convert(decimal(18, 2), FBASENUMERATOR / FBASEDENOMINATOR))FNeedQty, T1.FMATERIALID from T_PRD_PPBOMENTRY  T1
JOIN T_PRD_PPBOM   T2 on t1.FID = t2.FID
group by T1.FMATERIALID, T1.FID) T3 on T1.FPRDMOMAINID = t3.FMoId  and T1.FHMATERID = t3.FMATERIALIDMAIN
JOIN T_BD_MATERIAL T6 ON T3.FMATERIALID = T6.FMATERIALID
join t_BD_MaterialBase t4 on t3.FMATERIALID = t4.FMATERIALID
join t_BD_MaterialPlan t5 on t3.FMATERIALID = t5.FMATERIALID
WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
AND FComplete ='未齐套'
AND FERPCLSID=1
 AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
AND T1.FID in ({0})
order by FHMASTERDATE
", FDayPlanWorkID);
                sql = string.Format(@"
 /*dialect*/
SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId ,FErpClsID
FROM   (
select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo,FSumPlanCount FNeedQty from JIT_MOMaterReadysBill a
@@ -112,10 +91,10 @@
WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
AND FERPCLSID in ('1','3') 
AND T1.NeedQty>0
AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
AND T1.FID in ({0})
AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN (select distinct FDAYPLANID from sc_TLPLANZXJH where FISZX = 0))
AND T1.FID in (select distinct FDAYPLANID from sc_TLPLANZXJH where FISZX = 0)
order by FHMASTERDATE
", FDayPlanWorkID);
");
                //LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql);
                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
                List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();