华恒Mes鼎捷代码
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.

2133 lines
98 KiB

5 months ago
  1. using System;
  2. using System.Linq;
  3. using System.Web;
  4. using System.Web.Services;
  5. using System.Data;
  6. using System.Text.RegularExpressions;
  7. using System.Text;
  8. using System.Data.SqlClient;
  9. using System.Collections.Generic;
  10. using ICSSoft.Frame.Data.BLL;
  11. using ICSSoft.Base.Config.AppConfig;
  12. using ICSSoft.Frame.Data.Entity;
  13. using Newtonsoft.Json;
  14. using System.IO;
  15. namespace ICSSoft.PDA.Service
  16. {
  17. /// <summary>
  18. /// Summary description for PDA
  19. /// </summary>
  20. [WebService(Namespace = "http://tempuri.org/")]
  21. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  22. [System.ComponentModel.ToolboxItem(false)]
  23. // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
  24. // [System.Web.Script.Services.ScriptService]
  25. public class PDA : System.Web.Services.WebService
  26. {
  27. private static string ERPConnectString = ""; //System.Configuration.ConfigurationManager.ConnectionStrings["ERPConnectionString"].ConnectionString;
  28. private static string sysConnectString = System.Configuration.ConfigurationManager.ConnectionStrings["SysConnectionString"].ConnectionString;
  29. //private static string conbegin = "Data Source=";
  30. //private static int end = ERPConnectString.IndexOf(";Uid=");
  31. private string ERPName = ""; // "[" + ERPConnectString.Substring(conbegin.Length, end - conbegin.Length).Replace(";Database=", "].");
  32. //private string ERPName = ERPConnectString.Substring(ERPConnectString.IndexOf("Database=") + 9, 15);
  33. //根据站点和用户名获取用户信息
  34. [WebMethod(EnableSession = true)]
  35. public string GetUserMenu(string UserId, string WorkPointCode, string MenuCode, string BtnName)
  36. {
  37. int strCode = 1;
  38. string strMsg = "";
  39. string strData = "{}";
  40. try
  41. {
  42. string sql = @" DECLARE @count NVARCHAR(10)
  43. SELECT @count = ID FROM dbo.Sys_User WHERE ID = '{0}'
  44. AND AdminFlag = '1'
  45. SELECT @count = a.ID FROM Sys_RolePower a
  46. INNER JOIN dbo.Sys_MenuAction b ON a.ActionId = b.ID
  47. LEFT JOIN Sys_UserRole c ON a.RoleId = c.RoleId
  48. WHERE c.UserId = '{0}' AND b.WorkPointCode = '{1}' AND b.MenuCode = '{2}'
  49. AND b.BtnName = '{3}'
  50. SELECT @count = a.ID FROM Sys_UserPower a
  51. INNER JOIN dbo.Sys_MenuAction b ON a.ActionId = b.ID
  52. WHERE UserId = '{0}' AND b.WorkPointCode = '{1}'
  53. AND b.MenuCode = '{2}' AND b.BtnName = '{3}'
  54. SELECT @count as ct";
  55. sql = string.Format(sql, UserId, WorkPointCode, MenuCode, BtnName);
  56. DataTable dt = DBHelper.ExecuteDataset(sysConnectString, CommandType.Text, sql).Tables[0];
  57. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["ct"].ToString() == "")
  58. {
  59. strCode = 0;
  60. strMsg = "当前用户没有操作此功能权限";
  61. }
  62. }
  63. catch (Exception ex)
  64. {
  65. strCode = 0;
  66. strMsg = "权限查询异常";
  67. }
  68. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  69. return result;
  70. }
  71. //获取站点列表
  72. [WebMethod(EnableSession = true)]
  73. public DataSet GetCompanyList()
  74. {
  75. string sql = @" select A.WorkPointCode,
  76. A.WorkPointName
  77. from Sys_WorkPoint A ";
  78. DataSet ds = DBHelper.ExecuteDataset(sysConnectString, CommandType.Text, sql);
  79. return ds;
  80. }
  81. //登陆验证
  82. [WebMethod(EnableSession = true)]
  83. public string Login(string workPointCode, string userCode, string userPwd)
  84. {
  85. AppConfig.FrameConnectString = sysConnectString;
  86. string resUlt = "";
  87. try
  88. {
  89. string sql = @"SELECT ISNULL(MAX(UserPwd),0)
  90. FROM dbo.Sys_User
  91. WHERE UserCode = '{0}'
  92. AND WorkPointCode = '{1}'
  93. AND StartFlag = 1";
  94. sql = string.Format(sql, userCode, workPointCode);
  95. object obj = DBHelper.ExecuteScalar(sysConnectString, CommandType.Text, sql);
  96. if (obj.ToString() == "")
  97. {
  98. resUlt = "帐号:" + userCode + "不存在或者被停用,请联系系统管理员!";
  99. }
  100. else
  101. {
  102. string password = AppConfig.ToMd5(userPwd);//密码加密
  103. if (password != obj.ToString())
  104. {
  105. resUlt = "口令错误!";
  106. }
  107. else
  108. {
  109. resUlt = "";
  110. }
  111. }
  112. }
  113. catch (Exception ex)
  114. {
  115. resUlt = ex.Message;
  116. }
  117. return resUlt;
  118. }
  119. //根据站点和用户名获取用户信息
  120. [WebMethod(EnableSession = true)]
  121. public DataSet GetUserByCode(string workPointCode, string userCode)
  122. {
  123. string sql = @"SELECT a.ID ,
  124. a.WorkPointCode,
  125. a.UserCode,
  126. a.UserName
  127. FROM dbo.sys_user a
  128. WHERE a.WorkPointCode='{0}' and UserCode = '{1}'";
  129. sql = string.Format(sql, workPointCode, userCode);
  130. DataSet s = DBHelper.ExecuteDataset(sysConnectString, CommandType.Text, sql);
  131. return s;
  132. }
  133. //获取条码状态
  134. [WebMethod(EnableSession = true)]
  135. public string CheckLotNo(string BarCode, string WorkPointCode)
  136. {
  137. string errormessage = ICSITEMLOTBLL.CheckLotNo(BarCode, WorkPointCode, sysConnectString);
  138. return errormessage;
  139. }
  140. //验证条码信息(采购上架)
  141. [WebMethod(EnableSession = true)]
  142. public string CheckLotNoForStockIn(string BarCode, string WorkPointCode)
  143. {
  144. string errormessage = ICSWareHouseLotInfoBLL.CheckLotNoForStockIn(BarCode, WorkPointCode, sysConnectString);
  145. return errormessage;
  146. }
  147. //验证条码信息(半成品/成品入库)
  148. [WebMethod(EnableSession = true)]
  149. public string CheckLotNoForMOIn(string BarCode, string WorkPointCode)
  150. {
  151. string errormessage = ICSWareHouseLotInfoBLL.CheckLotNoForMOIn(BarCode, WorkPointCode, sysConnectString);
  152. return errormessage;
  153. }
  154. //验证库位信息
  155. [WebMethod(EnableSession = true)]
  156. public string CheckStackCode(string StackCode, string WorkPointCode)
  157. {
  158. string errormessage = ICSWareHouseLotInfoBLL.CheckStackCode(StackCode, WorkPointCode, sysConnectString);
  159. return errormessage;
  160. }
  161. //验证ASN订单信息
  162. [WebMethod(EnableSession = true)]
  163. public string CheckASNNo(string BarCode, string WorkPointCode)
  164. {
  165. string errormessage = ICSITEMLOTBLL.CheckASNNo(BarCode, WorkPointCode, sysConnectString);
  166. return errormessage;
  167. }
  168. //验证编码信息
  169. [WebMethod(EnableSession = true)]
  170. public string CheckLOTNum(string INVCode, string WorkPointCode)
  171. {
  172. string errormessage = ICSITEMLOTBLL.CheckLOTNum(INVCode, WorkPointCode, sysConnectString);
  173. return errormessage;
  174. }
  175. //获取货位信息
  176. [WebMethod(EnableSession = true)]
  177. public string GetBinCode(string LotNO, string WorkPoint)
  178. {
  179. string strData = "{}";
  180. try
  181. {
  182. DataTable dt = ICSWareHouseLotInfoBLL.GetBinCode(LotNO, WorkPoint, sysConnectString);
  183. if (dt != null && dt.Rows.Count > 0)
  184. {
  185. StringBuilder sbDetail = new StringBuilder();
  186. foreach (DataRow dr in dt.Rows)
  187. {
  188. sbDetail.Append("{");
  189. sbDetail.AppendFormat("\"BinCode\":\"{0}\"", dr["BinCode"]);
  190. sbDetail.Append("},");
  191. }
  192. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  193. }
  194. strData = string.Format("[{0}]", strData);
  195. return strData;
  196. }
  197. catch (Exception ex)
  198. {
  199. return ex.Message;
  200. }
  201. }
  202. //获取条码信息
  203. [WebMethod(EnableSession = true)]
  204. public string GetLotData(string BarCode, string workPoint)
  205. {
  206. int strCode = 1;
  207. string strMsg = "";
  208. string strData = "{}";
  209. try
  210. {
  211. DataTable dt = ICSITEMLOTBLL.GetLotData(BarCode, workPoint, sysConnectString);
  212. if (dt != null && dt.Rows.Count > 0)
  213. {
  214. StringBuilder sbDetail = new StringBuilder();
  215. foreach (DataRow dr in dt.Rows)
  216. {
  217. sbDetail.Append("{");
  218. sbDetail.AppendFormat("\"TransNO\":\"{0}\",", dr["TransNO"]);
  219. sbDetail.AppendFormat("\"TransLine\":\"{0}\",", dr["TransLine"]);
  220. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  221. sbDetail.AppendFormat("\"MCODE\":\"{0}\",", dr["MCODE"]);
  222. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  223. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  224. sbDetail.AppendFormat("\"LOTQTY\":\"{0}\",", dr["LOTQTY"]);
  225. sbDetail.AppendFormat("\"INVUOM\":\"{0}\"", dr["INVUOM"]);
  226. sbDetail.Append("},");
  227. }
  228. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  229. }
  230. strData = string.Format("[{0}]", strData);
  231. return strData;
  232. }
  233. catch (Exception ex)
  234. {
  235. return ex.Message;
  236. }
  237. }
  238. //获取条码信息(半成品入库)
  239. [WebMethod(EnableSession = true)]
  240. public string GetLotDataForMO(string BarCode, string workPoint)
  241. {
  242. int strCode = 1;
  243. string strMsg = "";
  244. string strData = "{}";
  245. try
  246. {
  247. DataTable dt = ICSITEMLOTBLL.GetLotDataForMo(BarCode, workPoint, sysConnectString);
  248. if (dt != null && dt.Rows.Count > 0)
  249. {
  250. StringBuilder sbDetail = new StringBuilder();
  251. foreach (DataRow dr in dt.Rows)
  252. {
  253. sbDetail.Append("{");
  254. sbDetail.AppendFormat("\"MOCode\":\"{0}\",", dr["MOCODE"]);
  255. sbDetail.AppendFormat("\"MOSEQ\":\"{0}\",", dr["MOSEQ"]);
  256. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["ITEMCODE"]);
  257. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  258. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  259. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  260. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  261. sbDetail.AppendFormat("\"cBatch\":\"{0}\",", dr["VenderLotNO"]);
  262. sbDetail.AppendFormat("\"LotNo\":\"{0}\"", dr["LotNO"]);
  263. sbDetail.Append("},");
  264. }
  265. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  266. }
  267. strData = string.Format("[{0}]", strData);
  268. return strData;
  269. }
  270. catch (Exception ex)
  271. {
  272. return ex.Message;
  273. }
  274. }
  275. //获取编码信息
  276. [WebMethod(EnableSession = true)]
  277. public string GetLotNumData(string INVCode, string workPoint)
  278. {
  279. int strCode = 1;
  280. string strMsg = "";
  281. string strData = "{}";
  282. try
  283. {
  284. DataTable dt = ICSITEMLOTBLL.GetLotNumData(INVCode, workPoint, sysConnectString);
  285. if (dt != null && dt.Rows.Count > 0)
  286. {
  287. StringBuilder sbDetail = new StringBuilder();
  288. foreach (DataRow dr in dt.Rows)
  289. {
  290. sbDetail.Append("{");
  291. sbDetail.AppendFormat("\"TransNO\":\"{0}\",", dr["TransNO"]);
  292. sbDetail.AppendFormat("\"TransLine\":\"{0}\",", dr["TransLine"]);
  293. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  294. sbDetail.AppendFormat("\"MCODE\":\"{0}\",", dr["MCODE"]);
  295. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  296. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  297. sbDetail.AppendFormat("\"LOTQTY\":\"{0}\",", dr["LOTQTY"]);
  298. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  299. sbDetail.Append("},");
  300. }
  301. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  302. }
  303. strData = string.Format("[{0}]", strData);
  304. return strData;
  305. }
  306. catch (Exception ex)
  307. {
  308. return ex.Message;
  309. }
  310. }
  311. //获取ASN单信息(半成品入库)
  312. [WebMethod(EnableSession = true)]
  313. public string GetASNDataForMO(string BarCode, string workPoint)
  314. {
  315. int strCode = 1;
  316. string strMsg = "";
  317. string strData = "{}";
  318. try
  319. {
  320. DataTable dt = ICSITEMLOTBLL.GetASNDataForMO(BarCode, workPoint, sysConnectString);
  321. if (dt != null && dt.Rows.Count > 0)
  322. {
  323. StringBuilder sbDetail = new StringBuilder();
  324. foreach (DataRow dr in dt.Rows)
  325. {
  326. sbDetail.Append("{");
  327. sbDetail.AppendFormat("\"MOCode\":\"{0}\",", dr["MOCODE"]);
  328. sbDetail.AppendFormat("\"MOSEQ\":\"{0}\",", dr["MOSEQ"]);
  329. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["ITEMCODE"]);
  330. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  331. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  332. sbDetail.AppendFormat("\"MOPLANQTY\":\"{0}\",", dr["MOPLANQTY"]);
  333. sbDetail.AppendFormat("\"MOINPUTQTY\":\"{0}\",", dr["MOINPUTQTY"]);
  334. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  335. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  336. sbDetail.AppendFormat("\"LotNo\":\"{0}\"", dr["LotNO"]);
  337. sbDetail.Append("},");
  338. }
  339. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  340. }
  341. strData = string.Format("[{0}]", strData);
  342. return strData;
  343. }
  344. catch (Exception ex)
  345. {
  346. return ex.Message;
  347. }
  348. }
  349. //生成到货单
  350. [WebMethod(EnableSession = true)]
  351. public string CreateRCV(List<FormICSRSVDataModel.RCVData> rcv, out string docno, out string user, out string time)
  352. {
  353. try
  354. {
  355. string errormessage = ICSITEMLOTBLL.CreateRCV(rcv, sysConnectString, out docno, out user, out time);
  356. return errormessage;
  357. }
  358. catch (Exception ex)
  359. {
  360. throw ex;
  361. }
  362. }
  363. //采购入库
  364. [WebMethod(EnableSession = true)]
  365. public string storageIN(string barStr, string stack, string userCode, string userName, string workPoint, string Type, string ScanType)
  366. {
  367. int strCode = 1;
  368. string strMsg = "";
  369. string strData = "{}";
  370. string[] barcodelist = barStr.Split(',');
  371. string[] stacklist = stack.Split(',');
  372. using (SqlConnection conn = new SqlConnection(sysConnectString))
  373. {
  374. conn.Open();
  375. using (SqlTransaction trans = conn.BeginTransaction())
  376. {
  377. try
  378. {
  379. if (ICSWareHouseLotInfoBLL.StockIn(conn, trans, barcodelist, stacklist, userCode, userName, workPoint, Type, ScanType, sysConnectString))
  380. {
  381. strCode = 0;
  382. strMsg = "入库成功";
  383. }
  384. trans.Commit();
  385. }
  386. catch (Exception ex)
  387. {
  388. trans.Rollback();
  389. strCode = 1;
  390. strMsg = "入库异常:" + ex.Message;
  391. }
  392. }
  393. conn.Close();
  394. }
  395. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  396. return result;
  397. }
  398. //半成品入库
  399. [WebMethod(EnableSession = true)]
  400. public string storageINForMO(string barStr, string stack, string userCode, string userName, string workPoint, string Type, string ScanType)
  401. {
  402. int strCode = 1;
  403. string strMsg = "";
  404. string strData = "{}";
  405. string[] barcodelist = barStr.Split(',');
  406. string[] stacklist = stack.Split(',');
  407. using (SqlConnection conn = new SqlConnection(sysConnectString))
  408. {
  409. conn.Open();
  410. using (SqlTransaction trans = conn.BeginTransaction())
  411. {
  412. try
  413. {
  414. if (ICSWareHouseLotInfoBLL.StockInForMo(conn, trans, barcodelist, stacklist, userCode, userName, workPoint, Type, ScanType, sysConnectString))
  415. {
  416. strCode = 0;
  417. strMsg = "入库成功";
  418. }
  419. trans.Commit();
  420. }
  421. catch (Exception ex)
  422. {
  423. trans.Rollback();
  424. strCode = 1;
  425. strMsg = "入库异常:" + ex.Message;
  426. }
  427. }
  428. conn.Close();
  429. }
  430. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  431. return result;
  432. }
  433. //验证采购退货单据
  434. [WebMethod(EnableSession = true)]
  435. public string CheckPOCode(string POCode, string WorkPointCode)
  436. {
  437. string errormessage = ICSWareHouseLotInfoBLL.CheckPOCode(POCode, WorkPointCode, sysConnectString);
  438. return errormessage;
  439. }
  440. //获取退货单信息
  441. [WebMethod(EnableSession = true)]
  442. public string GetPOReturnData(string POCode, string workPoint)
  443. {
  444. int strCode = 1;
  445. string strMsg = "";
  446. string strData = "{}";
  447. try
  448. {
  449. DataTable dt = ICSWareHouseLotInfoBLL.GetPOReturnData(POCode, workPoint, sysConnectString);
  450. if (dt != null && dt.Rows.Count > 0)
  451. {
  452. StringBuilder sbDetail = new StringBuilder();
  453. foreach (DataRow dr in dt.Rows)
  454. {
  455. sbDetail.Append("{");
  456. sbDetail.AppendFormat("\"POCode\":\"{0}\",", dr["POCode"]);
  457. sbDetail.AppendFormat("\"PORow\":\"{0}\",", dr["PORow"]);
  458. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["INVCODE"]);
  459. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  460. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  461. sbDetail.AppendFormat("\"RequestQty\":\"{0}\",", Convert.ToDecimal(dr["RequestQty"]));
  462. sbDetail.AppendFormat("\"Inqty\":\"{0}\",", Convert.ToDecimal(dr["Inqty"]));
  463. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  464. sbDetail.AppendFormat("\"Batch\":\"{0}\",", dr["Batch"]);
  465. sbDetail.AppendFormat("\"cWhCode\":\"{0}\"", dr["cWhCode"]);
  466. sbDetail.Append("},");
  467. }
  468. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  469. }
  470. strData = string.Format("[{0}]", strData);
  471. return strData;
  472. }
  473. catch (Exception ex)
  474. {
  475. return ex.Message;
  476. }
  477. }
  478. //验证条码信息(采购退货)
  479. [WebMethod(EnableSession = true)]
  480. public string CheckLotnoForReturn(string BarCode, string WorkPointCode)
  481. {
  482. int strCode = 1;
  483. string strMsg = "";
  484. string strData = "{}";
  485. try
  486. {
  487. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForReturn(BarCode, WorkPointCode, sysConnectString);
  488. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["WHLotno"].ToString() != "" && dt.Rows[0]["WHLotno"] != null)
  489. {
  490. StringBuilder sbDetail = new StringBuilder();
  491. foreach (DataRow dr in dt.Rows)
  492. {
  493. sbDetail.Append("{");
  494. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  495. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  496. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  497. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  498. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  499. sbDetail.AppendFormat("\"Rate\":\"{0}\",", dr["EATTRIBUTE3"]);
  500. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\",", dr["VenderLotNO"]);
  501. sbDetail.AppendFormat("\"InQty\":\"{0}\",", 0.00);
  502. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["WHCode"]);
  503. sbDetail.Append("},");
  504. }
  505. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  506. }
  507. strData = string.Format("[{0}]", strData);
  508. return strData;
  509. }
  510. catch (Exception ex)
  511. {
  512. return ex.Message;
  513. }
  514. }
  515. //验证条码信息(工单领料)
  516. [WebMethod(EnableSession = true)]
  517. public string CheckLotnoForMOOut(string BarCode, string WorkPointCode)
  518. {
  519. int strCode = 1;
  520. string strMsg = "";
  521. string strData = "{}";
  522. try
  523. {
  524. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForMOOut(BarCode, WorkPointCode, sysConnectString);
  525. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["WHLotno"].ToString() != "" && dt.Rows[0]["WHLotno"] != null)
  526. {
  527. StringBuilder sbDetail = new StringBuilder();
  528. foreach (DataRow dr in dt.Rows)
  529. {
  530. sbDetail.Append("{");
  531. sbDetail.AppendFormat("\"cBatchProperty6\":\"{0}\",", dr["cBatchProperty6"]);
  532. sbDetail.AppendFormat("\"cDefine22\":\"{0}\",", dr["cDefine22"]);
  533. sbDetail.AppendFormat("\"cDefine24\":\"{0}\",", dr["cDefine24"]);
  534. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  535. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  536. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  537. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  538. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  539. sbDetail.AppendFormat("\"Rate\":\"{0}\",", dr["EATTRIBUTE3"]);
  540. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\",", dr["VenderLotNO"]);
  541. sbDetail.AppendFormat("\"InQty\":\"{0}\",", 0.00);
  542. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["WHCode"]);
  543. sbDetail.Append("},");
  544. }
  545. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  546. }
  547. strData = string.Format("[{0}]", strData);
  548. return strData;
  549. }
  550. catch (Exception ex)
  551. {
  552. return ex.Message;
  553. }
  554. }
  555. //采购退货
  556. [WebMethod(EnableSession = true)]
  557. public string storageReturn(string POCode, string PORowList, string POQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string userCode, string userName, string workPoint, string Type)
  558. {
  559. int strCode = 1;
  560. string strMsg = "";
  561. string strData = "{}";
  562. string[] porowlist = PORowList.Split(',');
  563. string[] poqtylist = POQtyList.Split(',');
  564. string[] barcodelist = BarCodeList.Split(',');
  565. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  566. string[] barcoderowlist = BarCodeRowList.Split(',');
  567. using (SqlConnection conn = new SqlConnection(sysConnectString))
  568. {
  569. conn.Open();
  570. using (SqlTransaction trans = conn.BeginTransaction())
  571. {
  572. try
  573. {
  574. if (ICSWareHouseLotInfoBLL.StockReturn(conn, trans, POCode, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, userCode, userName, workPoint, Type, sysConnectString))
  575. {
  576. strCode = 0;
  577. strMsg = "退货成功";
  578. }
  579. trans.Commit();
  580. }
  581. catch (Exception ex)
  582. {
  583. trans.Rollback();
  584. strCode = 1;
  585. strMsg = "退货异常:" + ex.Message;
  586. }
  587. }
  588. conn.Close();
  589. }
  590. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  591. return result;
  592. }
  593. //验证物料工单调拨
  594. [WebMethod(EnableSession = true)]
  595. public string CheckTransferNoMO(string TransferNo, string TransferLine, string WorkPointCode)
  596. {
  597. string errormessage = ICSWareHouseLotInfoBLL.CheckTransferNoMO(TransferNo, TransferLine, WorkPointCode, sysConnectString);
  598. return errormessage;
  599. }
  600. //获取工单调拨数据
  601. [WebMethod(EnableSession = true)]
  602. public string GetTransferDataMO(string TransferNo, string TransferLine, string workPoint)
  603. {
  604. int strCode = 1;
  605. string strMsg = "";
  606. string strData = "{}";
  607. try
  608. {
  609. DataTable dt = ICSWareHouseLotInfoBLL.GetTransferDataMO(TransferNo, TransferLine, workPoint, sysConnectString);
  610. if (dt != null && dt.Rows.Count > 0)
  611. {
  612. StringBuilder sbDetail = new StringBuilder();
  613. foreach (DataRow dr in dt.Rows)
  614. {
  615. sbDetail.Append("{");
  616. sbDetail.AppendFormat("\"TransferLine\":\"{0}\",", dr["TransferLine"]);
  617. sbDetail.AppendFormat("\"FromWHCode\":\"{0}\",", dr["FROMStorageCode"]);
  618. sbDetail.AppendFormat("\"ToWHCode\":\"{0}\",", dr["TOStorageCode"]);
  619. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["ITEMCODE"]);
  620. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  621. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  622. sbDetail.AppendFormat("\"PlanQty\":\"{0}\",", dr["PLANQTY"]);
  623. sbDetail.AppendFormat("\"ActQty\":\"{0}\",", dr["ACTQTY"]);
  624. sbDetail.AppendFormat("\"INVUom\":\"{0}\",", dr["INVUOM"]);
  625. sbDetail.Append("},");
  626. }
  627. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  628. }
  629. strData = string.Format("[{0}]", strData);
  630. return strData;
  631. }
  632. catch (Exception ex)
  633. {
  634. return ex.Message;
  635. }
  636. }
  637. //验证物料调拨申请单号
  638. [WebMethod(EnableSession = true)]
  639. public string CheckTransferNo(string TransferNo, string WorkPointCode)
  640. {
  641. string errormessage = ICSWareHouseLotInfoBLL.CheckTransferNo(TransferNo, WorkPointCode, sysConnectString);
  642. return errormessage;
  643. }
  644. //获取调拨申请单数据
  645. [WebMethod(EnableSession = true)]
  646. public string GetTransferData(string TransferNo, string workPoint)
  647. {
  648. int strCode = 1;
  649. string strMsg = "";
  650. string strData = "{}";
  651. try
  652. {
  653. DataTable dt = ICSWareHouseLotInfoBLL.GetTransferData(TransferNo, workPoint, sysConnectString);
  654. if (dt != null && dt.Rows.Count > 0)
  655. {
  656. StringBuilder sbDetail = new StringBuilder();
  657. foreach (DataRow dr in dt.Rows)
  658. {
  659. sbDetail.Append("{");
  660. sbDetail.AppendFormat("\"TransferLine\":\"{0}\",", dr["TransferLine"]);
  661. sbDetail.AppendFormat("\"FromWHCode\":\"{0}\",", dr["FROMStorageCode"]);
  662. sbDetail.AppendFormat("\"ToWHCode\":\"{0}\",", dr["TOStorageCode"]);
  663. sbDetail.AppendFormat("\"CDefine10\":\"{0}\",", dr["EATTRIBUTE4"]);
  664. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["ITEMCODE"]);
  665. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  666. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  667. sbDetail.AppendFormat("\"PlanQty\":\"{0}\",", dr["PLANQTY"]);
  668. sbDetail.AppendFormat("\"ActQty\":\"{0}\",", dr["ACTQTY"]);
  669. sbDetail.AppendFormat("\"INVUom\":\"{0}\",", dr["INVUOM"]);
  670. sbDetail.AppendFormat("\"CTVBarch\":\"{0}\"", dr["cTVBatch"]);
  671. sbDetail.Append("},");
  672. }
  673. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  674. }
  675. strData = string.Format("[{0}]", strData);
  676. return strData;
  677. }
  678. catch (Exception ex)
  679. {
  680. return ex.Message;
  681. }
  682. }
  683. //物料调拨
  684. [WebMethod(EnableSession = true)]
  685. public string WareHouseTrans(string POCode, string PORowList, string POQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string BinCodeList, string userCode, string userName, string workPoint, string Type)
  686. {
  687. int strCode = 1;
  688. string strMsg = "";
  689. string strData = "{}";
  690. string[] porowlist = PORowList.Split(',');
  691. string[] poqtylist = POQtyList.Split(',');
  692. string[] barcodelist = BarCodeList.Split(',');
  693. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  694. string[] bincodelist = BinCodeList.Split(',');
  695. string[] barcoderowlist = BarCodeRowList.Split(',');
  696. using (SqlConnection conn = new SqlConnection(sysConnectString))
  697. {
  698. conn.Open();
  699. using (SqlTransaction trans = conn.BeginTransaction())
  700. {
  701. try
  702. {
  703. if (ICSWareHouseLotInfoBLL.WareHouseTrans(conn, trans, POCode, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, bincodelist, userCode, userName, workPoint, Type, sysConnectString))
  704. {
  705. strCode = 0;
  706. strMsg = "调拨成功";
  707. }
  708. trans.Commit();
  709. }
  710. catch (Exception ex)
  711. {
  712. trans.Rollback();
  713. strCode = 1;
  714. strMsg = "调拨异常:" + ex.Message;
  715. }
  716. }
  717. conn.Close();
  718. }
  719. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  720. return result;
  721. }
  722. //获取工单行,行ID信息
  723. [WebMethod(EnableSession = true)]
  724. public string GetMOSEQ(string MOCODE, string WorkPointCode)
  725. {
  726. string sql = @"SELECT
  727. MOSEQ,EATTRIBUTE1
  728. FROM ICSMO
  729. WHERE MOCODE='{0}' AND WorkPoint='{1}'";
  730. sql = string.Format(sql, MOCODE, WorkPointCode);
  731. DataSet ds = DBHelper.ExecuteDataset(sysConnectString, CommandType.Text, sql);
  732. DataTable dt = ds.Tables[0];
  733. if (dt == null || dt.Rows.Count <= 0)
  734. throw new Exception("工单信息不存在!");
  735. return JsonConvert.SerializeObject(ds.Tables[0]);
  736. }
  737. //验证材料出库申请单(工单)
  738. [WebMethod(EnableSession = true)]
  739. public string CheckVouchCode(string VouchCode, string WorkPointCode)
  740. {
  741. int strCode = 1;
  742. string strMsg = "";
  743. string strData = "{}";
  744. try
  745. {
  746. DataTable dt = ICSWareHouseLotInfoBLL.CheckVouchCode(VouchCode, WorkPointCode, sysConnectString);
  747. if (dt != null && dt.Rows.Count > 0)
  748. {
  749. StringBuilder sbDetail = new StringBuilder();
  750. foreach (DataRow dr in dt.Rows)
  751. {
  752. sbDetail.Append("{");
  753. sbDetail.AppendFormat("\"MOTYPE\":\"{0}\",", dr["MOTYPE"]);
  754. sbDetail.AppendFormat("\"REMOITEMDESC\":\"{0}\",", dr["REMOITEMDESC"]);
  755. sbDetail.AppendFormat("\"SEQ\":\"{0}\",", dr["生产订单行号"]);
  756. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["子件行号"]);
  757. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["存货编码"]);
  758. sbDetail.AppendFormat("\"INVName\":\"{0}\",", String2Json(dr["存货名称"].ToString().Replace('"', '\"')));
  759. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["规格型号"]);
  760. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["计划数量"]);
  761. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["已发数量"]);
  762. sbDetail.AppendFormat("\"INVUOM\":\"{0}\"", dr["单位"]);
  763. sbDetail.Append("},");
  764. }
  765. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  766. }
  767. strData = string.Format("[{0}]", strData);
  768. return strData;
  769. }
  770. catch (Exception ex)
  771. {
  772. return ex.Message;
  773. }
  774. }
  775. //验证ICSMaterial表状态
  776. [WebMethod(EnableSession = true)]
  777. public string CheckMaterialStatus(string VouchCode, string WorkPointCode)
  778. {
  779. string errormessage = ICSWareHouseLotInfoBLL.CheckMaterialStatus(VouchCode, WorkPointCode, sysConnectString);
  780. return errormessage;
  781. }
  782. //验证材料出库申请单(领料单)
  783. [WebMethod(EnableSession = true)]
  784. public string CheckMaterialPickCode(string VouchCode, string WorkPointCode)
  785. {
  786. int strCode = 1;
  787. string strMsg = "";
  788. string strData = "{}";
  789. try
  790. {
  791. DataTable dt = ICSWareHouseLotInfoBLL.CheckMaterialPickCode(VouchCode, WorkPointCode, sysConnectString);
  792. if (dt != null && dt.Rows.Count > 0)
  793. {
  794. StringBuilder sbDetail = new StringBuilder();
  795. foreach (DataRow dr in dt.Rows)
  796. {
  797. sbDetail.Append("{");
  798. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["行号"]);
  799. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["存货编码"]);
  800. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["存货名称"]);
  801. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["规格型号"]);
  802. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["计划数量"]);
  803. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["已发数量"]);
  804. sbDetail.AppendFormat("\"PickingStatus\":\"{0}\",", dr["单据状态"]);
  805. sbDetail.AppendFormat("\"INVUOM\":\"{0}\"", dr["单位"]);
  806. sbDetail.Append("},");
  807. }
  808. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  809. }
  810. strData = string.Format("[{0}]", strData);
  811. return strData;
  812. }
  813. catch (Exception ex)
  814. {
  815. return ex.Message;
  816. }
  817. }
  818. //验证材料出库申请单
  819. [WebMethod(EnableSession = true)]
  820. public string CheckVouchCodePick(string VouchCode, string WorkPointCode)
  821. {
  822. int strCode = 1;
  823. string strMsg = "";
  824. string strData = "{}";
  825. try
  826. {
  827. DataTable dt = ICSWareHouseLotInfoBLL.CheckVouchCodePick(VouchCode, WorkPointCode, sysConnectString);
  828. if (dt != null && dt.Rows.Count > 0)
  829. {
  830. StringBuilder sbDetail = new StringBuilder();
  831. foreach (DataRow dr in dt.Rows)
  832. {
  833. sbDetail.Append("{");
  834. sbDetail.AppendFormat("\"SEQ\":\"{0}\",", dr["主行号"]);
  835. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["子行号"]);
  836. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["存货编码"]);
  837. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["存货名称"]);
  838. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["规格型号"]);
  839. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["计划数量"]);
  840. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["已发数量"]);
  841. sbDetail.AppendFormat("\"INVUOM\":\"{0}\"", dr["单位"]);
  842. sbDetail.Append("},");
  843. }
  844. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  845. }
  846. strData = string.Format("[{0}]", strData);
  847. return strData;
  848. }
  849. catch (Exception ex)
  850. {
  851. return ex.Message;
  852. }
  853. }
  854. //材料出库(领料单)
  855. [WebMethod(EnableSession = true)]
  856. public string MaterialOut(string POCode, string PoRowList, string PoRowQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string SubmitUserName, string userCode, string userName, string workPoint, string Type)
  857. {
  858. int strCode = 1;
  859. string strMsg = "";
  860. string strData = "{}";
  861. string[] porowlist = PoRowList.Split(',');
  862. string[] poqtylist = PoRowQtyList.Split(',');
  863. string[] barcodelist = BarCodeList.Split(',');
  864. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  865. string[] barcoderowlist = BarCodeRowList.Split(',');
  866. using (SqlConnection conn = new SqlConnection(sysConnectString))
  867. {
  868. conn.Open();
  869. using (SqlTransaction trans = conn.BeginTransaction())
  870. {
  871. try
  872. {
  873. if (ICSWareHouseLotInfoBLL.WareHouseMterialOut(conn, trans, POCode, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, SubmitUserName, userCode, userName, workPoint, Type, sysConnectString))
  874. {
  875. strCode = 0;
  876. strMsg = "出库成功";
  877. }
  878. trans.Commit();
  879. }
  880. catch (Exception ex)
  881. {
  882. trans.Rollback();
  883. strCode = 1;
  884. strMsg = "出库异常:" + ex.Message;
  885. }
  886. }
  887. conn.Close();
  888. }
  889. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  890. return result;
  891. }
  892. //材料出库(工单)
  893. [WebMethod(EnableSession = true)]
  894. public string MOMaterialOut(string POCode, string PoMainRowList, string PoRowList, string PoRowQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string userCode, string userName, string workPoint, string Type)
  895. {
  896. int strCode = 1;
  897. string strMsg = "";
  898. string strData = "{}";
  899. string[] pomainrowlist = PoMainRowList.Split(',');
  900. string[] porowlist = PoRowList.Split(',');
  901. string[] poqtylist = PoRowQtyList.Split(',');
  902. string[] barcodelist = BarCodeList.Split(',');
  903. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  904. string[] barcoderowlist = BarCodeRowList.Split(',');
  905. using (SqlConnection conn = new SqlConnection(sysConnectString))
  906. {
  907. conn.Open();
  908. using (SqlTransaction trans = conn.BeginTransaction())
  909. {
  910. try
  911. {
  912. if (ICSWareHouseLotInfoBLL.WareHouseMOMterialOut(conn, trans, POCode, pomainrowlist, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, userCode, userName, workPoint, Type, sysConnectString))
  913. {
  914. strCode = 0;
  915. strMsg = "出库成功";
  916. }
  917. trans.Commit();
  918. }
  919. catch (Exception ex)
  920. {
  921. trans.Rollback();
  922. strCode = 1;
  923. strMsg = "出库异常:" + ex.Message;
  924. }
  925. }
  926. conn.Close();
  927. }
  928. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  929. return result;
  930. }
  931. //物料退料
  932. [WebMethod(EnableSession = true)]
  933. public string MaterialIN(string POCodeList, string PORowList, string POQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string BinCodeList, string userCode, string userName, string workPoint, string Type, string VouchType)
  934. {
  935. int strCode = 1;
  936. string strMsg = "";
  937. string strData = "{}";
  938. string[] pocodelist = POCodeList.Split(',');
  939. string[] porowlist = PORowList.Split(',');
  940. string[] poqtylist = POQtyList.Split(',');
  941. string[] barcodelist = BarCodeList.Split(',');
  942. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  943. string[] barcoderowlist = BarCodeRowList.Split(',');
  944. string[] bincodelist = BinCodeList.Split(',');
  945. using (SqlConnection conn = new SqlConnection(sysConnectString))
  946. {
  947. conn.Open();
  948. using (SqlTransaction trans = conn.BeginTransaction())
  949. {
  950. try
  951. {
  952. if (ICSWareHouseLotInfoBLL.MaterialIN(conn, trans, pocodelist, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, bincodelist, userCode, userName, workPoint, Type, VouchType, sysConnectString))
  953. {
  954. strCode = 0;
  955. strMsg = "出库成功";
  956. }
  957. trans.Commit();
  958. }
  959. catch (Exception ex)
  960. {
  961. trans.Rollback();
  962. strCode = 1;
  963. strMsg = "出库异常:" + ex.Message;
  964. }
  965. }
  966. conn.Close();
  967. }
  968. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  969. return result;
  970. }
  971. //验证销售出库单号
  972. [WebMethod(EnableSession = true)]
  973. public string CheckSOCode(string SOCode, string WorkPointCode)
  974. {
  975. int strCode = 1;
  976. string strMsg = "";
  977. string strData = "{}";
  978. try
  979. {
  980. DataTable dt = ICSWareHouseLotInfoBLL.CheckSOCode(SOCode, WorkPointCode, sysConnectString);
  981. if (dt != null && dt.Rows.Count > 0)
  982. {
  983. StringBuilder sbDetail = new StringBuilder();
  984. foreach (DataRow dr in dt.Rows)
  985. {
  986. sbDetail.Append("{");
  987. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["DispatchRow"]);
  988. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  989. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVName"]);
  990. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  991. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["Quantity"]);
  992. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["HasQuantity"]);
  993. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  994. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  995. sbDetail.AppendFormat("\"Batch\":\"{0}\"", dr["cBatch"]);
  996. sbDetail.Append("},");
  997. }
  998. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  999. }
  1000. strData = string.Format("[{0}]", strData);
  1001. return strData;
  1002. }
  1003. catch (Exception ex)
  1004. {
  1005. return ex.Message;
  1006. }
  1007. }
  1008. //验证销售退库单号
  1009. [WebMethod(EnableSession = true)]
  1010. public string CheckSOCodeForReturn(string SOCode, string WorkPointCode)
  1011. {
  1012. int strCode = 1;
  1013. string strMsg = "";
  1014. string strData = "{}";
  1015. try
  1016. {
  1017. DataTable dt = ICSWareHouseLotInfoBLL.CheckSOCodeForReturn(SOCode, WorkPointCode, sysConnectString);
  1018. if (dt != null && dt.Rows.Count > 0)
  1019. {
  1020. StringBuilder sbDetail = new StringBuilder();
  1021. foreach (DataRow dr in dt.Rows)
  1022. {
  1023. sbDetail.Append("{");
  1024. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["DispatchRow"]);
  1025. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  1026. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVName"]);
  1027. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1028. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["Quantity"]);
  1029. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["HasQuantity"]);
  1030. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1031. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1032. sbDetail.AppendFormat("\"Batch\":\"{0}\"", dr["cBatch"]);
  1033. sbDetail.Append("},");
  1034. }
  1035. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1036. }
  1037. strData = string.Format("[{0}]", strData);
  1038. return strData;
  1039. }
  1040. catch (Exception ex)
  1041. {
  1042. return ex.Message;
  1043. }
  1044. }
  1045. //验证销售出库条码信息
  1046. [WebMethod(EnableSession = true)]
  1047. public string CheckLotnoForSO(string SOCode, string BarCode, string WorkPointCode)
  1048. {
  1049. int strCode = 1;
  1050. string strMsg = "";
  1051. string strData = "{}";
  1052. try
  1053. {
  1054. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForSO(SOCode, BarCode, WorkPointCode, sysConnectString);
  1055. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["WHLotno"].ToString() != "" && dt.Rows[0]["WHLotno"].ToString() != null)
  1056. {
  1057. StringBuilder sbDetail = new StringBuilder();
  1058. foreach (DataRow dr in dt.Rows)
  1059. {
  1060. sbDetail.Append("{");
  1061. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  1062. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1063. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1064. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1065. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1066. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["INVCODE"]);
  1067. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1068. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1069. sbDetail.AppendFormat("\"Rate\":\"{0}\",", dr["EATTRIBUTE3"]);
  1070. sbDetail.AppendFormat("\"InQty\":\"{0}\",", 0.00);
  1071. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\"", dr["VenderLotNO"]);
  1072. sbDetail.Append("},");
  1073. }
  1074. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1075. }
  1076. strData = string.Format("[{0}]", strData);
  1077. return strData;
  1078. }
  1079. catch (Exception ex)
  1080. {
  1081. return ex.Message;
  1082. }
  1083. }
  1084. //验证销售退库条码信息
  1085. [WebMethod(EnableSession = true)]
  1086. public string CheckLotnoForSOReturn(string BarCode, string WorkPointCode)
  1087. {
  1088. int strCode = 1;
  1089. string strMsg = "";
  1090. string strData = "{}";
  1091. try
  1092. {
  1093. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForSOReturn(BarCode, WorkPointCode, sysConnectString);
  1094. if (dt != null && dt.Rows.Count > 0)
  1095. {
  1096. StringBuilder sbDetail = new StringBuilder();
  1097. foreach (DataRow dr in dt.Rows)
  1098. {
  1099. sbDetail.Append("{");
  1100. sbDetail.AppendFormat("\"DispatchCode\":\"{0}\",", dr["DispatchCode"]);
  1101. sbDetail.AppendFormat("\"DispatchRow\":\"{0}\",", dr["DispatchRow"]);
  1102. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  1103. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1104. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1105. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["MCODE"]);
  1106. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1107. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1108. sbDetail.AppendFormat("\"Rate\":\"{0}\",", dr["EATTRIBUTE3"]);
  1109. sbDetail.AppendFormat("\"cBatch\":\"{0}\",", dr["cBatch"]);
  1110. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1111. sbDetail.AppendFormat("\"LotBatch\":\"{0}\"", dr["VenderLotNO"]);
  1112. sbDetail.Append("},");
  1113. }
  1114. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1115. }
  1116. strData = string.Format("[{0}]", strData);
  1117. return strData;
  1118. }
  1119. catch (Exception ex)
  1120. {
  1121. return ex.Message;
  1122. }
  1123. }
  1124. //销售出库
  1125. [WebMethod(EnableSession = true)]
  1126. public string DispatchOut(string POCode, string PORowList, string POQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string userCode, string userName, string workPoint, string Type)
  1127. {
  1128. int strCode = 1;
  1129. string strMsg = "";
  1130. string strData = "{}";
  1131. string[] porowlist = PORowList.Split(',');
  1132. string[] poqtylist = POQtyList.Split(',');
  1133. string[] barcoderowlist = BarCodeRowList.Split(',');
  1134. string[] barcodelist = BarCodeList.Split(',');
  1135. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  1136. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1137. {
  1138. conn.Open();
  1139. using (SqlTransaction trans = conn.BeginTransaction())
  1140. {
  1141. try
  1142. {
  1143. if (ICSWareHouseLotInfoBLL.WareHouseDisPatchOut(conn, trans, POCode, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, userCode, userName, workPoint, Type, sysConnectString))
  1144. {
  1145. strCode = 0;
  1146. strMsg = "出库成功";
  1147. }
  1148. trans.Commit();
  1149. }
  1150. catch (Exception ex)
  1151. {
  1152. trans.Rollback();
  1153. strCode = 1;
  1154. strMsg = "出库异常:" + ex.Message;
  1155. }
  1156. }
  1157. conn.Close();
  1158. }
  1159. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1160. return result;
  1161. }
  1162. //销售退库
  1163. [WebMethod(EnableSession = true)]
  1164. public string DispatchIN(string POCode, string PORowList, string BarCodeList, string BarCodeQtyList, string StackCodeList, string userCode, string userName, string workPoint, string Type)
  1165. {
  1166. int strCode = 1;
  1167. string strMsg = "";
  1168. string strData = "{}";
  1169. string[] porowlist = PORowList.Split(',');
  1170. string[] barcodelist = BarCodeList.Split(',');
  1171. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  1172. string[] stackcodelist = StackCodeList.Split(',');
  1173. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1174. {
  1175. conn.Open();
  1176. using (SqlTransaction trans = conn.BeginTransaction())
  1177. {
  1178. try
  1179. {
  1180. if (ICSWareHouseLotInfoBLL.WareHouseDisPatchIN(conn, trans, POCode, porowlist, barcodelist, barcodeqtylist, stackcodelist, userCode, userName, workPoint, Type, sysConnectString))
  1181. {
  1182. strCode = 0;
  1183. strMsg = "出库成功";
  1184. }
  1185. trans.Commit();
  1186. }
  1187. catch (Exception ex)
  1188. {
  1189. trans.Rollback();
  1190. strCode = 1;
  1191. strMsg = "出库异常:" + ex.Message;
  1192. }
  1193. }
  1194. conn.Close();
  1195. }
  1196. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1197. return result;
  1198. }
  1199. //验证条码信息(移库)
  1200. [WebMethod(EnableSession = true)]
  1201. public string CheckLotnoForStackTrans(string BarCode, string WorkPointCode)
  1202. {
  1203. int strCode = 1;
  1204. string strMsg = "";
  1205. string strData = "{}";
  1206. try
  1207. {
  1208. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForStackTrans(BarCode, WorkPointCode, sysConnectString);
  1209. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["WHLotno"].ToString() != "" && dt.Rows[0]["WHLotno"].ToString() != null)
  1210. {
  1211. StringBuilder sbDetail = new StringBuilder();
  1212. foreach (DataRow dr in dt.Rows)
  1213. {
  1214. sbDetail.Append("{");
  1215. sbDetail.AppendFormat("\"LotNo\":\"{0}\",", dr["WHLotno"]);
  1216. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1217. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  1218. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  1219. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1220. sbDetail.AppendFormat("\"LOTQty\":\"{0}\",", dr["LotQty"]);
  1221. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1222. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["WHCode"]);
  1223. sbDetail.Append("},");
  1224. }
  1225. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1226. }
  1227. strData = string.Format("[{0}]", strData);
  1228. return strData;
  1229. }
  1230. catch (Exception ex)
  1231. {
  1232. return ex.Message;
  1233. }
  1234. }
  1235. [WebMethod(EnableSession = true)]
  1236. public string CheckBinCodeForStackTrans(string BinCode, string WorkPointCode)
  1237. {
  1238. int strCode = 1;
  1239. string strMsg = "";
  1240. string strData = "{}";
  1241. try
  1242. {
  1243. DataTable dt = ICSWareHouseLotInfoBLL.CheckBinCodeForStackTrans(BinCode, WorkPointCode, sysConnectString);
  1244. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["WHLotno"].ToString() != "" && dt.Rows[0]["WHLotno"].ToString() != null)
  1245. {
  1246. StringBuilder sbDetail = new StringBuilder();
  1247. foreach (DataRow dr in dt.Rows)
  1248. {
  1249. sbDetail.Append("{");
  1250. sbDetail.AppendFormat("\"LotNo\":\"{0}\",", dr["WHLotno"]);
  1251. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["MCODE"]);
  1252. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1253. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["MCODE"]);
  1254. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  1255. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1256. sbDetail.AppendFormat("\"LOTQty\":\"{0}\",", dr["LotQty"]);
  1257. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1258. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["WHCode"]);
  1259. sbDetail.Append("},");
  1260. }
  1261. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1262. }
  1263. strData = string.Format("[{0}]", strData);
  1264. return strData;
  1265. }
  1266. catch (Exception ex)
  1267. {
  1268. return ex.Message;
  1269. }
  1270. }
  1271. //验证箱号信息(移库)
  1272. [WebMethod(EnableSession = true)]
  1273. public string CheckBoxnoForStackTrans(string BarCode, string WorkPointCode)
  1274. {
  1275. int strCode = 1;
  1276. string strMsg = "";
  1277. string strData = "{}";
  1278. try
  1279. {
  1280. DataTable dt = ICSWareHouseLotInfoBLL.CheckBoxnoForStackTrans(BarCode, WorkPointCode, sysConnectString);
  1281. if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["WHLotno"].ToString() != "" && dt.Rows[0]["WHLotno"].ToString() != null)
  1282. {
  1283. StringBuilder sbDetail = new StringBuilder();
  1284. foreach (DataRow dr in dt.Rows)
  1285. {
  1286. sbDetail.Append("{");
  1287. sbDetail.AppendFormat("\"LotNo\":\"{0}\",", dr["WHLotno"]);
  1288. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1289. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  1290. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1291. sbDetail.AppendFormat("\"LOTQty\":\"{0}\",", dr["LotQty"]);
  1292. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1293. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["WHCode"]);
  1294. sbDetail.Append("},");
  1295. }
  1296. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1297. }
  1298. strData = string.Format("[{0}]", strData);
  1299. return strData;
  1300. }
  1301. catch (Exception ex)
  1302. {
  1303. return ex.Message;
  1304. }
  1305. }
  1306. //移库扫描
  1307. [WebMethod(EnableSession = true)]
  1308. public string StackTransfer(string OldBinCodeList, string NewBinCodeList, string BarCodeList, string BarCodeQtyList, string userCode, string userName, string workPoint, string Type)
  1309. {
  1310. int strCode = 1;
  1311. string strMsg = "";
  1312. string strData = "{}";
  1313. string[] oldbincodelist = OldBinCodeList.Split(',');
  1314. string[] newbincodelist = NewBinCodeList.Split(',');
  1315. string[] barcodelist = BarCodeList.Split(',');
  1316. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  1317. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1318. {
  1319. conn.Open();
  1320. using (SqlTransaction trans = conn.BeginTransaction())
  1321. {
  1322. try
  1323. {
  1324. if (ICSWareHouseLotInfoBLL.StackTransfer(conn, trans, oldbincodelist, newbincodelist, barcodelist, barcodeqtylist, userCode, userName, workPoint, Type, sysConnectString))
  1325. {
  1326. strCode = 0;
  1327. strMsg = "移库成功";
  1328. }
  1329. trans.Commit();
  1330. }
  1331. catch (Exception ex)
  1332. {
  1333. trans.Rollback();
  1334. strCode = 1;
  1335. strMsg = "移库异常:" + ex.Message;
  1336. }
  1337. }
  1338. conn.Close();
  1339. }
  1340. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1341. return result;
  1342. }
  1343. //验证盘点单号
  1344. [WebMethod(EnableSession = true)]
  1345. public string CheckCheckNo(string CheckNo, string WorkPointCode)
  1346. {
  1347. string errormessage = ICSWareHouseLotInfoBLL.CheckCheckNo(CheckNo, WorkPointCode, sysConnectString);
  1348. return errormessage;
  1349. }
  1350. //验证盘点条码信息
  1351. [WebMethod(EnableSession = true)]
  1352. public string CheckLotnoForCheck(string CheckNo, string BarCode, string WorkPointCode)
  1353. {
  1354. int strCode = 1;
  1355. string strMsg = "";
  1356. string strData = "{}";
  1357. try
  1358. {
  1359. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForCheck(CheckNo, BarCode, WorkPointCode, sysConnectString);
  1360. if (dt != null && dt.Rows.Count > 0)
  1361. {
  1362. StringBuilder sbDetail = new StringBuilder();
  1363. foreach (DataRow dr in dt.Rows)
  1364. {
  1365. sbDetail.Append("{");
  1366. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1367. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1368. sbDetail.AppendFormat("\"BarCode\":\"{0}\",", dr["LotNO"]);
  1369. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  1370. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  1371. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1372. sbDetail.AppendFormat("\"LOTQty\":\"{0}\",", dr["LotQty"]);
  1373. sbDetail.AppendFormat("\"CheckQty\":\"{0}\",", dr["BarCodeQty"]);
  1374. sbDetail.AppendFormat("\"ItemLotQTY\":\"{0}\",", dr["ItemLotQTY"]);
  1375. sbDetail.AppendFormat("\"INVUOM\":\"{0}\"", dr["INVUOM"]);
  1376. sbDetail.Append("},");
  1377. }
  1378. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1379. }
  1380. strData = string.Format("[{0}]", strData);
  1381. return strData;
  1382. }
  1383. catch (Exception ex)
  1384. {
  1385. return ex.Message;
  1386. }
  1387. }
  1388. // 盘点扫描
  1389. [WebMethod(EnableSession = true)]
  1390. public string CheckIn(string CheckNo, string BarCodeList, string BarCodeQtyList, string userCode, string userName, string workPoint, string Type, string EditType)
  1391. {
  1392. int strCode = 1;
  1393. string strMsg = "";
  1394. string strData = "{}";
  1395. string[] barcodelist = BarCodeList.Split(',');
  1396. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  1397. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1398. {
  1399. conn.Open();
  1400. using (SqlTransaction trans = conn.BeginTransaction())
  1401. {
  1402. try
  1403. {
  1404. if (ICSWareHouseLotInfoBLL.CheckIn(conn, trans, CheckNo, barcodelist, barcodeqtylist, userCode, userName, workPoint, Type, EditType, sysConnectString))
  1405. {
  1406. strCode = 0;
  1407. strMsg = "盘点成功";
  1408. }
  1409. trans.Commit();
  1410. }
  1411. catch (Exception ex)
  1412. {
  1413. trans.Rollback();
  1414. strCode = 1;
  1415. strMsg = "盘点异常:" + ex.Message;
  1416. }
  1417. }
  1418. conn.Close();
  1419. }
  1420. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1421. return result;
  1422. }
  1423. //获取条码信息(采购入库)
  1424. [WebMethod(EnableSession = true)]
  1425. public string GetLotDataForPO(string BarCode, string workPoint)
  1426. {
  1427. int strCode = 1;
  1428. string strMsg = "";
  1429. string strData = "{}";
  1430. try
  1431. {
  1432. DataTable dt = ICSITEMLOTBLL.GetLotDataForPO(BarCode, workPoint, sysConnectString);
  1433. if (dt != null && dt.Rows.Count > 0)
  1434. {
  1435. StringBuilder sbDetail = new StringBuilder();
  1436. foreach (DataRow dr in dt.Rows)
  1437. {
  1438. sbDetail.Append("{");
  1439. sbDetail.AppendFormat("\"TransNO\":\"{0}\",", dr["TransNO"]);
  1440. sbDetail.AppendFormat("\"TransLine\":\"{0}\",", dr["TransLine"]);
  1441. sbDetail.AppendFormat("\"LotNo\":\"{0}\",", dr["LotNO"]);
  1442. sbDetail.AppendFormat("\"MCode\":\"{0}\",", dr["MCODE"]);
  1443. sbDetail.AppendFormat("\"InvName\":\"{0}\",", dr["INVNAME"]);
  1444. sbDetail.AppendFormat("\"InvSTD\":\"{0}\",", dr["INVSTD"]);
  1445. sbDetail.AppendFormat("\"LOTQTY\":\"{0}\",", dr["LOTQTY"]);
  1446. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1447. sbDetail.AppendFormat("\"EATTRIBUTE2\":\"{0}\",", dr["EATTRIBUTE2"]);
  1448. sbDetail.AppendFormat("\"GoodQTY\":\"{0}\",", dr["EATTRIBUTE3"]);
  1449. sbDetail.AppendFormat("\"CheckType\":\"{0}\",", dr["EATTRIBUTE6"]);
  1450. sbDetail.AppendFormat("\"INVEXPORTIMPORT\":\"{0}\",", dr["INVEXPORTIMPORT"]);
  1451. sbDetail.AppendFormat("\"Batch\":\"{0}\",", dr["Batch"]);
  1452. sbDetail.AppendFormat("\"cWhCode\":\"{0}\"", dr["cWhCode"]);
  1453. sbDetail.Append("},");
  1454. }
  1455. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1456. }
  1457. strData = string.Format("[{0}]", strData);
  1458. return strData;
  1459. }
  1460. catch (Exception ex)
  1461. {
  1462. return ex.Message;
  1463. }
  1464. }
  1465. //验证条码信息(其他出库)
  1466. [WebMethod(EnableSession = true)]
  1467. public string CheckLotNoForOtherOut(string BarCode, string workPoint)
  1468. {
  1469. string errormessage = ICSWareHouseLotInfoBLL.CheckLotNoForOtherOut(BarCode, workPoint, sysConnectString);
  1470. return errormessage;
  1471. }
  1472. //验证条码信息(其他入库)
  1473. [WebMethod(EnableSession = true)]
  1474. public string CheckLotNoForOtherIN(string TransferNO, string BarCode, string workPoint)
  1475. {
  1476. string errormessage = ICSWareHouseLotInfoBLL.CheckLotNoForOtherIN(TransferNO, BarCode, workPoint, sysConnectString);
  1477. return errormessage;
  1478. }
  1479. //验证物料退料库位信息
  1480. [WebMethod(EnableSession = true)]
  1481. public string CheckStackCodeForBack(string StackCode, string WHCode, string WorkPoint)
  1482. {
  1483. string errormessage = ICSWareHouseLotInfoBLL.CheckStackCodeForBack(StackCode, WHCode, WorkPoint, sysConnectString);
  1484. return errormessage;
  1485. }
  1486. //获取其他出库单源头单据信息
  1487. [WebMethod(EnableSession = true)]
  1488. public string CheckCodeForOtherOut(string TransferNO, string WorkPoint)
  1489. {
  1490. int strCode = 1;
  1491. string strMsg = "";
  1492. string strData = "{}";
  1493. try
  1494. {
  1495. DataTable dt = ICSWareHouseLotInfoBLL.CheckCodeForOtherOut(TransferNO, WorkPoint, sysConnectString);
  1496. if (dt != null && dt.Rows.Count > 0)
  1497. {
  1498. StringBuilder sbDetail = new StringBuilder();
  1499. foreach (DataRow dr in dt.Rows)
  1500. {
  1501. sbDetail.Append("{");
  1502. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["iRSRowNO"]);
  1503. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["cInvCode"]);
  1504. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  1505. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1506. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["iQuantity"]);
  1507. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["iFQuantity"]);
  1508. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1509. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["cWhCode"]);
  1510. sbDetail.Append("},");
  1511. }
  1512. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1513. }
  1514. strData = string.Format("[{0}]", strData);
  1515. return strData;
  1516. }
  1517. catch (Exception ex)
  1518. {
  1519. return ex.Message;
  1520. }
  1521. }
  1522. //获取条码信息(其他出库)
  1523. [WebMethod(EnableSession = true)]
  1524. public string GetLotDataForOtherOut(string BarCode, string WorkPoint)
  1525. {
  1526. int strCode = 1;
  1527. string strMsg = "";
  1528. string strData = "{}";
  1529. try
  1530. {
  1531. DataTable dt = ICSWareHouseLotInfoBLL.GetLotDataForOtherOut(BarCode, WorkPoint, sysConnectString);
  1532. if (dt != null && dt.Rows.Count > 0)
  1533. {
  1534. StringBuilder sbDetail = new StringBuilder();
  1535. foreach (DataRow dr in dt.Rows)
  1536. {
  1537. sbDetail.Append("{");
  1538. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  1539. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1540. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["INVCode"]);
  1541. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1542. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1543. sbDetail.AppendFormat("\"InQty\":\"{0}\",", 0.000);
  1544. sbDetail.AppendFormat("\"BinCode\":\"{0}\"", dr["BinCode"]);
  1545. sbDetail.Append("},");
  1546. }
  1547. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1548. }
  1549. strData = string.Format("[{0}]", strData);
  1550. return strData;
  1551. }
  1552. catch (Exception ex)
  1553. {
  1554. return ex.Message;
  1555. }
  1556. }
  1557. //获取条码信息(其他入库)
  1558. [WebMethod(EnableSession = true)]
  1559. public string GetLotDataForOtherIN(string BarCode, string WorkPoint)
  1560. {
  1561. int strCode = 1;
  1562. string strMsg = "";
  1563. string strData = "{}";
  1564. try
  1565. {
  1566. DataTable dt = ICSWareHouseLotInfoBLL.GetLotDataForOtherIN(BarCode, WorkPoint, sysConnectString);
  1567. if (dt != null && dt.Rows.Count > 0)
  1568. {
  1569. StringBuilder sbDetail = new StringBuilder();
  1570. foreach (DataRow dr in dt.Rows)
  1571. {
  1572. sbDetail.Append("{");
  1573. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  1574. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["cWhCode"]);
  1575. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["MCODE"]);
  1576. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1577. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1578. sbDetail.AppendFormat("\"InQty\":\"{0}\",", 0.000);
  1579. sbDetail.Append("},");
  1580. }
  1581. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1582. }
  1583. strData = string.Format("[{0}]", strData);
  1584. return strData;
  1585. }
  1586. catch (Exception ex)
  1587. {
  1588. return ex.Message;
  1589. }
  1590. }
  1591. //其他出库
  1592. [WebMethod(EnableSession = true)]
  1593. public string OtherOut(string BarCodeList, string OutType, string userCode, string userName, string workPoint, string Type)
  1594. {
  1595. int strCode = 1;
  1596. string strMsg = "";
  1597. string strData = "{}";
  1598. string[] barcodelist = BarCodeList.Split(',');
  1599. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1600. {
  1601. conn.Open();
  1602. using (SqlTransaction trans = conn.BeginTransaction())
  1603. {
  1604. try
  1605. {
  1606. if (ICSWareHouseLotInfoBLL.WareHouseOtherOut(conn, trans, barcodelist, OutType, userCode, userName, workPoint, Type, sysConnectString))
  1607. {
  1608. strCode = 0;
  1609. strMsg = "出库成功";
  1610. }
  1611. trans.Commit();
  1612. }
  1613. catch (Exception ex)
  1614. {
  1615. trans.Rollback();
  1616. strCode = 1;
  1617. strMsg = "出库异常:" + ex.Message;
  1618. }
  1619. }
  1620. conn.Close();
  1621. }
  1622. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1623. return result;
  1624. }
  1625. //验证条码信息(物料退料)
  1626. [WebMethod(EnableSession = true)]
  1627. public string CheckLotnoForINVIN(string BarCode, string WorkPointCode)
  1628. {
  1629. int strCode = 1;
  1630. string strMsg = "";
  1631. string strData = "{}";
  1632. try
  1633. {
  1634. DataTable dt = ICSWareHouseLotInfoBLL.CheckLotnoForINVIN(BarCode, WorkPointCode, sysConnectString);
  1635. if (dt != null && dt.Rows.Count > 0)
  1636. {
  1637. StringBuilder sbDetail = new StringBuilder();
  1638. foreach (DataRow dr in dt.Rows)
  1639. {
  1640. sbDetail.Append("{");
  1641. sbDetail.AppendFormat("\"VouchCode\":\"{0}\",", dr["VouchCode"]);
  1642. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["VouchRow"]);
  1643. if (Convert.ToBoolean(dr["IsMROItem"]) == false)
  1644. {
  1645. sbDetail.AppendFormat("\"VouchType\":\"{0}\",", 0);
  1646. }
  1647. else
  1648. {
  1649. sbDetail.AppendFormat("\"VouchType\":\"{0}\",", 1);
  1650. }
  1651. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["InvCode"]);
  1652. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1653. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1654. sbDetail.AppendFormat("\"LOTQTY\":\"{0}\",", dr["LOTQTY"]);
  1655. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["Quantity"]);
  1656. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["HasQuantity"]);
  1657. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1658. sbDetail.AppendFormat("\"WHLOTNO\":\"{0}\",", dr["WHLOTNO"]);
  1659. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["WHCode"]);
  1660. sbDetail.Append("},");
  1661. }
  1662. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1663. }
  1664. strData = string.Format("[{0}]", strData);
  1665. return strData;
  1666. }
  1667. catch (Exception ex)
  1668. {
  1669. return ex.Message;
  1670. }
  1671. }
  1672. //获取其他入库单源头单据信息
  1673. [WebMethod(EnableSession = true)]
  1674. public string CheckCodeForOtherIN(string TransferNO, string WorkPoint)
  1675. {
  1676. int strCode = 1;
  1677. string strMsg = "";
  1678. string strData = "{}";
  1679. try
  1680. {
  1681. DataTable dt = ICSWareHouseLotInfoBLL.CheckCodeForOtherIN(TransferNO, WorkPoint, sysConnectString);
  1682. if (dt != null && dt.Rows.Count > 0)
  1683. {
  1684. StringBuilder sbDetail = new StringBuilder();
  1685. foreach (DataRow dr in dt.Rows)
  1686. {
  1687. sbDetail.Append("{");
  1688. sbDetail.AppendFormat("\"VouchRow\":\"{0}\",", dr["iRSRowNO"]);
  1689. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["cInvCode"]);
  1690. sbDetail.AppendFormat("\"INVName\":\"{0}\",", dr["INVNAME"]);
  1691. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1692. sbDetail.AppendFormat("\"Quantity\":\"{0}\",", dr["iQuantity"]);
  1693. sbDetail.AppendFormat("\"HasQuantity\":\"{0}\",", dr["iFQuantity"]);
  1694. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1695. sbDetail.AppendFormat("\"WHCode\":\"{0}\"", dr["cWhCode"]);
  1696. sbDetail.Append("},");
  1697. }
  1698. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1699. }
  1700. strData = string.Format("[{0}]", strData);
  1701. return strData;
  1702. }
  1703. catch (Exception ex)
  1704. {
  1705. return ex.Message;
  1706. }
  1707. }
  1708. //其他入库
  1709. [WebMethod(EnableSession = true)]
  1710. public string OtherIN(string POCode, string PoRowList, string PoRowQtyList, string BarCodeRowList, string BarCodeList, string BarCodeQtyList, string BinCodeList, string userCode, string userName, string workPoint, string Type)
  1711. {
  1712. int strCode = 1;
  1713. string strMsg = "";
  1714. string strData = "{}";
  1715. string[] porowlist = PoRowList.Split(',');
  1716. string[] poqtylist = PoRowQtyList.Split(',');
  1717. string[] barcodelist = BarCodeList.Split(',');
  1718. string[] barcodeqtylist = BarCodeQtyList.Split(',');
  1719. string[] barcoderowlist = BarCodeRowList.Split(',');
  1720. string[] bincodelist = BinCodeList.Split(',');
  1721. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1722. {
  1723. conn.Open();
  1724. using (SqlTransaction trans = conn.BeginTransaction())
  1725. {
  1726. try
  1727. {
  1728. if (ICSWareHouseLotInfoBLL.WareHouseOtherIN(conn, trans, POCode, porowlist, poqtylist, barcoderowlist, barcodelist, barcodeqtylist, bincodelist, userCode, userName, workPoint, Type, sysConnectString))
  1729. {
  1730. strCode = 0;
  1731. strMsg = "出库成功";
  1732. }
  1733. trans.Commit();
  1734. }
  1735. catch (Exception ex)
  1736. {
  1737. trans.Rollback();
  1738. strCode = 1;
  1739. strMsg = "出库异常:" + ex.Message;
  1740. }
  1741. }
  1742. conn.Close();
  1743. }
  1744. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1745. return result;
  1746. }
  1747. [WebMethod(EnableSession = true)]
  1748. public string GetNewVersion(string projectName, string version)
  1749. {
  1750. string json = string.Empty;
  1751. SqlConnection conn = new SqlConnection(sysConnectString);
  1752. SqlCommand cmd = new SqlCommand();
  1753. cmd.Connection = conn;
  1754. cmd.CommandText = "select top(1) * from ICSVersions where projectname = '" + projectName + "' and version > '" + version + "' order by version desc;";
  1755. try
  1756. {
  1757. conn.Open();
  1758. SqlDataReader dr = cmd.ExecuteReader();
  1759. if (dr.Read())
  1760. {
  1761. StringWriter sw = new StringWriter();
  1762. JsonWriter write = new JsonTextWriter(sw);
  1763. write.WriteStartObject();
  1764. write.WritePropertyName("Version");
  1765. write.WriteValue(dr["version"].ToString());
  1766. write.WritePropertyName("Url");
  1767. write.WriteValue(dr["url"].ToString());
  1768. write.WriteEndObject();
  1769. write.Flush();
  1770. json = sw.GetStringBuilder().ToString();
  1771. }
  1772. dr.Close();
  1773. conn.Close();
  1774. }
  1775. catch (Exception ex)
  1776. {
  1777. throw new Exception(ex.Message);
  1778. }
  1779. return json;
  1780. }
  1781. //查询用户信息(20201208新增)
  1782. [WebMethod(EnableSession = true)]
  1783. public string GetUserInfo(string UserCode, string WorkPointCode)
  1784. {
  1785. int strCode = 1;
  1786. string strMsg = "";
  1787. string strData = "{}";
  1788. try
  1789. {
  1790. DataTable dt = ICSWareHouseLotInfoBLL.GetUserInfo(UserCode, WorkPointCode, sysConnectString);
  1791. if (dt != null && dt.Rows.Count > 0)
  1792. {
  1793. StringBuilder sbDetail = new StringBuilder();
  1794. foreach (DataRow dr in dt.Rows)
  1795. {
  1796. sbDetail.Append("{");
  1797. sbDetail.AppendFormat("\"UserCode\":\"{0}\",", dr["UserCode"]);
  1798. sbDetail.AppendFormat("\"UserName\":\"{0}\"", dr["UserName"]);
  1799. sbDetail.Append("},");
  1800. }
  1801. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1802. }
  1803. strData = string.Format("[{0}]", strData);
  1804. return strData;
  1805. }
  1806. catch (Exception ex)
  1807. {
  1808. return ex.Message;
  1809. }
  1810. }
  1811. //先进先出批次管控
  1812. [WebMethod(EnableSession = true)]
  1813. public string CanOut(string LotNO, string workPoint)
  1814. {
  1815. string message = ICSWareHouseLotInfoBLL.CanOut(LotNO, workPoint, sysConnectString);
  1816. return message;
  1817. }
  1818. #region PDA查询界面
  1819. [WebMethod(EnableSession = true)]
  1820. public string FormINVSer(string INVCode, string WorkPoint)
  1821. {
  1822. string strData = "{}";
  1823. try
  1824. {
  1825. DataTable dt = ICSWareHouseLotInfoBLL.FormINVSer(INVCode, WorkPoint, sysConnectString);
  1826. if (dt != null && dt.Rows.Count > 0)
  1827. {
  1828. StringBuilder sbDetail = new StringBuilder();
  1829. foreach (DataRow dr in dt.Rows)
  1830. {
  1831. sbDetail.Append("{");
  1832. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1833. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1834. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  1835. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1836. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1837. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1838. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\",", dr["VenderLotNO"]);
  1839. sbDetail.AppendFormat("\"BinQTY\":\"{0}\",", dr["BinQTY"]);
  1840. sbDetail.AppendFormat("\"WHLotQTY\":\"{0}\"", dr["WHLotQTY"]);
  1841. sbDetail.Append("},");
  1842. }
  1843. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1844. }
  1845. strData = string.Format("[{0}]", strData);
  1846. return strData;
  1847. }
  1848. catch (Exception ex)
  1849. {
  1850. return ex.Message;
  1851. }
  1852. }
  1853. [WebMethod(EnableSession = true)]
  1854. public string FormBinSer(string BinCode, string WorkPoint)
  1855. {
  1856. string strData = "{}";
  1857. try
  1858. {
  1859. DataTable dt = ICSWareHouseLotInfoBLL.FormBinSer(BinCode, WorkPoint, sysConnectString);
  1860. if (dt != null && dt.Rows.Count > 0)
  1861. {
  1862. StringBuilder sbDetail = new StringBuilder();
  1863. foreach (DataRow dr in dt.Rows)
  1864. {
  1865. sbDetail.Append("{");
  1866. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1867. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1868. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  1869. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1870. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1871. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1872. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\",", dr["VenderLotNO"]);
  1873. sbDetail.AppendFormat("\"INVUOM\":\"{0}\"", dr["INVUOM"]);
  1874. sbDetail.Append("},");
  1875. }
  1876. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1877. }
  1878. strData = string.Format("[{0}]", strData);
  1879. return strData;
  1880. }
  1881. catch (Exception ex)
  1882. {
  1883. return ex.Message;
  1884. }
  1885. }
  1886. [WebMethod(EnableSession = true)]
  1887. public string FormLotSer(string LotNO, string WorkPoint)
  1888. {
  1889. string strData = "{}";
  1890. try
  1891. {
  1892. DataTable dt = ICSWareHouseLotInfoBLL.FormLotSer(LotNO, WorkPoint, sysConnectString);
  1893. if (dt != null && dt.Rows.Count > 0)
  1894. {
  1895. StringBuilder sbDetail = new StringBuilder();
  1896. foreach (DataRow dr in dt.Rows)
  1897. {
  1898. sbDetail.Append("{");
  1899. sbDetail.AppendFormat("\"WHCode\":\"{0}\",", dr["WHCode"]);
  1900. sbDetail.AppendFormat("\"BinCode\":\"{0}\",", dr["BinCode"]);
  1901. sbDetail.AppendFormat("\"INVCode\":\"{0}\",", dr["INVCode"]);
  1902. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1903. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1904. sbDetail.AppendFormat("\"LotQty\":\"{0}\",", dr["LotQty"]);
  1905. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1906. sbDetail.AppendFormat("\"QTY\":\"{0}\"", dr["QTY"]);
  1907. sbDetail.Append("},");
  1908. }
  1909. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1910. }
  1911. strData = string.Format("[{0}]", strData);
  1912. return strData;
  1913. }
  1914. catch (Exception ex)
  1915. {
  1916. return ex.Message;
  1917. }
  1918. }
  1919. #endregion
  1920. #region 2020.05.10 add by Summer
  1921. [WebMethod(EnableSession = true)]
  1922. public string PoArriveCheckData(string LotNO)
  1923. {
  1924. string strData = "{}";
  1925. try
  1926. {
  1927. DataTable dt = CheckBLL.PoArriveCheckData(LotNO, sysConnectString);
  1928. if (dt != null && dt.Rows.Count > 0)
  1929. {
  1930. StringBuilder sbDetail = new StringBuilder();
  1931. foreach (DataRow dr in dt.Rows)
  1932. {
  1933. sbDetail.Append("{");
  1934. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  1935. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["INVCODE"]);
  1936. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  1937. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  1938. sbDetail.AppendFormat("\"LOTQTY\":\"{0}\",", dr["LOTQTY"]);
  1939. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\",", dr["VenderLotNO"]);
  1940. sbDetail.AppendFormat("\"iNum\":\"{0}\",", dr["iNum"]);
  1941. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  1942. sbDetail.AppendFormat("\"EATTRIBUTE2\":\"{0}\",", dr["EATTRIBUTE2"]);
  1943. sbDetail.AppendFormat("\"EATTRIBUTE5\":\"{0}\"", dr["EATTRIBUTE5"]);
  1944. sbDetail.Append("},");
  1945. }
  1946. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  1947. }
  1948. strData = string.Format("[{0}]", strData);
  1949. return strData;
  1950. }
  1951. catch (Exception ex)
  1952. {
  1953. return ex.Message;
  1954. }
  1955. }
  1956. [WebMethod(EnableSession = true)]
  1957. public string UpdateCheck(string LotNO, string iStatus, string User)
  1958. {
  1959. int strCode = 1;
  1960. string strMsg = "";
  1961. string strData = "{}";
  1962. using (SqlConnection conn = new SqlConnection(sysConnectString))
  1963. {
  1964. conn.Open();
  1965. using (SqlTransaction trans = conn.BeginTransaction())
  1966. {
  1967. try
  1968. {
  1969. if (CheckBLL.UpdateCheck(conn, trans, LotNO, iStatus, User, sysConnectString))
  1970. {
  1971. strCode = 0;
  1972. strMsg = "检验成功";
  1973. }
  1974. trans.Commit();
  1975. }
  1976. catch (Exception ex)
  1977. {
  1978. trans.Rollback();
  1979. strCode = 1;
  1980. strMsg = "检验异常:" + ex.Message;
  1981. }
  1982. }
  1983. conn.Close();
  1984. }
  1985. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  1986. return result;
  1987. }
  1988. [WebMethod(EnableSession = true)]
  1989. public string IQCCheckData(string LotNO)
  1990. {
  1991. string strData = "{}";
  1992. try
  1993. {
  1994. DataTable dt = CheckBLL.IQCCheckData(LotNO, sysConnectString);
  1995. if (dt != null && dt.Rows.Count > 0)
  1996. {
  1997. StringBuilder sbDetail = new StringBuilder();
  1998. foreach (DataRow dr in dt.Rows)
  1999. {
  2000. sbDetail.Append("{");
  2001. sbDetail.AppendFormat("\"LotNO\":\"{0}\",", dr["LotNO"]);
  2002. sbDetail.AppendFormat("\"INVCODE\":\"{0}\",", dr["INVCODE"]);
  2003. sbDetail.AppendFormat("\"INVNAME\":\"{0}\",", dr["INVNAME"]);
  2004. sbDetail.AppendFormat("\"INVSTD\":\"{0}\",", dr["INVSTD"]);
  2005. sbDetail.AppendFormat("\"OPCODE\":\"{0}\",", dr["OPCODE"]);
  2006. sbDetail.AppendFormat("\"VenderLotNO\":\"{0}\",", dr["VenderLotNO"]);
  2007. sbDetail.AppendFormat("\"INVUOM\":\"{0}\",", dr["INVUOM"]);
  2008. sbDetail.AppendFormat("\"LOTQTY\":\"{0}\",", dr["LOTQTY"]);
  2009. sbDetail.AppendFormat("\"UserCodeBegin\":\"{0}\",", dr["UserCodeBegin"]);
  2010. sbDetail.AppendFormat("\"EQPCODE\":\"{0}\",", dr["EQPCODE"]);
  2011. sbDetail.AppendFormat("\"Result\":\"{0}\",", dr["Result"]);
  2012. sbDetail.AppendFormat("\"EATTRIBUTE1\":\"{0}\"", dr["EATTRIBUTE1"]);
  2013. sbDetail.Append("},");
  2014. }
  2015. strData = string.Format("{0}", sbDetail.ToString().Trim(','));
  2016. }
  2017. strData = string.Format("[{0}]", strData);
  2018. return strData;
  2019. }
  2020. catch (Exception ex)
  2021. {
  2022. return ex.Message;
  2023. }
  2024. }
  2025. [WebMethod(EnableSession = true)]
  2026. public string UpdateIQCCheck(string LotNO, string iStatus, string User, string UserName, string WorkPoint)
  2027. {
  2028. int strCode = 1;
  2029. string strMsg = "";
  2030. string strData = "{}";
  2031. using (SqlConnection conn = new SqlConnection(sysConnectString))
  2032. {
  2033. conn.Open();
  2034. using (SqlTransaction trans = conn.BeginTransaction())
  2035. {
  2036. try
  2037. {
  2038. if (CheckBLL.UpdateIQCCheck(conn, trans, LotNO, iStatus, User, UserName, WorkPoint, sysConnectString))
  2039. {
  2040. strCode = 0;
  2041. strMsg = "检验成功";
  2042. }
  2043. trans.Commit();
  2044. }
  2045. catch (Exception ex)
  2046. {
  2047. trans.Rollback();
  2048. strCode = 1;
  2049. strMsg = "检验异常:" + ex.Message;
  2050. }
  2051. }
  2052. conn.Close();
  2053. }
  2054. string result = string.Format("{{\"code\":\"{0}\",\"msg\":\"{1}\",\"data\":\"{2}\"}}", strCode, strMsg, strData);
  2055. return result;
  2056. }
  2057. [WebMethod(EnableSession = true)]
  2058. public bool isFinished(string LotNO)
  2059. {
  2060. DataTable dt = CheckBLL.isFinished(LotNO, sysConnectString);
  2061. if (dt != null && dt.Rows.Count > 0)
  2062. {
  2063. if (dt.Rows[0]["CollectStatus"].ToString().ToUpper() == "COLLECT_END")
  2064. {
  2065. return true;
  2066. }
  2067. else
  2068. {
  2069. return false;
  2070. }
  2071. }
  2072. else
  2073. {
  2074. return false;
  2075. }
  2076. }
  2077. #endregion
  2078. public string String2Json(String s)
  2079. {
  2080. StringBuilder sb = new StringBuilder();
  2081. for (int i = 0; i < s.Length; i++)
  2082. {
  2083. char c = s.ToCharArray()[i];
  2084. switch (c)
  2085. {
  2086. case '\"':
  2087. sb.Append("\\\""); break;
  2088. case '\\':
  2089. sb.Append("\\\\"); break;
  2090. case '/':
  2091. sb.Append("\\/"); break;
  2092. case '\b':
  2093. sb.Append("\\b"); break;
  2094. case '\f':
  2095. sb.Append("\\f"); break;
  2096. case '\n':
  2097. sb.Append("\\n"); break;
  2098. case '\r':
  2099. sb.Append("\\r"); break;
  2100. case '\t':
  2101. sb.Append("\\t"); break;
  2102. default:
  2103. sb.Append(c); break;
  2104. }
  2105. }
  2106. return sb.ToString();
  2107. }
  2108. }
  2109. }