Explorar o código

常用产品配置表

ztl %!s(int64=2) %!d(string=hai) anos
pai
achega
87ab42708e

+ 134 - 0
wwwroot/mes/mst/CommonModelGood/CommonModel_importGOODS.ashx

@@ -0,0 +1,134 @@
+<%@ WebHandler Language="C#" Class="testform_importBarCode" %>
+
+using System;
+using System.Web;
+using System.Web.SessionState;
+using System.Data;
+using DK.XuWei.WebMes;
+using Curtain.DataAccess;
+using Curtain.Log;
+
+//EXCEL模板,要求
+
+//...
+public class testform_importBarCode : IHttpHandler, IReadOnlySessionState
+{
+
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+
+        //上传文件
+        string filePath = "/mes/upload/"+DateTime.Now.ToString("yyyy-MM-dd");
+        System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
+        string fileName = filePath + "/常用产品" + DateTime.Now.ToString("yyyy-MM-dd");
+        fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName);
+        string diskFileName = context.Server.MapPath(fileName);
+        if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
+        context.Request.Files[0].SaveAs(diskFileName);
+
+        //读excel
+        DataTable dt = Import.ExcelToDataTable(diskFileName);
+
+        //Logger.Debug(dt.Rows.Count.ToString());
+
+        //写入数据
+        using (IDataAccess conn = DataAccess.Create())
+        {
+            int errorLineNo = 0;
+            conn.BeginTransaction();
+            try
+            {
+                #region 删除实验单所有产品
+                object a = context.Request["testformguidMaster"];
+                //int result0 = conn.ExecuteNonQuery(@"
+                //    DELETE 
+                //        TP_PM_TESTFORM2_GOODS 
+                //    WHERE 
+                //        TESTFORMGUID = @TESTFORMGUID@ 
+                //    ",
+                //    new CDAParameter("TESTFORMGUID", context.Request["testformguidMaster"])
+                //);
+                #endregion
+                //判断字段包含
+                string barCodeStr = "";
+                for (int i=0;i<dt.Rows.Count;i++)
+                {
+                    if (dt.Rows[i]["产品"] + "" == "") {
+                        continue;
+                    }
+                    if (dt.Rows[i]["商标"] + "" == "") {
+                        continue;
+                    }
+                    #region 校验重复
+                    object isExists = conn.ExecuteScalar(
+                        @"SELECT 1 FROM TP_MST_COMMONMODEL WHERE GOODSCODE = @GOODSCODE@ AND LOGOID =  (SELECT LOGOID FROM TP_MST_LOGO WHERE LOGONAME = @LOGONAME@)",
+                        new CDAParameter("GOODSCODE", dt.Rows[i]["产品"]),
+                        new CDAParameter("LOGONAME", dt.Rows[i]["商标"]),
+                        new CDAParameter("COMMONGOODSID", context.Request["testformguidMaster"])
+                    );
+                    if (isExists != null)
+                    {
+                        continue;
+                    }
+                    #endregion
+
+                    //记录行号
+                    errorLineNo = i;
+
+                    int result = conn.ExecuteNonQuery(@"
+                        INSERT INTO TP_MST_COMMONMODEL 
+                    (GOODSCODE,GOODSID,LOGOID,OUTLETDISTANCE,MATERIALCODE,PLATELIMITNUM1,PLATELIMITNUM2,COMMONFLAG,EFFECTIVETIME,ENDTIME,CREATEUSERID,UPDATEUSERID,ACCOUNTID)
+                    VALUES
+	                (
+	                @GOODSCODE@,
+                    (SELECT GOODSID FROM TP_MST_GOODS WHERE GOODSCODE = @GOODSCODE@),
+	                (SELECT LOGOID FROM TP_MST_LOGO WHERE LOGONAME = @LOGONAME@),
+	                @OUTLETDISTANCE@,
+	                @MATERIALCODE@,
+	                @PLATELIMITNUM1@,
+	                @PLATELIMITNUM2@,
+	                @COMMONFLAG@,
+	                @EFFECTIVETIME@,
+	                @ENDTIME@,
+	                @CREATEUSERID@,
+	                @UPDATEUSERID@,
+	                @ACCOUNTID@
+	                )",
+                    new CDAParameter("GOODSCODE", dt.Rows[i]["产品"]),
+                    new CDAParameter("LOGONAME", dt.Rows[i]["商标"]),
+                    new CDAParameter("OUTLETDISTANCE", dt.Rows[i]["坑距"]),
+                    new CDAParameter("MATERIALCODE", dt.Rows[i]["物料号"]),
+                    new CDAParameter("PLATELIMITNUM1", dt.Rows[i]["装板数量1"]),
+                    new CDAParameter("PLATELIMITNUM2", dt.Rows[i]["装板数量2"]),
+                    new CDAParameter("COMMONFLAG", dt.Rows[i]["常用标识"]),
+                    new CDAParameter("EFFECTIVETIME", dt.Rows[i]["生效时间"], DataType.DateTime),
+                    new CDAParameter("ENDTIME", dt.Rows[i]["截止时间"], DataType.DateTime),
+                    new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
+                    new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
+                    new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
+                    );
+                }
+                conn.Commit();
+                context.Response.Write(new JsonResult(JsonStatus.success).ToJson());
+            }
+            catch(Exception e)
+            {
+                Logger.Error(e);
+                conn.Rollback();
+                context.Response.Write(new JsonResult(JsonStatus.otherError) { message = "行号:" + errorLineNo + " 数据错误,请检查!" }.ToJson());
+            }
+
+        }
+
+
+    }
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 60 - 0
wwwroot/mes/mst/CommonModelGood/CommonModel_importGOODS.html

