From 1d65947983e77ba73e133632bce763cb9bcd6fcc Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期三, 16 八月 2023 17:59:44 +0800
Subject: [PATCH] 生产报工、外协收料,不良数量根据不良原因分组统计

---
 VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache  |    2 
 VueWebApi/obj/Release/VueWebApi.pdb                             |    0 
 VueWebApi/DLL/DAL/ProductModelDAL.cs                            |   85 +++++++++++--
 VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache    |    2 
 VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferences.cache   |    0 
 VueWebApi/DLL/DAL/BasicSettingDAL.cs                            |    4 
 VueWebApi/Models/ReportDefectList.cs                            |   13 ++
 VueWebApi/Controllers/AppProductionManagementController.cs      |   16 +-
 .vs/VueWebApi/v16/.suo                                          |    0 
 VueWebApi/DLL/BLL/ProductionManagementBLL.cs                    |    8 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                    |   79 ++++++++----
 VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user |    8 
 VueWebApi/VueWebApi.csproj                                      |    1 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb      |    0 
 VueWebApi/Controllers/ProductionManagementController.cs         |   14 +-
 VueWebApi/obj/Debug/VueWebApi.pdb                               |    0 
 VueWebApi/DLL/DAL/ReportManagerDAL.cs                           |   70 +++++++----
 VueWebApi/bin/VueWebApi.pdb                                     |    0 
 18 files changed, 208 insertions(+), 94 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index 2aa4031..737240c 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/AppProductionManagementController.cs b/VueWebApi/Controllers/AppProductionManagementController.cs
index 1246def..7a084e2 100644
--- a/VueWebApi/Controllers/AppProductionManagementController.cs
+++ b/VueWebApi/Controllers/AppProductionManagementController.cs
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json.Linq;
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -7,6 +8,7 @@
 using System.Web;
 using System.Web.Http;
 using VueWebApi.DLL.BLL;
+using VueWebApi.Models;
 using VueWebApi.Tools;
 
 namespace VueWebApi.Controllers
@@ -177,11 +179,11 @@
             string taskqty = HttpContext.Current.Request["taskqty"].ToString();//浠诲姟鏁伴噺
             string startqty = HttpContext.Current.Request["startqty"].ToString();//寮�宸ユ暟閲�
             string reportqty = HttpContext.Current.Request["reportqty"].ToString();//鎶ュ伐宸ユ暟閲�
-            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//涓嶈壇鏁伴噺
-            string badcode = HttpContext.Current.Request["badcode"].ToString();//涓嶈壇鍘熷洜缂栫爜
+            string defectlist = HttpContext.Current.Request["defectlist"].ToString();//涓嶈壇姹囨��
             string remarks = HttpContext.Current.Request["remarks"].ToString();//澶囨敞
             string username = HttpContext.Current.Request["admin"].ToString();//鎿嶄綔浜哄憳
-            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway,usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
+            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
+            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway,usergroupcode, reportuser, taskqty, startqty, reportqty, defectobjs, remarks, username);
             return TJson.toJson(mes);
         }
         #endregion
@@ -229,11 +231,11 @@
             string inuser = HttpContext.Current.Request["inuser"].ToString();//鏀舵枡浜哄憳
             string taskqty = HttpContext.Current.Request["taskqty"].ToString();//浠诲姟鏁伴噺
             string sqty = HttpContext.Current.Request["sqty"].ToString();//鏀舵枡鏁伴噺
-            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//涓嶈壇鏁伴噺
-            string badcode = HttpContext.Current.Request["badcode"].ToString();//涓嶈壇鍘熷洜缂栫爜
+            string defectlist = HttpContext.Current.Request["defectlist"].ToString();//涓嶈壇姹囨��
             string remarks = HttpContext.Current.Request["remarks"].ToString();//澶囨敞
             string username = HttpContext.Current.Request["admin"].ToString();//鎿嶄綔浜哄憳
