PMModuleLogicNew.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PMModuleLogicNew.cs
  5. * 2.功能描述:生产管理服务端业务逻辑
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2015/03/21 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Text;
  14. using Oracle.ManagedDataAccess.Client;
  15. using Dongke.IBOSS.PRD.Basics.BaseResources;
  16. using Dongke.IBOSS.PRD.Basics.DataAccess;
  17. using Dongke.IBOSS.PRD.WCF.DataModels;
  18. using Dongke.IBOSS.PRD.Service.DataModels;
  19. namespace Dongke.IBOSS.PRD.Service.PMModuleLogic
  20. {
  21. /// <summary>
  22. /// 生产管理服务端业务逻辑
  23. /// </summary>
  24. public static class PMModuleLogicNew
  25. {
  26. #region 注浆管理
  27. #region 注浆登记
  28. /// <summary>
  29. /// 取得FPM0101画面(注浆登记)的查询数据
  30. /// </summary>
  31. /// <param name="ids">多个注浆id(用[,]分开)</param>
  32. /// <param name="user">登录用户信息</param>
  33. /// <returns>查询结果</returns>
  34. public static DataSet GetFPM0101SData(string ids, SUserInfo user)
  35. {
  36. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  37. try
  38. {
  39. con.Open();
  40. List<OracleParameter> parameters = new List<OracleParameter>();
  41. StringBuilder sql = new StringBuilder(GetFPM0101SSQL());
  42. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  43. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  44. if (!string.IsNullOrWhiteSpace(ids))
  45. {
  46. ids = "," + ids + ",";
  47. sql.Append(" AND INSTR(:GroutingDailyIDs, ',' || GroutingDailyID || ',') > 0");
  48. parameters.Add(new OracleParameter(":GroutingDailyIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input));
  49. }
  50. sql.Append(" ORDER BY GDD.GroutingLineCode, GDD.GroutingDate, GDD.GroutingDailyID, GDD.GroutingMouldCode");
  51. DataSet ds = con.GetSqlResultToDs(sql.ToString(), parameters.ToArray());
  52. return ds;
  53. }
  54. catch (Exception ex)
  55. {
  56. throw ex;
  57. }
  58. finally
  59. {
  60. if (con.ConnState == ConnectionState.Open)
  61. {
  62. con.Close();
  63. }
  64. }
  65. }
  66. /// <summary>
  67. /// 取得FPM0101画面(注浆登记)的查询数据
  68. /// </summary>
  69. /// <param name="se">查询条件</param>
  70. /// <param name="user">登录用户信息</param>
  71. /// <returns>查询结果</returns>
  72. public static DataSet GetFPM0101SData(FPM0101_SE se, SUserInfo user)
  73. {
  74. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  75. try
  76. {
  77. con.Open();
  78. List<OracleParameter> parameters = new List<OracleParameter>();
  79. StringBuilder sql = new StringBuilder(GetFPM0101SSQL());
  80. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  81. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  82. if (se != null)
  83. {
  84. // 成型线编码
  85. if (!string.IsNullOrEmpty(se.GroutingLineCode))
  86. {
  87. sql.Append(" AND INSTR(GDD.GroutingLineCode, :GroutingLineCode) > 0");
  88. parameters.Add(new OracleParameter(":GroutingLineCode", OracleDbType.NVarchar2, se.GroutingLineCode, ParameterDirection.Input));
  89. }
  90. // 成型线名称
  91. if (!string.IsNullOrEmpty(se.GroutingLineName))
  92. {
  93. sql.Append(" AND INSTR(GDD.GroutingLineName, :GroutingLineName) > 0");
  94. parameters.Add(new OracleParameter(":GroutingLineName", OracleDbType.NVarchar2, se.GroutingLineName, ParameterDirection.Input));
  95. }
  96. // 成型线类别
  97. if (se.GMouldTypeID.HasValue)
  98. {
  99. sql.Append(" AND GD.GMouldTypeID = :GMouldTypeID");
  100. parameters.Add(new OracleParameter(":GMouldTypeID", OracleDbType.Int32, se.GMouldTypeID.Value, ParameterDirection.Input));
  101. }
  102. // 注浆日期-开始
  103. if (se.GroutingDateBegin.HasValue)
  104. {
  105. sql.Append(" AND GDD.GroutingDate >= :GroutingDateBegin");
  106. parameters.Add(new OracleParameter(":GroutingDateBegin", OracleDbType.Date, se.GroutingDateBegin.Value, ParameterDirection.Input));
  107. }
  108. // 注浆日期-结束
  109. if (se.GroutingDateEnd.HasValue)
  110. {
  111. sql.Append(" AND GDD.GroutingDate <= :GroutingDateEnd");
  112. parameters.Add(new OracleParameter(":GroutingDateEnd", OracleDbType.Date, se.GroutingDateEnd.Value, ParameterDirection.Input));
  113. }
  114. // 注浆模具编号
  115. if (!string.IsNullOrEmpty(se.GroutingMouldCode))
  116. {
  117. sql.Append(" AND INSTR(GDD.GroutingMouldCode, :GroutingMouldCode) > 0");
  118. parameters.Add(new OracleParameter(":GroutingMouldCode", OracleDbType.NVarchar2, se.GroutingMouldCode, ParameterDirection.Input));
  119. }
  120. // 产品编号
  121. if (!string.IsNullOrEmpty(se.GoodsCode))
  122. {
  123. sql.Append(" AND INSTR(GDD.GoodsCode, :GoodsCode) > 0");
  124. parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, se.GoodsCode, ParameterDirection.Input));
  125. }
  126. // 产品名称
  127. if (!string.IsNullOrEmpty(se.GoodsName))
  128. {
  129. sql.Append(" AND INSTR(GDD.GoodsName, :GoodsName) > 0");
  130. parameters.Add(new OracleParameter(":GoodsName", OracleDbType.NVarchar2, se.GoodsName, ParameterDirection.Input));
  131. }
  132. // 备注
  133. if (!string.IsNullOrEmpty(se.Remarks))
  134. {
  135. sql.Append(" AND INSTR(GDD.GoodsName, :GoodsName) > 0");
  136. parameters.Add(new OracleParameter(":GoodsName", OracleDbType.NVarchar2, se.GoodsName, ParameterDirection.Input));
  137. }
  138. // 注浆标识
  139. if (!string.IsNullOrEmpty(se.GroutingFlag))
  140. {
  141. sql.Append(" AND GDD.GroutingFlag = :GroutingFlag");
  142. parameters.Add(new OracleParameter(":GroutingFlag", OracleDbType.Char, se.GroutingFlag, ParameterDirection.Input));
  143. }
  144. // 损坯标识
  145. if (!string.IsNullOrEmpty(se.ScrapFlag))
  146. {
  147. sql.Append(" AND GDD.ScrapFlag = :ScrapFlag");
  148. parameters.Add(new OracleParameter(":ScrapFlag", OracleDbType.Char, se.ScrapFlag, ParameterDirection.Input));
  149. }
  150. }
  151. sql.Append(" ORDER BY GDD.GroutingDate, GDD.GroutingLineCode, GDD.GroutingDailyID, GDD.GroutingMouldCode");
  152. DataSet ds = con.GetSqlResultToDs(sql.ToString(), parameters.ToArray());
  153. return ds;
  154. }
  155. catch (Exception ex)
  156. {
  157. throw ex;
  158. }
  159. finally
  160. {
  161. if (con.ConnState == ConnectionState.Open)
  162. {
  163. con.Close();
  164. }
  165. }
  166. }
  167. /// <summary>
  168. /// 获取查询sql
  169. /// </summary>
  170. /// <returns>sql</returns>
  171. private static string GetFPM0101SSQL()
  172. {
  173. string selSql = "SELECT GDD.GroutingDailyDetailID," +
  174. " GDD.GroutingDailyID," +
  175. " GDD.GroutingLineDetailID," +
  176. " GDD.GroutingLineID," +
  177. // 成型线编码
  178. " GDD.GroutingLineCode," +
  179. // 成型线名称
  180. " GDD.GroutingLineName," +
  181. // 注浆日期
  182. " GDD.GroutingDate," +
  183. // 成型工号
  184. " GDD.UserCode," +
  185. // 产品编码
  186. " GDD.GoodsCode," +
  187. // 产品名称 20210728 modify lsq goodsname不取TP_PM_GroutingDailyDetail,取TP_MST_GOODS的
  188. " G.GoodsName," +
  189. // 注浆线模具编码
  190. " GDD.GroutingMouldCode," +
  191. // 模具状态
  192. " GMS.GMouldStatusName," +
  193. // 注浆标识
  194. " GDD.GroutingFlag," +
  195. // 未注浆原因
  196. " DD.DictionaryValue AS NoGroutingRreason," +
  197. // 注浆次数
  198. " GDD.GroutingCount," +
  199. // 损坯标识
  200. " GDD.ScrapFlag," +
  201. // 备注
  202. " GDD.Remarks," +
  203. // 成型线类型
  204. " GMT.GMouldTypeName," +
  205. // 绑定条码" +
  206. " GP.BarCode," +
  207. // 创建时间
  208. " GDD.CreateTime," +
  209. // 创建工号
  210. " U.UserName AS Createuser" +
  211. // 注浆日报明细表
  212. " FROM TP_PM_GroutingDailyDetail GDD" +
  213. //20210728 modify lsq goodsname不取TP_PM_GroutingDailyDetail,取TP_MST_GOODS的
  214. //BEGIN
  215. " INNER JOIN TP_MST_Goods G" +
  216. " ON G.GoodsID = GDD.GoodsID" +
  217. //END
  218. // 注浆日报
  219. " INNER JOIN TP_PM_GroutingDaily GD" +
  220. " ON GD.GroutingDailyID = GDD.GroutingDailyID" +
  221. // 成型线类型
  222. " INNER JOIN TP_MST_GMouldType GMT" +
  223. " ON GD.GMouldTypeID = GMT.GMouldTypeID" +
  224. // 注浆条码
  225. " LEFT JOIN TP_PM_GroutingProduct GP" +
  226. " ON GP.GroutingDailyDetailID = GDD.GroutingDailyDetailID" +
  227. // 模具状态
  228. " INNER JOIN TP_SYS_GMouldStatus GMS" +
  229. " ON GMS.GMouldStatusID = GDD.GMouldStatus" +
  230. // 未注浆原因
  231. " LEFT JOIN TP_MST_DataDictionary DD" +
  232. " ON DD.DictionaryID = GDD.NoGroutingRreason" +
  233. // 创建工号
  234. " INNER JOIN TP_MST_User U" +
  235. " ON U.UserID = GDD.CreateUserID" +
  236. // 账套
  237. " WHERE GDD.AccountID = :AccountID" +
  238. " AND GDD.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  239. // 成型线操作权限
  240. " AND EXISTS (SELECT UP.PurviewID" +
  241. " FROM TP_MST_UserPurview UP" +
  242. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateGroutingLine + "'" +
  243. " AND UP.PurviewID = GDD.GroutingLineID" +
  244. " AND UP.UserId = :UPUserId)";
  245. return selSql;
  246. }
  247. #endregion 注浆登记
  248. #endregion 注浆管理
  249. }
  250. }