浏览代码

核价后台: 1、修复床垫报价,主副规格保存时报错;
2、删除床垫报价时,如有副规格报价,将一并删除;
3、新增床垫报价保存时,主规格床网多区设置检测异常提示

chen_yjin 2 天之前
父节点
当前提交
477f9adbd5
共有 3 个文件被更改,包括 58 次插入10 次删除
  1. 5 0
      JLHHJSvr/Excutor/DelMattressExcutor.cs
  2. 11 6
      JLHHJSvr/Excutor/SaveMattressExcutor.cs
  3. 42 4
      JLHHJSvr/Helper/BedNetHelper.cs

+ 5 - 0
JLHHJSvr/Excutor/DelMattressExcutor.cs

@@ -67,6 +67,11 @@ namespace JLHHJSvr.Excutor
                                 throw new LJCommonException("因网络或其它原因,删除床垫报价操作失败!");
                             }
 
+                            cmd.CommandText = @"DELETE u_mattress WHERE parentid = @parentid";
+                            cmd.Parameters.Clear();
+                            cmd.Parameters.AddWithValue("@parentid", itemid);
+                            cmd.ExecuteNonQuery();
+
                         }
 
                         cmd.Transaction.Commit();

+ 11 - 6
JLHHJSvr/Excutor/SaveMattressExcutor.cs

@@ -150,11 +150,16 @@ namespace JLHHJSvr.Excutor
                                             _bednet.mattress_width = Convert.ToInt32(submx["mattress_width"]) - (request.mattress.mattress_width - _bednet.mattress_width);
                                             _bednet.mattress_length = Convert.ToInt32(submx["mattress_length"]) - (request.mattress.mattress_length - _bednet.mattress_length);
 
+                                            var _spring_qty_width = Convert.ToInt32(submx["spring_qty_width_" + bednetIndex]);
+                                            var _spring_qty_length = Convert.ToInt32(submx["spring_qty_length_" + bednetIndex]);
+                                            var _bednet_fork_qty = _bednet.fork_qty;
+                                            if (submx.Value<string>("bednet_fork_qty_" + bednetIndex) != null)
+                                            {
+                                                _bednet_fork_qty = Convert.ToInt32(submx["bednet_fork_qty_" + bednetIndex]);
+                                            }
+
                                             if (_bednetMx.Count > 0)
                                             {
-                                                var _spring_qty_width = Convert.ToInt32(submx["spring_qty_width_" + bednetIndex]);
-                                                var _spring_qty_length = Convert.ToInt32(submx["spring_qty_length_" + bednetIndex]);
-                                                var _bednet_fork_qty = Convert.ToInt32(submx["bednet_fork_qty_" + bednetIndex]);
 
                                                 cmd.CommandText = @"SELECT TOP 1 u_bednet.bednetid
                                                                             ,u_bednet_type.typename
@@ -260,9 +265,9 @@ namespace JLHHJSvr.Excutor
                                             if (oBednet.bednetid == null)
                                             {
                                                 oBednet = _bednet;
-                                                _bednetMx[0].spring_qty_width = Convert.ToInt32(submx["spring_qty_width_" + bednetIndex]);
-                                                _bednetMx[0].spring_qty_length = Convert.ToInt32(submx["spring_qty_length_" + bednetIndex]);
-                                                oBednet.fork_qty = Convert.ToInt32(submx["bednet_fork_qty_" + bednetIndex]);
+                                                _bednetMx[0].spring_qty_width = _spring_qty_width;
+                                                _bednetMx[0].spring_qty_length = _spring_qty_length;
+                                                oBednet.fork_qty = _bednet_fork_qty;
                                                 oBednet.bednetid = 0;
 
                                                 // 袋装网,多个分区时,重新分配弹簧

+ 42 - 4
JLHHJSvr/Helper/BedNetHelper.cs

@@ -2087,7 +2087,20 @@ namespace JLHHJSvr.Helper
 
             if (bednetMx.if_part == 1 && springList.Count > 0)
             {
-                var bednetArea = GetBedNetArea(Convert.ToInt32(bednet.duo_qv_str));
+
+                if (string.IsNullOrEmpty(bednet.duo_qv_str))
+                {
+                    throw new LJCommonException("主规格的床网多区设置有误,请重新设置");
+                    return;
+                }
+                var outputFields = @"u_bednet_area.areaid, u_bednet_area.areaname, u_bednet_area.area_1, u_bednet_area.area_2, u_bednet_area.area_3, u_bednet_area.area_4, u_bednet_area.area_5, u_bednet_area.area_6, u_bednet_area.area_7, u_bednet_area.area_8, u_bednet_area.area_9, u_bednet_area.area_10, u_bednet_area.area_11, u_bednet_area.area_12, u_bednet_area.area_13, u_bednet_area.area_14, u_bednet_area.area_15
+                                ,u_bednet_area.sponge_1 ,u_bednet_area.sponge_2 ,u_bednet_area.sponge_3 ,u_bednet_area.sponge_4 ,u_bednet_area.sponge_5 ,u_bednet_area.sponge_6 ,u_bednet_area.sponge_7 ,u_bednet_area.sponge_8 ,u_bednet_area.sponge_9 ,u_bednet_area.sponge_10 ,u_bednet_area.sponge_11 ,u_bednet_area.sponge_12 ,u_bednet_area.sponge_13 ,u_bednet_area.sponge_14 ,u_bednet_area.sponge_15";
+                var bedentArea = new u_bednet_area() { areaid = Convert.ToInt32(bednet.duo_qv_str) };
+                if (DbSqlHelper.SelectOne(cmd, bedentArea, outputFields) == 0) {
+                    // 无匹配终止
+                    throw new LJCommonException("主规格的床网多区设置有误,请重新设置");
+                    return;
+                }
                 var attrKey = "area_";
 
 
@@ -2097,15 +2110,40 @@ namespace JLHHJSvr.Helper
                     attrKey = "sponge_";
                 }
 
-                var bednetAreaDic = ToDictionary(bednetArea);
+                var bednetAreaDic = ToDictionary(bedentArea);
 
-                var rateList = GetDuoquVal(bednetAreaDic);
+                var rateList = GetDuoquVal(bednetAreaDic, attrKey);
 
+                var totality = rateList.Sum();
 
+                var index = 0;
+                var lengthValSum = 0;
+                var sum = bednetMx.spring_qty_length.Value;
                 foreach (var _spr in springList)
                 {
+                    var lengthVal = 0;
+                    if (rateList.Count >= index + 1)
+                    {
+                        if (index <= rateList.Count - 1)
+                        {
+                            if (index == rateList.Count - 1)
+                            {
+                                lengthVal = sum - lengthValSum;
+                            }
+                            else
+                            {
+                                lengthVal = (int)Math.Round((rateList[index] / totality) * sum);
+                                lengthValSum += lengthVal;
+                            }
+                        }
+                        else
+                        {
+                            lengthVal = 0;
+                        }
+                    }
                     _spr.spring_qty_width = bednetMx.spring_qty_width;
-                    //_spr.spring_qty_length = 
+                    _spr.spring_qty_length = lengthVal;
+                    index++;
                 }
             }
         }