Преглед изворни кода

补充床网报价遗漏信息

chen_yjin пре 1 месец
родитељ
комит
f3f89c5fef

+ 8 - 1
JLHHJSvr/DataStore/_Mapper_mtrl2.xml

@@ -2,10 +2,17 @@
 <select>
 	<selectstr>
 		select u_mtrl_price.mtrlid,
-		u_mtrl_price.name as mtrlname
+		u_mtrl_price.name as mtrlname,
+		ISNULL(u_mtrl_price_pricelist.price, 0) AS pricelistprice
 		from u_mtrl_price
+		LEFT JOIN u_mtrl_price_pricelist ON u_mtrl_price.mtrlid = u_mtrl_price_pricelist.mtrlid
 		where u_mtrl_price.mtrltype = 2
 	</selectstr>
+	<where>
+		<when notnull="@arg_bednetid">
+			u_mtrl_price_pricelist.pricelistid = @arg_pricelistid
+		</when>
+	</where>
 	<displayfields>
 	</displayfields>
 </select>

+ 13 - 7
JLHHJSvr/DataStore/web_bednet_mx_spring.xml

@@ -2,13 +2,16 @@
 <select>
 	<selectstr>
 		SELECT
-		bednetmx_partid,
-		u_bednetmx_spring.bednetmxid,
-		u_bednetmx_spring.springid,
-		ISNULL(vv_spring.name, '') as springname,
-		u_bednetmx_spring.spring_qty_width,
-		u_bednetmx_spring.spring_qty_length,
-		u_bednetmx_spring.fabrics1_mtrl_cost
+			bednetmx_partid,
+			u_bednetmx_spring.bednetmxid,
+			u_bednetmx_spring.springid,
+			ISNULL(vv_spring.name, '') as springname,
+			u_bednetmx_spring.spring_qty_width,
+			u_bednetmx_spring.spring_qty_length,
+			u_bednetmx_spring.fabrics1_mtrl_cost,
+			u_bednetmx_spring.spring_mtrl_cost,
+			u_bednetmx_spring.spring_mtrl_cost_replace_formula,
+			u_bednetmx_spring.spring_weight_replace_formula
 		From u_bednetmx_spring
 
 		left outer join u_bednetmx on u_bednetmx.bednetmxid = u_bednetmx_spring.bednetmxid
@@ -45,5 +48,8 @@
 			弹簧排列
 			个数-长
 		</field>
+		<field field="spring_mtrl_cost" usermode_notequals="1">弹簧材料总成本</field>
+		<field field="spring_mtrl_cost_replace_formula" usermode_notequals="1">弹簧材料总成本替换公式</field>
+		<field field="spring_weight_replace_formula" usermode_notequals="1">钢丝重量替换公式</field>
 	</displayfields>
 </select>

+ 111 - 39
JLHHJSvr/Helper/BedNetHelper.cs

@@ -160,7 +160,9 @@ namespace JLHHJSvr.Helper
                             mx.spring_mtrl_cost_replace_formula = mx.spring_mtrl_cost_replace_formula.Replace("【弹簧计算个数(长)】", $"(【弹簧计算个数(长)】 - {pocket_around_row})");
                         }
 
-                        mx.spring_mtrl_cost = Calculate(mx.spring_mtrl_cost_replace_formula, "弹簧材料总成本").DecimalValue;
+                        var rp_formula = "";
+                        mx.spring_mtrl_cost = Calculate(mx.spring_mtrl_cost_replace_formula, out rp_formula, "弹簧材料总成本").DecimalValue;
+                        mx.spring_mtrl_cost_replace_formula = rp_formula;
                         bednet.spring_mtrl_cost += mx.spring_mtrl_cost;
                     }
                     else
@@ -172,7 +174,9 @@ namespace JLHHJSvr.Helper
                             springItem.spring_mtrl_cost_replace_formula = bednet.spring_mtrl_formula;
                             CalSpringMtrlCol(bednet, mx, springItem);
 
-                            springItem.spring_mtrl_cost = Calculate(springItem.spring_mtrl_cost_replace_formula, "弹簧材料总成本").DecimalValue;
+                            var rp_formula = "";
+                            springItem.spring_mtrl_cost = Calculate(springItem.spring_mtrl_cost_replace_formula, out rp_formula, "弹簧材料总成本").DecimalValue;
+                            springItem.spring_mtrl_cost_replace_formula = rp_formula;
                             mx.spring_mtrl_cost += springItem.spring_mtrl_cost;
                             bednet.spring_mtrl_cost += springItem.spring_mtrl_cost;
                         }
@@ -193,8 +197,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.spring_hr_cost_replace_formula = bednet.spring_hr_formula;
 
-
-                    mx.spring_hr_cost = Calculate(mx.spring_hr_cost_replace_formula, "弹簧总人工成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.spring_hr_cost = Calculate(mx.spring_hr_cost_replace_formula, out rp_formula, "弹簧总人工成本").DecimalValue;
+                    mx.spring_hr_cost_replace_formula = rp_formula;
                     bednet.spring_hr_cost += mx.spring_hr_cost;
                     AddKeyValue("弹簧总人工成本", bednet.spring_hr_cost);
                     AddFormulaMxKeyValue("【弹簧总人工成本】", bednet.spring_hr_formula, true, 1);
@@ -208,7 +213,9 @@ namespace JLHHJSvr.Helper
 
                     CalSnakeCol(bednet,spring);
 
-                    bednet.snake_wire_mtrl_cost += Calculate(bednet.snake_wire_mtrl_cost_replace_formula, "蛇线材料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.snake_wire_mtrl_cost += Calculate(bednet.snake_wire_mtrl_cost_replace_formula, out rp_formula, "蛇线材料成本").DecimalValue;
+                    bednet.snake_wire_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("蛇线材料成本", bednet.snake_wire_mtrl_cost);
                     AddFormulaMxKeyValue("【蛇线材料成本】", bednet.snake_wire_mtrl_formula);
                 }
@@ -219,7 +226,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.pocket_around_spring_cost_replace_formula = bednet.pocket_around_spring_formula;
 
-                    mx.pocket_around_spring_cost = Calculate(mx.pocket_around_spring_cost_replace_formula, "四周口袋弹簧成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.pocket_around_spring_cost = Calculate(mx.pocket_around_spring_cost_replace_formula, out rp_formula, "四周口袋弹簧成本").DecimalValue;
+                    mx.pocket_around_spring_cost_replace_formula = rp_formula;
                     bednet.pocket_around_spring_cost += mx.pocket_around_spring_cost;
                     AddKeyValue("四周口袋弹簧成本", bednet.pocket_around_spring_cost);
                     AddFormulaMxKeyValue("【四周口袋弹簧成本】", bednet.pocket_around_spring_formula);
@@ -231,7 +240,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.pocket_around_fabrics_cost_replace_formula = bednet.pocket_around_fabrics_formula;
 
-                    mx.pocket_around_fabrics_cost = Calculate(mx.pocket_around_fabrics_cost_replace_formula, "四周口袋无纺布成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.pocket_around_fabrics_cost = Calculate(mx.pocket_around_fabrics_cost_replace_formula, out rp_formula, "四周口袋无纺布成本").DecimalValue;
+                    mx.pocket_around_fabrics_cost_replace_formula = rp_formula;
                     bednet.pocket_around_fabrics_cost += mx.pocket_around_fabrics_cost;
                     AddKeyValue("四周口袋无纺布成本", bednet.pocket_around_fabrics_cost);
                     AddFormulaMxKeyValue("【四周口袋无纺布成本】", bednet.pocket_around_fabrics_formula);
@@ -243,7 +254,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.hard_around_mtrl_cost_replace_formula = bednet.hard_around_mtrl_formula;
 
-                    mx.hard_around_mtrl_cost = Calculate(mx.hard_around_mtrl_cost_replace_formula, "四周加硬材料成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.hard_around_mtrl_cost = Calculate(mx.hard_around_mtrl_cost_replace_formula, out rp_formula, "四周加硬材料成本").DecimalValue;
+                    mx.hard_around_mtrl_cost_replace_formula = rp_formula;
                     bednet.hard_around_mtrl_cost += mx.hard_around_mtrl_cost;
                     AddKeyValue("四周加硬材料成本", bednet.hard_around_mtrl_cost);
                     AddFormulaMxKeyValue("【四周加硬材料成本】", bednet.hard_around_mtrl_formula);
@@ -255,7 +268,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.hard_around_hr_cost_replace_formula = bednet.hard_around_hr_formula;
 
-                    mx.hard_around_hr_cost = Calculate(mx.hard_around_hr_cost_replace_formula, "四周加硬人力成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.hard_around_hr_cost = Calculate(mx.hard_around_hr_cost_replace_formula, out rp_formula, "四周加硬人力成本").DecimalValue;
+                    mx.hard_around_hr_cost_replace_formula = rp_formula;
                     bednet.hard_around_hr_cost += mx.hard_around_hr_cost;
                     AddKeyValue("四周加硬人力成本", bednet.hard_around_hr_cost);
                     AddFormulaMxKeyValue("【四周加硬人力成本】", bednet.hard_around_hr_formula);
@@ -269,7 +284,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "入袋无纺布");
 
-                    mx.fabrics1_mtrl_cost = Calculate(mx.fabrics1_mtrl_cost_replace_formula, "入袋无纺布材料成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.fabrics1_mtrl_cost = Calculate(mx.fabrics1_mtrl_cost_replace_formula, out rp_formula, "入袋无纺布材料成本").DecimalValue;
+                    mx.fabrics1_mtrl_cost_replace_formula = rp_formula;
                     bednet.fabrics1_mtrl_cost += mx.fabrics1_mtrl_cost;
                     AddKeyValue("入袋无纺布材料成本", bednet.fabrics1_mtrl_cost);
                     AddFormulaMxKeyValue("【入袋无纺布材料成本】", bednet.fabrics1_mtrl_formula);
@@ -281,7 +298,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.glue_mtrl_cost_replace_formula = bednet.glue_mtrl_formula;
 
-                    bednet.glue_mtrl_cost += Calculate(mx.glue_mtrl_cost_replace_formula, "胶水材料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.glue_mtrl_cost += Calculate(mx.glue_mtrl_cost_replace_formula, out rp_formula, "胶水材料成本").DecimalValue;
+                    mx.glue_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("胶水材料成本", bednet.glue_mtrl_cost);
                     AddFormulaMxKeyValue("【胶水材料成本】", bednet.glue_mtrl_formula);
                 }
@@ -294,7 +313,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "底面无纺布");
 
-                    mx.fabrics2_mtrl_cost = Calculate(mx.fabrics2_mtrl_cost_replace_formula, "底面无纺布材料成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.fabrics2_mtrl_cost = Calculate(mx.fabrics2_mtrl_cost_replace_formula, out rp_formula, "底面无纺布材料成本").DecimalValue;
+                    mx.fabrics2_mtrl_cost_replace_formula = rp_formula;
                     bednet.fabrics2_mtrl_cost += mx.fabrics2_mtrl_cost;
                     AddKeyValue("底面无纺布材料成本", bednet.fabrics2_mtrl_cost);
                     AddFormulaMxKeyValue("【底面无纺布材料成本】", bednet.fabrics2_mtrl_formula);
@@ -306,7 +327,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.side_iron_hr_cost_replace_formula = bednet.side_iron_hr_formula;
 
-                    mx.side_iron_hr_cost = Calculate(mx.side_iron_hr_cost_replace_formula, "边铁人力成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.side_iron_hr_cost = Calculate(mx.side_iron_hr_cost_replace_formula, out rp_formula, "边铁人力成本").DecimalValue;
+                    mx.side_iron_hr_cost_replace_formula = rp_formula;
                     bednet.side_iron_hr_cost += mx.side_iron_hr_cost;
                     AddKeyValue("边铁人力成本", bednet.side_iron_hr_cost);
                     AddFormulaMxKeyValue("【边铁人力成本】", bednet.side_iron_hr_formula);
@@ -318,7 +341,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.side_iron_mtrl_cost_replace_formula = bednet.side_iron_mtrl_formula;
 
-                    mx.side_iron_mtrl_cost = Calculate(mx.side_iron_mtrl_cost_replace_formula, "边铁材料成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.side_iron_mtrl_cost = Calculate(mx.side_iron_mtrl_cost_replace_formula, out rp_formula, "边铁材料成本").DecimalValue;
+                    mx.side_iron_mtrl_cost_replace_formula = rp_formula;
                     bednet.side_iron_mtrl_cost += mx.side_iron_mtrl_cost;
                     AddKeyValue("边铁材料成本", bednet.side_iron_mtrl_cost);
                     AddFormulaMxKeyValue("【边铁材料成本】", bednet.side_iron_mtrl_formula);
@@ -330,7 +355,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.cnail_mtrl_cost_replace_formula = bednet.cnail_mtrl_formula;
 
-                    mx.cnail_mtrl_cost = Calculate(mx.cnail_mtrl_cost_replace_formula, "C钉/夹码材料成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.cnail_mtrl_cost = Calculate(mx.cnail_mtrl_cost_replace_formula, out rp_formula, "C钉/夹码材料成本").DecimalValue;
+                    mx.cnail_mtrl_cost_replace_formula = rp_formula;
                     bednet.cnail_mtrl_cost += mx.cnail_mtrl_cost;
                     AddKeyValue("C钉/夹码材料成本", bednet.cnail_mtrl_cost);
                     AddFormulaMxKeyValue("【C钉/夹码材料成本】", bednet.cnail_mtrl_formula);
@@ -342,7 +369,9 @@ namespace JLHHJSvr.Helper
                 {
                     mx.cnail_hr_cost_replace_formula = bednet.cnail_hr_formula;
 
-                    mx.cnail_hr_cost = Calculate(mx.cnail_hr_cost_replace_formula, "C钉/夹码人力成本").DecimalValue;
+                    var rp_formula = "";
+                    mx.cnail_hr_cost = Calculate(mx.cnail_hr_cost_replace_formula, out rp_formula, "C钉/夹码人力成本").DecimalValue;
+                    mx.cnail_hr_cost_replace_formula = rp_formula;
                     bednet.cnail_hr_cost += mx.cnail_hr_cost;
                     AddKeyValue("C钉/夹码人力成本", bednet.cnail_hr_cost);
                     AddFormulaMxKeyValue("【C钉/夹码人力成本】", bednet.cnail_hr_formula);
@@ -357,7 +386,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "海绵包边");
 
-                    bednet.sponge_mtrl_cost += Calculate(bednet.sponge_mtrl_cost_replace_formula, "海绵包边材料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.sponge_mtrl_cost += Calculate(bednet.sponge_mtrl_cost_replace_formula, out rp_formula, "海绵包边材料成本").DecimalValue;
+                    bednet.sponge_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("海绵包边材料成本", bednet.sponge_mtrl_cost);
                     AddFormulaMxKeyValue("【海绵包边材料成本】", bednet.sponge_mtrl_formula);
                 }
@@ -368,7 +399,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.sponge_hr_cost_replace_formula = bednet.sponge_hr_formula;
 
-                    bednet.sponge_hr_cost += Calculate(bednet.sponge_hr_cost_replace_formula, "海绵包边人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.sponge_hr_cost += Calculate(bednet.sponge_hr_cost_replace_formula, out rp_formula, "海绵包边人力成本").DecimalValue;
+                    bednet.sponge_hr_cost_replace_formula = rp_formula;
                     AddKeyValue("海绵包边人力成本", bednet.sponge_hr_cost);
                     AddFormulaMxKeyValue("【海绵包边人力成本】", bednet.sponge_hr_formula);
                 }
@@ -381,7 +414,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "填充海绵");
 
-                    bednet.sponge_mtrl_tc_cost += Calculate(bednet.sponge_mtrl_tc_cost_replace_formula, "填充海绵成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.sponge_mtrl_tc_cost += Calculate(bednet.sponge_mtrl_tc_cost_replace_formula, out rp_formula, "填充海绵成本").DecimalValue;
+                    bednet.sponge_mtrl_tc_cost_replace_formula = rp_formula;
                     AddKeyValue("填充海绵成本", bednet.sponge_mtrl_tc_cost);
                     AddFormulaMxKeyValue("【填充海绵成本】", bednet.sponge_mtrl_tc_formula);
                 }
@@ -394,7 +429,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "封边");
 
-                    bednet.edge_mtrl_cost += Calculate(bednet.edge_mtrl_cost_replace_formula, "封边材料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.edge_mtrl_cost += Calculate(bednet.edge_mtrl_cost_replace_formula, out rp_formula, "封边材料成本").DecimalValue;
+                    bednet.edge_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("封边材料成本", bednet.edge_mtrl_cost);
                     AddFormulaMxKeyValue("【封边材料成本】", bednet.edge_mtrl_formula);
                 }
@@ -405,7 +442,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.edge_hr_cost_replace_formula = bednet.edge_hr_formula;
 
-                    bednet.edge_hr_cost += Calculate(bednet.edge_hr_cost_replace_formula, "封边人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.edge_hr_cost += Calculate(bednet.edge_hr_cost_replace_formula, out rp_formula, "封边人力成本").DecimalValue;
+                    bednet.edge_hr_cost_replace_formula = rp_formula;
                     AddKeyValue("封边人力成本", bednet.edge_hr_cost);
                     AddFormulaMxKeyValue("【封边人力成本】", bednet.edge_hr_formula);
                 }
@@ -416,7 +455,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.fork_mtrl_cost_replace_formula = bednet.fork_mtrl_formula;
 
-                    bednet.fork_mtrl_cost += Calculate(bednet.fork_mtrl_cost_replace_formula, "弹叉材料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.fork_mtrl_cost += Calculate(bednet.fork_mtrl_cost_replace_formula, out rp_formula, "弹叉材料成本").DecimalValue;
+                    bednet.fork_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("弹叉材料成本", bednet.fork_mtrl_cost);
                     AddFormulaMxKeyValue("【弹叉材料成本】", bednet.fork_mtrl_formula);
                 }
@@ -427,7 +468,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.fork_hr_cost_replace_formula = bednet.fork_hr_formula;
 
-                    bednet.fork_hr_cost += Calculate(bednet.fork_hr_cost_replace_formula, "弹叉人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.fork_hr_cost += Calculate(bednet.fork_hr_cost_replace_formula, out rp_formula, "弹叉人力成本").DecimalValue;
+                    bednet.fork_hr_cost_replace_formula = rp_formula;
                     AddKeyValue("弹叉人力成本", bednet.fork_hr_cost);
                     AddFormulaMxKeyValue("【弹叉人力成本】", bednet.fork_hr_formula);
                 }
@@ -438,7 +481,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.rsorwa_mtrl_cost_replace_formula = bednet.rsorwa_mtrl_formula;
 
-                    bednet.rsorwa_mtrl_cost += Calculate(bednet.rsorwa_mtrl_cost_replace_formula, "胶条/包角材料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.rsorwa_mtrl_cost += Calculate(bednet.rsorwa_mtrl_cost_replace_formula, out rp_formula, "胶条/包角材料成本").DecimalValue;
+                    bednet.rsorwa_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("胶条/包角材料成本", bednet.rsorwa_mtrl_cost);
                     AddFormulaMxKeyValue("【胶条/包角材料成本】", bednet.rsorwa_mtrl_formula);
                 }
@@ -449,7 +494,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.rsorwa_hr_cost_replace_formula = bednet.rsorwa_hr_formula;
 
-                    bednet.rsorwa_hr_cost += Calculate(bednet.rsorwa_hr_cost_replace_formula, "胶条/包角人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.rsorwa_hr_cost += Calculate(bednet.rsorwa_hr_cost_replace_formula, out rp_formula, "胶条/包角人力成本").DecimalValue;
+                    bednet.rsorwa_hr_cost_replace_formula = rp_formula;
                     AddKeyValue("胶条/包角人力成本", bednet.rsorwa_hr_cost);
                     AddFormulaMxKeyValue("【胶条/包角人力成本】", bednet.rsorwa_hr_formula);
                 }
@@ -460,7 +507,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.sponge_drilling_hr_cost_replace_formula = bednet.sponge_drilling_hr_formula;
 
-                    bednet.sponge_drilling_hr_cost += Calculate(bednet.sponge_drilling_hr_cost_replace_formula, "海绵打孔人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.sponge_drilling_hr_cost += Calculate(bednet.sponge_drilling_hr_cost_replace_formula, out rp_formula, "海绵打孔人力成本").DecimalValue;
+                    bednet.sponge_drilling_hr_cost_replace_formula = rp_formula;
                     AddKeyValue("海绵打孔人力成本", bednet.sponge_drilling_hr_cost);
                     AddFormulaMxKeyValue("【海绵打孔人力成本】", bednet.sponge_drilling_hr_formula);
                 }
@@ -473,7 +522,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "上垫层");
 
-                    bednet.felt_mtrl_cost += Calculate(bednet.felt_mtrl_cost_replace_formula, "上垫层物料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.felt_mtrl_cost += Calculate(bednet.felt_mtrl_cost_replace_formula, out rp_formula, "上垫层物料成本").DecimalValue;
+                    bednet.felt_mtrl_cost_replace_formula = rp_formula;
                     AddKeyValue("上垫层物料成本", bednet.felt_mtrl_cost);
                     AddFormulaMxKeyValue("【上垫层物料成本】", bednet.felt_mtrl_formula);
                 }
@@ -486,7 +537,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "下垫层");
 
-                    bednet.felt_mtrl_x_cost += Calculate(bednet.felt_mtrl_x_cost_replace_formula, "下垫层物料成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.felt_mtrl_x_cost += Calculate(bednet.felt_mtrl_x_cost_replace_formula, out rp_formula, "下垫层物料成本").DecimalValue;
+                    bednet.felt_mtrl_x_cost_replace_formula = rp_formula;
                     AddKeyValue("下垫层物料成本", bednet.felt_mtrl_x_cost);
                     AddFormulaMxKeyValue("【下垫层物料成本】", bednet.felt_mtrl_formula);
                 }
@@ -497,7 +550,9 @@ namespace JLHHJSvr.Helper
                 {
                     bednet.felt_hr_cost_replace_formula = bednet.felt_hr_formula;
 
-                    bednet.felt_hr_cost += Calculate(bednet.felt_hr_cost_replace_formula, "上垫层人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.felt_hr_cost += Calculate(bednet.felt_hr_cost_replace_formula, out rp_formula, "上垫层人力成本").DecimalValue;
+                    bednet.felt_hr_cost_replace_formula = rp_formula;
                     AddKeyValue("上垫层人力成本", bednet.felt_hr_cost);
                     AddFormulaMxKeyValue("【上垫层人力成本】", bednet.felt_hr_formula);
                 }
@@ -510,7 +565,9 @@ namespace JLHHJSvr.Helper
 
                     CalSpringMtrlCol2(bednet, mx, springList, "下垫层");
 
-                    bednet.felt_hr_x_cost += Calculate(bednet.felt_hr_x_cost_replace_formula, "下垫层人力成本").DecimalValue;
+                    var rp_formula = "";
+                    bednet.felt_hr_x_cost += Calculate(bednet.felt_hr_x_cost_replace_formula, out rp_formula, "下垫层人力成本").DecimalValue;
+                    bednet.felt_hr_x_cost_replace_formula = rp_formula;
                     AddKeyValue("下垫层人力成本", bednet.felt_hr_x_cost);
                     AddFormulaMxKeyValue("【下垫层人力成本】", bednet.felt_hr_formula);
                 }
@@ -669,7 +726,9 @@ namespace JLHHJSvr.Helper
                             springItem.spring_weight_replace_formula = bednet.spring_weight_formula;
                             CalSpringMtrlCol(bednet, mx, springItem);
 
-                            bednet.spring_weight_qty += Calculate(springItem.spring_weight_replace_formula, "钢丝重量").DecimalValue;
+                            var rp_formula = "";
+                            bednet.spring_weight_qty += Calculate(springItem.spring_weight_replace_formula, out rp_formula, "钢丝重量").DecimalValue;
+                            springItem.spring_weight_replace_formula = rp_formula;
                         }
                     }
                     AddKeyValue("弹簧排列个数-宽", mx.spring_qty_width);
@@ -909,10 +968,10 @@ namespace JLHHJSvr.Helper
             AddKeyValue("口径CM", spring.caliber);
             AddKeyValue("圈数", spring.cyclenum);
             AddKeyValue("克重KG", spring.gram_weight);
-            AddKeyValue("卷排列宽", spring.roll_width);
-            AddKeyValue("卷排列长", spring.roll_length);
-            AddKeyValue("排列宽", spring.arrangement_width);
-            AddKeyValue("排列长", spring.arrangement_height);
+            AddKeyValue("卷排列宽", spring.roll_width == null ? 0 : spring.roll_width);
+            AddKeyValue("卷排列长", spring.roll_length == null ? 0 : spring.roll_length);
+            AddKeyValue("排列宽", spring.arrangement_width == null ? 0 : spring.arrangement_width);
+            AddKeyValue("排列长", spring.arrangement_height == null ? 0 : spring.arrangement_height);
         }
         private void InitReplaceMents(u_bednet bednet)
         {
@@ -1594,6 +1653,19 @@ namespace JLHHJSvr.Helper
                 throw new LJCommonException($"计算{name}公式错误!expression: {expression},exception: {ex.Message}");
             }
         }
