From 54bfe544f50d0933ebc27583decb9ab61e01146f Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 14 六月 2024 16:05:16 +0800
Subject: [PATCH] 1.SOP管理,工单SOP功能接口开发
---
VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs | 7 +
VueWebCoreApi/VueWebCoreApi.csproj | 1
VueWebCoreApi/Controllers/GeneralBasicDataController.cs | 10 +
VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs | 34 ++++
VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs | 25 +++
VueWebCoreApi/Controllers/SopManageMentController.cs | 84 ++++++++++++
VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs | 223 +++++++++++++++++++++++++++++++
7 files changed, 379 insertions(+), 5 deletions(-)
diff --git a/VueWebCoreApi/Controllers/GeneralBasicDataController.cs b/VueWebCoreApi/Controllers/GeneralBasicDataController.cs
index b96dc8e..0c183c1 100644
--- a/VueWebCoreApi/Controllers/GeneralBasicDataController.cs
+++ b/VueWebCoreApi/Controllers/GeneralBasicDataController.cs
@@ -320,5 +320,15 @@
return Json(mes);
}
#endregion
+
+ #region[鏌ヨ宸ュ崟鍩虹璧勬枡]
+ [Route(template: "WrkOrderDataSelect")]
+ [HttpGet]
+ public JsonResult WrkOrderDataSelect()
+ {
+ mes = GeneralBasicDataBLL.WrkOrderDataSelect();
+ return Json(mes);
+ }
+ #endregion
}
}
diff --git a/VueWebCoreApi/Controllers/SopManageMentController.cs b/VueWebCoreApi/Controllers/SopManageMentController.cs
index e8ea25c..d3a3985 100644
--- a/VueWebCoreApi/Controllers/SopManageMentController.cs
+++ b/VueWebCoreApi/Controllers/SopManageMentController.cs
@@ -168,5 +168,89 @@
return Json(mes);
}
#endregion
+
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鏌ヨ]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ュ崟SOP鏌ヨ
+ /// </summary>
+ /// <param name="search">鎼滅储鍏抽敭瀛�</param>
+ /// <param name="check">鏄惁閫変腑鏈�楂樼増鏈�</param>
+ /// <param name="page">椤电爜</param>
+ /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+ /// <param name="prop">鎺掑簭瀛楁</param>
+ /// <param name="order">鎺掑簭瑙勫垯</param>
+ /// <returns></returns>
+ [Route(template: "WrkOrderSearch")]
+ [HttpGet]
+ public JsonResult WrkOrderSearch(string search = null, string check = null, int page = 0, int rows = 0, string prop = null, string order = null)
+ {
+ int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
+ int endNum = rows * page; //缁撴潫璁板綍 rowNum
+ mes = SopManageMentBLL.WrkOrderSearch(search, check, startNum, endNum, prop, order);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ュ崟SOP涓婁紶鑾峰彇鏈�澶х増鏈彿
+ /// </summary>
+ /// <param name="wocode">宸ュ崟缂栧彿</param>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="filetypecode">鏂囦欢绫诲瀷缂栫爜</param>
+ /// <returns></returns>
+ [Route(template: "WrkOrderSopMaxVersion")]
+ [HttpGet]
+ public JsonResult WrkOrderSopMaxVersion(string wocode, string partcode, string filetypecode)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.WrkOrderSopMaxVersion(wocode, partcode, filetypecode, us);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鏂板]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ュ崟SOP鏂板
+ /// </summary>
+ /// <param name="wocode">宸ュ崟缂栧彿</param>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="filename">鏂囦欢鍚嶇О</param>
+ /// <param name="filetypecode">鏂囦欢绫诲瀷缂栫爜</param>
+ /// <param name="file">涓婁紶鏂囦欢</param>
+ /// <param name="version">鐗堟湰鍙�</param>
+ /// <returns></returns>
+ [Route(template: "WrkOrderSopAddSeave")]
+ [HttpPost]
+ public JsonResult WrkOrderSopAddSeave([FromForm] string wocode, [FromForm] string partcode, [FromForm] string filename, [FromForm] string filetypecode, [FromForm] string version, IFormFile file)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.WrkOrderSopAddSeave(wocode, partcode, filename, filetypecode, version, file, us);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鍒犻櫎]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ュ崟SOP鍒犻櫎
+ /// </summary>
+ /// <param name="id">鏁版嵁id</param>
+ /// <param name="wocode">宸ュ崟缂栧彿</param>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="filepath">鏂囦欢璺緞</param>
+ /// <returns></returns>
+ [Route(template: "WrkOrderSopDeleteSeave")]
+ [HttpPost]
+ public JsonResult WrkOrderSopDeleteSeave(string id, string wocode, string partcode, string filepath)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.WrkOrderSopDeleteSeave(id, wocode, partcode, filepath, us);
+ return Json(mes);
+ }
+ #endregion
}
}
diff --git a/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs b/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs
index dd9173c..f772eed 100644
--- a/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs
@@ -164,5 +164,12 @@
return GeneralBasicDataDAL.MouldRepairItemSelect();
}
#endregion
+
+ #region[鏌ヨ宸ュ崟/浜у搧鍩虹璧勬枡]
+ public static ToMessage WrkOrderDataSelect()
+ {
+ return GeneralBasicDataDAL.WrkOrderDataSelect();
+ }
+ #endregion
}
}
diff --git a/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs b/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs
index f83cb60..03aaa09 100644
--- a/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs
@@ -41,7 +41,6 @@
}
#endregion
-
#region[绯荤粺璁剧疆,宸ヨ壓SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
public static ToMessage ProcessSopMaxVersion(string partcode, string routecode, string stepcode, string filetypecode, User us)
{
@@ -49,18 +48,47 @@
}
#endregion
- #region[绯荤粺璁剧疆,璁惧SOP鏂板]
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鏂板]
public static ToMessage ProcessSopAddSeave(string partcode, string routecode, string stepcode, string filename, string filetypecode,string version, IFormFile file, User us)
{
return SopManageMentDAL.ProcessSopAddSeave(partcode, routecode, stepcode, filename, filetypecode, version, file, us);
}
#endregion
- #region[绯荤粺璁剧疆,璁惧SOP鍒犻櫎]
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鍒犻櫎]
public static ToMessage ProcessSopDeleteSeave(string id, string partcode,string routecode,string stepcode, string filepath, User us)
{
return SopManageMentDAL.ProcessSopDeleteSeave(id, partcode, routecode, stepcode, filepath, us);
}
#endregion
+
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鏌ヨ]
+ public static ToMessage WrkOrderSearch(string search, string check, int startNum, int endNum, string prop, string order)
+ {
+ return SopManageMentDAL.WrkOrderSearch(search, check, startNum, endNum, prop, order);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
+ public static ToMessage WrkOrderSopMaxVersion(string wocode, string partcode, string filetypecode, User us)
+ {
+ return SopManageMentDAL.WrkOrderSopMaxVersion(wocode, partcode, filetypecode, us);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鏂板]
+ public static ToMessage WrkOrderSopAddSeave(string wocode, string partcode, string filename, string filetypecode, string version, IFormFile file, User us)
+ {
+ return SopManageMentDAL.WrkOrderSopAddSeave(wocode, partcode, filename, filetypecode, version, file, us);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鍒犻櫎]
+ public static ToMessage WrkOrderSopDeleteSeave(string id, string wocode, string partcode, string filepath, User us)
+ {
+ return SopManageMentDAL.WrkOrderSopDeleteSeave(id, wocode, partcode, filepath, us);
+ }
+ #endregion
}
}
diff --git a/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs b/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs
index 26d0d40..ae4fc9d 100644
--- a/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs
@@ -643,5 +643,30 @@
return mes;
}
#endregion
+
+ #region[鏌ヨ宸ュ崟/浜у搧鍩虹璧勬枡]
+ public static ToMessage WrkOrderDataSelect()
+ {
+ string sql = "";
+ try
+ {
+ sql = @"select P.wo_code,P.materiel_code,M.partname as materiel_name
+ from TK_Wrk_Man P
+ left join TMateriel_Info M on P.materiel_code=M.partcode";
+ var data = DapperHelper.selecttable(sql);
+ mes.code = "200";
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.data = data;
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
}
}
diff --git a/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs b/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs
index e1fe62e..f2233ab 100644
--- a/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs
@@ -384,14 +384,14 @@
LogHelper.DbOperateLog(us.usercode, "鏂板宸ヨ壓SOP", "浜у搧锛�"+partcode+" SOP鏂囦欢:" + file.FileName + " 宸ヨ壓璺嚎:" + routecode ?? "" + " 宸ュ簭:" + stepcode.ToString(), us.usertype);
mes.code = "200";
mes.count = 0;
- mes.message = "鏂板璁惧SOP鎴愬姛!";
+ mes.message = "鏂板宸ヨ壓SOP鎴愬姛!";
mes.data = null;
}
else
{
mes.code = "300";
mes.count = 0;
- mes.message = "鏂板璁惧SOP澶辫触!";
+ mes.message = "鏂板宸ヨ壓SOP澶辫触!";
mes.data = null;
}
}
@@ -459,5 +459,224 @@
}
#endregion
+
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鏌ヨ]
+ public static ToMessage WrkOrderSearch(string search, string check, int startNum, int endNum, string prop, string order)
+ {
+ var dynamicParams = new DynamicParameters();
+ string sech = "";
+ try
+ {
+ if (search != "" && search != null)
+ {
+ sech += "and concat(isnull(AA.wo,''),isnull(AA.materielcode,''),isnull(AA.materielname,''),isnull(AA.filetypecode,''),isnull(AA.filetypename,''),isnull(AA.filename,''),isnull(AA.version,''),isnull(AA.username,'')) like '%'+@search+'%' ";
+ dynamicParams.Add("@search", search);
+ }
+ if (check == "Y")
+ {
+ sech += "and AA.rn=1 ";
+ dynamicParams.Add("@rn", 1);
+ }
+
+ if (sech == "")
+ {
+ sech = "and 1=1 ";
+ }
+ sech = sech.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+ // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+ var total = 0; //鎬绘潯鏁�
+ var sql = @"select AA.id,AA.wo,AA.materielcode,AA.materielname,AA.filetypecode,AA.filetypename,AA.filename,AA.version,AA.filepath,
+ AA.username,AA.lm_date,AA.rn from(
+ select top 100 A.id,A.wo,A.materielcode,M.partname as materielname,A.filetypecode,
+ (case when A.filetypecode='P001' then '浣滀笟鎸囧涔�' when A.filetypecode='P002' then '妫�楠屾寚瀵间功' when A.filetypecode='P003' then '鍥剧焊' end) as filetypename,
+ A.filename,A.version,A.filepath,U.username,A.lm_date,
+ row_number() over(partition by A.wo,A.materielcode,A.filetypecode order by replace(A.version,'V','') desc) rn
+ from TWrkOrderSop A
+ left join TMateriel_Info M on A.materielcode=M.partcode
+ left join TUser U on A.lm_user=U.usercode
+ ) as AA where " + sech + "";
+ var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+ mes.code = "200";
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.count = total;
+ mes.data = data.ToList();
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
+ public static ToMessage WrkOrderSopMaxVersion(string wocode, string partcode, string filetypecode, User us)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ //鑾峰彇SOP鏂囦欢浣滀笟鏂囦欢涓婁紶鑾峰彇鏈�澶х増鏈彿
+ sql = @"select isnull(max(substring(version,charindex('V',version)+1,len(version)-charindex('V',version))),0)+1 as file_version
+ from TWrkOrderSop where wo=@wo and materielcode=@materielcode and filetypecode=@filetypecode ";
+ dynamicParams.Add("@wo", wocode);
+ dynamicParams.Add("@materielcode", partcode);
+ dynamicParams.Add("@filetypecode", filetypecode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ mes.code = "200";
+ mes.message = "鑾峰彇鐗堟湰鍙锋垚鍔�!";
+ mes.data = "V" + data.Rows[0]["file_version"].ToString();
+ }
+ else
+ {
+ mes.code = "300";
+ mes.message = "鑾峰彇鐗堟湰鍙峰け璐�!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鏂板]
+ public static ToMessage WrkOrderSopAddSeave(string wocode, string partcode, string filename, string filetypecode, string version, IFormFile file, User us)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ list.Clear();
+ if (file == null || file.Length <= 0)
+ {
+ mes.code = "300";
+ mes.message = "鏂囦欢涓嶈兘涓虹┖锛�";
+ }
+ else
+ {
+ //鑾峰彇涓婁紶鏂囦欢,缁勫悎瀛樺偍璺緞
+ string FileName = "SOP" + DateTime.Now.ToString("yyyyMMddhhmmss");
+ string filePath = "wwwroot/WrkOrderSopFile/" + FileName + file.FileName; //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻枃浠跺湴鍧�)
+ string filePath1 = "WrkOrderSopFile/" + FileName + file.FileName; //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻暟鎹〃鍦板潃)
+
+ // 淇濆瓨鏂囦欢var stream = new FileStream(filePath, FileMode.Create)
+ using (var stream = new FileStream(filePath, FileMode.Create))
+ {
+ file.CopyTo(stream);
+ }
+ //鍐欏叆璁惧SOP琛�
+ sql = @"insert into TWrkOrderSop(wo,materielcode,filetypecode,filename,filepath,version,lm_user,lm_date)
+ values(@wo,@materielcode,@filetypecode,@filename,@filepath,@version,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wo=wocode,
+ materielcode = partcode,
+ filetypecode = filetypecode,
+ filename = file.FileName,
+ filepath = filePath1,
+ version = version,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
+ }
+ });
+
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鏂板宸ュ崟SOP", "宸ュ崟锛�" + wocode + "浜у搧锛�" + partcode + " SOP鏂囦欢:" + file.FileName, us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.message = "鏂板宸ュ崟SOP鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鏂板宸ュ崟SOP澶辫触!";
+ mes.data = null;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ュ崟SOP鍒犻櫎]
+ public static ToMessage WrkOrderSopDeleteSeave(string id, string wocode, string partcode, string filepath, User us)
+ {
+ var sql = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ list.Clear();
+ //鏌ヨ褰撳墠鏂囦欢鍑哄幓褰撳墠鍒犻櫎鐨�,鏄惁杩樿鍏朵粬寮曠敤
+ sql = @"select * from TWrkOrderSop where id<>@id and filepath=@filepath";
+ dynamicParams.Add("@id", id);
+ dynamicParams.Add("@filepath", filepath);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count <= 0)
+ {
+ // 鏋勫缓瀹屾暣鐨勬枃浠惰矾寰�
+ var filePath = Path.Combine("wwwroot", filepath);
+ // 鍒犻櫎鏂囦欢
+ System.IO.File.Delete(filePath);
+ }
+ sql = @"delete TWrkOrderSop where id=@id";
+ list.Add(new { str = sql, parm = new { id = id } });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鍒犻櫎宸ヨ壓SOP", "宸ュ崟:" + wocode + "浜у搧:" + partcode + " SOP鏂囦欢鍦板潃锛�" + filepath, us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.message = "鍒犻櫎鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鍒犻櫎澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
}
}
diff --git a/VueWebCoreApi/VueWebCoreApi.csproj b/VueWebCoreApi/VueWebCoreApi.csproj
index ffa8872..c086036 100644
--- a/VueWebCoreApi/VueWebCoreApi.csproj
+++ b/VueWebCoreApi/VueWebCoreApi.csproj
@@ -57,6 +57,7 @@
<Folder Include="wwwroot\MouldRecordImage\" />
<Folder Include="wwwroot\DeviceSopFile\" />
<Folder Include="wwwroot\ProcessSopFile\" />
+ <Folder Include="wwwroot\WrkOrderSopFile\" />
</ItemGroup>
<ItemGroup>
--
Gitblit v1.9.3