|
|
@@ -35,105 +35,206 @@ public class GetLogoData : IHttpHandler, IReadOnlySessionState
|
|
|
LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PP.GOODSID = GDD.GOODSID
|
|
|
WHERE GDD.BARCODE = @BARCODE@
|
|
|
AND PP.BEGINTIME <= SYSDATE
|
|
|
+ AND PP.VALUEFLAG = 1
|
|
|
AND PP.ENDTIME > SYSDATE ",
|
|
|
new CDAParameter("BARCODE", context.Request["barCode"])
|
|
|
);
|
|
|
if (planData != null && planData.Rows.Count > 0)
|
|
|
{
|
|
|
+ DataTable planFlag = conn.ExecuteDatatable(@"
|
|
|
+ SELECT PLANFLAG FROM TP_MST_User WHERE USERID = @USERID@ ",
|
|
|
+ new CDAParameter("USERID", HttpContext.Current.Session["userid"])
|
|
|
+ );
|
|
|
+ if (planFlag != null && planFlag.Rows.Count > 0 && planFlag.Rows[0]["PLANFLAG"].ToString() == "0")
|
|
|
+ {
|
|
|
+ //低级权限
|
|
|
DataTable plansTable = conn.ExecuteDatatable(@"
|
|
|
- SELECT l.logoid AS id
|
|
|
- ,CASE
|
|
|
- WHEN linshi.residuequantity IS NOT NULL THEN
|
|
|
- l.logoname || '[' || t2.materialcode || ']' || ' 剩余[' || linshi.residuequantity || ']'
|
|
|
- ELSE
|
|
|
- l.logoname || '[' || t2.materialcode || ']'
|
|
|
- END AS NAME
|
|
|
- ,t2.materialcode
|
|
|
- ,nvl(gdd.valueflag, '0') AS iscurrentlogo
|
|
|
- FROM tp_mst_logo l
|
|
|
- INNER JOIN (SELECT DISTINCT t.goodsid,t.logoid,t.materialcode
|
|
|
- FROM (SELECT g.goodsid,g.logoid,g.materialcode
|
|
|
- FROM tp_mst_goods g
|
|
|
- UNION ALL
|
|
|
- SELECT s.goodsid,s.logoid,s.materialcode
|
|
|
- FROM tp_mst_goodslogosap s) t
|
|
|
- WHERE EXISTS (SELECT 1 FROM tp_pm_groutingdailydetail g
|
|
|
- WHERE g.goodsid = t.goodsid AND g.barcode = @BARCODE@)) t2 ON t2.logoid = l.logoid
|
|
|
- LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.logoid = l.logoid
|
|
|
- AND gdd.barcode = @BARCODE@
|
|
|
- LEFT JOIN (
|
|
|
- SELECT t.goodsid ,t.logoid,SUM(t.changenum),tt.quantity,tt.quantity - SUM(t.changenum) residuequantity
|
|
|
- FROM (SELECT ip.goodsid,ip.logoid,COUNT(distinct l.barcode) changenum
|
|
|
- FROM tp_pm_logochangedrecord l
|
|
|
- right JOIN tp_pm_inproduction ip ON l.barcode = ip.barcode
|
|
|
- LEFT JOIN tp_pc_procedure p ON l.procedureid = p.procedureid
|
|
|
- LEFT JOIN (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
- FROM tp_pm_production_plan pp
|
|
|
- LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
- WHERE gdd.barcode = @BARCODE@
|
|
|
- AND pp.begintime <= SYSDATE
|
|
|
- AND pp.endtime > SYSDATE) plans ON plans.goodsid = ip.goodsid AND plans.logoid = ip.logoid
|
|
|
- WHERE l.createtime >= plans.begintime
|
|
|
- AND l.createtime < plans.endtime
|
|
|
- AND ip.goodsid = @GOODSID@
|
|
|
- and ip.logoid = l.newlogoid
|
|
|
- AND l.oldlogoid <> l.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 = l.barcode AND s.valueflag = 1 AND s.createtime >= l.createtime)
|
|
|
- GROUP BY ip.goodsid,ip.logoid
|
|
|
- UNION ALL
|
|
|
- --队列中
|
|
|
- SELECT pf.goodsid ,pf.logoid ,SUM(pf.platenum - pf.outnum) changenum
|
|
|
- FROM tp_mst_packingform pf
|
|
|
- left join (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
- FROM tp_pm_production_plan pp
|
|
|
- LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
- WHERE gdd.barcode = @BARCODE@
|
|
|
- AND pp.begintime <= SYSDATE
|
|
|
- AND pp.endtime > SYSDATE) plans1 on plans1.goodsid = pf.goodsid and plans1.logoid = pf.logoid
|
|
|
- WHERE pf.status in (0,1) AND pf.logoid > 0 AND pf.valueflag = 1 AND pf.goodsid = @GOODSID@
|
|
|
- AND pf.createtime >= plans1.begintime
|
|
|
- AND pf.createtime < plans1.endtime
|
|
|
- GROUP BY pf.goodsid,pf.logoid
|
|
|
- UNION ALL
|
|
|
- --产成品
|
|
|
- SELECT fp.goodsid ,fp.logoid ,COUNT(distinct fp.barcode) changenum
|
|
|
- FROM tp_pm_finishedproduct fp
|
|
|
- left join (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
- FROM tp_pm_production_plan pp
|
|
|
- LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
- WHERE gdd.barcode = @BARCODE@
|
|
|
- AND pp.begintime <= SYSDATE
|
|
|
- AND pp.endtime > SYSDATE) plans1 on plans1.goodsid = fp.goodsid and plans1.logoid = fp.logoid
|
|
|
- WHERE fp.createtime >= plans1.begintime
|
|
|
- AND fp.createtime < plans1.endtime
|
|
|
- and fp.valueflag = 1
|
|
|
- GROUP BY fp.goodsid,fp.logoid) t
|
|
|
- LEFT JOIN (SELECT pp.goodsid,pp.logoid,pp.quantity
|
|
|
- FROM tp_pm_production_plan pp
|
|
|
- LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
- WHERE gdd.barcode = @BARCODE@
|
|
|
- AND pp.begintime <= SYSDATE
|
|
|
- AND pp.endtime > SYSDATE) tt
|
|
|
- ON t.logoid = tt.logoid
|
|
|
- GROUP BY t.goodsid,t.logoid,tt.quantity
|
|
|
- ) linshi ON linshi.logoid = l.logoid
|
|
|
- WHERE l.valueflag = '1' AND l.accountid = @ACCOUNTID@
|
|
|
- ORDER BY l.displayno",
|
|
|
+ SELECT l.logoid AS id
|
|
|
+ ,CASE
|
|
|
+ WHEN linshi.residuequantity IS NOT NULL THEN
|
|
|
+ l.logoname || '[' || t2.materialcode || ']' || ' 剩余[' || linshi.residuequantity || ']'
|
|
|
+ ELSE
|
|
|
+ l.logoname || '[' || t2.materialcode || ']'
|
|
|
+ END AS NAME
|
|
|
+ ,t2.materialcode
|
|
|
+ ,nvl(gdd.valueflag, '0') AS iscurrentlogo
|
|
|
+ ,1 AS ISCONTROL
|
|
|
+ FROM tp_mst_logo l
|
|
|
+ INNER JOIN (SELECT DISTINCT t.goodsid,t.logoid,t.materialcode
|
|
|
+ FROM (SELECT g.goodsid,g.logoid,g.materialcode
|
|
|
+ FROM tp_mst_goods g
|
|
|
+ UNION ALL
|
|
|
+ SELECT s.goodsid,s.logoid,s.materialcode
|
|
|
+ FROM tp_mst_goodslogosap s) t
|
|
|
+ WHERE EXISTS (SELECT 1 FROM tp_pm_groutingdailydetail g
|
|
|
+ WHERE g.goodsid = t.goodsid AND g.barcode = @BARCODE@)) t2 ON t2.logoid = l.logoid
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.logoid = l.logoid
|
|
|
+ AND gdd.barcode = @BARCODE@
|
|
|
+ RIGHT JOIN (
|
|
|
+ SELECT t.goodsid ,t.logoid,SUM(t.changenum),tt.quantity,tt.quantity - SUM(t.changenum) residuequantity
|
|
|
+ FROM (SELECT ip.goodsid,ip.logoid,COUNT(distinct l.barcode) changenum
|
|
|
+ FROM tp_pm_logochangedrecord l
|
|
|
+ right JOIN tp_pm_inproduction ip ON l.barcode = ip.barcode
|
|
|
+ LEFT JOIN tp_pc_procedure p ON l.procedureid = p.procedureid
|
|
|
+ LEFT JOIN (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) plans ON plans.goodsid = ip.goodsid AND plans.logoid = ip.logoid
|
|
|
+ WHERE l.createtime >= plans.begintime
|
|
|
+ AND l.createtime < plans.endtime
|
|
|
+ AND ip.goodsid = @GOODSID@
|
|
|
+ and ip.logoid = l.newlogoid
|
|
|
+ AND l.oldlogoid <> l.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 = l.barcode AND s.valueflag = 1 AND s.createtime >= l.createtime)
|
|
|
+ GROUP BY ip.goodsid,ip.logoid
|
|
|
+ UNION ALL
|
|
|
+ --队列中
|
|
|
+ SELECT pf.goodsid ,pf.logoid ,SUM(pf.platenum - pf.outnum) changenum
|
|
|
+ FROM tp_mst_packingform pf
|
|
|
+ left join (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) plans1 on plans1.goodsid = pf.goodsid and plans1.logoid = pf.logoid
|
|
|
+ WHERE pf.status in (0,1) AND pf.logoid > 0 AND pf.valueflag = 1 AND pf.goodsid = @GOODSID@
|
|
|
+ AND pf.createtime >= plans1.begintime
|
|
|
+ AND pf.createtime < plans1.endtime
|
|
|
+ GROUP BY pf.goodsid,pf.logoid
|
|
|
+ UNION ALL
|
|
|
+ --产成品
|
|
|
+ SELECT fp.goodsid ,fp.logoid ,COUNT(distinct fp.barcode) changenum
|
|
|
+ FROM tp_pm_finishedproduct fp
|
|
|
+ left join (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) plans1 on plans1.goodsid = fp.goodsid and plans1.logoid = fp.logoid
|
|
|
+ WHERE fp.createtime >= plans1.begintime
|
|
|
+ AND fp.createtime < plans1.endtime
|
|
|
+ and fp.valueflag = 1
|
|
|
+ GROUP BY fp.goodsid,fp.logoid) t
|
|
|
+ LEFT JOIN (SELECT pp.goodsid,pp.logoid,pp.quantity
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) tt
|
|
|
+ ON t.logoid = tt.logoid
|
|
|
+ GROUP BY t.goodsid,t.logoid,tt.quantity
|
|
|
+ ) linshi ON linshi.logoid = l.logoid
|
|
|
+ WHERE l.valueflag = '1' AND l.accountid = @ACCOUNTID@
|
|
|
+ ORDER BY l.displayno",
|
|
|
new CDAParameter("BARCODE", context.Request["barCode"]),
|
|
|
new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
|
|
|
new CDAParameter("GOODSID", planData.Rows[0]["GOODSID"].ToString())
|
|
|
);
|
|
|
- context.Response.Write(new JsonResult() { success = true, message = "操作成功!", rows = plansTable }.ToJson());
|
|
|
+ context.Response.Write(new JsonResult() { success = true, message = "操作成功!", rows = plansTable }.ToJson());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DataTable plansTable = conn.ExecuteDatatable(@"
|
|
|
+ SELECT l.logoid AS id
|
|
|
+ ,CASE
|
|
|
+ WHEN linshi.residuequantity IS NOT NULL THEN
|
|
|
+ l.logoname || '[' || t2.materialcode || ']' || ' 剩余[' || linshi.residuequantity || ']'
|
|
|
+ ELSE
|
|
|
+ l.logoname || '[' || t2.materialcode || ']'
|
|
|
+ END AS NAME
|
|
|
+ ,t2.materialcode
|
|
|
+ ,nvl(gdd.valueflag, '0') AS iscurrentlogo
|
|
|
+ ,0 AS ISCONTROL
|
|
|
+ FROM tp_mst_logo l
|
|
|
+ INNER JOIN (SELECT DISTINCT t.goodsid,t.logoid,t.materialcode
|
|
|
+ FROM (SELECT g.goodsid,g.logoid,g.materialcode
|
|
|
+ FROM tp_mst_goods g
|
|
|
+ UNION ALL
|
|
|
+ SELECT s.goodsid,s.logoid,s.materialcode
|
|
|
+ FROM tp_mst_goodslogosap s) t
|
|
|
+ WHERE EXISTS (SELECT 1 FROM tp_pm_groutingdailydetail g
|
|
|
+ WHERE g.goodsid = t.goodsid AND g.barcode = @BARCODE@)) t2 ON t2.logoid = l.logoid
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.logoid = l.logoid
|
|
|
+ AND gdd.barcode = @BARCODE@
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT t.goodsid ,t.logoid,SUM(t.changenum),tt.quantity,tt.quantity - SUM(t.changenum) residuequantity
|
|
|
+ FROM (SELECT ip.goodsid,ip.logoid,COUNT(distinct l.barcode) changenum
|
|
|
+ FROM tp_pm_logochangedrecord l
|
|
|
+ right JOIN tp_pm_inproduction ip ON l.barcode = ip.barcode
|
|
|
+ LEFT JOIN tp_pc_procedure p ON l.procedureid = p.procedureid
|
|
|
+ LEFT JOIN (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) plans ON plans.goodsid = ip.goodsid AND plans.logoid = ip.logoid
|
|
|
+ WHERE l.createtime >= plans.begintime
|
|
|
+ AND l.createtime < plans.endtime
|
|
|
+ AND ip.goodsid = @GOODSID@
|
|
|
+ and ip.logoid = l.newlogoid
|
|
|
+ AND l.oldlogoid <> l.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 = l.barcode AND s.valueflag = 1 AND s.createtime >= l.createtime)
|
|
|
+ GROUP BY ip.goodsid,ip.logoid
|
|
|
+ UNION ALL
|
|
|
+ --队列中
|
|
|
+ SELECT pf.goodsid ,pf.logoid ,SUM(pf.platenum - pf.outnum) changenum
|
|
|
+ FROM tp_mst_packingform pf
|
|
|
+ left join (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) plans1 on plans1.goodsid = pf.goodsid and plans1.logoid = pf.logoid
|
|
|
+ WHERE pf.status in (0,1) AND pf.logoid > 0 AND pf.valueflag = 1 AND pf.goodsid = @GOODSID@
|
|
|
+ AND pf.createtime >= plans1.begintime
|
|
|
+ AND pf.createtime < plans1.endtime
|
|
|
+ GROUP BY pf.goodsid,pf.logoid
|
|
|
+ UNION ALL
|
|
|
+ --产成品
|
|
|
+ SELECT fp.goodsid ,fp.logoid ,COUNT(distinct fp.barcode) changenum
|
|
|
+ FROM tp_pm_finishedproduct fp
|
|
|
+ left join (SELECT pp.goodsid,pp.logoid,pp.quantity,gdd.materialcode,pp.begintime ,pp.endtime
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) plans1 on plans1.goodsid = fp.goodsid and plans1.logoid = fp.logoid
|
|
|
+ WHERE fp.createtime >= plans1.begintime
|
|
|
+ AND fp.createtime < plans1.endtime
|
|
|
+ and fp.valueflag = 1
|
|
|
+ GROUP BY fp.goodsid,fp.logoid) t
|
|
|
+ LEFT JOIN (SELECT pp.goodsid,pp.logoid,pp.quantity
|
|
|
+ FROM tp_pm_production_plan pp
|
|
|
+ LEFT JOIN tp_pm_groutingdailydetail gdd ON pp.goodsid = gdd.goodsid
|
|
|
+ WHERE gdd.barcode = @BARCODE@
|
|
|
+ AND pp.begintime <= SYSDATE
|
|
|
+ AND pp.endtime > SYSDATE) tt
|
|
|
+ ON t.logoid = tt.logoid
|
|
|
+ GROUP BY t.goodsid,t.logoid,tt.quantity
|
|
|
+ ) linshi ON linshi.logoid = l.logoid
|
|
|
+ WHERE l.valueflag = '1' AND l.accountid = @ACCOUNTID@
|
|
|
+ ORDER BY l.displayno",
|
|
|
+ new CDAParameter("BARCODE", context.Request["barCode"]),
|
|
|
+ new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
|
|
|
+ new CDAParameter("GOODSID", planData.Rows[0]["GOODSID"].ToString())
|
|
|
+ );
|
|
|
+ context.Response.Write(new JsonResult() { success = true, message = "操作成功!", rows = plansTable }.ToJson());
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
- {
|
|
|
+ {
|
|
|
DataTable dtLogo = conn.ExecuteDatatable(@"
|
|
|
SELECT L.LOGOID AS ID,
|
|
|
L.LOGONAME || '[' || T2.MATERIALCODE || ']' AS NAME,
|
|
|
T2.MATERIALCODE,
|
|
|
NVL(GDD.VALUEFLAG, '0') AS ISCURRENTLOGO
|
|
|
+ ,0 AS ISCONTROL
|
|
|
FROM TP_MST_LOGO L
|
|
|
INNER JOIN (SELECT DISTINCT T.GOODSID,
|
|
|
T.LOGOID,
|
|
|
@@ -161,8 +262,8 @@ public class GetLogoData : IHttpHandler, IReadOnlySessionState
|
|
|
new CDAParameter("BARCODE", context.Request["barCode"]),
|
|
|
new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"])
|
|
|
);
|
|
|
- context.Response.Write(new JsonResult() { success = true, message = "操作成功!", rows = dtLogo }.ToJson());
|
|
|
- }
|
|
|
+ context.Response.Write(new JsonResult() { success = true, message = "操作成功!", rows = dtLogo }.ToJson());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|