@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta charset="utf-8" />
+    <meta name="keywords" content="dongke,mes,ibossmes">
+    <meta name="description" content="制造企业生产过程执行管理系统">
+    <meta name="author" content="xuwei">
+    <title>东科软件</title>
+    <link rel="shortcut icon" href="/img/logo.png" />
+    <link rel="bookmark" href="/img/logo.png" />
+    <link rel="stylesheet" type="text/css" href="/plugins/easyui/themes/dongke/easyui.css">
+    <link rel="stylesheet" type="text/css" href="/plugins/easyui/themes/icon.css">
+    <link rel="stylesheet" type="text/css" href="/plugins/xeasyui/xuwell.css">
+    <script type="text/javascript" src="/plugins/easyui/jquery.min.js"></script>
+    <script type="text/javascript" src="/plugins/easyui/jquery.easyui.min.js"></script>
+    <script type="text/javascript" src="/plugins/easyui/locale/easyui-lang-zh_CN.js"></script>
+    <script type="text/javascript" src="/plugins/xeasyui/xuwell.js"></script>
+</head>
+<body class="easyui-layout">
+    <script type="text/javascript">
+        $(document).ready(function () {
+
+        });
+        function submitForm() {
+            $('#testformguidMaster').val(request('cid'));
+            $.dialog.save({
+                formid: 'ff',
+                url: 'CommonModel_importGOODS.ashx'
+            });
+        }
+
+        function cancelForm() {
+            $.dialog.close();
+        }
+    </script>
+
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="ff" method="post" class="w-form" enctype="multipart/form-data">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more1" style="display:block;">
+                <input name="testformguidMaster" id="testformguidMaster" type="hidden" />
+                <div class="w-div">
+                    <div class="w-fieldname">Excel数据文件:</div>
+                    <div class="w-field"><input class="easyui-filebox w-input" id="文件" name="文件" data-options="required:true,prompt:'请选择Excel文件...',tipPosition:'bottom',buttonText:'选择文件',buttonAlign:'right',accept:'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'" style="width:100%;height:32px;"></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">说明:</div>
+                    <div class="w-field"><div class="w-fieldvalue">导入数据,将覆盖看板数据,请准确核对!<a href="common_importGoods.xlsx" target="_blank">下载模板</a> </div></div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" id="toolbarSave" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="submitForm()">产品导入</a>
+        <a href="javascript:void(0)" id="toolbarClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="cancelForm()">取消</a>
+    </div>
+</body>
+</html>

BIN=BIN
wwwroot/mes/mst/CommonModelGood/common_importGoods.xlsx


+ 22 - 3
wwwroot/mes/mst/CommonModelGood/commonmodel_add.html

@@ -38,7 +38,7 @@
                 </div>
                 <div class="w-div">
                     <div class="w-fieldname">商标:</div>
