/// <summary> /// 根据MeterDisassemblyTaskResultInfo组合成任务结果文件内容 /// 换表和销户的任务结果 /// </summary> /// <param name="resultinfo"></param> /// <returns></returns> private static String GetResultFileContent_Replase(MeterDisassemblyTaskResultInfo resultinfo) { List <String> contentlist = new List <string> { }; /*TaskID=XX(当前的任务ID) * TaskType=1(0-退购,1-换表,2-销户) * TechnicianID =XX(上门工程师的ID) * MeterAddress=012017062001(表通信地址,射频卡表是LAPIS中的meterbasicinfo里面的communicationaddress) * MeterStatue=0/1 (表计的状态,0-损坏,1-正常) * UsedValue=XX (配合MeterStatue,如果表计正常,则UsedValue指总使用金额/量。如果表计损坏,则UsedValue指当前机械读数) * RemainValue=XX(配合MeterStatue,如果表计正常,则RemainValue指剩余金额/量。如果表计损坏,保持为0,返回LAPIS由系统计算) * OldMeterTotalDialReading=XX(表计中的总使用量,如果表计正常,则表示标识00000010总使用量。如果表计损坏,则指当前机械读数) * Result=0/1 (任务是否成功,0-失败,1-成功) * Feedback= (工程师反馈的任务结果信息) * Date=20XX-XX-XX (操作日期)*/ String filestr = Const_TaskID + "=" + resultinfo.TaskID.ToString(); contentlist.Add(filestr); filestr = Const_TaskType + "=" + ((Int32)resultinfo.TaskType).ToString(); contentlist.Add(filestr); filestr = Const_TechnicianID + "=" + resultinfo.TechnicianID.ToString(); contentlist.Add(filestr); filestr = Const_MeterAddress + "=" + resultinfo.MeterAddress; contentlist.Add(filestr); String resstr = (resultinfo.MeterStatue) ? "1" : "0"; filestr = Const_MeterStatue + "=" + resstr; contentlist.Add(filestr); filestr = Const_UsedValue + "=" + resultinfo.TotalComsumedValue.ToString("F2"); contentlist.Add(filestr); filestr = Const_RemainValue + "=" + resultinfo.RemainValue.ToString("F2"); contentlist.Add(filestr); filestr = Const_OldMeterTotalDialReading + "=" + resultinfo.OldMeterTotalDialReading.ToString("F2"); contentlist.Add(filestr); resstr = (resultinfo.TaskResult == (Int32)eTaskResult.Failed) ? "0" : "1"; filestr = Const_Result + "=" + resstr; contentlist.Add(filestr); filestr = Const_Feedback + "=" + resultinfo.Feedback; contentlist.Add(filestr); resstr = resultinfo.OperateFinishTime.ToString("yyyy-MM-dd"); filestr = Const_Date + "=" + resstr; contentlist.Add(filestr); String reslutfile = DataFormatProcessor.ListToString(contentlist, Environment.NewLine); return(reslutfile); }
/// <summary> /// 获取换表、销户的任务结果信息 /// </summary> /// <param name="type"></param> /// <param name="disassemblytaskinfo"></param> /// <returns></returns> private static Boolean GetTaskResultInfo_Replace(eTaskType type, ref MeterDisassemblyTaskResultInfo disassemblytaskinfo) { if (m_dicFileCon == null) { return(false); } //判断任务类型,获取弹出的处理界面 disassemblytaskinfo = new MeterDisassemblyTaskResultInfo { }; //TaskID if (!m_dicFileCon.Keys.Contains(Const_TaskID)) { return(false); } disassemblytaskinfo.TaskID = Convert.ToInt32(m_dicFileCon[Const_TaskID]); //TaskType disassemblytaskinfo.TaskType = (Int32)type; //TechnicianID if (!m_dicFileCon.Keys.Contains(Const_TechnicianID)) { return(false); } disassemblytaskinfo.TechnicianID = Convert.ToInt32(m_dicFileCon[Const_TechnicianID]); //MeterAddress if (!m_dicFileCon.Keys.Contains(Const_MeterAddress)) { return(false); } disassemblytaskinfo.MeterAddress = m_dicFileCon[Const_MeterAddress]; //MeterStatue if (!m_dicFileCon.Keys.Contains(Const_MeterStatue)) { return(false); } disassemblytaskinfo.MeterStatue = (m_dicFileCon[Const_MeterStatue] == "1") ? true : false; //UsedValue if (!m_dicFileCon.Keys.Contains(Const_UsedValue)) { return(false); } disassemblytaskinfo.TotalComsumedValue = Convert.ToDouble(m_dicFileCon[Const_UsedValue]); //RemainValue if (!m_dicFileCon.Keys.Contains(Const_RemainValue)) { return(false); } disassemblytaskinfo.RemainValue = Convert.ToDouble(m_dicFileCon[Const_RemainValue]); //OldMeterTotalDialReading if (!m_dicFileCon.Keys.Contains(Const_OldMeterTotalDialReading)) { return(false); } disassemblytaskinfo.OldMeterTotalDialReading = Convert.ToDouble(m_dicFileCon[Const_OldMeterTotalDialReading]); //Result if (!m_dicFileCon.Keys.Contains(Const_Result)) { return(false); } disassemblytaskinfo.TaskResult = (m_dicFileCon[Const_Result] == "1") ? (Int32)eTaskResult.Success : (Int32)eTaskResult.Failed; //Feedback if (!m_dicFileCon.Keys.Contains(Const_Feedback)) { return(false); } disassemblytaskinfo.Feedback = m_dicFileCon[Const_Feedback]; //Date if (!m_dicFileCon.Keys.Contains(Const_Date)) { return(false); } disassemblytaskinfo.OperateFinishTime = DateTime.Now; DateTime.TryParse(m_dicFileCon[Const_Date], out disassemblytaskinfo.OperateFinishTime); return(true); }
/// <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> /// 解析任务结果文件,获取结果信息 /// </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="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); } }
public void CopyFrom(MeterDisassemblyTaskResultInfo src) { base.CopyFrom((MeterDisassemblyTaskBase)src); MeterAddress = src.MeterAddress; OperateFinishTime = src.OperateFinishTime; }