VueWebApi/Tools/ImportExcelData.cs
@@ -699,6 +699,71 @@
        }
        #endregion
        #region【Excel模板上传验证,设备点检标准模板】
        public static string TwentyTwo(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "导入模板不符合规范,请检查sheet数";
                return Message;
            }
            else if (excelTable[0].Columns.Count != 6)
            {
                code = "300";
                Message = "设备点检项目模板不符合规范,请检查列名字段数";
                return Message;
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备点检项目模板不符合规范:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "点检项目编号(唯一)")
            {
                code = "300";
                Message = "设备点检项目模板不符合规范:表头信息不符合规范,第2列应为{点检项目编号(唯一)}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "点检项目名称")
            {
                code = "300";
                Message = "设备点检项目模板不符合规范:表头信息不符合规范,第3列应为{点检项目名称}";
                return Message;
            }
            else if (excelTable[0].Columns[3].ColumnName != "点检周期")
            {
                code = "300";
                Message = "设备点检项目模板不符合规范:表头信息不符合规范,第4列应为{点检周期}";
                return Message;
            }
            else if (excelTable[0].Columns[4].ColumnName != "是否扫码")
            {
                code = "300";
                Message = "设备点检项目模板不符合规范:表头信息不符合规范,第4列应为{是否扫码}";
                return Message;
            }
            else if (excelTable[0].Columns[5].ColumnName != "点检项目要求")
            {
                code = "300";
                Message = "设备点检项目模板不符合规范:表头信息不符合规范,第4列应为{点检项目要求}";
                return Message;
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,设备保养项目模板】
        public static string Eleven(string FileCode, out string code)
        {
@@ -737,19 +802,72 @@
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第3列应为{保养项目名称}";
                return Message;
            }
            else if (excelTable[0].Columns[3].ColumnName != "保养周期")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第4列应为{保养周期}";
                return Message;
            }
            else if (excelTable[0].Columns[4].ColumnName != "是否扫码")
            else if (excelTable[0].Columns[3].ColumnName != "是否扫码")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第4列应为{是否扫码}";
                return Message;
            }
            else if (excelTable[0].Columns[5].ColumnName != "保养项目要求")
            else if (excelTable[0].Columns[4].ColumnName != "保养项目要求")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第4列应为{保养项目要求}";
                return Message;
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,设备保养标准模板】
        public static string TwentyThree(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "导入模板不符合规范,请检查sheet数";
                return Message;
            }
            else if (excelTable[0].Columns.Count != 6)
            {
                code = "300";
                Message = "设备保养项目模板不符合规范,请检查列名字段数";
                return Message;
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "保养项目编号(唯一)")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第2列应为{保养项目编号(唯一)}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "保养项目名称")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第3列应为{保养项目名称}";
                return Message;
            }
            else if (excelTable[0].Columns[3].ColumnName != "是否扫码")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第4列应为{是否扫码}";
                return Message;
            }
            else if (excelTable[0].Columns[4].ColumnName != "保养项目要求")
            {
                code = "300";
                Message = "设备保养项目模板不符合规范:表头信息不符合规范,第4列应为{保养项目要求}";
@@ -1129,6 +1247,89 @@
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,节拍工价模板】
        public static string TwentyFour(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "导入模板不符合规范,请检查sheet数";
                return Message;
            }
            else if (excelTable[0].Columns.Count != 9)
            {
                code = "300";
                Message = "节拍工价模板不符合规范,请检查列名字段数";
                return Message;
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "产品名称")
            {
                code = "300";
                Message = "产品名称模板不符合规范:表头信息不符合规范,第2列应为{产品名称}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "工艺路线名称")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第3列应为{工艺路线名称}";
                return Message;
            }
            else if (excelTable[0].Columns[3].ColumnName != "工序名称")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第4列应为{工序名称}";
                return Message;
            }
            else if (excelTable[0].Columns[4].ColumnName != "设备名称")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第4列应为{设备名称}";
                return Message;
            }
            else if (excelTable[0].Columns[5].ColumnName != "计件单价")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第4列应为{计件单价}";
                return Message;
            }
            else if (excelTable[0].Columns[6].ColumnName != "设备节拍")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第4列应为{设备节拍}";
                return Message;
            }
            else if (excelTable[0].Columns[7].ColumnName != "生产节拍")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第4列应为{生产节拍}";
                return Message;
            }
            else if (excelTable[0].Columns[8].ColumnName != "型腔数")
            {
                code = "300";
                Message = "节拍工价模板不符合规范:表头信息不符合规范,第4列应为{型腔数}";
                return Message;
            }
            else
            {
@@ -1972,6 +2173,20 @@
        }
        #endregion
        #region【Excel上传数据验证,设备点检标准】
        public static List<ExcelErro> TwentyTwoData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,设备保养项目】
        public static List<ExcelErro> ElevenData(string FileCode, out string StuCode, out string message, out int count)
        {
@@ -2020,6 +2235,20 @@
                message = "数据验证成功";
                count = excelTable.Rows.Count;
            }
            return list;
        }
        #endregion
        #region【Excel上传数据验证,设备保养标准】
        public static List<ExcelErro> TwentyThreeData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