-                    <input class="easyui-combobox" id="LOGONAME" name="LOGONAME" data-options="required:true,prompt:'',tipPosition:'top',url:'../../rpt/rpt.ashx?m=getLogo&select=1',method:'get',valueField:'LOGOID',textField:'LOGONAME',panelHeight:'300px',editable:true,onChange:GETOUTLETDISTANCE" style="width:100%;height:32px;">
+                    <input class="easyui-combobox" id="LOGONAME" name="LOGONAME" data-options="required:true,prompt:'',tipPosition:'top',method:'get',valueField:'LOGOID',textField:'LOGONAME',panelHeight:'300px',editable:true,onChange:GETOUTLETDISTANCE" style="width:100%;height:32px;">
                 </div>
                 <div class="w-div">
                     <div class="w-fieldname">坑距:</div>
@@ -63,13 +63,13 @@
                 <div class="w-div">
                     <div class="w-fieldname">生效时间:</div>
                     <div class="w-field">
-                        <input class="easyui-datebox" id="EFFECTIVETIME" name="EFFECTIVETIME" data-options="required:true,prompt:'',tipPosition:'top'" style="width:100%; height:32px;">
+                        <input class="easyui-datebox" id="EFFECTIVETIME" name="EFFECTIVETIME" data-options="prompt:'',tipPosition:'top'" style="width:100%; height:32px;">
                     </div>
                     </div>
                 <div class="w-div">
                     <div class="w-fieldname">截止时间:</div>
                     <div class="w-field">
-                        <input class="easyui-datebox" id="ENDTIME" name="ENDTIME" data-options="required:true,prompt:'',tipPosition:'top'" style="width: 100%; height: 32px;">
+                        <input class="easyui-datebox" id="ENDTIME" name="ENDTIME" data-options="prompt:'',tipPosition:'top'" style="width: 100%; height: 32px;">
                     </div>
                     </div>
                 </div>
@@ -103,6 +103,24 @@
             $('#MATERIALCODE').textbox('setValue', '');
             $('#PLATELIMITNUM1').textbox('setValue', '');
             $('#PLATELIMITNUM2').textbox('setValue', '');
