Selaa lähdekoodia

后台:1、优化公式解析器对pos函数的解析

chen_yjin 5 kuukautta sitten
vanhempi
commit
1a85491ec1

+ 2 - 2
JLHHJSvr/BLL/BllHelper.cs

@@ -53,7 +53,7 @@ namespace JLHHJSvr.BLL
         public static int GetID(SqlCommand cmd, string key, int step = 1)
         {
             int rslt = 0;
-            cmd.CommandText = "UPDATE cd_idfactory SET idvalue = idvalue + @step, @curid = idvalue + @step WHERE idkey = @idkey";
+            cmd.CommandText = "UPDATE Sys_scIdentity SET ScIdentityno = ScIdentityno + @step, @curid = ScIdentityno + @step WHERE Tablename = @idkey";
             cmd.Parameters.Clear();
             cmd.Parameters.Add("@idkey", SqlDbType.VarChar).Value = key;
             cmd.Parameters.Add("@step", SqlDbType.Int).Value = step;
@@ -62,7 +62,7 @@ namespace JLHHJSvr.BLL
             if (nrows == 0)
             {
                 rslt = 10 + step;
-                cmd.CommandText = "INSERT INTO cd_idfactory(idkey, idvalue) VALUES(@idkey, @curid)";
+                cmd.CommandText = "INSERT INTO Sys_scIdentity(Tablename, ScIdentityno) VALUES(@idkey, @curid)";
                 cmd.Parameters.Clear();
                 cmd.Parameters.Add("@idkey", SqlDbType.VarChar).Value = key;
                 cmd.Parameters.Add("@curid", SqlDbType.Int).Value = rslt;

+ 1 - 1
JLHHJSvr/Com/Model/u_mtrl_price.cs

@@ -6,7 +6,7 @@ using System.Text;
 
 namespace JLHHJSvr.Com.Model
 {
-    [PK(new[] { "mtrltypeid" })]
+    [PK(new[] { "mtrlid" })]
     public sealed class u_mtrl_price
     {
         /// <summary>

+ 58 - 56
JLHHJSvr/Excutor/SaveBedNetExcutor.cs

@@ -257,19 +257,19 @@ namespace JLHHJSvr.Excutor
                 AddDictKeyValue($"【{netvar.varname}】", netvar.varvalue);
             }
 
-            foreach(var mx in mxlist)
+            foreach (var mx in mxlist)
             {
                 var spring = new u_spring() { springid = mx.springid };
                 DbSqlHelper.SelectOne(cmd, spring, "line_diameter,gram_weight,height,center_diameter");
 
                 // 处理相同公式部分
-                CalSameCol(cmd,mx,spring, dept);
+                CalSameCol(cmd, mx, spring, dept);
 
                 //计算 弹簧材料总成本
                 #region 计算 弹簧材料总成本 开始
                 if (!string.IsNullOrEmpty(bednet.spring_mtrl_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.spring_mtrl_formula);
+                    bednet.spring_mtrl_formula = ConvertToEnglishSymbols(bednet.spring_mtrl_formula);
 
                     mx.spring_mtrl_cost_replace_formula = bednet.spring_mtrl_formula;
                     if (mx.if_part == 0)
@@ -348,7 +348,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 弹簧人工总成本 开始
                 if (!string.IsNullOrEmpty(bednet.spring_hr_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.spring_hr_formula);
+                    bednet.spring_hr_formula = ConvertToEnglishSymbols(bednet.spring_hr_formula);
                     mx.spring_hr_cost_replace_formula = bednet.spring_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -373,7 +373,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 蛇线材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.spring_hr_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.snake_wire_mtrl_formula);
+                    bednet.snake_wire_mtrl_formula = ConvertToEnglishSymbols(bednet.snake_wire_mtrl_formula);
                     bednet.snake_wire_mtrl_cost_replace_formula = bednet.snake_wire_mtrl_formula;
 
                     CalSnakeCol(cmd, spring, dept);
@@ -398,7 +398,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 四周口袋弹簧成本 开始
                 if (!string.IsNullOrEmpty(bednet.pocket_around_spring_formula) && mx.if_pocket_around > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.pocket_around_spring_formula);
+                    bednet.pocket_around_spring_formula = ConvertToEnglishSymbols(bednet.pocket_around_spring_formula);
                     mx.pocket_around_spring_cost_replace_formula = bednet.pocket_around_spring_formula;
 
                     foreach (var replacement in replacements)
@@ -422,7 +422,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 四周口袋无纺布成本 开始
                 if (!string.IsNullOrEmpty(bednet.pocket_around_fabrics_formula) && mx.if_pocket_around > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.pocket_around_fabrics_formula);
+                    bednet.pocket_around_fabrics_formula = ConvertToEnglishSymbols(bednet.pocket_around_fabrics_formula);
                     mx.pocket_around_fabrics_cost_replace_formula = bednet.pocket_around_fabrics_formula;
 
                     foreach (var replacement in replacements)
@@ -446,7 +446,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 四周加硬材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.hard_around_mtrl_formula) && mx.if_hard_around > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.hard_around_mtrl_formula);
+                    bednet.hard_around_mtrl_formula = ConvertToEnglishSymbols(bednet.hard_around_mtrl_formula);
                     mx.hard_around_mtrl_cost_replace_formula = bednet.hard_around_mtrl_formula;
 
                     foreach (var replacement in replacements)
@@ -470,7 +470,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 四周加硬人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.hard_around_hr_formula) && mx.if_hard_around > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.hard_around_hr_formula);
+                    bednet.hard_around_hr_formula = ConvertToEnglishSymbols(bednet.hard_around_hr_formula);
                     mx.hard_around_hr_cost_replace_formula = bednet.hard_around_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -494,7 +494,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 入袋无纺布材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.hard_around_hr_formula) && bednetType.typename.IndexOf("袋装网") > -1 && mx.fabrics1_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fabrics1_mtrl_formula);
