Переглянути джерело

增加批量报损模块(半成品,未加后端逻辑)

xuwei 1 рік тому
батько
коміт
88458a1159

+ 371 - 0
wwwroot/mes/pm/batchscrap/batchscrap.ashx

@@ -0,0 +1,371 @@
+<%@ WebHandler Language="C#" Class="batchscrap" %>
+
+using System;
+using System.Web;
+using System.Web.SessionState;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Data;
+using Curtain.DataAccess;
+using DK.XuWei.WebMes;
+
+/// <summary>
+/// TP_PM_BATCHSCRAPLOG 批量报损
+/// xuwei create 2024-05-10
+/// </summary>
+public class batchscrap : IHttpHandler, IReadOnlySessionState
+{
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+
+        if (mes.LoginCheck() && context.Request["m"] is object)
+        {
+            Button b = new Button();
+            if(mes.RightCheck(""))
+            {
+                b.btnIndex = true;
+                b.btnInsert = false;
+                b.btnInsertBatch = false;
+                b.btnCopy = false;
+                b.btnUpdate = true;
+                b.btnDelete = true;
+                b.btnCancel = true;
+                b.btnSearch = true;
+                b.btnDetail = true;
+                b.btnCheckbox = true;
+                b.btnExport = true;
+                b.btnReload = true;
+                b.btnBatchScrap = true;
+            };
+            switch (context.Request["m"].ToString().ToLower())
+            {
+                case "b":
+                    {
+                        //按钮
+                        context.Response.Write(new JsonResult(b).ToJson());
+                        break;
+                    }
+                case "a":
+                    {
+                        //添加
+                        if (b.btnDetail && context.Request["id"] is object)
+                            context.Response.Write(detail());
+                        else
+                        {
+                            List<xRecord> list = new List<xRecord>();
+                            xRecord r = new xRecord();
+                            list.Add(r);
+                            context.Response.Write(new JsonResult(list).ToJson());
+                        }
+                        break;
+                    }
+                case "s":
+                    {
+                        //搜索
+                        if (b.btnIndex)
+                            context.Response.Write(search(context.Request.Form));
+                        else
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        break;
+                    }
+                case "t":
+                    {
+                        //详细
+                        if (b.btnDetail)
+                            context.Response.Write(detail());
+                        else
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        break;
+                    }
+                case "i":
+                    {
+                        //插入
+                        if (b.btnInsert)
+                            context.Response.Write(insert(context.Request.Form));
+                        else
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        break;
+                    }
+                case "u":
+                    {
+                        //修改
+                        if (b.btnUpdate)
+                            context.Response.Write(update(context.Request.Form));
+                        else
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        break;
+                    }
+                case "d":
+                    {
+                        //删除
+                        if (b.btnDelete)
+                            context.Response.Write(delete());
+                        else
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        break;
+                    }
+                case "e":
+                    {
+                        //导出
+                        if (b.btnExport)
+                        {
+                            context.Response.Write(export());
+                        }
+                        else
+                        {
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        }
+                        break;
+                    }
+                default:
+                    {
+                        break;
+                    }
+            }
+        }
+        else
+        {
+            context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
+        }
+    }
+
+    /// <summary>
+    /// TP_PM_BATCHSCRAPLOG 查询
+    /// </summary>
+    /// <returns>json</returns>
+    private string search(NameValueCollection form)
+    {
+        using(IDataAccess conn=DataAccess.Create())
+        {
+            int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
+            int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
+            string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
+            string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
+
+            string sqlStr = @"
+                SELECT 
+                    m.GUID AS SID,
+                    m.GUID,
+                    m.BARCODE,
+                    m.SUCCESS,
+                    m.REMARKS,
+                    m.VALUEFLAG,
+                    m.ACCOUNTID,
+                    m.CREATEUSERID,
+                    m.CREATETIME,
+                    m.UPDATEUSERID,
+                    m.UPDATETIME
+                FROM
+                    TP_PM_BATCHSCRAPLOG m
+                WHERE 
+                    m.VALUEFLAG = '1'
+                    AND m.ACCOUNTID = @ACCOUNTID@
+            ";
+            List<CDAParameter> sqlPara = new List<CDAParameter>();
+            sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
+
+            if(!string.IsNullOrEmpty(form["GUID"]))
+            {
+                sqlStr += " AND m.GUID = @GUID@ ";
+                sqlPara.Add(new CDAParameter("GUID", form["GUID"]));
+            }
+
+            if(!string.IsNullOrEmpty(form["BARCODE"]))
+            {
+                sqlStr += " AND INSTR( m.BARCODE, @BARCODE@ ) > 0 ";
+                sqlPara.Add(new CDAParameter("BARCODE", form["BARCODE"]));
+            }
+
+            if(!string.IsNullOrEmpty(form["SUCCESS"]))
+            {
+                sqlStr += " AND INSTR( m.SUCCESS, @SUCCESS@ ) > 0 ";
+                sqlPara.Add(new CDAParameter("SUCCESS", form["SUCCESS"]));
+            }
+
+            if(!string.IsNullOrEmpty(form["REMARKS"]))
+            {
+                sqlStr += " AND INSTR( m.REMARKS, @REMARKS@ ) > 0 ";
+                sqlPara.Add(new CDAParameter("REMARKS", form["REMARKS"]));
+            }
+
+            if(sort != "")
+            {
+                sqlStr += " ORDER BY " + sort + " " + order;
+            }
+            int total = 0;
+            DataTable dt = conn.SelectPages(page, rows,out total, sqlStr, sqlPara.ToArray());
+            return new JsonResult(dt) { total = total}.ToJson();
+        }
+    }
+
+    /// <summary>
+    /// 详细 TP_PM_BATCHSCRAPLOG
+    /// </summary>
+    /// <returns>json</returns>
+    private string detail()
+    {
+        using(IDataAccess conn= DataAccess.Create())
+        {
+            DataTable dt = conn.ExecuteDatatable(@"
+                SELECT 
+                    m.GUID,
+                    m.BARCODE,
+                    m.SUCCESS,
+                    m.REMARKS,
+                    m.VALUEFLAG,
+                    m.ACCOUNTID,
+                    m.CREATEUSERID,
+                    m.CREATETIME,
+                    m.UPDATEUSERID,
+                    m.UPDATETIME
+                FROM
+                    TP_PM_BATCHSCRAPLOG m
+                WHERE 
+                    m.VALUEFLAG = '1'
+                    AND m.ACCOUNTID = @ACCOUNTID@
+                    AND m.GUID = @GUID@
+                ",
+                new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
+                new CDAParameter("GUID",HttpContext.Current.Request["id"])
+            );
+            return new JsonResult(dt).ToJson();
+        }
+    }
+
+    /// <summary>
+    /// 插入 TP_PM_BATCHSCRAPLOG
+    /// </summary>
+    /// <returns>json</returns>
+    private string insert(NameValueCollection form)
+    {
+        using(IDataAccess conn= DataAccess.Create())
+        {
+            //string primaryKey = conn.GetSequenceNextval("SEQ_TP_PM_BATCHSCRAPLOG_ID").ToString();
+            int result = conn.ExecuteNonQuery(@"
+                INSERT INTO TP_PM_BATCHSCRAPLOG (
+                    --GUID,
+                    BARCODE,
+                    SUCCESS,
+                    REMARKS,
+                    ACCOUNTID,CREATEUSERID,UPDATEUSERID
+                ) VALUES (
+                    --@GUID@,
+                    @BARCODE@,
+                    @SUCCESS@,
+                    @REMARKS@,
+                    @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
+                )
+                ",
+                //new CDAParameter("GUID",primaryKey),
+                new CDAParameter("BARCODE",form["BARCODE"]),
+                new CDAParameter("SUCCESS",form["SUCCESS"]),
+                new CDAParameter("REMARKS",form["REMARKS"]),
+                new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
+                new CDAParameter("CREATEUSERID",HttpContext.Current.Session["userId"]),
+                new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"])
+            );
+            return new JsonResult(JsonStatus.success).ToJson();
+        }
+    }
+
+    /// <summary>
+    /// 更新 TP_PM_BATCHSCRAPLOG
+    /// </summary>
+    /// <returns>json</returns>
+    private string update(NameValueCollection form)
+    {
+        using(IDataAccess conn=DataAccess.Create())
+        {
+            int result = conn.ExecuteNonQuery(@"
+                UPDATE TP_PM_BATCHSCRAPLOG 
+                SET
+                    BARCODE = @BARCODE@,
+                    SUCCESS = @SUCCESS@,
+                    REMARKS = @REMARKS@,
+                    UPDATEUSERID = @UPDATEUSERID@,
+                    UPDATETIME = sysdate
+                WHERE 
+                    GUID = @GUID@
+                ",
+
+                new CDAParameter("BARCODE",form["BARCODE"]),
+                new CDAParameter("SUCCESS",form["SUCCESS"]),
+                new CDAParameter("REMARKS",form["REMARKS"]),
+                new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"]),
+                new CDAParameter("GUID",HttpContext.Current.Request["id"])
+            );
+            return new JsonResult(JsonStatus.success).ToJson();
+        }
+    }
+
+    /// <summary>
+    /// 删除 TP_PM_BATCHSCRAPLOG
+    /// </summary>
+    /// <returns>json</returns>
+    private string delete()
+    {
+        using(IDataAccess conn= DataAccess.Create())
+        {
+            if (HttpContext.Current.Request["id"] is object)
+            {
+                int result = conn.ExecuteNonQuery(@"
+                    DELETE 
+                        TP_PM_BATCHSCRAPLOG 
+                    WHERE 
+                        INSTR(',' || @GUID@ || ',' , ',' || GUID || ',') > 0 
+                    ",
+                    new CDAParameter("GUID", HttpContext.Current.Request["id"])
+                );
+                return new JsonResult(JsonStatus.success).ToJson();
+            }
+            else
+            {
+                return new JsonResult(JsonStatus.otherError).ToJson();
+            }
+        }
+    }
+
+    /// <summary>
+    /// 导出 TP_PM_BATCHSCRAPLOG
+    /// </summary>
+    /// <returns>json</returns>
+    private string export()
+    {
+        return search(new NameValueCollection());
+    }
+
+    private class Button
+    {
+        public bool btnIndex = false;
+        public bool btnInsert = false;
+        public bool btnInsertBatch = false;
+        public bool btnCopy = false;
+        public bool btnUpdate = false;
+        public bool btnDelete = false;
+        public bool btnCancel = false;
+        public bool btnSearch = false;
+        public bool btnDetail = false;
+        public bool btnCheckbox = false;
+        public bool btnExport = false;
+        public bool btnReload = false;
+        public bool btnBatchScrap = false;
+    }
+
+    private class xRecord
+    {
+        public string sid { get; set; }
+        public string BARCODE { get; set; }
+        public string SUCCESS { get; set; }
+        public string REMARKS { get; set; }
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 73 - 0
wwwroot/mes/pm/batchscrap/batchscrap_add.html

@@ -0,0 +1,73 @@
+<!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>
+</head>
+<body class="easyui-layout">
+    <!--
+        <input class="easyui-combobox w-input" id="叶子" name="叶子" data-options="prompt:'请填写叶子...',tipPosition:'top',url:'/mes/list.ashx?m=truefalse',method:'get',valueField:'text',textField:'text',panelHeight:'200px',editable:'true'" style="width:100%;height:32px;">
+        <input class="easyui-filebox" id="图片" name="图片" data-options="prompt:'请选择图片...',tipPosition:'top',buttonText:'选择图片',buttonAlign:'right',accept:'image/*',onChange:$.imagePreview" style="width:100%;height:32px;" >
+    -->
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="ff" method="post" class="w-form">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more1" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">GUID:</div>
+                    <div class="w-field"><input disabled class="easyui-textbox" id="GUID" name="GUID" data-options="required:false,prompt:'请填写GUID...',tipPosition:'top'" style="width:100%;height:32px;"></div>
+                </div>
+            </div>
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more2').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more2" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">条码:</div>
+                    <div class="w-field"><input class="easyui-textbox" id="BARCODE" name="BARCODE" data-options="required:false,prompt:'请填写BARCODE...',tipPosition:'top'" style="width:100%;height:32px;"></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">执行结果 (1:成功  0:失败):</div>
+                    <div class="w-field"><input class="easyui-textbox" id="SUCCESS" name="SUCCESS" data-options="required:false,prompt:'请填写SUCCESS...',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-textbox" id="REMARKS" name="REMARKS" data-options="required:false,prompt:'请填写REMARKS...',tipPosition:'top'" style="width:100%;height:32px;"></div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" id="tbSave" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="submitForm()">保存</a>
+        <a href="javascript:void(0)" id="tbClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="cancelForm()">关闭</a>
+    </div>
+
+    <script type="text/javascript">
+
+        $(function () {
+            $('#ff').formLoad({
+                url: 'batchscrap.ashx?m=a'
+            });
+            $('#more1').toggle();
+        });
+
+        function submitForm() {
+            $.dialog.save({
+                formid: 'ff',
+                url: 'batchscrap.ashx?m=i'
+            });
+        }
+
+        function cancelForm() {
+            $.dialog.close();
+        }
+
+    </script>
+</body>
+</html>

+ 114 - 0
wwwroot/mes/pm/batchscrap/batchscrap_detail.html

@@ -0,0 +1,114 @@
+<!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>
+</head>
+<body class="easyui-layout">
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="ff" method="post" class="w-form">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more1" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">GUID:</div>
+                    <div class="w-field"><div id="GUID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">有效标识:</div>
+                    <div class="w-field"><div id="VALUEFLAG" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">账套ID:</div>
+                    <div class="w-field"><div id="ACCOUNTID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">创建工号ID:</div>
+                    <div class="w-field"><div id="CREATEUSERID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">创建时间:</div>
+                    <div class="w-field"><div id="CREATETIME" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">更新工号ID:</div>
+                    <div class="w-field"><div id="UPDATEUSERID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">更新时间:</div>
+                    <div class="w-field"><div id="UPDATETIME" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+            </div>
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more2').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more2" style="display:block;">
+
+                <div class="w-div">
+                    <div class="w-fieldname">条码:</div>
+                    <div class="w-field"><div id="BARCODE" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+
+ 
+                <div class="w-div">
+                    <div class="w-fieldname">执行结果 (1:成功  0:失败):</div>
+                    <div class="w-field"><div id="SUCCESS" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+
+ 
+                <div class="w-div">
+                    <div class="w-fieldname">备注:</div>
+                    <div class="w-field"><div id="REMARKS" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+
+            </div>
+        </form>
+    </div>
+    <div id="tb" data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" style="display:none" id="btnCopy" class="easyui-linkbutton" data-options="iconCls:'icon-add'" onclick="copyForm()">复制</a>
+        <a href="javascript:void(0)" style="display:none" id="btnUpdate" class="easyui-linkbutton" data-options="iconCls:'icon-edit'" onclick="editForm()">修改</a>
+        <a href="javascript:void(0)" style="display:none" id="btnDelete" class="easyui-linkbutton" data-options="iconCls:'icon-remove'" onclick="deleteForm()">删除</a>
+        <a href="javascript:void(0)" id="tbClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="cancelForm()">关闭</a>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            $('#tb').buttonLoad({
+                url:'batchscrap.ashx?m=b'
+            });
+            $('#ff').formLoad({
+                url: 'batchscrap.ashx?m=t'
+            });
+            $('#more1').toggle();
+        });
+
+        function copyForm() {
+            $.dialog.go({
+                url: 'batchscrap_add.html?id=' + request('id')
+            });
+        }
+
+        function editForm() {
+            $.dialog.go({
+                url: 'batchscrap_edit.html?id=' + request('id')
+            });
+        }
+
+        function deleteForm() {
+            $.dialog.delete({
+                url: 'batchscrap.ashx?m=d&id=' + request('id')
+            });
+        }
+
+        function cancelForm() {
+            $.dialog.close();
+        }
+
+    </script>
+</body>
+</html>