+            $('#LOGONAME').textbox('setValue', '');
+            //获取产品对应商标
+
+            //$('#LOGONAME').combobox('reload', 'goodscommonmodel.ashx?m=lo&&goodsid='+ goods[0].toString());
+            //$('#LOGONAME').combobox('setValue', 0);
+
+                //$.get("goodscommonmodel.ashx?m=lo&&goodsid=" + goods[0].toString(), function (data) {
+                //    var json = JSON.parse(data);
+                //    if (json["success"] == true) {
+                //        for (var i = 0; i < json.rows.length; i++) {
+                //            $('#LOGONAME').combobox('setValue', json["rows"][i]['LOGOID'].toString());
+                //            $('#LOGONAME').combobox('setText', json["rows"][i]['LOGONAME'].toString());
+                //        }
+                //    }
+                //});
+
+
+            //获取坑距
             if (logoid[0].toString() == "") {
                 $.get("goodscommonmodel.ashx?m=o&&goodsid=" + goods[0].toString(), function (data) {
                     var json = JSON.parse(data);
@@ -116,6 +134,7 @@
                 
             }
             else {
+                //获取物料、新旧装板数量
                 $.get("goodscommonmodel.ashx?m=logo&&logoid=" + logoid[0].toString() + "&&goodsid=" + goods[0].toString(), function (data) {
                     var json = JSON.parse(data);
                     if (json["success"] == true) {

+ 30 - 7
wwwroot/mes/mst/CommonModelGood/commonmodel_index.html

@@ -12,16 +12,17 @@
 <body>
     <!--工具条-->
     <div id="tb" class="i-toolbar">
-        <a href="javascript:void(0)"  id="btnInsert" title="添加" class="easyui-linkbutton" iconcls="icon-add" plain="true" onclick="tbAdd()">添加</a>
-        <a href="javascript:void(0)"  id="btnUpdate" title="编辑" class="easyui-linkbutton" iconcls="icon-edit" plain="true" onclick="tbEdit()">修改</a>
+        <a href="javascript:void(0)" id="btnInsert" title="添加" class="easyui-linkbutton" iconcls="icon-add" plain="true" onclick="tbAdd()">添加</a>
+        <a href="javascript:void(0)" id="btnUpdate" title="编辑" class="easyui-linkbutton" iconcls="icon-edit" plain="true" onclick="tbEdit()">修改</a>
         <!--<a href="javascript:void(0)"  id="btnDelete" title="删除" class="easyui-linkbutton" iconcls="icon-remove" plain="true" onclick="tbDelete()">删除</a>-->
         <!--<a href="javascript:void(0)" style="display:none" id="btnDetail" title="详细" class="easyui-linkbutton" iconcls="icon-detail" plain="true" onclick="tbDetail()">详细</a>-->
         <!--<a href="javascript:void(0)" style="display:none" id="btnCheckbox" title="显示复选框" class="easyui-linkbutton" iconcls="icon-ok" plain="true" toggle="true" onclick="tbCheck()">复选</a>-->
-        <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="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
         <!--<a href="javascript:void(0)" id="btnColumn" class="easyui-menubutton" data-options="menu:'#btnColumnMenu',iconCls:'icon-undo'">列显示</a>
-        <div id="btnColumnMenu" style="width:150px;"></div>-->
+    <div id="btnColumnMenu" style="width:150px;"></div>-->
         <a href="javascript:void(0)" id="btnReload" title="刷新" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="tbReload()">刷新</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="commonButtonImport" title="导入" class="easyui-linkbutton" iconcls="icon-excel" plain="true" onclick="commonButtonImport_Click()">导入</a>
         <div id="tbSearchDiv" style="display:none;padding:10px;">
             <form id="ff">
                 <div>
@@ -136,9 +137,31 @@
 
         //导出
         function tbExport() {
+            //加载表头
+            var fields = $('#dg').datagrid('getColumnFields');
+            var headers = [];
+            for (var i = 0; i < fields.length; i++) {
+                headers.push($('#dg').datagrid('getColumnOption', fields[i])['title']);
+                //headers.push(fields[i]);
+            }
             $('#dg').datagridExport({
-                fileName: '导出数据(TP_PM_GOODSBT).xls',
-                workSheet: '导出数据(TP_PM_GOODSBT)'
+                headers: headers,
+                fileName: '导出数据(TP_MST_COMMONMODEL).xls',
+                workSheet: '导出数据(TP_MST_COMMONMODEL)'
+            });
+        }
+
+        //导入产品
+        function commonButtonImport_Click() {
+            //var titleName = $('#dg').datagrid('getSelected') != null ? $('#dg').datagrid('getSelected')['NAME'] : '';
+            var CommonId = $('#dg').datagrid('getSelected') != null ? $('#dg').datagrid('getSelected')['SID'] : '';
+
+            $('#dg').datagridDialog({
+                title:  '常用产品导入数据',
+                width: 640,
+                height: 380,
+                url: 'CommonModel_importGOODS.html?cid=' + CommonId,
+                requireSelect: true
             });
         }
 

+ 64 - 15
wwwroot/mes/mst/CommonModelGood/goodscommonmodel.ashx

@@ -34,7 +34,7 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
                 b.btnSearch = true;
                 b.btnDetail = true;
                 b.btnCheckbox = true;
-                b.btnExport = false;
+                b.btnExport = true;
                 b.btnReload = true;
             };
             switch (context.Request["m"].ToString().ToLower())
@@ -125,6 +125,11 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
                         context.Response.Write(getPLATELIMITNUM());
                         break;
                     }
+                case "lo":
+                    {
+                        context.Response.Write(getLogo());
+                        break;
+                    }
                 default:
                     {
                         break;
@@ -187,25 +192,59 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
         }
     }
 
-    private string getOUTLETDISTANCE()
+    private string getLogo()
     {
         using (IDataAccess conn = DataAccess.Create())
         {
-                DataTable dt = conn.ExecuteDatatable(@"
-                SELECT OUTLETDISTANCE FROM TP_MST_GOODS WHERE GOODSID = @GOODSID@
+            DataTable dt = conn.ExecuteDatatable(@"
+                SELECT
+                DISTINCT
+                T.LOGOID LOGOID,
+                T.LOGONAME LOGONAME
+                FROM(
+                SELECT
+	                G.LOGOID,
+	                TML.LOGONAME 
+                FROM
+	                TP_MST_GOODS G
+	                LEFT JOIN TP_MST_LOGO TML ON G.LOGOID = TML.LOGOID 
+                WHERE
+	                G.GOODSID = @GOODSID@ UNION ALL
+                SELECT
+	                GLS.LOGOID,
+	                L.LOGONAME 
+                FROM
+	                TP_MST_GOODSLOGOSAP GLS
+	                INNER JOIN TP_MST_LOGO L ON L.LOGOID = GLS.LOGOID 
+                WHERE
+	                GLS.GOODSID = @GOODSID@ 
+	                ) T
                 ",
                 new CDAParameter("GOODSID", HttpContext.Current.Request["goodsid"])
             );
-                string jsonStr = new JsonResult(dt).ToJson();
-                return jsonStr;
+            return new JsonResult(dt).ToJson();
+        }
+    }
+
+    private string getOUTLETDISTANCE()
+    {
+        using (IDataAccess conn = DataAccess.Create())
+        {
+            DataTable dt = conn.ExecuteDatatable(@"
+                SELECT OUTLETDISTANCE FROM TP_MST_GOODS WHERE GOODSID = @GOODSID@
+                ",
+            new CDAParameter("GOODSID", HttpContext.Current.Request["goodsid"])
+        );
+            string jsonStr = new JsonResult(dt).ToJson();
+            return jsonStr;
         }
     }
 
-         private string getPLATELIMITNUM()
+    private string getPLATELIMITNUM()
     {
         using (IDataAccess conn = DataAccess.Create())
         {
-                DataTable dt = conn.ExecuteDatatable(@"
+            DataTable dt = conn.ExecuteDatatable(@"
                 SELECT
 	                PLATELIMITNUM,
 	                PLATELIMITNUMNEW,
@@ -248,11 +287,11 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
                 ORDER BY
 	                id DESC
                 ",
-                new CDAParameter("GOODSID", HttpContext.Current.Request["goodsid"]),
-                new CDAParameter("LOGONAME", HttpContext.Current.Request["logoid"])
-            );
-                string jsonStr = new JsonResult(dt).ToJson();
-                return jsonStr;
+            new CDAParameter("GOODSID", HttpContext.Current.Request["goodsid"]),
+            new CDAParameter("LOGONAME", HttpContext.Current.Request["logoid"])
+        );
+            string jsonStr = new JsonResult(dt).ToJson();
+            return jsonStr;
         }
     }
 
@@ -295,6 +334,8 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
     /// <returns>json</returns>
     private string insert(NameValueCollection form)
     {
+         var EFFECTIVETIME = "";
+         var ENDTIME = "";
         using (IDataAccess conn = DataAccess.Create())
         {
             //判断是否存在
@@ -316,6 +357,14 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
                 if (count == "0")
                 {
                     int result = 0;
+                    if (form["EFFECTIVETIME"] == "")
+                    {
+                        EFFECTIVETIME = "2000-01-01";
+                    }
+                    if (form["ENDTIME"] == "")
+                    {
+                        ENDTIME = "2099-12-31";
+                    }
                     result = conn.ExecuteNonQuery(@"
                INSERT INTO TP_MST_COMMONMODEL 
                     (GOODSCODE,GOODSID,LOGOID,OUTLETDISTANCE,MATERIALCODE,PLATELIMITNUM1,PLATELIMITNUM2,COMMONFLAG,EFFECTIVETIME,ENDTIME,CREATEUSERID,UPDATEUSERID,ACCOUNTID)
@@ -342,8 +391,8 @@ public class workstationuser : IHttpHandler, IRequiresSessionState
                     new CDAParameter("PLATELIMITNUM1", form["PLATELIMITNUM1"]),
                     new CDAParameter("PLATELIMITNUM2", form["PLATELIMITNUM2"]),
                     new CDAParameter("COMMONFLAG", form["COMMONFLAG"]),
-                    new CDAParameter("EFFECTIVETIME", form["EFFECTIVETIME"], DataType.DateTime),
-                    new CDAParameter("ENDTIME", form["ENDTIME"], DataType.DateTime),
+                    new CDAParameter("EFFECTIVETIME", EFFECTIVETIME, DataType.DateTime),
+                    new CDAParameter("ENDTIME", ENDTIME, DataType.DateTime),
                     new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
                     new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
                     new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
wwwroot/mes/upload/2024-01-18/常用产品2024-01-18.xls


BIN=BIN
wwwroot/mes/upload/2024-01-18/常用产品2024-01-18.xlsx


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio