ProductOutputConfigDal.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using Cksoft.Data;
  2. using DllEapEntity.Mes;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using Toolkits;
  8. namespace DllEapDal
  9. {
  10. public class ProductOutputConfigDal
  11. {
  12. public IDatabase CurrDb;
  13. public ProductOutputConfigDal(IDatabase db)
  14. {
  15. CurrDb = db;
  16. }
  17. public IEnumerable<ProductIdealOutputConfig> Get(int start, int length, string order, string sort, string filter, string errorinfo)
  18. {
  19. int end = start + length;
  20. var baseSql = this.GetSelectSql(filter);
  21. return CurrDb.FindList<ProductIdealOutputConfig>(baseSql).OrderBy(c => c.ProcessCode).OrderBy(c => c.MacCode);
  22. }
  23. public int GetCount(string filter)
  24. {
  25. string errorinfo = string.Empty;
  26. var entities = CurrDb.FindList<ProductIdealOutputConfig>(this.GetSelectSql(filter));
  27. if (entities != null)
  28. {
  29. return entities.Count();
  30. }
  31. return 0;
  32. }
  33. public ProductIdealOutputConfig Get(int id)
  34. {
  35. string errorinfo = string.Empty;
  36. var sql = this.GetSelectSql(string.Empty) + $" and a.id={id}";
  37. var pro = CurrDb.FindList<ProductIdealOutputConfig>(sql).FirstOrDefault();
  38. return pro;
  39. }
  40. /// <summary>
  41. /// 添加角色并返回角色Id
  42. /// </summary>
  43. /// <param name="role"></param>
  44. /// <param name="userCode"></param>
  45. /// <returns></returns>
  46. public int Add(ProductIdealOutputConfig pro, string userCode, ref string errorinfo)
  47. {
  48. pro.RecCode = userCode;
  49. pro.ModCode = userCode;
  50. pro.RecTime = DateTime.Now;
  51. pro.ModTime = DateTime.Now;
  52. var existsSql = $"select * from ProductIdealOutputConfig where ProductCode='{pro.ProductCode}' and MacCode='{pro.MacCode}'";
  53. var entity = CurrDb.FindList<ProductIdealOutputConfig>(existsSql).FirstOrDefault();
  54. if (entity != null)
  55. {
  56. errorinfo = "该产品的当前机台已设置理论产量,不能重复设置";
  57. return -1;
  58. }
  59. var sql = $"insert into ProductIdealOutputConfig(MacModelCode,ProcessCode,ProductCode,ConfigId,Remark,RecCode,recTime,modcode,modTime,MacCode) " +
  60. $"values('{pro.MacModelCode}','{pro.ProcessCode}','{pro.ProductCode}'," +
  61. $"'{pro.ConfigId}','{pro.Remark}','{pro.RecCode}','{pro.RecTime.ToString("yyyy-MM-dd")}','{pro.ModCode}','{pro.ModTime.ToString("yyyy-MM-dd")}','{pro.MacCode}');" +
  62. $"select @@identity;";
  63. var id = Convert.ToInt32(CurrDb.FindList<string>(sql).FirstOrDefault() ?? "-1");
  64. return id;
  65. }
  66. public int Update(ProductIdealOutputConfig role, string userCode, ref string error)
  67. {
  68. var old = CurrDb.FindEntity<ProductIdealOutputConfig>(role.ID);
  69. role.RecCode = old.RecCode;
  70. role.RecTime = old.RecTime;
  71. role.ModCode = userCode;
  72. role.ModTime = DateTime.Now;
  73. if (CurrDb.Update<ProductIdealOutputConfig>(role) < 0)
  74. {
  75. error = WebErrorMsg.UpdateFailed;
  76. return -1;
  77. }
  78. return 1;
  79. }
  80. public IdealOutputConfig getIdealOutputConfig(int id)
  81. {
  82. return CurrDb.FindEntity<IdealOutputConfig>(id);
  83. }
  84. public int Delete(int id, ref string msg)
  85. {
  86. // 判断是否有产品正在使用该程序
  87. string sql = $"select * from ProductIdealOutputConfig where ConfigID='{id}'";
  88. var rule = CurrDb.FindList<ProductIdealOutputConfig>(sql).FirstOrDefault();
  89. if (rule != null)
  90. {
  91. msg = "该理想产量信息正在被使用,无法删除";
  92. return -1;
  93. }
  94. sql = $"delete from IdealOutputConfig where id={id}";
  95. if (CurrDb.ExecuteBySql(sql) < 0)
  96. {
  97. msg = WebErrorMsg.DeleteFailed;
  98. return -1;
  99. }
  100. msg = string.Empty;
  101. return 1;
  102. }
  103. private string GetSelectSql(string filter)
  104. {
  105. var sql = @"select a.*,b.FName as macmodelName,c.FName as ProcessName,d.FName as ProductName,e.FName as ConfigName,
  106. e.FLength as FLen,f.FName as RecName,g.FName as ModName from ProductIdealOutputConfig a
  107. left join MacModel b on a.MacModelCode = b.FCode
  108. left join TProcess c on a.ProcessCode=c.FCode
  109. left join Part d on a.ProductCode=d.FCode
  110. left join IdealOutputConfig e on a.ConfigId=e.id
  111. left join Staff f on a.RecCode=f.FCode
  112. left join Staff g on a.ModCode=g.FCode "
  113. + $"where 1=1 {filter}";
  114. return sql;
  115. }
  116. }
  117. }