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/DAL/SopManageMentDAL.cs |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 221 insertions(+), 2 deletions(-)

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
+
     }
 }

--
Gitblit v1.9.3