+ 96 - 0
wwwroot/mes/pm/batchscrap/batchscrap_edit.html

@@ -0,0 +1,96 @@
+<!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>
+</head>
+<body class="easyui-layout">
+    <!--
+        <input class="easyui-combobox w-input" id="叶子" name="叶子" data-options="prompt:'请填写叶子...',tipPosition:'top',url:'/mes/list.ashx?m=truefalse',method:'get',valueField:'text',textField:'text',panelHeight:'200px',editable:'true'" style="width:100%;height:32px;">
+        <input class="easyui-filebox" id="图片" name="图片" data-options="prompt:'请选择图片...',tipPosition:'top',buttonText:'选择图片',buttonAlign:'right',accept:'image/*',onChange:$.imagePreview" style="width:100%;height:32px;" >
+    -->
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="ff" method="post" class="w-form">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more1" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">GUID:</div>
+                    <div class="w-field"><div id="GUID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">有效标识:</div>
+                    <div class="w-field"><div id="VALUEFLAG" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">账套ID:</div>
+                    <div class="w-field"><div id="ACCOUNTID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">创建工号ID:</div>
+                    <div class="w-field"><div id="CREATEUSERID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">创建时间:</div>
+                    <div class="w-field"><div id="CREATETIME" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">更新工号ID:</div>
+                    <div class="w-field"><div id="UPDATEUSERID" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">更新时间:</div>
+                    <div class="w-field"><div id="UPDATETIME" data-field="true" class="w-fieldvalue"></div></div>
+                </div>
+            </div>
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more2').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more2" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">条码:</div>
+                    <div class="w-field"><input class="easyui-textbox" id="BARCODE" name="BARCODE" data-options="required:false,prompt:'请填写BARCODE...',tipPosition:'top'" style="width:100%;height:32px;"></div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">执行结果 (1:成功  0:失败):</div>
+                    <div class="w-field"><input class="easyui-textbox" id="SUCCESS" name="SUCCESS" data-options="required:false,prompt:'请填写SUCCESS...',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-textbox" id="REMARKS" name="REMARKS" data-options="required:false,prompt:'请填写REMARKS...',tipPosition:'top'" style="width:100%;height:32px;"></div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" id="tbSave" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="submitForm()">保存</a>
+        <a href="javascript:void(0)" id="tbClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="cancelForm()">关闭</a>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            $('#ff').formLoad({
+                url: 'batchscrap.ashx?m=t'
+            });
+            $('#more1').toggle();
+        });
+
+        function submitForm() {
+            $.dialog.save({
+                formid: 'ff',
+                url: 'batchscrap.ashx?m=u&id=' + request('id')
+            });
+        }
+
+        function cancelForm() {
+            $.dialog.close();
+        }
+
+    </script>
+</body>
+</html>