@@ -2090,6 +2319,143 @@
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,节拍工价】
        public static List<ExcelErro> TwentyFourData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            var dynamicParams = new DynamicParameters();
            List<ExcelErro> list = new List<ExcelErro>();
            DataTable excelTable = new DataTable();
            list = ImportExcel.ExcelToTableErro(FileCode);    //验证Excel数据必填字段是否为空、唯一字段是否重复
            excelTable = ImportExcel.ExcelToTable(FileCode);  //获取Excel数据
            for (int i = 0; i < excelTable.Rows.Count; i++)
            {
                //产品是否存在
                sql = @"select partname from TMateriel_Info
                        where partname=@partname";
                dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count <= 0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{产品名称}";
                    erro.ErrorCont = "存货档案:{产品名称}字段" + excelTable.Rows[i][1].ToString().Trim() + "不存在";
                    list.Add(erro);
                }
                //工艺路线是否存在
                sql = @"select name from TFlw_Rout
                        where name=@routename";
                dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data0.Rows.Count <= 0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{工艺路线名称}";
                    erro.ErrorCont = "工艺路线:{工艺路线名称}字段" + excelTable.Rows[i][2].ToString().Trim() + "不存在";
                    list.Add(erro);
                }
                //工序是否存在
                sql = @"select stepname from TStep
                        where stepname=@stepname";
                dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
                var data1 = DapperHelper.selectdata(sql, dynamicParams);
                if (data1.Rows.Count <= 0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{工序名称}";
                    erro.ErrorCont = "工序定义:{工序名称}字段" + excelTable.Rows[i][3].ToString().Trim() + "不存在";
                    list.Add(erro);
                }
                //设备是否存在
                sql = @"select name from TEqpInfo
                        where name=@eqpname";
                dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
                var data2 = DapperHelper.selectdata(sql, dynamicParams);
                if (data2.Rows.Count <= 0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{设备名称}";
                    erro.ErrorCont = "设备清单:{设备名称}字段" + excelTable.Rows[i][4].ToString().Trim() + "不存在";
                    list.Add(erro);
                }
                //判断产品是否关联工艺路线
                sql = @"select M.partname,R.name  from TMateriel_Route A
                        inner join TMateriel_Info M on A.materiel_code=M.partcode
                        inner join TFlw_Rout R on A.route_code=R.code
                        where M.partname=@partname and R.name=@routename";
                dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
                dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                if (data3.Rows.Count<=0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{产品名称/工艺路线名称}";
                    erro.ErrorCont = "产品关联工艺路线:{产品名称}字段:【" + excelTable.Rows[i][1].ToString().Trim() + "】对应工艺路线名称:【"+ excelTable.Rows[i][2].ToString().Trim() + "】未关联";
                    list.Add(erro);
                }
                //判断工艺路线是否关联工序
                sql = @"select R.name,S.stepname  from TFlw_Rtdt A
                        inner join TFlw_Rout R on A.rout_code=R.code
                        inner join TStep S on A.step_code=S.stepcode
                        where R.name=@routename and S.stepname=@stepname";
                dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
                dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
                var data4 = DapperHelper.selectdata(sql, dynamicParams);
                if (data4.Rows.Count <= 0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{工艺路线名称/工序名称}";
                    erro.ErrorCont = "工艺路线关联工序:{工艺路线名称}字段:【" + excelTable.Rows[i][2].ToString().Trim() + "】对应工序名称:【" + excelTable.Rows[i][3].ToString().Trim() + "】未关联";
                    list.Add(erro);
                }
                //判断工序是否关联设备
               sql = @"select E.name,S.stepname  from TFlw_Rteqp A
                        inner join TStep S on A.step_code=S.stepcode
                        inner join TEqpInfo E on A.eqp_code=E.code
                        where S.stepname=@stepname and E.name=@eqpname";
                dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
                dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
                var data5 = DapperHelper.selectdata(sql, dynamicParams);
                if (data5.Rows.Count <= 0)
                {
                    ExcelErro erro = new ExcelErro();
                    erro.RoeNumber = "/";
                    erro.ErrorField = "{工序名称/设备名称}";
                    erro.ErrorCont = "工序关联设备:{工序名称}字段:【" + excelTable.Rows[i][3].ToString().Trim() + "】对应设备名称:【" + excelTable.Rows[i][4].ToString().Trim() + "】未关联";
                    list.Add(erro);
                }
            }
            if (list.Count > 0)
            {
                int index = 0;
                foreach (ExcelErro item in list)
                {
                    index++;
                    item.Seq = index.ToString();
                }
                StuCode = "301";
                message = "数据验证失败";
            }
            else
            {
                StuCode = "200";
                message = "数据验证成功";
                count = excelTable.Rows.Count;
            }
            return list;
        }
        #endregion
