using com.hnshituo.core.webapp.vo; using CoreFS.CA06; using iCore.Rtdb; using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace CarLocalMeter { public class MeterWorkCarActualFirstService { #region JISCO特殊接口 By BourneCao 20220122 /// /// 按车号查询状态为未使用或使用中的计量实绩数据 /// /// /// public RESTfulResult> doQueryByFlag(MeterWorkCarActualFirst info) { DbHelper db = new DbHelper(); info.pageNum = 1; info.pageSize = 3; RESTfulResult> result = db.doOption>("meterworkcaractualfirsts", "/queryByFlag", new object[] { info }, 1); return result; } #endregion internal RESTfulResult> doQueryWf(MeterWorkCarActualFirst info) { DbHelper db = new DbHelper(); RESTfulResult>> rm = db.doOption>>("meterworkcaractualfirsts", "/", new object[] { info }, 0); List lt = new List(); //如果一次数据在当前过期时间外,则将数据设置为失效状态 if (rm.Succeed) { DateTime dtNow = DateTime.Now; if (rm.Data.list.Count > 0) { foreach (MeterWorkCarActualFirst meter in rm.Data.list) { if (meter.createTime.Value.AddHours(AppConfigCache.isEndHour).CompareTo(dtNow) < 0) { doUpdateWf(new MeterWorkCarActualFirst { actualFirstNo = meter.actualFirstNo, valueFlag = "0", updateTime = dtNow, updateManName = "超期未使用" }); } else { lt.Add(meter); } } } } RESTfulResult> result = new RESTfulResult>(); result.Succeed = rm.Succeed; result.Status = rm.Status; result.Message = rm.Message; result.ResultMessage = rm.ResultMessage; result.Code = rm.Code; if (lt != null && lt.Count > 0) { result.Data = rm.Data.list; } return result; } /// /// 修改 /// /// /// internal RESTfulResult doUpdateWf(MeterWorkCarActualFirst info) { DbHelper db = new DbHelper(); RESTfulResult rm = db.doOption("meterworkcaractualfirsts", "doUpdateWf", new object[] { info }, 1); return rm; } /// /// 一次计量数据保存以及结净 /// public RESTfulResult doAddFirstDjDb(PreTrackScale scale, MeterWorkCarActualFirst model) { DbHelper db = new DbHelper(); if (scale != null) { EntityBase entityBase = new EntityBase(); model = entityBase.format(scale, model); } //操作日志 MeterMonitorNote monitorNote = new MeterMonitorNote(); monitorNote.baseSpotNo = model.baseSpotNo; monitorNote.baseSpotName = model.baseSpotName; monitorNote.operationContent = string.Format("产生一次计量数据"); monitorNote.operationTime = model.createTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); monitorNote.carNo = model.carNo; monitorNote.meterNoteSource = "0"; PbSomeModel pbSomeModel = new PbSomeModel(); pbSomeModel.one = model; pbSomeModel.two = monitorNote; RESTfulResult rmI = db.doOption("meterworkcaractualfirsts", "/addDj", new object[] { pbSomeModel }, 1); return rmI; } /// /// 结净操作 /// /// /// /// /// /// public RESTfulResult doAddNet(PreTrackScale scale, MeterWorkCarActualFirst actualFirst, MeterWorkCarActualFirst actualFirst2) { DbHelper db = new DbHelper(); // 构造结净数据 MeterWorkCarActual netDb = new MeterWorkCarActual(); // 将第一个一次数据状态改为 已结净 //actualFirst.valueFlag = "2"; netDb.isPreScale = "0"; // 复制对象 if (scale != null) { EntityBase entityBase = new EntityBase(); netDb = entityBase.format(scale, netDb); netDb.isPreScale = "1"; //给二次计量数据匹配委托 actualFirst2 = entityBase.format(scale, actualFirst2); } netDb.carNo = actualFirst.carNo; if (actualFirst2.meterWeight.Value > actualFirst.meterWeight.Value) { actualFirst2.weightType = "0";//0=毛重;1=常规皮重;2=期限皮重;3=历史皮重;4=标识皮重;5=自重皮重 netDb.actualFirst1No = ""; //毛重编号 netDb.grossTime = actualFirst2.createTime; netDb.grossWeight = actualFirst2.meterWeight.Value; // 谁大谁是毛 BourneCao netDb.baseSpot1No = AppConfigCache.pointNo; netDb.baseSpot1Name = AppConfigCache.pointName; netDb.grossMode = "2"; // 1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配 netDb.grossClass = actualFirst2.meterClass; netDb.grossGroup = actualFirst2.meterGroup; netDb.grossManNo = "system"; netDb.grossManName = "system"; netDb.grossTime = actualFirst2.createTime; netDb.actualFirst2No = actualFirst.actualFirstNo; //皮重编号 netDb.tareTime = actualFirst.createTime; netDb.tareWeight = actualFirst.meterWeight.Value; // 谁小谁是皮 BourneCao netDb.baseSpot2No = actualFirst.baseSpotNo; netDb.baseSpot2Name = actualFirst.baseSpotName; netDb.tareMode = actualFirst.meterMode;//1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配 netDb.tareManName = actualFirst.createManName; netDb.tareManNo = actualFirst.createManNo; netDb.tareTime = actualFirst.createTime; } else { actualFirst2.weightType = "1";//皮重 netDb.actualFirst2No = ""; //皮重编号 netDb.tareTime = actualFirst2.createTime; netDb.tareWeight = actualFirst2.meterWeight.Value; // 谁小谁是皮 BourneCao netDb.baseSpot2No = AppConfigCache.pointNo; netDb.baseSpot2Name = AppConfigCache.pointName; netDb.tareMode = "2";//1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配 netDb.tareClass = actualFirst2.meterClass; netDb.tareGroup = actualFirst2.meterGroup; netDb.tareManName = "system"; netDb.tareManNo = "system"; netDb.tareTime = actualFirst2.createTime; netDb.actualFirst1No = actualFirst.actualFirstNo; //毛重编号 netDb.grossTime = actualFirst.createTime; netDb.grossWeight = actualFirst.meterWeight.Value; // 谁大谁是毛 BourneCao netDb.baseSpot1No = actualFirst.baseSpotNo; netDb.baseSpot1Name = actualFirst.baseSpotName; netDb.grossMode = actualFirst.meterMode;//1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配 netDb.grossManNo = actualFirst.createManNo; netDb.grossManName = actualFirst.createManName; netDb.grossTime = actualFirst.createTime; } netDb.valueFlag = "1"; netDb.netManName = "system"; netDb.netManNo = "system"; netDb.createManName = "system"; netDb.createTime = DateTime.Now; netDb.netTime = DateTime.Now; netDb.netSpot3No = AppConfigCache.pointNo; //净重计量点编号 netDb.netSpot3Name = AppConfigCache.pointName; //净重计量点 netDb.addWeight = (actualFirst.addWeight == null ? 0 : actualFirst.addWeight.Value); //净重=毛-皮-附加重量 netDb.netWeight = netDb.grossWeight - netDb.tareWeight - netDb.addWeight; netDb.netMode = "1"; //1:正常结净;2:匹配结净 netDb.uploadFlag = "1"; //0=待审核;1:待上传;2=已上传 netDb.dataSource = "1";//1 = 智能终端,2 = 本地计量,3 = 应急计量,4 = 手动录入(计量票据录入) //netDb.updateManName = "system"; //netDb.updateManNo = "system"; //netDb.updateTime = DateTime.Now; //操作日志 MeterMonitorNote monitorNote = new MeterMonitorNote(); monitorNote.baseSpotNo = actualFirst2.baseSpotNo; monitorNote.baseSpotName = actualFirst2.baseSpotName; monitorNote.operationContent = string.Format("产生一次计量数据和结净数据"); monitorNote.operationTime = actualFirst2.createTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); monitorNote.carNo = actualFirst2.carNo; monitorNote.meterNoteSource = "0"; PbSomeModel pbSomeModel = new PbSomeModel(); pbSomeModel.one = actualFirst2; pbSomeModel.two = netDb; pbSomeModel.sOne = "0"; //1保存历史皮 0不保存 pbSomeModel.four = monitorNote; if (actualFirst2 != null && string.IsNullOrEmpty(actualFirst2.createManNo)) { actualFirst2.createManNo = actualFirst2.baseSpotNo; actualFirst2.createManName = actualFirst2.baseSpotName; } RESTfulResult rm = db.doOption("meterworkcaractualfirsts", "doAddNetDj", new object[] { pbSomeModel }, 1); return rm; } /// /// 上传本地文件数据 /// /// /// internal RESTfulResult> doDbUpload(List lm) { DbHelper db = new DbHelper(); foreach (MeterWorkCarActualFirst mfirst in lm) { mfirst.dataSource = "1"; //智能终端 mfirst.meterMode = "2"; //智能终端 mfirst.valueFlag = "1"; mfirst.isPreScale = "0"; //未匹配委托 mfirst.weightType = "1";//统一给为皮重,让计量员自己去确认是毛还是皮 mfirst.createManNo = "system"; mfirst.createManName = "system"; } RESTfulResult> rm = db.doOption>("meterworkcaractualfirstbaks", "addFirstEmergencyList", new object[] { lm }, 1); return rm; } } }