|
|
@@ -31,50 +31,55 @@ public class mouldproduceplan : IHttpHandler, IReadOnlySessionState
|
|
|
string GOODSID = context.Request["GOODSID"];
|
|
|
try
|
|
|
{
|
|
|
- string sqlStr = @" SELECT PP.PLANID ,
|
|
|
- PP.GOODSID,
|
|
|
- PP.LOGOID,
|
|
|
- L.LOGONAME AS 商标名称,
|
|
|
- PP.GOODSCODE AS 产品型号,
|
|
|
- substr(PB.NAME,instr(PB.NAME,'H',1)) AS 产品变更型号,
|
|
|
- G.GOODSNAME AS 产品名称,
|
|
|
- G.GOODSSPECIFICATION AS 出水距,
|
|
|
- PP.MATERIALCODE AS 物料编码,
|
|
|
- PP.QUANTITY AS 计划数量,
|
|
|
- PP.BEGINTIME AS 开始时间,
|
|
|
- PP.ENDTIME AS 截止时间,
|
|
|
- fpp.fpcount as 包装数量,
|
|
|
- lcc.lccount as 切换商标数量
|
|
|
- FROM TP_PM_PRODUCTION_PLAN PP
|
|
|
- LEFT JOIN TP_MST_LOGO L ON PP.LOGOID = L.LOGOID
|
|
|
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PP.GOODSID
|
|
|
- LEFT JOIN TP_MST_USER U ON PP.CREATEUSERID = U.USERID
|
|
|
- LEFT JOIN TP_MST_USER U1 ON PP.UPDATEUSERID = U1.USERID
|
|
|
- LEFT JOIN TP_MST_PACKINGBOM PB ON PB.MATNR = PP.MATERIALCODE
|
|
|
- LEFT JOIN (SELECT fp.goodsid,fp.logoid,PP.PLANID,count(distinct fp.barcode) fpcount FROM tp_pm_finishedproduct fp
|
|
|
- LEFT JOIN TP_PM_PRODUCTION_PLAN PP on fp.goodsid = PP.GOODSID and fp.LOGOID = PP.LOGOID
|
|
|
- WHERE fp.createtime >= PP.BEGINTIME
|
|
|
- and fp.createtime < PP.ENDTIME
|
|
|
- and fp.valueflag = 1
|
|
|
- and PP.VALUEFLAG = 1
|
|
|
- group by fp.goodsid,fp.logoid,PP.PLANID
|
|
|
- )fpp ON fpp.goodsid = PP.GOODSID AND fpp.LOGOID = PP.LOGOID AND fpp.PLANID = PP.PLANID
|
|
|
- LEFT JOIN (SELECT gdd.goodsid,lc.newlogoid,PP.PLANID,count(distinct lc.barcode) lccount FROM tp_pm_logochangedrecord lc
|
|
|
- LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.barcode = lc.barcode
|
|
|
- LEFT JOIN TP_PM_PRODUCTION_PLAN PP on gdd.goodsid = PP.GOODSID and lc.newlogoid = PP.LOGOID
|
|
|
- LEFT JOIN tp_pc_procedure p ON lc.procedureid = p.procedureid
|
|
|
- WHERE lc.createtime >= PP.BEGINTIME
|
|
|
- and lc.createtime < PP.ENDTIME
|
|
|
- and gdd.goodsid = PP.GOODSID
|
|
|
- and gdd.logoid = lc.newlogoid
|
|
|
- and lc.newlogoid = PP.LOGOID
|
|
|
- AND lc.oldlogoid <> lc.newlogoid
|
|
|
- AND (p.modeltype = '-5' OR p.procedureid IN (106,107, 78))
|
|
|
- AND NOT EXISTS (SELECT s.barcode FROM tp_pm_scrapproduct s
|
|
|
- WHERE s.barcode = lc.barcode AND s.valueflag = 1 AND s.createtime >= lc.createtime)
|
|
|
- group by gdd.goodsid,lc.newlogoid,PP.PLANID
|
|
|
- )lcc ON lcc.goodsid = PP.GOODSID AND lcc.newlogoid = PP.LOGOID AND lcc.PLANID = PP.PLANID
|
|
|
- WHERE PP.VALUEFLAG = 1 ";
|
|
|
+ string sqlStr = @" SELECT pp.planid
|
|
|
+ ,pp.goodsid
|
|
|
+ ,pp.logoid
|
|
|
+ ,l.logoname AS 商标名称
|
|
|
+ ,pp.goodscode AS 产品型号
|
|
|
+ ,substr(pb.name, instr(pb.name, 'H', 1)) AS 产品变更型号
|
|
|
+ ,g.goodsname AS 产品名称
|
|
|
+ ,g.goodsspecification AS 出水距
|
|
|
+ ,pp.materialcode AS 物料编码
|
|
|
+ ,pp.quantity AS 计划数量
|
|
|
+ ,pp.begintime AS 开始时间
|
|
|
+ ,pp.endtime AS 截止时间
|
|
|
+ ,CASE WHEN pp.controlrange = 1 THEN '装配'
|
|
|
+ WHEN pp.controlrange = 2 THEN '包装' END AS 控制范围
|
|
|
+ ,fpp.fpcount AS 包装数量
|
|
|
+ ,lcc.lccount1 AS 实际切换商标数量
|
|
|
+ ,lcc.lccount2 AS 范围内切换商标数量
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN TP_MST_LOGO L ON PP.LOGOID = L.LOGOID
|
|
|
+ LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PP.GOODSID
|
|
|
+ LEFT JOIN TP_MST_USER U ON PP.CREATEUSERID = U.USERID
|
|
|
+ LEFT JOIN TP_MST_USER U1 ON PP.UPDATEUSERID = U1.USERID
|
|
|
+ LEFT JOIN TP_MST_PACKINGBOM PB ON PB.MATNR = PP.MATERIALCODE
|
|
|
+ LEFT JOIN (SELECT fp.goodsid,fp.logoid,PP1.PLANID,PP1.controlrange,count(distinct fp.barcode) fpcount FROM tp_pm_finishedproduct fp
|
|
|
+ LEFT JOIN TP_PM_PRODUCTION_PLAN PP1 on fp.goodsid = PP1.GOODSID and fp.LOGOID = PP1.LOGOID
|
|
|
+ WHERE fp.createtime >= PP1.BEGINTIME
|
|
|
+ and fp.createtime < PP1.ENDTIME
|
|
|
+ and fp.valueflag = 1
|
|
|
+ and PP1.VALUEFLAG = 1
|
|
|
+ group by fp.goodsid,fp.logoid,PP1.PLANID,PP1.controlrange
|
|
|
+ )fpp ON fpp.goodsid = PP.GOODSID AND fpp.LOGOID = PP.LOGOID AND fpp.PLANID = PP.PLANID and fpp.controlrange = PP.controlrange
|
|
|
+ LEFT JOIN ( SELECT goodsid ,newlogoid,planid,controlrange,sum(lccount1) lccount1,sum(lccount2) lccount2
|
|
|
+ FROM (SELECT gdd.goodsid,lc.newlogoid,pp2.planid ,pp2.controlrange,COUNT(DISTINCT lc.barcode) lccount1
|
|
|
+ ,case when pp2.controlrange = 1 AND p.modeltype = '-5' AND p.procedureid NOT IN (126, 152) then COUNT(DISTINCT lc.barcode)
|
|
|
+ when pp2.controlrange = 2 AND p.procedureid IN (106, 107, 78, 126, 152) then COUNT(DISTINCT lc.barcode) end as lccount2
|
|
|
+ FROM tp_pm_logochangedrecord lc
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.barcode = lc.barcode
|
|
|
+ LEFT JOIN tp_pm_production_plan pp2 ON gdd.goodsid = pp2.goodsid AND lc.newlogoid = pp2.logoid
|
|
|
+ LEFT JOIN tp_pc_procedure p ON lc.procedureid = p.procedureid
|
|
|
+ WHERE lc.createtime >= pp2.begintime AND lc.createtime < pp2.endtime
|
|
|
+ AND gdd.goodsid = pp2.goodsid AND gdd.logoid = lc.newlogoid
|
|
|
+ AND lc.newlogoid = pp2.logoid AND lc.oldlogoid <> lc.newlogoid
|
|
|
+ AND pp2.valueflag = 1 AND (p.modeltype = '-5' OR p.procedureid IN (106,107, 78))
|
|
|
+ AND NOT EXISTS (SELECT s.barcode FROM tp_pm_scrapproduct s
|
|
|
+ WHERE s.barcode = lc.barcode AND s.valueflag = 1 AND s.createtime >= lc.createtime)
|
|
|
+ GROUP BY gdd.goodsid,lc.newlogoid,pp2.planid,pp2.controlrange ,p.modeltype,p.procedureid)
|
|
|
+ GROUP BY goodsid,newlogoid,planid,controlrange
|
|
|
+ )lcc ON lcc.goodsid = PP.GOODSID AND lcc.newlogoid = PP.LOGOID AND lcc.PLANID = PP.PLANID and lcc.controlrange = PP.controlrange
|
|
|
+ WHERE PP.VALUEFLAG = 1 ";
|
|
|
if (!string.IsNullOrEmpty(GOODSID))
|
|
|
{
|
|
|
sqlStr += " AND PP.GOODSID in (" + GOODSID + ")";
|