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;
}
}
}