/// <summary> /// 解析任务结果文件,获取结果信息 /// </summary> /// <param name="filename"></param> /// <param name="tasktype"></param> /// <param name="refundtaskinfo"></param> /// <param name="disassemblytaskinfo"></param> /// <returns></returns> public static Boolean ParseTaskReslutFile(String filename, ref eTaskType tasktype, ref RefundTaskResultInfo refundtaskinfo, ref MeterDisassemblyTaskResultInfo disassemblytaskinfo) { //首先,初始化解密任务文件的密钥 InitKey(EncryptKey_ResultFile); //取出全部的文件内容 String encryptstr = String.Empty; Boolean bl = FileProcessor.ReadFileString(filename, out encryptstr, false); if (!bl || String.IsNullOrEmpty(encryptstr)) { return(false); } //解析 String filestr = DencryptTaskFileInfo(encryptstr); if (String.IsNullOrEmpty(filestr)) { return(false); } //获取任务类型 bl = GetTaskType(filestr, ref tasktype); if (!bl) { return(false); } //根据不同的任务类型获取任务信息类数据 bl = GetTaskResultInfo(tasktype, ref refundtaskinfo, ref disassemblytaskinfo); return(bl); }
/// <summary> /// 创建任务结果文件 /// </summary> /// <param name="tasktype"></param> /// <param name="refundtaskinfo"></param> /// <param name="resultinfo"></param> /// <param name="filenamestr"></param> /// <returns></returns> public static Boolean BuildTaskReslutFile(eTaskType tasktype, RefundTaskResultInfo refundtaskinfo, MeterDisassemblyTaskResultInfo resultinfo, ref String filenamestr) { //首先,初始化解密任务文件的密钥 InitKey(EncryptKey_ResultFile); //先获取结果文件名 String filename = GetFileName(tasktype, refundtaskinfo, resultinfo); if (String.IsNullOrEmpty(filename)) { return(false); } filename = ResultFileFolderPath + filename; filenamestr = filename; //构建文件具体的内容 String filecontentstr = GetResultFileContent(tasktype, refundtaskinfo, resultinfo); if (String.IsNullOrEmpty(filecontentstr)) { return(false); } //加密文件内容 String encryptresfilestr = EncryptInfo(filecontentstr); //创建文件 Boolean bl = FileProcessor.WriteFileString(filename, encryptresfilestr, false); return(true); }
/// <summary> /// 获取退购的任务结果信息 /// </summary> /// <param name="type"></param> /// <param name="refundtaskinfo"></param> /// <returns></returns> private static Boolean GetTaskResultInfo_Refund(eTaskType type, ref RefundTaskResultInfo refundtaskinfo) { if (m_dicFileCon == null) { return(false); } //判断任务类型,获取弹出的处理界面 refundtaskinfo = new RefundTaskResultInfo { }; //TaskID if (!m_dicFileCon.Keys.Contains(Const_TaskID)) { return(false); } refundtaskinfo.TaskID = Convert.ToInt32(m_dicFileCon[Const_TaskID]); //RefundTradeID if (!m_dicFileCon.Keys.Contains(Const_RefundTradeID)) { return(false); } refundtaskinfo.RefundTradeID = Convert.ToInt32(m_dicFileCon[Const_RefundTradeID]); //TechnicianID if (!m_dicFileCon.Keys.Contains(Const_TechnicianID)) { return(false); } refundtaskinfo.TechnicianID = Convert.ToInt32(m_dicFileCon[Const_TechnicianID]); //MeterAddress if (!m_dicFileCon.Keys.Contains(Const_MeterAddress)) { return(false); } refundtaskinfo.MeterAddress = m_dicFileCon[Const_MeterAddress]; //TaskFinished if (!m_dicFileCon.Keys.Contains(Const_TaskFinished)) { return(false); } refundtaskinfo.TaskFinished = (m_dicFileCon[Const_TaskFinished] == "1") ? true : false; //AllowRefund if (!m_dicFileCon.Keys.Contains(Const_AllowRefund)) { return(false); } refundtaskinfo.EnableRefund = (m_dicFileCon[Const_AllowRefund] == "1") ? true : false; //TaskProcess if (!m_dicFileCon.Keys.Contains(Const_TaskProcess)) { return(false); } refundtaskinfo.TaskProcess = m_dicFileCon[Const_TaskProcess]; return(true); }
/// <summary> /// 组合成任务结果文件内容 /// </summary> /// <param name="resultinfo"></param> /// <returns></returns> private static String GetResultFileContent(eTaskType type, RefundTaskResultInfo refundtaskinfo, MeterDisassemblyTaskResultInfo resultinfo) { //根据任务类型 switch (type) { case eTaskType.CloseCustomer: case eTaskType.ReplaceMeter: return(GetResultFileContent_Replase(resultinfo)); case eTaskType.Refund: return(GetResultFileContent_Refund(refundtaskinfo)); default: return(null); } }
/// <summary> /// 解密任务结果文件 /// </summary> /// <param name="type"></param> /// <param name="refundtaskinfo"></param> /// <param name="disassemblytaskinfo"></param> /// <returns></returns> private static Boolean GetTaskResultInfo(eTaskType type, ref RefundTaskResultInfo refundtaskinfo, ref MeterDisassemblyTaskResultInfo disassemblytaskinfo) { refundtaskinfo = null; disassemblytaskinfo = null; switch (type) { case eTaskType.Refund: return(GetTaskResultInfo_Refund(type, ref refundtaskinfo)); case eTaskType.CloseCustomer: case eTaskType.ReplaceMeter: return(GetTaskResultInfo_Replace(type, ref disassemblytaskinfo)); default: return(false); } }
/// <summary> /// 根据RefundTaskInfo组合成任务结果文件内容 /// 仅退购的任务结果 /// </summary> /// <param name="resultinfo"></param> /// <returns></returns> private static String GetResultFileContent_Refund(RefundTaskResultInfo refundtaskinfo) { if (refundtaskinfo == null) { return(null); } List <String> contentlist = new List <string> { }; /*TaskID=XX(当前的任务ID) * TaskType=0:退购,1:换表,2:销户 * TechnicianID =XX(上门工程师的ID) * MeterAddress=012017062001(表通信地址) * TaskFinished=0/1 (任务是否完成) * AllowRefund=0/1 (是否允许退购,0:禁止,1:允许) * TaskProcess=FinishedStep;Step1Value;Step2Value;………. (以分号划分,第一个数据为总完成的步骤数,后面数据为每个步骤的值) */ String filestr = Const_TaskID + "=" + refundtaskinfo.TaskID.ToString(); contentlist.Add(filestr); filestr = Const_TaskType + "=0"; contentlist.Add(filestr); filestr = Const_RefundTradeID + "=" + refundtaskinfo.RefundTradeID.ToString(); contentlist.Add(filestr); filestr = Const_TechnicianID + "=" + refundtaskinfo.TechnicianID.ToString(); contentlist.Add(filestr); filestr = Const_MeterAddress + "=" + refundtaskinfo.MeterAddress; contentlist.Add(filestr); filestr = Const_TaskFinished + "=" + (refundtaskinfo.TaskFinished ? "1" : "0"); contentlist.Add(filestr); filestr = Const_AllowRefund + "=" + (refundtaskinfo.EnableRefund ? "1" : "0"); contentlist.Add(filestr); filestr = Const_TaskProcess + "=" + refundtaskinfo.TaskProcess; contentlist.Add(filestr); String reslutfile = DataFormatProcessor.ListToString(contentlist, Environment.NewLine); return(reslutfile); }