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[2].ToString();//当前人 //反序列化 msg2 = "[" + msg2.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(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; string HMaker = msg3; int HMaterTypeID = list[0].HMaterTypeID; //子表 List list2 = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); int HProcNo = list2[0].HProcNo; long HProcID = list2[0].HProcID; long HWorkStationID = list2[0].HWorkStationID; long HCenterID = list2[0].HCenterID; string HRemark2 = list2[0].HRemark; //判断权限 //if (!ClsPub.Security_Log("Gy_Repair_Edit", 1, false, msg3)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "没有找到该功能模块!"; // objJsonResult.data = null; // return objJsonResult; //} DataSet CS; Int64 lID = 0; string BillType = ""; CS = oCN.RunProcReturn("select * from Gy_BillNumber with (nolock) where BillCode='" + 3305 + "'", "Gy_BillNumber"); if (CS.Tables[0].Rows.Count != 0) { lID = ClsPub.isLong(CS.Tables[0].Rows[0]["IDNow"].ToString()); BillType = CS.Tables[0].Rows[0]["BillType"].ToString().Trim(); } //若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 + "'," + lID + ",'" + HBillNo + "'," + "getdate()" + "," + "datepart(yyyy,GETDATE())" + "," + "datepart(mm,getdate())" + ",'" + HRemark + "','" + HMaker + "'," + "getdate()" + "," + HMaterID.ToString() + ",'" + HName + "'," + HMaterTypeID + "," + HUnitID.ToString() + ",'" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() + "') "); oCN.RunProc("update Gy_BillNumber set IDNow=IDNow+1 where BillType='" + BillType.Trim() + "'"); //" 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.RunProc("Insert into Gy_SOPBillSub " + "(HInterID,HEntryID,HProcID,HProcNO" + ",HWorkStationID,HCenterID,HRemark" + ") values(" + lID + "," + 1 + "," + HProcID + "," + HProcNo + "," + HWorkStationID + "," + HCenterID + ",'" + HRemark2 + "'" + ") "); 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 DataSet CS; Int64 lID = 0; string BillType = ""; CS = oCN.RunProcReturn("select * from Gy_BillNumber with (nolock) where BillCode='" + 3305 + "'", "Gy_BillNumber"); if (CS.Tables[0].Rows.Count != 0) { lID = ClsPub.isLong(CS.Tables[0].Rows[0]["IDNow"].ToString())-1; BillType = CS.Tables[0].Rows[0]["BillType"].ToString().Trim(); } DataSet Ds; Int64 Sno = 1; Ds = oCN.RunProcReturn("select MAX(HSno) HSno from Gy_SOPBillSub2" , "Gy_SOPBillSub2"); if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HSno"].ToString())!= 0) { Sno = ClsPub.isLong(Ds.Tables[0].Rows[0]["HSno"].ToString()); Sno += 1; } 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()" + ",'" + Sno + "','" + 0 + "','" + Sno + "','" + lID + "','" + 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; } } }