yangle
2022-11-14 4ba9609d75b835d8d2ef361ca0fe68fa72dfe5e2
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
5个文件已修改
1个文件已添加
796 ■■■■■ 已修改文件
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_MaterialController.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/LMESController.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_SOPBillController.cs 369 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_SOPBillEditController.cs 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -141,3 +141,4 @@
/NETERPNoWin/obj
/WebAPI/Sc_MouldProdOutBill/Log
/PayM/bin/Debug
/PayM/obj/x86/Debug
WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
@@ -572,27 +572,21 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DataSet Ds, Ds2;
                DataSet Ds;
                Ds = oCN.RunProcReturn("Select * from h_v_IF_BarCodeBillList Where HItemID=" + lngBillKey.ToString(), "h_v_IF_BarCodeBillList");
                if (Ds.Tables[0].Rows.Count != 0)
                {
                    oCN.BeginTran();
                    Ds2 = oCN.RunProcReturn("Delete from Gy_BarCodeBill Where HItemID=" + lngBillKey.ToString(), "Gy_BarCodeBill");
                    if (Ds2.Tables[0].Rows.Count != 0)
                    {
                        oCN.Commit();
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "删除成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "删除失败";
                   oCN.BeginTran();
                   oCN.RunProc("Delete from Gy_BarCodeBill Where HItemID=" + lngBillKey.ToString());
                    oCN.Commit();
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "删除成功";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
@@ -605,6 +599,7 @@
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.Message;
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -57,7 +57,7 @@
                bool isCgjl = Security_Log("Cg_POOrderBill_PurchasManager", 1, true, user);
                if (!isCgjl)
                {
                    sWhere += $" and HEmpID in (select HEmpID from Gy_Czygl where Czymc='{user}' )";
                    sWhere += $" and HEmpID in (select HEmpID from Gy_Czygl where Czymc='{user}' and HEmpID >0  )";
                }
                string sql = "select * from h_v_IF_POOrderBillList where 1 = 1 " + sWhere;
                ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList");
@@ -91,9 +91,9 @@
                {
                    foreach (DataColumn item in ds.Tables[0].Columns)
                    {
                        optionList.Add(@"{ field: 'hmainid', title: '"+ item.ToString() + "', sort: true, hide: false }");
                        optionList.Add(@"{ field: 'hmainid', title: '" + item.ToString() + "', sort: true, hide: false }");
                    }
                    string option = string.Join(",",optionList);
                    string option = string.Join(",", optionList);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
@@ -144,7 +144,7 @@
                            title = item.ToString(),
                            sort = true,
                            hide = false,
                        });
                        });
                    }
                    string option = string.Join(",", optionList);
                    objJsonResult.code = "1";
@@ -661,5 +661,5 @@
        //
    }
}
WebAPI/Controllers/LMESController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -59,6 +60,7 @@
            DataSet ds;
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                //if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Query", 1, false, user))
                //{
