Przeglądaj źródła

自动绑定水件功能,自动商标切换功能,自动保存

qinqi 1 rok temu
rodzic
commit
55a7e4c61e

+ 210 - 0
wwwroot/main/Assemble/api/GetBarcodeByScan.ashx

@@ -0,0 +1,210 @@
+<%@ WebHandler Language="C#" Class="GetBarcodeByScan" %>
+
+using System;
+using System.Web;
+using System.Data;
+using DK.XuWei.WebMes;
+using System.Web.SessionState;
+using System.Web.Configuration;
+using Newtonsoft.Json.Linq;
+using Curtain.DataAccess;
+using System.Collections.Generic;
+using Fleck;
+using System.Linq;
+using Curtain.Log;
+
+/// <summary>
+/// 获取 缺陷扣罚
+/// QQ 2024-03-26
+/// </summary>
+public class GetBarcodeByScan : IHttpHandler, IReadOnlySessionState
+{
+    public static class PLC
+    {
+        public static string dbbarResult = "1000.0";   //纸箱码状态(int)
+        public static string dbidnrkResult = "1000.2";   //纸箱码状态(int)
+    }
+
+    public static S7 s7=new S7();
+    public JArray result = new JArray();
+    public static List<IWebSocketConnection> allScokets;
+    public static WebSocketServer server;
+
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+        //启动服务
+        if (context.Request["start"] is object)
+        {
+            string barcodeip = context.Request["barcodeip"].ToString();
+
+            if (allScokets == null)
+            {
+                start(barcodeip);
+            }
+            context.Response.Write("服务启动成功!");
+        }
+
+        if (context.Request["barcode"] is object)
+        {
+            try
+            {
+                //当扫描条码后,35服务器传输对应的条码及端口,需要根据端口打开对应常连接服务
+                string barCode = context.Request["barcode"].ToString();
+                string scanport = context.Request["scanport"].ToString();
+
+                if (allScokets == null)
+                {
+                    start("ws://172.18.32.32:9102");
+
+                }
+                foreach (var socket in allScokets.ToList())
+                {
+                    socket.Send(scanport+"#"+barCode);
+                }
+                Logger.Info(barCode);
+                context.Response.Write(new JsonResult(barCode).ToJson());
+            }
+            catch (Exception ex)
+            {
+
+                throw ex;
+            }
+
+        }
+
+        if (context.Request["scanFlag"] is object)
+        {
+            try
+            {
+                var scanflag = Convert.ToInt16(context.Request["scanFlag"]);
+                var plcip = context.Request["plcip"].ToString();
+                s7 = new S7(plcip);
+                if (scanflag == 0)
+                {
+                    scanflag = 3;
+                }
+                if (scanflag == 1)
+                {
+                    scanflag = 2;
+                }
+                bool successflag = s7.Write<short>(PLC.dbbarResult, Convert.ToInt16(scanflag));
+                if (successflag)
+                {
+                    result.Add(new JObject(new JProperty("TRUE;PLC写入", PLC.dbbarResult + " = " + scanflag + ";")));
+                    result.Add(new JObject(new JProperty("PLC读出(核对)", PLC.dbbarResult + " = " + s7.Read<short>(PLC.dbbarResult) + ";")));
+                    Logger.Info(result.ToString());
+                    context.Response.Write(new JsonResult(JsonStatus.success) { rows = result }.ToJson());
+                }
+                else
+                {
+                    s7.IS_OPEN = false;
+                    s7.Write<short>(PLC.dbbarResult, Convert.ToInt16(scanflag));
+                    result.Add(new JObject(new JProperty("FALSE;PLC写入", PLC.dbbarResult + " = " + scanflag + ";")));
+                    result.Add(new JObject(new JProperty("PLC读出(核对)", PLC.dbbarResult + " = " + s7.Read<short>(PLC.dbbarResult) + ";")));
+                    Logger.Info(result.ToString());
+                    context.Response.Write(new JsonResult(JsonStatus.success) { rows = result }.ToJson());
+                }
+
+            }
+            catch (Exception ex)
+            {
+                s7.IS_OPEN = false;
+                var scanflag = Convert.ToInt16(context.Request["scanFlag"]);
+                if (scanflag == 0)
+                {
+                    scanflag = 3;
+                }
+                if (scanflag == 1)
+                {
+                    scanflag = 2;
+                }
+                s7.Write<short>(PLC.dbbarResult, Convert.ToInt16(scanflag));
+                result.Add(new JObject(new JProperty("CATCH;PLC写入", PLC.dbbarResult + " = " + scanflag + ";")));
+                result.Add(new JObject(new JProperty("PLC读出(核对)", PLC.dbbarResult + " = " + s7.Read<short>(PLC.dbbarResult) + ";")));
+                Logger.Info(result.ToString());
+                context.Response.Write(new JsonResult(JsonStatus.success) { rows = result }.ToJson());
+                throw ex;
+            }
+
+        }
+
+        if (context.Request["scanBomFlag"] is object)
+        {
+            try
+            {
+                var scanBomFlag = Convert.ToInt16(context.Request["scanBomFlag"]);
+                var plcip = context.Request["plcip"].ToString();
+                s7 = new S7(plcip);
+                if (scanBomFlag == 0)
+                {
+                    scanBomFlag = 5;
+                }
+                if (scanBomFlag == 1)
+                {
+                    scanBomFlag = 4;
+                }
+                bool successflag = s7.Write<short>(PLC.dbidnrkResult, Convert.ToInt16(scanBomFlag));
+                if (successflag)
+                {
+                    result.Add(new JObject(new JProperty("TRUE;PLC写入", PLC.dbidnrkResult + " = " + scanBomFlag + ";")));
+                    result.Add(new JObject(new JProperty("PLC读出(核对)", PLC.dbidnrkResult + " = " + s7.Read<short>(PLC.dbidnrkResult) + ";")));
+                    Logger.Info(result.ToString());
+                    context.Response.Write(new JsonResult(JsonStatus.success) { rows = result }.ToJson());
+                }
+                else
+                {
+                    s7.IS_OPEN = false;
+                    s7.Write<short>(PLC.dbidnrkResult, Convert.ToInt16(scanBomFlag));
+                    result.Add(new JObject(new JProperty("FALSE;PLC写入", PLC.dbidnrkResult + " = " + scanBomFlag + ";")));
+                    result.Add(new JObject(new JProperty("PLC读出(核对)", PLC.dbidnrkResult + " = " + s7.Read<short>(PLC.dbidnrkResult) + ";")));
+                    Logger.Info(result.ToString());
+                    context.Response.Write(new JsonResult(JsonStatus.success) { rows = result }.ToJson());
+                }
+
+            }
+            catch (Exception ex)
+            {
+                s7.IS_OPEN = false;
+                var scanBomFlag = Convert.ToInt16(context.Request["scanBomFlag"]);
+                if (scanBomFlag == 0)
+                {
+                    scanBomFlag = 5;
+                }
+                if (scanBomFlag == 1)
+                {
+                    scanBomFlag = 4;
+                }
+                s7.Write<short>(PLC.dbidnrkResult, Convert.ToInt16(scanBomFlag));
+                result.Add(new JObject(new JProperty("CATCH;PLC写入", PLC.dbidnrkResult + " = " + scanBomFlag + ";")));
+                result.Add(new JObject(new JProperty("PLC读出(核对)", PLC.dbidnrkResult + " = " + s7.Read<short>(PLC.dbidnrkResult) + ";")));
+                Logger.Info(result.ToString());
+                context.Response.Write(new JsonResult(JsonStatus.success) { rows = result }.ToJson());
+                throw ex;
+            }
+
+        }
+
+    }
+    //启动服务
+    public static void start(string ip)
+    {
+        allScokets = new List<IWebSocketConnection>();
+        server = new WebSocketServer(ip);
+        server.Start(scoket =>
+        {
+            scoket.OnOpen = () => { allScokets.Add(scoket); };
+            scoket.OnClose = () => { allScokets.Remove(scoket); };
+            scoket.OnMessage = message => { allScokets.ToList().ForEach(s => s.Send(message)); };
+        });
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 44 - 0
wwwroot/main/Assemble/api/GetIPData_WCF.ashx

@@ -0,0 +1,44 @@
+<%@ WebHandler Language="C#" Class="GetIPData_WCF" %>
+
+using System.Web;
+    using System.Data;
+using System.Web.SessionState;
+using System.Web.Configuration;
+using Newtonsoft.Json.Linq;
+using Curtain.DataAccess;
+using Curtain.Log;
+using DK.XuWei.WebMes;
+
+/// <summary>
+/// 从WCF接口获取 自动扫描配置信息类型
+/// qq 20240520
+/// </summary>
+public class GetIPData_WCF : IHttpHandler, IReadOnlySessionState
+{
+    public void ProcessRequest(HttpContext context)
+    {
+        using (IDataAccess conn = DataAccess.Create())
+        {
+            DataTable soptypename = conn.ExecuteDatatable(@"
+                SELECT  w.workstationid,w.workstationname,wc.barcodeip,wc.idnrkip,wc.scanip,wc.plcip,wc.servicePort
+                   FROM tp_mst_workstation  w
+                   left join tp_Pc_procedure p on p.procedureid = w.procedureid 
+                   left join TP_PM_WORKSTATIONIPCONFIG wc on wc.workstationname = w.workstationname
+                   WHERE w.procedureid = @PROCEDUREID@ and w.workstationID = @WORKSTATIONID@  ",
+                new CDAParameter("PROCEDUREID", context.Request["id"]),
+                new CDAParameter("WORKSTATIONID", context.Request["workstation"])
+            );
+            context.Response.Write(new JsonResult(soptypename).ToJson());
+
+        }
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 2 - 0
wwwroot/main/Assemble/api/GetIdnrkListData.ashx

@@ -38,12 +38,14 @@ public class GetIdnrkListData : IHttpHandler, IReadOnlySessionState
                        BI.LGORT,
                        P.PROCEDURENAME,
                        BI.CREATETIME,
+                       pt.SCANFLAG,
                        U.USERNAME AS CREATEUSERNAME
                   FROM TP_PM_BARCODEIDNRKREL BI
                   LEFT JOIN TP_PC_PROCEDURE P
                     ON P.PROCEDUREID = BI.PROCEDUREID
                   LEFT JOIN TP_MST_USER U
                     ON U.USERID = BI.CREATEUSERID
+                  left join TP_PC_PROCEDUREIDNRKTYPE  pt on pt.procedureid = bi.PROCEDUREID and bi.IDNRKNAME like '%'||pt.idnrktype||'%'
                  WHERE BI.VALUEFLAG = '1'
                    AND BI.ACCOUNTID = @ACCOUNTID@
                    AND BI.BARCODE = @BARCODE@

+ 185 - 84
wwwroot/main/Assemble/api/GetLogoData.ashx

@@ -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());
+            }
         }
     }
 

Plik diff jest za duży
+ 2009 - 77
wwwroot/main/Assemble/index.html


+ 1 - 1
wwwroot/main/Login/login.html

@@ -304,7 +304,7 @@
                                 //登录工位
                                 for (var i = 0; i < workStation.length; i++) {
                                     if (workStation[i]['ID'].toString() == $('#工位').getRadioVal()) {
-                                        window.location.href = workStation[i]['TYPEURL'] + '&NAME=' + workStation[i]['NAME'].toString();
+                                        window.location.href = workStation[i]['TYPEURL'] + '&NAME=' + workStation[i]['NAME'].toString() + '&WORKSID=' + workStation[i]['ID'].toString();
                                         
                                     }
                                 }

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików