InnerCarJISCO.cs 194 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Common.DbOption.work;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace MeterSceneLibrary
  9. {
  10. /// <summary>
  11. /// 酒钢厂内车辆计量业务
  12. /// </summary>
  13. public class InnerCarJISCO
  14. {
  15. // 一次计量数据
  16. private MeterWorkCarActualFirstService mwcfs = new MeterWorkCarActualFirstService();
  17. // 重量类型预处理表
  18. private MeterWorkPreWgttypeService wgttypeService = new MeterWorkPreWgttypeService();
  19. // 车辆委托表
  20. private PreTrackScaleService preTrackScaleService = new PreTrackScaleService();
  21. // 留期限皮操作
  22. private MeterBaseTermTareDataService termTareDate = new MeterBaseTermTareDataService();
  23. private MeterBaseSpotInfoService meterBaseSpotInfoService = new MeterBaseSpotInfoService();
  24. private rtInfo rt = new rtInfo();
  25. // 构建一次计量数据
  26. private MeterWorkCarActualFirst mwaf = new MeterWorkCarActualFirst();
  27. private MeterBaseCarService carService = new MeterBaseCarService();
  28. private MeterBaseSpecialUnitService meterBaseSpecialUnitService = new MeterBaseSpecialUnitService();
  29. // 结净最小值,默认取配置文件
  30. private double diffrentWgt = AppConfigCache.differenceWgt;
  31. // 根据称点查询监控信息
  32. private RESTfulResult<List<MeterWorkMonitor>> listMonitor;
  33. // 根据车号查询委托表中未使用和使用中的委托
  34. private List<PreTrackScale> listPreScale;
  35. private JISCO.SaveMethod saveMethod = new JISCO.SaveMethod();
  36. public rtInfo MeterMethod(PreTrackScale scale)
  37. {
  38. Log lg = Log.GetInstance();
  39. rt.isError = false;
  40. string ResultMessage = "";
  41. bool isError = false;
  42. //根据称点查询监控信息
  43. MeterWorkMonitorService meterWorkMonitorService = new MeterWorkMonitorService();
  44. listMonitor = meterWorkMonitorService.doQueryOneWf(new MeterWorkMonitor { pointNo = PbCache.sportInfo.baseSpotNo });
  45. mwaf.carNo = PbCache.lockCarNo;
  46. mwaf.weightType = ""; // 默认重量类型为空
  47. mwaf.actualFirstNo = DateTime.Now.ToString("yyyyMMdd");//10
  48. mwaf.meterWeight = PbCache.lockWgt;//计量重量
  49. mwaf.addWeight = PbCache.addWgt;//附加重量
  50. mwaf.createManNo = "admin";
  51. mwaf.createManName = "admin";
  52. mwaf.meterGroup = "";
  53. mwaf.meterClass = "";
  54. mwaf.createManNo = "SYSTEM";
  55. mwaf.createManName = "system";
  56. mwaf.createTime = DateTime.Now;
  57. mwaf.baseSpotNo = PbCache.sportInfo.baseSpotNo;//计量点编号
  58. mwaf.baseSpotName = PbCache.sportInfo.baseSpotName;
  59. //mwaf.memo = "";
  60. mwaf.valueFlag = "1"; //状态(0 = 作废,1 = 有效(已匹配),2 = 结净)
  61. mwaf.updateManName = "";
  62. mwaf.updateManNo = "";
  63. mwaf.updateTime = null;
  64. mwaf.checkFlag = "1"; //0未审核,1已审核
  65. mwaf.meterMode = "2"; //1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
  66. mwaf.addWeight = PbCache.addWgt;
  67. mwaf.dataSource = "1"; //数据来源(1=智能终端,2=本地计量,3=应急计量,4=手动录入(计量票据录入))
  68. PbCache.isActual = false;
  69. PbCache.isInnerCar = false;
  70. PbCache.ResultMessage = "";
  71. PbCache.monitorResultMessage = "";
  72. PbCache.LEDResultMessage = "";
  73. // 根据车号查询重量类型预处理表
  74. RESTfulResult<List<MeterWorkPreWgttype>> rmX = wgttypeService.doQueryWf(new MeterWorkPreWgttype { carNo = PbCache.lockCarNo, valueFlag = "1" });
  75. // 不存在未使用的重量类型数据
  76. if (rmX.Succeed)
  77. {
  78. List<MeterWorkPreWgttype> list = rmX.Data;
  79. // 不存在一次预处理数据
  80. if (list == null || list.Count == 0)
  81. {
  82. /* a. 程序报警
  83. * b. 自动进行语音求助
  84. */
  85. rt = saveMethod.doError("未选择称重类型,请选择后开始计量");
  86. PbCache.voiceType = 21;
  87. PbCache.monitorResultMessage = "未选择称重类型,请选择后开始计量";
  88. PbCache.LEDResultMessage = "未选择称重类型,请选择后开始计量";
  89. PbCache.ResultMessage = "未选择称重类型,请选择后开始计量";
  90. }
  91. // 存在一条预处理数据
  92. else if (list == null || list.Count == 1)
  93. {
  94. //拿到车辆
  95. RESTfulResult<List<MeterBaseCar>> resCarList = carService.doQueryCarList(new MeterBaseCar { carNo = PbCache.lockCarNo });
  96. RESTfulResult<List<MeterBaseSpecialUnit>> sunitList = meterBaseSpecialUnitService.doQueryCarList(new MeterBaseSpecialUnit { unitNo = resCarList.Data[0].usetDepartmentNo });
  97. if (resCarList.Data[0].usetDepartmentNo == "888888")
  98. {}
  99. else
  100. {
  101. if (sunitList.Data == null || sunitList.Data.Count != 1)
  102. { }
  103. else
  104. {
  105. bool isGorss = rmX.Data[0].submitFlag == "1" && rmX.Data[0].weightTypeNo == "001033001";
  106. if (isGorss || rmX.Data[0].weightTypeNo == "001033002")
  107. { }
  108. else
  109. {
  110. rt = saveMethod.doError("");
  111. rt.resultInfo = string.Format("车号{0},当前毛重{1}吨,请确认重量", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  112. PbCache.LEDResultMessage = string.Format("车号{0},当前毛重{1}吨,请确认重量", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  113. PbCache.voiceType = 12;
  114. return rt;
  115. }
  116. }
  117. }
  118. // 查已选择的委托
  119. RESTfulResult<List<PreTrackScale>> rmScale = preTrackScaleService.doQueryByFlag(new PreTrackScale { carNo = PbCache.lockCarNo, lineDesc = "1" });
  120. if (rmScale.Succeed && rmScale.Data.Count == 1)
  121. {
  122. // 重量类型为期限皮重
  123. if (list[0].weightTypeNo == "001033003")
  124. {
  125. // 判断这个车是否有留存期限皮重的权限
  126. MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
  127. RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
  128. if (tareCarResult.Succeed)
  129. {
  130. // 没有期限皮重权限
  131. if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
  132. {
  133. rt = saveMethod.doError("该车辆没有期限皮重权限,请联系计量大厅");
  134. PbCache.monitorResultMessage = "该车辆没有期限皮重权限";
  135. }
  136. // 有期限皮重权限
  137. else if (tareCarResult.Data.Count >= 1)
  138. {
  139. // 正常保存期限皮重
  140. rt = saveMethod.doTermTareData();
  141. }
  142. }
  143. }
  144. // 重量类型为普通毛重/皮重
  145. else if (list[0].weightTypeNo == "001033001" || list[0].weightTypeNo == "001033002")
  146. {
  147. // 查询一次计量数据表
  148. RESTfulResult<List<MeterWorkCarActualFirst>> rmFirst = mwcfs.doQueryByFlag(new MeterWorkCarActualFirst { carNo = PbCache.lockCarNo });
  149. if (rmX.Succeed)
  150. {
  151. List<MeterWorkCarActualFirst> firstList = rmFirst.Data;
  152. // 不存在有效的一次计量数据
  153. if (firstList == null || firstList.Count == 0)
  154. {
  155. // 历史皮重验证
  156. rt = saveMethod.validHisTare(list[0].weightTypeNo);
  157. // 重量类型为皮重且在皮重误差内
  158. if (list[0].weightTypeNo == "001033002" && (PbCache.monitorResult.valid_wgt == true || listMonitor.Data[0].validWgt == "0"))
  159. {
  160. /*sds
  161. * a. 正常保存重量匹配委托
  162. * b. 提示称重完成
  163. */
  164. mwaf.weightType = "1";
  165. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  166. PbCache.voiceType = 1;
  167. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  168. }
  169. // 重量类型为皮重且在皮重误差外
  170. else if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == false && listMonitor.Data[0].validWgt == "1")
  171. {
  172. if (PbCache.ResultMessage == "")
  173. {
  174. PbCache.ResultMessage = "重量类型为皮重且不在皮重误差内";
  175. }
  176. PbCache.voiceType = 13;
  177. rt = saveMethod.doError(PbCache.ResultMessage);
  178. rt.isWarn = true;
  179. rt.WarnContent = "validWgt";
  180. }
  181. // 重量类型为毛重,在皮重误差内
  182. else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == true && listMonitor.Data[0].validWgt == "1")
  183. {
  184. if (PbCache.ResultMessage == "")
  185. {
  186. PbCache.ResultMessage = "重量类型为毛重,在皮重误差内";
  187. }
  188. PbCache.voiceType = 23;
  189. rt = saveMethod.doError(PbCache.ResultMessage);
  190. rt.isWarn = true;
  191. rt.WarnContent = "validWgt";
  192. }
  193. // 重量类型为毛重,不在皮重误差内
  194. else if (list[0].weightTypeNo == "001033001" && (PbCache.monitorResult.valid_wgt == false || listMonitor.Data[0].validWgt == "0"))
  195. {
  196. #region 期限皮注释
  197. //// 判断车辆是否具有期限皮重权限
  198. //MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
  199. //RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
  200. //if (tareCarResult.Succeed)
  201. //{
  202. // // 没有期限皮重权限
  203. // if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
  204. // {
  205. // mwaf.weightType = "0";
  206. // rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  207. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  208. // }
  209. // // 有期限皮重权限
  210. // else if (tareCarResult.Data.Count >= 1)
  211. // {
  212. // //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
  213. // string sqls = @"select t.matter_no id, t.matter_name text
  214. // from meter_base_matter_info t
  215. // where t.allowed_tare_weight = '1'
  216. // and t.valid_flag = '1'
  217. // and t.matter_no='" + rmScale.Data[0].matterNo + @"'";
  218. // PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
  219. // RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
  220. // if (rmT.Succeed)
  221. // {
  222. // if (rmT.Data != null && rmT.Data.Count > 0)
  223. // {
  224. // }
  225. // else
  226. // {
  227. // mwaf.weightType = "0";
  228. // // 只保存一次计量数据
  229. // rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  230. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  231. // }
  232. // }
  233. // }
  234. //}
  235. #endregion
  236. //判断称点是否允许期限皮重
  237. if (PbCache.sportInfo.allowedTareWeight == "1")
  238. {
  239. #region 车号-物料-路线
  240. if (AppConfigCache.TareControlType == "1")
  241. {
  242. // 判断收发货单位是否具有期限皮重权限
  243. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  244. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  245. meterBaseUnitInfo.forwardingUnitName = rmScale.Data[0].forwardingUnitName;
  246. meterBaseUnitInfo.forwardingUnitNo = rmScale.Data[0].forwardingUnitNo;
  247. meterBaseUnitInfo.receivingUnitName = rmScale.Data[0].receivingUintName;
  248. meterBaseUnitInfo.receivingUnitNo = rmScale.Data[0].receivingUintNo;
  249. meterBaseUnitInfo.matterNo = rmScale.Data[0].matterNo;
  250. meterBaseUnitInfo.matterName = rmScale.Data[0].matterName;
  251. meterBaseUnitInfo.allowedTareWeight = "1";
  252. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  253. if (tareUnitResult.Succeed)
  254. {
  255. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  256. {
  257. mwaf.weightType = "0";
  258. // 只保存一次计量数据
  259. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  260. PbCache.voiceType = 1;
  261. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  262. }
  263. else
  264. {
  265. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  266. {
  267. mwaf.weightType = "0";
  268. // 只保存一次计量数据
  269. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  270. PbCache.voiceType = 1;
  271. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  272. }
  273. else
  274. {
  275. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  276. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  277. if (termTareData.Succeed)
  278. {
  279. if (termTareData.Data == null)
  280. {
  281. mwaf.weightType = "0";
  282. // 只保存一次计量数据
  283. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  284. rt.resultInfo += ",期限皮无效,请留存期限皮";
  285. PbCache.voiceType = 15;
  286. PbCache.ResultMessage = "计量成功,期限皮无效,请留存期限皮";
  287. PbCache.monitorResultMessage = "计量成功,期限皮无效,请留存期限皮";
  288. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成,期限皮无效", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  289. }
  290. else
  291. {
  292. // 存在使用期限皮重权限,并使用期限皮重结净
  293. List<string> l = new List<string>();
  294. l.Add("create");
  295. //给一次数据匹配委托
  296. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  297. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  298. mwaf.isPreScale = "1";
  299. mwaf.weightType = "0";
  300. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  301. rt.resultInfo += ",期限皮结净";
  302. PbCache.voiceType = 16;
  303. PbCache.ResultMessage = "计量完成,期限皮结净";
  304. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(PbCache.lockWgt - termTareData.Data.meterWeight.Value) / 1000), 2));
  305. }
  306. }
  307. }
  308. }
  309. }
  310. }
  311. #endregion
  312. #region 车号-物料-称点
  313. if (AppConfigCache.TareControlType == "2")
  314. {
  315. // 判断称点是否具有期限皮重权限
  316. MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
  317. meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
  318. meterBaseSpotInfo.allowedTareWeight = "1";
  319. RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
  320. if (tareSpotResult.Succeed)
  321. {
  322. if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
  323. {
  324. mwaf.weightType = "0";
  325. // 只保存一次计量数据
  326. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  327. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  328. }
  329. else
  330. {
  331. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  332. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  333. if (termTareData.Succeed)
  334. {
  335. if (termTareData.Data == null)
  336. {
  337. mwaf.weightType = "0";
  338. // 只保存一次计量数据
  339. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  340. rt.resultInfo += ",期限皮不存在或者已过期,请留存期限皮";
  341. PbCache.ResultMessage = "计量成功,期限皮不存在或者已过期,请留存期限皮";
  342. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮不存在或者已过期请留存期限皮", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  343. }
  344. else
  345. {
  346. // 存在使用期限皮重权限,并使用期限皮重结净
  347. List<string> l = new List<string>();
  348. l.Add("create");
  349. //给一次数据匹配委托
  350. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  351. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  352. mwaf.isPreScale = "1";
  353. mwaf.weightType = "0";
  354. PbCache.ResultMessage = "计量完成,期限皮结净";
  355. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  356. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  357. rt.resultInfo += ",期限皮结净";
  358. }
  359. }
  360. }
  361. }
  362. }
  363. #endregion
  364. #region 车号-物料
  365. if (AppConfigCache.TareControlType == "3")
  366. {
  367. // 判断收发货单位是否具有期限皮重权限
  368. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  369. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  370. meterBaseUnitInfo.matterNo = rmScale.Data[0].matterNo;
  371. meterBaseUnitInfo.matterName = rmScale.Data[0].matterName;
  372. meterBaseUnitInfo.allowedTareWeight = "1";
  373. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  374. if (tareUnitResult.Succeed)
  375. {
  376. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  377. {
  378. mwaf.weightType = "0";
  379. // 只保存一次计量数据
  380. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  381. PbCache.voiceType = 1;
  382. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  383. }
  384. else
  385. {
  386. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  387. {
  388. mwaf.weightType = "0";
  389. // 只保存一次计量数据
  390. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  391. PbCache.voiceType = 1;
  392. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  393. }
  394. else
  395. {
  396. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  397. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  398. if (termTareData.Succeed)
  399. {
  400. if (termTareData.Data == null)
  401. {
  402. mwaf.weightType = "0";
  403. // 只保存一次计量数据
  404. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  405. PbCache.voiceType = 15;
  406. rt.resultInfo += ",计量成功,期限皮无效,请留存期限皮";
  407. PbCache.ResultMessage = "计量成功,期限皮无效,请留存期限皮";
  408. PbCache.monitorResultMessage = "计量成功,期限皮无效,请留存期限皮";
  409. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成,期限皮无效", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  410. }
  411. else
  412. {
  413. // 存在使用期限皮重权限,并使用期限皮重结净
  414. List<string> l = new List<string>();
  415. l.Add("create");
  416. //给一次数据匹配委托
  417. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  418. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  419. mwaf.isPreScale = "1";
  420. mwaf.weightType = "0";
  421. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  422. rt.resultInfo += ",期限皮结净";
  423. PbCache.voiceType = 16;
  424. PbCache.ResultMessage = "计量完成,期限皮结净";
  425. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(PbCache.lockWgt - termTareData.Data.meterWeight.Value) / 1000), 2));
  426. }
  427. }
  428. }
  429. }
  430. }
  431. }
  432. #endregion
  433. }
  434. else
  435. {
  436. mwaf.weightType = "0";
  437. // 只保存一次计量数据
  438. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  439. PbCache.voiceType = 1;
  440. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  441. }
  442. }
  443. }
  444. // 只存在一条有效的一次计量数据
  445. else if (firstList == null || firstList.Count == 1)
  446. {
  447. // 读结净最小值配置
  448. ComBaseInfoService cbis = new ComBaseInfoService();
  449. RESTfulResult<List<ComBaseInfo>> res = cbis.doQueryBaseList(new ComBaseInfo { baseCode = "001031001" });
  450. if (res.Succeed)
  451. {
  452. if (res.Data != null && res.Data.Count == 1)
  453. {
  454. try
  455. {
  456. diffrentWgt = Double.Parse(res.Data[0].baseName);
  457. }
  458. finally
  459. {
  460. }
  461. }
  462. }
  463. if (firstList[0].weightType == "0" && list[0].weightTypeNo == "001033001")
  464. {
  465. #region 期限皮注释
  466. //// 判断车辆是否具有期限皮重权限
  467. //MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
  468. //RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
  469. //if (tareCarResult.Succeed)
  470. //{
  471. // // 没有期限皮重权限
  472. // if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
  473. // {
  474. // mwaf.weightType = "0";
  475. // rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  476. // rt.resultInfo = "之前存在一个未结净的毛重";
  477. // PbCache.ResultMessage = "之前存在一个未结净的毛重";
  478. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  479. // PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  480. // rt.isWarn = true;
  481. // rt.WarnContent = "validWgt";
  482. // }
  483. // // 有期限皮重权限
  484. // else if (tareCarResult.Data.Count >= 1)
  485. // {
  486. // //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
  487. // string sqls = @"select t.matter_no id, t.matter_name text
  488. // from meter_base_matter_info t
  489. // where t.allowed_tare_weight = '1'
  490. // and t.valid_flag = '1'
  491. // and t.matter_no='" + scales.Data[0].matterNo + "'";
  492. // PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
  493. // RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
  494. // if (rmT.Succeed)
  495. // {
  496. // // 存在使用期限皮重权限,并使用期限皮重结净
  497. // if (rmT.Data != null && rmT.Data.Count > 0)
  498. // {
  499. // }
  500. // else
  501. // {
  502. // mwaf.weightType = "0";
  503. // rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  504. // rt.resultInfo = "之前存在一个未结净的毛重";
  505. // PbCache.ResultMessage = "之前存在一个未结净的毛重";
  506. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  507. // PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  508. // rt.isWarn = true;
  509. // rt.WarnContent = "validWgt";
  510. // }
  511. // }
  512. // }
  513. //}
  514. #endregion
  515. //判断称点是否允许期限皮重
  516. if (PbCache.sportInfo.allowedTareWeight == "1")
  517. {
  518. #region 车号-物料-路线
  519. if (AppConfigCache.TareControlType == "1")
  520. {
  521. // 判断收发货单位是否具有期限皮重权限
  522. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  523. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  524. meterBaseUnitInfo.forwardingUnitName = rmScale.Data[0].forwardingUnitName;
  525. meterBaseUnitInfo.forwardingUnitNo = rmScale.Data[0].forwardingUnitNo;
  526. meterBaseUnitInfo.receivingUnitName = rmScale.Data[0].receivingUintName;
  527. meterBaseUnitInfo.receivingUnitNo = rmScale.Data[0].receivingUintNo;
  528. meterBaseUnitInfo.matterNo = rmScale.Data[0].matterNo;
  529. meterBaseUnitInfo.matterName = rmScale.Data[0].matterName;
  530. meterBaseUnitInfo.allowedTareWeight = "1";
  531. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  532. if (tareUnitResult.Succeed)
  533. {
  534. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  535. {
  536. mwaf.weightType = "0";
  537. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  538. rt.resultInfo = "之前存在一个未结净的毛重";
  539. PbCache.voiceType = 11;
  540. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  541. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  542. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  543. rt.isWarn = true;
  544. rt.WarnContent = "validWgt";
  545. }
  546. else
  547. {
  548. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  549. {
  550. mwaf.weightType = "0";
  551. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  552. rt.resultInfo = "之前存在一个未结净的毛重";
  553. PbCache.voiceType = 11;
  554. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  555. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  556. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  557. rt.isWarn = true;
  558. rt.WarnContent = "validWgt";
  559. }
  560. else
  561. {
  562. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  563. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  564. if (termTareData.Succeed)
  565. {
  566. if (termTareData.Data == null)
  567. {
  568. mwaf.weightType = "0";
  569. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  570. rt.resultInfo = "期限皮过期,之前存在一个未结净的毛重";
  571. PbCache.voiceType = 17;
  572. PbCache.ResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  573. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,期限皮过期,之前存在一个未结净的毛重", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  574. PbCache.monitorResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  575. rt.isWarn = true;
  576. rt.WarnContent = "validWgt";
  577. }
  578. else
  579. {
  580. // 存在使用期限皮重权限,并使用期限皮重结净
  581. List<string> l = new List<string>();
  582. l.Add("create");
  583. //给一次数据匹配委托
  584. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  585. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  586. mwaf.isPreScale = "1";
  587. mwaf.weightType = "0";
  588. PbCache.voiceType = 16;
  589. PbCache.ResultMessage = "计量完成,期限皮结净";
  590. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(PbCache.lockWgt - termTareData.Data.meterWeight.Value) / 1000), 2));
  591. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  592. rt.resultInfo += ",期限皮结净";
  593. }
  594. }
  595. }
  596. }
  597. }
  598. }
  599. #endregion
  600. #region 车号-物料-称点
  601. if (AppConfigCache.TareControlType == "2")
  602. {
  603. // 判断收发货单位是否具有期限皮重权限
  604. // 判断称点是否具有期限皮重权限
  605. MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
  606. meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
  607. meterBaseSpotInfo.allowedTareWeight = "1";
  608. RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
  609. if (tareSpotResult.Succeed)
  610. {
  611. if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
  612. {
  613. // 正常结净
  614. //给一次数据匹配委托
  615. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  616. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  617. mwaf.isPreScale = "1";
  618. mwaf.weightType = "1";
  619. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  620. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  621. }
  622. else
  623. {
  624. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  625. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  626. if (termTareData.Succeed)
  627. {
  628. if (termTareData.Data == null)
  629. {
  630. mwaf.weightType = "0";
  631. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  632. rt.resultInfo = "期限皮过期并之前存在一个未结净的毛重";
  633. PbCache.ResultMessage = "期限皮过期并之前存在一个未结净的毛重";
  634. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,期限皮过期并之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  635. PbCache.monitorResultMessage = "期限皮过期并之前存在一个未结净的毛重";
  636. rt.isWarn = true;
  637. rt.WarnContent = "validWgt";
  638. }
  639. else
  640. {
  641. // 存在使用期限皮重权限,并使用期限皮重结净
  642. List<string> l = new List<string>();
  643. l.Add("create");
  644. //给一次数据匹配委托
  645. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  646. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  647. mwaf.isPreScale = "1";
  648. mwaf.weightType = "1";
  649. PbCache.ResultMessage = "计量完成,期限皮结净";
  650. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  651. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  652. rt.resultInfo += ",期限皮结净";
  653. }
  654. }
  655. }
  656. }
  657. }
  658. #endregion
  659. #region 车号-物料
  660. if (AppConfigCache.TareControlType == "3")
  661. {
  662. // 判断收发货单位是否具有期限皮重权限
  663. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  664. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  665. meterBaseUnitInfo.matterNo = rmScale.Data[0].matterNo;
  666. meterBaseUnitInfo.matterName = rmScale.Data[0].matterName;
  667. meterBaseUnitInfo.allowedTareWeight = "1";
  668. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  669. if (tareUnitResult.Succeed)
  670. {
  671. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  672. {
  673. mwaf.weightType = "0";
  674. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  675. rt.resultInfo = "之前存在一个未结净的毛重";
  676. PbCache.voiceType = 11;
  677. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  678. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  679. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  680. rt.isWarn = true;
  681. rt.WarnContent = "validWgt";
  682. }
  683. else
  684. {
  685. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  686. {
  687. mwaf.weightType = "0";
  688. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  689. rt.resultInfo = "之前存在一个未结净的毛重";
  690. PbCache.voiceType = 11;
  691. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  692. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  693. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  694. rt.isWarn = true;
  695. rt.WarnContent = "validWgt";
  696. }
  697. else
  698. {
  699. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  700. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  701. if (termTareData.Succeed)
  702. {
  703. if (termTareData.Data == null)
  704. {
  705. mwaf.weightType = "0";
  706. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  707. rt.resultInfo = "期限皮过期,之前存在一个未结净的毛重";
  708. PbCache.voiceType = 17;
  709. PbCache.ResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  710. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,期限皮过期,之前存在一个未结净的毛重", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  711. PbCache.monitorResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  712. rt.isWarn = true;
  713. rt.WarnContent = "validWgt";
  714. }
  715. else
  716. {
  717. // 存在使用期限皮重权限,并使用期限皮重结净
  718. List<string> l = new List<string>();
  719. l.Add("create");
  720. //给一次数据匹配委托
  721. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  722. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  723. mwaf.isPreScale = "1";
  724. mwaf.weightType = "0";
  725. PbCache.voiceType = 16;
  726. PbCache.ResultMessage = "计量完成,期限皮结净";
  727. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(PbCache.lockWgt - termTareData.Data.meterWeight.Value) / 1000), 2));
  728. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  729. rt.resultInfo += ",期限皮结净";
  730. }
  731. }
  732. }
  733. }
  734. }
  735. }
  736. #endregion
  737. }
  738. else
  739. {
  740. mwaf.weightType = "0";
  741. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  742. rt.resultInfo = "之前存在一个未结净的毛重";
  743. PbCache.voiceType = 11;
  744. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  745. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  746. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  747. rt.isWarn = true;
  748. rt.WarnContent = "validWgt";
  749. }
  750. return rt;
  751. }
  752. // 当次重量和上次重量满足结净最小值条件
  753. if (Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) > diffrentWgt || listMonitor.Data[0].validPredictionDiff == "0")
  754. {
  755. //判断上一次的一次数据是为皮重的,这次为毛重,上一次重量比这一次大;
  756. //上一次为皮重4200,这一次是毛重3200
  757. //if (firstList[0].weightType == "1" && list[0].weightTypeNo == "001033001" && rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt > 0)
  758. //{
  759. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  760. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  761. // mwaf.weightType = "0";
  762. // mwaf.isPreScale = "1";
  763. // mwaf.actualFirstNo = "";
  764. // PbCache.voiceType = 1;
  765. // rt = saveMethod.doNetError(rmScale.Data[0], firstList[0], mwaf, mwaf);
  766. // return rt;
  767. //}
  768. ////判断上一次的一次数据是为毛重的,这次为皮重,上一次重量比这一次小;
  769. //if (firstList[0].weightType == "0" && list[0].weightTypeNo == "001033002" && rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt < 0)
  770. //{
  771. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  772. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  773. // mwaf.weightType = "1";
  774. // mwaf.isPreScale = "1";
  775. // mwaf.actualFirstNo = "";
  776. // PbCache.voiceType = 1;
  777. // rt = saveMethod.doNetError(rmScale.Data[0], mwaf, firstList[0], mwaf);
  778. // return rt;
  779. //}
  780. // 查询当前秤点是否启用历史皮重判断(暂时不考虑此限制)By BourneCao
  781. // String spotNo = PbCache.sportInfo.baseSpotNo;
  782. // 历史皮重验证
  783. rt = saveMethod.validHisTare(list[0].weightTypeNo);
  784. // 重量类型为皮重且在皮重误差内,正常结净
  785. if (list[0].weightTypeNo == "001033002" && (PbCache.monitorResult.valid_wgt == true || listMonitor.Data[0].validWgt == "0"))
  786. {
  787. // 正常结净
  788. //给一次数据匹配委托
  789. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  790. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  791. mwaf.isPreScale = "1";
  792. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  793. PbCache.voiceType = 13;
  794. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  795. }
  796. // 重量类型为皮重且不在皮重误差内
  797. else if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == false && listMonitor.Data[0].validWgt == "1")
  798. {
  799. if (PbCache.ResultMessage == "")
  800. {
  801. PbCache.ResultMessage = "重量类型为皮重且不在皮重误差内";
  802. }
  803. PbCache.voiceType = 13;
  804. rt = saveMethod.doError(PbCache.ResultMessage);
  805. }
  806. // 重量类型为毛重,不在皮重误差内,正常结净
  807. else if (list[0].weightTypeNo == "001033001" && (PbCache.monitorResult.valid_wgt == false || listMonitor.Data[0].validWgt == "0"))
  808. {
  809. if (firstList[0].weightType == "0")
  810. {
  811. RESTfulResult<List<PreTrackScale>> scales = preTrackScaleService.doQueryWf(new PreTrackScale { predictionNo = firstList[0].predictionNo });
  812. #region 期限皮注释
  813. //// 判断车辆是否具有期限皮重权限
  814. //MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
  815. //RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
  816. //if (tareCarResult.Succeed)
  817. //{
  818. // // 没有期限皮重权限
  819. // if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
  820. // {
  821. // mwaf.weightType = "0";
  822. // rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  823. // rt.resultInfo = "之前存在一个未结净的毛重";
  824. // PbCache.ResultMessage = "之前存在一个未结净的毛重";
  825. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  826. // PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  827. // rt.isWarn = true;
  828. // rt.WarnContent = "validWgt";
  829. // }
  830. // // 有期限皮重权限
  831. // else if (tareCarResult.Data.Count >= 1)
  832. // {
  833. // //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
  834. // string sqls = @"select t.matter_no id, t.matter_name text
  835. // from meter_base_matter_info t
  836. // where t.allowed_tare_weight = '1'
  837. // and t.valid_flag = '1'
  838. // and t.matter_no='" + scales.Data[0].matterNo + "'";
  839. // PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
  840. // RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
  841. // if (rmT.Succeed)
  842. // {
  843. // // 存在使用期限皮重权限,并使用期限皮重结净
  844. // if (rmT.Data != null && rmT.Data.Count > 0)
  845. // {
  846. // }
  847. // else
  848. // {
  849. // mwaf.weightType = "0";
  850. // rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  851. // rt.resultInfo = "之前存在一个未结净的毛重";
  852. // PbCache.ResultMessage = "之前存在一个未结净的毛重";
  853. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  854. // PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  855. // rt.isWarn = true;
  856. // rt.WarnContent = "validWgt";
  857. // }
  858. // }
  859. // }
  860. //}
  861. #endregion
  862. //判断称点是否允许期限皮重
  863. if (PbCache.sportInfo.allowedTareWeight == "1")
  864. {
  865. #region 车号-物料-路线
  866. if (AppConfigCache.TareControlType == "1")
  867. {
  868. // 判断收发货单位是否具有期限皮重权限
  869. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  870. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  871. meterBaseUnitInfo.forwardingUnitName = scales.Data[0].forwardingUnitName;
  872. meterBaseUnitInfo.forwardingUnitNo = scales.Data[0].forwardingUnitNo;
  873. meterBaseUnitInfo.receivingUnitName = scales.Data[0].receivingUintName;
  874. meterBaseUnitInfo.receivingUnitNo = scales.Data[0].receivingUintNo;
  875. meterBaseUnitInfo.matterNo = scales.Data[0].matterNo;
  876. meterBaseUnitInfo.matterName = scales.Data[0].matterName;
  877. meterBaseUnitInfo.allowedTareWeight = "1";
  878. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  879. if (tareUnitResult.Succeed)
  880. {
  881. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  882. {
  883. mwaf.weightType = "0";
  884. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  885. rt.resultInfo = "之前存在一个未结净的毛重";
  886. PbCache.voiceType = 11;
  887. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  888. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  889. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  890. rt.isWarn = true;
  891. rt.WarnContent = "validWgt";
  892. }
  893. else
  894. {
  895. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  896. {
  897. mwaf.weightType = "0";
  898. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  899. rt.resultInfo = "之前存在一个未结净的毛重";
  900. PbCache.voiceType = 11;
  901. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  902. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  903. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  904. rt.isWarn = true;
  905. rt.WarnContent = "validWgt";
  906. }
  907. else
  908. {
  909. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  910. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  911. if (termTareData.Succeed)
  912. {
  913. if (termTareData.Data == null)
  914. {
  915. mwaf.weightType = "0";
  916. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  917. rt.resultInfo = "期限皮过期,之前存在一个未结净的毛重";
  918. PbCache.voiceType = 17;
  919. PbCache.ResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  920. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,期限皮过期,之前存在一个未结净的毛重", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  921. PbCache.monitorResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  922. rt.isWarn = true;
  923. rt.WarnContent = "validWgt";
  924. }
  925. else
  926. {
  927. // 存在使用期限皮重权限,并使用期限皮重结净
  928. List<string> l = new List<string>();
  929. l.Add("create");
  930. //给一次数据匹配委托
  931. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  932. mwaf = entityBase1.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  933. mwaf.isPreScale = "1";
  934. mwaf.weightType = "0";
  935. PbCache.voiceType = 16;
  936. PbCache.ResultMessage = "计量完成,期限皮结净";
  937. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(PbCache.lockWgt - termTareData.Data.meterWeight.Value) / 1000), 2));
  938. rt = saveMethod.doNetTermTare(scales.Data[0], mwaf);
  939. rt.resultInfo += ",期限皮结净";
  940. }
  941. }
  942. }
  943. }
  944. }
  945. }
  946. #endregion
  947. #region 车号-物料-称点
  948. if (AppConfigCache.TareControlType == "2")
  949. {
  950. // 判断收发货单位是否具有期限皮重权限
  951. // 判断称点是否具有期限皮重权限
  952. MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
  953. meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
  954. meterBaseSpotInfo.allowedTareWeight = "1";
  955. RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
  956. if (tareSpotResult.Succeed)
  957. {
  958. if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
  959. {
  960. // 正常结净
  961. //给一次数据匹配委托
  962. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  963. mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  964. mwaf.isPreScale = "1";
  965. mwaf.weightType = "1";
  966. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  967. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  968. }
  969. else
  970. {
  971. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  972. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  973. if (termTareData.Succeed)
  974. {
  975. if (termTareData.Data == null)
  976. {
  977. mwaf.weightType = "0";
  978. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  979. rt.resultInfo = "期限皮过期并之前存在一个未结净的毛重";
  980. PbCache.ResultMessage = "期限皮过期并之前存在一个未结净的毛重";
  981. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,期限皮过期并之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  982. PbCache.monitorResultMessage = "期限皮过期并之前存在一个未结净的毛重";
  983. rt.isWarn = true;
  984. rt.WarnContent = "validWgt";
  985. }
  986. else
  987. {
  988. // 存在使用期限皮重权限,并使用期限皮重结净
  989. List<string> l = new List<string>();
  990. l.Add("create");
  991. //给一次数据匹配委托
  992. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  993. mwaf = entityBase1.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  994. mwaf.isPreScale = "1";
  995. mwaf.weightType = "1";
  996. PbCache.ResultMessage = "计量完成,期限皮结净";
  997. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  998. rt = saveMethod.doNetTermTare(scales.Data[0], mwaf);
  999. rt.resultInfo += ",期限皮结净";
  1000. }
  1001. }
  1002. }
  1003. }
  1004. }
  1005. #endregion
  1006. #region 车号-物料
  1007. if (AppConfigCache.TareControlType == "3")
  1008. {
  1009. // 判断收发货单位是否具有期限皮重权限
  1010. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1011. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1012. meterBaseUnitInfo.matterNo = scales.Data[0].matterNo;
  1013. meterBaseUnitInfo.matterName = scales.Data[0].matterName;
  1014. meterBaseUnitInfo.allowedTareWeight = "1";
  1015. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1016. if (tareUnitResult.Succeed)
  1017. {
  1018. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1019. {
  1020. mwaf.weightType = "0";
  1021. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  1022. rt.resultInfo = "之前存在一个未结净的毛重";
  1023. PbCache.voiceType = 11;
  1024. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  1025. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1026. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  1027. rt.isWarn = true;
  1028. rt.WarnContent = "validWgt";
  1029. }
  1030. else
  1031. {
  1032. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1033. {
  1034. mwaf.weightType = "0";
  1035. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  1036. rt.resultInfo = "之前存在一个未结净的毛重";
  1037. PbCache.voiceType = 11;
  1038. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  1039. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1040. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  1041. rt.isWarn = true;
  1042. rt.WarnContent = "validWgt";
  1043. }
  1044. else
  1045. {
  1046. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1047. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1048. if (termTareData.Succeed)
  1049. {
  1050. if (termTareData.Data == null)
  1051. {
  1052. mwaf.weightType = "0";
  1053. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  1054. rt.resultInfo = "期限皮过期,之前存在一个未结净的毛重";
  1055. PbCache.voiceType = 17;
  1056. PbCache.ResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  1057. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,期限皮过期,之前存在一个未结净的毛重", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1058. PbCache.monitorResultMessage = "期限皮过期,之前存在一个未结净的毛重";
  1059. rt.isWarn = true;
  1060. rt.WarnContent = "validWgt";
  1061. }
  1062. else
  1063. {
  1064. // 存在使用期限皮重权限,并使用期限皮重结净
  1065. List<string> l = new List<string>();
  1066. l.Add("create");
  1067. //给一次数据匹配委托
  1068. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1069. mwaf = entityBase1.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1070. mwaf.isPreScale = "1";
  1071. mwaf.weightType = "0";
  1072. PbCache.voiceType = 16;
  1073. PbCache.ResultMessage = "计量完成,期限皮结净";
  1074. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(PbCache.lockWgt - termTareData.Data.meterWeight.Value) / 1000), 2));
  1075. rt = saveMethod.doNetTermTare(scales.Data[0], mwaf);
  1076. rt.resultInfo += ",期限皮结净";
  1077. }
  1078. }
  1079. }
  1080. }
  1081. }
  1082. }
  1083. #endregion
  1084. }
  1085. else
  1086. {
  1087. mwaf.weightType = "0";
  1088. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  1089. rt.resultInfo = "之前存在一个未结净的毛重";
  1090. PbCache.voiceType = 11;
  1091. PbCache.ResultMessage = "之前存在一个未结净的毛重";
  1092. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在一个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1093. PbCache.monitorResultMessage = "之前存在一个未结净的毛重";
  1094. rt.isWarn = true;
  1095. rt.WarnContent = "validWgt";
  1096. }
  1097. }
  1098. else
  1099. {
  1100. #region 期限皮注释
  1101. //// 判断车辆是否具有期限皮重权限
  1102. //MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
  1103. //RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1104. //if (tareCarResult.Succeed)
  1105. //{
  1106. // // 没有期限皮重权限
  1107. // if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
  1108. // {
  1109. // // 正常结净
  1110. // //给一次数据匹配委托
  1111. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1112. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1113. // mwaf.isPreScale = "1";
  1114. // mwaf.weightType = "0";
  1115. // rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1116. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1117. // }
  1118. // // 有期限皮重权限
  1119. // else if (tareCarResult.Data.Count >= 1)
  1120. // {
  1121. // //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
  1122. // string sqls = @"select t.matter_no id, t.matter_name text
  1123. // from meter_base_matter_info t
  1124. // where t.allowed_tare_weight = '1'
  1125. // and t.valid_flag = '1'
  1126. // and t.matter_no='" + rmScale.Data[0].matterNo + "'";
  1127. // PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
  1128. // RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
  1129. // if (rmT.Succeed)
  1130. // {
  1131. // // 存在使用期限皮重权限,并使用期限皮重结净
  1132. // if (rmT.Data != null && rmT.Data.Count > 0)
  1133. // {
  1134. // }
  1135. // else
  1136. // {
  1137. // // 正常结净
  1138. // //给一次数据匹配委托
  1139. // EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1140. // mwaf = entityBase2.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1141. // mwaf.isPreScale = "1";
  1142. // mwaf.weightType = "0";
  1143. // rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1144. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2},计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1145. // }
  1146. // }
  1147. // }
  1148. //}
  1149. #endregion
  1150. if (PbCache.sportInfo.allowedTareWeight == "1")
  1151. {
  1152. #region 车号-物料-路线
  1153. if (AppConfigCache.TareControlType == "1")
  1154. {
  1155. // 判断收发货单位是否具有期限皮重权限
  1156. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1157. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1158. meterBaseUnitInfo.forwardingUnitName = rmScale.Data[0].forwardingUnitName;
  1159. meterBaseUnitInfo.forwardingUnitNo = rmScale.Data[0].forwardingUnitNo;
  1160. meterBaseUnitInfo.receivingUnitName = rmScale.Data[0].receivingUintName;
  1161. meterBaseUnitInfo.receivingUnitNo = rmScale.Data[0].receivingUintNo;
  1162. meterBaseUnitInfo.matterNo = rmScale.Data[0].matterNo;
  1163. meterBaseUnitInfo.matterName = rmScale.Data[0].matterName;
  1164. meterBaseUnitInfo.allowedTareWeight = "1";
  1165. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1166. if (tareUnitResult.Succeed)
  1167. {
  1168. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1169. {
  1170. // 正常结净
  1171. //给一次数据匹配委托
  1172. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1173. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1174. mwaf.isPreScale = "1";
  1175. mwaf.weightType = "0";
  1176. PbCache.voiceType = 1;
  1177. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1178. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1179. }
  1180. else
  1181. {
  1182. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1183. {
  1184. // 正常结净
  1185. //给一次数据匹配委托
  1186. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1187. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1188. mwaf.isPreScale = "1";
  1189. mwaf.weightType = "0";
  1190. PbCache.voiceType = 1;
  1191. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1192. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1193. }
  1194. else
  1195. {
  1196. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1197. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1198. if (termTareData.Succeed)
  1199. {
  1200. // 正常结净
  1201. //给一次数据匹配委托
  1202. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1203. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1204. mwaf.isPreScale = "1";
  1205. mwaf.weightType = "0";
  1206. PbCache.voiceType = 9;
  1207. rt = saveMethod.doTermTareNet(rmScale.Data[0], mwaf, firstList[0]);
  1208. rt.resultInfo += ",留存期限皮成功";
  1209. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1210. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(firstList[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1211. //if (termTareData.Data == null)
  1212. //{
  1213. // 正常结净
  1214. //给一次数据匹配委托
  1215. //EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1216. //mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1217. //mwaf.isPreScale = "1";
  1218. //mwaf.weightType = "0";
  1219. //rt = saveMethod.doTermTareNet(rmScale.Data[0], mwaf, firstList[0]);
  1220. //rt.resultInfo += ",留存期限皮成功";
  1221. //PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1222. //PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1223. //}
  1224. //else
  1225. //{
  1226. // // 存在使用期限皮重权限,并使用期限皮重结净
  1227. // List<string> l = new List<string>();
  1228. // l.Add("create");
  1229. // //给一次数据匹配委托
  1230. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1231. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1232. // mwaf.isPreScale = "1";
  1233. // mwaf.weightType = "0";
  1234. // rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  1235. // rt.resultInfo += ",期限皮结净";
  1236. // PbCache.ResultMessage = "计量完成,期限皮结净";
  1237. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1238. //}
  1239. }
  1240. }
  1241. }
  1242. }
  1243. }
  1244. #endregion
  1245. #region 车号-物料-称点
  1246. if (AppConfigCache.TareControlType == "2")
  1247. {
  1248. // 判断收发货单位是否具有期限皮重权限
  1249. // 判断称点是否具有期限皮重权限
  1250. MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
  1251. meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
  1252. meterBaseSpotInfo.allowedTareWeight = "1";
  1253. RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
  1254. if (tareSpotResult.Succeed)
  1255. {
  1256. if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
  1257. {
  1258. // 正常结净
  1259. //给一次数据匹配委托
  1260. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1261. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1262. mwaf.isPreScale = "1";
  1263. mwaf.weightType = "0";
  1264. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1265. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1266. }
  1267. else
  1268. {
  1269. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1270. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1271. if (termTareData.Succeed)
  1272. {
  1273. if (termTareData.Data == null)
  1274. {
  1275. // 正常结净
  1276. //给一次数据匹配委托
  1277. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1278. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1279. mwaf.isPreScale = "1";
  1280. mwaf.weightType = "0";
  1281. rt = saveMethod.doTermTareNet(rmScale.Data[0], mwaf, firstList[0]);
  1282. rt.resultInfo += ",留存期限皮成功";
  1283. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1284. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1285. }
  1286. else
  1287. {
  1288. // 存在使用期限皮重权限,并使用期限皮重结净
  1289. List<string> l = new List<string>();
  1290. l.Add("create");
  1291. //给一次数据匹配委托
  1292. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1293. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1294. mwaf.isPreScale = "1";
  1295. mwaf.weightType = "0";
  1296. PbCache.ResultMessage = "计量完成,期限皮结净";
  1297. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1298. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  1299. rt.resultInfo += ",期限皮结净";
  1300. PbCache.ResultMessage = "计量完成,期限皮结净";
  1301. }
  1302. }
  1303. }
  1304. }
  1305. }
  1306. #endregion
  1307. #region 车号-物料
  1308. if (AppConfigCache.TareControlType == "3")
  1309. {
  1310. // 判断收发货单位是否具有期限皮重权限
  1311. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1312. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1313. meterBaseUnitInfo.matterNo = rmScale.Data[0].matterNo;
  1314. meterBaseUnitInfo.matterName = rmScale.Data[0].matterName;
  1315. meterBaseUnitInfo.allowedTareWeight = "1";
  1316. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1317. if (tareUnitResult.Succeed)
  1318. {
  1319. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1320. {
  1321. // 正常结净
  1322. //给一次数据匹配委托
  1323. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1324. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1325. mwaf.isPreScale = "1";
  1326. mwaf.weightType = "0";
  1327. PbCache.voiceType = 1;
  1328. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1329. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1330. }
  1331. else
  1332. {
  1333. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1334. {
  1335. // 正常结净
  1336. //给一次数据匹配委托
  1337. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1338. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1339. mwaf.isPreScale = "1";
  1340. mwaf.weightType = "0";
  1341. PbCache.voiceType = 1;
  1342. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1343. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1344. }
  1345. else
  1346. {
  1347. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1348. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1349. if (termTareData.Succeed)
  1350. {
  1351. // 正常结净
  1352. //给一次数据匹配委托
  1353. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1354. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1355. mwaf.isPreScale = "1";
  1356. mwaf.weightType = "0";
  1357. PbCache.voiceType = 9;
  1358. rt = saveMethod.doTermTareNet(rmScale.Data[0], mwaf, firstList[0]);
  1359. rt.resultInfo += ",留存期限皮成功";
  1360. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1361. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(firstList[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1362. //if (termTareData.Data == null)
  1363. //{
  1364. // 正常结净
  1365. //给一次数据匹配委托
  1366. //EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1367. //mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1368. //mwaf.isPreScale = "1";
  1369. //mwaf.weightType = "0";
  1370. //rt = saveMethod.doTermTareNet(rmScale.Data[0], mwaf, firstList[0]);
  1371. //rt.resultInfo += ",留存期限皮成功";
  1372. //PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1373. //PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1374. //}
  1375. //else
  1376. //{
  1377. // // 存在使用期限皮重权限,并使用期限皮重结净
  1378. // List<string> l = new List<string>();
  1379. // l.Add("create");
  1380. // //给一次数据匹配委托
  1381. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1382. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1383. // mwaf.isPreScale = "1";
  1384. // mwaf.weightType = "0";
  1385. // rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  1386. // rt.resultInfo += ",期限皮结净";
  1387. // PbCache.ResultMessage = "计量完成,期限皮结净";
  1388. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1389. //}
  1390. }
  1391. }
  1392. }
  1393. }
  1394. }
  1395. #endregion
  1396. }
  1397. else
  1398. {
  1399. // 正常结净
  1400. //给一次数据匹配委托
  1401. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1402. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1403. mwaf.isPreScale = "1";
  1404. mwaf.weightType = "0";
  1405. PbCache.voiceType = 1;
  1406. rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
  1407. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1408. }
  1409. }
  1410. }
  1411. // 重量类型为毛重,在皮重误差内
  1412. else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == true && listMonitor.Data[0].validWgt == "1")
  1413. {
  1414. if (PbCache.ResultMessage == "")
  1415. {
  1416. PbCache.ResultMessage = "重量类型为毛重,在皮重误差内";
  1417. }
  1418. PbCache.voiceType = 23;
  1419. rt = saveMethod.doError(PbCache.ResultMessage);
  1420. }
  1421. }
  1422. else
  1423. {
  1424. rt = saveMethod.doError("第一次计量重量【" + rmFirst.Data[0].meterWeight.Value / 1000 + "T】和第二次计量重量【" + PbCache.lockWgt / 1000 + "T】接近,小于结净最小值【" + diffrentWgt / 1000 + " T】");
  1425. rt.isWarn = true;
  1426. PbCache.voiceType = 4;
  1427. PbCache.LEDResultMessage = "计量失败,小于结净最小值,请联系计量大厅";
  1428. rt.WarnContent = "validWgt";
  1429. }
  1430. }
  1431. // 存在多条有效的一次计量数据
  1432. else if (firstList == null || firstList.Count > 1)
  1433. {
  1434. /* a. 程序报警a
  1435. * b. 自动进行语音求助
  1436. */
  1437. //多条一次记录下判断是否全为毛重,是全部结净
  1438. if (firstList[firstList.Count - 1].weightType == "0" && list[0].weightTypeNo == "001033002")
  1439. {
  1440. mwaf.weightType = "1";
  1441. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  1442. PbCache.voiceType = 1;
  1443. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1444. }
  1445. else if (firstList[firstList.Count - 1].weightType == "0" && list[0].weightTypeNo == "001033001")
  1446. {
  1447. mwaf.weightType = "0";
  1448. rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
  1449. PbCache.voiceType = 11;
  1450. rt.resultInfo = string.Format("之前存在{0}个未结净的毛重", firstList.Count);
  1451. PbCache.ResultMessage = string.Format("之前存在{0}个未结净的毛重", firstList.Count);
  1452. PbCache.LEDResultMessage = string.Format("车号{0},毛重{1}吨,之前存在{2}个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), firstList.Count);
  1453. PbCache.monitorResultMessage = string.Format("之前存在{0}个未结净的毛重", firstList.Count);
  1454. rt.isWarn = true;
  1455. rt.WarnContent = "validWgt";
  1456. }
  1457. else
  1458. {
  1459. rt = saveMethod.doError("存在多条有效的一次计量数据,请联系计量大厅");
  1460. PbCache.voiceType = 8;
  1461. PbCache.LEDResultMessage = "存在多条有效的一次计量数据,请联系计量大厅";
  1462. }
  1463. }
  1464. }
  1465. }
  1466. }
  1467. else
  1468. {
  1469. if (rmScale.Succeed && rmScale.Data.Count == 0)
  1470. {
  1471. // 查询一次计量数据表
  1472. RESTfulResult<List<MeterWorkCarActualFirst>> rmFirst = mwcfs.doQueryByFlag(new MeterWorkCarActualFirst { carNo = PbCache.lockCarNo });
  1473. if (rmFirst.Succeed)
  1474. {
  1475. List<MeterWorkCarActualFirst> firstList = rmFirst.Data;
  1476. // 重量类型为皮重
  1477. if (list[0].weightTypeNo == "001033002")
  1478. {
  1479. // 历史皮重验证
  1480. rt = saveMethod.validHisTare(list[0].weightTypeNo);
  1481. if (firstList == null || firstList.Count == 0)
  1482. {
  1483. //在皮重误差内
  1484. if (PbCache.monitorResult.valid_wgt == true || listMonitor.Data[0].validWgt == "0")
  1485. {
  1486. //正常保存一次数据
  1487. mwaf.weightType = "1";
  1488. PbCache.voiceType = 1;
  1489. rt = saveMethod.doAddFirst(null, mwaf);
  1490. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1491. }
  1492. else
  1493. {
  1494. if (PbCache.ResultMessage == "")
  1495. {
  1496. PbCache.ResultMessage = "重量类型为皮重且不在皮重误差内";
  1497. }
  1498. rt = saveMethod.doError(PbCache.ResultMessage);
  1499. PbCache.voiceType = 13;
  1500. rt.isWarn = true;
  1501. rt.WarnContent = "validWgt";
  1502. }
  1503. }
  1504. else if (firstList.Count == 1 && firstList[0].weightType != "0")
  1505. {
  1506. // 在皮重误差内
  1507. if (PbCache.monitorResult.valid_wgt == true || listMonitor.Data[0].validWgt == "0")
  1508. {
  1509. //保存一条作废的皮重数据
  1510. mwaf.weightType = "1";
  1511. mwaf.valueFlag = "0";
  1512. PbCache.voiceType = 1;
  1513. rt = saveMethod.doAddFirst(null, mwaf);
  1514. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1515. }
  1516. else
  1517. {
  1518. if (PbCache.ResultMessage == "")
  1519. {
  1520. PbCache.ResultMessage = "重量类型为皮重且不在皮重误差内";
  1521. }
  1522. rt = saveMethod.doError(PbCache.ResultMessage);
  1523. rt.isWarn = true;
  1524. PbCache.voiceType = 13;
  1525. rt.WarnContent = "validWgt";
  1526. }
  1527. }
  1528. else if (firstList.Count == 1 && firstList[0].weightType == "0")
  1529. {
  1530. RESTfulResult<List<PreTrackScale>> scales = preTrackScaleService.doQueryWf(new PreTrackScale { predictionNo = firstList[0].predictionNo });
  1531. if (PbCache.monitorResult.valid_wgt == true || listMonitor.Data[0].validWgt == "0")
  1532. {
  1533. #region 期限皮注释
  1534. // 判断车辆是否具有期限皮重权限
  1535. //MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
  1536. //RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1537. //if (tareCarResult.Succeed)
  1538. //{
  1539. // // 没有期限皮重权限
  1540. // if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
  1541. // {
  1542. // //匹配结净
  1543. // EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1544. // mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1545. // mwaf.isPreScale = "1";
  1546. // mwaf.weightType = "1";
  1547. // rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1548. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1549. // }
  1550. // // 有期限皮重权限
  1551. // else if (tareCarResult.Data.Count >= 1)
  1552. // {
  1553. // //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
  1554. // string sqls = @"select t.matter_no id, t.matter_name text
  1555. // from meter_base_matter_info t
  1556. // where t.allowed_tare_weight = '1'
  1557. // and t.valid_flag = '1'
  1558. // and t.matter_no='" + scales.Data[0].matterNo + "'";
  1559. // PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
  1560. // RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
  1561. // if (rmT.Succeed)
  1562. // {
  1563. // // 存在使用期限皮重权限,并使用期限皮重结净
  1564. // if (rmT.Data != null && rmT.Data.Count > 0)
  1565. // {
  1566. // }
  1567. // else
  1568. // {
  1569. // //匹配结净
  1570. // EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1571. // mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1572. // mwaf.isPreScale = "1";
  1573. // mwaf.weightType = "1";
  1574. // rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1575. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1576. // }
  1577. // }
  1578. // }
  1579. //}
  1580. #endregion
  1581. //判断称点是否允许期限皮重
  1582. if (PbCache.sportInfo.allowedTareWeight == "1")
  1583. {
  1584. #region 车号-物料-路线
  1585. if (AppConfigCache.TareControlType == "1")
  1586. {
  1587. // 判断收发货单位是否具有期限皮重权限
  1588. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1589. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1590. meterBaseUnitInfo.forwardingUnitName = scales.Data[0].forwardingUnitName;
  1591. meterBaseUnitInfo.forwardingUnitNo = scales.Data[0].forwardingUnitNo;
  1592. meterBaseUnitInfo.receivingUnitName = scales.Data[0].receivingUintName;
  1593. meterBaseUnitInfo.receivingUnitNo = scales.Data[0].receivingUintNo;
  1594. meterBaseUnitInfo.matterName = scales.Data[0].matterName;
  1595. meterBaseUnitInfo.matterNo = scales.Data[0].matterNo;
  1596. meterBaseUnitInfo.allowedTareWeight = "1";
  1597. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1598. if (tareUnitResult.Succeed)
  1599. {
  1600. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1601. {
  1602. //匹配结净
  1603. EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1604. mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1605. mwaf.isPreScale = "1";
  1606. mwaf.weightType = "0";
  1607. PbCache.voiceType = 1;
  1608. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1609. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1610. }
  1611. else
  1612. {
  1613. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1614. {
  1615. //匹配结净
  1616. EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1617. mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1618. mwaf.isPreScale = "1";
  1619. mwaf.weightType = "0";
  1620. PbCache.voiceType = 1;
  1621. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1622. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1623. }
  1624. else
  1625. {
  1626. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1627. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1628. if (termTareData.Succeed)
  1629. {
  1630. // 正常结净
  1631. //给一次数据匹配委托
  1632. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1633. mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1634. mwaf.isPreScale = "1";
  1635. mwaf.weightType = "1";
  1636. PbCache.voiceType = 9;
  1637. rt = saveMethod.doTermTareNet(scales.Data[0], firstList[0], mwaf);
  1638. rt.resultInfo += ",留存期限皮成功";
  1639. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1640. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(firstList[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1641. //if (termTareData.Data == null)
  1642. //{
  1643. // // 正常结净
  1644. // //给一次数据匹配委托
  1645. // EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1646. // mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1647. // mwaf.isPreScale = "1";
  1648. // mwaf.weightType = "1";
  1649. // rt = saveMethod.doTermTareNet(scales.Data[0], mwaf, firstList[0]);
  1650. // rt.resultInfo += ",留存期限皮成功";
  1651. // PbCache.ResultMessage = "计量成功,期限皮不存在或者已过期,请留存期限皮";
  1652. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1653. //}
  1654. //else
  1655. //{
  1656. // // 存在使用期限皮重权限,并使用期限皮重结净
  1657. // List<string> l = new List<string>();
  1658. // l.Add("create");
  1659. // //给一次数据匹配委托
  1660. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1661. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1662. // mwaf.isPreScale = "1";
  1663. // mwaf.weightType = "0";
  1664. // PbCache.ResultMessage = "计量完成,期限皮结净";
  1665. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1666. // rt = saveMethod.doNetTermTare(scales.Data[0], mwaf);
  1667. // rt.resultInfo += ",期限皮结净";
  1668. //}
  1669. }
  1670. }
  1671. }
  1672. }
  1673. }
  1674. #endregion
  1675. #region 车号-物料-称点
  1676. if (AppConfigCache.TareControlType == "2")
  1677. {
  1678. // 判断收发货单位是否具有期限皮重权限
  1679. // 判断称点是否具有期限皮重权限
  1680. MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
  1681. meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
  1682. meterBaseSpotInfo.allowedTareWeight = "1";
  1683. RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
  1684. if (tareSpotResult.Succeed)
  1685. {
  1686. if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
  1687. {
  1688. // 正常结净
  1689. //给一次数据匹配委托
  1690. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1691. mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1692. mwaf.isPreScale = "1";
  1693. mwaf.weightType = "1";
  1694. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1695. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1696. }
  1697. else
  1698. {
  1699. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1700. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1701. if (termTareData.Succeed)
  1702. {
  1703. if (termTareData.Data == null)
  1704. {
  1705. // 正常结净
  1706. //给一次数据匹配委托
  1707. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1708. mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1709. mwaf.isPreScale = "1";
  1710. mwaf.weightType = "1";
  1711. rt = saveMethod.doTermTareNet(scales.Data[0], firstList[0], mwaf);
  1712. rt.resultInfo += ",留存期限皮成功";
  1713. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1714. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1715. }
  1716. else
  1717. {
  1718. // 存在使用期限皮重权限,并使用期限皮重结净
  1719. List<string> l = new List<string>();
  1720. l.Add("create");
  1721. //给一次数据匹配委托
  1722. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1723. mwaf = entityBase1.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1724. mwaf.isPreScale = "1";
  1725. mwaf.weightType = "1";
  1726. PbCache.ResultMessage = "计量完成,期限皮结净";
  1727. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1728. rt = saveMethod.doNetTermTare(scales.Data[0], mwaf);
  1729. rt.resultInfo += ",期限皮结净";
  1730. }
  1731. }
  1732. }
  1733. }
  1734. }
  1735. #endregion
  1736. #region 车号-物料
  1737. if (AppConfigCache.TareControlType == "3")
  1738. {
  1739. // 判断收发货单位是否具有期限皮重权限
  1740. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1741. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1742. meterBaseUnitInfo.matterName = scales.Data[0].matterName;
  1743. meterBaseUnitInfo.matterNo = scales.Data[0].matterNo;
  1744. meterBaseUnitInfo.allowedTareWeight = "1";
  1745. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1746. if (tareUnitResult.Succeed)
  1747. {
  1748. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1749. {
  1750. //匹配结净
  1751. EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1752. mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1753. mwaf.isPreScale = "1";
  1754. mwaf.weightType = "0";
  1755. PbCache.voiceType = 1;
  1756. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1757. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1758. }
  1759. else
  1760. {
  1761. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1762. {
  1763. //匹配结净
  1764. EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1765. mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1766. mwaf.isPreScale = "1";
  1767. mwaf.weightType = "0";
  1768. PbCache.voiceType = 1;
  1769. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1770. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1771. }
  1772. else
  1773. {
  1774. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1775. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1776. if (termTareData.Succeed)
  1777. {
  1778. // 正常结净
  1779. //给一次数据匹配委托
  1780. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1781. mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1782. mwaf.isPreScale = "1";
  1783. mwaf.weightType = "1";
  1784. PbCache.voiceType = 9;
  1785. rt = saveMethod.doTermTareNet(scales.Data[0], firstList[0], mwaf);
  1786. rt.resultInfo += ",留存期限皮成功";
  1787. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1788. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(firstList[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1789. //if (termTareData.Data == null)
  1790. //{
  1791. // // 正常结净
  1792. // //给一次数据匹配委托
  1793. // EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1794. // mwaf = entityBase3.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1795. // mwaf.isPreScale = "1";
  1796. // mwaf.weightType = "1";
  1797. // rt = saveMethod.doTermTareNet(scales.Data[0], mwaf, firstList[0]);
  1798. // rt.resultInfo += ",留存期限皮成功";
  1799. // PbCache.ResultMessage = "计量成功,期限皮不存在或者已过期,请留存期限皮";
  1800. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1801. //}
  1802. //else
  1803. //{
  1804. // // 存在使用期限皮重权限,并使用期限皮重结净
  1805. // List<string> l = new List<string>();
  1806. // l.Add("create");
  1807. // //给一次数据匹配委托
  1808. // EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1809. // mwaf = entityBase1.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1810. // mwaf.isPreScale = "1";
  1811. // mwaf.weightType = "0";
  1812. // PbCache.ResultMessage = "计量完成,期限皮结净";
  1813. // PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1814. // rt = saveMethod.doNetTermTare(scales.Data[0], mwaf);
  1815. // rt.resultInfo += ",期限皮结净";
  1816. //}
  1817. }
  1818. }
  1819. }
  1820. }
  1821. }
  1822. #endregion
  1823. }
  1824. else
  1825. {
  1826. //匹配结净
  1827. EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  1828. mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  1829. mwaf.isPreScale = "1";
  1830. mwaf.weightType = "0";
  1831. PbCache.voiceType = 1;
  1832. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  1833. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmFirst.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  1834. }
  1835. }
  1836. else
  1837. {
  1838. if (PbCache.ResultMessage == "")
  1839. {
  1840. PbCache.ResultMessage = "重量类型为皮重且不在皮重误差内";
  1841. }
  1842. PbCache.voiceType = 23;
  1843. rt = saveMethod.doError(PbCache.ResultMessage);
  1844. rt.isWarn = true;
  1845. rt.WarnContent = "validWgt";
  1846. }
  1847. }
  1848. // 存在多条有效的一次计量数据
  1849. else if (firstList.Count > 1)
  1850. {
  1851. //mwaf.weightType = "1";
  1852. //rt = saveMethod.doAddFirst(null, mwaf);
  1853. //PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,之前存在多个未结净的毛重,请联系", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1854. //rt.resultInfo = "之前存在多个未结净的毛重";
  1855. //PbCache.ResultMessage = "之前存在多个未结净的毛重";
  1856. //PbCache.monitorResultMessage = "之前存在多个未结净的毛重";
  1857. int countTerm = 0;
  1858. List<MeterWorkCarActualFirst> meterWorkCarActualFirsts = new List<MeterWorkCarActualFirst>();
  1859. foreach (var item in firstList)
  1860. {
  1861. RESTfulResult<List<PreTrackScale>> scales = preTrackScaleService.doQueryWf(new PreTrackScale { predictionNo = item.predictionNo });
  1862. if (PbCache.sportInfo.allowedTareWeight == "1")
  1863. {
  1864. #region 车号-物料-路线
  1865. if (AppConfigCache.TareControlType == "1")
  1866. {
  1867. // 判断收发货单位是否具有期限皮重权限
  1868. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1869. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1870. meterBaseUnitInfo.forwardingUnitName = scales.Data[0].forwardingUnitName;
  1871. meterBaseUnitInfo.forwardingUnitNo = scales.Data[0].forwardingUnitNo;
  1872. meterBaseUnitInfo.receivingUnitName = scales.Data[0].receivingUintName;
  1873. meterBaseUnitInfo.receivingUnitNo = scales.Data[0].receivingUintNo;
  1874. meterBaseUnitInfo.matterNo = scales.Data[0].matterNo;
  1875. meterBaseUnitInfo.matterName = scales.Data[0].matterName;
  1876. meterBaseUnitInfo.allowedTareWeight = "1";
  1877. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1878. if (tareUnitResult.Succeed)
  1879. {
  1880. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1881. {
  1882. countTerm++;
  1883. }
  1884. else
  1885. {
  1886. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1887. {
  1888. countTerm++;
  1889. }
  1890. else
  1891. {
  1892. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1893. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1894. if (termTareData.Succeed)
  1895. {
  1896. meterWorkCarActualFirsts.Add(item);
  1897. }
  1898. }
  1899. }
  1900. }
  1901. }
  1902. #endregion
  1903. #region 车号-物料-称点
  1904. if (AppConfigCache.TareControlType == "2")
  1905. {
  1906. // 判断收发货单位是否具有期限皮重权限
  1907. // 判断称点是否具有期限皮重权限
  1908. MeterBaseSpotInfo meterBaseSpotInfo = new MeterBaseSpotInfo();
  1909. meterBaseSpotInfo.baseSpotNo = PbCache.sportInfo.baseSpotNo;
  1910. meterBaseSpotInfo.allowedTareWeight = "1";
  1911. RESTfulResult<List<MeterBaseSpotInfo>> tareSpotResult = meterBaseSpotInfoService.doQueryWf(meterBaseSpotInfo);
  1912. if (tareSpotResult.Succeed)
  1913. {
  1914. if (tareSpotResult.Data == null || tareSpotResult.Data.Count == 0)
  1915. {
  1916. countTerm++;
  1917. }
  1918. else
  1919. {
  1920. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1921. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1922. if (termTareData.Succeed)
  1923. {
  1924. if (termTareData.Data == null)
  1925. {
  1926. // 正常结净
  1927. //给一次数据匹配委托
  1928. EntityBase<PreTrackScale> entityBase3 = new EntityBase<PreTrackScale>();
  1929. mwaf = entityBase3.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1930. mwaf.isPreScale = "1";
  1931. mwaf.weightType = "0";
  1932. rt = saveMethod.doTermTareNet(scales.Data[0], item, mwaf);
  1933. rt.resultInfo += ",留存期限皮成功";
  1934. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  1935. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,留存期限皮成功", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1936. }
  1937. else
  1938. {
  1939. // 存在使用期限皮重权限,并使用期限皮重结净
  1940. List<string> l = new List<string>();
  1941. l.Add("create");
  1942. //给一次数据匹配委托
  1943. EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
  1944. mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
  1945. mwaf.isPreScale = "1";
  1946. mwaf.weightType = "0";
  1947. PbCache.ResultMessage = "计量完成,期限皮结净";
  1948. PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,期限皮结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  1949. rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
  1950. rt.resultInfo += ",期限皮结净";
  1951. PbCache.ResultMessage = "计量完成,期限皮结净";
  1952. }
  1953. }
  1954. }
  1955. }
  1956. }
  1957. #endregion
  1958. #region 车号-物料
  1959. if (AppConfigCache.TareControlType == "3")
  1960. {
  1961. // 判断收发货单位是否具有期限皮重权限
  1962. MeterBaseUnitInfoService meterBaseUnitInfoService = new MeterBaseUnitInfoService();
  1963. MeterBaseUnitInfo meterBaseUnitInfo = new MeterBaseUnitInfo();
  1964. meterBaseUnitInfo.matterNo = scales.Data[0].matterNo;
  1965. meterBaseUnitInfo.matterName = scales.Data[0].matterName;
  1966. meterBaseUnitInfo.allowedTareWeight = "1";
  1967. RESTfulResult<List<MeterBaseUnitInfo>> tareUnitResult = meterBaseUnitInfoService.doQueryWf(meterBaseUnitInfo);
  1968. if (tareUnitResult.Succeed)
  1969. {
  1970. if (tareUnitResult.Data == null || tareUnitResult.Data.Count == 0)
  1971. {
  1972. countTerm++;
  1973. }
  1974. else
  1975. {
  1976. if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
  1977. {
  1978. countTerm++;
  1979. }
  1980. else
  1981. {
  1982. MeterBaseTermTareDataService meterBaseTermTareDataService = new MeterBaseTermTareDataService();
  1983. RESTfulResult<MeterBaseTermTareData> termTareData = meterBaseTermTareDataService.doQueryPageWf(new MeterBaseTermTareData { carNo = PbCache.lockCarNo, valueFlag = "0" });
  1984. if (termTareData.Succeed)
  1985. {
  1986. meterWorkCarActualFirsts.Add(item);
  1987. }
  1988. }
  1989. }
  1990. }
  1991. }
  1992. #endregion
  1993. }
  1994. else
  1995. {
  1996. countTerm++;
  1997. }
  1998. }
  1999. if (countTerm == 0)
  2000. {
  2001. rt = saveMethod.doNetAddMuchGross(meterWorkCarActualFirsts,mwaf);
  2002. rt.result = true;
  2003. rt.resultInfo = "计量完成,留存期限皮成功";
  2004. PbCache.voiceType = 9;
  2005. PbCache.ResultMessage = "计量成功,留存期限皮成功";
  2006. PbCache.monitorResultMessage = string.Format("计量成功,留存期限皮成功");
  2007. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  2008. }
  2009. else if (countTerm == firstList.Count)
  2010. {
  2011. RESTfulResult<List<PreTrackScale>> scales = preTrackScaleService.doQueryWf(new PreTrackScale { predictionNo = firstList[0].predictionNo });
  2012. //匹配结净
  2013. EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
  2014. mwaf = entityBase2.format<MeterWorkCarActualFirst>(scales.Data[0], mwaf);
  2015. mwaf.isPreScale = "1";
  2016. mwaf.weightType = "0";
  2017. PbCache.voiceType = 1;
  2018. rt = saveMethod.doNet(scales.Data[0], firstList[0], mwaf);
  2019. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,净重{2}吨,存在多个毛重未结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(firstList[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
  2020. PbCache.monitorResultMessage = string.Format("车号{0}有{1}条未结净的毛重;", PbCache.lockCarNo,firstList.Count-1);
  2021. }
  2022. else
  2023. {
  2024. rt = saveMethod.doNetAddMuchGross(meterWorkCarActualFirsts, mwaf);
  2025. rt.result = true;
  2026. PbCache.voiceType = 11;
  2027. rt.resultInfo += ",存在多个毛重未结净";
  2028. PbCache.ResultMessage = "计量成功,存在多个毛重未结净";
  2029. PbCache.LEDResultMessage = string.Format("车号{0},皮重{1}吨,计量完成,存在多个毛重未结净", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
  2030. PbCache.monitorResultMessage = string.Format("车号{0}使用期限皮同时结净{1}条毛重数据,还有{2}条未结净的毛重;", PbCache.lockCarNo, firstList.Count - countTerm,countTerm);
  2031. }
  2032. }
  2033. }
  2034. else
  2035. {
  2036. rt = saveMethod.doError("委托匹配异常,无法计量,请联系处理");
  2037. PbCache.LEDResultMessage = "委托匹配异常,无法计量,请联系处理";
  2038. PbCache.voiceType = 6;
  2039. rt.isWarn = true;
  2040. rt.WarnContent = "validIsPre";
  2041. }
  2042. }
  2043. }
  2044. else
  2045. {
  2046. rt = saveMethod.doError("存在多条已选择的委托,请联系计量大厅");
  2047. PbCache.LEDResultMessage = "存在多条已选择的委托,请联系计量大厅";
  2048. rt.isWarn = true;
  2049. PbCache.voiceType = 19;
  2050. rt.WarnContent = "validIsPre";
  2051. }
  2052. }
  2053. }
  2054. else
  2055. {
  2056. rt = saveMethod.doError("存在多条上称申请数据,请联系计量大厅");
  2057. PbCache.voiceType = 20;
  2058. PbCache.LEDResultMessage = "存在多条上称申请数据,请联系计量大厅";
  2059. }
  2060. }
  2061. return rt;
  2062. }
  2063. }
  2064. }