@@ -2710,6 +3076,24 @@
        }
        #endregion
        #region【Excel数据上传,设备点检标准】
        public static string TwentyTwoSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,设备保养项目】
        public static string ElevenSubmit(string FileCode, string User, out string StuCode)
        {
@@ -2727,26 +3111,26 @@
                for (int i = 0; i < excelTable.Rows.Count; i++)
                {
                    string Type = "", IsScan = "";
                    switch (excelTable.Rows[i][3].ToString().Trim())
                    {
                        case "年":
                            Type = "Y";
                            break;
                        case "季":
                            Type = "S";
                            break;
                        case "月":
                            Type = "M";
                            break;
                        case "周":
                            Type = "W";
                            break;
                        case "日":
                            Type = "D";
                            break;
                        default:
                            break;
                    }
                    //switch (excelTable.Rows[i][3].ToString().Trim())
                    //{
                    //    case "年":
                    //        Type = "Y";
                    //        break;
                    //    case "季":
                    //        Type = "S";
                    //        break;
                    //    case "月":
                    //        Type = "M";
                    //        break;
                    //    case "周":
                    //        Type = "W";
                    //        break;
                    //    case "日":
                    //        Type = "D";
                    //        break;
                    //    default:
                    //        break;
                    //}
                    switch (excelTable.Rows[i][4].ToString().Trim())
                    {
                        case "是":
@@ -2769,7 +3153,7 @@
                            name = excelTable.Rows[i][2].ToString().Trim(),
                            descr = excelTable.Rows[i][5].ToString().Trim(),
                            isscan = IsScan,
                            cycle = Type,
                            cycle = "",
                            Operator = User,
                            CreateDate = DateTime.Now.ToString()
                        }
@@ -2786,6 +3170,24 @@
                    StuCode = "300";
                    message = "导入失败!";
                }
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,设备保养标准】
        public static string TwentyThreeSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
@@ -2886,6 +3288,168 @@
        }
        #endregion
        #region【Excel数据上传,节拍工价】
        public static string TwentyFourSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                DataTable excelTable = new DataTable();
                excelTable = ImportExcel.ExcelToTable(FileCode);
                //导入设备点检项目表
                for (int i = 0; i < excelTable.Rows.Count; i++)
                {
                    string partcode = "", routecode = "",stepcode="",eqpcode="",wkspcode="";
                    //查询产品编码
                    sql = @"select partcode from TMateriel_Info
                        where partname=@partname";
                    dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    if (data.Rows.Count > 0)
                    {
                        partcode = data.Rows[0]["partcode"].ToString();
                    }
                    else
                    {
                        StuCode = "产品名称:【"+ excelTable.Rows[i][1].ToString().Trim() + "】对应编码不存在!";
                        message = "导入失败!";
                    }
                    //查询工艺路线编码
                    sql = @"select code from TFlw_Rout
                        where name=@routename";
                    dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data0.Rows.Count > 0)
                    {
                        routecode = data0.Rows[0]["code"].ToString();
                    }
                    else
                    {
                        StuCode = "工艺路线名称:【" + excelTable.Rows[i][2].ToString().Trim() + "】对应编码不存在!";
                        message = "导入失败!";
                    }
                    //查询工序编码
                    sql = @"select stepcode from TStep
                        where stepname=@stepname";
                    dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data1.Rows.Count > 0)
                    {
                        stepcode = data1.Rows[0]["stepcode"].ToString();
                    }
                    else
                    {
                        StuCode = "工序名称:【" + excelTable.Rows[i][3].ToString().Trim() + "】对应编码不存在!";
                        message = "导入失败!";
                    }
                    //查询设备编码
                    sql = @"select code from TEqpInfo
                        where name=@eqpname";
                    dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
                    var data4 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data4.Rows.Count > 0)
                    {
                        eqpcode = data4.Rows[0]["code"].ToString();
                    }
                    else
                    {
                        StuCode = "设备名称:【" + excelTable.Rows[i][4].ToString().Trim() + "】对应编码不存在!";
                        message = "导入失败!";
                    }
                    //查询车间编码
                    sql = @"select wksp_code from TEqpInfo
                        where name=@eqpname";
                    dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
                    var data5 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data5.Rows.Count > 0)
                    {
                        wkspcode = data5.Rows[0]["wksp_code"].ToString();
                    }
                    else
                    {
                        StuCode = "设备名称:【" + excelTable.Rows[i][4].ToString().Trim() + "】对应车间编码不存在!";
                        message = "导入失败!";
                    }
                    //查询工序节拍表中:产品+工艺路线+工序+设备是否存在
                    sql = @"select *  from TPrteEqp_Stad
                        where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode and eqp_code=@eqpcode";
                    dynamicParams.Add("@partcode", partcode);
                    dynamicParams.Add("@routecode", routecode);
                    dynamicParams.Add("@stepcode", stepcode);
                    dynamicParams.Add("@eqpcode", eqpcode);
                    var data6 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data6.Rows.Count > 0)
                    {
                        sql = @"update TPrteEqp_Stad set stand_value=@stand_value,eqp_value=@eqp_value,cavity_qty=@cavity_qty,unprice=@unprice,lm_user=@username,lm_date=@userdate
                            where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode and eqp_code=@eqpcode ";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                partcode = partcode,
                                routecode = routecode,
                                stepcode = stepcode,
                                eqpcode = eqpcode,
                                stand_value = excelTable.Rows[i][7].ToString().Trim(),
                                eqp_value = excelTable.Rows[i][6].ToString().Trim(),
                                cavity_qty = excelTable.Rows[i][8].ToString().Trim(),
                                unprice = excelTable.Rows[i][5].ToString().Trim(),
                                username = User,
                                userdate = DateTime.Now.ToString()
                            }
                        });
                    }
                    else
                    {
                        sql = @"insert into TPrteEqp_Stad(materiel_code,eqp_code,stand_value,route_code,unprice,eqp_value,cavity_qty,wkspcode,lm_user,lm_date,step_code)
                              values(@partcode,@eqpcode,@stand_value,@routecode,@unprice,@eqp_value,@cavity_qty,@wkspcode,@username,@userdate,@stepcode)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                partcode = partcode,
                                eqpcode = eqpcode,
                                stand_value = excelTable.Rows[i][7].ToString().Trim(),
                                routecode = routecode,
                                unprice = excelTable.Rows[i][5].ToString().Trim(),
                                eqp_value = excelTable.Rows[i][6].ToString().Trim(),
                                cavity_qty = excelTable.Rows[i][8].ToString().Trim(),
                                wkspcode = wkspcode,
                                username = User,
                                userdate = DateTime.Now.ToString(),
                                stepcode = stepcode
                            }
                        });
                    }
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    StuCode = "200";
                    message = "导入成功!";
                }
                else
                {
                    StuCode = "300";
                    message = "导入失败!";
                }
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,质检标准】
        public static string SeventeenSubmit(string FileCode, string User, out string StuCode)
        {