圣珀
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

727 lines
29 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using ICS.WCF.Base;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.Data;
  6. using System.Linq;
  7. using System.ServiceModel;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using UFSoft.UBF.Service;
  11. using UFSoft.UBF.Util.Context;
  12. using www.ufida.org.EntityData;
  13. namespace UFIDA.ISV.CreateBFStandardShip
  14. {
  15. public class CustCreateBFStandardShip
  16. {
  17. public List<rtnRcvInfo> CreateBFStandardShip(List<shiphead> shipInfoList)
  18. {
  19. #region 接口传入参数日志
  20. StringBuilder firststrlog = new StringBuilder();
  21. firststrlog.AppendLine("传入数据开始");
  22. firststrlog.AppendLine("*****************************************************");
  23. foreach (var item in shipInfoList)
  24. {
  25. firststrlog.AppendLine("单据类型:" + item.DocType);
  26. //firststrlog.AppendLine("服务工单号:" + item.ServiceMoCode);
  27. firststrlog.AppendLine("组织编码:" + item.OrgCode);
  28. firststrlog.AppendLine("客户编码:" + item.ClientCode);
  29. firststrlog.AppendLine("用户名:" + item.UserName);
  30. foreach (var line in item.lines)
  31. {
  32. firststrlog.AppendLine("料品编码:" + line.ItemCode);
  33. firststrlog.AppendLine("料品数量:" + line.ReqQty);
  34. //firststrlog.AppendLine("批号:" + line.Batch);
  35. firststrlog.AppendLine("仓库:" + line.WhCode);
  36. }
  37. }
  38. firststrlog.AppendLine("*****************************************************");
  39. firststrlog.AppendLine("传入数据结束");
  40. Appconfig.WriteLogFile(firststrlog.ToString(), "创建标准出货单");
  41. #endregion
  42. #region 服务调用框架结构
  43. UFIDAU9ISVSMICreateShipSVClient client = new UFIDAU9ISVSMICreateShipSVClient();
  44. //服务返回结果
  45. UFIDAU9ISVSMDocKeyDTOData[] returnItems;
  46. //返回异常信息,目前还没有使用此属性
  47. UFSoft.UBF.Exceptions1.MessageBase[] returnMsg;
  48. //上下文信息
  49. object context;
  50. //传入 参数
  51. UFIDAU9ISVSMShipDTOForIndustryChainData[] pOList;
  52. //空
  53. string[] splitBy = new string[] { };
  54. try
  55. {
  56. List<rtnRcvInfo> rtnpos = new List<rtnRcvInfo>();
  57. long PickID = 0;
  58. long ItemID = 0;
  59. if (shipInfoList == null || shipInfoList.Count == 0)
  60. {
  61. rtnRcvInfo rtnpo = new rtnRcvInfo();
  62. rtnpo.IsSuccess = false;
  63. rtnpo.Message = "传入参数不能为空";
  64. rtnpos.Add(rtnpo);
  65. return rtnpos;
  66. }
  67. foreach (var item in shipInfoList)
  68. {
  69. if (item.DocType == null || item.DocType == "")
  70. {
  71. rtnRcvInfo rtnpo = new rtnRcvInfo();
  72. rtnpo.IsSuccess = false;
  73. rtnpo.Message = "传入单据类型不能为空";
  74. rtnpos.Add(rtnpo);
  75. return rtnpos;
  76. }
  77. if (item.lines == null || item.lines.Count() == 0)
  78. {
  79. rtnRcvInfo rtnpo = new rtnRcvInfo();
  80. rtnpo.IsSuccess = false;
  81. rtnpo.Message = "传入行信息不能为空";
  82. rtnpos.Add(rtnpo);
  83. return rtnpos;
  84. }
  85. foreach (var _item in item.lines)
  86. {
  87. if (_item.ItemCode == null || _item.ItemCode == "")
  88. {
  89. rtnRcvInfo rtnpo = new rtnRcvInfo();
  90. rtnpo.IsSuccess = false;
  91. rtnpo.Message = "传入行信息中料号不能为空!";
  92. rtnpos.Add(rtnpo);
  93. return rtnpos;
  94. }
  95. if (_item.ReqQty == 0)
  96. {
  97. rtnRcvInfo rtnpo = new rtnRcvInfo();
  98. rtnpo.IsSuccess = false;
  99. rtnpo.Message = "传入行信息中数量不能为空";
  100. rtnpos.Add(rtnpo);
  101. return rtnpos;
  102. }
  103. if (_item.WhCode == null || _item.WhCode == "")
  104. {
  105. rtnRcvInfo rtnpo = new rtnRcvInfo();
  106. rtnpo.IsSuccess = false;
  107. rtnpo.Message = "传入行信息中仓库不能为空";
  108. rtnpos.Add(rtnpo);
  109. return rtnpos;
  110. }
  111. }
  112. }
  113. //给传入参数赋值
  114. //pOList = SetrCVDtos(rCVInfoList);
  115. StringBuilder strlog = new StringBuilder();
  116. string orgID = "";
  117. strlog.AppendLine("创建标准出货单");
  118. strlog.AppendLine("*****************************************************");
  119. List<UFIDAU9ISVSMShipDTOForIndustryChainData> shipList = new List<UFIDAU9ISVSMShipDTOForIndustryChainData>();
  120. foreach (var shiphead in shipInfoList)
  121. {
  122. strlog.AppendLine("组织编码:" + shiphead.OrgCode);
  123. #region 获取组织ID
  124. string orgsql = @"select ID from Base_Organization
  125. where Code='{0}' ";
  126. orgsql = string.Format(orgsql, shiphead.OrgCode);
  127. DataTable orgdt = DBhlper.Query(orgsql, Appconfig.GetU9ConnStr());
  128. if (orgdt.Rows.Count == 0)
  129. {
  130. rtnRcvInfo rtnpo = new rtnRcvInfo();
  131. rtnpo.IsSuccess = false;
  132. rtnpo.Message = "组织编码不存在";
  133. rtnpos.Add(rtnpo);
  134. return rtnpos;
  135. }
  136. else
  137. {
  138. orgID = orgdt.Rows[0]["ID"].ToString();
  139. }
  140. #endregion
  141. #region 获取单据类型ID
  142. string docsql = @"select ID,ISNULL(ConfirmMode,0) AS ConfirmMode
  143. ,ISNULL(ConfirmAccording,0) AS ConfirmAccording
  144. ,ISNULL(InvoiceAccording,0) AS InvoiceAccording from SM_ShipDocType
  145. where Code='{0}' AND Org='{1}'";
  146. docsql = string.Format(docsql, shiphead.DocType, orgID);
  147. DataTable docdt = DBhlper.Query(docsql, Appconfig.GetU9ConnStr());
  148. long docTypeID = 0;
  149. int ConfirmMode = 0;
  150. long ConfirmAccording = 0;
  151. long InvoiceAccording = 0;
  152. if (docdt != null && docdt.Rows.Count > 0)
  153. {
  154. docTypeID = long.Parse(docdt.Rows[0]["ID"].ToString());
  155. ConfirmMode = int.Parse(docdt.Rows[0]["ConfirmMode"].ToString());
  156. ConfirmAccording = long.Parse(docdt.Rows[0]["ConfirmAccording"].ToString());
  157. InvoiceAccording = long.Parse(docdt.Rows[0]["InvoiceAccording"].ToString());
  158. }
  159. if (docTypeID == 0)
  160. {
  161. rtnRcvInfo rtnpo = new rtnRcvInfo();
  162. rtnpo.IsSuccess = false;
  163. rtnpo.Message = "未获取到单据类型ID";
  164. rtnpos.Add(rtnpo);
  165. return rtnpos;
  166. }
  167. #endregion
  168. #region 获取客户ID
  169. string cussql = @"select ID,ISNULL(ARConfirmTerm,0) AS ARConfirmTerm from CBO_Customer
  170. where Code='{0}' AND Org='{1}'";
  171. cussql = string.Format(cussql, shiphead.ClientCode, orgID);
  172. DataTable cusdt = DBhlper.Query(cussql, Appconfig.GetU9ConnStr());
  173. long cusID = 0;
  174. long ARConfirmTermID = 0;
  175. if (cusdt != null && cusdt.Rows.Count > 0)
  176. {
  177. cusID = long.Parse(cusdt.Rows[0]["ID"].ToString());
  178. ARConfirmTermID = long.Parse(cusdt.Rows[0]["ARConfirmTerm"].ToString());
  179. }
  180. if (cusID == 0)
  181. {
  182. rtnRcvInfo rtnpo = new rtnRcvInfo();
  183. rtnpo.IsSuccess = false;
  184. rtnpo.Message = "未获取到客户ID";
  185. rtnpos.Add(rtnpo);
  186. return rtnpos;
  187. }
  188. #endregion
  189. UFIDAU9ISVSMShipDTOForIndustryChainData ship = new UFIDAU9ISVSMShipDTOForIndustryChainData();
  190. ship.m_documentType = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  191. ship.m_documentType.m_code = shiphead.DocType;
  192. ship.m_documentType.m_iD = docTypeID;
  193. ship.m_orderBy = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  194. ship.m_orderBy.m_code = shiphead.ClientCode;
  195. ship.m_orderBy.m_iD = cusID;
  196. ship.m_srcDocType = 1;
  197. ship.m_shipOrg = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  198. ship.m_shipOrg.m_code = shiphead.OrgCode;
  199. ship.m_shipOrg.m_iD = long.Parse(orgID);
  200. //ship.m_descFlexField = new UFIDAU9BaseFlexFieldDescFlexFieldDescFlexSegmentsData();
  201. //ship.m_descFlexField.m_pubDescSeg5 = shiphead.ServiceMoCode;
  202. //ship.m_exchangeRateType = 2;
  203. ship.m_exchangeRateType = 2;
  204. //ship.m_totalMoneyTC = 11300;
  205. ship.m_shipConfirmDate = DateTime.Now;
  206. //#region 交易币
  207. //ship.m_totalMoneyTC = shiphead.lines.Length;
  208. //ship.m_totalNetMoneyTC = shiphead.lines.Length;
  209. //#endregion
  210. //#region 本币
  211. //ship.m_totalMoneyFC = shiphead.lines.Length;
  212. //ship.m_totalNetMoneyFC = shiphead.lines.Length;
  213. //#endregion
  214. //#region 核币
  215. //ship.m_totalMoney = shiphead.lines.Length;
  216. //ship.m_totalNetMoneyAC = shiphead.lines.Length;
  217. //#endregion
  218. List<UFIDAU9ISVSMShipLineDTOForIndustryChainData> shipLineList = new List<UFIDAU9ISVSMShipLineDTOForIndustryChainData>();
  219. foreach (shipLine line in shiphead.lines)
  220. {
  221. #region 获取料品ID
  222. string sqlitem = @"select ID from CBO_ItemMaster
  223. where Code='" + line.ItemCode + "' AND Org='" + orgID + "'";
  224. sqlitem = string.Format(sqlitem);
  225. DataTable dtitem = DBhlper.Query(sqlitem, Appconfig.GetU9ConnStr());
  226. if (dtitem.Rows.Count > 0)
  227. {
  228. ItemID = long.Parse(dtitem.Rows[0]["ID"].ToString());
  229. }
  230. else
  231. {
  232. rtnRcvInfo rtnpo = new rtnRcvInfo();
  233. rtnpo.IsSuccess = false;
  234. rtnpo.Message = "料品不存在!";
  235. rtnpos.Add(rtnpo);
  236. return rtnpos;
  237. }
  238. #endregion
  239. #region 获取仓库ID
  240. string sqlWH = @"select ID,Code from CBO_Wh
  241. WHERE Code='" + line.WhCode + "' AND Org='" + orgID + "' ";
  242. sqlWH = string.Format(sqlWH);
  243. DataTable _dtWH = DBhlper.Query(sqlWH, Appconfig.GetU9ConnStr());
  244. string WHCode = string.Empty;
  245. long WHID = 0;
  246. if (_dtWH != null && _dtWH.Rows.Count > 0)
  247. {
  248. WHCode = _dtWH.Rows[0]["Code"].ToString();
  249. WHID = long.Parse(_dtWH.Rows[0]["ID"].ToString());
  250. }
  251. if (string.IsNullOrWhiteSpace(WHCode))
  252. {
  253. rtnRcvInfo rtnpo = new rtnRcvInfo();
  254. rtnpo.IsSuccess = false;
  255. rtnpo.Message = "未获取到仓库";
  256. rtnpos.Add(rtnpo);
  257. return rtnpos;
  258. }
  259. #endregion
  260. UFIDAU9ISVSMShipLineDTOForIndustryChainData shipLine = new UFIDAU9ISVSMShipLineDTOForIndustryChainData();
  261. shipLine.m_itemInfo = new UFIDAU9CBOSCMItemItemInfoData();
  262. shipLine.m_itemInfo.m_itemCode = line.ItemCode;
  263. shipLine.m_itemInfo.ItemID = ItemID;
  264. shipLine.m_itemInfo.ItemID_SKey = new UFSoft.UBF.Business.BusinessEntity.EntityKey();
  265. shipLine.m_itemInfo.ItemID_SKey.ID = ItemID;
  266. shipLine.m_shipQtyInvAmount = line.ReqQty;
  267. shipLine.m_rejectReason = -1;
  268. shipLine.m_wH = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  269. shipLine.m_wH.m_code = line.WhCode;
  270. shipLine.m_wH.m_iD = WHID;
  271. shipLine.m_storageType = 4;
  272. shipLine.m_donationType = -1;
  273. //shipLine.m_orderPrice = 0;
  274. //shipLine.m_orderPriceTC = 0;
  275. shipLine.m_srcDocNo = line.SOCode;
  276. shipLine.m_srcDocLineNo = line.SOLineNO;
  277. //TotalMnyAC
  278. //shipLine.m_cATotalMoneyAC = 113000;
  279. //shipLine.m_finallyPriceTC = 100;
  280. //shipLine.m_totalMoneyTC = 11300;
  281. //shipLine.m_totalNetMoneyTC = 10000;
  282. //shipLine.m_totalTaxTC = 1300;
  283. shipLine.m_orderPrice = 1;
  284. shipLine.m_orderPriceTC = 1;
  285. shipLine.m_configResult = -1;
  286. shipLine.m_shipTogetherFlag = -1;
  287. shipLine.m_shipLineMemo = line.Memo;
  288. shipLine.m_seiban = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  289. if (ARConfirmTermID != 0)
  290. {
  291. shipLine.m_confirmTerm = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  292. shipLine.m_confirmTerm.m_iD = ARConfirmTermID;
  293. }
  294. if (ConfirmAccording != 0)
  295. {
  296. shipLine.m_confirmAccording = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  297. shipLine.m_confirmAccording.m_iD = ConfirmAccording;
  298. }
  299. shipLine.m_confirmMode = ConfirmMode;
  300. if (InvoiceAccording != 0)
  301. {
  302. shipLine.m_invoiceAccording = new UFIDAU9CBOPubControllerCommonArchiveDataDTOData();
  303. shipLine.m_invoiceAccording.m_iD = InvoiceAccording;
  304. }
  305. strlog.AppendLine("料品编码:" + line.ItemCode);
  306. strlog.AppendLine("料品数量:" + line.ReqQty);
  307. strlog.AppendLine("仓库:" + WHCode);
  308. shipLineList.Add(shipLine);
  309. }
  310. ship.m_shipLines = shipLineList.ToArray();
  311. shipList.Add(ship);
  312. }
  313. pOList = shipList.ToArray();
  314. (client.Endpoint.Binding as BasicHttpBinding).MaxReceivedMessageSize = int.MaxValue;
  315. (client.Endpoint.Binding as BasicHttpBinding).MaxBufferSize = int.MaxValue;
  316. List<string> shDocList = new List<string>();
  317. //给上下文信息赋值
  318. context = CreateContextObj(shipInfoList, long.Parse(orgID));
  319. returnItems = client.Do(out returnMsg, context, pOList, false);
  320. strlog.AppendLine("返回数据:");
  321. foreach (var info in returnItems)
  322. {
  323. strlog.AppendLine("单号:" + info.m_docNO);
  324. }
  325. strlog.AppendLine("*****************************************************");
  326. Appconfig.WriteLogFile(strlog.ToString(), "创建标准出货单");
  327. if (returnItems != null)
  328. {
  329. rtnRcvInfo rtnpo = new rtnRcvInfo();
  330. rtnpo.IsSuccess = true;
  331. rtnpo.DocNo = returnItems[0].m_docNO;
  332. rtnpo.Message = "标准出货单创建成功";
  333. rtnpos.Add(rtnpo);
  334. }
  335. #region 单据创建成功后更新创建人字段
  336. string updatesql = @"Update SM_Ship set CreatedBy='{0}'
  337. where DocNo='{1}' AND ShipOrg='{2}'";
  338. updatesql = string.Format(updatesql, shipInfoList[0].UserName, returnItems[0].m_docNO, orgID);
  339. DBhlper.EXecute(updatesql, Appconfig.GetU9ConnStr());
  340. #endregion
  341. return rtnpos;
  342. }
  343. catch (Exception ex)
  344. {
  345. //异常信息捕获
  346. List<rtnRcvInfo> rtnpos = new List<rtnRcvInfo>();
  347. rtnRcvInfo rtnpo = new rtnRcvInfo();
  348. rtnpo.IsSuccess = false;
  349. rtnpo.Message = GetExceptionMessage(ex);
  350. rtnpos.Add(rtnpo);
  351. StringBuilder strlog = new StringBuilder();
  352. strlog.AppendLine("创建标准出货单");
  353. strlog.AppendLine("*****************************************************");
  354. foreach (var item in shipInfoList)
  355. {
  356. strlog.AppendLine("组织编码:" + item.OrgCode);
  357. foreach (var line in item.lines)
  358. {
  359. strlog.AppendLine("料品编码:" + line.ItemCode);
  360. strlog.AppendLine("料品数量:" + line.ReqQty);
  361. strlog.AppendLine("仓库:" + line.WhCode);
  362. //strlog.AppendLine("批号:" + line.Batch);
  363. }
  364. }
  365. strlog.AppendLine("返回消息:" + rtnpo.Message);
  366. strlog.AppendLine("*****************************************************");
  367. Appconfig.WriteLogFile(strlog.ToString(), "创建标准出货单");
  368. return rtnpos;
  369. }
  370. #endregion
  371. }
  372. #region 表头类
  373. public class shiphead
  374. {
  375. private shipLine[] _lines;
  376. private string _DocType;
  377. private string _OrgCode;
  378. private string _ClientCode;
  379. private string _UserName;
  380. private string _ServiceMoCode;
  381. //private string _DocType;
  382. public shipLine[] lines
  383. {
  384. get { return _lines; }
  385. set { _lines = value; }
  386. }
  387. /// <summary>
  388. /// 单据类型
  389. /// </summary>
  390. public string DocType
  391. {
  392. get { return _DocType; }
  393. set { _DocType = value; }
  394. }
  395. /// <summary>
  396. /// 组织编号
  397. /// </summary>
  398. public string OrgCode
  399. {
  400. get { return _OrgCode; }
  401. set { _OrgCode = value; }
  402. }
  403. /// <summary>
  404. /// 客户
  405. /// </summary>
  406. public string ClientCode
  407. {
  408. get { return _ClientCode; }
  409. set { _ClientCode = value; }
  410. }
  411. public string UserName
  412. {
  413. get { return _UserName; }
  414. set { _UserName = value; }
  415. }
  416. //public string ServiceMoCode
  417. //{
  418. // get { return _ServiceMoCode; }
  419. // set { _ServiceMoCode = value; }
  420. //}
  421. //public string DocType
  422. //{
  423. // get { return _DocType; }
  424. // set { _DocType = value; }
  425. // }
  426. }
  427. #endregion
  428. #region 表体类
  429. public class shipLine
  430. {
  431. public string SOCode { get; set; }
  432. public int SOLineNO { get; set; }
  433. /// <summary>
  434. /// 数量
  435. /// </summary>
  436. public decimal ReqQty { get; set; }
  437. public string WhCode { get; set; }
  438. //public string BinCode { get; set; }
  439. /// <summary>
  440. /// 料号
  441. /// </summary>
  442. public string ItemCode { get; set; }
  443. /// <summary>
  444. /// 受益部门
  445. /// </summary>
  446. public string DeptCode { get; set; }
  447. /// <summary>
  448. /// 库存批号
  449. /// </summary>
  450. //public string Batch { get; set; }
  451. /// <summary>
  452. /// 备注
  453. /// </summary>
  454. public string Memo { get; set; }
  455. }
  456. #endregion
  457. #region 提取异常信息
  458. /// <summary>
  459. /// 提取异常信息
  460. /// </summary>
  461. /// <param name="ex"></param>
  462. private string GetExceptionMessage(Exception ex)
  463. {
  464. string faultMessage = "未知错误,请查看ERP日志!";
  465. System.TimeoutException timeoutEx = ex as System.TimeoutException;
  466. if (timeoutEx != null)
  467. {
  468. faultMessage = "访问服务超时,请修改配置信息!";
  469. }
  470. else
  471. {
  472. FaultException<ServiceException> faultEx = ex as FaultException<ServiceException>;
  473. if (faultEx == null)
  474. {
  475. faultMessage = ex.Message;
  476. }
  477. else
  478. {
  479. ServiceException serviceEx = faultEx.Detail;
  480. if (serviceEx != null && !string.IsNullOrEmpty(serviceEx.Message)
  481. && !serviceEx.Message.Equals("fault", StringComparison.OrdinalIgnoreCase))
  482. {
  483. // 错误信息在faultEx.Message中,请提取,
  484. // 格式为"Fault:料品不能为空,请录入\n 在....."
  485. int startIndex = serviceEx.Message.IndexOf(":");
  486. int endIndex = serviceEx.Message.IndexOf("\n");
  487. if (endIndex == -1)
  488. endIndex = serviceEx.Message.Length;
  489. if (endIndex > 0 && endIndex > startIndex + 1)
  490. {
  491. faultMessage = serviceEx.Message.Substring(startIndex + 1, endIndex - startIndex - 1);
  492. }
  493. else
  494. {
  495. faultMessage = serviceEx.Message;
  496. }
  497. }
  498. }
  499. }
  500. return faultMessage;
  501. }
  502. #endregion
  503. #region 给上下文信息赋值
  504. /// <summary>
  505. /// 给上下文信息赋值
  506. /// </summary>
  507. /// <returns></returns>
  508. private ThreadContext CreateContextObj(List<shiphead> rcvInfoList, long OrgID)
  509. {
  510. // 实例化应用上下文对象
  511. ThreadContext thContext = new ThreadContext();
  512. System.Collections.Generic.Dictionary<object, object> ns = new Dictionary<object, object>();
  513. ns.Add("OrgID", OrgID);
  514. ns.Add("UserID", ConfigurationManager.AppSettings["userID"].ToString());
  515. ns.Add("UserCode", ConfigurationManager.AppSettings["userCode"].ToString());
  516. ns.Add("Datetime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  517. ns.Add("CultureName", ConfigurationManager.AppSettings["cultureName"].ToString());
  518. ns.Add("EnterpriseID", ConfigurationManager.AppSettings["enterpriseID"].ToString());
  519. ns.Add("DefaultCultureName", ConfigurationManager.AppSettings["cultureName"].ToString());
  520. thContext.nameValueHas = ns;
  521. return thContext;
  522. }
  523. #endregion
  524. #region 时间戳方法
  525. private DateTime TimestampToDateTime(long timestamp)
  526. {
  527. DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  528. long lTime = timestamp * 10000000;
  529. TimeSpan nowTimeSpan = new TimeSpan(lTime);
  530. DateTime resultDateTime = dateTimeStart.Add(nowTimeSpan);
  531. return resultDateTime;
  532. }
  533. #endregion
  534. }
  535. #region 上下文类信息
  536. public class contextInfo
  537. {
  538. private long _OrgID;
  539. private string _OrgCode;
  540. private long _UserID;
  541. private string _UserCode;
  542. private DateTime _Datetime;
  543. private string _CultureName;
  544. private string _EnterpriseID;
  545. /// <summary>
  546. /// 组织ID
  547. /// </summary>
  548. public long OrgID
  549. {
  550. get { return _OrgID; }
  551. set { _OrgID = value; }
  552. }
  553. /// <summary>
  554. /// 组织编码
  555. /// </summary>
  556. public string OrgCode
  557. {
  558. get { return _OrgCode; }
  559. set { _OrgCode = value; }
  560. }
  561. /// <summary>
  562. /// 操作员ID
  563. /// </summary>
  564. public long UserID
  565. {
  566. get { return _UserID; }
  567. set { _UserID = value; }
  568. }
  569. /// <summary>
  570. /// 操作员编码
  571. /// </summary>
  572. public string UserCode
  573. {
  574. get { return _UserCode; }
  575. set { _UserCode = value; }
  576. }
  577. /// <summary>
  578. /// 时间
  579. /// </summary>
  580. public DateTime Datetime
  581. {
  582. get { return _Datetime; }
  583. set { _Datetime = value; }
  584. }
  585. /// <summary>
  586. /// 语言
  587. /// </summary>
  588. public string CultureName
  589. {
  590. get { return _CultureName; }
  591. set { _CultureName = value; }
  592. }
  593. /// <summary>
  594. /// 企业ID号
  595. /// </summary>
  596. public string EnterpriseID
  597. {
  598. get { return _EnterpriseID; }
  599. set { _EnterpriseID = value; }
  600. }
  601. public contextInfo()
  602. {
  603. CultureName = "zh_CN";
  604. Datetime = DateTime.Now;
  605. }
  606. }
  607. #endregion
  608. #region 返回信息类
  609. public class rtnRcvInfo
  610. {
  611. public string DocNo { get; set; }
  612. public bool IsSuccess { get; set; }
  613. public string Message { get; set; }
  614. public rtnRcvLine[] rtnLines { get; set; }
  615. }
  616. public class rtnRcvLine
  617. {
  618. public int LineNo { get; set; }
  619. //public string srcDocNo { get; set; }
  620. //public int srcLineNo { get; set; }
  621. //public decimal reqQty { get; set; }
  622. //public string proCode { get; set; }
  623. }
  624. #endregion
  625. #region 表体类
  626. //public class rCVLine
  627. //{
  628. // /// <summary>
  629. // /// 来源采购订单
  630. // /// </summary>
  631. // public string srcDocPONo { get; set; }
  632. // private int _srcDocPOLineNo;
  633. // private decimal _reqQty;
  634. // public string WhCode { get; set; }
  635. // /// <summary>
  636. // /// 炉号
  637. // /// </summary>
  638. // public string FurnaceNo { get; set; }
  639. // /// <summary>
  640. // /// 数量
  641. // /// </summary>
  642. // public decimal ReqQty
  643. // {
  644. // get { return _reqQty; }
  645. // set { _reqQty = value; }
  646. // }
  647. // /// <summary>
  648. // /// 来源采购订单行
  649. // /// </summary>
  650. // public int srcDocPOLineNo
  651. // {
  652. // get { return _srcDocPOLineNo; }
  653. // set { _srcDocPOLineNo = value; }
  654. // }
  655. //}
  656. #endregion
  657. }