-            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, ngqty, badcode, remarks, username);
+            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
+            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, defectobjs, remarks, username);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 0b7ce26..68c42a7 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -17,7 +17,7 @@
 {
     [RoutePrefix(prefix: "api/ProductionManagement")]
     [ControllerGroup("鐢熶骇绠$悊", "鍦ㄧ嚎鎺ュ彛")]
-    //[ChannelActionFilter]
+    [ChannelActionFilter]
     public class ProductionManagementController : ApiController
     {
         //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
@@ -622,11 +622,11 @@
             string taskqty = obj["taskqty"].ToString(); //浠诲姟鏁伴噺
             string startqty = obj["startqty"].ToString(); //寮�宸ユ暟閲�
             string reportqty = obj["reportqty"].ToString(); //鎶ュ伐宸ユ暟閲�
-            string ngqty = obj["ngqty"].ToString(); //涓嶈壇鏁伴噺
-            string badcode = obj["badcode"].ToString(); //涓嶈壇鍘熷洜缂栫爜
+            string defectlist= obj["defectlist"].ToString();//涓嶈壇姹囨��
             string remarks = obj["remarks"].ToString(); //澶囨敞
             var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
-            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway, usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
+            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
+            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway, usergroupcode, reportuser, taskqty, startqty, reportqty, defectobjs, remarks, username);
             return TJson.toJson(mes);
         }
         #endregion
@@ -674,11 +674,11 @@
             string inuser = obj["inuser"].ToString();  //鏀舵枡浜哄憳
             string taskqty = obj["taskqty"].ToString(); //浠诲姟鏁伴噺
             string sqty = obj["sqty"].ToString(); //鏀舵枡鏁伴噺
-            string ngqty = obj["ngqty"].ToString(); //涓嶈壇鏁伴噺
-            string badcode = obj["badcode"].ToString(); //涓嶈壇鍘熷洜缂栫爜
+            string defectlist = obj["defectlist"].ToString();//涓嶈壇姹囨��
             string remarks = obj["remarks"].ToString(); //澶囨敞
             var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
-            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, ngqty, badcode, remarks, username);
+            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
+            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, defectobjs, remarks, username);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
index cdc4853..c60ee05 100644
--- a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -220,9 +220,9 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
-        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string eqpcode,string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty,string startqty, string reportqty,string ngqty, string badcode,string remarks, string username)
+        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string eqpcode,string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty,string startqty, string reportqty, List<ReportDefectList> defectobjs, string remarks, string username)
         {
-            return ProductionManagementDAL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway,usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
+            return ProductionManagementDAL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway,usergroupcode, reportuser, taskqty, startqty, reportqty,defectobjs, remarks, username);
         }
         #endregion
 
@@ -234,9 +234,9 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐, 鏀舵枡鎻愪氦]
-        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode,string inbarcode, string inuser, string taskqty, string sqty, string ngqty, string badcode,string remarks, string username)
+        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode,string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, string username)
         {
-            return ProductionManagementDAL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, ngqty, badcode, remarks, username);
+            return ProductionManagementDAL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty,defectobjs, remarks, username);
         }
         #endregion
 
