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

1068 lines
48 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 ICSSoft.Base.Config.DBHelper;
  7. using System.Data;
  8. using System.Data.SqlClient;
  9. using ICSSoft.Base.Config.AppConfig;
  10. using ICSSoft.Frame.APP.Entity;
  11. namespace ICSSoft.Frame.Data.DAL
  12. {
  13. public class ICSEQPSTPDAL
  14. {
  15. #region 新增和修改
  16. public static void Add(List<ICSEQPSTP> InfoList, string dsconn)
  17. {
  18. FramDataContext db = new FramDataContext(dsconn);
  19. db.Connection.Open();
  20. db.Transaction = db.Connection.BeginTransaction();
  21. try
  22. {
  23. foreach (ICSEQPSTP info in InfoList)
  24. {
  25. bool isNew = false;
  26. var line = db.ICSEQPSTP.SingleOrDefault(a => a.ID == info.ID);
  27. if (line == null)
  28. {
  29. isNew = true;
  30. line = new ICSEQPSTP();
  31. }
  32. if (info.EQPTypeCode == "固定设备")
  33. {
  34. var codes = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.EATTRIBUTE1 == info.EATTRIBUTE1 && a.OPCODE == info.OPCODE && a.ID != info.ID
  35. && a.EQPCODE == info.EQPCODE);
  36. if (codes.ToList().Count > 0)
  37. {
  38. throw new Exception("已存在相同'产品-工艺-工序-固定设备'的标准工时");
  39. }
  40. }
  41. else if (info.EQPTypeCode == "加工中心" || info.EQPTypeCode == "设备类型")
  42. {
  43. var codes = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.EATTRIBUTE1 == info.EATTRIBUTE1 && a.OPCODE == info.OPCODE && a.ID != info.ID
  44. && a.cClass == info.cClass && a.cAxis == info.cAxis && a.cHandles == info.cHandles && a.cAccuracy == info.cAccuracy && a.cMachinableProfiles == info.cMachinableProfiles && a.cToolMagazine == info.cToolMagazine);
  45. if (codes.ToList().Count > 0)
  46. {
  47. throw new Exception("已存在相同'产品-工序-6大维度'的标准工时");
  48. }
  49. }
  50. else if (info.EQPTypeCode == "车削中心") {
  51. var codes = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.EATTRIBUTE1 == info.EATTRIBUTE1 && a.OPCODE == info.OPCODE && a.ID != info.ID && a.CXJD == info.CXJD && a.CXType == info.CXType && a.CXBrand1 == info.CXBrand1 && a.CXBrand2 == a.CXBrand2 && a.CXBrand3 == a.CXBrand3);
  52. if (codes.ToList().Count > 0)
  53. {
  54. throw new Exception("已存在相同'产品-工序-车削中心'的标准工时");
  55. }
  56. }
  57. line.ID = info.ID;
  58. line.ITEMCODE = info.ITEMCODE;
  59. line.OPCODE = info.OPCODE;
  60. line.EQPCODE = info.EQPCODE;
  61. line.ETTRCODE = info.ETTRCODE;
  62. line.ISREF = info.ISREF;
  63. line.Status = "New";
  64. var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.EATTRIBUTE1 == info.EATTRIBUTE1 && a.OPCODE == info.OPCODE && a.ISREF == "是" && a.ID != info.ID);
  65. if (line1.ToList().Count > 0 && info.ISREF == "是")
  66. {
  67. //已经存在则改为否
  68. foreach (var stp in line1.ToList())
  69. {
  70. var lineOther = db.ICSEQPSTP.SingleOrDefault(a => a.ID == stp.ID);
  71. lineOther.ISREF = "否";
  72. db.SubmitChanges();
  73. }
  74. }
  75. line.STIME = Convert.ToDecimal(info.STIME);
  76. line.RTIME = Convert.ToDecimal(info.RTIME);
  77. line.JiaGongTime = info.JiaGongTime;
  78. line.JiaZhuangTime = info.JiaZhuangTime;
  79. line.JianYanTime = info.JianYanTime;
  80. line.TiaoJiTime = info.TiaoJiTime;
  81. line.MUSER = AppConfig.UserCode;
  82. line.MUSERName = AppConfig.UserName;
  83. line.MTIME = DateTime.Now;
  84. line.WorkPoint = AppConfig.WorkPointCode;
  85. line.EQPTypeCode = info.EQPTypeCode;
  86. line.cClass = info.cClass;
  87. line.cHandles = info.cHandles;
  88. line.cAxis = info.cAxis;
  89. line.cToolMagazine = info.cToolMagazine;
  90. line.cMachinableProfiles = info.cMachinableProfiles;
  91. line.cAccuracy = info.cAccuracy;
  92. line.OPLVL = info.OPLVL;
  93. line.ToolingNo = info.ToolingNo;
  94. line.EATTRIBUTE1 = info.EATTRIBUTE1;
  95. line.WTIME = info.WTIME;
  96. line.CXBrand1 = info.CXBrand1;
  97. line.CXBrand2 = info.CXBrand2;
  98. line.CXBrand3 = info.CXBrand3;
  99. line.CXJD = info.CXJD;
  100. line.CXType = info.CXType;
  101. ////20180626新增
  102. //line.BladeModelAndBrand = info.BladeModelAndBrand;
  103. //line.OutsourcingProperties = info.OutsourcingProperties;
  104. //line.ToolingNo = info.ToolingNo;
  105. if (isNew)
  106. db.ICSEQPSTP.InsertOnSubmit(line);
  107. db.SubmitChanges();
  108. }
  109. db.Transaction.Commit();
  110. }
  111. catch (Exception ex)
  112. {
  113. db.Transaction.Rollback();
  114. throw ex;
  115. }
  116. finally
  117. {
  118. db.Connection.Close();
  119. }
  120. }
  121. #endregion
  122. #region 新增和修改List
  123. public static string AddList(List<FormICSEQPSTPUIModelNew> InfoList, string dsconn)
  124. {
  125. FramDataContext db = new FramDataContext(dsconn);
  126. db.Connection.Open();
  127. db.Transaction = db.Connection.BeginTransaction();
  128. try
  129. {
  130. string str = "";
  131. foreach (FormICSEQPSTPUIModelNew info in InfoList)
  132. {
  133. var codes = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode == info.EQPTypeCode);
  134. List<ICSEQPSTP> list = codes.ToList();
  135. if (list.Count > 0)
  136. {
  137. //已审核不做处理
  138. if (list[0].Status == "Check")
  139. {
  140. var line = list[0];
  141. line.ITEMCODE = info.ITEMCODE;
  142. line.OPCODE = info.OPCODE;
  143. line.EQPCODE = info.EQPCODE;
  144. line.EQPTypeCode = info.EQPTypeCode;
  145. line.ETTRCODE = info.ETTRCODE;
  146. line.STIME = Convert.ToDecimal(info.STIME);
  147. line.ISREF = info.ISREF;
  148. line.RTIME = info.RTIME;
  149. line.Status = info.Status;
  150. line.MUSER = AppConfig.UserId;
  151. line.MUSERName = AppConfig.UserName;
  152. line.MTIME = DateTime.Now;
  153. line.WorkPoint = AppConfig.WorkPointCode;
  154. line.EATTRIBUTE1 = info.EATTRIBUTE1;
  155. line.OutsourcingProperties = info.OutsourcingProperties;
  156. line.BladeModelAndBrand = info.BladeModelAndBrand;
  157. line.ToolingNo = info.ToolingNo;
  158. db.SubmitChanges();
  159. }
  160. else //未审核时需要更新
  161. {
  162. //str += "存货编码:" + info.ITEMCODE + "工序代码:" + info.OPCODE + "设备类型" + info.EQPTypeCode + "已维护标准工时" + "\r\n";
  163. //continue;
  164. var line = list[0];
  165. line.ITEMCODE = info.ITEMCODE;
  166. line.OPCODE = info.OPCODE;
  167. line.EQPCODE = info.EQPCODE;
  168. line.EQPTypeCode = info.EQPTypeCode;
  169. line.ETTRCODE = info.ETTRCODE;
  170. line.STIME = Convert.ToDecimal(info.STIME);
  171. line.ISREF = info.ISREF;
  172. line.RTIME = info.RTIME;
  173. line.Status = info.Status;
  174. var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.ISREF == "是" && a.EQPTypeCode != info.EQPTypeCode);
  175. if (line1.ToList().Count > 0 && info.ISREF == "是")
  176. {
  177. //str += "存货编码:" + info.ITEMCODE + "工序代码:" + info.OPCODE + "已存在默认标准工时" + "\r\n";
  178. //continue;
  179. foreach (var stp in line1.ToList())
  180. {
  181. stp.ISREF = "否";
  182. }
  183. }
  184. line.OutsourcingProperties = info.OutsourcingProperties;
  185. line.BladeModelAndBrand = info.BladeModelAndBrand;
  186. line.ToolingNo = info.ToolingNo;
  187. line.MUSER = info.MUSER;
  188. line.MUSERName = info.MUSERName;
  189. line.MTIME = (DateTime)info.MTIME;
  190. line.WorkPoint = info.WorkPoint;
  191. line.EATTRIBUTE1 = info.EATTRIBUTE1;
  192. db.SubmitChanges();
  193. }
  194. }
  195. else
  196. {
  197. bool isNew = false;
  198. var line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode == info.EQPTypeCode);
  199. if (line == null)
  200. {
  201. isNew = true;
  202. line = new ICSEQPSTP();
  203. line.ID = AppConfig.GetGuid();
  204. }
  205. //line.ID = info.ID;
  206. line.ITEMCODE = info.ITEMCODE;
  207. line.OPCODE = info.OPCODE;
  208. //line.EQPCODE = info.EQPCODE;
  209. line.EQPTypeCode = info.EQPTypeCode;
  210. line.ETTRCODE = info.ETTRCODE;
  211. line.STIME = Convert.ToDecimal(info.STIME);
  212. line.ISREF = info.ISREF;
  213. line.RTIME = info.RTIME;
  214. line.Status = info.Status;
  215. var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode != info.EQPTypeCode && a.ISREF == "是");
  216. if (line1.ToList().Count > 0 && info.ISREF == "是")
  217. {
  218. //str += "存货编码:" + info.ITEMCODE + "工序代码:" + info.OPCODE + "已存在默认标准工时" + "\r\n";
  219. foreach (var stp in line1.ToList())
  220. {
  221. stp.ISREF = "否";
  222. }
  223. //continue;
  224. }
  225. line.MUSER = AppConfig.UserId;
  226. line.MUSERName = AppConfig.UserName;
  227. line.MTIME = DateTime.Now;
  228. line.WorkPoint = AppConfig.WorkPointCode;
  229. line.EATTRIBUTE1 = info.EATTRIBUTE1;
  230. line.OutsourcingProperties = info.OutsourcingProperties;
  231. line.BladeModelAndBrand = info.BladeModelAndBrand;
  232. line.ToolingNo = info.ToolingNo;
  233. if (isNew)
  234. db.ICSEQPSTP.InsertOnSubmit(line);
  235. db.SubmitChanges();
  236. }
  237. }
  238. db.Transaction.Commit();
  239. return str;
  240. }
  241. catch (Exception ex)
  242. {
  243. db.Transaction.Rollback();
  244. throw ex;
  245. }
  246. }
  247. public static void Import(List<ICSEQPSTP> InfoList, string dsconn)
  248. {
  249. FramDataContext db = new FramDataContext(dsconn);
  250. db.Connection.Open();
  251. db.Transaction = db.Connection.BeginTransaction();
  252. try
  253. {
  254. foreach (ICSEQPSTP info in InfoList)
  255. {
  256. bool isNew = false;
  257. ICSEQPSTP line = null;
  258. if (info.EQPTypeCode == "委外")
  259. {
  260. line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.WorkPoint == AppConfig.WorkPointCode);
  261. if (line == null)
  262. {
  263. isNew = true;
  264. line = new ICSEQPSTP();
  265. line.ID = AppConfig.GetGuid();
  266. }
  267. }
  268. else if (info.EQPTypeCode == "固定设备")
  269. {
  270. line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.WorkPoint == AppConfig.WorkPointCode
  271. && a.EQPCODE == info.EQPCODE);
  272. if (line == null)
  273. {
  274. isNew = true;
  275. line = new ICSEQPSTP();
  276. line.ID = AppConfig.GetGuid();
  277. }
  278. }
  279. else
  280. {
  281. line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.WorkPoint == AppConfig.WorkPointCode
  282. && a.cClass == info.cClass && a.cAxis == info.cAxis && a.cHandles == info.cHandles && a.cAccuracy == info.cAccuracy && a.cMachinableProfiles == info.cMachinableProfiles && a.cToolMagazine == info.cToolMagazine);
  283. if (line == null)
  284. {
  285. isNew = true;
  286. line = new ICSEQPSTP();
  287. line.ID = AppConfig.GetGuid();
  288. }
  289. }
  290. line.ITEMCODE = info.ITEMCODE;
  291. line.OPCODE = info.OPCODE;
  292. line.EQPCODE = info.EQPCODE;
  293. line.ETTRCODE = info.ETTRCODE;
  294. line.ISREF = info.ISREF;
  295. line.Status = "New";
  296. if (info.ISREF == "是")
  297. {
  298. //如果当前行是默认,则其他行改为非默认
  299. var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.ISREF == "是" && a.ID != info.ID);
  300. List<ICSEQPSTP> list = line1.ToList();
  301. foreach (var isRef in list)
  302. {
  303. var lineOther = db.ICSEQPSTP.SingleOrDefault(a => a.ID == isRef.ID);
  304. lineOther.ISREF = "否";
  305. db.SubmitChanges();
  306. }
  307. }
  308. line.STIME = Convert.ToDecimal(info.STIME);
  309. line.RTIME = Convert.ToDecimal(info.RTIME);
  310. line.JiaGongTime = info.JiaGongTime;
  311. line.JiaZhuangTime = info.JiaZhuangTime;
  312. line.JianYanTime = info.JianYanTime;
  313. line.TiaoJiTime = info.TiaoJiTime;
  314. line.MUSER = AppConfig.UserId;
  315. line.MUSERName = AppConfig.UserName;
  316. line.MTIME = DateTime.Now;
  317. line.WorkPoint = AppConfig.WorkPointCode;
  318. line.EQPTypeCode = info.EQPTypeCode;
  319. line.cClass = info.cClass;
  320. line.cHandles = info.cHandles;
  321. line.cAxis = info.cAxis;
  322. line.cToolMagazine = info.cToolMagazine;
  323. line.cMachinableProfiles = info.cMachinableProfiles;
  324. line.cAccuracy = info.cAccuracy;
  325. line.OPLVL = info.OPLVL;
  326. line.WTIME = info.WTIME;
  327. //line.EATTRIBUTE1 = info.EATTRIBUTE1;
  328. ////20180626新增
  329. //line.BladeModelAndBrand = info.BladeModelAndBrand;
  330. //line.OutsourcingProperties = info.OutsourcingProperties;
  331. //line.ToolingNo = info.ToolingNo;
  332. if (isNew)
  333. db.ICSEQPSTP.InsertOnSubmit(line);
  334. db.SubmitChanges();
  335. }
  336. db.Transaction.Commit();
  337. }
  338. catch (Exception ex)
  339. {
  340. db.Transaction.Rollback();
  341. throw ex;
  342. }
  343. finally
  344. {
  345. db.Connection.Close();
  346. }
  347. }
  348. #endregion
  349. #region 通过ID查询
  350. public static DataTable searchInfoByID(string ID, string dsconn)
  351. {
  352. // string sql = @"select a.ID,
  353. //a.ITEMCODE,
  354. //a.OPCODE,
  355. //a.EQPCODE,
  356. //a.ETTRCOde,
  357. //a.STIME,
  358. //a.RTIME,
  359. //a.ISREF,
  360. //a.OutsourcingProperties ,
  361. //a.BladeModelAndBrand,
  362. //a.ToolingNo,
  363. //
  364. //a.WorkPoint,
  365. //a.MUSER,
  366. //a.MUSERName,
  367. //a.MTIME,
  368. //a.EATTRIBUTE1,
  369. //a.EQPTypeCode,
  370. //b.INVNAME ItemName,
  371. //c.OPDESC,
  372. //d.EnumText as EQPTypeName,
  373. //e.EQPName
  374. //
  375. // FROM ICSEQPSTP a
  376. // left join ICSINVENTORY b on a.ITEMCODE=b.INVCODE
  377. // left join ICSOP c on a.OPCODE=C.OPCODE
  378. // left join ( select * from Sys_EnumValues where EnumKey='001') d on a.EQPTypeCode=d.EnumValue
  379. // left join ICSEquipment e on a.EQPCODE=E.EQPCODE
  380. // where a.ID='{0}'";
  381. string sql = @"
  382. select
  383. a.ID,
  384. a.ITEMCODE,
  385. a.OPCODE,
  386. a.EQPCODE,
  387. a.ETTRCOde,
  388. ISNULL(a.STIME,0) STIME,
  389. ISNULL(a.RTIME,0) RTIME,
  390. ISNULL(a.JianYanTime,0) JianYanTime,
  391. ISNULL(a.TiaoJiTime,0) TiaoJiTime,
  392. ISNULL(a.JiaZhuangTime,0) JiaZhuangTime,
  393. ISNULL(a.JiaGongTime,0) JiaGongTime,
  394. a.ISREF,
  395. a.OutsourcingProperties ,
  396. a.BladeModelAndBrand,
  397. a.ToolingNo AS ROUTEMEMO,
  398. a.WorkPoint,
  399. a.MUSER,
  400. a.MUSERName,
  401. a.MTIME,
  402. a.EATTRIBUTE1 AS ROUTECODE,
  403. a.EQPTypeCode,
  404. b.INVNAME ItemName,
  405. c.OPDESC,
  406. a.EQPTypeCode as EQPTypeCode,
  407. a.cClass,
  408. a.cHandles,
  409. a.cAxis,
  410. a.cToolMagazine,
  411. a.cMachinableProfiles,
  412. a.cAccuracy,
  413. a.OPLVL,
  414. a.CXType,
  415. a.CXBrand1,
  416. a.CXBrand2,
  417. a.CXBrand3,
  418. a.CXJD
  419. -- d.TypeCODE AS EQPCODE,
  420. --d.TypeDESC as EQPTypeName
  421. FROM ICSEQPSTP a
  422. left join ICSINVENTORY b on a.ITEMCODE=b.INVCODE
  423. left join ICSOP c on a.OPCODE=C.OPCODE
  424. --LEFT JOIN ICSEquipmentType d ON a.EQPTypeCode=d.TypeCODE
  425. --left join ( select * from Sys_EnumValues where EnumKey='001') d on a.EQPTypeCode=d.EnumValue
  426. --left join ICSEquipment e on a.EQPCODE=E.EQPCODE
  427. where a.ID='{0}'
  428. ";
  429. sql = string.Format(sql, ID);
  430. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  431. return dt;
  432. }
  433. #endregion
  434. #region 是否存在
  435. public static bool IsIncluding(string ItemCode, string OPCode, string eqptype, string dsconn)
  436. {
  437. FramDataContext db = new FramDataContext(dsconn);
  438. db.Connection.Open();
  439. db.Transaction = db.Connection.BeginTransaction();
  440. try
  441. {
  442. var line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == ItemCode && a.OPCODE == OPCode && a.EQPTypeCode == eqptype);
  443. if (line == null)
  444. return true;
  445. else
  446. return false;
  447. }
  448. catch (Exception ex)
  449. {
  450. db.Transaction.Rollback();
  451. throw ex;
  452. }
  453. }
  454. #endregion
  455. #region 删除
  456. public static void deleteInfo(List<string> codeList, string dsconn)
  457. {
  458. FramDataContext db = new FramDataContext(dsconn);
  459. db.Connection.Open();
  460. db.Transaction = db.Connection.BeginTransaction();
  461. try
  462. {
  463. var lines = db.ICSEQPSTP.Where(a => codeList.Contains(a.ID));
  464. db.ICSEQPSTP.DeleteAllOnSubmit(lines);
  465. db.SubmitChanges();
  466. db.Transaction.Commit();
  467. }
  468. catch (Exception ex)
  469. {
  470. db.Transaction.Rollback();
  471. throw ex;
  472. }
  473. }
  474. #endregion
  475. #region 审核
  476. public static void checkInfo(List<string> codeList, string dsconn)
  477. {
  478. FramDataContext db = new FramDataContext(dsconn);
  479. db.Connection.Open();
  480. db.Transaction = db.Connection.BeginTransaction();
  481. try
  482. {
  483. var lines = db.ICSEQPSTP.Where(a => codeList.Contains(a.ID));
  484. foreach (var line in lines)
  485. {
  486. line.Status = "Check";
  487. }
  488. db.SubmitChanges();
  489. db.Transaction.Commit();
  490. }
  491. catch (Exception ex)
  492. {
  493. db.Transaction.Rollback();
  494. throw ex;
  495. }
  496. }
  497. #endregion
  498. public static DataTable GetEQ(string conn, string wp)
  499. {
  500. string sql = "SELECT EQPID,EQPCode AS EQPCODE,EQPName AS EQPNAME,EQPDESC AS EQPDESC FROM dbo.ICSEquipment WHERE WorkPoint='{0}'";
  501. sql = string.Format(sql, wp);
  502. return DBHelper.ExecuteDataset(conn, CommandType.Text, sql).Tables[0];
  503. }
  504. public static DataTable GetFIXEQ(string conn, string wp)
  505. {
  506. string sql = @"
  507. SELECT
  508. A.EQPID,A.EQPCode AS EQPCODE,A.EQPName AS EQPNAME,A.EQPDESC AS EQPDESC,A.FIXOP,A.EType,B.TypeDESC
  509. FROM dbo.ICSEquipment a
  510. INNER JOIN [dbo].[ICSEquipmentType] b ON a.EType=b.TypeCODE AND a.WorkPoint=b.WorkPoint
  511. WHERE b.TypeDESC='' AND A.WorkPoint='{0}'";
  512. sql = string.Format(sql, wp);
  513. return DBHelper.ExecuteDataset(conn, CommandType.Text, sql).Tables[0];
  514. }
  515. public static DataTable GetINV(string conn, string wp)
  516. {
  517. string sql = "SELECT ID AS ITEMID,INVCODE AS ITEMCODE,INVNAME AS ITEMNAME,INVDESC AS ITEMDESC FROM dbo.ICSINVENTORY WHERE WorkPoint='{0}'";
  518. sql = string.Format(sql, wp);
  519. return DBHelper.ExecuteDataset(conn, CommandType.Text, sql).Tables[0];
  520. }
  521. public static DataTable GetBaseOP(string conn, string wp)
  522. {
  523. //阿威特 基础工序,状态失效,位数3,用于一键导入拼接工序名称
  524. string sql = @"SELECT distinct OPCODE AS OirOPCODE,OPNAME AS OriOPNAME FROM dbo.ICSOP WHERE EnableFlag=0 AND LEN(OPCODE)=3";
  525. sql = string.Format(sql, wp);
  526. return DBHelper.ExecuteDataset(conn, CommandType.Text, sql).Tables[0];
  527. }
  528. public static void ImportFromErp(string conn, List<ITEM2ROUTE2OP2TIMEawt> list)
  529. {
  530. FramDataContext db = new FramDataContext(conn);
  531. db.Connection.Open();
  532. db.Transaction = db.Connection.BeginTransaction();
  533. try
  534. {
  535. #region 需要导入以下表
  536. //1.OP
  537. //2.ROUTE
  538. //3.ROUTE2OP
  539. //4.ITEM2ROUTE
  540. //5.ITEMROUTE2OP
  541. //6.ICSEQPSTP
  542. #endregion
  543. foreach (ITEM2ROUTE2OP2TIMEawt info in list)
  544. {
  545. //0.验证物料
  546. var lineInv = db.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == info.ITEMCODE && a.WorkPoint == info.WorkPoint);
  547. if (lineInv == null)
  548. {
  549. throw new Exception("物料不存在" + info.ITEMCODE);
  550. }
  551. info.ITEMID = lineInv.ID;
  552. foreach (ROUTEawt route in info.listRoute)
  553. {
  554. string mgrUserCode = "";
  555. int cr = db.ICSROUTE.Where(a => a.ROUTECODE == route.ROUTECODE && a.WorkPoint == info.WorkPoint).Count();
  556. if (cr > 0)
  557. {
  558. throw new Exception("物料" + info.ITEMCODE + "工艺版本" + route.ROUTEVER + "已存在!");
  559. }
  560. List<Sys_User> cu = db.Sys_User.Where(a => a.UserName == route.MGR_USER && a.WorkPointCode == info.WorkPoint).ToList();
  561. if (cu.Count() == 0)
  562. {
  563. throw new Exception("工艺负责人错误,未找到此人员名称" + route.MGR_USER);
  564. }
  565. mgrUserCode = cu[0].UserCode;
  566. //工艺导入ICSROUTE
  567. ICSROUTE lineR = new ICSROUTE();
  568. lineR.ID = route.ROUTEID = AppConfig.GetGuid();
  569. lineR.ROUTECODE = route.ROUTECODE;
  570. lineR.ROUTEDESC = "物料" + info.ITEMCODE + "工艺版本" + route.ROUTEVER;
  571. lineR.ROUTETYPE = route.ROUTETYPE;
  572. lineR.ENABLED = route.ENABLED;
  573. lineR.EFFDATE = route.EFFDATE;
  574. lineR.IVLDATE = route.IVLDATE;
  575. lineR.MTIME = info.MTIME;
  576. lineR.MUSER = info.USERID;//id
  577. lineR.MUSERName = info.USERNAME;
  578. lineR.WorkPoint = info.WorkPoint;
  579. db.ICSROUTE.InsertOnSubmit(lineR);
  580. //物料工艺绑定ICSITEM2ROUTE
  581. var linesI2R_Old = db.ICSITEM2ROUTE.Where(a => a.ITEMCODE == info.ITEMCODE && a.ISREF == "1" && a.WorkPoint == info.WorkPoint);
  582. foreach (var I2R_Old in linesI2R_Old)
  583. {
  584. //取消旧绑定.默认工艺状态
  585. I2R_Old.ISREF = "0";
  586. }
  587. db.SubmitChanges();
  588. ICSITEM2ROUTE lineI2R = new ICSITEM2ROUTE();
  589. lineI2R.ISREF = "1";
  590. lineI2R.ITEMID = info.ITEMID;
  591. lineI2R.ITEMCODE = info.ITEMCODE;
  592. lineI2R.ROUTEID = route.ROUTEID;
  593. lineI2R.ROUTECODE = route.ROUTECODE;
  594. lineI2R.EATTRIBUTE1 = mgrUserCode;//工艺负责人
  595. lineI2R.MTIME = info.MTIME;
  596. lineI2R.MUSER = info.USERID;//id
  597. lineI2R.MUSERName = info.USERNAME;
  598. lineI2R.WorkPoint = info.WorkPoint;
  599. db.ICSITEM2ROUTE.InsertOnSubmit(lineI2R);
  600. foreach (OPTIMEawt op in route.listOP)
  601. {
  602. var lineop = db.ICSOP.SingleOrDefault(a => a.OPCODE == op.OPCODE && a.WorkPoint == info.WorkPoint);
  603. if (lineop == null)
  604. {
  605. //工序导入ICSOP
  606. lineop = new ICSOP();
  607. lineop.ID = op.OPID = AppConfig.GetGuid();
  608. lineop.OPCODE = op.OPCODE;
  609. lineop.OPDESC = op.OPDESC;
  610. lineop.OPNAME = op.OPNAME;
  611. lineop.OpFrom = op.OpFrom;
  612. lineop.OPCOLLECTION = op.OPCOLLECTION;
  613. lineop.OPCONTROL = op.OPCONTROL;
  614. lineop.CostCenter = op.CostCenter;
  615. lineop.EATTRIBUTE1 = op.OPAttr == "自制" ? "0" : "1";
  616. lineop.EnableFlag = op.EnableFlag;
  617. lineop.MTIME = info.MTIME;
  618. lineop.MUSER = info.USERID;//id
  619. lineop.MUSERName = info.USERNAME;
  620. lineop.WorkPoint = info.WorkPoint;
  621. db.ICSOP.InsertOnSubmit(lineop);
  622. }
  623. else
  624. {
  625. op.OPID = lineop.ID;
  626. }
  627. //工艺工序绑定ICSROUTE2OP. (其他字段暂时没用)
  628. ICSROUTE2OP lineR2O = new ICSROUTE2OP();
  629. lineR2O.ID = AppConfig.GetGuid();
  630. lineR2O.ROUTEID = route.ROUTEID;
  631. lineR2O.OPID = op.OPID;
  632. lineR2O.ROUTECODE = route.ROUTECODE;
  633. lineR2O.OPCODE = op.OPCODE;
  634. lineR2O.OPSEQ = op.OPSEQ;
  635. lineR2O.OPCONTROL = op.OPCONTROL;
  636. lineR2O.OPAttr = op.OPAttr;
  637. lineR2O.CtrlType = op.CtrlType;
  638. lineR2O.MTIME = info.MTIME;
  639. lineR2O.MUSER = info.USERCODE;//code
  640. lineR2O.MUSERName = info.USERNAME;
  641. lineR2O.WORKPOINT = info.WorkPoint;
  642. db.ICSROUTE2OP.InsertOnSubmit(lineR2O);
  643. //物料工序下发ICSITEMROUTE2OP
  644. ICSITEMROUTE2OP lineIR2O = new ICSITEMROUTE2OP();
  645. lineIR2O.ITEMID = info.ITEMID;
  646. lineIR2O.ROUTEID = route.ROUTEID;
  647. lineIR2O.OPID = op.OPID;
  648. lineIR2O.ITEMCODE = info.ITEMCODE;
  649. lineIR2O.ROUTECODE = route.ROUTECODE;
  650. lineIR2O.OPCODE = op.OPCODE;
  651. lineIR2O.OPSEQ = op.OPSEQ;
  652. lineIR2O.OPAttr = op.OPAttr;
  653. lineIR2O.CtrlType = op.CtrlType;
  654. lineIR2O.RouteMGR = route.MGR_USER;//工艺负责人
  655. lineIR2O.OPCONTROL = op.OPCONTROL;
  656. lineIR2O.OPTIONALOP = "";
  657. lineIR2O.IDMERGETYPE = "";
  658. lineIR2O.IDMERGERULE = 0;
  659. lineIR2O.MTIME = info.MTIME;
  660. lineIR2O.MUSER = info.USERID;//id
  661. lineIR2O.MUSERName = info.USERNAME;
  662. lineIR2O.WorkPoint = info.WorkPoint;
  663. db.ICSITEMROUTE2OP.InsertOnSubmit(lineIR2O);
  664. //旧的标准工时取消默认状态
  665. var Old_lineEQSTP = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.EATTRIBUTE1 == route.ROUTECODE && a.OPCODE == op.OPCODE && a.ISREF == "是" && a.WorkPoint == info.WorkPoint);
  666. foreach (ICSEQPSTP item in Old_lineEQSTP)
  667. {
  668. item.ISREF = "否";
  669. }
  670. db.SubmitChanges();
  671. //标准工时导入ICSEQPSTP
  672. ICSEQPSTP lineEQSTP = new ICSEQPSTP();
  673. lineEQSTP.ID = AppConfig.GetGuid();
  674. lineEQSTP.ITEMCODE = info.ITEMCODE;
  675. lineEQSTP.EATTRIBUTE1 = route.ROUTECODE;
  676. lineEQSTP.OPCODE = op.OPCODE;
  677. lineEQSTP.EQPCODE = op.EQPCODE;
  678. lineEQSTP.ETTRCODE = "";
  679. lineEQSTP.STIME = lineEQSTP.JiaGongTime = op.STIME;
  680. lineEQSTP.RTIME = lineEQSTP.TiaoJiTime = op.RTIME;
  681. lineEQSTP.JianYanTime = op.JYTime;
  682. lineEQSTP.JiaZhuangTime = op.ZJTime;
  683. lineEQSTP.WTIME = op.WTIME;
  684. lineEQSTP.EQPTypeCode = op.Type;
  685. lineEQSTP.ISREF = "是";
  686. lineEQSTP.Status = "New";
  687. lineEQSTP.ToolingNo = op.Memo;
  688. lineEQSTP.cClass = op.cClass;
  689. lineEQSTP.cHandles = op.cHandles.ToString();
  690. lineEQSTP.cAxis = op.cAxis.ToString();
  691. lineEQSTP.cToolMagazine = op.cToolMagazine.ToString();
  692. lineEQSTP.cMachinableProfiles = op.cMachinableProfiles.ToString();
  693. lineEQSTP.cAccuracy = op.cAccuracy;
  694. lineEQSTP.OPLVL = op.OPLVL;
  695. lineEQSTP.MTIME = info.MTIME;
  696. lineEQSTP.MUSER = info.USERCODE;//CODE
  697. lineEQSTP.MUSERName = info.USERNAME;
  698. lineEQSTP.WorkPoint = info.WorkPoint;
  699. lineEQSTP.CXBrand1 = op.CXBrand1;
  700. lineEQSTP.CXBrand2 = op.CXBrand2;
  701. lineEQSTP.CXBrand3 = op.CXBrand3;
  702. lineEQSTP.CXJD = op.CXJD;
  703. lineEQSTP.CXType = op.CXTYPE;
  704. db.ICSEQPSTP.InsertOnSubmit(lineEQSTP);
  705. }
  706. }
  707. //返工工艺
  708. //1.对应工序标准工时
  709. List<ICSEQPSTP_RW> listStp4rw = GetRW_EQPSTP(db, info.WorkPoint);
  710. //2.绑定
  711. Import4RW(db, info.ITEMCODE, info.USERCODE, info.MTIME, listStp4rw, info.WorkPoint);
  712. }
  713. db.SubmitChanges();
  714. db.Transaction.Commit();
  715. }
  716. catch (Exception ex)
  717. {
  718. db.Transaction.Rollback();
  719. throw ex;
  720. }
  721. finally
  722. {
  723. db.Connection.Close();
  724. }
  725. }
  726. //public static Dictionary<string, string> GetRWTimesSetting(FramDataContext db, string WorkPoint)
  727. //{
  728. // Dictionary<string, string> dic = new Dictionary<string, string>();
  729. // Sys_EnumKey rwKey = db.Sys_EnumKey.SingleOrDefault(a => a.EnumKey == "00012" && a.WorkPointCode == WorkPoint);
  730. // if (rwKey == null)
  731. // {
  732. // throw new Exception("站点" + WorkPoint + "自定义档案: 返工工单工时,未维护");
  733. // }
  734. // List<Sys_EnumValues> rwValues = db.Sys_EnumValues.Where(a => a.EnumKey == rwKey.EnumKey && a.WorkPointCode == WorkPoint).ToList();
  735. // if (rwValues.Count == 0)
  736. // {
  737. // throw new Exception("站点" + WorkPoint + "自定义档案: 返工工单工时,未维护");
  738. // }
  739. // foreach (Sys_EnumValues item in rwValues)
  740. // {
  741. // string val = item.EnumValue;
  742. // string text = item.EnumText;
  743. // string define1 = item.Define1.Trim();
  744. // if (string.IsNullOrEmpty(define1))
  745. // {
  746. // throw new Exception("自定义档案: 返工工单工时, " + text + "不可为空");
  747. // }
  748. // switch (val)
  749. // {
  750. // case "0001":
  751. // dic.Add("调机工时", define1);
  752. // break;
  753. // case "0002":
  754. // dic.Add("加工工时", define1);
  755. // break;
  756. // case "0003":
  757. // dic.Add("装夹工时", define1);
  758. // break;
  759. // case "0004":
  760. // dic.Add("检验工时", define1);
  761. // break;
  762. // case "0005":
  763. // dic.Add("委外工时", define1);
  764. // break;
  765. // case "0006":
  766. // dic.Add("工艺负责人", define1);
  767. // break;
  768. // case "0007":
  769. // dic.Add("设备代码", define1);
  770. // break;
  771. // default:
  772. // continue;
  773. // }
  774. // }
  775. // if (!dic.Keys.Contains("调机工时"))
  776. // {
  777. // throw new Exception("自定义档案: 返工工单工时维护, 调机工时 未维护0001");
  778. // }
  779. // if (!dic.Keys.Contains("加工工时"))
  780. // {
  781. // throw new Exception("自定义档案: 返工工单工时维护, 加工工时 未维护0002");
  782. // }
  783. // if (!dic.Keys.Contains("装夹工时"))
  784. // {
  785. // throw new Exception("自定义档案: 返工工单工时维护, 装夹工时 未维护0003");
  786. // }
  787. // if (!dic.Keys.Contains("检验工时"))
  788. // {
  789. // throw new Exception("自定义档案: 返工工单工时维护, 检验工时 未维护0004");
  790. // }
  791. // if (!dic.Keys.Contains("委外工时"))
  792. // {
  793. // throw new Exception("自定义档案: 返工工单工时维护, 委外工时 未维护0005");
  794. // }
  795. // if (!dic.Keys.Contains("工艺负责人"))
  796. // {
  797. // throw new Exception("自定义档案: 返工工单工时维护, 工艺负责人 未维护0006");
  798. // }
  799. // if (!dic.Keys.Contains("设备代码"))
  800. // {
  801. // throw new Exception("自定义档案: 返工工单工时维护, 设备代码 未维护0007");
  802. // }
  803. // return dic;
  804. //}
  805. ////public static ICSEQPSTP4RW GetRWTimesSetting(FramDataContext db, string WorkPoint)
  806. ////{
  807. //// ICSEQPSTP4RW info = new ICSEQPSTP4RW();
  808. //// Sys_EnumKey rwKey = db.Sys_EnumKey.SingleOrDefault(a => a.EnumKey == "00012" && a.WorkPointCode == WorkPoint);
  809. //// if (rwKey == null)
  810. //// {
  811. //// throw new Exception("站点" + WorkPoint + "自定义档案: 返工工单工时,未维护");
  812. //// }
  813. //// List<Sys_EnumValues> rwValues = db.Sys_EnumValues.Where(a => a.EnumKey == rwKey.EnumKey && a.WorkPointCode == WorkPoint).ToList();
  814. //// if (rwValues.Count == 0)
  815. //// {
  816. //// throw new Exception("站点" + WorkPoint + "自定义档案: 返工工单工时,未维护");
  817. //// }
  818. //// foreach (Sys_EnumValues item in rwValues)
  819. //// {
  820. //// string val = item.EnumValue;
  821. //// string text = item.EnumText;
  822. //// string define1 = item.Define1.Trim();
  823. //// if (string.IsNullOrEmpty(define1))
  824. //// {
  825. //// throw new Exception("自定义档案: 返工工单工时, " + text + "不可为空");
  826. //// }
  827. //// switch (val)
  828. //// {
  829. //// case "0001":
  830. //// info.RTIME = Convert.ToDecimal(define1);
  831. //// break;
  832. //// case "0002":
  833. //// info.STIME = Convert.ToDecimal(define1);
  834. //// break;
  835. //// case "0003":
  836. //// info.ZJTIME = Convert.ToDecimal(define1);
  837. //// break;
  838. //// case "0004":
  839. //// info.JYTIME = Convert.ToDecimal(define1);
  840. //// break;
  841. //// case "0005":
  842. //// info.WTIME = Convert.ToDecimal(define1);
  843. //// break;
  844. //// case "0006":
  845. //// info.routeMgr = define1;
  846. //// break;
  847. //// case "0007":
  848. //// info.EQPCODE = define1;
  849. //// break;
  850. //// default:
  851. //// continue;
  852. //// }
  853. //// }
  854. //// if (info.RTIME == null)
  855. //// {
  856. //// throw new Exception("自定义档案: 返工工单工时维护, 调机工时 未维护0001");
  857. //// }
  858. //// if (info.STIME == null)
  859. //// {
  860. //// throw new Exception("自定义档案: 返工工单工时维护, 加工工时 未维护0002");
  861. //// }
  862. //// if (info.ZJTIME == null)
  863. //// {
  864. //// throw new Exception("自定义档案: 返工工单工时维护, 装夹工时 未维护0003");
  865. //// }
  866. //// if (info.JYTIME == null)
  867. //// {
  868. //// throw new Exception("自定义档案: 返工工单工时维护, 检验工时 未维护0004");
  869. //// }
  870. //// if (info.WTIME == null)
  871. //// {
  872. //// throw new Exception("自定义档案: 返工工单工时维护, 委外工时 未维护0005");
  873. //// }
  874. //// if (string.IsNullOrEmpty(info.routeMgr))
  875. //// {
  876. //// throw new Exception("自定义档案: 返工工单工时维护, 工艺负责人 未维护0006");
  877. //// }
  878. //// if (string.IsNullOrEmpty(info.EQPCODE))
  879. //// {
  880. //// throw new Exception("自定义档案: 返工工单工时维护, 设备代码 未维护0007");
  881. //// }
  882. //// return info;
  883. ////}
  884. public static List<ICSEQPSTP_RW> GetRW_EQPSTP(FramDataContext db, string WorkPoint)
  885. {
  886. List<ICSEQPSTP_RW> listStp4rw = new List<ICSEQPSTP_RW>();
  887. listStp4rw = db.ICSEQPSTP_RW.Where(a => a.WorkPoint == WorkPoint).ToList();
  888. return listStp4rw;
  889. }
  890. public static void Import4RW(FramDataContext db, string ITEMCODE, string USERCODE, DateTime dtNow, List<ICSEQPSTP_RW> listStp4rw, string WorkPoint)
  891. {
  892. //1.ITEM2ROUTE
  893. //2.ITEMROUTE2OP
  894. //3.ICSEQPSTP
  895. string ITEMID = "";
  896. string USERID = "";
  897. string USERNAME = "";
  898. Sys_User USR = db.Sys_User.SingleOrDefault(a => a.UserCode == USERCODE && a.WorkPointCode == WorkPoint);
  899. if (USR == null)
  900. {
  901. throw new Exception("用户不存在" + USERCODE);
  902. }
  903. USERID = USR.ID;
  904. USERNAME = USR.UserName;
  905. ICSINVENTORY inv = db.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == ITEMCODE && a.WorkPoint == WorkPoint);
  906. if (inv == null)
  907. {
  908. throw new Exception("物料不存在" + ITEMID);
  909. }
  910. ITEMID = inv.ID;
  911. var linesRWRoute = db.ICSROUTE.Where(a => a.ROUTETYPE.ToLower() == "rework" && a.WorkPoint == WorkPoint);
  912. foreach (ICSROUTE route in linesRWRoute)
  913. {
  914. ICSITEM2ROUTE i2r = db.ICSITEM2ROUTE.SingleOrDefault(a => a.ITEMCODE == ITEMCODE && a.ROUTECODE == route.ROUTECODE && a.WorkPoint == WorkPoint);
  915. if (i2r != null)
  916. {
  917. continue;
  918. }
  919. i2r = new ICSITEM2ROUTE();
  920. i2r.ISREF = "0";
  921. i2r.ITEMID = ITEMID;
  922. i2r.ITEMCODE = ITEMCODE;
  923. i2r.ROUTEID = route.ID;
  924. i2r.ROUTECODE = route.ROUTECODE;
  925. i2r.EATTRIBUTE1 = "demo";//返工工艺负责人默认demo
  926. i2r.MTIME = dtNow;
  927. i2r.MUSER = USERID;
  928. i2r.MUSERName = USERNAME;
  929. i2r.WorkPoint = WorkPoint;
  930. db.ICSITEM2ROUTE.InsertOnSubmit(i2r);
  931. var linesR2O = db.ICSROUTE2OP.Where(a => a.ROUTECODE == route.ROUTECODE && a.WORKPOINT == WorkPoint).ToList();
  932. foreach (ICSROUTE2OP r2o in linesR2O)
  933. {
  934. ICSEQPSTP_RW stp4rw = null;
  935. foreach (ICSEQPSTP_RW item in listStp4rw)
  936. {
  937. if (item.OPCODE == r2o.OPCODE)
  938. {
  939. stp4rw = item;
  940. break;
  941. }
  942. }
  943. if (stp4rw == null)
  944. {
  945. throw new Exception("返工工艺" + r2o.ROUTECODE + "工序" + r2o.OPCODE + "没有预设的标准工时");
  946. }
  947. ICSITEMROUTE2OP lineir2o = new ICSITEMROUTE2OP();
  948. lineir2o.ITEMID = ITEMID;
  949. lineir2o.ROUTEID = r2o.ROUTEID;
  950. lineir2o.OPID = r2o.OPID;
  951. lineir2o.ITEMCODE = ITEMCODE;
  952. lineir2o.ROUTECODE = r2o.ROUTECODE;
  953. lineir2o.OPCODE = r2o.OPCODE;
  954. lineir2o.OPSEQ = r2o.OPSEQ;
  955. lineir2o.OPAttr = r2o.OPAttr;
  956. lineir2o.CtrlType = r2o.CtrlType;
  957. lineir2o.RouteMGR = "demo";//工艺负责人
  958. lineir2o.OPCONTROL = r2o.OPCONTROL;
  959. lineir2o.OPTIONALOP = "";
  960. lineir2o.IDMERGETYPE = "";
  961. lineir2o.IDMERGERULE = 0;
  962. lineir2o.MTIME = dtNow;
  963. lineir2o.MUSER = USERID;//id
  964. lineir2o.MUSERName = USERNAME;
  965. lineir2o.WorkPoint = WorkPoint;
  966. db.ICSITEMROUTE2OP.InsertOnSubmit(lineir2o);
  967. //旧的标准工时取消默认状态
  968. var Old_lineEQSTP = db.ICSEQPSTP.Where(a => a.ITEMCODE == ITEMCODE && a.EATTRIBUTE1 == route.ROUTECODE && a.OPCODE == r2o.OPCODE && a.ISREF == "是" && a.WorkPoint == WorkPoint);
  969. foreach (ICSEQPSTP item in Old_lineEQSTP)
  970. {
  971. item.ISREF = "否";
  972. }
  973. db.SubmitChanges();
  974. //标准工时导入ICSEQPSTP
  975. ICSEQPSTP lineEQSTP = new ICSEQPSTP();
  976. lineEQSTP.ID = AppConfig.GetGuid();
  977. lineEQSTP.ITEMCODE = ITEMCODE;
  978. lineEQSTP.EATTRIBUTE1 = route.ROUTECODE;
  979. lineEQSTP.OPCODE = r2o.OPCODE;
  980. lineEQSTP.EQPCODE = stp4rw.EQPCODE;
  981. lineEQSTP.ETTRCODE = "";
  982. lineEQSTP.STIME = lineEQSTP.JiaGongTime = stp4rw.JiaGongTime;
  983. lineEQSTP.RTIME = lineEQSTP.TiaoJiTime = stp4rw.TiaoJiTime;
  984. lineEQSTP.JianYanTime = stp4rw.JianYanTime;
  985. lineEQSTP.JiaZhuangTime = stp4rw.ZhuangJiaTime;
  986. lineEQSTP.WTIME = stp4rw.WTIME;
  987. lineEQSTP.EQPTypeCode = stp4rw.EQPTypeCode;
  988. lineEQSTP.ISREF = "是";
  989. lineEQSTP.Status = "New";
  990. lineEQSTP.ToolingNo = "";
  991. lineEQSTP.cClass = stp4rw.cClass;
  992. lineEQSTP.cHandles = stp4rw.cHandles;
  993. lineEQSTP.cAxis = stp4rw.cAxis;
  994. lineEQSTP.cToolMagazine = stp4rw.cToolMagazine;
  995. lineEQSTP.cMachinableProfiles = stp4rw.cMachinableProfiles;
  996. lineEQSTP.cAccuracy = stp4rw.cAccuracy;
  997. lineEQSTP.OPLVL = stp4rw.OPLVL;
  998. lineEQSTP.MTIME = dtNow;
  999. lineEQSTP.MUSER = USERCODE;//CODE
  1000. lineEQSTP.MUSERName = USERNAME;
  1001. lineEQSTP.WorkPoint = WorkPoint;
  1002. lineEQSTP.CXType = stp4rw.CXTYPE;
  1003. lineEQSTP.CXJD = stp4rw.CXJD;
  1004. lineEQSTP.CXBrand1 = stp4rw.CXBrand1;
  1005. lineEQSTP.CXBrand2 = stp4rw.CXBrand2;
  1006. db.ICSEQPSTP.InsertOnSubmit(lineEQSTP);
  1007. db.SubmitChanges();
  1008. }
  1009. }
  1010. }
  1011. }
  1012. }