LianDaMeter2.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. using System;
  2. using System.Collections.Generic;
  3. using MeterConditionLibrary;
  4. using com.hnshituo.core.webapp.vo;
  5. using Common;
  6. namespace MeterSceneLibrary
  7. {
  8. public class LianDaMeter2
  9. {
  10. private MeterBaseTermTareDataService termTareDate = new MeterBaseTermTareDataService();//期限皮操作
  11. /// <summary>
  12. /// 先毛后皮 根据计量流程配置界面中配置的基础数据可知业务是先毛后皮
  13. /// </summary>
  14. /// <param name="scale">计量预报</param>
  15. /// <returns></returns>
  16. public rtInfo MeterMethod(PreTrackScale scale, CoreAppUser appUser, int lianDaWgt)
  17. {
  18. if (appUser == null)
  19. {
  20. appUser = new CoreAppUser()
  21. {
  22. userClass = "",
  23. userid = "",
  24. userGroup = "",
  25. username = ""
  26. };
  27. }
  28. rtInfo rt = new rtInfo();
  29. rt.isError = false;
  30. //0:批次预报;1:单次预报;2:联运预报;3:分检预报
  31. if (scale.predictionType == "2")
  32. {
  33. rt.result = false;
  34. rt.isError = false;
  35. return rt;
  36. }
  37. //如果配置了则走下面的流程
  38. //如果存在一次计量未结净数据,则认为是结净计量,否则认为一次计量
  39. MeterWorkCarActualFirstService mwcfs = new MeterWorkCarActualFirstService();
  40. RESTfulResult<List<MeterWorkCarActualFirst>> rmF = mwcfs.doQueryWf(new MeterWorkCarActualFirst { predictionNo = scale.predictionNo, carNo = scale.carNo });
  41. RESTfulResult<List<MeterWorkCarActualFirst>> rmX = mwcfs.doQueryWf(new MeterWorkCarActualFirst { valueFlag = "1", predictionNo = scale.predictionNo + "_", carNo = scale.carNo });
  42. if (!rmX.Succeed || !rmF.Succeed)
  43. {
  44. rt.result = false;
  45. rt.resultInfo = "没有计量信息点语音求助";
  46. PbCache.ResultMessage = "获取一次计量数据异常!";
  47. rt.isError = true;
  48. }
  49. PbCache.ResultMessage = "";
  50. //验证是否存在历史皮
  51. validWgt vw = new validWgt();
  52. if (rmX.Data != null && rmX.Data.Count > 0)
  53. {
  54. if (rmF.Data == null || rmF.Data.Count == 0)
  55. {
  56. PbCache.ResultMessage = "存在联达过磅数据未在其它磅过磅的情况,请先去其它磅过磅,或点击[语音求助]!";
  57. rt.result = false;
  58. rt.isError = true;
  59. return rt;
  60. }
  61. else
  62. {
  63. bool flag = false;
  64. foreach (MeterWorkCarActualFirst firstD in rmF.Data)
  65. {
  66. if (firstD.valueFlag == "1" || firstD.valueFlag == "2")
  67. {
  68. flag = true;
  69. break;
  70. }
  71. }
  72. if (!flag)
  73. {
  74. PbCache.ResultMessage = "存在联达过磅数据未在其它磅过磅的情况,请先去其它磅过磅,或点击[语音求助]!";
  75. rt.result = false;
  76. rt.isError = true;
  77. return rt;
  78. }
  79. }
  80. //那么本次是过皮重
  81. if (string.IsNullOrEmpty(scale.forwardingUnitName) || string.IsNullOrEmpty(scale.receivingUintName))
  82. {
  83. PbCache.ResultMessage = "结净时,预报中的发货单位以及收货单位均不允许为空,请点击[语音求助]!";
  84. rt.result = false;
  85. rt.isError = true;
  86. return rt;
  87. }
  88. if (rmX.Data.Count == 1)
  89. {
  90. //则走其他的验证,比如与历史皮重验证,与其他的信息验证,若验证都通过则保存一次计量信息
  91. MeterWorkCarActualFirst first = rmX.Data[0];
  92. if (first.weightType != "0") //一次不为毛重,即一次是皮重,那么皮皮不能结合
  93. {
  94. rt.result = false;
  95. rt.isError = true;
  96. PbCache.ResultMessage = "已经存在一条重量为[" + first.meterWeight + "]的皮重数据,皮重与皮重不能计量!";
  97. }
  98. else //一次为毛重,那么当前是皮重 走先毛后皮流程
  99. {
  100. if (!PbCache.isNotValid)
  101. {
  102. if (Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) < AppConfigCache.differenceWgt)
  103. {
  104. //重复计量
  105. rt.result = false;
  106. rt.isError = true;
  107. rt.resultInfo = "第一次计量重量和第二次计量重量接近";
  108. //PbCache.ResultMessage = "第一次计量重量和第二次计量重量接近";
  109. PbCache.ResultMessage = "第一次计量重量【" + rmX.Data[0].meterWeight.Value / 1000 + "T】和第二次计量重量【" + PbCache.lockWgt / 1000 + "T】接近,小于结净最小值【" + AppConfigCache.differenceWgt / 1000 + " T】,请点击[语音求助],由司秤工过磅!";
  110. return rt;
  111. }
  112. }
  113. //一次重量小于当前重量,所以一次的时候应该是皮重
  114. if (rmX.Data[0].meterWeight.Value - PbCache.lockWgt < 0)
  115. {
  116. //存在历史皮
  117. if (PbCache.monitorResult.haveHisTare)
  118. {
  119. rt.result = false;
  120. rt.isError = true;
  121. rt.resultInfo = "存在一次毛重信息,当前重量大于一次毛重毛毛不能结合";
  122. PbCache.ResultMessage = "存在一次毛重信息,当前重量大于一次毛重,毛重与毛重不能计量";
  123. return rt;
  124. }
  125. else
  126. {
  127. //没有历史皮的情况,将一次数据类型修改为皮重;2021年3月12日杨秀东新增提示信息,让司机重新扫码;
  128. mwcfs.doUpdateWf(new MeterWorkCarActualFirst { actualFirstNo = rmX.Data[0].actualFirstNo, weightType = "1" });
  129. rt.result = false;
  130. rt.isError = false;
  131. PbCache.ResultMessage = "请再次点击[保存]按钮";
  132. return rt;
  133. }
  134. }
  135. //卸货时间验证
  136. ValidUnloadTime unloadTime = new ValidUnloadTime();
  137. unloadTime.ValidMethod(first);
  138. if (!PbCache.monitorResult.valid_unload_time)
  139. {
  140. rt.result = false;
  141. rt.isError = true;
  142. rt.resultInfo = PbCache.ResultMessage;// 方法内已经有提示信息
  143. return rt;
  144. }
  145. //验证两次计量时间间隔
  146. validTimeInterval vti = new validTimeInterval();
  147. vti.ValidMethod(scale, "3", first);
  148. if (!PbCache.monitorResult.valid_time_interval)
  149. {
  150. rt.result = false;
  151. rt.isError = true;
  152. rt.resultInfo = PbCache.ResultMessage; // 方法内已经有提示信息
  153. return rt;
  154. }
  155. //验证预报超差信息
  156. validPredictionDiff vpd = new validPredictionDiff();
  157. vpd.ValidMethod(scale, "3", first); //验证净重
  158. if (!PbCache.monitorResult.valid_prediction_diff)
  159. {
  160. rt.result = false;
  161. rt.isError = true;
  162. rt.resultInfo = PbCache.ResultMessage; // 方法内已经有提示信息
  163. return rt;
  164. }
  165. //验证历史皮重
  166. vw.ValidNotInnerMethod(scale);
  167. //验证当前皮重是否符合要求
  168. if (!PbCache.monitorResult.valid_wgt)
  169. {
  170. rt.result = false;
  171. rt.isError = true;
  172. rt.resultInfo = "当前皮重不在皮重配置范围";
  173. if (PbCache.ResultMessage != null && !PbCache.ResultMessage.Contains("皮重"))
  174. {
  175. PbCache.ResultMessage = "当前皮重不在皮重配置范围";
  176. }
  177. return rt;
  178. }
  179. //验证计量区域:若二次计量数据的计量区域与一次计量的计量区域不一致,则禁止自助计量;
  180. validMeterArea vMeterArea = new validMeterArea();
  181. vMeterArea.ValidMethod(first.baseSpotNo);
  182. if (!PbCache.monitorResult.valid_meter_area)
  183. {
  184. rt.result = false;
  185. rt.isError = true;
  186. rt.resultInfo = PbCache.ResultMessage;
  187. return rt;
  188. }
  189. //====所有验证均通过后,此时进行结净=====================
  190. //保存皮重信息 即:二次计量信息***********************
  191. MeterWorkCarActualFirst secondDb = new MeterWorkCarActualFirst();
  192. scale.predictionNo += "_";
  193. //相同名称的均赋值一次
  194. EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
  195. secondDb = entityBase.format<MeterWorkCarActualFirst>(scale, secondDb);
  196. secondDb.actualFirstNo = DateTime.Now.ToString("yyyyMMdd");//10
  197. secondDb.meterWeight = PbCache.lockWgt;//计量重量
  198. secondDb.addWeight = first.addWeight;//附加重量
  199. secondDb.weightType = "1"; //0=毛重;1=常规皮重;2=期限皮重;3=历史皮重;4=标识皮重;5=自重皮重
  200. secondDb.createManNo = appUser.userid;
  201. secondDb.createManName = appUser.username;
  202. secondDb.meterGroup = appUser.userGroup;
  203. secondDb.meterClass = appUser.userClass;
  204. secondDb.createTime = DateTime.Now;
  205. secondDb.baseSpotNo = PbCache.sportInfo.baseSpotNo;//计量点编号
  206. secondDb.baseSpotName = PbCache.sportInfo.baseSpotName;
  207. //secondDb.memo = "";
  208. secondDb.valueFlag = "1"; //0有效
  209. secondDb.updateManName = "";
  210. secondDb.updateManNo = "";
  211. secondDb.updateTime = null;
  212. secondDb.checkFlag = "0"; //0未审核
  213. secondDb.meterMode = string.IsNullOrEmpty(appUser.userid) ? "2" : "1"; //1远程计量,2智能计量
  214. //结净数据
  215. MeterWorkCarActual netDb = new MeterWorkCarActual();
  216. EntityBase<PreTrackScale> entityActual = new EntityBase<PreTrackScale>();
  217. netDb = entityBase.format<MeterWorkCarActual>(scale, netDb);
  218. netDb.actualFirst1No = first.actualFirstNo; //毛重计量作业编号
  219. netDb.grossTime = first.createTime;
  220. netDb.grossWeight = first.meterWeight;
  221. netDb.baseSpot1No = first.baseSpotNo;
  222. netDb.baseSpot1Name = first.baseSpotName;
  223. netDb.grossMode = first.meterMode;//1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
  224. netDb.grossManNo = first.createManNo;
  225. netDb.grossManName = first.createManName;
  226. netDb.grossClass = first.meterClass;
  227. netDb.grossGroup = first.meterGroup;
  228. //netDb.actualFirst2No = ""; //皮重计量作业编号
  229. netDb.tareWeight = PbCache.lockWgt; //皮重
  230. netDb.tareTime = DateTime.Now;
  231. netDb.baseSpot2No = PbCache.sportInfo.baseSpotNo; //皮重计量点编号
  232. netDb.baseSpot2Name = PbCache.sportInfo.baseSpotName; //皮重计量点
  233. netDb.tareMode = string.IsNullOrEmpty(appUser.userid) ? "2" : "1"; //1远程计量,2智能计量
  234. netDb.netTime = DateTime.Now;
  235. netDb.tareGroup = appUser.userGroup;
  236. netDb.tareClass = appUser.userClass;
  237. netDb.tareManNo = appUser.userid;
  238. netDb.tareManName = appUser.username;
  239. netDb.netManNo = appUser.userid; //净重计量员编码
  240. netDb.netManName = appUser.username; //净重计量员名称
  241. netDb.netSpot3No = PbCache.sportInfo.baseSpotNo; //净重计量点编号
  242. netDb.netSpot3Name = PbCache.sportInfo.baseSpotName; //净重计量点
  243. netDb.addWeight = (first.addWeight == null ? 0 : first.addWeight.Value);
  244. //净重=毛-皮-附加重量
  245. netDb.netWeight = netDb.grossWeight - netDb.tareWeight - netDb.addWeight;
  246. netDb.netMode = "1"; //1:正常结净;2:匹配结净
  247. netDb.valueFlag = "0"; //0=有效,1=作废
  248. netDb.uploadFlag = "0"; //0=待审核;1:待上传;2=已上传
  249. //操作日志
  250. MeterMonitorNote monitorNote = new MeterMonitorNote();
  251. monitorNote.baseSpotNo = secondDb.baseSpotNo;
  252. monitorNote.baseSpotName = secondDb.baseSpotName;
  253. monitorNote.operationContent = string.Format("联达结净称重保存");
  254. monitorNote.operationTime = secondDb.createTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  255. monitorNote.carNo = secondDb.carNo;
  256. monitorNote.meterNoteSource = string.IsNullOrEmpty(appUser.userid) ? "0" : "4";
  257. monitorNote.meterManNo = appUser.userid;
  258. monitorNote.meterManName = appUser.username;
  259. //查一次当前结净重量,与当前预报对应的结净重量是否一致
  260. MeterWorkCarActualService amwcfs = new MeterWorkCarActualService();
  261. CommonPage<MeterWorkCarActual> cpc = new CommonPage<MeterWorkCarActual>();
  262. MeterWorkCarActual mwca = new MeterWorkCarActual();
  263. mwca.carNo = PbCache.collect.carno;
  264. mwca.predictionNo = scale.predictionNo.Replace("_", "");
  265. mwca.valueFlag = "0";//有效
  266. cpc.param = mwca;
  267. cpc.pageSize = 1;
  268. RESTfulResult<List<MeterWorkCarActual>> re = amwcfs.doQueryOneWf(cpc);
  269. if (re == null || !re.Succeed)
  270. {
  271. rt.result = false;
  272. rt.isError = true;
  273. rt.resultInfo = "称重数据保存失败";
  274. PbCache.ResultMessage = "计量失败:查询非联达结净数据时发生错误:" + re?.Message;
  275. }
  276. else
  277. {
  278. if (re.Data == null || re.Data.Count < 0)
  279. {
  280. rt.result = false;
  281. rt.isError = true;
  282. rt.resultInfo = "称重数据保存失败";
  283. PbCache.ResultMessage = "当前预报未找到正常过磅数据,请先去其它计量点结净再进行联达磅结净";
  284. }
  285. else if (re.Data.Count != 1)
  286. {
  287. rt.result = false;
  288. rt.isError = true;
  289. rt.resultInfo = "称重数据保存失败";
  290. PbCache.ResultMessage = "当前预报存在多条结净计量数据";
  291. }
  292. else if (Math.Abs(re.Data[0].netWeight.Value - netDb.netWeight.Value) > lianDaWgt)
  293. {
  294. rt.result = false;
  295. rt.isError = true;
  296. rt.resultInfo = "称重数据保存失败";
  297. PbCache.ResultMessage = $"联达净重减去正常结净净重的绝对值大于{lianDaWgt}kg";
  298. }
  299. else
  300. {
  301. RESTfulResult<string> rmI = mwcfs.doAddNetLianDaWf(secondDb, netDb, monitorNote);
  302. if (rmI.Succeed)
  303. {
  304. rt.result = true;
  305. rt.resultInfo = "称重完成";
  306. PbCache.ResultMessage = "称重完成";
  307. PbCache.actualFirstNo = rmI.Data;
  308. PbCache.strQRCode = rmI.Message;
  309. PbCache.isTareWeight = true;//皮重
  310. RESTfulResult<string> RESTfulResult = termTareDate.abolishForCSharp(new MeterBaseTermTareData { carNo = netDb.carNo });
  311. if (RESTfulResult.Succeed)
  312. {
  313. if (!string.IsNullOrEmpty(RESTfulResult.Message))
  314. {
  315. PbCache.ResultMessage = PbCache.ResultMessage + ";请注意期限皮重已作废";
  316. }
  317. }
  318. else
  319. {
  320. PbCache.ResultMessage = PbCache.ResultMessage + ";作废期限皮重异常,请点击【语音求助】联系计量员";
  321. }
  322. }
  323. else
  324. {
  325. rt.result = false;
  326. rt.isError = true;
  327. rt.resultInfo = "称重数据保存失败";
  328. PbCache.ResultMessage = "计量失败:" + rmI.ResultMessage;
  329. }
  330. }
  331. }
  332. }
  333. }
  334. else
  335. {
  336. PbCache.ResultMessage = string.Format("当前预报[{0}]存在多条未结净数据", scale.predictionNo);
  337. rt.resultInfo = "找到多条未结净数据";
  338. rt.result = false;
  339. rt.isError = true;
  340. }
  341. }
  342. else
  343. {
  344. //本次是过毛重
  345. vw.ValidNotInnerMethod(scale);
  346. if (PbCache.monitorResult.haveHisTare)
  347. {
  348. long meterWeight = (PbCache.tareCount.contrastTypeNo == "001012001" ? PbCache.monitorResult.hisTareData[0].upWeight.Value : PbCache.monitorResult.hisTareData[0].avgWeight.Value);
  349. double maxWgt = 0, minWgt = 0, rateV = 0;
  350. if (PbCache.tareCount.countTypeNo == "001011002") //按比例
  351. {
  352. if (PbCache.tareCount.rateValue != null)
  353. {
  354. rateV = PbCache.tareCount.rateValue.Value / 100;
  355. }
  356. maxWgt = meterWeight * (1 + rateV);
  357. minWgt = meterWeight * (1 - rateV);
  358. }
  359. else //固重
  360. {
  361. maxWgt = meterWeight + (PbCache.tareCount.fixedWeightValue == null ? 0 : PbCache.tareCount.fixedWeightValue.Value);
  362. minWgt = meterWeight - (PbCache.tareCount.fixedWeightValue == null ? 0 : PbCache.tareCount.fixedWeightValue.Value);
  363. }
  364. //如果不验证重量则可跳过这个逻辑,否则:当前重量-皮重需要>=1000
  365. if (PbCache.monitor.validWgt == "1")
  366. {
  367. //当前重量是皮重,或者小于最小皮重的数据
  368. if (PbCache.lockWgt < minWgt)
  369. {
  370. rt.result = false;
  371. rt.isError = true;
  372. rt.resultInfo = "当前毛重介于皮重及毛重之间无法计量"; //语音
  373. //2021年5月10日界面显示单位,调整为T
  374. PbCache.ResultMessage = "当前重量被判定为皮重,需先计量毛重再计量皮重," +
  375. "历史皮重为[" + Math.Round((double)meterWeight / 1000, 2) + "] T ,请点【语音求助】,由司秤工处理!"; //界面提示信息
  376. return rt;
  377. }
  378. else if (PbCache.lockWgt < maxWgt)
  379. {
  380. rt.result = false;
  381. rt.isError = true;
  382. rt.resultInfo = "当前毛重介于皮重及毛重之间无法计量";
  383. PbCache.ResultMessage = "当前为毛重计量,计量重量[ " + PbCache.lockWgt + " ]介于皮重及毛重之间无法计量," +
  384. "历史皮重为[" + Math.Round((double)meterWeight / 1000, 2) + "] T ,请点【语音求助】,由司秤工处理!";
  385. return rt;
  386. }
  387. }
  388. }
  389. //验证物料时间段
  390. validMatTime vmt = new validMatTime();
  391. vmt.ValidMethod(scale, "1");
  392. if (!PbCache.monitorResult.valid_mat_time)
  393. {
  394. rt.result = false;
  395. rt.isError = true;
  396. rt.resultInfo = PbCache.ResultMessage;
  397. return rt;
  398. }
  399. //验证危化品验证
  400. validExceedWgt vew = new validExceedWgt();
  401. vew.validMatMethod(scale, "1", null);
  402. if (!PbCache.monitorResult.valid_exceed_wgt)
  403. {
  404. rt.result = false;
  405. rt.isError = true;
  406. return rt;
  407. }
  408. //验证预报超差信息
  409. validPredictionDiff vpd = new validPredictionDiff();
  410. vpd.ValidMethod(scale, "1", null); //验证毛重
  411. if (!PbCache.monitorResult.valid_prediction_diff)
  412. {
  413. rt.result = false;
  414. rt.isError = true;
  415. rt.resultInfo = PbCache.ResultMessage;
  416. return rt;
  417. }
  418. //验证联达码头;江西联达联达料场,预报超差
  419. validLianDaWgtDiff lianDaWgtDiff = new validLianDaWgtDiff();
  420. lianDaWgtDiff.ValidMethod(scale, "1", null); //验证毛重
  421. if (!PbCache.monitorResult.valid_prediction_diff)
  422. {
  423. rt.result = false;
  424. rt.isError = true;
  425. rt.resultInfo = PbCache.ResultMessage;
  426. return rt;
  427. }
  428. //验证两次计量时间间隔
  429. validTimeInterval vti = new validTimeInterval();
  430. vti.ValidMethod(scale, "1", null);
  431. if (!PbCache.monitorResult.valid_time_interval)
  432. {
  433. rt.result = false;
  434. rt.isError = true;
  435. rt.resultInfo = PbCache.ResultMessage;
  436. return rt;
  437. }
  438. //验证通过,保存毛重信息***********************
  439. MeterWorkCarActualFirst mwaf = new MeterWorkCarActualFirst();
  440. scale.predictionNo += "_";
  441. //相同名称的均赋值一次
  442. EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
  443. mwaf = entityBase.format<MeterWorkCarActualFirst>(scale, mwaf);
  444. mwaf.actualFirstNo = DateTime.Now.ToString("yyyyMMdd");//10
  445. mwaf.meterWeight = PbCache.lockWgt;//计量重量
  446. mwaf.addWeight = PbCache.addWgt;//附加重量
  447. mwaf.weightType = "0"; //0=毛重;1=常规皮重;2=期限皮重;3=历史皮重;4=标识皮重;5=自重皮重
  448. mwaf.createManNo = appUser.userid;
  449. mwaf.createManName = appUser.username;
  450. mwaf.meterGroup = appUser.userGroup;
  451. mwaf.meterClass = appUser.userClass;
  452. mwaf.createTime = DateTime.Now;
  453. mwaf.baseSpotNo = PbCache.sportInfo.baseSpotNo;//计量点编号
  454. mwaf.baseSpotName = PbCache.sportInfo.baseSpotName;
  455. //mwaf.memo = "";
  456. mwaf.valueFlag = "1"; //0有效
  457. mwaf.updateManName = "";
  458. mwaf.updateManNo = "";
  459. mwaf.updateTime = null;
  460. mwaf.checkFlag = "0"; //0未审核
  461. mwaf.meterMode = string.IsNullOrEmpty(appUser.userid) ? "2" : "1"; //1远程计量,2智能计量
  462. mwaf.addWeight = PbCache.addWgt;
  463. //操作日志
  464. MeterMonitorNote monitorNote = new MeterMonitorNote();
  465. monitorNote.baseSpotNo = mwaf.baseSpotNo;
  466. monitorNote.baseSpotName = mwaf.baseSpotName;
  467. monitorNote.operationContent = string.Format("联达称重保存");
  468. monitorNote.operationTime = mwaf.createTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  469. monitorNote.carNo = mwaf.carNo;
  470. monitorNote.meterNoteSource = string.IsNullOrEmpty(appUser.userid) ? "0" : "4";
  471. monitorNote.meterManNo = appUser.userid;
  472. monitorNote.meterManName = appUser.username;
  473. RESTfulResult<string> rmI = mwcfs.doAddLianDaWf(mwaf, monitorNote);
  474. if (rmI.Succeed)
  475. {
  476. rt.result = true;
  477. rt.resultInfo = "称重完成";
  478. PbCache.ResultMessage = "称重完成";
  479. PbCache.actualFirstNo = rmI.Data;
  480. PbCache.strQRCode = rmI.Message;
  481. PbCache.isTareWeight = false;//毛重
  482. RESTfulResult<string> RESTfulResult = termTareDate.abolishForCSharp(new MeterBaseTermTareData { carNo = mwaf.carNo });
  483. if (RESTfulResult.Succeed)
  484. {
  485. if (!string.IsNullOrEmpty(RESTfulResult.Message))
  486. {
  487. PbCache.ResultMessage = PbCache.ResultMessage + ";请注意期限皮重已作废";
  488. }
  489. }
  490. else
  491. {
  492. PbCache.ResultMessage = PbCache.ResultMessage + ";作废期限皮重异常,请点击【语音求助】联系计量员";
  493. }
  494. }
  495. else
  496. {
  497. rt.result = false;
  498. rt.isError = true;
  499. rt.resultInfo = "称重数据保存失败";
  500. PbCache.ResultMessage = "计量失败:" + rmI.ResultMessage;
  501. }
  502. }
  503. return rt;
  504. }
  505. }
  506. }