602 lines
23 KiB
C#
602 lines
23 KiB
C#
using DoAn.Core;
|
||
using DoAn.SugarModels;
|
||
using DoAn.UI;
|
||
using SqlSugar;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Collections.ObjectModel;
|
||
using System.Diagnostics;
|
||
using System.Drawing;
|
||
using System.IO.Ports;
|
||
using System.Linq;
|
||
using static System.Windows.Forms.AxHost;
|
||
|
||
namespace DoAn.servicce
|
||
{
|
||
public class DBService
|
||
{
|
||
/// <summary>
|
||
/// 当前的项目
|
||
/// </summary>
|
||
public ResGeelyAssemblyProject Project { get => project; set => project = value; }
|
||
|
||
ResGeelyAssemblyProject project = null;
|
||
|
||
/// <summary>
|
||
/// 当前项目的所有零件号配置,正常程序启动可一次读取,数据固定
|
||
/// </summary>
|
||
public List<ResGeelyAssemblyPart> PartList { get => partList; set => partList = value; }
|
||
|
||
List<ResGeelyAssemblyPart> partList = null;
|
||
|
||
/// <summary>
|
||
/// 当前零件号的防错列表
|
||
/// </summary>
|
||
public List<ResGeelyAssemblyConfig> FCConfigList { get { return this.configList; } }
|
||
|
||
List<ResGeelyAssemblyConfig> configList = null;
|
||
|
||
|
||
public static DBService dbService = DBService.GetIntance;
|
||
public static DBService GetIntance
|
||
{
|
||
get
|
||
{
|
||
if (dbService != null)
|
||
{
|
||
return dbService;
|
||
}
|
||
else
|
||
{
|
||
dbService = new DBService();
|
||
return dbService;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
private DBService()
|
||
{
|
||
this.PartList = new List<ResGeelyAssemblyPart>();
|
||
this.configList = new List<ResGeelyAssemblyConfig>();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 项目->零件号列表,项目表的零件和配置表的零件是包含关系
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public bool GetAssemblyPartsList()
|
||
{
|
||
// 读取当前的项目,不同程序项目会分开,这里的项目一般会确定
|
||
//this.Project = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyProject>().Where(it => it.Site == "6000").First();
|
||
this.Project = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyProject>().Where(it => it.Project == global.CurrentProject).First();
|
||
int projectId = this.Project != null ? this.Project.Id : 0;
|
||
|
||
// 根据项目,返回所有对应的零件号
|
||
this.PartList = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyPart>().Where(it => it.ProjectId == projectId).ToList();
|
||
|
||
if(this.PartList != null&& this.PartList.Count > 0 )
|
||
{
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据索引返回,ResGeelyAssemblyPart
|
||
/// </summary>
|
||
/// <param name="index"></param>
|
||
/// <returns></returns>
|
||
public ResGeelyAssemblyPart GetPartByIndex(int index)
|
||
{
|
||
ResGeelyAssemblyPart resGeelyAssemblyPart = null;
|
||
if(index<this.PartList.Count)
|
||
{
|
||
resGeelyAssemblyPart = this.PartList[index];
|
||
}
|
||
|
||
return resGeelyAssemblyPart;
|
||
}
|
||
|
||
public ResGeelyAssemblyPart GetPartByIndex(string groupPart,string color)
|
||
{
|
||
ResGeelyAssemblyPart resGeelyAssemblyPart = null;
|
||
if(this.PartList!=null)
|
||
{
|
||
foreach (ResGeelyAssemblyPart item in this.PartList)
|
||
{
|
||
if(!string.IsNullOrEmpty(item.UndefineValue2) && (!string.IsNullOrEmpty(item.Color)))
|
||
{
|
||
if(groupPart.Equals(item.UndefineValue2.Trim()) && color.Equals(item.Color.Trim()))
|
||
{
|
||
resGeelyAssemblyPart = item;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return resGeelyAssemblyPart;
|
||
}
|
||
|
||
public ResGeelyAssemblyPart GetPartByPartId(int partId)
|
||
{
|
||
ResGeelyAssemblyPart resGeelyAssemblyPart = null;
|
||
if (this.PartList != null)
|
||
{
|
||
foreach (ResGeelyAssemblyPart item in this.PartList)
|
||
{
|
||
if (item.Id == partId)
|
||
{
|
||
resGeelyAssemblyPart = item;
|
||
}
|
||
}
|
||
}
|
||
return resGeelyAssemblyPart;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 生成项目字符串,返回的顺序和内存中PartList顺序一致,可以根据索引返回当前零件号
|
||
/// UndefineValue2,存放组名称
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string[] ToPartsListInfo()
|
||
{
|
||
List<string> lst = new List<string>();
|
||
if(PartList!=null)
|
||
{
|
||
foreach (ResGeelyAssemblyPart item in PartList)
|
||
{
|
||
if(!string.IsNullOrEmpty(item.UndefineValue2))
|
||
{
|
||
if(!lst.Contains(item.UndefineValue2.Trim()))
|
||
{
|
||
lst.Add(item.UndefineValue2.Trim());
|
||
}
|
||
}
|
||
//lst.Add(/*item.Name + " " + */item.PartNo);
|
||
}
|
||
}
|
||
|
||
return lst.ToArray();
|
||
}
|
||
|
||
public string[] ToPartsListColor()
|
||
{
|
||
List<string> lst = new List<string>();
|
||
if (PartList != null)
|
||
{
|
||
//Newtonsoft.Json.Linq.JArray obj = (Newtonsoft.Json.Linq.JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(PartList[0].Color);
|
||
|
||
//for(int i=0;i< obj.Count;i++)
|
||
//{
|
||
// string t = obj[i].ToArray()[0].ToString();
|
||
// t = t.Replace("\"", "");
|
||
// string[] t1 = t.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
|
||
|
||
// lst.Add(t1[0] + "-" + t1[1]);
|
||
//}
|
||
|
||
foreach (ResGeelyAssemblyPart item in PartList)
|
||
{
|
||
if (!string.IsNullOrEmpty(item.Color))
|
||
{
|
||
if (!lst.Contains(item.Color.Trim()))
|
||
{
|
||
lst.Add(item.Color.Trim());
|
||
}
|
||
}
|
||
}
|
||
;
|
||
}
|
||
|
||
return lst.ToArray();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 返回当前选择的零件号的防错列表
|
||
/// 每个零件号,都有对应的防错列表
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="stationName"></param>
|
||
/// <param name="Module"></param>
|
||
/// <returns></returns>
|
||
public bool GetResGeelyAssemblyConfigList(int partId,string stationName="OP10")
|
||
{
|
||
//todo 获取配置表
|
||
var expable = Expressionable.Create<ResGeelyAssemblyConfig>();
|
||
expable.And(it => it.Station == stationName);
|
||
expable.And(it => it.PartId == partId);
|
||
//expable.And(it => it.Module == Module);
|
||
expable.And(it => it.Status >= 0);
|
||
|
||
var exp = expable.ToExpression();
|
||
configList = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyConfig>().Where(exp).OrderBy(it => it.Seq).ToList();
|
||
|
||
if(configList!=null&configList.Count()==8)
|
||
{ return true; }
|
||
return false;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 判断某个防错记录是否要显示
|
||
/// *************这个地方要改,20230911,是否启用扫码的信息发生变化*************
|
||
/// </summary>
|
||
/// <param name="resSeresAssemblyConfig"></param>
|
||
/// <param name="partId"></param>
|
||
/// <returns></returns>
|
||
public int CheckCurrentConfigState(ResGeelyAssemblyConfig resSeresAssemblyConfig,int partId)
|
||
{
|
||
bool state = false;
|
||
|
||
if (resSeresAssemblyConfig!=null && resSeresAssemblyConfig.Extend_config != null)
|
||
{
|
||
//string[] lines = resSeresAssemblyConfig.Extend_config.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
//if (lines != null && lines.Length > 0)
|
||
//{
|
||
// if (lines.Contains(partId.ToString()))
|
||
// state = resSeresAssemblyConfig.Status > 0;
|
||
//}
|
||
|
||
string[] lines = resSeresAssemblyConfig.Extend_config.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (lines != null && lines.Length > 0)
|
||
{
|
||
bool result = false;
|
||
for (int i = 0; i < lines.Length; i++) // 按照零件号分割查找
|
||
{
|
||
string[] sublines = lines[i].Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (sublines != null && sublines.Length >= 3)
|
||
{
|
||
for (int j = 0; j < sublines.Length; j++) // 单个零件号内部,分割查找
|
||
{
|
||
int value = Convert.ToInt32(sublines[0].Trim());
|
||
int enable = Convert.ToInt32(sublines[1].Trim());
|
||
if (partId == value && enable==1)
|
||
{
|
||
result = true;
|
||
state = resSeresAssemblyConfig.Status > 0;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (result) break;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
return state ? 1 : 0;
|
||
}
|
||
|
||
public string GetFCDescribe(ResGeelyAssemblyPart curAssemblyPart, ResGeelyAssemblyConfig resSeresAssemblyConfig)
|
||
{
|
||
string describe = string.Empty;
|
||
if (curAssemblyPart!=null && resSeresAssemblyConfig != null && resSeresAssemblyConfig.Extend_config != null)
|
||
{
|
||
string[] lines = resSeresAssemblyConfig.Extend_config.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (lines != null && lines.Length > 0)
|
||
{
|
||
bool result = false;
|
||
for(int i=0;i<lines.Length;i++) // 按照零件号分割查找
|
||
{
|
||
string[] sublines = lines[i].Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if(sublines!=null && sublines.Length>=3)
|
||
{
|
||
for(int j=0;j<sublines.Length;j++) // 单个零件号内部,分割查找
|
||
{
|
||
int value = Convert.ToInt32(sublines[0].Trim());
|
||
int enable = Convert.ToInt32(sublines[1].Trim());
|
||
if (curAssemblyPart.Id== value && enable==1)
|
||
{
|
||
result = true;
|
||
describe = sublines[2];
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (result) break;
|
||
}
|
||
}
|
||
}
|
||
return describe;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查找防错对象,通过触发值来查找
|
||
/// </summary>
|
||
/// <param name="value"></param>
|
||
/// <returns></returns>
|
||
public ResGeelyAssemblyConfig GetFCObjectByTriggerValue(int value)
|
||
{
|
||
ResGeelyAssemblyConfig resSeresAssemblyConfig = null;
|
||
if(this.configList!=null)
|
||
{
|
||
foreach (ResGeelyAssemblyConfig item in this.configList)
|
||
{
|
||
if(item.Status==value && "FC".Equals(item.Module.Trim()))
|
||
{
|
||
resSeresAssemblyConfig = item;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
return resSeresAssemblyConfig;
|
||
}
|
||
|
||
public ResGeelyAssemblyConfig GetFCObjectByOption(string option)
|
||
{
|
||
ResGeelyAssemblyConfig resSeresAssemblyConfig = null;
|
||
if (this.configList != null)
|
||
{
|
||
foreach (ResGeelyAssemblyConfig item in this.configList)
|
||
{
|
||
if(!string.IsNullOrEmpty(item.Option))
|
||
{
|
||
if (item.Option.Trim().Equals(option.Trim()) && "FC".Equals(item.Module.Trim()))
|
||
{
|
||
resSeresAssemblyConfig = item;
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
return resSeresAssemblyConfig;
|
||
}
|
||
|
||
public string GetFC_msg()
|
||
{
|
||
string msg = "";
|
||
if(this.configList!=null)
|
||
{
|
||
foreach (ResGeelyAssemblyConfig item in this.configList)
|
||
{
|
||
msg += ("ID=" + item.Id.ToString() + "-" +
|
||
"partId=" + item.PartId.ToString() + "-" +
|
||
"工位=" + item.Station + "-" +
|
||
"名称=" + item.Option.ToString() + "-" +
|
||
"模块=" + item.Module.ToString() + "-" +
|
||
"状态=" + item.Status.ToString() + Environment.NewLine
|
||
);
|
||
}
|
||
}
|
||
|
||
return msg;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 追溯码,存储到数据库
|
||
/// 插入数据:Part ID 追溯码 时间
|
||
/// </summary>
|
||
/// <param name="code"></param>
|
||
/// <returns></returns>
|
||
public int PrintTrace(string code,int partId)
|
||
{
|
||
//ResGeelyAssemblyProject project = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyProject>().Where(it => it.Site == "6000").First();
|
||
//string workcenter = project != null ? project.WorkCenter : "null";
|
||
|
||
//string flowTime = DateTime.Now.ToString("yyyyMMddHHmmss");
|
||
//string counter = counterFunc();
|
||
|
||
ResGeelyAssemblyTrace trace = new ResGeelyAssemblyTrace();
|
||
|
||
//if (this.configList != null) trace.PartId = (int)this.configList[0].Id;
|
||
//else trace.PartId = 0;
|
||
|
||
trace.PartId = partId;
|
||
trace.PartSn = code;
|
||
trace.CreateTime = DateTime.Now;
|
||
|
||
int traceID = SqlSugarHelper.Db.Insertable(trace).ExecuteReturnIdentity();
|
||
if (traceID > 0)
|
||
{
|
||
globalMethod.UpdateRunInfoListBox("ResGeelyAssemblyTrace插入成功," + code + "/" + traceID.ToString());
|
||
}
|
||
|
||
return traceID;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 当前追溯码对应的数据记录
|
||
/// </summary>
|
||
public ResGeelyAssemblyTrace ThisResGeelyAssemblyTrace { get => thisResGeelyAssemblyTrace; }
|
||
|
||
ResGeelyAssemblyTrace thisResGeelyAssemblyTrace = null;
|
||
|
||
/// <summary>
|
||
/// 在追溯码表中,根据追溯码返回对应的id
|
||
/// </summary>
|
||
/// <param name="code"></param>
|
||
/// <returns></returns>
|
||
public ResGeelyAssemblyTrace GetTraceIDByCode(string code)
|
||
{
|
||
ResGeelyAssemblyTrace resGeelyAssemblyTrace = null;
|
||
|
||
List< ResGeelyAssemblyTrace> lst = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTrace>().Where(it => it.PartSn == code).ToList();
|
||
if(lst!=null && lst.Count>0)
|
||
{
|
||
resGeelyAssemblyTrace = lst[0];
|
||
}
|
||
|
||
this.thisResGeelyAssemblyTrace = resGeelyAssemblyTrace;
|
||
|
||
return resGeelyAssemblyTrace;
|
||
}
|
||
|
||
public ResGeelyAssemblyTrace GetTraceIDByTime(DateTime beginTime, DateTime endTime,string id,string lineName)
|
||
{
|
||
ResGeelyAssemblyTrace resGeelyAssemblyTrace = null;
|
||
List<ResGeelyAssemblyTrace> lst = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTrace>().Where(it => (it.CreateTime>= beginTime && it.CreateTime<= endTime)).ToList();
|
||
|
||
if(lst!=null && lst.Count>0)
|
||
{
|
||
foreach (ResGeelyAssemblyTrace item in lst)
|
||
{
|
||
if(item.PartSn.EndsWith(id) && item.PartSn.StartsWith(lineName))
|
||
{
|
||
resGeelyAssemblyTrace = item;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return resGeelyAssemblyTrace;
|
||
}
|
||
|
||
public void GetPreStationFC(string code,string preStation)
|
||
{
|
||
//ResGeelyAssemblyTraceMaster resGeelyAssemblyTraceMaster = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTraceMaster>().Where(it => it. == code).ToList();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 在追溯主表中,查找指定的追溯码
|
||
/// </summary>
|
||
/// <param name="traceId"></param>
|
||
/// <param name="stationName"></param>
|
||
/// <returns></returns>
|
||
public List<ResGeelyAssemblyTraceMaster> GetResTraceMasterList(int traceId, string stationName = "OP10")
|
||
{
|
||
var expable = Expressionable.Create<ResGeelyAssemblyTraceMaster>();
|
||
expable.And(it => it.Station == stationName);
|
||
expable.And(it => it.TraceId == traceId);
|
||
//expable.And(it => it.Module == Module);
|
||
//expable.And(it => it.Status >= 0);
|
||
|
||
var exp = expable.ToExpression();
|
||
List<ResGeelyAssemblyTraceMaster> lst = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTraceMaster>().Where(exp).OrderBy(it => it.Id).ToList();
|
||
|
||
return lst;
|
||
}
|
||
|
||
public List<ResGeelyAssemblyTraceMaster> GetResTraceMasterListEx(int traceId)
|
||
{
|
||
var expable = Expressionable.Create<ResGeelyAssemblyTraceMaster>();
|
||
expable.And(it => it.TraceId == traceId);
|
||
var exp = expable.ToExpression();
|
||
List<ResGeelyAssemblyTraceMaster> lst = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTraceMaster>().Where(exp).OrderBy(it => it.Id).ToList();
|
||
|
||
return lst;
|
||
}
|
||
|
||
public List<ResGeelyAssemblyTraceSubpart> GetResTraceSubpartList(string subpartCode)
|
||
{
|
||
var expable = Expressionable.Create<ResGeelyAssemblyTraceSubpart>();
|
||
expable.And(it => it.SubPartSn == subpartCode);
|
||
//expable.And(it => it.Module == Module);
|
||
//expable.And(it => it.Status >= 0);
|
||
|
||
var exp = expable.ToExpression();
|
||
List<ResGeelyAssemblyTraceSubpart> lst = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTraceSubpart>().Where(exp).OrderBy(it => it.Id).ToList();
|
||
|
||
return lst;
|
||
}
|
||
|
||
public List<ResGeelyAssemblyTraceSubpart> GetResTraceSubpartListEx(int[] masterId)
|
||
{
|
||
var expable = Expressionable.Create<ResGeelyAssemblyTraceSubpart>();
|
||
|
||
foreach (int item in masterId)
|
||
{
|
||
expable.Or(it => it.MasterId == item);
|
||
}
|
||
|
||
//expable.And(it => it.Module == Module);
|
||
//expable.And(it => it.Status >= 0);
|
||
|
||
var exp = expable.ToExpression();
|
||
List<ResGeelyAssemblyTraceSubpart> lst = SqlSugarHelper.Db.Queryable<ResGeelyAssemblyTraceSubpart>().Where(exp).OrderBy(it => it.Id).ToList();
|
||
|
||
return lst;
|
||
}
|
||
|
||
public int InsertResSeresAssemblyTraceLog(int newTraceId,int oldTraceId)
|
||
{
|
||
resSeresAssemblyTraceLog obj = new resSeresAssemblyTraceLog();
|
||
obj.TraceId = newTraceId;
|
||
obj.TraceIdOld = oldTraceId;
|
||
obj.CreateTime = DateTime.Now;
|
||
//obj.CreateTime = DateTime.Now; 由服务器设置默认时间
|
||
|
||
// 先把记录插入到表,res_客户_assembly_trace_master 返回记录 ID
|
||
int insertRes = SqlSugarHelper.Db.Insertable(obj).ExecuteReturnIdentity();
|
||
|
||
return insertRes;
|
||
}
|
||
#region 插入防错 轨迹
|
||
|
||
private List<ResGeelyAssemblyTraceSubpart> thisTimeFCList = new List<ResGeelyAssemblyTraceSubpart>();
|
||
|
||
/// <summary>
|
||
/// 清楚当次防错数据
|
||
/// </summary>
|
||
public void ClearThisTimeFCList()
|
||
{
|
||
// 清空本次防错列表,添加的扫码数据
|
||
thisTimeFCList.Clear();
|
||
|
||
// 同时清空追溯码对应的记录
|
||
this.thisResGeelyAssemblyTrace = null;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 在一次流程中,先将防错结果数据,保存到缓存中,结束时一起保存
|
||
/// </summary>
|
||
/// <param name="SubPartSn"></param>
|
||
/// <param name="config"></param>
|
||
public void insertTrace_Subpart(string SubPartSn, ResGeelyAssemblyConfig config,string result)
|
||
{
|
||
ResGeelyAssemblyTraceSubpart subpart = new ResGeelyAssemblyTraceSubpart();
|
||
|
||
subpart.SubPartSn = SubPartSn; // 零件号,所扫的编码
|
||
subpart.Name = config.Option; // 防错名称
|
||
subpart.SubPartNo = result; // 定义防错结果
|
||
subpart.CreateTime = DateTime.Now; //由服务器设置默认时间
|
||
|
||
thisTimeFCList.Add(subpart);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 保存防错数据,可以在整个流程结束后,再一起保存
|
||
/// </summary>
|
||
/// <param name="traceID">追溯码对应的记录ID</param>
|
||
/// <param name="rework">是否返工,真-为返工状态;假-生产状态</param>
|
||
public void insertTraceData(string code, bool rework)
|
||
{
|
||
ResGeelyAssemblyTrace resGeelyAssemblyTrace = this.GetTraceIDByCode(code);
|
||
|
||
if (resGeelyAssemblyTrace!=null)
|
||
{
|
||
ResGeelyAssemblyTraceMaster master = new ResGeelyAssemblyTraceMaster();
|
||
master.TraceId = resGeelyAssemblyTrace.Id;
|
||
master.Station = global.CurrentStation;
|
||
master.CreateTime = DateTime.Now; //由服务器设置默认时间
|
||
master.IsRework = (byte)(rework ? 1 : 0);
|
||
|
||
// 先把记录插入到表,res_客户_assembly_trace_master 返回记录 ID
|
||
int insertRes = SqlSugarHelper.Db.Insertable(master).ExecuteReturnIdentity();
|
||
|
||
// 如果插入成功,则将之前的防错信息插入到表:res_客户_assembly_trace_subpart
|
||
if (insertRes > 0)
|
||
{
|
||
globalMethod.UpdateRunInfoListBox("ResGeelyAssemblyTraceMaster插入成功");
|
||
|
||
thisTimeFCList.ForEach(item => item.MasterId = insertRes);
|
||
SqlSugarHelper.Db.Insertable(thisTimeFCList).ExecuteCommand();
|
||
thisTimeFCList.Clear();
|
||
}
|
||
else globalMethod.UpdateRunInfoListBox("存储数据时,当前没有数据");
|
||
}
|
||
else globalMethod.UpdateRunInfoListBox("存储数据时,resGeelyAssemblyTrace=NULL");
|
||
|
||
return;
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
}
|
||
}
|