diff --git a/VueWebApi/DLL/DAL/BasicSettingDAL.cs b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
index cd70037..f00d215 100644
--- a/VueWebApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -1044,7 +1044,7 @@
                 else
                 {
                     //淇敼鐢ㄦ埛缁勮〃
-                    sql = @"update TGroup see group_name=@groupename,lm_user=@lm_user,lm_date=@lm_date,description=@description,torg_code=@torg_code where group_code=@groupcode";
+                    sql = @"update TGroup set group_name=@groupename,lm_user=@lm_user,lm_date=@lm_date,description=@description,torg_code=@torg_code where group_code=@groupcode";
                     list.Add(new
                     {
                         str = sql,
@@ -1133,6 +1133,8 @@
                 }
                 sql = @"delete TGroup where group_code=@UserGrupCode";
                 list.Add(new { str = sql, parm = new { UserGrupCode = UserGrupCode } });
+                sql = @"delete TGroupUser where group_code=@UserGrupCode";
+                list.Add(new { str = sql, parm = new { UserGrupCode = UserGrupCode } });
 
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
diff --git a/VueWebApi/DLL/DAL/ProductModelDAL.cs b/VueWebApi/DLL/DAL/ProductModelDAL.cs
index 8ea9b24..77b8ca9 100644
--- a/VueWebApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -27,7 +27,7 @@
             try
             {
                 //鑾峰彇璁惧绫诲瀷鏁版嵁
-                sql = @"select code,name from T_Dict where dict_type='CHLX' ";
+                sql = @"select code,name,iparent_id from T_Dict where dict_type='CHLX' ";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -424,6 +424,7 @@
         public static ToMessage InventoryFileSelect(string stu_torgcode,string stu_torgtypecode,string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
+            string search0 = "";
             string search = "";
             string search1 = "";
             try
@@ -460,7 +461,8 @@
                 }
                 if (stocktypecode != "" && stocktypecode != null)
                 {
-                    search += "and D.code=@stocktypecode ";
+                    search0+= " where code = @stocktypecode";
+                    search += " and CTE.code <>@stocktypecode and CTE.iparent_id<>@stocktypecode and CTE.dict_type='CHLX' ";
                     dynamicParams.Add("@stocktypecode", stocktypecode);
                 }
                 if (materialtypecode != "" && materialtypecode != null)
@@ -479,25 +481,80 @@
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,
-                            C.code as materialtypecode,C.name as materialtypename,A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                               //var sql = @"select A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,
+                               //            C.code as materialtypecode,C.name as materialtypename,A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                               //            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+                               //            from TMateriel_Info A
+                               //            left join TUom B on A.uom_code=B.code
+                               //            left join TMateriel_Type C on A.materieltype_code=C.code
+                               //            left join T_Dict D on A.stocktype_code=D.code and D.dict_type='CHLX'
+                               //            left join T_Sec_Stck T on A.stck_code=T.code 
+                               //            left join TUser U on A.lm_user=U.usercode
+                               //            left join (
+                               //               select distinct materiel_code from TMateriel_Route M
+                               //               left join TOrganization F on M.torg_code=F.org_code 
+                               //               left join TOrganization as L on F.parent_id=L.id 
+                               //               where  1=1 "+search1+")  M on A.partcode=M.materiel_code where A.is_delete<>'1' " + search;
+                var sql0 = @"WITH CTE AS (
+                        SELECT  code,name,iparent_id,dict_type
+                        FROM T_Dict " + search0 + " ";
+                sql0 += @"UNION ALL
+                        SELECT t.code,t.name,t.iparent_id,t.dict_type
+                        FROM T_Dict t
+                        INNER JOIN CTE c ON c.code = t.iparent_id)
+                        SELECT COUNT(1) as total FROM (
+                        SELECT distinct A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,D.iparent_id,
+                            A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
                             A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
-                            from TMateriel_Info A
-                            left join TUom B on A.uom_code=B.code
-                            left join TMateriel_Type C on A.materieltype_code=C.code
-                            left join T_Dict D on A.stocktype_code=D.code and D.dict_type='CHLX'
-                            left join T_Sec_Stck T on A.stck_code=T.code 
-                            left join TUser U on A.lm_user=U.usercode
-                            left join (
+						FROM CTE
+						right join TMateriel_Info A on CTE.code=A.stocktype_code
+						left join TUom B on A.uom_code=B.code
+                        left join T_Dict D on A.stocktype_code=D.code 
+                        left join T_Sec_Stck T on A.stck_code=T.code 
+                        left join TUser U on A.lm_user=U.usercode
+                        left join (
                                select distinct materiel_code from TMateriel_Route M
                                left join TOrganization F on M.torg_code=F.org_code 
                                left join TOrganization as L on F.parent_id=L.id 
-                               where  1=1 "+search1+")  M on A.partcode=M.materiel_code where A.is_delete<>'1' " + search;
-                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                               where 1=1 " + search1 + ")  M on A.partcode=M.materiel_code  where  A.is_delete<>'1' " + search+") AS Result";
+                var data0 = DapperHelper.selectdata(sql0, dynamicParams);
+                if (data0.Rows.Count > 0)
+                {
+                    total = Convert.ToInt32(data0.Rows[0]["total"].ToString());
+                }
+                else 
+                {
+                    total = 0;
+                }
+
+                var sql = @"WITH CTE AS (
+                        SELECT  code,name,iparent_id,dict_type
+                        FROM T_Dict "+search0+" ";
+                sql += @"UNION ALL
+                        SELECT t.code,t.name,t.iparent_id,t.dict_type
+                        FROM T_Dict t
+                        INNER JOIN CTE c ON c.code = t.iparent_id)
+                        SELECT * FROM(SELECT *,ROW_NUMBER() OVER(ORDER BY lm_date desc) AS RowNum
+                        FROM(
+                        SELECT distinct A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,D.iparent_id,
+                            A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+						FROM CTE
+						right join TMateriel_Info A on CTE.code=A.stocktype_code
+						left join TUom B on A.uom_code=B.code
+                        left join T_Dict D on A.stocktype_code=D.code 
+                        left join T_Sec_Stck T on A.stck_code=T.code 
+                        left join TUser U on A.lm_user=U.usercode
+                        left join (
+                               select distinct materiel_code from TMateriel_Route M
+                               left join TOrganization F on M.torg_code=F.org_code 
+                               left join TOrganization as L on F.parent_id=L.id 
+                               where 1=1 " + search1+")  M on A.partcode=M.materiel_code  where  A.is_delete<>'1' "+search+ " ) AS Temp) AS Result WHERE RowNum >= "+ startNum + " AND RowNum <="+ endNum + " ORDER BY "+ prop + " "+order+"";
+                var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.count = total;
-                mes.data = data.ToList();
+                mes.data = data;
             }
             catch (Exception e)
             {
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 32931de..5b802fd 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -1805,10 +1805,21 @@
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭鎶ュ伐(鏀舵枡)璁板綍,涓斾笉鑹暟閲忓ぇ浜�0
                 //瀛樺偍杩囩▼鍚�
-                sql = @"h_p_IFCLD_MesReportDefectHandleSelect";
+                //sql = @"h_p_IFCLD_MesReportDefectHandleSelect";
+                sql = @"select MM.record_id as m_id,MM.wo_code,A.materiel_code,S.seq,MM.step_code,T.stepname,A.id,
+                       S.plan_qty,A.good_qty as report_qty,MM.defect_qty as ng_qty,A.bad_qty as badqty,'Z' as style,MM.verify, 
+                       MM.defect_code,STUFF((SELECT ',' + P.name
+                                  FROM TDefect P
+                                  WHERE CHARINDEX(',' + P.code + ',', ',' + MM.defect_code + ',') > 0
+                                  FOR XML PATH('')), 1, 1, '') AS defect_name
+                       from CSR_WorkRecord_Defect  MM
+                       inner join TK_Wrk_Record A on MM.record_id=a.id
+                       inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                       inner join TStep T on MM.step_code=T.stepcode
+                       where MM.wo_code=@ordercode and MM.step_code=@stepcode and MM.style='B' and A.style='B' and A.ng_qty>0";
                 dynamicParams1.Add("@ordercode", ordercode);
                 dynamicParams1.Add("@stepcode", stepcode);
-                DataTable dt = DapperHelper.selectProcedure(sql, dynamicParams1);
+                DataTable dt = DapperHelper.selectdata(sql, dynamicParams1);
                 if (dt.Rows.Count > 0)
                 {
                     list.Add("data1", rt);
@@ -2232,10 +2243,10 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
-        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string eqpcode, string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, string ngqty, string badcode, string remarks, string username)
+        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string eqpcode, string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, List<ReportDefectList> defectobjs, string remarks, string username)
         {
             var sql = "";
-            //string[] arra = new string[] { };
+            decimal ngqty = 0;
             string[] arra1 = new string[] { };
             List<object> list = new List<object>();
             var dynamicParams = new DynamicParameters();
@@ -2244,12 +2255,18 @@
                 string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
                 //鑾峰彇鎶ュ伐浜哄憳銆佸垎閰嶆瘮渚�
                 JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(reportuser);
-                if (ngqty != "" || ngqty != "0")
+                //鍒ゆ柇鏄惁鏈変笉鑹暟鎹�
+                var groupedItems = defectobjs.GroupBy(item => item.defect_code) // 鎸夌紪鐮乧ode鍒嗙粍
+                        .Select(group => new { defect_code = group.Key, badqty = group.Sum(item =>Convert.ToDecimal(item.badqty)) }).ToList(); // 姹囨�绘暟閲弎ty
+                if (groupedItems.Count <= 0)
                 {
-                    //鎴彇涓嶈壇鍘熷洜
-                    arra1 = badcode.Split(';');
+                    ngqty = 0;
                 }
-
+                else
+                {
+                    //姹囨�讳笉鑹暟閲�
+                    ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
+                }
                 list.Clear();
                 //鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�(鏈夛細淇敼 鏃狅細鏂板)
                 sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code and style='B'";
@@ -2277,6 +2294,7 @@
                     //鑾峰彇涓昏〃鏈�澶D
                     sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
                     var dt = DapperHelper.selecttable(sql);
+
                     //鍐欏叆寮�鎶ュ伐璁板綍琛�
                     sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date,inbarcode) 
                                 values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date,@inbarcode)";
