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<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;
|
string HMaker = msg3;
|
int HMaterTypeID = list[0].HMaterTypeID;
|
|
//子表
|
List<SOPBillSub> list2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SOPBillSub>>(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;
|
}
|
|
}
|
}
|