| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using com.hnshituo.core.webapp.vo;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace CarLocalMeter
- {
- public class DbUpload
- {
- Log lg = Log.GetInstance();
- private bool blThreadFlag = true;
- Thread DataCollectThread = null;//采集进程
- MeterWorkCarActualFirstService workCarActualFirstService = new MeterWorkCarActualFirstService();
- ImageOption imgControl = new ImageOption();
- public DbUpload()
- {
- DataCollectThread = new Thread(new ThreadStart(DataCollect));
- }
- public void start()
- {
- DataCollectThread.Start();
- }
- public void stop()
- {
- blThreadFlag = false;
- }
- private void DataCollect()
- {
- if (!blThreadFlag) return;
- Dictionary<string, string> dic = new Dictionary<string, string>();
- while (blThreadFlag)
- {
- try
- {
- //重量小于500且网络正常时触发
- if (CacleCls.weight < 500 && CacleCls.serverFlag)
- {
- dic.Clear();
- //若本地存在计量数据未进行上传的,则进行数据上传并得到返回的结果
- //得到结果后构造成Dictionary然后进行图片操作,修改图片名称及位置
- bool bReadFlag = false;
- string strRtMsgInfo = "";
- List<MeterWorkCarActualFirst> lm = FileOption.ReadDb<MeterWorkCarActualFirst>(ref bReadFlag, ref strRtMsgInfo);
- if (bReadFlag)
- {
- //进行数据上传操作
- RESTfulResult<List<DjPbModel>> rmRst = workCarActualFirstService.doDbUpload(lm);
- if (rmRst.Succeed)
- {
- if (rmRst.Data.Count == lm.Count)
- {
- //直接重写文件
- FileOption.clearFile();
- //然后对图片进行压缩及修改名称处理
- foreach (DjPbModel dm in rmRst.Data)
- {
- dic.Add(dm.key, dm.value);
- }
- }
- else
- {
- //清理下文件
- FileOption.clearFile();
- //重写下未成功的数据
- foreach (MeterWorkCarActualFirst first in lm)
- {
- DjPbModel pm = rmRst.Data.Where(s => s.key == first.actualFirstNo).FirstOrDefault();
- if (pm == null || string.IsNullOrEmpty(pm.key) || string.IsNullOrEmpty(pm.value))
- {
- //Thread.Sleep(100);
- bool flag = FileOption.WriterDb(new ActualFirstModel { actualFirstNo = first.actualFirstNo, baseSpotNo = first.baseSpotNo, baseSpotName = first.baseSpotName, carNo = first.carNo, createTime = first.createTime, meterWeight = first.meterWeight }, out string msgInfo);
- if (!flag)
- {
- lg.WriteLog(LogType.serverLog, $"重写失败:{msgInfo},数据:actualFirstNo{first.actualFirstNo},baseSpotNo:{first.baseSpotNo},baseSpotName:{first.baseSpotName},carNo:{first.carNo},createTime:{first.createTime},meterWeight:{first.meterWeight}");
- }
- }
- else
- {
- dic.Add(pm.key, pm.value);
- }
- }
- }
- if (dic.Count > 0) imgControl.ZipFiles(dic);
- }
- else
- {
- lg.WriteLog(LogType.serverLog, rmRst.ResultMessage);
- }
- }
- }
- }
- catch (Exception ex)
- {
- lg.WriteLog(LogType.SystemLog, "数据上传异常:" + ex.Message);
- }
- Thread.Sleep(AppConfigCache.sleepUploadTime);
- }
- }
- }
- }
|