+ 114 - 0
wwwroot/mes/pm/batchscrap/batchscrap_execute.ashx

@@ -0,0 +1,114 @@
+<%@ WebHandler Language="C#" Class="batchscrap_execute" %>
+
+using System;
+using System.Web;
+using System.Web.SessionState;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Data;
+using Curtain.DataAccess;
+using DK.XuWei.WebMes;
+
+/// <summary>
+/// TP_PM_BATCHSCRAPLOG 批量报损
+/// xuwei create 2024-05-10
+/// </summary>
+public class batchscrap_execute : IHttpHandler, IReadOnlySessionState
+{
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+
+        if (mes.LoginCheck() && context.Request["m"] is object)
+        {
+            Button b = new Button();
+            if(mes.RightCheck(""))
+            {
+                b.btnBatchScrap = true;
+            };
+            switch (context.Request["m"].ToString().ToLower())
+            {
+                case "a":
+                    {
+                        //添加
+                        if (b.btnBatchScrap)
+                        {
+
+                        }
+                        else
+                        {
+
+                        }
+                        break;
+                    }
+                case "i":
+                    {
+                        //插入
+                        if (b.btnBatchScrap)
+                            context.Response.Write(insert(context.Request.Form));
+                        else
+                            context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
+                        break;
+                    }
+                default:
+                    {
+                        break;
+                    }
+            }
+        }
+        else
+        {
+            context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
+        }
+    }
+
+    private string insert(NameValueCollection form)
+    {
+        using(IDataAccess conn= DataAccess.Create())
+        {
+            //报损处理
+
+
+            //写入日志
+            //int result = conn.ExecuteNonQuery(@"
+            //    INSERT INTO TP_PM_BATCHSCRAPLOG (
+            //        --GUID,
+            //        BARCODE,
+            //        SUCCESS,
+            //        REMARKS,
+            //        ACCOUNTID,CREATEUSERID,UPDATEUSERID
+            //    ) VALUES (
+            //        --@GUID@,
+            //        @BARCODE@,
+            //        @SUCCESS@,
+            //        @REMARKS@,
+            //        @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
+            //    )
+            //    ",
+            //    new CDAParameter("BARCODE",form["BARCODE"]),
+            //    new CDAParameter("SUCCESS",form["SUCCESS"]),
+            //    new CDAParameter("REMARKS",form["REMARKS"]),
+            //    new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
+            //    new CDAParameter("CREATEUSERID",HttpContext.Current.Session["userId"]),
+            //    new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"])
+            //);
+
+        }
+
+        return new JsonResult(JsonStatus.error) {  message="此功能还在开发中。。。"}.ToJson();
+    }
+
+    private class Button
+    {
+        public bool btnBatchScrap = false;
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 61 - 0
wwwroot/mes/pm/batchscrap/batchscrap_execute.html

@@ -0,0 +1,61 @@
+<!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>
+</head>
+<body class="easyui-layout">
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="ff" method="post" class="w-form">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more1" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">GUID:</div>
+                    <div class="w-field"><input disabled class="easyui-textbox" id="GUID" name="GUID" data-options="required:false,prompt:'请填写GUID...',tipPosition:'top'" style="width:100%;height:32px;"></div>
+                </div>
+            </div>
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more2').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more2" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">条码(多个条码请使用逗号分隔):</div>
+                    <div class="w-field"><input class="easyui-textbox" id="BARCODE" name="BARCODE" data-options="required:false,prompt:'请填写BARCODE...',tipPosition:'top'" multiline="true" style="width:100%;height:260px;"></div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" id="tbSave" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="submitForm()">保存</a>
+        <a href="javascript:void(0)" id="tbClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="cancelForm()">关闭</a>
+    </div>
+
+    <script type="text/javascript">
+
+        $(function () {
+            //$('#ff').formLoad({
+            //    url: 'batchscrap_execute.ashx?m=a'
+            //});
+            $('#more1').toggle();
+        });
+
+        function submitForm() {
+            $.dialog.save({
+                formid: 'ff',
+                url: 'batchscrap_execute.ashx?m=i'
+            });
+        }
+
+        function cancelForm() {
+            $.dialog.close();
+        }
+
+    </script>
+</body>
+</html>

+ 105 - 0
wwwroot/mes/pm/batchscrap/batchscrap_help.html

@@ -0,0 +1,105 @@
+<!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>
+    <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">
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="batchscrapForm" method="post" class="w-form">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#batchscrapMore1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="batchscrapMore1" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">1.0 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">1.1 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">1.2 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">1.3 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#batchscrapMore2').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="batchscrapMore2" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">使用说明:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            系统没有提供使用说明。
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">数据算法:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            系统没有提供数据算法。
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">更新时间:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            2021-11-10 xuwei。
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div id="batchscrapToolbar" data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" id="batchscrapButtonClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="batchscrapButtonClose_Click()">关闭</a>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            $('#batchscrapMore1').toggle();
+        });
+
+        function batchscrapButtonClose_Click() {
+            $.dialog.close();
+        }
+
+    </script>
+</body>
+</html>

