圣珀
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.

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