锐腾搅拌上料功能
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.

652 lines
27 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using ICSSoft.Frame.Data.Entity;
  6. using System.Data;
  7. using ICSSoft.Base.Config.DBHelper;
  8. using ICSSoft.Base.Config.AppConfig;
  9. namespace ICSSoft.Frame.Data.DAL
  10. {
  11. public class ICSITEM2ROUTEDAL
  12. {
  13. #region 新增和修改List
  14. public static string AddList(List<FormICSITEM2ROUTEUIModel> ITEM2ROUTEInfoList, string dsconn)
  15. {
  16. string str = "";
  17. FramDataContext db = new FramDataContext(dsconn);
  18. db.Connection.Open();
  19. db.Transaction = db.Connection.BeginTransaction();
  20. try
  21. {
  22. foreach (FormICSITEM2ROUTEUIModel info in ITEM2ROUTEInfoList)
  23. {
  24. //校验产品是否存在
  25. var item = db.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == info.ITEMCODE && a.WorkPoint == AppConfig.WorkPointCode);
  26. if (item == null)
  27. {
  28. str += "存货编码:" + info.ITEMCODE + " 不存在!\n";
  29. continue;
  30. }
  31. else
  32. {
  33. info.item = new FormICSINVENTORYUIModel();
  34. //info.item = new FormICSInventoryUIModelNew();
  35. info.item.ID = item.ID;
  36. info.item.INVCODE = item.INVCODE;
  37. }
  38. //产品是否是默认途程
  39. var ITEMISREF = db.ICSITEM2ROUTE.Where(a => a.ITEMCODE == info.ITEMCODE && a.ISREF == "是" && a.WorkPoint == AppConfig.WorkPointCode);
  40. if (ITEMISREF != null && ITEMISREF.Count() > 0 && info.ISREF == "是")
  41. {
  42. //str += "存货编码:" + info.ITEMCODE + " 已存在默认途程!\n";
  43. //continue;
  44. foreach (var d in ITEMISREF)
  45. {
  46. d.ISREF = "否";
  47. d.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  48. }
  49. db.SubmitChanges();
  50. }
  51. var user = db.Sys_User.Where(a => a.UserCode == info.EATTRIBUTE1 && a.WorkPointCode == AppConfig.WorkPointCode);
  52. if (user == null)
  53. {
  54. str += "负责人:" + info.EATTRIBUTE1 + " 不存在!\n";
  55. continue;
  56. }
  57. //校验途程是否存在
  58. var route = db.ICSROUTE.SingleOrDefault(a => a.ROUTECODE == info.ROUTECODE && a.WorkPoint == AppConfig.WorkPointCode);
  59. if (route == null)
  60. {
  61. str += "途程代码:" + info.ROUTECODE + " 不存在!\n";
  62. continue;
  63. }
  64. else
  65. {
  66. info.route = new FormICSROUTEUIModel();
  67. info.route.ID = route.ID;
  68. info.route.ROUTECODE = route.ROUTECODE;
  69. }
  70. bool isNew = false;
  71. var line = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == info.item.INVCODE && a.ROUTECODE == info.route.ROUTECODE && a.WorkPoint == AppConfig.WorkPointCode);
  72. if (line == null)
  73. {
  74. isNew = true;
  75. line = new ICSITEM2ROUTE();
  76. line.ITEMID = info.item.ID;
  77. line.ITEMCODE = info.item.INVCODE;
  78. line.ROUTEID = info.route.ID;
  79. line.ROUTECODE = info.route.ROUTECODE;
  80. line.Status = "新增";
  81. }
  82. line.ISREF = info.ISREF;
  83. line.MUSER = AppConfig.UserId;
  84. line.MUSERName = AppConfig.UserName;
  85. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  86. line.WorkPoint = AppConfig.WorkPointCode;
  87. if (isNew)
  88. {
  89. db.ICSITEM2ROUTE.InsertOnSubmit(line);
  90. //Addop(ITEM2ROUTEInfoList, dsconn);
  91. #region 产品途程工序
  92. List<ICSITEMROUTE2OP> listmodel = new List<ICSITEMROUTE2OP>();
  93. // string sql = @"select [OPID],[OPCODE],[OPSEQ],[OPCONTROL],[EATTRIBUTE1],[OPLock],ETime,Memo1 ,Memo2
  94. // from [ICSROUTE2OP]
  95. // where ROUTECODE='{0}'";
  96. string sql = @"select [OPID],[OPCODE],[OPSEQ],[OPCONTROL],[OPAttr],[CtrlType],[EATTRIBUTE1] as ItemRouteMGR
  97. from [ICSROUTE2OP]
  98. where ROUTECODE='{0}'";
  99. sql = string.Format(sql, info.route.ROUTECODE);
  100. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  101. foreach (DataRow dr in dt.Rows)
  102. {
  103. ICSITEMROUTE2OP model = new ICSITEMROUTE2OP();
  104. model.ITEMID = info.item.ID;
  105. model.ITEMCODE = info.item.INVCODE;
  106. model.ROUTEID = info.route.ID;
  107. model.ROUTECODE = info.route.ROUTECODE;
  108. model.OPID = dr["OPID"].ToString();
  109. model.OPCODE = dr["OPCODE"].ToString();
  110. model.OPSEQ = Convert.ToInt32(dr["OPSEQ"].ToString());
  111. model.OPCONTROL = dr["OPCONTROL"].ToString();
  112. model.OPTIONALOP = "";
  113. model.IDMERGETYPE = "";
  114. model.IDMERGERULE = 0;
  115. model.RouteMGR = dr["ItemRouteMGR"].ToString();
  116. model.CtrlType = dr["CtrlType"].ToString();
  117. model.OPAttr = dr["OPAttr"].ToString();
  118. model.MUSER = AppConfig.UserId;
  119. model.MUSERName = AppConfig.UserName;
  120. model.MTIME = DateTime.Now;
  121. model.WorkPoint = AppConfig.WorkPointCode;
  122. listmodel.Add(model);
  123. }
  124. foreach (ICSITEMROUTE2OP test in listmodel)
  125. {
  126. db.ICSITEMROUTE2OP.InsertOnSubmit(test);
  127. }
  128. #endregion
  129. }
  130. db.SubmitChanges();
  131. }
  132. db.Transaction.Commit();
  133. if (string.IsNullOrEmpty(str))
  134. str = "数据导入成功!";
  135. return str;
  136. }
  137. catch (Exception ex)
  138. {
  139. db.Transaction.Rollback();
  140. throw ex;
  141. }
  142. }
  143. #endregion
  144. public static List<FormICSINVENTORYUIModel> SearchItemInfoList(string dsconn, string invcode)
  145. {
  146. try
  147. {
  148. List<FormICSINVENTORYUIModel> returntype = new List<FormICSINVENTORYUIModel>();
  149. string sql = @"select [ID],[INVCODE],[INVNAME],[INVDESC]
  150. from [ICSINVENTORY] WHERE WorkPoint='" + AppConfig.WorkPointCode + "' ";
  151. sql = string.Format(sql, invcode);
  152. if (!string.IsNullOrWhiteSpace(invcode))
  153. {
  154. sql += " AND INVCODE LIKE '%" + invcode + "%' ";
  155. }
  156. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  157. foreach (DataRow dr in dt.Rows)
  158. {
  159. FormICSINVENTORYUIModel itemmodel = new FormICSINVENTORYUIModel();
  160. itemmodel.ID = dr["ID"].ToString();
  161. itemmodel.INVCODE = dr["INVCODE"].ToString();
  162. itemmodel.INVNAME = dr["INVNAME"].ToString();
  163. itemmodel.INVDESC = dr["INVDESC"].ToString();
  164. if (!returntype.Contains(itemmodel))
  165. returntype.Add(itemmodel);
  166. }
  167. return returntype;
  168. }
  169. catch (Exception ex)
  170. {
  171. throw ex;
  172. }
  173. }
  174. public static List<FormICSROUTEUIModel> SearchRouteInfoList(string dsconn)
  175. {
  176. try
  177. {
  178. List<FormICSROUTEUIModel> returntype = new List<FormICSROUTEUIModel>();
  179. string sql = @"select [ID],[ROUTECODE],[ROUTEDESC]
  180. from [ICSROUTE] WHERE WorkPoint='" + AppConfig.WorkPointCode + "' ";
  181. sql = string.Format(sql);
  182. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  183. foreach (DataRow dr in dt.Rows)
  184. {
  185. FormICSROUTEUIModel routemodel = new FormICSROUTEUIModel();
  186. routemodel.ID = dr["ID"].ToString();
  187. routemodel.ROUTECODE = dr["ROUTECODE"].ToString();
  188. routemodel.ROUTEDESC = dr["ROUTEDESC"].ToString();
  189. if (!returntype.Contains(routemodel))
  190. returntype.Add(routemodel);
  191. }
  192. return returntype;
  193. }
  194. catch (Exception ex)
  195. {
  196. throw ex;
  197. }
  198. }
  199. #region 新增和修改
  200. public static void Add(List<FormICSITEM2ROUTEUIModel> ITEM2ROUTEInfoList,bool add, string dsconn)
  201. {
  202. FramDataContext db = new FramDataContext(dsconn);
  203. db.Connection.Open();
  204. db.Transaction = db.Connection.BeginTransaction();
  205. try
  206. {
  207. foreach (FormICSITEM2ROUTEUIModel info in ITEM2ROUTEInfoList)
  208. {
  209. bool isNew = false;
  210. string[] rv = info.route.ROUTECODE.Split('_');
  211. string r = rv[0];
  212. string v = "";
  213. if (rv.Length == 2)
  214. {
  215. v = rv[1];
  216. }
  217. if (info.ISREF == "1")
  218. {
  219. var lineISREF = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == info.item.INVCODE && a.ROUTECODE != info.route.ROUTECODE && a.ISREF == "1" && a.WorkPoint == AppConfig.WorkPointCode);
  220. if (lineISREF != null)
  221. {
  222. //throw new Exception("此产品" + info.item.INVCODE + "已有默认的工艺路线" + lineISREF.ROUTECODE);
  223. string[] orv = lineISREF.ROUTECODE.Split('_');
  224. string or = orv[0];
  225. string ov = "";
  226. if (orv.Length == 2)
  227. {
  228. ov = orv[1];
  229. }
  230. if (r == or && add)
  231. {
  232. //如果维护了标准工时,则把相同的工序对应的标准工时也copy
  233. string sql = @"
  234. INSERT INTO [dbo].[ICSEQPSTP]
  235. ([ID]
  236. ,[ITEMCODE]
  237. ,[OPCODE]
  238. ,[EQPCODE]
  239. ,[ETTRCODE]
  240. ,[STIME]
  241. ,[RTIME]
  242. ,[JiaGongTime]
  243. ,[JianYanTime]
  244. ,[TiaoJiTime]
  245. ,[JiaZhuangTime]
  246. ,[WorkPoint]
  247. ,[MUSER]
  248. ,[MUSERName]
  249. ,[MTIME]
  250. ,[EATTRIBUTE1]
  251. ,[EQPTypeCode]
  252. ,[ISREF]
  253. ,[Status]
  254. ,[OutsourcingProperties]
  255. ,[BladeModelAndBrand]
  256. ,[ToolingNo]
  257. ,[cClass]
  258. ,[cHandles]
  259. ,[cAxis]
  260. ,[cToolMagazine]
  261. ,[cMachinableProfiles]
  262. ,[cAccuracy]
  263. ,[OPLVL]
  264. ,[WTIME])
  265. SELECT
  266. NEWID()
  267. ,A.[ITEMCODE]
  268. ,A.[OPCODE]
  269. ,A.[EQPCODE]
  270. ,A.[ETTRCODE]
  271. ,A.[STIME]
  272. ,A.[RTIME]
  273. ,A.[JiaGongTime]
  274. ,A.[JianYanTime]
  275. ,A.[TiaoJiTime]
  276. ,A.[JiaZhuangTime]
  277. ,A.[WorkPoint]
  278. ,A.[MUSER]
  279. ,A.[MUSERName]
  280. ,A.[MTIME]
  281. ,'{2}'
  282. ,A.[EQPTypeCode]
  283. ,'是' AS [ISREF]
  284. ,A.[Status]
  285. ,A.[OutsourcingProperties]
  286. ,A.[BladeModelAndBrand]
  287. ,A.[ToolingNo]
  288. ,A.[cClass]
  289. ,A.[cHandles]
  290. ,A.[cAxis]
  291. ,A.[cToolMagazine]
  292. ,A.[cMachinableProfiles]
  293. ,A.[cAccuracy]
  294. ,A.[OPLVL]
  295. ,A.[WTIME]
  296. FROM [dbo].[ICSEQPSTP] A
  297. INNER JOIN dbo.ICSROUTE2OP Old ON Old.ROUTECODE=A.EATTRIBUTE1 AND Old.OPCODE=A.OPCODE
  298. INNER JOIN dbo.ICSROUTE2OP New ON Old.OPCODE=New.OPCODE AND Old.WORKPOINT=New.WORKPOINT AND NEW.ROUTECODE='{2}'
  299. WHERE
  300. A.ITEMCODE='{0}' AND A.EATTRIBUTE1='{1}'
  301. ";
  302. sql = string.Format(sql, lineISREF.ITEMCODE, lineISREF.ROUTECODE, info.route.ROUTECODE);
  303. int res_i = db.ExecuteCommand(sql);
  304. db.SubmitChanges();
  305. }
  306. lineISREF.ISREF = "0";
  307. db.SubmitChanges();
  308. }
  309. }
  310. var line = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == info.item.INVCODE && a.ROUTECODE == info.route.ROUTECODE && a.WorkPoint == AppConfig.WorkPointCode);
  311. if (line == null)
  312. {
  313. isNew = true;
  314. line = new ICSITEM2ROUTE();
  315. line.ITEMID = info.item.ID;
  316. line.ITEMCODE = info.item.INVCODE;
  317. line.ROUTEID = info.route.ID;
  318. line.ROUTECODE = info.route.ROUTECODE;
  319. }
  320. line.ISREF = info.ISREF;
  321. line.EATTRIBUTE1 = info.EATTRIBUTE1;
  322. line.MUSER = AppConfig.UserId;
  323. line.MUSERName = AppConfig.UserName;
  324. line.MTIME = DateTime.Now;
  325. line.WorkPoint = AppConfig.WorkPointCode;
  326. if (isNew)
  327. {
  328. db.ICSITEM2ROUTE.InsertOnSubmit(line);
  329. db.SubmitChanges();
  330. //复写至表ICSITEMROUTE2OP
  331. //Addop(ITEM2ROUTEInfoList, db);
  332. Addop(ITEM2ROUTEInfoList, info.EATTRIBUTE1, dsconn);
  333. }
  334. db.SubmitChanges();
  335. }
  336. db.Transaction.Commit();
  337. }
  338. catch (Exception ex)
  339. {
  340. db.Transaction.Rollback();
  341. throw ex;
  342. }
  343. }
  344. #endregion
  345. public static void Addop(List<FormICSITEM2ROUTEUIModel> ITEM2ROUTEInfoList, FramDataContext db)
  346. {
  347. try
  348. {
  349. string routecode;
  350. foreach (FormICSITEM2ROUTEUIModel info in ITEM2ROUTEInfoList)
  351. {
  352. List<ICSITEMROUTE2OP> listmodel = new List<ICSITEMROUTE2OP>();
  353. routecode = info.route.ROUTECODE;
  354. string sql = @"select [OPID],[OPCODE],[OPSEQ],[OPCONTROL],[OPAttr],[CtrlType],[EATTRIBUTE1]
  355. from [ICSROUTE2OP]
  356. where ROUTECODE='{0}' AND WorkPoint='" + AppConfig.WorkPointCode + "' ";
  357. sql = string.Format(sql, routecode);
  358. var list = db.ICSROUTE2OP.Context.ExecuteQuery<ICSROUTE2OP>(sql);
  359. foreach (ICSROUTE2OP item in list)
  360. {
  361. ICSITEMROUTE2OP model = new ICSITEMROUTE2OP();
  362. model.ITEMID = info.item.ID;
  363. model.ITEMCODE = info.item.INVCODE;
  364. model.ROUTEID = info.route.ID;
  365. model.ROUTECODE = info.route.ROUTECODE;
  366. model.OPID = item.OPID;
  367. model.OPCODE = item.OPCODE;
  368. model.OPSEQ = item.OPSEQ;
  369. model.OPCONTROL = item.OPCONTROL;
  370. model.OPTIONALOP = "";
  371. model.IDMERGETYPE = "";
  372. model.IDMERGERULE = 0;
  373. model.RouteMGR = item.EATTRIBUTE1;//负责人
  374. model.CtrlType = item.CtrlType;
  375. model.OPAttr = item.OPAttr;
  376. model.MUSER = AppConfig.UserId;
  377. model.MUSERName = AppConfig.UserName;
  378. model.MTIME = DateTime.Now;
  379. model.WorkPoint = AppConfig.WorkPointCode;
  380. listmodel.Add(model);
  381. }
  382. foreach (ICSITEMROUTE2OP test in listmodel)
  383. {
  384. db.ICSITEMROUTE2OP.InsertOnSubmit(test);
  385. }
  386. db.SubmitChanges();
  387. }
  388. }
  389. catch (Exception ex)
  390. {
  391. throw new Exception("复写至ItemRoute2OP出错:" + ex.Message);
  392. }
  393. }
  394. public static void Addop(List<FormICSITEM2ROUTEUIModel> ITEM2ROUTEInfoList, string ItemRouteMGR, string dsconn)
  395. {
  396. FramDataContext db = new FramDataContext(dsconn);
  397. db.Connection.Open();
  398. db.Transaction = db.Connection.BeginTransaction();
  399. try
  400. {
  401. string routecode;
  402. foreach (FormICSITEM2ROUTEUIModel info in ITEM2ROUTEInfoList)
  403. {
  404. List<ICSITEMROUTE2OP> listmodel = new List<ICSITEMROUTE2OP>();
  405. routecode = info.route.ROUTECODE;
  406. string sql = @"select [OPID],[OPCODE],[OPSEQ],[OPCONTROL],[OPAttr],[CtrlType]
  407. from [ICSROUTE2OP]
  408. where ROUTECODE='{0}' AND WorkPoint='" + AppConfig.WorkPointCode + "' ";
  409. sql = string.Format(sql, routecode);
  410. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  411. foreach (DataRow dr in dt.Rows)
  412. {
  413. ICSITEMROUTE2OP model = new ICSITEMROUTE2OP();
  414. model.ITEMID = info.item.ID;
  415. model.ITEMCODE = info.item.INVCODE;
  416. model.ROUTEID = info.route.ID;
  417. model.ROUTECODE = info.route.ROUTECODE;
  418. model.OPID = dr["OPID"].ToString();
  419. model.OPCODE = dr["OPCODE"].ToString();
  420. model.OPSEQ = Convert.ToInt32(dr["OPSEQ"].ToString());
  421. model.OPCONTROL = dr["OPCONTROL"].ToString();
  422. model.OPTIONALOP = "";
  423. model.IDMERGETYPE = "";
  424. model.IDMERGERULE = 0;
  425. model.RouteMGR = ItemRouteMGR;
  426. model.CtrlType = dr["CtrlType"].ToString();
  427. model.OPAttr = dr["OPAttr"].ToString();
  428. model.MUSER = AppConfig.UserId;
  429. model.MUSERName = AppConfig.UserName;
  430. model.MTIME = DateTime.Now;
  431. model.WorkPoint = AppConfig.WorkPointCode;
  432. listmodel.Add(model);
  433. }
  434. foreach (ICSITEMROUTE2OP test in listmodel)
  435. {
  436. db.ICSITEMROUTE2OP.InsertOnSubmit(test);
  437. }
  438. db.SubmitChanges();
  439. db.Transaction.Commit();
  440. }
  441. }
  442. catch (Exception ex)
  443. {
  444. db.Transaction.Rollback();
  445. throw ex;
  446. }
  447. }
  448. #region 代码是否存在
  449. public static bool IsIncluding(string itemCODE, string routeCODE, string dsconn)
  450. {
  451. FramDataContext db = new FramDataContext(dsconn);
  452. db.Connection.Open();
  453. db.Transaction = db.Connection.BeginTransaction();
  454. try
  455. {
  456. var line = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == itemCODE && a.ROUTECODE == routeCODE && a.WorkPoint == AppConfig.WorkPointCode);
  457. if (line == null)
  458. return true;
  459. else
  460. return false;
  461. }
  462. catch (Exception ex)
  463. {
  464. db.Transaction.Rollback();
  465. throw ex;
  466. }
  467. }
  468. #endregion
  469. #region 产品是否已有使用/默认的途程
  470. public static bool IsIncludingISREF(string itemCODE, string routeCODE, string dsconn, out string defaultRouteCODE)
  471. {
  472. defaultRouteCODE = routeCODE;
  473. FramDataContext db = new FramDataContext(dsconn);
  474. db.Connection.Open();
  475. db.Transaction = db.Connection.BeginTransaction();
  476. try
  477. {
  478. var line = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == itemCODE && a.ROUTECODE != routeCODE && a.ISREF.Equals("1") && a.WorkPoint == AppConfig.WorkPointCode);
  479. if (line == null)
  480. {
  481. defaultRouteCODE = routeCODE;
  482. return false;
  483. }
  484. else
  485. {
  486. defaultRouteCODE = line.ROUTECODE;
  487. return true;
  488. }
  489. }
  490. catch (Exception ex)
  491. {
  492. db.Transaction.Rollback();
  493. throw ex;
  494. }
  495. }
  496. #endregion
  497. #region 通过存货编码和途程代码查询
  498. public static List<FormICSITEM2ROUTEUIModel> SearchInfoByCode(string itemCode, string routeCode, string dsconn)
  499. {
  500. List<FormICSITEM2ROUTEUIModel> returnir = new List<FormICSITEM2ROUTEUIModel>();
  501. string sql = @"select a.[ISREF],b.[ID] as bID,b.[INVCODE],b.[INVNAME],b.[INVDESC],c.[ID] as cID,c.[ROUTECODE],c.[ROUTEDESC],a.EATTRIBUTE1
  502. from ICSITEM2ROUTE as a
  503. left join ICSINVENTORY as b on (a.ITEMID=b.ID) AND b.WorkPoint='{2}'
  504. left join ICSROUTE as c on (a.ROUTEID=c.ID) AND c.WorkPoint='{2}'
  505. where a.ITEMCODE='{0}' and a.ROUTECODE='{1}' AND a.WorkPoint='{2}' ";
  506. sql = string.Format(sql, itemCode, routeCode, AppConfig.WorkPointCode);
  507. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  508. foreach (DataRow dr in dt.Rows)
  509. {
  510. FormICSITEM2ROUTEUIModel returnInfo = new FormICSITEM2ROUTEUIModel();
  511. returnInfo.EATTRIBUTE1 = dr["EATTRIBUTE1"].ToString();
  512. returnInfo.ISREF = dr["ISREF"].ToString();
  513. returnInfo.item = new FormICSINVENTORYUIModel();
  514. returnInfo.item.ID = dr["bID"].ToString();
  515. returnInfo.item.INVCODE = dr["INVCODE"].ToString();
  516. returnInfo.item.INVNAME = dr["INVNAME"].ToString();
  517. returnInfo.item.INVDESC = dr["INVDESC"].ToString();
  518. returnInfo.route = new FormICSROUTEUIModel();
  519. returnInfo.route.ID = dr["cID"].ToString();
  520. returnInfo.route.ROUTECODE = dr["ROUTECODE"].ToString();
  521. returnInfo.route.ROUTEDESC = dr["ROUTEDESC"].ToString();
  522. if (!returnir.Contains(returnInfo))
  523. {
  524. returnir.Add(returnInfo);
  525. }
  526. }
  527. return returnir;
  528. }
  529. #endregion
  530. public static DataTable GetDetail(String itemcode, String routecode, String Appconstr)
  531. {
  532. try
  533. {
  534. string sql = @"SELECT
  535. a.ID,
  536. a.RouteCode,
  537. b.ITEMCODE
  538. FROM
  539. ICSMO2User a
  540. LEFT JOIN ICSMO b ON a.MOCODE=b.MOCODE AND a.MOSEQ=b.MOSEQ AND a.WorkPoint=b.WorkPoint
  541. where a.RouteCode='{0}' AND b.ITEMCODE='{1}' AND a.WorkPoint='" + AppConfig.WorkPointCode + "' order by a.RouteCode";
  542. sql = string.Format(sql, routecode, itemcode);
  543. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  544. return dt;
  545. }
  546. catch (Exception ex)
  547. {
  548. throw ex;
  549. }
  550. }
  551. #region 删除
  552. public static void deleteInfo(string itemcode, string routecode, string dsconn)
  553. {
  554. FramDataContext db = new FramDataContext(dsconn);
  555. db.Connection.Open();
  556. db.Transaction = db.Connection.BeginTransaction();
  557. try
  558. {
  559. var lines = db.ICSITEM2ROUTE.Where(a => a.ITEMCODE == itemcode && a.ROUTECODE == routecode);
  560. db.ICSITEM2ROUTE.DeleteAllOnSubmit(lines);
  561. var lineone = db.ICSITEMROUTE2OP.Where(a => a.ITEMCODE == itemcode && a.ROUTECODE == routecode);
  562. db.ICSITEMROUTE2OP.DeleteAllOnSubmit(lineone);
  563. db.SubmitChanges();
  564. db.Transaction.Commit();
  565. }
  566. catch (Exception ex)
  567. {
  568. db.Transaction.Rollback();
  569. throw ex;
  570. }
  571. }
  572. #endregion
  573. public static DataTable CheckOP(String ROUTECODE, String Appconstr)
  574. {
  575. try
  576. {
  577. string sql = @"SELECT * FROM ICSROUTE2OP WHERE 1=1 AND ROUTECODE = '{0}' AND WorkPoint='" + AppConfig.WorkPointCode + "' ";
  578. sql = string.Format(sql, ROUTECODE);
  579. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  580. return dt;
  581. }
  582. catch (Exception ex)
  583. {
  584. throw ex;
  585. }
  586. }
  587. //public static bool IsIncludingISREF(string itemCODE, string routeCODE, string dsconn)
  588. //{
  589. // FramDataContext db = new FramDataContext(dsconn);
  590. // db.Connection.Open();
  591. // db.Transaction = db.Connection.BeginTransaction();
  592. // try
  593. // {
  594. // var line = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == itemCODE && a.ROUTECODE != routeCODE && a.ISREF.Equals("1") && a.WorkPoint == AppConfig.WorkPointCode);
  595. // if (line == null)
  596. // return true;
  597. // else
  598. // return false;
  599. // }
  600. // catch (Exception ex)
  601. // {
  602. // db.Transaction.Rollback();
  603. // throw ex;
  604. // }
  605. //}
  606. }
  607. }