PMModuleServiceNew.cs 21 KB

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