MacTProcessDal.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using DllEapEntity;
  4. using DllEapEntity.Dtos;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Text;
  8. using System.Linq;
  9. namespace DllEapDal
  10. {
  11. public class MacTProcessDal
  12. {
  13. public IDatabase CurrDb;
  14. public MacTProcessDal(IDatabase db)
  15. {
  16. CurrDb = db;
  17. }
  18. /// <summary>
  19. /// 从Mes系统中获取制程机台对应关系
  20. /// </summary>
  21. /// <returns></returns>
  22. public int AsyncMatProcessFromMes()
  23. {
  24. using(IDatabase secdb = DbFactory.Base("sqlconn"))
  25. {
  26. string sql = string.Format("select a.*,b.FCode MacCode from MacTProcess");
  27. var macs = secdb.FindList<MacTProcess>(sql);
  28. sql = "select * from Machine";
  29. var machines = CurrDb.FindList<Machine>(sql);
  30. var macWithIds = macs.Join(machines, c => c.MacCode, d => d.FCode, (c, d) =>
  31. {
  32. return new { PCode = c.PCode, MacID = d.ID };
  33. });
  34. if (macWithIds != null && macWithIds.Count() > 0)
  35. {
  36. foreach(var item in macWithIds)
  37. {
  38. var insertSql = string.Format($"insert into mactprocess(macid,pcode) " +
  39. $"values('{item.MacID}','{item.PCode}')");
  40. if (CurrDb.ExecuteBySql(insertSql) < 0)
  41. return -1;
  42. }
  43. }
  44. return 1;
  45. }
  46. }
  47. }
  48. }