PMModuleServiceNew.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PMModuleService.cs
  5. * 2.功能描述:生产管理模块WCF服务
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2015/03/26 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.ServiceModel;
  14. using System.ServiceModel.Activation;
  15. using Dongke.IBOSS.PRD.Service.PMModuleService;
  16. using Dongke.IBOSS.PRD.WCF.Contracts;
  17. using Dongke.IBOSS.PRD.WCF.DataModels;
  18. namespace Dongke.IBOSS.PRD.WCF.Services
  19. {
  20. /// <summary>
  21. /// 生产管理模块WCF服务
  22. /// </summary>
  23. /// 服务实现类,继承服务声明接口
  24. /// 该标签声明该服务可以在ASP.NET下运行
  25. [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  26. [ServiceBehavior(ConfigurationName = "PMModuleServiceNew",
  27. InstanceContextMode = InstanceContextMode.PerCall,
  28. ConcurrencyMode = ConcurrencyMode.Multiple,
  29. UseSynchronizationContext = false)]
  30. public class PMModuleServiceNew : ServicesBase, IPMModuleNew
  31. {
  32. #region 构造函数
  33. /// <summary>
  34. /// 构造函数
  35. /// </summary>
  36. public PMModuleServiceNew()
  37. : base()
  38. {
  39. }
  40. #endregion
  41. #region 注浆管理
  42. #region 注浆登记一览
  43. /// <summary>
  44. /// 取得FPM0101画面(注浆登记)的初始化数据
  45. /// </summary>
  46. /// <returns>初始化数据</returns>
  47. public ServiceResultEntity GetFPM0101IData()
  48. {
  49. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0101IData(this.SUserInfo));
  50. }
  51. /// <summary>
  52. /// 取得FPM0101画面(注浆登记)的查询数据
  53. /// </summary>
  54. /// <param name="se">查询条件</param>
  55. /// <returns>查询结果</returns>
  56. public ServiceResultEntity GetFPM0101SData(FPM0101_SE se)
  57. {
  58. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0101SData(this.SUserInfo, se));
  59. }
  60. /// <summary>
  61. /// 取得FPM0101画面(注浆登记)的查询数据
  62. /// </summary>
  63. /// <param name="ids">新建注浆登记的id(多个用【,】隔开)</param>
  64. /// <returns>查询结果</returns>
  65. public ServiceResultEntity GetFPM0101NSData(string ids)
  66. {
  67. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0101SData(this.SUserInfo, ids));
  68. }
  69. #endregion 注浆登记
  70. #region 注浆登记
  71. /// <summary>
  72. /// 取得FPM0102画面(注浆登记)的成型线数据
  73. /// </summary>
  74. /// <param name="groutingDate">注浆日期(null:当天)</param>
  75. /// <param name="groutingIDs">成型线ID(多个用【,】隔开;null:全部注浆)</param>
  76. /// <returns>
  77. /// 成型线数据
  78. /// OtherStatus = 1:注浆日期大于账务日期
  79. /// OtherStatus = 2:没有可注浆的成型线
  80. /// OtherStatus = 3:没有可注浆的模具
  81. /// </returns>
  82. public ServiceResultEntity GetFPM0102_GroutingLine(DateTime? groutingDate, string groutingIDs)
  83. {
  84. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0102_GroutingLine(this.SUserInfo, groutingDate, groutingIDs));
  85. }
  86. /// <summary>
  87. /// 取得FPM0102画面(注浆登记)的初始化数据
  88. /// </summary>
  89. /// <param name="groutingDailyID">注浆日报ID</param>
  90. /// <returns>
  91. /// 初始化数据
  92. /// 注浆数据
  93. /// OtherStatus = 1:没有可编辑的注浆信息
  94. /// OtherStatus = 2:没有可编辑的注浆明细信息
  95. /// </returns>
  96. public ServiceResultEntity GetFPM0102IData(int groutingDailyID)
  97. {
  98. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0102IData(this.SUserInfo, groutingDailyID));
  99. }
  100. /// <summary>
  101. /// 取得FPM0104画面(选择成型线)的查询数据
  102. /// </summary>
  103. /// <param name="se">查询条件</param>
  104. /// <returns>查询结果</returns>
  105. public ServiceResultEntity GetFPM0104SData(FPM0104_SE se)
  106. {
  107. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0104SData(this.SUserInfo, se));
  108. }
  109. /// <summary>
  110. /// 保存FPM0102画面(注浆登记)的注浆数据
  111. /// </summary>
  112. /// <param name="groutingDate">注浆日期(null:编辑;非null:新建)</param>
  113. /// <param name="groutingInfo">注浆数据</param>
  114. /// <returns>保存结果
  115. /// OtherStatus = 1: 没有以下成型线的操作权限
  116. /// OtherStatus = 2: 以下成型线已做过注浆
  117. /// OtherStatus = 3: 以下成型工号已被停用
  118. /// OtherStatus = 4: 补注浆,成型工号没有班次配置
  119. /// OtherStatus = 5: 以下成型工号没有配置员工关联
  120. /// </returns>
  121. public ServiceResultEntity SetFPM0102Data(DateTime? groutingDate, DataSet groutingInfo)
  122. {
  123. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SetFPM0102Data(this.SUserInfo, groutingDate, groutingInfo));
  124. }
  125. /// <summary>
  126. /// 取得FPM0105画面(选择能绑定条码的注浆登记)的查询数据
  127. /// </summary>s
  128. /// <param name="se">查询条件</param>
  129. /// <returns>查询结果</returns>
  130. public ServiceResultEntity GetFPM0105SData(FPM0104_SE se)
  131. {
  132. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0105SData(this.SUserInfo, se));
  133. }
  134. #endregion 注浆登记
  135. #region 条码绑定
  136. /// <summary>
  137. /// 取得FPM0103画面(绑定条码)的注浆数据
  138. /// </summary>
  139. /// <param name="groutingDailyID">注浆日报ID</param>
  140. /// <returns>
  141. /// 注浆数据
  142. /// OtherStatus = 1:没有可编辑的注浆信息
  143. /// OtherStatus = 2:没有可编辑的注浆明细信息
  144. /// </returns>
  145. public ServiceResultEntity GetFPM0103Data(int groutingDailyID)
  146. {
  147. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0103Data(this.SUserInfo, groutingDailyID));
  148. }
  149. /// <summary>
  150. /// 保存FPM0103画面(绑定条码)的注浆数据
  151. /// </summary>
  152. /// <param name="groutingInfo">注浆数据</param>
  153. /// <returns>保存结果</returns>
  154. public ServiceResultEntity SetFPM0103Data(DataSet groutingInfo)
  155. {
  156. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SetFPM0103Data(this.SUserInfo, groutingInfo));
  157. }
  158. #endregion 条码绑定
  159. #endregion 注浆管理
  160. #region 条码管理
  161. #region 条码变更
  162. /// <summary>
  163. /// 取得FPM0202画面(条码变更用条码查询)的查询数据
  164. /// </summary>
  165. /// <param name="se">查询条件</param>
  166. /// <returns>查询结果</returns>
  167. public ServiceResultEntity GetFPM0202SData(FPM0202_SE se)
  168. {
  169. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0202SData(this.SUserInfo, se));
  170. }
  171. /// <summary>
  172. /// 取得FPM0203画面(条码变更)的查询数据
  173. /// </summary>
  174. /// <param name="barcode">条码</param>
  175. /// <returns>查询结果</returns>
  176. public ServiceResultEntity GetFPM0203NSData(string barcode)
  177. {
  178. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0203SData(this.SUserInfo, barcode));
  179. }
  180. /// <summary>
  181. /// 取得FPM0203画面(条码变更)的查询数据
  182. /// </summary>
  183. /// <param name="se">查询条件</param>
  184. /// <returns>查询结果</returns>
  185. public ServiceResultEntity GetFPM0203SData(FPM0203_SE se)
  186. {
  187. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFPM0203SData(this.SUserInfo, se));
  188. }
  189. /// <summary>
  190. /// 更换条码
  191. /// </summary>
  192. /// <param name="barcode">原条码</param>
  193. /// <param name="newBarcode">新条码</param>
  194. /// <param name="remarks">备注</param>
  195. /// <returns>操作结果</returns>
  196. public ServiceResultEntity SetFPM0201Data(string barcode, string newBarcode, string remarks, string groutingUserCode, string goodsCode)
  197. {
  198. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SetFPM0201Data(this.SUserInfo, barcode, newBarcode, remarks, groutingUserCode, goodsCode));
  199. }
  200. #endregion 条码变更
  201. #endregion 条码管理
  202. #region 请求处理
  203. /// <summary>
  204. /// 处理请求
  205. /// </summary>
  206. /// <param name="cre"></param>
  207. /// <returns></returns>
  208. public ServiceResultEntity HandleRequest(ClientRequestEntity cre)
  209. {
  210. try
  211. {
  212. #region 生产数据查询(干补)
  213. if (cre.NameSpace == "ProductionData")
  214. {
  215. // 干补一览表
  216. if ("GetProductionData_8" == cre.Name)
  217. {
  218. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetProductionData8(this.SUserInfo, cre));
  219. }
  220. return null;
  221. }
  222. #endregion
  223. #region 注浆盘点
  224. if (cre.NameSpace == "GBChecked")
  225. {
  226. // seachbox
  227. if ("seachbox_GetList" == cre.Name)
  228. {
  229. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetGBCheckedList(this.SUserInfo, cre));
  230. }
  231. else if ("UpdateGBChecked" == cre.Name)
  232. {
  233. return ServiceInvoker.Invoke(this, () => PMModuleLogic.UpdateGBChecked(this.SUserInfo, cre));
  234. }
  235. else if ("GetGBCheckedInfoForUpdate" == cre.Name)
  236. {
  237. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetGBCheckedInfoForUpdate(this.SUserInfo, cre));
  238. }
  239. else if ("SaveGBChecked" == cre.Name)
  240. {
  241. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SaveGBChecked(this.SUserInfo, cre));
  242. }
  243. else if ("DisableGBChecked" == cre.Name)
  244. {
  245. return ServiceInvoker.Invoke(this, () => PMModuleLogic.DisableGBChecked(this.SUserInfo, cre));
  246. }
  247. else if ("GetAllGBCheckList" == cre.Name)
  248. {
  249. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetAllGBCheckList(this.SUserInfo, cre));
  250. }
  251. else if ("GetAllGBCheckDetail" == cre.Name)
  252. {
  253. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetAllGBCheckDetail(this.SUserInfo, cre));
  254. }
  255. else if ("SaveClearGBChecked" == cre.Name)
  256. {
  257. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SaveClearGBChecked(this.SUserInfo, cre));
  258. }
  259. // 盘点选中条码
  260. else if ("GBCheckBarcodes" == cre.Name)
  261. {
  262. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GBCheckBarcodes(this.SUserInfo, cre));
  263. }
  264. return null;
  265. }
  266. // 在产盘点
  267. if (cre.NameSpace == "InChecked")
  268. {
  269. // 盘点选中条码
  270. if ("CheckBarcodes" == cre.Name)
  271. {
  272. return ServiceInvoker.Invoke(this, () => PMModuleLogic.CheckBarcodes(this.SUserInfo, cre));
  273. }
  274. }
  275. #endregion
  276. #region 生产管理
  277. // 集中采集的结束工序(包装装板)验证参数(商标、型号、数量)
  278. if (cre.NameSpace == "FinishedLoadingCar")
  279. {
  280. // 包装装板验证
  281. if ("GetSetting" == cre.Name)
  282. {
  283. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetFinishedLoadingCarSetting(this.SUserInfo, cre));
  284. }
  285. return null;
  286. }
  287. #endregion
  288. #region 成型报损
  289. if (cre.NameSpace == "GroutingScrapProduct")
  290. {
  291. // 查询注浆日报明细表
  292. if ("GetGroutingDailyDetail" == cre.Name)
  293. {
  294. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetGroutingDailyDetail(cre, this.SUserInfo));
  295. }
  296. // 查询成型报损
  297. else if ("GetGroutingScrapProduct" == cre.Name)
  298. {
  299. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetGroutingScrapProduct(cre, this.SUserInfo));
  300. }
  301. // 保存成型报损
  302. else if ("SaveGroutingScrapProduct" == cre.Name)
  303. {
  304. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SaveGroutingScrapProduct(cre, this.SUserInfo));
  305. }
  306. // 审核成型报损
  307. else if ("AuditGroutingScrapProduct" == cre.Name)
  308. {
  309. return ServiceInvoker.Invoke(this, () => PMModuleLogic.AuditGroutingScrapProduct(cre, this.SUserInfo));
  310. }
  311. // 撤销成型报损
  312. else if ("ReverseGroutingScrapProduct" == cre.Name)
  313. {
  314. return ServiceInvoker.Invoke(this, () => PMModuleLogic.ReverseGroutingScrapProduct(cre, this.SUserInfo));
  315. }
  316. // 开模报损
  317. else if ("SaveScrapKm" == cre.Name)
  318. {
  319. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SaveScrapKm(cre, this.SUserInfo));
  320. }
  321. return null;
  322. }
  323. #endregion
  324. #region 产品挂起
  325. // 一览页面查询
  326. if (cre.NameSpace == "ProductSuspend")
  327. {
  328. if (cre.Name == "GetAllSuspendProduct")
  329. {
  330. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetAllSuspendProduct(this.SUserInfo, cre));
  331. }
  332. }
  333. // 挂起、撤销
  334. if (cre.NameSpace == "F_PM_3002")
  335. {
  336. // 获取可以挂起的工序(干补、装车、入窑、出窑)工序不能挂起
  337. if (cre.Name == "GetSuspendProcedure")
  338. {
  339. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetSuspendProcedure(SUserInfo));
  340. }
  341. // 验证挂起条码
  342. if (cre.Name == "CheckSuspendBarcode")
  343. {
  344. return ServiceInvoker.Invoke(this, () => PMModuleLogic.CheckSuspendBarcode(SUserInfo, cre.Properties["Barcode"] + ""));
  345. }
  346. // 查询挂起条码
  347. if (cre.Name == "GetSuspendProduct")
  348. {
  349. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetSuspendProduct(SUserInfo, cre.Properties["Barcode"] + ""));
  350. }
  351. // 挂起条码
  352. if (cre.Name == "SaveSuspendProduct")
  353. {
  354. List<int> gids = new List<int>();
  355. List<int> pids = new List<int>();
  356. foreach (DataRow row in cre.Data.Tables[0].Rows)
  357. {
  358. gids.Add(Convert.ToInt32(row["groutingdailydetailid"]));
  359. }
  360. string[] procedureIDs = (cre.Properties["ProcedureIDS"] + "").Split(',');
  361. foreach (string s in procedureIDs)
  362. {
  363. pids.Add(Convert.ToInt32(s));
  364. }
  365. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SaveSuspendProduct(SUserInfo, pids.ToArray(), gids.ToArray(), cre.Properties["Remarks"] + ""));
  366. }
  367. // 撤销挂起条码
  368. if (cre.Name == "DeleteSuspendProduct")
  369. {
  370. List<int> gids = new List<int>();
  371. List<int> pids = new List<int>();
  372. foreach (DataRow row in cre.Data.Tables[0].Rows)
  373. {
  374. gids.Add(Convert.ToInt32(row["groutingdailydetailid"]));
  375. pids.Add(Convert.ToInt32(row["SuspendProcedureID"]));
  376. }
  377. return ServiceInvoker.Invoke(this, () => PMModuleLogic.DeleteSuspendProduct(SUserInfo, pids.ToArray(), gids.ToArray()));
  378. }
  379. }
  380. #endregion
  381. #region 品保抽查
  382. if (cre.NameSpace == "QASpotCheck")
  383. {
  384. if (cre.Name == "GetAllQASpotCheck")
  385. {
  386. return ServiceInvoker.Invoke(this, () => PMModuleLogic.GetAllQASpotCheckForPC(this.SUserInfo, cre));
  387. }
  388. if (cre.Name == "CheckQASpotCheck")
  389. {
  390. return ServiceInvoker.Invoke(this, () => PMModuleLogic.CheckQASpotCheck(this.SUserInfo, cre.Request + ""));
  391. }
  392. if (cre.Name == "SaveQASpotCheck")
  393. {
  394. return ServiceInvoker.Invoke(this, () => PMModuleLogic.SaveQASpotCheck(this.SUserInfo, cre.Properties));
  395. }
  396. return null;
  397. }
  398. #endregion
  399. #region 产成品交接
  400. // 变更商标(整板)
  401. if (cre.NameSpace == "F_PM_2405")
  402. {
  403. // 条码验证,返回条码数据
  404. if (cre.Name == "FinishedHandoverBarcode")
  405. {
  406. string barcode = cre.Properties["Barcode"] + "";
  407. int handoverFlag = Convert.ToInt32(cre.Properties["HandoverFlag"] + "");
  408. return ServiceInvoker.Invoke(this, () =>
  409. Service.PMModuleLogic.PMModuleLogic.FinishedHandoverBarcode(barcode, SUserInfo, handoverFlag));
  410. }
  411. // 变更商标(整板)
  412. if (cre.Name == "SetFinishedLogo")
  413. {
  414. ServiceResultEntity sre = new ServiceResultEntity();
  415. string[] barcodes = (cre.Properties["Barcodes"] + "").Split(',');
  416. int logoID = Convert.ToInt32(cre.Properties["LogoID"] + "");
  417. sre.Result = ServiceInvoker.Invoke(this, () =>
  418. Service.PMModuleLogic.PMModuleLogicDAL.SetFinishedLogo(barcodes, logoID, SUserInfo));
  419. return sre;
  420. }
  421. }
  422. // 变更单号(整板)
  423. if (cre.NameSpace == "F_PM_2406")
  424. {
  425. // 条码验证,返回条码数据
  426. if (cre.Name == "FinishedHandoverBarcode")
  427. {
  428. string barcode = cre.Properties["Barcode"] + "";
  429. int handoverFlag = Convert.ToInt32(cre.Properties["HandoverFlag"] + "");
  430. return ServiceInvoker.Invoke(this, () =>
  431. Service.PMModuleLogic.PMModuleLogic.FinishedHandoverBarcode(barcode, SUserInfo, handoverFlag));
  432. }
  433. // 变更单号(整板)
  434. if (cre.Name == "SetHandoveredOrder")
  435. {
  436. ServiceResultEntity sre = new ServiceResultEntity();
  437. string[] barcodes = (cre.Properties["Barcodes"] + "").Split(',');
  438. int orderID = Convert.ToInt32(cre.Properties["OrderID"] + "");
  439. sre.Result = ServiceInvoker.Invoke(this, () =>
  440. Service.PMModuleLogic.PMModuleLogicDAL.SetHandoveredOrder(barcodes, orderID, SUserInfo));
  441. return sre;
  442. }
  443. }
  444. #endregion
  445. #region 半检返修登记
  446. if (cre.NameSpace == "PM_SemiRework")
  447. {
  448. return null;
  449. }
  450. #endregion
  451. #region 窑车漏扫补件
  452. if (cre.NameSpace == "F_PM_0504")
  453. {
  454. // 验证窑车编码是否存在
  455. if (cre.Name == "CheckKilnCar")
  456. {
  457. return PMModuleLogic.CheckKilnCar(cre, SUserInfo);
  458. }
  459. // 验证窑车烧成批次号是否存在 和 是否能补漏扫
  460. if (cre.Name == "CheckKilnCarBatchNo")
  461. {
  462. return PMModuleLogic.CheckKilnCarBatchNo(cre, SUserInfo);
  463. }
  464. // 窑车漏扫补件
  465. if (cre.Name == "SetKilnCarMissing")
  466. {
  467. return PMModuleLogic.SetKilnCarMissing(cre, SUserInfo);
  468. }
  469. }
  470. #endregion
  471. return null;
  472. }
  473. catch (Exception ex)
  474. {
  475. throw ex;
  476. }
  477. }
  478. #endregion
  479. }
  480. }