浏览代码

Merge branch 'Release2.3' of http://36.129.163.148:10080/gaoshipeng/OTS2_0 into Release2.3

CXS 3 年之前
父节点
当前提交
20697a7395

+ 41 - 18
OTSCPP/OTSClassifyEngine/InclutionEngine/OTSClassifyEng.cpp

@@ -75,7 +75,7 @@ namespace OTSClassifyEngine
 		{// identified, return TRUE
 			a_nIncId = nIncId;
 			IDENTIFIED_INC_GRP_ID grpid;
-			GroupClassify(listElChemsIncNoFe, grpid);
+			GroupClassify(a_pPartSTDData,listElChemsIncNoFe,nIncId, grpid);
 			a_GrpId = (int)grpid;
 			return TRUE;
 		}
@@ -94,7 +94,7 @@ namespace OTSClassifyEngine
 			// identified, return TRUE
 			a_nIncId = nIncId;
 			IDENTIFIED_INC_GRP_ID grpid;
-			GroupClassify(listElChemsIncNoFe, grpid);
+			GroupClassify(a_pPartSTDData,listElChemsIncNoFe,nIncId, grpid);
 			a_GrpId = (int)grpid;
 			return TRUE;
 		}
@@ -102,7 +102,7 @@ namespace OTSClassifyEngine
 		// can't identify this inclusion
 		a_nIncId = (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED;
 		IDENTIFIED_INC_GRP_ID grpid;
-		GroupClassify(listElChemsIncNoFe, grpid);
+		GroupClassify(a_pPartSTDData,listElChemsIncNoFe,nIncId, grpid);
 		a_GrpId = (int)grpid;
 		return TRUE;
 	}
@@ -348,54 +348,75 @@ namespace OTSClassifyEngine
 		return TRUE;
 	}
 
-	BOOL COTSClassifyEng::GroupClassify(CElementChemistriesList& a_listElChemsIncNoFe, IDENTIFIED_INC_GRP_ID& a_GrpId)
+	BOOL COTSClassifyEng::GroupClassify(CInclutionSTDDataPtr a_pPartSTDData,CElementChemistriesList& a_listElChemsIncNoFe,int incId, IDENTIFIED_INC_GRP_ID& a_GrpId)
 	{
 	
-		double dOMolar = 0;
-		double dSMolar = 0;
-		double dNMolar = 0;
-		for (auto pElChem : a_listElChemsIncNoFe)
+		double dOWeight = 0;
+		double dSWeight = 0;
+		double dNWeight = 0;
+		/*double weightsum=0;
+		for (auto ele : a_listElChemsIncNoFe)
 		{
-			// create a new element chemistry
+			weightsum += ele->GetPercentage();
+
+		}*/
+
+		auto stdItm =a_pPartSTDData->GetSTDItemById( incId);
+		if (incId == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED)
+		{
+			a_GrpId = IDENTIFIED_INC_GRP_ID::Others;
+			return true;
+		}
+
+		auto stdName = stdItm->GetName();
+
+		if (stdName.CompareNoCase(_T("MnS"))==0)
+		{
+		   
+			a_GrpId = IDENTIFIED_INC_GRP_ID::SULFIDE;
+		    return true;
+		}
 
+		for (auto pElChem : a_listElChemsIncNoFe)
+		{
 		
 			if  (pElChem->GetName().CompareNoCase(STR_O) == 0)
 			{
 			
-				dOMolar = pElChem->GetMolarPercentage();
+				dOWeight = pElChem->GetPercentage();
 			
 			}		
 			else if (pElChem->GetName().CompareNoCase(STR_SUL) == 0)
 			{
 
-				dSMolar = pElChem->GetMolarPercentage();
+				dSWeight = pElChem->GetPercentage();
 			
 			}
 			else if (pElChem->GetName().CompareNoCase(STR_N) == 0)
 			{
-				dNMolar = pElChem->GetMolarPercentage();
+				dNWeight = pElChem->GetPercentage();
 			}
 
 
 
 		}
-
+		
 	
-		if (dOMolar >= MIN_ELEMENT_SUM && dSMolar< MIN_ELEMENT_SUM )
+		if (dOWeight >= MIN_ELEMENT_SUM && dSWeight< MIN_ELEMENT_SUM )
 		{
 			
 			a_GrpId = IDENTIFIED_INC_GRP_ID::OXIDE;
 			
 		}
-		else if ( dSMolar >= MIN_ELEMENT_SUM && dOMolar < MIN_ELEMENT_SUM)
+		else if ( dSWeight >= MIN_ELEMENT_SUM && dOWeight < MIN_ELEMENT_SUM)
 		{
 			a_GrpId = IDENTIFIED_INC_GRP_ID::SULFIDE;
 		}
-		else if (dOMolar >= MIN_ELEMENT_SUM && dSMolar > MIN_ELEMENT_SUM )
+		else if (dOWeight >= MIN_ELEMENT_SUM && dSWeight >= MIN_ELEMENT_SUM )
 		{
 			a_GrpId = IDENTIFIED_INC_GRP_ID::SULFIDE_OXIDE;
 		}
-		else if ( dNMolar >= MIN_ELEMENT_SUM)
+		else if ( dNWeight >= MIN_ELEMENT_SUM)
 		{
 			a_GrpId = IDENTIFIED_INC_GRP_ID::CARBONNITRIDE_NITRIDE;
 		}
@@ -403,6 +424,8 @@ namespace OTSClassifyEngine
 		{
 			a_GrpId = IDENTIFIED_INC_GRP_ID::Others;
 		}
+
+
 		
 		return TRUE;
 		
@@ -477,7 +500,7 @@ namespace OTSClassifyEngine
 			LogErrorTrace(__FILE__, __LINE__, _T("COTSClassifyEng::SulClassify: failed to call GetClassifySTDItem method."));
 			return FALSE;
 		}