+        private TData Calculate(string expression, out string expressionOut, string name = "")
+        {
+            FormatExpression(ref expression);
+            expressionOut = expression;
+            try
+            {
+                return LJExprParser.Parse(expression).Result;
+            }
+            catch (Exception ex)
+            {
+                throw new LJCommonException($"计算{name}公式错误!expression: {expression},exception: {ex.Message}");
+            }
+        }
 
         public static bool IsNumber(string input)
         {
@@ -2434,8 +2506,8 @@ namespace JLHHJSvr.Helper
         {
 
             // 默认方法
-            AddFormulaKeyValue("弹簧排列个数-宽", "if(【卷包】=1,round (【床垫宽】/(【中心直径】-【卷排列宽】),0),round (【床垫宽】/(【中心直径】-【排列宽】),0))");
-            AddFormulaKeyValue("弹簧排列个数-长", "if(【卷包】=1,round (【床垫长】/(【中心直径】-【卷排列长】),0),round (【床垫长】/(【中心直径】-【排列长】),0))");
+            AddFormulaKeyValue("弹簧排列个数-宽", "if(【卷包】=1,round(【床垫宽】/(【中心直径】-【卷排列宽】),0),round(【床垫宽】/(【中心直径】-【排列宽】),0))");
+            AddFormulaKeyValue("弹簧排列个数-长", "if(【卷包】=1,round(【床垫长】/(【中心直径】-【卷排列长】),0),round(【床垫长】/(【中心直径】-【排列长】),0))");
 
             InitReplaceMents(bednet);
 
@@ -2456,8 +2528,8 @@ namespace JLHHJSvr.Helper
 
 
                 #region 弹簧排列个数-长
-                mx.spring_qty_width = Convert.ToInt32(CalculateVarFormula("弹簧排列个数-宽").DecimalValue);
-                AddKeyValue("弹簧排列个数-长", mx.spring_qty_width);
+                mx.spring_qty_length = Convert.ToInt32(CalculateVarFormula("弹簧排列个数-长").DecimalValue);
+                AddKeyValue("弹簧排列个数-长", mx.spring_qty_length);
                 #endregion
             }
         }