+                    bednet.fabrics1_mtrl_formula = ConvertToEnglishSymbols(bednet.fabrics1_mtrl_formula);
                     mx.fabrics1_mtrl_cost_replace_formula = bednet.fabrics1_mtrl_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "入袋无纺布");
@@ -520,7 +520,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 胶水材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.glue_mtrl_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.glue_mtrl_formula);
+                    bednet.glue_mtrl_formula = ConvertToEnglishSymbols(bednet.glue_mtrl_formula);
                     mx.glue_mtrl_cost_replace_formula = bednet.glue_mtrl_formula;
 
                     foreach (var replacement in replacements)
@@ -543,7 +543,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 底面无纺布材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.hard_around_hr_formula) && bednetType.typename.IndexOf("袋装网") > -1 && mx.fabrics2_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fabrics2_mtrl_formula);
+                    bednet.fabrics2_mtrl_formula = ConvertToEnglishSymbols(bednet.fabrics2_mtrl_formula);
                     mx.fabrics2_mtrl_cost_replace_formula = bednet.fabrics2_mtrl_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "底面无纺布");
@@ -569,7 +569,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 边铁人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.side_iron_hr_formula) && bednet.if_side_iron == 1 && mx.if_side_iron > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.side_iron_hr_formula);
+                    bednet.side_iron_hr_formula = ConvertToEnglishSymbols(bednet.side_iron_hr_formula);
                     mx.side_iron_hr_cost_replace_formula = bednet.side_iron_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -593,7 +593,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 边铁材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.side_iron_mtrl_formula) && bednet.if_side_iron == 1 && mx.if_side_iron > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.side_iron_mtrl_formula);
+                    bednet.side_iron_mtrl_formula = ConvertToEnglishSymbols(bednet.side_iron_mtrl_formula);
                     mx.side_iron_mtrl_cost_replace_formula = bednet.side_iron_mtrl_formula;
 
                     foreach (var replacement in replacements)