-
+		//GetSTDItemNameById
 		// check if element chemistries list contain any sulfur
 		CElementChemistryPtr pSulElChem = GetNamedElementChemistry(a_listElChemsIncNoFe, STR_SUL);
 		if (!pSulElChem)

+ 1 - 1
OTSCPP/OTSClassifyEngine/InclutionEngine/OTSClassifyEng.h

@@ -212,7 +212,7 @@ namespace OTSClassifyEngine
 									double a_dMolarSumNoFe,
 									int& a_nIncId);
 
-		static BOOL GroupClassify(CElementChemistriesList& a_listElChemsIncNoFe, IDENTIFIED_INC_GRP_ID& a_GrpId);
+		static BOOL GroupClassify(CInclutionSTDDataPtr a_pPartSTDData,CElementChemistriesList& a_listElChemsIncNoFe,int incId, IDENTIFIED_INC_GRP_ID& a_GrpId);
 
 		static BOOL GetGroupNameAndColorById(int grpId, std::string& grpName, std::string& grpColor);
 

+ 13 - 6
OTSIncAMeasureApp/0-OTSModel/Measure/DBDataTransition/IncADataDB.cs

@@ -27,18 +27,25 @@ namespace OTSModelSharp
 
 
 
-            string sSQLCommand = "Update IncAData set TypeId=@TypeId,TypeName= @TypeName,TypeColor=@TypeColor where FieldID =@FieldId and ParticleId =@ParticleId ";  //sSQLCommand.Format(sSQLCommand,a_pParticle->GetAveGray(),a_pParticle->GetArea(),a_pParticle->GetType(),a_pParticle->GetFieldId(),a_pParticle->GetTagId());
-            var paras = new SQLiteParameter[5];
+            string sSQLCommand = "Update IncAData set TypeId=@TypeId,TypeName= @TypeName,TypeColor=@TypeColor,GroupId=@GroupId,GroupName=@GroupName,GroupColor=@GroupColor where FieldID =@FieldId and ParticleId =@ParticleId ";  //sSQLCommand.Format(sSQLCommand,a_pParticle->GetAveGray(),a_pParticle->GetArea(),a_pParticle->GetType(),a_pParticle->GetFieldId(),a_pParticle->GetTagId());
+            var paras = new SQLiteParameter[8];
             paras[0] = new SQLiteParameter("TypeId");
             paras[0].Value = a_pParticle.GetClassifyId();
             paras[1] = new SQLiteParameter("TypeName");
             paras[1].Value = a_pParticle.GetTypeName();
             paras[2] = new SQLiteParameter("TypeColor");
             paras[2].Value = a_pParticle.GetTypeColor();
