Beispiel #1
0
        public async Task <ActionResult> Index(TraceabilityRequest tr)
        {
            ViewBag.Title = ModelName;

            if (String.IsNullOrEmpty(tr.Wo) && String.IsNullOrEmpty(tr.Sn) && String.IsNullOrEmpty(tr.Pack) &&
                !tr.Dt1.HasValue && !tr.Dt2.HasValue)
            {
                ModelState.AddModelError("", "请输入要查询的序列号,箱号,批次号或工单号!");
            }
            else
            {
                ViewBag.History = await GetHistoryData(tr);

                if (ViewBag.History.Rows.Count > 0)
                {
                    List <String> prdsns = GetPrdsns(ViewBag.History);
                    ViewBag.IDData = await GetWipIDData(prdsns);

                    ViewBag.CompData = await GetCompData(prdsns);

                    ViewBag.ContainerData = await GetContainerData(prdsns);

                    ViewBag.ProcData = await GetProcData(prdsns);

                    ViewBag.TicketData = await GetTicketData(prdsns);
                }
            }

            return(View(tr));
        }
Beispiel #2
0
        private async Task <DataTable> GetHistoryData(TraceabilityRequest tr)
        {
            string sql;

            if (!tr.Dt1.HasValue)
            {
                tr.Dt1 = new DateTime(2000, 1, 1);
            }
            if (!tr.Dt2.HasValue)
            {
                tr.Dt2 = new DateTime(3000, 1, 1);
            }
            string cntrsql = "";

            if (!string.IsNullOrEmpty(tr.Pack))
            {
                cntrsql = " and ( prdsn in (select SUBCONTAINERNO from WMS_CONTAINERSUB where CONTAINERNO='" + tr.Pack + "') OR prdsn in (SELECT R1.IDVAL FROM WIP_IDLIST R1 WHERE R1.PRDSN IN  (select SUBCONTAINERNO from WMS_CONTAINERSUB where CONTAINERNO='" + tr.Pack + "')) )";
            }
            string wosql = "";

            if (!string.IsNullOrEmpty(tr.Wo))
            {
                wosql = " (wo_id = '" + tr.Wo + "' OR PRDSN IN  (SELECT R3.IDVAL FROM WIP_IDLIST R3 WHERE R3.WO_ID= '" + tr.Wo + "') ) and ";
            }
            if (tr.IsRevert)
            {
                if (!string.IsNullOrEmpty(tr.Sn))
                {
                    sql = "select * from V_RPT_WIP_PrdHistory where " + wosql + " ( (startdt>=@1 and enddt<=@2) OR PRDSN IN ( SELECT R4.IDVAL  FROM WIP_IDLIST R4 WHERE R4.PRDSN IN ( SELECT RA.PRDSN FROM WIP_PRDHISTORY RA WHERE RA.startdt>=@1 and RA.enddt<=@2 )  ) )" + cntrsql + " and (prdsn in (SELECT PRDSN FROM WIP_PRDCOMPS WHERE COMPSN='" + tr.Sn + "') or prdsn in ( SELECT R2.IDVAL FROM WIP_IDLIST R2 WHERE R2.PRDSN IN  (SELECT PRDSN FROM WIP_PRDCOMPS WHERE COMPSN='" + tr.Sn + "')  ) ) " + " order by startdt DESC";
                }
                else
                {
                    sql = "select * from V_RPT_WIP_PrdHistory where " + wosql + " ( (startdt>=@1 and enddt<=@2) OR PRDSN IN ( SELECT R4.IDVAL  FROM WIP_IDLIST R4 WHERE R4.PRDSN IN ( SELECT RA.PRDSN FROM WIP_PRDHISTORY RA WHERE RA.startdt>=@1 and RA.enddt<=@2 )  ) )" + cntrsql + "  order by startdt DESC";
                }
            }
            else
            {
                if (!String.IsNullOrEmpty(tr.Sn))
                {
                    sql = "select * from V_RPT_WIP_PrdHistory where ( prdsn='" + tr.Sn + "' or lotno='" + tr.Sn + "' OR PRDSN IN ( SELECT R4.IDVAL  FROM WIP_IDLIST R4 WHERE R4.PRDSN='" + tr.Sn + "') )  " + cntrsql + "  order by startdt DESC";
                }
                else
                {
                    sql = "select * from V_RPT_WIP_PrdHistory where " + wosql + " ( (startdt>=@1 and enddt<=@2) OR PRDSN IN ( SELECT R4.IDVAL  FROM WIP_IDLIST R4 WHERE R4.PRDSN IN ( SELECT RA.PRDSN FROM WIP_PRDHISTORY RA WHERE RA.startdt>=@1 and RA.enddt<=@2 )  ) )" + cntrsql + " order by startdt DESC";
                }
            }

            return(await db.QueryAsync(sql, tr.Dt1.Value, tr.Dt2.Value));
        }