@@ -2308,14 +2326,14 @@
                         });
 
                     }
-                    if (badcode != "" && ngqty != "0")
+                    if (groupedItems.Count>0)
                     {
                         //鍐欏叆缂洪櫡璁板綍琛�
-                        for (int i = 0; i < arra1.Length; i++)
+                        for (int i = 0; i < groupedItems.Count; i++)
                         {
                             sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
                                 values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "B", lm_user = username, lm_date = date } });
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2379,14 +2397,14 @@
                         });
 
                     }
-                    if (badcode != "" && ngqty != "0")
+                    if (groupedItems.Count > 0)
                     {
                         //鍐欏叆缂洪櫡璁板綍琛�
-                        for (int i = 0; i < arra1.Length; i++)
+                        for (int i = 0; i < groupedItems.Count; i++)
                         {
                             sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
                                 values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "B", lm_user = username, lm_date = date } });
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2510,20 +2528,27 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐, 鏀舵枡鎻愪氦]
-        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, string ngqty, string badcode, string remarks, string username)
+        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, string username)
         {
             var sql = "";
             string[] arra1 = new string[] { };
+            decimal ngqty = 0;
             List<object> list = new List<object>();
             var dynamicParams = new DynamicParameters();
             try
             {
                 string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
-                //鎴彇涓嶈壇鍘熷洜
-                if (ngqty != "" || ngqty != "0")
+                //鍒ゆ柇鏄惁鏈変笉鑹暟鎹�
+                var groupedItems = defectobjs.GroupBy(item => item.defect_code) // 鎸夌紪鐮乧ode鍒嗙粍
+                        .Select(group => new { defect_code = group.Key, badqty = group.Sum(item => Convert.ToDecimal(item.badqty)) }).ToList(); // 姹囨�绘暟閲弎ty
+                if (groupedItems.Count <= 0)
                 {
-                    //鎴彇涓嶈壇鍘熷洜
-                    arra1 = badcode.Split(';');
+                    ngqty = 0;
+                }
+                else
+                {
+                    //姹囨�讳笉鑹暟閲�
+                    ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
                 }
 
                 list.Clear();
@@ -2557,7 +2582,7 @@
                     mes.data = null;
                     return mes;
                 }
-                if ((decimal.Parse(sqty) + decimal.Parse(ngqty)) > decimal.Parse(da.Rows[0]["FQTY"].ToString()))  //鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鍙戞枡鏁伴噺
+                if ((decimal.Parse(sqty) + ngqty) > decimal.Parse(da.Rows[0]["FQTY"].ToString()))  //鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鍙戞枡鏁伴噺
                 {
                     mes.code = "300";
                     mes.count = 0;
@@ -2577,7 +2602,7 @@
                 {
                     decimal sum_sqty = data.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鏀舵枡鎬绘暟閲�
                     decimal sum_fqty = da.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鍙戞枡鎬绘暟閲�
-                    if ((sum_sqty + decimal.Parse(sqty) + decimal.Parse(ngqty)) > sum_fqty) //宸叉敹鏂欐�绘暟+褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鎬诲彂鏂欐暟閲�
+                    if ((sum_sqty + decimal.Parse(sqty) + ngqty) > sum_fqty) //宸叉敹鏂欐�绘暟+褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鎬诲彂鏂欐暟閲�
                     {
                         mes.code = "300";
                         mes.count = 0;
@@ -2600,14 +2625,14 @@
                                 values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = username, lm_date = date } });
 
-                    if (badcode != "" && ngqty != "0")
+                    if (groupedItems.Count>0)
                     {
                         //鍐欏叆缂洪櫡璁板綍琛�
-                        for (int i = 0; i < arra1.Length; i++)
+                        for (int i = 0; i < groupedItems.Count; i++)
                         {
                             sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
                                 values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "S", lm_user = username, lm_date = date } });
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2649,14 +2674,14 @@
                                 values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = username, lm_date = date } });
 