-            paras[3] = new SQLiteParameter("FieldId");
-            paras[3].Value = a_pParticle.GetFieldId();
-            paras[4] = new SQLiteParameter("ParticleId");
-            paras[4].Value = a_pParticle.GetTagId();
+            paras[3] = new SQLiteParameter("GroupId");
+            paras[3].Value = a_pParticle.GetGrpId();
+            paras[4] = new SQLiteParameter("GroupName");
+            paras[4].Value = a_pParticle.GetGrpName();
+            paras[5] = new SQLiteParameter("GroupColor");
+            paras[5].Value = a_pParticle.GetGrpColor();
+
+            paras[6] = new SQLiteParameter("FieldId");
+            paras[6].Value = a_pParticle.GetFieldId();
+            paras[7] = new SQLiteParameter("ParticleId");
+            paras[7].Value = a_pParticle.GetTagId();
 
             
 

+ 12 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/DBDataTransition/IncAFileMgr.cs

@@ -312,7 +312,18 @@ namespace OTSModelSharp
                var str= IncADataDB.GetUpdataAIncACmd(pParticle);
                 cmdlist.Add(str);
             }
-            dbStore.ExecuteNonQueryBatch(ref cmdlist);
+
+            try
+            {
+                dbStore.ExecuteNonQueryBatch(ref cmdlist);
+
+            }
+            catch (Exception e)
+            {
+                NLog.LogManager.GetCurrentClassLogger().Error(e.Message);
+            
+            }
+           
             return ;
         }
         public void ExecuteNonQueryBatch(ref List<KeyValuePair<string, SQLiteParameter[]>> cmds)

+ 17 - 6
OTSIncAMeasureApp/0-OTSModel/Measure/ParamData/COTSMsrPrjResultData.cs

@@ -1460,7 +1460,16 @@ namespace OTSModelSharp
 
                 //get the steel technology parameter
                 STEEL_TECHNOLOGY steelTech = pMsrParam.GetSteelTechnology();
+                foreach (var fld in spl.GetFieldsData())
+                {
+                    foreach (var part in fld.GetListAnalysisParticles())
+                    {
+                        part.SetType((int)OTS_PARTCLE_TYPE.NOT_IDENTIFIED);
+                    }
+                }
 
+
+                        var analysisparts = new List<COTSParticleClr>();
                 foreach (var fld in spl.GetFieldsData())
                 {
                     foreach (var part in fld.GetListAnalysisParticles())
@@ -1512,16 +1521,18 @@ namespace OTSModelSharp
 
                     }
 
+                    analysisparts.AddRange(fld.GetListAnalysisParticles());
 
-                    string strFieldFileSubFolder = strFilePath + "\\" + spl.GetName() + "\\" + SMPL_MSR_RESULT_FIELDS_FILE_SUBFOLDER;
-
-                    string strIncAFilename = strFieldFileSubFolder + "\\" + SMPL_MSR_RESULT_INCLUSION_FILE;
-                    CIncAFileMgr pIncAFileMgr = new CIncAFileMgr(strIncAFilename);
 
-                   
-                    pIncAFileMgr.UpdateIncAList(fld.GetListAnalysisParticles());
 
                 }
+                string strFieldFileSubFolder = strFilePath + "\\" + spl.GetName() + "\\" + SMPL_MSR_RESULT_FIELDS_FILE_SUBFOLDER;
+
+                string strIncAFilename = strFieldFileSubFolder + "\\" + SMPL_MSR_RESULT_INCLUSION_FILE;
+                CIncAFileMgr pIncAFileMgr = new CIncAFileMgr(strIncAFilename);
+
+
+                pIncAFileMgr.UpdateIncAList(analysisparts);
 
             }