LterationService.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using QWPlatform.IService;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using QWPlatform.DataIntface;
  7. using QWPlatform.SystemLibrary;
  8. using PMS.BusinessModels.ProManager;
  9. using System.Data;
  10. using PMS.EntityModels.PersonManager;
  11. using QWPlatform.IService.ServiceInterface;
  12. using PMS.BusinessModels.Product;
  13. using QWPlatform.Models;
  14. using PMS.BusinessModels.Project;
  15. using PMS.BusinessModels;
  16. using QWPlatform.SystemLibrary.LogManager;
  17. using PMS.BusinessModels.Account;
  18. using PMS.EntityModels.ProManager;
  19. using PMS.EntityModels.LterationModel;
  20. namespace PMS.DBService.ProManager
  21. {
  22. public class LterationService : DataServiceBase
  23. {
  24. protected override void DBFctory(string conName)
  25. {
  26. base.DBFctory(conName);
  27. }
  28. public string GetId(string tableName)
  29. {
  30. return SqlBuilder.SqlText("select ZLCHS.f_Next_Id(':Name') as ID from dual").Parameters("Name", tableName).Select().Rows[0]["ID"].ToString();
  31. }
  32. public int Save(LterationModel model, int type)
  33. {
  34. //生成简码
  35. var dt = SqlBuilder.SqlText("select zlSpellCode(:name) as 简码 from dual ").Parameters("name", model.MC).Select();
  36. if (type == 1)
  37. {
  38. model.ID = GetId("问题迭代信息");
  39. return InsertBuilder.Insert("问题迭代信息")
  40. .Column("ID", model.ID)
  41. .Column("名称", model.MC)
  42. .Column("简码", dt.Rows[0]["简码"].ToString())
  43. .Column("类型", model.LX)
  44. .Column("渠道ID", model.QDID)
  45. .Column("项目ID", model.XMID)
  46. .Column("产品ID", model.CPID)
  47. .Column("责任人ID", model.ZRRID)
  48. .Column("开始日期", model.KSRJ)
  49. .Column("结束日期", model.JSRJ)
  50. .Column("描述", model.MS)
  51. .Column("建立日期", DataBaseBuilder.GetDateTime)
  52. .Column("状态", model.ZT)
  53. .Column("进度", 0)
  54. .Execute();
  55. }
  56. else
  57. {
  58. return UpdateBuilder.Update("问题迭代信息")
  59. .Where("ID", model.ID)
  60. .Column("名称", model.MC)
  61. .Column("简码", dt.Rows[0]["简码"].ToString())
  62. .Column("类型", model.LX)
  63. .Column("渠道ID", model.QDID)
  64. .Column("项目ID", model.XMID)
  65. .Column("产品ID", model.CPID)
  66. .Column("责任人ID", model.ZRRID)
  67. .Column("开始日期", model.KSRJ)
  68. .Column("结束日期", model.JSRJ)
  69. .Column("描述", model.MS)
  70. .Column("状态", model.ZT)
  71. .Execute();
  72. }
  73. }
  74. public int Delete(string id)
  75. {
  76. return DeleteBulider.Delete("问题迭代信息").Where("id", id).Execute();
  77. }
  78. public string GetList(string cpid, int zt, string key, int start, int end)
  79. {
  80. string sql = @"select id,名称,类型,to_char(开始日期,'yyyy-MM-dd') 开始日期,to_char(结束日期,'yyyy-MM-dd') 结束日期,to_char(建立日期,'yyyy-MM-dd') 建立日期,进度,负责人姓名
  81. From (Select Mx.*, Max(排序) Over(Order By 1) As Maxrow
  82. From (Select Mx.*,
  83. Row_Number() Over(Order By Mx.建立日期 Desc) As 排序
  84. From (select d.* ,x.姓名 as 负责人姓名
  85. from 问题迭代信息 d left join 人员信息 x on d.责任人ID=x.id
  86. where d.名称 is not null ";
  87. if (zt != 0)
  88. {
  89. sql += $" and d.状态={zt} ";
  90. }
  91. if (!string.IsNullOrWhiteSpace(key))
  92. {
  93. sql += $@" and d.名称 like '%'||'{key}'||'%' ";
  94. }
  95. if (!string.IsNullOrWhiteSpace(cpid))
  96. {
  97. sql += $@" and d.产品ID='{cpid}' ";
  98. }
  99. //状态根据日期判断
  100. //switch (zt)
  101. //{
  102. // //未完成
  103. // case 1:
  104. // sql += $" and d.结束日期 >=TO_DATE('{DataBaseBuilder.GetDateTime.ToString("yyyy-MM-dd")}','yyyy-MM-dd') "; break;
  105. // //未开始
  106. // case 2:
  107. // sql += $" and d.开始日期 >TO_DATE('{DataBaseBuilder.GetDateTime.ToString("yyyy-MM-dd")}','yyyy-MM-dd') "; break;
  108. // //进行中
  109. // case 3:
  110. // sql += $" and d.开始日期 <=TO_DATE('{DataBaseBuilder.GetDateTime.ToString("yyyy-MM-dd")}','yyyy-MM-dd') and 结束日期 >=TO_DATE('{DataBaseBuilder.GetDateTime.ToString("yyyy-MM-dd")}','yyyy-MM-dd') "; break;
  111. // //已关闭
  112. // case 4:
  113. // sql += $" and d.结束日期 <TO_DATE('{DataBaseBuilder.GetDateTime.ToString("yyyy-MM-dd")}','yyyy-MM-dd') "; break;
  114. //}
  115. sql += ") Mx) Mx) where 排序 >=:startrow And 排序 <=:endrow";
  116. var dt = SqlBuilder.SqlText(sql).Parameters("startrow", start).Parameters("endrow", end).Select();
  117. for (var i = 0; i < dt.Rows.Count; i++)
  118. {
  119. if (dt.Rows[i]["开始日期"].ToDateTime() <= DataBaseBuilder.GetDateTime)
  120. {
  121. if (dt.Rows[i]["结束日期"].ToDateTime() > DataBaseBuilder.GetDateTime)
  122. {
  123. decimal day = decimal.Parse((dt.Rows[i]["结束日期"].ToDateTime() - dt.Rows[i]["开始日期"].ToDateTime()).Days.ToString()) + decimal.Parse("1.0");
  124. decimal currentday = decimal.Parse((DataBaseBuilder.GetDateTime - dt.Rows[i]["开始日期"].ToDateTime()).Days.ToString() + ".0") + decimal.Parse("1.0");
  125. int count = (currentday / day * 100).ToString().LastIndexOf(".");
  126. dt.Rows[i]["进度"] = (currentday / day * 100).ToString().Substring(0, count + 2);
  127. }
  128. else
  129. {
  130. dt.Rows[i]["进度"] = 100;
  131. }
  132. }
  133. else
  134. {
  135. dt.Rows[i]["进度"] = 0;
  136. }
  137. }
  138. return dt.ToEasyUIGridJson(dt.Rows.Count);
  139. }
  140. public DataTable GetDataById(string id)
  141. {
  142. return SqlBuilder.SqlText("select * from 问题迭代信息 where id=:id").Parameters("ID", id).Select();
  143. }
  144. }
  145. }