+ 184 - 0
wwwroot/mes/pm/batchscrap/batchscrap_index.html

@@ -0,0 +1,184 @@
+<!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>
+    <!--工具条-->
+    <div id="tb" class="i-toolbar">
+        <a href="javascript:void(0)" style="display:none" id="btnInsert" title="添加" class="easyui-linkbutton" iconcls="icon-add" plain="true" onclick="tbAdd()">添加</a>
+        <a href="javascript:void(0)" style="display:none" id="btnUpdate" title="编辑" class="easyui-linkbutton" iconcls="icon-edit" plain="true" onclick="tbEdit()">修改</a>
+        <a href="javascript:void(0)" style="display:none" 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)" style="display:none" id="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
+        <a href="javascript:void(0)" style="display:none" 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>
+        <a href="javascript:void(0)" style="display:none" id="btnBatchScrap" title="新建批量报损" class="easyui-linkbutton" iconcls="icon-tip" plain="true" onclick="tbBatchScrap()">新建批量报损</a>
+        <div id="tbSearchDiv" style="display:none;padding:10px;">
+            <form id="ff">
+                <div>
+                    条码:
+                    <input class="easyui-textbox" id="BARCODE" name="BARCODE" data-options="required:false,prompt:'',tipPosition:'top'" style="width:80px;height:32px;">
+                    执行结果 (1:成功  0:失败):
+                    <input class="easyui-textbox" id="SUCCESS" name="SUCCESS" data-options="required:false,prompt:'',tipPosition:'top'" style="width:80px;height:32px;">
+                    备注:
+                    <input class="easyui-textbox" id="REMARKS" name="REMARKS" data-options="required:false,prompt:'',tipPosition:'top'" style="width:80px;height:32px;">
+                    <a href="javascript:void(0)" id="btnSearchSubmit" title="清空" class="easyui-linkbutton" plain="false" onclick="$('#ff').form('clear')">清空</a>
+                    <a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()">搜索</a>
+                </div>
+            </form>
+        </div>
+    </div>
+    <!--表格-->
+    <table id="dg" data-options="toolbar: '#tb',onDblClickRow: dgDblclickrow,showFooter:false">
+<!--
+        <thead data-options="frozen:true">
+            <tr>
+                <th data-options="field:'标识',align:'left',sortable:true">标识</th>
+            </tr>
+        </thead>
+-->
+        <thead>
+            <tr>
+                <th data-options="field:'SID',title:'SID',width:220,align:'left',checkbox:true,hidden:true">SID</th>
+                <th data-options="field:'GUID',title:'GUID',align:'left',sortable:true"></th>
+                <th data-options="field:'BARCODE',title:'条码',align:'left',sortable:true"></th>
+                <th data-options="field:'SUCCESS',title:'执行结果',align:'left',sortable:true"></th>
+                <th data-options="field:'REMARKS',title:'备注',align:'left',sortable:true"></th>
+                <th data-options="field:'VALUEFLAG',title:'有效标识',align:'left',sortable:true"></th>
+                <th data-options="field:'ACCOUNTID',title:'账套ID',align:'left',sortable:true"></th>
+                <th data-options="field:'CREATEUSERID',title:'创建工号ID',align:'left',sortable:true"></th>
+                <th data-options="field:'CREATETIME',title:'创建时间',align:'left',sortable:true"></th>
+                <th data-options="field:'UPDATEUSERID',title:'更新工号ID',align:'left',sortable:true"></th>
+                <th data-options="field:'UPDATETIME',title:'更新时间',align:'left',sortable:true"></th>
+            </tr>
+        </thead>
+    </table>
+    <script type="text/javascript">
+
+        //加载完成
+        $(function () {
+            //加载按钮
+            $('#tb').buttonLoad({
+                url:'batchscrap.ashx?m=b'
+            });
+            //加载表格数据
+            tbSearchSubmit();
+        });
+
+        //添加按钮
+        function tbAdd() {
+            $('#dg').datagridDialog({
+                title: '添加数据',
+                width: 640,
+                height: 480,
+                url: 'batchscrap_add.html'
+            });
+        }
+
+        //修改按钮
+        function tbEdit() {
+            $('#dg').datagridDialog({
+                title: '修改数据',
+                width: 640,
+                height: 480,
+                url: 'batchscrap_edit.html',
+                requireSelect: true
+            });
+        }
+
+        //删除按钮
+        function tbDelete() {
+            $('#dg').datagridPost({
+                title:'删除操作',
+                url: 'batchscrap.ashx?m=d',
+                onValidate: function (r) { return true; }
+            });
+        }
+
+        //详细按钮
+        function tbDetail() {
+            $('#dg').datagridDialog({
+                title: '详细数据',
+                width: 640,
+                height: 480,
+                url: 'batchscrap_detail.html',
+                requireSelect: true
+            });
+        }
+
+        //复选按钮
+        function tbCheck() {
+            $('#dg').datagridCheckbox({
+                buttonid: 'btnCheckbox',
+                valuefield: 'SID'
+            });
+        }
+
+        //搜索按钮
+        function tbSearch() {
+            $('#tbSearchDiv').toggle();
+            $('#dg').datagrid('resize');
+        }
+
+        //搜索提交
+        function tbSearchSubmit() {
+            $('#dg').datagridLoad({
+                title: '产品批量报损',
+                idField: 'SID',
+                queryParams: $('#ff').serializeJson(),
+                url: 'batchscrap.ashx?m=s',
+                columnMenu: '#btnColumnMenu',
+                columnMoving: false
+            });
+        }
+
+        //导出
+        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({
+                headers: headers,
+                fileName: '导出数据(TP_PM_BATCHSCRAPLOG).xls',
+                workSheet: '导出数据(TP_PM_BATCHSCRAPLOG)'
+            });
+        }
+
+        //刷新
+        function tbReload() {
+            tbSearchSubmit();
+        }
+
+        //表格双击
+        function dgDblclickrow(rowIndex, rowData) {
+            tbDetail();
+        }
+
+        //新建批量报损
+        function tbBatchScrap() {
+            $('#dg').datagridDialog({
+                title: '批量报损',
+                width: 640,
+                height: 480,
+                url: 'batchscrap_execute.html'
+            });
+        }
+
+        function formatterTrueFalse(value, row, index) { return value == 'True' ? '是' : '否'; }
+        function stylerTrueFalse(value, row, index) { return value == 'True' ? 'color:black' : 'color:red'; }
+
+    </script>
+</body>
+</html>