@@ -617,7 +617,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 C钉/夹码材料 开始
                 if (!string.IsNullOrEmpty(bednet.cnail_mtrl_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.cnail_mtrl_formula);
+                    bednet.cnail_mtrl_formula = ConvertToEnglishSymbols(bednet.cnail_mtrl_formula);
                     mx.cnail_mtrl_cost_replace_formula = bednet.cnail_mtrl_formula;
 
                     foreach (var replacement in replacements)
@@ -641,7 +641,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 C钉/夹码人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.cnail_hr_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.cnail_hr_formula);
+                    bednet.cnail_hr_formula = ConvertToEnglishSymbols(bednet.cnail_hr_formula);
                     mx.cnail_hr_cost_replace_formula = bednet.cnail_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -665,7 +665,8 @@ namespace JLHHJSvr.Excutor
                 #region  计算 海绵包边材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.sponge_mtrl_formula) && bednet.sponge_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.sponge_mtrl_formula);
+
+                    bednet.sponge_mtrl_formula = ConvertToEnglishSymbols(bednet.sponge_mtrl_formula);
                     bednet.sponge_mtrl_cost_replace_formula = bednet.sponge_mtrl_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "海绵包边");
@@ -690,7 +691,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 海绵包边人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.sponge_hr_formula) && bednet.sponge_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.sponge_hr_formula);
+                    bednet.sponge_hr_formula = ConvertToEnglishSymbols(bednet.sponge_hr_formula);
                     bednet.sponge_hr_cost_replace_formula = bednet.sponge_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -713,7 +714,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 填充海绵成本 开始
                 if (!string.IsNullOrEmpty(bednet.sponge_mtrl_tc_formula) && bednet.sponge_tc_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.sponge_mtrl_tc_formula);
+                    bednet.sponge_mtrl_tc_formula = ConvertToEnglishSymbols(bednet.sponge_mtrl_tc_formula);
                     bednet.sponge_mtrl_tc_cost_replace_formula = bednet.sponge_mtrl_tc_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "填充海绵");
@@ -738,7 +739,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 封边材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.edge_mtrl_formula) && bednet.edge_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.edge_mtrl_formula);
+                    bednet.edge_mtrl_formula = ConvertToEnglishSymbols(bednet.edge_mtrl_formula);
                     bednet.edge_mtrl_cost_replace_formula = bednet.edge_mtrl_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "封边");
@@ -763,7 +764,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 封边人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.edge_hr_formula) && bednet.edge_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.edge_hr_formula);
+                    bednet.edge_hr_formula = ConvertToEnglishSymbols(bednet.edge_hr_formula);
                     bednet.edge_hr_cost_replace_formula = bednet.edge_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -786,7 +787,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 弹叉材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.fork_mtrl_formula) && bednet.fork_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fork_mtrl_formula);
+                    bednet.fork_mtrl_formula = ConvertToEnglishSymbols(bednet.fork_mtrl_formula);
                     bednet.fork_mtrl_cost_replace_formula = bednet.fork_mtrl_formula;
 
                     foreach (var replacement in replacements)
@@ -809,7 +810,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 弹叉人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.fork_hr_formula) && bednet.fork_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fork_hr_formula);
+                    bednet.fork_hr_formula = ConvertToEnglishSymbols(bednet.fork_hr_formula);
                     bednet.fork_hr_cost_replace_formula = bednet.fork_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -832,7 +833,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 胶条/包角材料成本 开始
                 if (!string.IsNullOrEmpty(bednet.rsorwa_mtrl_formula) && bednet.if_rsorwa == 1)
                 {
-                    ConvertToEnglishSymbols(bednet.rsorwa_mtrl_formula);
+                    bednet.rsorwa_mtrl_formula = ConvertToEnglishSymbols(bednet.rsorwa_mtrl_formula);
                     bednet.rsorwa_mtrl_cost_replace_formula = bednet.rsorwa_mtrl_formula;
 
                     foreach (var replacement in replacements)
@@ -855,7 +856,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 胶条/包角人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.rsorwa_hr_formula) && bednet.if_rsorwa == 1)
                 {
-                    ConvertToEnglishSymbols(bednet.rsorwa_hr_formula);
+                    bednet.rsorwa_hr_formula = ConvertToEnglishSymbols(bednet.rsorwa_hr_formula);
                     bednet.rsorwa_hr_cost_replace_formula = bednet.rsorwa_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -878,7 +879,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 海绵打孔人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.sponge_drilling_hr_formula) && bednet.if_sponge_drilling == 1)
                 {
-                    ConvertToEnglishSymbols(bednet.sponge_drilling_hr_formula);
+                    bednet.sponge_drilling_hr_formula = ConvertToEnglishSymbols(bednet.sponge_drilling_hr_formula);
                     bednet.sponge_drilling_hr_cost_replace_formula = bednet.sponge_drilling_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -901,7 +902,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 上垫层物料成本 开始
                 if (!string.IsNullOrEmpty(bednet.felt_mtrl_formula) && bednet.felt_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.felt_mtrl_formula);
+                    bednet.felt_mtrl_formula = ConvertToEnglishSymbols(bednet.felt_mtrl_formula);
                     bednet.felt_mtrl_cost_replace_formula = bednet.felt_mtrl_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "上垫层");
