xiachangming 2 лет назад
Родитель
Сommit
75aa075467
2 измененных файлов с 461 добавлено и 0 удалено
  1. 218 0
      wwwroot/mes/pc/materielquery/rpt.ashx
  2. 243 0
      wwwroot/mes/pc/materielquery/rpt_index.html

+ 218 - 0
wwwroot/mes/pc/materielquery/rpt.ashx

@@ -0,0 +1,218 @@
+<%@ WebHandler Language="C#" Class="rpt" %>
+
+using System;
+using System.Web;
+using System.Web.SessionState;
+using System.Data;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Curtain.DataAccess;
+using DK.XuWei.WebMes;
+
+public class rpt : IHttpHandler, IReadOnlySessionState
+{
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+        using (IDataAccess conn = DataAccess.Create())
+        {
+            string m = context.Request["m"].ToString();
+            string jsonStr = "";
+
+            if (m == "master" || m == "property")
+            {
+                string barcode = context.Request["barcode"];
+                if(!string.IsNullOrEmpty(context.Request["barcodeDB"] +""))
+                {
+                    barcode = context.Request["barcodeDB"]; 
+                }
+                //获取查询条件
+                List<CDAParameter> sqlPara = new List<CDAParameter>();
+                // sqlPara.Add(new CDAParameter("in_AccountID", int.Parse(context.Session["accountId"].ToString())));
+                sqlPara.Add(new CDAParameter("in_AccountID", 1));
+                sqlPara.Add(new CDAParameter("in_barCode", barcode));
+                sqlPara.Add(new CDAParameter("out_result", DataType.Cursor, ParameterDirection.Output));
+                sqlPara.Add(new CDAParameter("out_result1", DataType.Cursor, ParameterDirection.Output));
+
+                //conn.BeginTransaction();
+                //直接获取不分页数据
+                DataSet ds = conn.ExecuteSPDataset("PRO_RPT_GetGoodsFollowingData", sqlPara.ToArray());
+                if (ds.Tables.Count == 0)
+                {
+                    jsonStr = new JsonResult(JsonStatus.success) { message = "未找到任何数据!" }.ToJson();
+                }
+                else
+                {
+                    if (m == "property")
+                    {
+                        if (ds.Tables[0].Rows.Count > 0)
+                        {
+                            ds.Tables[0].Columns["Barcode"].ColumnName = "当前条码";
+                            ds.Tables[0].Columns["LogoCodeName"].ColumnName = "产品商标";
+                            ds.Tables[0].Columns["GoodsTypeName"].ColumnName = "产品类别";
+                            ds.Tables[0].Columns["GoodsCode"].ColumnName = "产品编码";
+                            ds.Tables[0].Columns["GoodsName"].ColumnName = "产品名称";
+                            ds.Tables[0].Columns["Materialcode"].ColumnName = "物料编码";
+                            ds.Tables[0].Columns["Outlabelcode"].ColumnName = "包装条码";
+                            ds.Tables[0].Columns["GOODSSPECIFICATION"].ColumnName = "产品规格";
+                            ds.Tables[0].Columns["Dictionaryvalue"].ColumnName = "釉色类别";
+                            ds.Tables[0].Columns["GroutingLineCode"].ColumnName = "成型线编码";
+                            ds.Tables[0].Columns["GroutingMouldCode"].ColumnName = "模具编号";
+                            ds.Tables[0].Columns["GroutingNum"].ColumnName = "注浆次数";
+                            ds.Tables[0].Columns["GroutingUserCode"].ColumnName = "成型工号";
+                            ds.Tables[0].Columns["Groutingdate"].ColumnName = "注浆日期";
+                            ds.Tables[0].Columns["GroutingBatchNo"].ColumnName = "注浆批次";
+                            ds.Tables[0].Columns["StatusName"].ColumnName = "产品状态";
+                            ds.Tables[0].Columns["LevelName"].ColumnName = "产品等级";
+                            ds.Tables[0].Columns["SpecialRepairFlag"].ColumnName = "干补标识";
+                            ds.Tables[0].Columns["ScrapFlag"].ColumnName = "损坯标识";
+                            ds.Tables[0].Columns["IsPublicBody"].ColumnName = "公坯标识";
+                            //2021年11月26日09:53:44 by fy modify 定义列名
+                            ds.Tables[0].Columns["SecurityCode"].ColumnName = "防伪码";
+                            ds.Tables[0].Columns["GlazingRoom"].ColumnName = "喷釉房号";
+                        }
+                        //xuwei 2021-04-06 属性信息要转换
+                        JArray property = DataTableToJArray(ds.Tables[0]);
+                        jsonStr = new JsonResult(property) { total = property.Count }.ToJson();
+                    }
+                    else
+                    {
+                        if (ds.Tables[1].Rows.Count > 0)
+                        {
+                            ds.Tables[1].Columns["ProductionLineName"].ColumnName = "生产线";
+                            ds.Tables[1].Columns["ProcedureName"].ColumnName = "工序名称";
+                            ds.Tables[1].Columns["UserCode"].ColumnName = "生产工号";
+                            ds.Tables[1].Columns["CreateTime"].ColumnName = "操作时间";
+                            ds.Tables[1].Columns["CreateUserCode"].ColumnName = "操作工号";
+                            ds.Tables[1].Columns["CreateUserName"].ColumnName = "操作者";
+                            ds.Tables[1].Columns["GOODSLEVELNAME"].ColumnName = "操作说明";
+
+                            ds.Tables[1].Columns.Remove("ACCOUNTDATE");
+                            ds.Tables[1].Columns.Remove("DATAID");
+
+                            if (ds.Tables[0].Rows.Count > 0 && (ds.Tables[0].Rows[0]["LevelName"].Equals("正品") || ds.Tables[0].Rows[0]["LevelName"].Equals("副品")))
+                            {
+                                foreach (DataRow row in ds.Tables[1].Rows)
+                                {
+                                    if (row["工序名称"] != null && row["工序名称"].Equals("测漏气")
+                                            && row["操作说明"] != null)
+                                    {
+                                        row["操作说明"] = row["操作说明"].ToString().Replace("不合格", "合格");
+                                    }
+                                }
+                            }
+                        }
+
+                        jsonStr = new JsonResult(ds.Tables[1]) { total = ds.Tables[1].Rows.Count }.ToJson();
+
+                    }
+                }
+            }
+
+            if (m == "goods")
+            {
+                string datebeginMasterS = context.Request["datebeginMasterS"];
+                string datebeginMasterD = context.Request["datebeginMasterD"];
+                string goodstypecode = context.Request["goodstypecode"];
+                List<CDAParameter> sqlPara = new List<CDAParameter>();
+
+                string sqlStr = @"SELECT  t.fhtime         AS 交接时间
+                                              ,gt.goodstypename AS 产品类型
+                                              ,g.goodscode      AS 产品型号
+                                              ,g.goodsname      AS 产品名称
+                                              ,t.barcode        AS 产品条码
+                                          FROM tp_pm_finishedproduct t
+                                         INNER JOIN tp_mst_goods g
+                                            ON g.goodsid = t.goodsid
+                                         INNER JOIN tp_mst_goodstype gt
+                                            ON gt.goodstypeid = g.goodstypeid
+                                          where 1=1 
+                                        AND (INSTR(GT.GOODSTYPECODE,'{GOODSTYPECODE}') = 1 OR '{GOODSTYPECODE}' IS NULL) ".Replace("{GOODSTYPECODE}", goodstypecode);
+                if (!string.IsNullOrEmpty(datebeginMasterS))
+                {
+                    sqlStr += " and t.fhtime >=@datebeginMasterS@ ";
+                    sqlPara.Add(new CDAParameter("datebeginMasterS", datebeginMasterS, DataType.Date));
+                }
+                if (!string.IsNullOrEmpty(datebeginMasterD))
+                {
+                    sqlStr += " and t.fhtime <@datebeginMasterD@ ";
+                    sqlPara.Add(new CDAParameter("datebeginMasterD", Convert.ToDateTime(datebeginMasterD).AddDays(1), DataType.Date));
+                }
+                try
+                {
+                    JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
+                    context.Response.Write(data.ToJson());
+                }
+                catch (Exception ex)
+                {
+
+                    throw;
+                }
+
+            }
+
+            //物料信息查询===================================
+            if (m == "materiel")
+            {
+                string barcode = context.Request["barcode"];
+                if(!string.IsNullOrEmpty(context.Request["barcodeDB"] +""))
+                {
+                    barcode = context.Request["barcodeDB"]; 
+                }
+                DataTable dt = conn.ExecuteDatatable(@"
+                   SELECT
+	                    m.NAME AS 名称,
+	                    b.MATNR AS 物料,
+	                    m.POSNR AS 项目,
+	                    m.POSTP AS 条目类别,
+	                    m.IDNRK AS 组件,
+	                    m.MENGE AS 组件数量,
+	                    m.MEINS AS 组件单位,
+	                    m.AUSCH AS 组件报废率,
+	                    m.AVOAU AS 工序报废率  
+                    FROM
+	                    TP_MST_PACKINGBOMDETAIL m
+	                    INNER JOIN TP_MST_PACKINGBOM b ON m.PACKINGBOMID = b.PACKINGBOMID
+	                    INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd ON gdd.GOODSID = b.GOODSID and gdd.LOGOID = b.LOGOID
+                    WHERE
+	                    m.VALUEFLAG = '1' 
+                        AND b.VALUEFLAG = '1' 
+	                    AND gdd.BARCODE = @BARCODE@
+                    ",
+                    new CDAParameter("BARCODE",barcode)
+                );
+                jsonStr = new JsonResult(dt).ToJson();
+            }
+            //===============================================
+
+            context.Response.Write(jsonStr);
+        }
+
+
+    }
+
+    public JArray DataTableToJArray(DataTable dt)
+    {
+        JArray pArray = new JArray();
+        for (int i = 0; i < dt.Columns.Count; i++)
+        {
+            JObject pObj = new JObject();
+            pObj.Add(new JProperty("name", dt.Columns[i].ColumnName));
+            pObj.Add(new JProperty("value", dt.Rows[0][dt.Columns[i].ColumnName]));
+            pArray.Add(pObj);
+        }
+        return pArray;
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 243 - 0
wwwroot/mes/pc/materielquery/rpt_index.html

@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <meta name="keywords" content="dongke,mes,ibossmes">
+    <meta name="description" content="制造企业生产过程执行管理系统">
+    <meta name="author" content="xuwei">
+    <title>东科软件</title>
+    <script src="/plugins/xeasyui/xeasyui.min.js"></script>
+    <link href="/plugins/xeasyui/toolbar.min.css" rel="stylesheet" />
+</head>
+<body class="easyui-layout">
+    <!--中部主体-->
+    <div id="toolbarLayout" data-options="border:false,region:'north',title:'',iconCls:'icon-grid'">
+        <!--工具条-->
+        <div id="tb" style="overflow: hidden;" class="i-toolbar" data-options="border:false,region:'north',title:'',iconCls:'icon-grid',height:210">
+            <a href="javascript:void(0)" id="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
+            <a href="javascript:void(0)" id="btnExport" title="导出" class="easyui-linkbutton" iconcls="icon-excel" plain="true" onclick="tbExport()">导出</a>
+            <a href="javascript:void(0)" id="btnReload" title="刷新" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="tbReload()">刷新</a>
+            <div id="tbSearchDiv" style="display: block; padding: 10px;">
+                <form id="ffMaster">
+                    <div>
+                        产成品交接时间:
+                        <input class="easyui-datebox" id="datebeginMasterS" name="datebeginMasterS" data-options="required:false,prompt:'',tipPosition:'top'" style="width:165px; height:32px;">
+                        -
+                        <input class="easyui-datebox" id="datebeginMasterD" name="datebeginMasterD" data-options="required:false,prompt:'',tipPosition:'top'" style="width:165px; height:32px;">
+                        产品类型:
+                        <input class="easyui-combotree" id="goodstypecode" name="goodstypecode" data-options="required:false,prompt:'',tipPosition:'top',url:'../../list.ashx?m=getGoodsType',method:'get',panelHeight:'200px',editable:true" style="width: 160px; height: 32px;"></span>
+                        <span class="labelspan">产品条码<input class="easyui-textbox" id="barcode" name="barcode"  data-options="required:false,prompt:'',tipPosition:'top',required:false" style="width: 120px; height: 32px;"></span>
+                        <a href="javascript:void(0)" id="btnSearchSubmit" title="清空" class="easyui-linkbutton" plain="false" onclick="$('#ffMaster').form('clear')">清空</a>
+                        <a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()">搜索</a>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+
+    <div data-options="border:false,region:'center',title:'',iconCls:'icon-grid'">
+        <div id="tableTabs" class="easyui-tabs" data-options="border:false" style="width: 100%; height: 100%">
+            <div title="产品表">
+                <!--表格-->
+                <table class="easyui-datagrid"
+                       id="DataGrid"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true,onDblClickRow: dgDblclickrow">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+            <div title="产品跟踪表">
+                <!--表格-->
+                <table class="easyui-datagrid"
+                       id="DataGridMaster"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+            <div title="产品信息表">
+                <table class="easyui-datagrid"
+                       id="PropertyGridDetail"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                </table>
+            </div>
+            <div title="物料信息表">
+                <!--表格-->
+                <table class="easyui-datagrid"
+                       id="DataGridMateriel"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+        </div>
+    </div>
+    <script type="text/javascript">
+
+        var pgColumns = [[
+            { field: 'name', title: '属性', width: '150px', sortable: true, align: 'left' },
+            { field: 'value', title: '值', width: '150px', resizable: false, align: 'left' }
+        ]];
+
+        function formatterUA(value, row, index) {
+            return Math.round(value * 10000) / 100 + '%';
+        }
+
+        $(document).ready(function () {
+            var ctime = new Date();
+            var beginDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate();
+            var endDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + (ctime.getDate()+1);
+            $("#datebeginMasterS").datebox("setValue", beginDate);
+            $("#datebeginMasterD").datebox("setValue", endDate);
+
+            tbSearchSubmit();
+
+        });
+        //主表双击事件
+        function dgDblclickrow(index, row) {
+            $("#tableTabs").tabs("select", 1);
+            LoadDataGridDetail(index, row);
+        }
+        //加载子表数据
+        function LoadDataGridDetail(index, row) {
+            var barcode = row["产品条码"];
+            //产品追踪表
+            $('#DataGridMaster').datagridLoadRpt({
+                title: '',
+                idField: 'SID',
+                queryParams: $('#ffMaster').serializeJson(),
+                url: 'rpt.ashx?m=master&id=' + request('id') + '&barcodeDB=' + barcode,
+                fixWidth: 160,
+                mergeWidth: 100,
+                splitChar: '_',
+                columnMenu: '#btnColumnMenu',
+                columnMoving: true
+            });
+            //产品属性表
+            $('#PropertyGridDetail').propertygrid({
+                queryParams: $('#ffMaster').serializeJson(),
+                url: 'rpt.ashx?m=property&barcodeDB=' + barcode,
+                method: 'get',
+                columns: pgColumns,
+                border: false,
+                showGroup: false,
+                scrollbarSize: 0
+            });
+            //物料信息表
+            $('#DataGridMateriel').datagridLoadRpt({
+                title: '',
+                idField: 'SID',
+                queryParams: $('#ffMaster').serializeJson(),
+                url: 'rpt.ashx?m=materiel&id=' + request('id') + '&barcodeDB=' + barcode,
+                fixWidth: 160,
+                mergeWidth: 100,
+                splitChar: '_',
+                columnMenu: '#btnColumnMenu',
+                columnMoving: true
+            });
+        }
+
+        //搜索提交
+        function tbSearchSubmit() {
+            var index = $('#tableTabs').tabs('getTabIndex', $('#tableTabs').tabs('getSelected'));
+            var barcode = $('#barcode').textbox('getValue');
+
+            if ($('#ffMaster').form("validate")) {
+
+                if (index == 0) {
+                    $('#DataGrid').datagridLoad({
+                        title: '',
+                        idField: 'SID',
+                        queryParams: $('#ffMaster').serializeJson(),
+                        url: 'rpt.ashx?m=goods&id=' + request('id'),
+                        fixWidth: 160,
+                        mergeWidth: 100,
+                        splitChar: '_',
+                        columnMenu: '#btnColumnMenu',
+                        columnMoving: true
+                    });
+                }
+                if ((index == 0 || index == 1 || index == 2) && barcode.length>0) {
+                    //产品追踪表
+                    $('#DataGridMaster').datagridLoadRpt({
+                        title: '',
+                        idField: 'SID',
+                        queryParams: $('#ffMaster').serializeJson(),
+                        url: 'rpt.ashx?m=master&id=' + request('id'),
+                        fixWidth: 160,
+                        mergeWidth: 100,
+                        splitChar: '_',
+                        columnMenu: '#btnColumnMenu',
+                        columnMoving: true
+                    });
+                    //产品属性表
+                    $('#PropertyGridDetail').propertygrid({
+                        queryParams: $('#ffMaster').serializeJson(),
+                        url: 'rpt.ashx?m=property',
+                        method: 'get',
+                        columns: pgColumns,
+                        border: false,
+                        showGroup: false,
+                        scrollbarSize: 0
+                    });
+                    //物料信息表
+                    $('#DataGridMateriel').datagridLoadRpt({
+                        title: '',
+                        idField: 'SID',
+                        queryParams: $('#ffMaster').serializeJson(),
+                        url: 'rpt.ashx?m=materiel&id=' + request('id'),
+                        fixWidth: 160,
+                        mergeWidth: 100,
+                        splitChar: '_',
+                        columnMenu: '#btnColumnMenu',
+                        columnMoving: true
+                    });
+                }
+
+            }
+        }
+
+        //导出
+        function tbExport() {
+            var index = $('#tableTabs').tabs('getTabIndex', $('#tableTabs').tabs('getSelected'));
+            var title = $('#tableTabs').tabs('getTab', index).panel('options').title;//表格名称
+            var id = "DataGridMaster";
+            if (index == 1) {
+                id = "PropertyGridDetail";
+            }
+            //加载表头
+            var fields = $('#'+id).datagrid('getColumnFields');
+            var headers = [];
+            for (var i = 0; i < fields.length; i++) {
+                //headers.push($('#DataGridMaster').datagrid('getColumnOption', fields[i])['title']);
+                headers.push(fields[i]);
+            }
+            $('#' + id).datagridExport({
+                headers: headers,
+                fileName: '导出数据(' + title + ').xls',
+                workSheet: '导出数据(' + title + ')'
+            });
+            //导出多sheet
+            //$.dataGridToExcel(
+            //    ['DataGridMaster', 'PropertyGridDetail'],
+            //    ['产品跟踪表', '产品信息'],
+            //    "导出数据(产品跟踪表).xls"
+            //);
+        }
+
+        //搜索按钮
+        function tbSearch() {
+            $('#tbSearchDiv').toggle();
+            $('#toolbarLayout').panel('resize', { height: 'auto' });
+            $('body').layout('resize');
+            $('#tableTabs').tabs('resize');
+        }
+
+        //刷新
+        function tbReload() {
+            tbSearchSubmit();
+        }
+
+    </script>
+</body>
+</html>