@@ -72,11 +74,19 @@
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillQuery where 1 = 1 " + sWhere + " order by hmainid desc ", "h_v_Sc_ProcessExchangeBillQuery");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
@@ -599,11 +609,21 @@
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_SOPBillController.cs
@@ -1,19 +1,15 @@
using Newtonsoft.Json.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using System.Web;
using System.Data.SqlClient;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using WebAPI.Service;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Gy_SOPBillController : ApiController
@@ -23,344 +19,87 @@
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        public DAL.ClsGy_SOPBill BillNew = new DAL.ClsGy_SOPBill();
        public DAL.ClsGy_SOPBill BillOld = new DAL.ClsGy_SOPBill();
        public bool BillChange;   //
        public DataGridView grdMain = new System.Windows.Forms.DataGridView();
        ClsGridViewSum oSumGrid = new ClsGridViewSum();
        //定义
        public const Int16 HTagCol = 0;
        public const Int16 HSnoCol = 1;
        public const Int16 HProcNoCol = 2;
        public const Int16 HProcIDCol = 3;
        public const Int16 HProcNumberCol = 4;
        public const Int16 HProcNameCol = 5;
        public const Int16 HWorkStationIDCol = 6;
        public const Int16 HWorkStationNumberCol = 7;
        public const Int16 HWorkStationNameCol = 8;
        public const Int16 HCenterIDCol = 9;
        public const Int16 HCenterNumberCol = 10;
        public const Int16 HCenterNameCol = 11;
        public const Int16 HRemarkCol = 12;
        public const Int16 HEntryIDCol = 13;
        DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
        DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
        DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
        DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
        DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
        #region  è¯»å†™ç±»
        //显示单据
        public void Sub_ShowBill()
        {
            DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
            DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
            DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
            DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
            DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
            //ClsGy_SourceHlp oSource = new ClsGy_SourceHlp();
            //判断是否存在单据
            if (BillOld.ShowBill(BillOld.omodel.HInterID, ref ClsPub.sExeReturnInfo) == false)
            {
                MessageBox.Show(ClsPub.sExeReturnInfo, "提示");
                return;
            }
            //grid禁止刷新
            //加载表体
            int i = 0;
            foreach (Model.ClsGy_SOPBillSub oSub in BillOld.DetailColl)
            {
                if (i >= grdMain.RowCount - 1)
                    grdMain.Rows.Add();
                grdMain.Rows[i].Cells[HTagCol].Value = "*";
                grdMain.Rows[i].Cells[HProcIDCol].Value = oSub.HProcID.ToString();
                if (oProc.GetInfoByID(oSub.HProcID))
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = oProc.omodel.HNumber;
                    grdMain.Rows[i].Cells[HProcNameCol].Value = oProc.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HProcNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HCenterIDCol].Value = oSub.HCenterID.ToString();
                if (oCenter.GetInfoByID(oSub.HCenterID))
                {
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = oCenter.omodel.HNumber;
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = oCenter.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = "";
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HWorkStationIDCol].Value = oSub.HWorkStationID.ToString();
                if (oStation.GetInfoByID(oSub.HWorkStationID))
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = oStation.omodel.HNumber;
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = oStation.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HProcNoCol].Value = oSub.HProcNo.ToString();
                grdMain.Rows[i].Cells[HRemarkCol].Value = oSub.HRemark;
                grdMain.Rows[i].Cells[HEntryIDCol].Value = oSub.HEntryID;
                i = i + 1;
            }
            //GRID允许刷新
            DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid);
            //
            //Sub_OperStatus();
        }
        #endregion
        #region ä¿å­˜å•据
        [Route("Gy_SOPBill/ModifyByID")]
        [HttpPost]
        public object Sub_SaveBill([FromBody] JObject oMain)
        /// <summary>
        /// è¿”回生产资源生产状态工单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Sc_ICMOBillStatus_Tmp/list")]
        [HttpGet]
        public object list(string sWhere, string user)
        {
            try
            {
                var _value = oMain["oMain"].ToString();
                string msg1 = _value.ToString();
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                string msg3 = sArray[1].ToString();//当前人
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<SOPBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SOPBill>>(msg2);
                string HBillNo = list[0].HBillNo;
                DateTime HDate = list[0].HDate;
                string HName = list[0].HName;
                int HMaterID = list[0].HMaterID;
                string HMaterNumber = list[0].HMaterNumber;
                string HMaterName = list[0].HMaterName;
                string HMaterModel = list[0].HMaterModel;
                int HUnitID = list[0].HUnitID;
                string HUnitNumber = list[0].HUnitNumber;
                string HUnitName = list[0].HUnitName;
                string HRemark = list[0].HRemark;
                bool HStandard = list[0].HStandard;
                bool HUse = list[0].HUse;
                //判断权限
                //if (!ClsPub.Security_Log("Gy_Repair_Edit", 1, false, msg3))
                //编辑权限
                //if (!DBUtility.ClsPub.Security_Log_second("Gy_Material", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "没有找到该功能模块!";
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                string sql1 = string.Format(@"select * from h_v_Sc_WorkOrderList where HMainID='" + sWhere + "'");
                ds = oCN.RunProcReturn(sql1, "h_v_Sc_WorkOrderList");
                //若MAINDI重复则重新获取
                oCN.BeginTran();
                //主表
                oCN.RunProc("Insert Into Gy_SOPBillMain   " +
                 "(HBillType,HInterID,HBillNo,HDate" +
                 ",HYear,HPeriod,HRemark,HMaker,Hmakedate,HMaterID,HName,HMaterTypeID" +
                 ",HUnitID,HMaterNumber,HUnitNumber,HStandard" +
                 ") " +
                  " values('" + 3305 + "'," + HMaterID + ",'" + HMaterID + "','" + "2022-11-04" + "'" +
                "," + 2022 + "," + 11 + ",'" + HRemark + "','" + "Test" + "'," + "2022-11-04" + "," + HMaterID.ToString() + ",'" + HName + "'," + 656 +
                "," + HUnitID.ToString() + ",'" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                "') ");
                //" values(" + 3305 + "','" + 12333 + "','" + "test" + "','" + HDate + "','" +
                //2022 + "','" + 11 + "','" + HRemark + "','" + "Test" + "','" + "2022-11-04" + "','" + HMaterID.ToString() + "','" + HName + "','" + "656" +
                //"','" + HUnitID.ToString() + "','" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                //") ");
                //修改上级为非末级代码
                //oCN.RunProc("Update Gy_MouldType set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增成功!";
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        [Route("Gy_SOPBill/Use")]
        /// <summary>
        /// è¿”回文件清单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Sc_ICMOBillStatus_Tmp/Filelist")]
        [HttpGet]
        public object sy_Click()
        public object Filelist()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingCheckAndUsed(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/Cancel")]
        [HttpGet]
        public object fsy_Click()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "反使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingUsed_Back(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "反使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "反使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/UploadFile1")]
        [HttpPost]
        public object UploadFile1()
        {
            string HBillNo = HttpContext.Current.Request.Params["HBillNo"];  //单据号
            string HRemark = HttpContext.Current.Request.Params["HRemark"];  //备注
            string HUserName = HttpContext.Current.Request.Params["HUserName"];  //创建人
            HttpPostedFile files = HttpContext.Current.Request.Files["file"];
            string path = HttpContext.Current.Server.MapPath("~/../Files/" + HBillNo);
            //string path = @"D:\\Files\\"+ HBillNo;
            dynamic dyResult = UpLoadFile(files, path, HBillNo, HRemark, HUserName);
            if (dyResult != null && dyResult.result == 1)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "上传成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = dyResult.returnval;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public dynamic UpLoadFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName)
        {
            dynamic Result_Ob = new { result = 1, returnval = "上传成功!" };
            string filePath = Path.GetFullPath(files.FileName);//文件上传路径
            string fileExtension = Path.GetExtension(files.FileName);// æ–‡ä»¶æ‰©å±•名
            string filename = files.FileName;//文件名
            string fileSavePath = path;// ä¸Šä¼ ä¿å­˜è·¯å¾„
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
            try
            {
                if (files == null || files.ContentLength <= 0)
                {
                    Result_Ob = new { result = 0, returnval = "文件不能为空!" };
                    return Result_Ob;
                }
                if (filesize >= Maxsize)
                {
                    Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" };
                    return Result_Ob;
                }
                //编辑权限
                //if (!DBUtility.ClsPub.Security_Log_second("Gy_Material", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                string sql1 = string.Format(@"select HSno åºå·,HFileName æ–‡ä»¶åç§° from Gy_SOPBillSub2");
                string fileurl = Path.Combine(fileSavePath, filename);
                if (Directory.Exists(fileurl) == true)  //如果存在重名文件就提示
                {
                    Result_Ob = new { result = 0, returnval = "存在同名文件!" };
                    return Result_Ob;
                }
                //删除数据表数据
                ds = oCN.RunProcReturn("delete from Gy_SOPBillSub2 where HFileName='" + filename + "'", "Gy_SOPBillSub2");
                if (Directory.Exists(path))
                {
                    File.Delete(fileurl);      //删除指定文件
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                    ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                   ") values('"
                                    + filename.ToString() + "','" + filePath.ToString() + "','" +  fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate()"  + ",'" + 0 + "','" + 0 + "','" + 0 + "','" + 0 + "','" + 0 +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                else
                {
                    Directory.CreateDirectory(fileSavePath); //添加文件夹
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                     ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                    ") values('"
                                     + filename.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                     ",'" + HUserName + "',getdate()" + ",'" + 111 + "','" + 222 + "','" + 333 + "','" + 444 + "','" + 555 +
                                    "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                ds = oCN.RunProcReturn(sql1, "Gy_SOPBillSub2");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                Result_Ob = new { result = 0, returnval = e.Message };
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return Result_Ob;
        }
    }
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_SOPBillEditController.cs
New file
@@ -0,0 +1,367 @@
using Newtonsoft.Json.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using Pub_Class;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Gy_SOPBillEditController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        public DAL.ClsGy_SOPBill BillNew = new DAL.ClsGy_SOPBill();
        public DAL.ClsGy_SOPBill BillOld = new DAL.ClsGy_SOPBill();
        public bool BillChange;   //
        public DataGridView grdMain = new System.Windows.Forms.DataGridView();
        ClsGridViewSum oSumGrid = new ClsGridViewSum();
        //定义
        public const Int16 HTagCol = 0;
        public const Int16 HSnoCol = 1;
        public const Int16 HProcNoCol = 2;
        public const Int16 HProcIDCol = 3;
        public const Int16 HProcNumberCol = 4;
        public const Int16 HProcNameCol = 5;
        public const Int16 HWorkStationIDCol = 6;
        public const Int16 HWorkStationNumberCol = 7;
        public const Int16 HWorkStationNameCol = 8;
        public const Int16 HCenterIDCol = 9;
        public const Int16 HCenterNumberCol = 10;
        public const Int16 HCenterNameCol = 11;
        public const Int16 HRemarkCol = 12;
        public const Int16 HEntryIDCol = 13;
        DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
        DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
        DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
        DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
        DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
        #region  è¯»å†™ç±»
        //显示单据
        public void Sub_ShowBill()
        {
            DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
            DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
            DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
            DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
            DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
            //ClsGy_SourceHlp oSource = new ClsGy_SourceHlp();
            //判断是否存在单据
            if (BillOld.ShowBill(BillOld.omodel.HInterID, ref ClsPub.sExeReturnInfo) == false)
            {
                MessageBox.Show(ClsPub.sExeReturnInfo, "提示");
                return;
            }
            //grid禁止刷新
            //加载表体
            int i = 0;
            foreach (Model.ClsGy_SOPBillSub oSub in BillOld.DetailColl)
            {
                if (i >= grdMain.RowCount - 1)
                    grdMain.Rows.Add();
                grdMain.Rows[i].Cells[HTagCol].Value = "*";
                grdMain.Rows[i].Cells[HProcIDCol].Value = oSub.HProcID.ToString();
                if (oProc.GetInfoByID(oSub.HProcID))
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = oProc.omodel.HNumber;
                    grdMain.Rows[i].Cells[HProcNameCol].Value = oProc.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HProcNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HCenterIDCol].Value = oSub.HCenterID.ToString();
                if (oCenter.GetInfoByID(oSub.HCenterID))
                {
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = oCenter.omodel.HNumber;
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = oCenter.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = "";
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HWorkStationIDCol].Value = oSub.HWorkStationID.ToString();
                if (oStation.GetInfoByID(oSub.HWorkStationID))
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = oStation.omodel.HNumber;
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = oStation.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HProcNoCol].Value = oSub.HProcNo.ToString();
                grdMain.Rows[i].Cells[HRemarkCol].Value = oSub.HRemark;
                grdMain.Rows[i].Cells[HEntryIDCol].Value = oSub.HEntryID;
                i = i + 1;
            }
            //GRID允许刷新
            DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid);
            //
            //Sub_OperStatus();
        }
        #endregion
        #region ä¿å­˜å•据
        [Route("Gy_SOPBill/ModifyByID")]
        [HttpPost]
        public object Sub_SaveBill([FromBody] JObject oMain)
        {
            try
            {
                var _value = oMain["oMain"].ToString();
                string msg1 = _value.ToString();
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                string msg3 = sArray[1].ToString();//当前人
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<SOPBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SOPBill>>(msg2);
                string HBillNo = list[0].HBillNo;
                DateTime HDate = list[0].HDate;
                string HName = list[0].HName;
                int HMaterID = list[0].HMaterID;
                string HMaterNumber = list[0].HMaterNumber;
                string HMaterName = list[0].HMaterName;
                string HMaterModel = list[0].HMaterModel;
                int HUnitID = list[0].HUnitID;
                string HUnitNumber = list[0].HUnitNumber;
                string HUnitName = list[0].HUnitName;
                string HRemark = list[0].HRemark;
                bool HStandard = list[0].HStandard;
                bool HUse = list[0].HUse;
                //判断权限
                //if (!ClsPub.Security_Log("Gy_Repair_Edit", 1, false, msg3))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "没有找到该功能模块!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //若MAINDI重复则重新获取
                oCN.BeginTran();
                //主表
                oCN.RunProc("Insert Into Gy_SOPBillMain   " +
                 "(HBillType,HInterID,HBillNo,HDate" +
                 ",HYear,HPeriod,HRemark,HMaker,Hmakedate,HMaterID,HName,HMaterTypeID" +
                 ",HUnitID,HMaterNumber,HUnitNumber,HStandard" +
                 ") " +
                  " values('" + 3305 + "'," + HMaterID + ",'" + HMaterID + "','" + "2022-11-04" + "'" +
                "," + 2022 + "," + 11 + ",'" + HRemark + "','" + "Test" + "'," + "2022-11-04" + "," + HMaterID.ToString() + ",'" + HName + "'," + 656 +
                "," + HUnitID.ToString() + ",'" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                "') ");
                //" values(" + 3305 + "','" + 12333 + "','" + "test" + "','" + HDate + "','" +
                //2022 + "','" + 11 + "','" + HRemark + "','" + "Test" + "','" + "2022-11-04" + "','" + HMaterID.ToString() + "','" + HName + "','" + "656" +
                //"','" + HUnitID.ToString() + "','" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                //") ");
                //修改上级为非末级代码
                //oCN.RunProc("Update Gy_MouldType set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增成功!";
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        [Route("Gy_SOPBill/Use")]
        [HttpGet]
        public object sy_Click()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingCheckAndUsed(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/Cancel")]
        [HttpGet]
        public object fsy_Click()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "反使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingUsed_Back(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "反使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "反使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/UploadFile1")]
        [HttpPost]
        public object UploadFile1()
        {
            string HBillNo = HttpContext.Current.Request.Params["HBillNo"];  //单据号
            string HRemark = HttpContext.Current.Request.Params["HRemark"];  //备注
            string HUserName = HttpContext.Current.Request.Params["HUserName"];  //创建人
            HttpPostedFile files = HttpContext.Current.Request.Files["file"];
            string path = HttpContext.Current.Server.MapPath("~/../Files/" + HBillNo);
            //string path = @"D:\\Files\\"+ HBillNo;
            dynamic dyResult = UpLoadFile(files, path, HBillNo, HRemark, HUserName);
            if (dyResult != null && dyResult.result == 1)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "上传成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = dyResult.returnval;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public dynamic UpLoadFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName)
        {
            dynamic Result_Ob = new { result = 1, returnval = "上传成功!" };
            string filePath = Path.GetFullPath(files.FileName);//文件上传路径
            string fileExtension = Path.GetExtension(files.FileName);// æ–‡ä»¶æ‰©å±•名
            string filename = files.FileName;//文件名
            string fileSavePath = path;// ä¸Šä¼ ä¿å­˜è·¯å¾„
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
            try
            {
                if (files == null || files.ContentLength <= 0)
                {
                    Result_Ob = new { result = 0, returnval = "文件不能为空!" };
                    return Result_Ob;
                }
                if (filesize >= Maxsize)
                {
                    Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" };
                    return Result_Ob;
                }
                string fileurl = Path.Combine(fileSavePath, filename);
                if (Directory.Exists(fileurl) == true)  //如果存在重名文件就提示
                {
                    Result_Ob = new { result = 0, returnval = "存在同名文件!" };
                    return Result_Ob;
                }
                //删除数据表数据
                ds = oCN.RunProcReturn("delete from Gy_SOPBillSub2 where HFileName='" + filename + "'", "Gy_SOPBillSub2");
                if (Directory.Exists(path))
                {
                    File.Delete(fileurl);      //删除指定文件
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                    ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                   ") values('"
                                    + filename.ToString() + "','" + filePath.ToString() + "','" +  fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate()"  + ",'" + 0 + "','" + 0 + "','" + 0 + "','" + 0 + "','" + 0 +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                else
                {
                    Directory.CreateDirectory(fileSavePath); //添加文件夹
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                     ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                    ") values('"
                                     + filename.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                     ",'" + HUserName + "',getdate()" + ",'" + 111 + "','" + 222 + "','" + 333 + "','" + 444 + "','" + 555 +
                                    "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
            }
            catch (Exception e)
            {
                Result_Ob = new { result = 0, returnval = e.Message };
            }
            return Result_Ob;
        }
    }
}