-                    if (badcode != "" && ngqty != "0")
+                    if (groupedItems.Count > 0)
                     {
                         //鍐欏叆缂洪櫡璁板綍琛�
-                        for (int i = 0; i < arra1.Length; i++)
+                        for (int i = 0; i < groupedItems.Count; i++)
                         {
                             sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
                                 values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "S", lm_user = username, lm_date = date } });
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
 
                         }
                     }
diff --git a/VueWebApi/DLL/DAL/ReportManagerDAL.cs b/VueWebApi/DLL/DAL/ReportManagerDAL.cs
index c4fa069..ea4717b 100644
--- a/VueWebApi/DLL/DAL/ReportManagerDAL.cs
+++ b/VueWebApi/DLL/DAL/ReportManagerDAL.cs
@@ -694,52 +694,52 @@
             {
                 if (wkshopcode != "" && wkshopcode != null)
                 {
-                    search += "and W.wkshp_code=@wkshopcode ";
+                    search += "and AA.wkshp_code=@wkshopcode ";
                     dynamicParams.Add("@wkshopcode", wkshopcode);
                 }
                 if (wocode != "" && wocode != null)
                 {
-                    search += "and A.wo_code like '%'+@wocode+'%' ";
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                     dynamicParams.Add("@wocode", wocode);
                 }
                 if (partcode != "" && partcode != null)
                 {
-                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
                     dynamicParams.Add("@partcode", partcode);
                 }
                 if (partname != "" && partname != null)
                 {
-                    search += "and M.partname like '%'+@partname+'%' ";
+                    search += "and AA.partname like '%'+@partname+'%' ";
                     dynamicParams.Add("@partname", partname);
                 }
                 if (partspec != "" && partspec != null)
                 {
-                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
                     dynamicParams.Add("@partspec", partspec);
                 }
                 if (stepname != "" && stepname != null)
                 {
-                    search += "and T.stepname like '%'+@stepname+'%' ";
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
                     dynamicParams.Add("@stepname", stepname);
                 }
                 if (defectcode != "" && defectcode != null)
                 {
-                    search += "and F.code like '%'+@defectcode+'%' ";
+                    search += "and AA.defect_code like '%'+@defectcode+'%' ";
                     dynamicParams.Add("@defectcode", defectcode);
                 }
                 if (defectname != "" && defectname != null)
                 {
-                    search += "and F.name like '%'+@defectname+'%' ";
+                    search += "and AA.defect_name like '%'+@defectname+'%' ";
                     dynamicParams.Add("@defectname", defectname);
                 }
                 if (reportname != "" && reportname != null)
                 {
-                    search += "and U.username like '%'+@reportname+'%' ";
+                    search += "and AA.username like '%'+@reportname+'%' ";
                     dynamicParams.Add("@reportname", reportname);
                 }
                 if (reportopendate != "" && reportopendate != null)
                 {
-                    search += "and A.lm_date between @reportopendate and @reportclosedate ";
+                    search += "and AA.lm_date between @reportopendate and @reportclosedate ";
                     dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                     dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                 }
@@ -751,16 +751,22 @@
                 search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select W.wkshp_code,L.org_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
-                            F.code as defect_code,F.name as defect_name,A.style,U.username as lm_user,A.lm_date   
+                var sql = @"select *  from(
+                            select W.wkshp_code,L.org_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
+                            A.defect_code,
+                            STUFF((SELECT ',' + P.name
+                                       FROM TDefect P
+                                       WHERE CHARINDEX(',' + P.code + ',', ',' + A.defect_code + ',') > 0
+                                       FOR XML PATH('')), 1, 1, '') AS defect_name,
+                            A.style,U.username as lm_user,A.lm_date   
                             from CSR_WorkRecord_Defect A
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code 
                             left  join TMateriel_Info M on A.partnumber=M.partcode
                             left  join TStep T on A.step_code=T.stepcode
-                            left  join TDefect F on A.defect_code=F.code
                             left  join TUser U on A.lm_user=U.usercode
                             left  join TK_Wrk_Man W on A.wo_code=W.wo_code
                             left join TOrganization L on W.wkshp_code=L.org_code
+                            ) as AA
                             where " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -788,52 +794,52 @@
             {
                 if (wkshopcode != "" && wkshopcode != null)
                 {
-                    search += "and W.wkshp_code=@wkshopcode ";
+                    search += "and AA.wkshp_code=@wkshopcode ";
                     dynamicParams.Add("@wkshopcode", wkshopcode);
                 }
                 if (wocode != "" && wocode != null)
                 {
-                    search += "and A.wo_code like '%'+@wocode+'%' ";
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                     dynamicParams.Add("@wocode", wocode);
                 }
                 if (partcode != "" && partcode != null)
                 {
-                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
                     dynamicParams.Add("@partcode", partcode);
                 }
                 if (partname != "" && partname != null)
                 {
-                    search += "and M.partname like '%'+@partname+'%' ";
+                    search += "and AA.partname like '%'+@partname+'%' ";
                     dynamicParams.Add("@partname", partname);
                 }
                 if (partspec != "" && partspec != null)
                 {
-                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
                     dynamicParams.Add("@partspec", partspec);
                 }
                 if (stepname != "" && stepname != null)
                 {
-                    search += "and T.stepname like '%'+@stepname+'%' ";
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
                     dynamicParams.Add("@stepname", stepname);
                 }
                 if (defectcode != "" && defectcode != null)
                 {
-                    search += "and F.code like '%'+@defectcode+'%' ";
+                    search += "and AA.code like '%'+@defectcode+'%' ";
                     dynamicParams.Add("@defectcode", defectcode);
                 }
                 if (defectname != "" && defectname != null)
                 {
-                    search += "and F.name like '%'+@defectname+'%' ";
+                    search += "and AA.name like '%'+@defectname+'%' ";
                     dynamicParams.Add("@defectname", defectname);
                 }
                 if (reportname != "" && reportname != null)
                 {
-                    search += "and U.username like '%'+@reportname+'%' ";
+                    search += "and AA.username like '%'+@reportname+'%' ";
                     dynamicParams.Add("@reportname", reportname);
                 }
                 if (reportopendate != "" && reportopendate != null)
                 {
-                    search += "and A.lm_date between @reportopendate and @reportclosedate ";
+                    search += "and AA.lm_date between @reportopendate and @reportclosedate ";
                     dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                     dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                 }
@@ -845,17 +851,25 @@
                 search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select W.wkshp_code as 杞﹂棿缂栫爜,L.org_name as 杞﹂棿鍚嶇О,A.wo_code as 宸ュ崟缂栧彿,M.partcode as 浜у搧缂栫爜,M.partname as 浜у搧鍚嶇О,M.partspec as 浜у搧瑙勬牸,T.stepcode as 宸ュ簭缂栫爜,
-                            T.stepname as 宸ュ簭鍚嶇О,P.plan_qty as 浠诲姟鏁伴噺,A.defect_qty as 涓嶈壇鏁伴噺,F.code as 缂洪櫡浠g爜,F.name as 缂洪櫡鍚嶇О,
-                            (case when A.style='B' then '鎶ュ伐' when A.style='S' then '鏀舵枡'  end) as '鎿嶄綔绫诲瀷',U.username as 鎿嶄綔浜哄憳,A.lm_date as 鎿嶄綔鏃堕棿  
+                var sql = @"select AA.wkshp_code as 杞﹂棿缂栫爜,AA.wkshp_name as 杞﹂棿鍚嶇О,AA.wo_code as 宸ュ崟缂栧彿,AA.partcode as 浜у搧缂栫爜,AA.partname as 浜у搧鍚嶇О,AA.partspec as 浜у搧瑙勬牸,AA.stepcode as 宸ュ簭缂栫爜,
+                            AA.stepname as 宸ュ簭鍚嶇О,AA.plan_qty as 浠诲姟鏁伴噺,AA.defect_qty as 涓嶈壇鏁伴噺,AA.defect_code as 缂洪櫡浠g爜,AA.defect_name as 缂洪櫡鍚嶇О,
+                            (case when AA.style='B' then '鎶ュ伐' when AA.style='S' then '鏀舵枡'  end) as '鎿嶄綔绫诲瀷',AA.username as 鎿嶄綔浜哄憳,AA.lm_date as 鎿嶄綔鏃堕棿  
+                            from(
+                            select W.wkshp_code,L.org_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
+                            A.defect_code,
+                            STUFF((SELECT ',' + P.name
+                                       FROM TDefect P
+                                       WHERE CHARINDEX(',' + P.code + ',', ',' + A.defect_code + ',') > 0
+                                       FOR XML PATH('')), 1, 1, '') AS defect_name,
+                            A.style,U.username,A.lm_date   
                             from CSR_WorkRecord_Defect A
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code 
                             left  join TMateriel_Info M on A.partnumber=M.partcode
                             left  join TStep T on A.step_code=T.stepcode
-                            left  join TDefect F on A.defect_code=F.code
                             left  join TUser U on A.lm_user=U.usercode
                             left  join TK_Wrk_Man W on A.wo_code=W.wo_code
-                            left  join TOrganization L on W.wkshp_code=L.org_code
+                            left join TOrganization L on W.wkshp_code=L.org_code
+                            ) as AA
                             where " + search;
                 DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                 data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
diff --git a/VueWebApi/Models/ReportDefectList.cs b/VueWebApi/Models/ReportDefectList.cs
new file mode 100644
index 0000000..17ce62d
--- /dev/null
+++ b/VueWebApi/Models/ReportDefectList.cs
@@ -0,0 +1,13 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace VueWebApi.Models
+{
+    public class ReportDefectList
+    {
+        public string badqty { get; set; }
+        public string defect_code { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
index bb3be2a..5c71494 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\MES姝f竻娌�</_PublishTargetUrl>
-    <History>True|2023-08-07T02:34:44.0844087Z;True|2023-08-07T10:28:56.2230477+08:00;True|2023-07-31T11:18:06.9546379+08:00;True|2023-07-03T10:38:22.8080444+08:00;True|2023-06-26T08:15:27.3611577+08:00;True|2023-06-25T15:36:41.8736654+08:00;True|2023-06-25T14:33:49.5287543+08:00;True|2023-06-13T10:24:59.6876648+08:00;</History>
+    <History>True|2023-08-16T08:52:02.7063729Z;True|2023-08-11T10:35:11.9236725+08:00;True|2023-08-07T10:34:44.0844087+08:00;True|2023-08-07T10:28:56.2230477+08:00;True|2023-07-31T11:18:06.9546379+08:00;True|2023-07-03T10:38:22.8080444+08:00;True|2023-06-26T08:15:27.3611577+08:00;True|2023-06-25T15:36:41.8736654+08:00;True|2023-06-25T14:33:49.5287543+08:00;True|2023-06-13T10:24:59.6876648+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="Areas/HelpPage/HelpPage.css">
@@ -750,13 +750,13 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>08/08/2023 10:17:11</publishTime>
+      <publishTime>08/16/2023 17:56:41</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>08/08/2023 10:17:11</publishTime>
+      <publishTime>08/16/2023 17:56:41</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>08/08/2023 10:17:11</publishTime>
+      <publishTime>08/16/2023 17:56:41</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index 03d1109..5ec871d 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -459,6 +459,7 @@
     <Compile Include="Models\ObjectDataCont.cs" />
     <Compile Include="Models\PartRout.cs" />
     <Compile Include="Models\ReportDefectHandle.cs" />
+    <Compile Include="Models\ReportDefectList.cs" />
     <Compile Include="Models\RoleUserSubmit.cs" />
     <Compile Include="Models\RoutEdit.cs" />
     <Compile Include="Models\ScanStartReportData.cs" />
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 5348747..bdf3970 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index 14c972c..f5e894a 100644
--- a/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferences.cache
+++ b/VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferences.cache
Binary files differ
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
index 590dd35..ff554c1 100644
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-16db473c7cd4741e2f1489189a448a193a8f084b
+37a4837cde60667993b76a4c5ab1a5593b5b37dc
diff --git a/VueWebApi/obj/Debug/VueWebApi.pdb b/VueWebApi/obj/Debug/VueWebApi.pdb
index d1eaa4b..391ed3b 100644
--- a/VueWebApi/obj/Debug/VueWebApi.pdb
+++ b/VueWebApi/obj/Debug/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 5348747..bdf3970 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
index c61b86c..1289638 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-b2c2c9f06449485157f9db847892f5917c4115f5
+a3528039de7d3c9a92bd6117d6e773fa8a56138f
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index 5348747..bdf3970 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3