Browse Source

核价系统:优化物料价格表上传逻辑

chen_yjin 1 day ago
parent
commit
863a8e001e

+ 5 - 1
JLHHJSvr/Com/ImportMtrlPriceByExcel.cs

@@ -18,5 +18,9 @@ namespace JLHHJSvr.Com
             return "ImportMtrlPriceByExcel";
         }
     }
-    public class ImportMtrlPriceByExcelResponse : LJResponse { }
+    public class ImportMtrlPriceByExcelResponse : LJResponse {
+        public List<string> messageList { get; set; }
+        public int successqty { get; set; }
+        public int allqty { get; set; }
+    }
 }

+ 29 - 18
JLHHJSvr/Excutor/ImportMtrlPriceByExcelExcutor.cs

@@ -81,7 +81,6 @@ namespace JLHHJSvr.Excutor
                 int k = 0;
                 foreach (ICell cell in headerRow.Cells)
                 {
-                    k++;
                     if(cell.ToString() == "类别" || cell.ToString() == "名称")
                     {
                         headers.Add(new HeaderPropetry { name = cell.ToString(), colIndex = k});
@@ -110,7 +109,7 @@ namespace JLHHJSvr.Excutor
                     }
                         
                     //}
-                    //k++;
+                    k++;
                 }
                 if (headers.Count <= 0 || priceHeaders.Count <= 0)
                 {
@@ -121,10 +120,11 @@ namespace JLHHJSvr.Excutor
                 {
                     try
                     {
-
-
+                        rslt.allqty = sheet.LastRowNum - 1;
+                        int successqty = 0;
+                        rslt.messageList = new List<string>();
                         for (int rowIndex = 1; rowIndex <= sheet.LastRowNum; rowIndex++)
-                         {
+                        {
                             row = sheet.GetRow(rowIndex);
                             if (row == null) continue;
 
@@ -146,28 +146,39 @@ namespace JLHHJSvr.Excutor
                             if (!string.IsNullOrEmpty(mtrltype) && !string.IsNullOrEmpty(mtrlname))
                             {
 
-                                foreach (var pricename in priceHeaders)
-                                {
-                                    var mtrlid = 0;
-                                    cmd.CommandText = @"Select isnull(u_mtrl_price.mtrlid,0) from u_mtrl_price 
+                                var mtrlid = 0;
+                                cmd.CommandText = @"Select isnull(u_mtrl_price.mtrlid,0) from u_mtrl_price 
                             where u_mtrl_price.mtrltype = (select isnull(mtrltypeid,0) from u_mtrltype where mtrltype = @mtrltype)
                             and u_mtrl_price.name = @mtrlname";
-                                    cmd.Parameters.Clear();
-                                    cmd.Parameters.AddWithValue("@mtrltype", mtrltype);
-                                    cmd.Parameters.AddWithValue("@mtrlname", mtrlname);
-                                    mtrlid = Convert.ToInt32(cmd.ExecuteScalar());
-                                    if (mtrlid == 0)
+                                cmd.Parameters.Clear();
+                                cmd.Parameters.AddWithValue("@mtrltype", mtrltype);
+                                cmd.Parameters.AddWithValue("@mtrlname", mtrlname);
+                                mtrlid = Convert.ToInt32(cmd.ExecuteScalar());
+                                if (mtrlid == 0)
+                                {
+                                    //throw new Exception(string.Format("类别:{0},名称:{1}的物料类别或物料不存在",mtrltype,mtrlname));
+                                    rslt.messageList.Add(string.Format("第【{0}】行, 类别:【{1}】,名称:【{2}】", rowIndex, mtrltype, mtrlname));
+                                    continue;
+                                }
+
+                                foreach (var pricename in priceHeaders)
+                                {
+                                    var _cell = row.GetCell(pricename.colIndex);
+                                    if (GetCellValue(_cell).ToString() == "")
                                     {
-                                        //throw new Exception(string.Format("类别:{0},名称:{1}的物料类别或物料不存在",mtrltype,mtrlname));
-                                        break;
+                                        continue;
                                     }
+
                                     var updatePrice = new u_mtrl_price_pricelist { mtrlid = mtrlid, pricelistid = pricename.keyId };
-                                    ICell cell = row.GetCell(pricename.colIndex);
-                                    updatePrice.price = Convert.ToDecimal(GetCellValue(cell));
+                                    //ICell cell = row.GetCell(pricename.colIndex);
+                                    updatePrice.price = Convert.ToDecimal(GetCellValue(_cell));
                                     DbSqlHelper.InsertOrUpdate(cmd, updatePrice, "price");
+                                    successqty++;
                                 }
                             }
                         }
+
+                        rslt.successqty = successqty;
                         cmd.Transaction.Commit();
                     }
                     catch (Exception ex)