@@ -926,7 +927,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 下垫层物料成本 开始
                 if (!string.IsNullOrEmpty(bednet.felt_mtrl_formula) && bednet.felt_x_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.felt_mtrl_formula);
+                    bednet.felt_mtrl_formula = ConvertToEnglishSymbols(bednet.felt_mtrl_formula);
                     bednet.felt_mtrl_x_cost_replace_formula = bednet.felt_mtrl_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "下垫层");
@@ -951,7 +952,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 上垫层人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.felt_hr_formula) && bednet.felt_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.felt_hr_formula);
+                    bednet.felt_hr_formula = ConvertToEnglishSymbols(bednet.felt_hr_formula);
                     bednet.felt_hr_cost_replace_formula = bednet.felt_hr_formula;
 
                     foreach (var replacement in replacements)
@@ -974,7 +975,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 下垫层人力成本 开始
                 if (!string.IsNullOrEmpty(bednet.felt_hr_formula) && bednet.felt_x_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.felt_hr_formula);
+                    bednet.felt_hr_formula = ConvertToEnglishSymbols(bednet.felt_hr_formula);
                     bednet.felt_hr_x_cost_replace_formula = bednet.felt_hr_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "下垫层");
@@ -999,9 +1000,9 @@ namespace JLHHJSvr.Excutor
                 #region  计算 包装总成本 开始
                 if (!string.IsNullOrEmpty(bednet.packet_mtrl_formula) && !string.IsNullOrEmpty(bednet.packtype))
                 {
-                    ConvertToEnglishSymbols(bednet.packet_mtrl_formula);
+                    bednet.packet_mtrl_formula = ConvertToEnglishSymbols(bednet.packet_mtrl_formula);
                     bednet.packet_mtrl_cost_replace_formula = bednet.packet_mtrl_formula;
-                    bednet.packet_mtrl_cost_replace_formula = ReplaceWith(bednet.packet_mtrl_cost_replace_formula, "@@","");
+                    bednet.packet_mtrl_cost_replace_formula = ReplaceWith(bednet.packet_mtrl_cost_replace_formula, "@@", "");
 
                     foreach (var replacement in replacements)
                     {
@@ -1023,7 +1024,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 包装人工成本 开始
                 if (!string.IsNullOrEmpty(bednet.packet_hr_formula) && !string.IsNullOrEmpty(bednet.packtype))
                 {
-                    ConvertToEnglishSymbols(bednet.packet_hr_formula);
+                    bednet.packet_hr_formula = ConvertToEnglishSymbols(bednet.packet_hr_formula);
                     bednet.packet_hr_cost_replace_formula = bednet.packet_hr_formula;
                     bednet.packet_hr_cost_replace_formula = ReplaceWith(bednet.packet_hr_cost_replace_formula, "@@", "");
 
@@ -1136,7 +1137,7 @@ namespace JLHHJSvr.Excutor
                 #region 计算 钢丝重量 开始
                 if (!string.IsNullOrEmpty(bednet.spring_weight_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.spring_weight_formula);
+                    bednet.spring_weight_formula = ConvertToEnglishSymbols(bednet.spring_weight_formula);
 
                     mx.spring_weight_replace_formula = bednet.spring_weight_formula;
                     if (mx.if_part == 0)
@@ -1187,7 +1188,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 边铁重量 开始
                 if (!string.IsNullOrEmpty(bednet.side_iron_weight_formula) && bednet.if_side_iron == 1 && mx.if_side_iron > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.side_iron_weight_formula);
+                    bednet.side_iron_weight_formula = ConvertToEnglishSymbols(bednet.side_iron_weight_formula);
                     bednet.side_iron_weight_replace_formula = bednet.side_iron_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1210,7 +1211,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 四周加硬重量 开始
                 if (!string.IsNullOrEmpty(bednet.hard_around_weight_formula) && mx.if_hard_around > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.hard_around_weight_formula);
+                    bednet.hard_around_weight_formula = ConvertToEnglishSymbols(bednet.hard_around_weight_formula);
                     bednet.hard_around_weight_replace_formula = bednet.hard_around_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1233,7 +1234,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 入袋无纺布重量 开始
                 if (!string.IsNullOrEmpty(bednet.fabrics1_weight_formula) && bednetType.typename.IndexOf("袋装网") > -1 && mx.fabrics1_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fabrics1_weight_formula);
+                    bednet.fabrics1_weight_formula = ConvertToEnglishSymbols(bednet.fabrics1_weight_formula);
                     bednet.fabrics1_weight_replace_formula = bednet.fabrics1_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1256,7 +1257,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 面底无纺布重量 开始
                 if (!string.IsNullOrEmpty(bednet.fabrics2_weight_formula) && bednetType.typename.IndexOf("袋装网") > -1 && mx.fabrics2_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fabrics2_weight_formula);
+                    bednet.fabrics2_weight_formula = ConvertToEnglishSymbols(bednet.fabrics2_weight_formula);
                     bednet.fabrics2_weight_replace_formula = bednet.fabrics2_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1280,7 +1281,7 @@ namespace JLHHJSvr.Excutor
                 string felt_weight_formula_replace_formula = "";
                 if (!string.IsNullOrEmpty(bednet.felt_mtrl_formula) && bednet.felt_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.felt_weight_formula);
+                    bednet.felt_weight_formula = ConvertToEnglishSymbols(bednet.felt_weight_formula);
                     felt_weight_formula_replace_formula = bednet.felt_weight_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "上垫层");
@@ -1306,7 +1307,7 @@ namespace JLHHJSvr.Excutor
                 string felt_x_weight_formula_replace_formula = "";
                 if (!string.IsNullOrEmpty(bednet.felt_weight_formula) && bednet.felt_x_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.felt_weight_formula);
+                    bednet.felt_weight_formula = ConvertToEnglishSymbols(bednet.felt_weight_formula);
                     felt_x_weight_formula_replace_formula = bednet.felt_weight_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "下垫层");
@@ -1336,7 +1337,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 C钉/夹码重量 开始
                 if (!string.IsNullOrEmpty(bednet.cnail_weight_formula))
                 {
-                    ConvertToEnglishSymbols(bednet.cnail_weight_formula);
+                    bednet.cnail_weight_formula = ConvertToEnglishSymbols(bednet.cnail_weight_formula);
                     bednet.cnail_weight_replace_formula = bednet.cnail_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1359,7 +1360,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 海绵包边重量 开始
                 if (!string.IsNullOrEmpty(bednet.sponge_weight_formula) && bednet.sponge_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.sponge_weight_formula);
+                    bednet.sponge_weight_formula = ConvertToEnglishSymbols(bednet.sponge_weight_formula);
                     bednet.sponge_weight_replace_formula = bednet.sponge_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1382,7 +1383,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 填充海绵重量 开始
                 if (!string.IsNullOrEmpty(bednet.sponge_weight_tc_formula) && bednet.sponge_tc_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.sponge_weight_tc_formula);
+                    bednet.sponge_weight_tc_formula = ConvertToEnglishSymbols(bednet.sponge_weight_tc_formula);
                     bednet.sponge_weight_tc_replace_formula = bednet.sponge_weight_tc_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "填充海绵");
@@ -1407,7 +1408,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 封边材料重量 开始
                 if (!string.IsNullOrEmpty(bednet.edge_weight_formula) && bednet.edge_mtrlid > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.edge_weight_formula);
+                    bednet.edge_weight_formula = ConvertToEnglishSymbols(bednet.edge_weight_formula);
                     bednet.edge_weight_replace_formula = bednet.edge_weight_formula;
 
                     CalSpringMtrlCol2(cmd, bednet, mx, dept, "封边");
@@ -1432,7 +1433,7 @@ namespace JLHHJSvr.Excutor
                 #region  计算 弹叉材料重量 开始
                 if (!string.IsNullOrEmpty(bednet.fork_weight_formula) && bednet.fork_qty > 0)
                 {
-                    ConvertToEnglishSymbols(bednet.fork_weight_formula);
+                    bednet.fork_weight_formula = ConvertToEnglishSymbols(bednet.fork_weight_formula);
                     bednet.fork_weight_replace_formula = bednet.fork_weight_formula;
 
                     foreach (var replacement in replacements)
@@ -1496,7 +1497,8 @@ namespace JLHHJSvr.Excutor
             if (!replacements.ContainsKey(key))
             {
                 replacements.Add(key, value);
-            } else if(isReplace)
+            }
+            else if (isReplace)
             {
                 replacements[key] = value;
             }
@@ -1528,7 +1530,7 @@ namespace JLHHJSvr.Excutor
                 AddDictKeyValue("【床网高】", mx.bednet_height);
             }
 
-            if(spring.height > 0)
+            if (spring.height > 0)
             {
                 AddDictKeyValue("【口袋弹簧高度】", spring.height);
             }
@@ -1623,20 +1625,20 @@ namespace JLHHJSvr.Excutor
         /// </summary>
         /// <param name="cmd"></param>
         /// <param name="mx"></param>
-        private void CalSpringMtrlCol2(SqlCommand cmd, u_bednet bednet,u_bednetmx mx, u_dept dept,string type)
+        private void CalSpringMtrlCol2(SqlCommand cmd, u_bednet bednet, u_bednetmx mx, u_dept dept, string type)
         {
             var spring = new u_spring() { springid = mx.springid };
             DbSqlHelper.SelectOne(cmd, spring, "line_diameter,gram_weight,center_diameter");
 
             #region 计算 底面无纺布 开始
             //计算 上下无纺布方数 =(B4+C4)*(B4+D4)/10000
-            if("底面无纺布".Equals(type) && mx.fabrics2_mtrlid > 0)
+            if ("底面无纺布".Equals(type) && mx.fabrics2_mtrlid > 0)
             {
                 decimal fabrics = (mx.bednet_height.Value + bednet.mattress_width.Value) * (mx.bednet_height.Value + bednet.mattress_length.Value) / 10000;
                 AddDictKeyValue("【上下无纺布方数】", fabrics);
 
                 decimal fabrics_price = getMtrlPrice(cmd, 2, dept.pricelistid, mx.fabrics2_mtrlid.Value);
-                if(fabrics_price > 0) AddDictKeyValue("【无纺布单价】", fabrics_price);
+                if (fabrics_price > 0) AddDictKeyValue("【无纺布单价】", fabrics_price);
             }
             #endregion 计算 底面无纺布 结束
 
@@ -1658,7 +1660,7 @@ namespace JLHHJSvr.Excutor
             #endregion 计算 四周加硬弹簧 结束
 
             #region 计算 海绵包边 开始
-            if("海绵包边".Equals(type) && bednet.sponge_thickness.Value > 0 && bednet.sponge_mtrlid.Value > 0)
+            if ("海绵包边".Equals(type) && bednet.sponge_thickness.Value > 0 && bednet.sponge_mtrlid.Value > 0)
             {
                 var mtrl_price = new u_mtrl_price() { mtrlid = bednet.sponge_mtrlid };
                 DbSqlHelper.SelectOne(cmd, mtrl_price, "name");
@@ -1668,7 +1670,7 @@ namespace JLHHJSvr.Excutor
                 AddDictKeyValue("【裥棉厚度】", bednet.sponge_thickness.Value);
                 AddDictKeyValue("【海绵厚度】", bednet.sponge_thickness.Value);
 
-                if(bednet.sponge_height.Value > 0)
+                if (bednet.sponge_height.Value > 0)
                 {
                     AddDictKeyValue("【海绵高】", bednet.sponge_height.Value);
                 }
@@ -1730,7 +1732,7 @@ namespace JLHHJSvr.Excutor
             #endregion 计算 填充海绵 结束
 
             #region 计算 封边 开始
-            if("封边".Equals(type) && bednet.edge_mtrlid > 0)
+            if ("封边".Equals(type) && bednet.edge_mtrlid > 0)
             {
                 AddDictKeyValue("【有边铁】", mx.if_side_iron);
 
@@ -1750,7 +1752,7 @@ namespace JLHHJSvr.Excutor
                         decimal edge_price = Convert.ToDecimal(reader["price"]);
                         decimal edge_weight = Convert.ToDecimal(reader["gram_weight"]);
 
-                        if(edge_price > 0) AddDictKeyValue("【毡单价】", edge_price);
+                        if (edge_price > 0) AddDictKeyValue("【毡单价】", edge_price);
                         if (edge_weight > 0) AddDictKeyValue("【毡克重】", edge_weight);
                     }
                 }
@@ -1816,7 +1818,7 @@ namespace JLHHJSvr.Excutor
             #endregion 计算 下垫层 结束
         }
 
-        private void CalSnakeCol(SqlCommand cmd,u_spring spring, u_dept dept)
+        private void CalSnakeCol(SqlCommand cmd, u_spring spring, u_dept dept)
         {
             #region 替换蛇线单价  snake_wire_diameter
             cmd.CommandText = @"SELECT TOP 1 isnull(u_mtrl_price_pricelist.price, 0) AS price
@@ -1848,7 +1850,7 @@ namespace JLHHJSvr.Excutor
             #endregion
         }
 
-        private decimal getMtrlPrice(SqlCommand cmd,int mtrltype,int pricelistid,int mtrlid)
+        private decimal getMtrlPrice(SqlCommand cmd, int mtrltype, int pricelistid, int mtrlid)
         {
             decimal price = 0;
             cmd.CommandText = @"SELECT TOP 1 isnull(u_mtrl_price_pricelist.price, 0) AS price

+ 42 - 1
JLHHJSvr/LJFrameWork/Tools/LJExprParser.cs

@@ -113,7 +113,48 @@ namespace JLHHJSvr.LJFramework.Tools
                 var calVal = p1.IndexOf(p2) + 1;
                 rslt = rslt.Replace(match.Value, calVal.ToString());
             }
+            reg = new Regex("pos[(](\\s*)'([^']*)'(\\s*),(\\s*)'([^']*)'(\\s*),(\\s*)(\\d+)(\\s*)[)]");
+            while (true)
+            {
+                var match = reg.Match(rslt);
+                if (!match.Success)
+                {
+                    break;
+                }
+                var p1 = match.Groups[2].Value;
+                var p2 = match.Groups[5].Value;
+                var p3 = Convert.ToInt32(match.Groups[8].Value);
+                var calVal = p1.IndexOf(p2, p3 - 1) + 1;
+                rslt = rslt.Replace(match.Value, calVal.ToString());
+            }
+            reg = new Regex("pos[(](\\s*)\"([^\"]*)\"(\\s*),(\\s*)\"([^\"]*)\"(\\s*)[)]");
+            while (true)
+            {
+                var match = reg.Match(rslt);
+                if (!match.Success)
+                {
+                    break;
+                }
+                var p1 = match.Groups[2].Value;
+                var p2 = match.Groups[5].Value;
+                var calVal = p1.IndexOf(p2) + 1;
+                rslt = rslt.Replace(match.Value, calVal.ToString());
+            }
+            reg = new Regex("pos[(](\\s*)\"([^\"]*)\"(\\s*),(\\s*)\"([^\"]*)\"(\\s*),(\\s*)(\\d+)(\\s*)[)]");
+            while (true)
+            {
+                var match = reg.Match(rslt);
+                if (!match.Success)
+                {
+                    break;
+                }
+                var p1 = match.Groups[2].Value;
+                var p2 = match.Groups[5].Value;
+                var p3 = Convert.ToInt32(match.Groups[8].Value);
+                var calVal = p1.IndexOf(p2, p3 - 1) + 1;
+                rslt = rslt.Replace(match.Value, calVal.ToString());
+            }
             return rslt;
-        }    
+        }
     }
 }