You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1015 lines
43 KiB

  1. package com.spring.ifs.bean;
  2. import com.alibaba.fastjson.JSON;
  3. import com.spring.ifs.api.IfsServer;
  4. import com.spring.ifs.api.RoutingApi;
  5. import com.spring.ifs.api.RoutingApiTest;
  6. import com.spring.ifs.data.*;
  7. import com.spring.modules.part.entity.APIEntity.RoutingIfsGuideLine;
  8. import com.spring.modules.part.entity.APIEntity.RoutingIfsHeader;
  9. import com.spring.modules.part.entity.APIEntity.RoutingIfsItem;
  10. import com.spring.modules.part.entity.APIEntity.RoutingIfsTool;
  11. import ifs.fnd.ap.APException;
  12. import ifs.fnd.ap.Server;
  13. import org.slf4j.Logger;
  14. import org.slf4j.LoggerFactory;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Component;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Map;
  20. import java.util.function.Function;
  21. import java.util.stream.Collectors;
  22. /**
  23. * @description: 处理 Routing的
  24. * @author LR
  25. * @date 2024/12/9 15:44
  26. * @version 1.0
  27. */
  28. @Component
  29. public class RoutingServiceBeanTest {
  30. @Autowired
  31. private IfsServer ifsServer;
  32. private static final Logger logger = LoggerFactory.getLogger(RoutingServiceBean.class);
  33. /**
  34. * @description: 查询Routing Header
  35. * @author LR
  36. * @date 2024/12/12 15:49
  37. * @version 1.0
  38. */
  39. public Map<String, String> getRoutingHeader(RoutingHeader inData) {
  40. logger.info("Routing Header查询参数:"+JSON.toJSONString(inData));
  41. //查询的参数
  42. Map<String, String> returnMap = new HashMap<>();
  43. String username = inData.getIfsUsername();
  44. String password = inData.getIfsPassword();
  45. String contract = inData.getContract();
  46. String partNo = inData.getPartNo();
  47. String routingRevision = inData.getRoutingRevision();
  48. String routingType = inData.getRoutingType();
  49. //获取连接
  50. try{
  51. Server srv = ifsServer.getIfsServer(username, password);
  52. //查询相关
  53. Map<String, String> routingMap = RoutingApiTest.getRoutingHeader(srv, contract, partNo, routingRevision, routingType);
  54. //判断是否需要插入到ifs
  55. if(routingMap == null || routingMap.size() == 0) {
  56. throw new APException("Routing Header不存在!");
  57. }
  58. //设置ifs 信息
  59. inData.setIfsRowId(routingMap.get("IFSROWID"));
  60. inData.setIfsRowVersion(routingMap.get("IFSROWVERSION"));
  61. returnMap.put("resultCode", "200");
  62. returnMap.put("obj", JSON.toJSONString(inData));
  63. } catch(APException e){
  64. returnMap.put("resultCode", "400");
  65. returnMap.put("resultMsg", e.getMessage());
  66. }
  67. //打印日志
  68. logger.info("Routing Header查询:"+JSON.toJSONString(inData));
  69. //返回结果集
  70. return returnMap;
  71. }
  72. /**
  73. * @description: Routing Header新增
  74. * @author LR
  75. * @date 2024/12/12 15:52
  76. * @version 1.0
  77. */
  78. public Map<String, String> syncRoutingHeader(RoutingHeader inData) {
  79. logger.info("Routing新增开始:"+JSON.toJSONString(inData));
  80. //查询的参数
  81. Map<String, String> returnMap = new HashMap<>();
  82. String username = inData.getIfsUsername();
  83. String password = inData.getIfsPassword();
  84. String contract = inData.getContract();
  85. String partNo = inData.getPartNo();
  86. String routingRevision = inData.getRoutingRevision();
  87. String routingType = inData.getRoutingType();
  88. //获取连接
  89. try{
  90. Server srv = ifsServer.getIfsServer(username, password);
  91. //查询相关
  92. Map<String, String> routingMap = RoutingApiTest.getRoutingHeader(srv, contract, partNo, routingRevision, routingType);
  93. //判断是否需要插入到ifs
  94. if(routingMap != null && routingMap.size() > 0) {
  95. throw new APException("Routing已存在!");
  96. }
  97. //调用api
  98. Map<String, String> resultMap = RoutingApiTest.insertRoutingHeader(srv, inData);
  99. //设置ifs 信息
  100. inData.setIfsRowId(resultMap.get("OBJID"));
  101. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  102. returnMap.put("resultCode", "200");
  103. returnMap.put("obj", JSON.toJSONString(inData));
  104. } catch(APException e){
  105. returnMap.put("resultCode", "400");
  106. returnMap.put("resultMsg", e.getMessage());
  107. }
  108. //打印日志
  109. logger.info("Routing新增结束:"+JSON.toJSONString(inData));
  110. //返回结果集
  111. return returnMap;
  112. }
  113. /**
  114. * @description: Routing Header修改
  115. * @author LR
  116. * @date 2024/12/12 15:55
  117. * @version 1.0
  118. */
  119. public Map<String, String> modifyRoutingHeader(RoutingHeader inData) {
  120. logger.info("Routing修改开始:"+JSON.toJSONString(inData));
  121. //查询的参数
  122. Map<String, String> returnMap = new HashMap<>();
  123. String username = inData.getIfsUsername();
  124. String password = inData.getIfsPassword();
  125. String contract = inData.getContract();
  126. String partNo = inData.getPartNo();
  127. String routingRevision = inData.getRoutingRevision();
  128. String routingType = inData.getRoutingType();
  129. //获取连接
  130. try{
  131. Server srv = ifsServer.getIfsServer(username, password);
  132. //查询相关
  133. Map<String, String> routingMap = RoutingApiTest.getRoutingHeader(srv, contract, partNo, routingRevision, routingType);
  134. //判断是否需要插入到ifs
  135. if(routingMap == null || routingMap.size() == 0) {
  136. throw new APException("Routing不存在!");
  137. }
  138. //设置ifs 信息
  139. inData.setIfsRowId(routingMap.get("IFSROWID"));
  140. inData.setIfsRowVersion(routingMap.get("IFSROWVERSION"));
  141. Map<String, String> resultMap = RoutingApiTest.modifyRoutingHeader(srv, inData);
  142. //设置ifs 信息
  143. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  144. returnMap.put("resultCode", "200");
  145. returnMap.put("obj", JSON.toJSONString(inData));
  146. } catch(APException e){
  147. returnMap.put("resultCode", "400");
  148. returnMap.put("resultMsg", e.getMessage());
  149. }
  150. //打印日志
  151. logger.info("Routing修改结束:"+JSON.toJSONString(inData));
  152. //返回结果集
  153. return returnMap;
  154. }
  155. /**
  156. * @description: Routing Header删除
  157. * @author LR
  158. * @date 2024/12/12 15:58
  159. * @version 1.0
  160. */
  161. public Map<String, String> removeRoutingHeader(RoutingHeader inData) {
  162. logger.info("Routing Header删除开始:"+JSON.toJSONString(inData));
  163. //查询的参数
  164. Map<String, String> returnMap = new HashMap<>();
  165. String username = inData.getIfsUsername();
  166. String password = inData.getIfsPassword();
  167. String contract = inData.getContract();
  168. String partNo = inData.getPartNo();
  169. String routingRevision = inData.getRoutingRevision();
  170. String routingType = inData.getRoutingType();
  171. //获取连接
  172. try{
  173. Server srv = ifsServer.getIfsServer(username, password);
  174. //查询相关
  175. Map<String, String> routingMap = RoutingApiTest.getRoutingHeader(srv, contract, partNo, routingRevision, routingType);
  176. //判断是否需要插入到ifs
  177. if(routingMap == null || routingMap.size() == 0) {
  178. throw new APException("Routing不存在!");
  179. }
  180. //设置ifs 信息
  181. inData.setIfsRowId(routingMap.get("IFSROWID"));
  182. inData.setIfsRowVersion(routingMap.get("IFSROWVERSION"));
  183. RoutingApiTest.removeRoutingHeader(srv, inData);
  184. returnMap.put("resultCode", "200");
  185. returnMap.put("obj", JSON.toJSONString(inData));
  186. } catch(APException e){
  187. returnMap.put("resultCode", "400");
  188. returnMap.put("resultMsg", e.getMessage());
  189. }
  190. //打印日志
  191. logger.info("Routing Header 删除结束:"+JSON.toJSONString(inData));
  192. //返回结果集
  193. return returnMap;
  194. }
  195. /**
  196. * @description: 查询Routing Alternative
  197. * @author LR
  198. * @date 2024/12/12 16:59
  199. * @version 1.0
  200. */
  201. public Map<String, String> getRoutingAlternative(RoutingAlternative inData) {
  202. logger.info("Routing Alternative 查询开始:"+JSON.toJSONString(inData));
  203. //公共参数
  204. Map<String, String> returnMap = new HashMap<>();
  205. String username = inData.getIfsUsername();
  206. String password = inData.getIfsPassword();
  207. String contract = inData.getContract();
  208. String partNo = inData.getPartNo();
  209. String routingRevision = inData.getRoutingRevision();
  210. String routingType = inData.getRoutingType();
  211. String alternativeNo = inData.getAlternativeNo();
  212. try{
  213. Server srv = ifsServer.getIfsServer(username, password);
  214. //查询Alternative信息
  215. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  216. //判断是否需要插入到ifs
  217. if(alternativeMap == null || alternativeMap.size() == 0) {
  218. throw new APException("Routing Alternative 不存在!");
  219. }
  220. //设置ifs 信息
  221. inData.setIfsRowId(alternativeMap.get("IFSROWID"));
  222. inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
  223. returnMap.put("resultCode", "200");
  224. returnMap.put("obj", JSON.toJSONString(inData));
  225. } catch(APException e){
  226. returnMap.put("resultCode", "400");
  227. returnMap.put("resultMsg", e.getMessage());
  228. }
  229. //打印日志
  230. logger.info("Routing Alternative 查询结束:"+JSON.toJSONString(inData));
  231. //返回结果集
  232. return returnMap;
  233. }
  234. /**
  235. * @description: 插入Routing Alternative
  236. * @author LR
  237. * @date 2024/12/12 17:03
  238. * @version 1.0
  239. */
  240. public Map<String, String> syncRoutingAlternative(RoutingAlternative inData) {
  241. logger.info("Routing Alternative 新增开始:"+JSON.toJSONString(inData));
  242. //公共参数
  243. Map<String, String> returnMap = new HashMap<>();
  244. String username = inData.getIfsUsername();
  245. String password = inData.getIfsPassword();
  246. String contract = inData.getContract();
  247. String partNo = inData.getPartNo();
  248. String routingRevision = inData.getRoutingRevision();
  249. String routingType = inData.getRoutingType();
  250. String alternativeNo = inData.getAlternativeNo();
  251. try{
  252. //获取连接
  253. Server srv = ifsServer.getIfsServer(username, password);
  254. //查询Alternative信息
  255. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  256. //判断是否需要插入到ifs
  257. if(alternativeMap != null && alternativeMap.size() > 0) {
  258. throw new APException("Routing Alternative 已存在!");
  259. }
  260. //调用新增api
  261. Map<String, String> resultMap = RoutingApiTest.insertRoutingAlternative(srv, inData);
  262. //设置ifs 信息
  263. inData.setIfsRowId(resultMap.get("OBJID"));
  264. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  265. returnMap.put("resultCode", "200");
  266. returnMap.put("obj", JSON.toJSONString(inData));
  267. } catch(APException e){
  268. returnMap.put("resultCode", "400");
  269. returnMap.put("resultMsg", e.getMessage());
  270. }
  271. //打印日志
  272. logger.info("Routing Alternative 新增结束:"+JSON.toJSONString(inData));
  273. //返回结果集
  274. return returnMap;
  275. }
  276. /**
  277. * @description: 修改Routing Alternative
  278. * @author LR
  279. * @date 2024/12/12 17:06
  280. * @version 1.0
  281. */
  282. public Map<String, String> modifyRoutingAlternative(RoutingAlternative inData) {
  283. logger.info("Routing Alternative 修改开始:"+JSON.toJSONString(inData));
  284. //公共参数
  285. Map<String, String> returnMap = new HashMap<>();
  286. String username = inData.getIfsUsername();
  287. String password = inData.getIfsPassword();
  288. String contract = inData.getContract();
  289. String partNo = inData.getPartNo();
  290. String routingRevision = inData.getRoutingRevision();
  291. String routingType = inData.getRoutingType();
  292. String alternativeNo = inData.getAlternativeNo();
  293. //获取连接
  294. try{
  295. Server srv = ifsServer.getIfsServer(username, password);
  296. //查询Alternative信息
  297. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  298. //判断是否需要插入到ifs
  299. if(alternativeMap == null || alternativeMap.size() == 0) {
  300. throw new APException("Routing Alternative不存在!");
  301. }
  302. //设置ifs 信息
  303. inData.setIfsRowId(alternativeMap.get("IFSROWID"));
  304. inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
  305. //调用api
  306. Map<String, String> resultMap = RoutingApiTest.modifyRoutingAlternative(srv, inData);
  307. //设置ifs 信息
  308. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  309. returnMap.put("resultCode", "200");
  310. returnMap.put("obj", JSON.toJSONString(inData));
  311. } catch(APException e){
  312. returnMap.put("resultCode", "400");
  313. returnMap.put("resultMsg", e.getMessage());
  314. }
  315. //打印日志
  316. logger.info("Routing Alternative 修改结束:"+JSON.toJSONString(inData));
  317. //返回结果集
  318. return returnMap;
  319. }
  320. /**
  321. * @description: 删除Routing Alternative
  322. * @author LR
  323. * @date 2024/12/12 17:07
  324. * @version 1.0
  325. */
  326. public Map<String, String> removeRoutingAlternative(RoutingAlternative inData) {
  327. logger.info("Routing Alternative 删除开始:"+JSON.toJSONString(inData));
  328. //公共参数
  329. Map<String, String> returnMap = new HashMap<>();
  330. String username = inData.getIfsUsername();
  331. String password = inData.getIfsPassword();
  332. String contract = inData.getContract();
  333. String partNo = inData.getPartNo();
  334. String routingRevision = inData.getRoutingRevision();
  335. String routingType = inData.getRoutingType();
  336. String alternativeNo = inData.getAlternativeNo();
  337. //获取连接
  338. try{
  339. Server srv = ifsServer.getIfsServer(username, password);
  340. //查询Alternative信息
  341. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  342. //判断是否需要插入到ifs
  343. if(alternativeMap == null || alternativeMap.size() == 0) {
  344. throw new APException("Routing Alternative不存在!");
  345. }
  346. //设置ifs 信息
  347. inData.setIfsRowId(alternativeMap.get("IFSROWID"));
  348. inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
  349. //调用api
  350. RoutingApiTest.removeRoutingAlternative(srv, inData);
  351. returnMap.put("resultCode", "200");
  352. returnMap.put("obj", JSON.toJSONString(inData));
  353. } catch(APException e){
  354. returnMap.put("resultCode", "400");
  355. returnMap.put("resultMsg", e.getMessage());
  356. }
  357. //打印日志
  358. logger.info("Routing Alternative 删除结束:"+JSON.toJSONString(inData));
  359. //返回结果集
  360. return returnMap;
  361. }
  362. /**
  363. * @description: Build Routing Alternative
  364. * @author LR
  365. * @date 2024/12/13 9:37
  366. * @version 1.0
  367. */
  368. public Map<String, String> buildRoutingAlternative(RoutingAlternative inData) {
  369. logger.info("Routing替代Build开始:"+JSON.toJSONString(inData));
  370. Map<String, String> returnMap = new HashMap<>();
  371. String username = inData.getIfsUsername();
  372. String password = inData.getIfsPassword();
  373. String contract = inData.getContract();
  374. String partNo = inData.getPartNo();
  375. String routingRevision = inData.getRoutingRevision();
  376. String routingType = inData.getRoutingType();
  377. String alternativeNo = inData.getAlternativeNo();
  378. //获取连接
  379. try{
  380. Server srv = ifsServer.getIfsServer(username, password);
  381. //查询Alternative信息
  382. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  383. //判断是否需要插入到ifs
  384. if(alternativeMap == null || alternativeMap.size() == 0) {
  385. throw new APException("Routing Alternative不存在!");
  386. }
  387. //设置ifs 信息
  388. inData.setIfsRowId(alternativeMap.get("IFSROWID"));
  389. inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
  390. //调用删除方法
  391. Map<String, String> resultMap = RoutingApiTest.buildRoutingAlternative(srv, inData);
  392. //设置ifs 信息
  393. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  394. returnMap.put("resultCode", "200");
  395. returnMap.put("obj", JSON.toJSONString(inData));
  396. } catch(APException e){
  397. returnMap.put("resultCode", "400");
  398. returnMap.put("resultMsg", e.getMessage());
  399. }
  400. //打印日志
  401. logger.info("Routing替代Build结束:"+JSON.toJSONString(inData));
  402. //返回结果集
  403. return returnMap;
  404. }
  405. /**
  406. * @description: Retire Routing Alternative
  407. * @author LR
  408. * @date 2024/12/13 9:40
  409. * @version 1.0
  410. */
  411. public Map<String, String> retireRoutingAlternative(RoutingAlternative inData) {
  412. logger.info("Routing替代Build开始:"+JSON.toJSONString(inData));
  413. //公共参数
  414. Map<String, String> returnMap = new HashMap<>();
  415. String username = inData.getIfsUsername();
  416. String password = inData.getIfsPassword();
  417. String contract = inData.getContract();
  418. String partNo = inData.getPartNo();
  419. String routingRevision = inData.getRoutingRevision();
  420. String routingType = inData.getRoutingType();
  421. String alternativeNo = inData.getAlternativeNo();
  422. //获取连接
  423. try{
  424. Server srv = ifsServer.getIfsServer(username, password);
  425. //查询Alternative信息
  426. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  427. //判断是否需要插入到ifs
  428. if(alternativeMap == null || alternativeMap.size() == 0) {
  429. throw new APException("Routing Alternative不存在!");
  430. }
  431. //设置ifs 信息
  432. inData.setIfsRowId(alternativeMap.get("IFSROWID"));
  433. inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
  434. //调用删除方法
  435. Map<String, String> resultMap = RoutingApiTest.retireRoutingAlternative(srv, inData);
  436. //设置ifs 信息
  437. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  438. returnMap.put("resultCode", "200");
  439. returnMap.put("obj", JSON.toJSONString(inData));
  440. } catch(APException e){
  441. returnMap.put("resultCode", "400");
  442. returnMap.put("resultMsg", e.getMessage());
  443. }
  444. //打印日志
  445. logger.info("Routing替代Retire结束:"+JSON.toJSONString(inData));
  446. //返回结果集
  447. return returnMap;
  448. }
  449. /**
  450. * @description: 获取Routing 的明细
  451. * @author LR
  452. * @date 2024/12/13 9:53
  453. * @version 1.0
  454. */
  455. public Map<String, String> getRoutingItems(RoutingItem inData) {
  456. //公共参数
  457. Map<String, String> returnMap = new HashMap<>();
  458. String username = inData.getIfsUsername();
  459. String password = inData.getIfsPassword();
  460. String contract = inData.getContract();
  461. String partNo = inData.getPartNo();
  462. String routingRevision = inData.getRoutingRevision();
  463. String routingType = inData.getRoutingType();
  464. String alternativeNo = inData.getAlternativeNo();
  465. String operationNo = inData.getOperationNo();
  466. //获取连接
  467. try{
  468. Server srv = ifsServer.getIfsServer(username, password);
  469. //查询Alternative信息
  470. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  471. //判断是否需要插入到ifs
  472. if(alternativeMap == null || alternativeMap.size() == 0) {
  473. throw new APException("Routing Alternative不存在!");
  474. }
  475. //查询结果集
  476. List<RoutingItem> resultList = RoutingApiTest.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, operationNo);
  477. //判断是否查询数据
  478. if(resultList.size() == 0 || resultList.isEmpty()) {
  479. throw new APException("不存在此Routing组件信息!");
  480. }
  481. returnMap.put("resultCode", "200");
  482. returnMap.put("obj", JSON.toJSONString(resultList));
  483. } catch(APException e){
  484. returnMap.put("resultCode", "400");
  485. returnMap.put("resultMsg", e.getMessage());
  486. }
  487. //打印日志
  488. logger.info("Routing替代明细集合结束:"+JSON.toJSONString(inData));
  489. //返回结果集
  490. return returnMap;
  491. }
  492. /**
  493. * @description: 批量新增Routing Item
  494. * @author LR
  495. * @date 2024/12/12 17:23
  496. * @version 1.0
  497. */
  498. public Map<String, String> syncRoutingItems(List<RoutingItem> inDatas) {
  499. logger.info("Routing替代明细集合新增开始:"+JSON.toJSONString(inDatas));
  500. Map<String, String> returnMap = new HashMap<>();
  501. RoutingItem inData = inDatas.get(0);
  502. //公共参数Map<String, String> returnMap = new HashMap<>();
  503. String username = inData.getIfsUsername();
  504. String password = inData.getIfsPassword();
  505. String contract = inData.getContract();
  506. String partNo = inData.getPartNo();
  507. String routingRevision = inData.getRoutingRevision();
  508. String routingType = inData.getRoutingType();
  509. String alternativeNo = inData.getAlternativeNo();
  510. //获取连接
  511. try{
  512. Server srv = ifsServer.getIfsServer(username, password);
  513. //查询制造商信息
  514. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  515. //判断是否需要插入到ifs
  516. if(alternativeMap == null || alternativeMap.size() == 0) {
  517. throw new APException("Routing Alternative不存在!");
  518. }
  519. //查询结果集
  520. List<RoutingItem> itemList = RoutingApiTest.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, null);
  521. //转Map
  522. Map<String, String> itemMap = itemList.stream().collect(Collectors.toMap(RoutingItem::getOperationNo, RoutingItem::getOperationNo));
  523. //打印日志
  524. logger.info("Routing替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
  525. //循环判断的方法
  526. for(RoutingItem RoutingItem : inDatas) {
  527. //判断是否已经存在
  528. String tempOperationNo = RoutingItem.getOperationNo();
  529. if(itemMap.containsKey(tempOperationNo)) {
  530. throw new APException("已存在此Routing组件信息!OperationNo:"+tempOperationNo);
  531. }
  532. }
  533. // 校验通过 循环调用新增的方法
  534. for(RoutingItem routingItem : inDatas) {
  535. //调用api
  536. Map<String, String> tempMap = RoutingApiTest.insertRoutingItem(srv, routingItem);
  537. //设置ifs 信息
  538. routingItem.setIfsRowId(tempMap.get("OBJID"));
  539. routingItem.setIfsRowVersion(tempMap.get("OBJVERSION"));
  540. }
  541. returnMap.put("resultCode", "200");
  542. returnMap.put("obj", JSON.toJSONString(inDatas));
  543. } catch(APException e){
  544. returnMap.put("resultCode", "400");
  545. returnMap.put("resultMsg", e.getMessage());
  546. }
  547. //打印日志
  548. logger.info("Routing替代明细集合新增开始:"+JSON.toJSONString(inDatas));
  549. //返回结果集
  550. return returnMap;
  551. }
  552. /**
  553. * @description: 修改Routing的明细
  554. * @author LR
  555. * @date 2024/12/13 10:24
  556. * @version 1.0
  557. */
  558. public Map<String, String> modifyRoutingItem(RoutingItem inData) {
  559. logger.info("Routing替代明细新增开始:"+JSON.toJSONString(inData));
  560. //公共参数
  561. Map<String, String> returnMap = new HashMap<>();
  562. String username = inData.getIfsUsername();
  563. String password = inData.getIfsPassword();
  564. String contract = inData.getContract();
  565. String partNo = inData.getPartNo();
  566. String routingRevision = inData.getRoutingRevision();
  567. String routingType = inData.getRoutingType();
  568. String alternativeNo = inData.getAlternativeNo();
  569. String operationNo = inData.getOperationNo();
  570. //获取连接
  571. try{
  572. Server srv = ifsServer.getIfsServer(username, password);
  573. //查询制造商信息
  574. Map<String, String> alternativeMap = RoutingApiTest.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo);
  575. //判断是否需要插入到ifs
  576. if(alternativeMap == null || alternativeMap.size() == 0) {
  577. throw new APException("Routing Alternative不存在!");
  578. }
  579. //查询结果集
  580. List<RoutingItem> resultList = RoutingApiTest.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, operationNo);
  581. //判断是否查询数据
  582. if(resultList.size() == 0 || resultList.isEmpty()) {
  583. throw new APException("不存在此Routing组件信息!");
  584. }
  585. RoutingItem RoutingItem = resultList.get(0);
  586. //设置版本信息
  587. inData.setIfsRowId(RoutingItem.getIfsRowId());
  588. inData.setIfsRowVersion(RoutingItem.getIfsRowVersion());
  589. //调用修改的方法
  590. Map<String, String> resultMap = RoutingApiTest.modifyRoutingItem(srv, inData);
  591. //设置ifs 信息
  592. RoutingItem.setIfsRowId(resultMap.get("OBJID"));
  593. RoutingItem.setIfsRowVersion(resultMap.get("OBJVERSION"));
  594. returnMap.put("resultCode", "200");
  595. returnMap.put("obj", JSON.toJSONString(inData));
  596. } catch(APException e){
  597. returnMap.put("resultCode", "400");
  598. returnMap.put("resultMsg", e.getMessage());
  599. }
  600. //打印日志
  601. logger.info("Routing替代明细新增结束:"+JSON.toJSONString(inData));
  602. //返回结果集
  603. return returnMap;
  604. }
  605. /**
  606. * @description: 批量删除
  607. * @author LR
  608. * @date 2024/12/13 10:26
  609. * @version 1.0
  610. */
  611. public Map<String, String> removeRoutingItems(List<RoutingItem> inDatas) {
  612. logger.info("Routing 明细集合删除开始:"+JSON.toJSONString(inDatas));
  613. RoutingItem inData = inDatas.get(0);
  614. //公共参数
  615. Map<String, String> returnMap = new HashMap<>();
  616. String username = inData.getIfsUsername();
  617. String password = inData.getIfsPassword();
  618. String contract = inData.getContract();
  619. String partNo = inData.getPartNo();
  620. String routingRevision = inData.getRoutingRevision();
  621. String routingType = inData.getRoutingType();
  622. String alternativeNo = inData.getAlternativeNo();
  623. //获取连接
  624. try{
  625. Server srv = ifsServer.getIfsServer(username, password);
  626. //查询结果集
  627. List<RoutingItem> itemList = RoutingApiTest.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, null);
  628. //转Map
  629. Map<String, RoutingItem> itemMap = itemList.stream().collect(Collectors.toMap(RoutingItem::getOperationNo, Function.identity()));
  630. //打印日志
  631. logger.info("Routing替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
  632. //循环判断的方法
  633. for(RoutingItem RoutingItem : inDatas) {
  634. //判断是否已经存在
  635. String tempOperationNo = RoutingItem.getOperationNo();
  636. if(!itemMap.containsKey(tempOperationNo)) {
  637. throw new APException("不存在此Routing组件信息!OperationNo:"+tempOperationNo);
  638. }
  639. }
  640. // 校验通过 循环调用新增的方法
  641. for(RoutingItem routingItem : inDatas) {
  642. //设置版本的信息
  643. String key = routingItem.getOperationNo();
  644. RoutingItem oriItem = itemMap.get(key);
  645. routingItem.setIfsRowId(oriItem.getIfsRowId());
  646. routingItem.setIfsRowVersion(oriItem.getIfsRowVersion());
  647. //调用api
  648. RoutingApiTest.removeRoutingItem(srv, routingItem);
  649. }
  650. returnMap.put("resultCode", "200");
  651. returnMap.put("obj", JSON.toJSONString(inData));
  652. } catch(APException e){
  653. returnMap.put("resultCode", "400");
  654. returnMap.put("resultMsg", e.getMessage());
  655. }
  656. //打印日志
  657. logger.info("Routing 明细集合删除开始:"+JSON.toJSONString(inDatas));
  658. //返回结果集
  659. return returnMap;
  660. }
  661. /**
  662. * @description: 批量新增 Routing Tool
  663. * @author LR
  664. * @date 2024/12/13 10:57
  665. * @version 1.0
  666. */
  667. public Map<String, String> syncRoutingTools(List<RoutingTool> inDatas) {
  668. logger.info("Routing Tool批量修改开始:"+JSON.toJSONString(inDatas));
  669. RoutingTool inData = inDatas.get(0);
  670. //公共参数
  671. Map<String, String> returnMap = new HashMap<>();
  672. String username = inData.getIfsUsername();
  673. String password = inData.getIfsPassword();
  674. //获取连接
  675. try{
  676. Server srv = ifsServer.getIfsServer(username, password);
  677. //循环处理
  678. for(RoutingTool routingTool : inDatas) {
  679. String itemIfsRowId = routingTool.getIfsRowId();
  680. String itemIfsRowVersion = routingTool.getIfsRowVersion();
  681. //查询工序的相关信息
  682. Map<String, String> itemMap = RoutingApiTest.getRoutingItem(srv, itemIfsRowId, itemIfsRowVersion);
  683. //获取operationId =
  684. String operationId = itemMap.get("OPERATION_ID");
  685. routingTool.setOperationId(operationId);
  686. //调用新增的方法 新增数据
  687. Map<String, String> resultMap = RoutingApiTest.insertRoutingTool(srv, routingTool);
  688. //设置参数
  689. routingTool.setIfsRowId(resultMap.get("OBJID"));
  690. routingTool.setIfsRowVersion(resultMap.get("OBJVERSION"));
  691. //打印日志
  692. logger.info("RoutingIfsTool_add:"+JSON.toJSONString(routingTool));
  693. }
  694. returnMap.put("resultCode", "200");
  695. returnMap.put("obj", JSON.toJSONString(inDatas));
  696. } catch(APException e){
  697. returnMap.put("resultCode", "400");
  698. returnMap.put("resultMsg", e.getMessage());
  699. }
  700. //打印日志
  701. logger.info("Routing Tool批量修改结束:"+JSON.toJSONString(inDatas));
  702. //返回结果集
  703. return returnMap;
  704. }
  705. /**
  706. * @description: 修改 Routing Tool
  707. * @author LR
  708. * @date 2024/12/13 10:57
  709. * @version 1.0
  710. */
  711. public Map<String, String> modifyRoutingTool(RoutingTool inData) {
  712. logger.info("Routing Tool 修改:"+JSON.toJSONString(inData));
  713. //公共参数
  714. Map<String, String> returnMap = new HashMap<>();
  715. String username = inData.getIfsUsername();
  716. String password = inData.getIfsPassword();
  717. //获取连接
  718. try{
  719. Server srv = ifsServer.getIfsServer(username, password);
  720. //调用修改的方法 新增数据
  721. Map<String, String> resultMap = RoutingApiTest.modifyRoutingTool(srv, inData);
  722. //设置参数
  723. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  724. returnMap.put("resultCode", "200");
  725. returnMap.put("obj", JSON.toJSONString(inData));
  726. } catch(APException e){
  727. returnMap.put("resultCode", "400");
  728. returnMap.put("resultMsg", e.getMessage());
  729. }
  730. //打印日志
  731. logger.info("Routing Tool修改结束:"+JSON.toJSONString(inData));
  732. //返回结果集
  733. return returnMap;
  734. }
  735. /**
  736. * @description: 批量删除 Routing Tool
  737. * @author LR
  738. * @date 2024/12/13 10:57
  739. * @version 1.0
  740. */
  741. public Map<String, String> removeRoutingTools(List<RoutingTool> inDatas) {
  742. logger.info("Routing Tool批量修改开始:"+JSON.toJSONString(inDatas));
  743. RoutingTool inData = inDatas.get(0);
  744. //公共参数
  745. Map<String, String> returnMap = new HashMap<>();
  746. String username = inData.getIfsUsername();
  747. String password = inData.getIfsPassword();
  748. //获取连接
  749. try{
  750. Server srv = ifsServer.getIfsServer(username, password);
  751. //循环删除
  752. for(RoutingTool routingTool : inDatas) {
  753. //调用新增的方法 新增数据
  754. RoutingApiTest.removeRoutingTool(srv, routingTool);
  755. //打印日志
  756. logger.info("RoutingIfsTool_remove:"+JSON.toJSONString(routingTool));
  757. }
  758. returnMap.put("resultCode", "200");
  759. returnMap.put("obj", JSON.toJSONString(inDatas));
  760. } catch(APException e){
  761. returnMap.put("resultCode", "400");
  762. returnMap.put("resultMsg", e.getMessage());
  763. }
  764. //打印日志
  765. logger.info("Routing Tool批量删除结束:"+JSON.toJSONString(inDatas));
  766. //返回结果集
  767. return returnMap;
  768. }
  769. /**
  770. * @description: 批量新增 Routing Guide Line
  771. * @author LR
  772. * @date 2024/12/13 14:16
  773. * @version 1.0
  774. */
  775. public Map<String, String> syncRoutingGuideLines(List<RoutingGuideLine> inDatas) {
  776. logger.info("Routing GuideLine批量新增开始:"+JSON.toJSONString(inDatas));
  777. RoutingGuideLine inData = inDatas.get(0);
  778. //公共参数
  779. Map<String, String> returnMap = new HashMap<>();
  780. String username = inData.getIfsUsername();
  781. String password = inData.getIfsPassword();
  782. try{
  783. //获取连接
  784. Server srv = ifsServer.getIfsServer(username, password);
  785. //循环调用
  786. for(RoutingGuideLine guideLine : inDatas) {
  787. String itemIfsRowId = guideLine.getIfsRowId();
  788. String itemIfsRowVersion = guideLine.getIfsRowVersion();
  789. //查询工序的相关信息
  790. Map<String, String> itemMap = RoutingApiTest.getRoutingItem(srv, itemIfsRowId, itemIfsRowVersion);
  791. //获取operationId =
  792. String operationId = itemMap.get("OPERATION_ID");
  793. guideLine.setOperationId(operationId);
  794. //调用新增的方法 新增数据
  795. Map<String, String> resultMap = RoutingApiTest.insertRoutingGuideLine(srv, guideLine);
  796. //设置参数
  797. guideLine.setIfsRowId(resultMap.get("OBJID"));
  798. guideLine.setIfsRowVersion(resultMap.get("OBJVERSION"));
  799. //打印日志
  800. logger.info("RoutingIfsTool_add:"+JSON.toJSONString(guideLine));
  801. }
  802. returnMap.put("resultCode", "200");
  803. returnMap.put("obj", JSON.toJSONString(inData));
  804. } catch(APException e){
  805. returnMap.put("resultCode", "400");
  806. returnMap.put("resultMsg", e.getMessage());
  807. }
  808. //打印日志
  809. logger.info("Routing Tool批量修改结束:"+JSON.toJSONString(inDatas));
  810. //返回结果集
  811. return returnMap;
  812. }
  813. /**
  814. * @description: 修改Routing Guide Line
  815. * @author LR
  816. * @date 2024/12/13 14:22
  817. * @version 1.0
  818. */
  819. public Map<String, String> modifyRoutingGuideLine(RoutingGuideLine inData) {
  820. logger.info("Routing GuideLine 修改:"+JSON.toJSONString(inData));
  821. //公共参数
  822. Map<String, String> returnMap = new HashMap<>();
  823. String username = inData.getIfsUsername();
  824. String password = inData.getIfsPassword();
  825. //获取连接
  826. try{
  827. Server srv = ifsServer.getIfsServer(username, password);
  828. //调用新增的方法 新增数据
  829. Map<String, String> resultMap = RoutingApiTest.modifyRoutingGuideLine(srv, inData);
  830. //设置参数
  831. inData.setIfsRowVersion(resultMap.get("ifsRowVersion"));
  832. returnMap.put("resultCode", "200");
  833. returnMap.put("obj", JSON.toJSONString(inData));
  834. } catch(APException e){
  835. returnMap.put("resultCode", "400");
  836. returnMap.put("resultMsg", e.getMessage());
  837. }
  838. //打印日志
  839. logger.info("Routing GuideLine修改结束:"+JSON.toJSONString(inData));
  840. //返回结果集
  841. return returnMap;
  842. }
  843. /**
  844. * @description: 批量删除 Routing Guide Line
  845. * @author LR
  846. * @date 2024/12/13 14:24
  847. * @version 1.0
  848. */
  849. public Map<String, String> removeRoutingGuideLines(List<RoutingGuideLine> inDatas) {
  850. logger.info("Routing GuideLine批量修改开始:"+JSON.toJSONString(inDatas));
  851. RoutingGuideLine inData = inDatas.get(0);
  852. //公共参数
  853. Map<String, String> returnMap = new HashMap<>();
  854. String username = inData.getIfsUsername();
  855. String password = inData.getIfsPassword();
  856. //获取连接
  857. try{
  858. Server srv = ifsServer.getIfsServer(username, password);
  859. //循环删除
  860. for(RoutingGuideLine guideLine : inDatas) {
  861. //调用新增的方法 新增数据
  862. RoutingApiTest.removeRoutingGuideLine(srv, guideLine);
  863. //打印日志
  864. logger.info("RoutingGuideLine remove:"+JSON.toJSONString(guideLine));
  865. }
  866. returnMap.put("resultCode", "200");
  867. returnMap.put("obj", JSON.toJSONString(inData));
  868. } catch(APException e){
  869. returnMap.put("resultCode", "400");
  870. returnMap.put("resultMsg", e.getMessage());
  871. }
  872. //打印日志
  873. logger.info("Routing GuideLine批量删除结束:"+JSON.toJSONString(inDatas));
  874. //返回结果集
  875. return returnMap;
  876. }
  877. /**
  878. * @description: 查询工艺路线的组件信息
  879. * @author LR
  880. * @date 2025/5/21 15:59
  881. * @version 1.0
  882. */
  883. public Map<String, String> getRoutingItemsWithCopyPart(RoutingIfsHeader inData) {
  884. //公共参数
  885. Map<String, String> returnMap = new HashMap<>();
  886. String username = inData.getIfsUsername();
  887. String password = inData.getIfsPassword();
  888. String contract = inData.getContract();
  889. String partNo = inData.getPartNo();
  890. try{
  891. //获取连接
  892. Server srv = ifsServer.getIfsServer(username, password);
  893. //查询结果集
  894. List<RoutingIfsItem> resultList = RoutingApi.getRoutingItemsWithCopyPart(srv, contract, partNo);
  895. //判断是否查询数据
  896. if(resultList.isEmpty()) {
  897. throw new APException("不存在此Routing组件信息!");
  898. }
  899. returnMap.put("resultCode", "200");
  900. //打印日志
  901. logger.info("Routing 明细查询数据:"+JSON.toJSONString(inData));
  902. returnMap.put("obj", JSON.toJSONString(resultList));
  903. } catch(APException e){
  904. returnMap.put("resultCode", "400");
  905. returnMap.put("resultMsg", e.getMessage());
  906. logger.info("异常信息:"+e.getMessage());
  907. }
  908. //打印日志
  909. logger.info("Routing替代明细集合结束:"+JSON.toJSONString(inData));
  910. //返回结果集
  911. return returnMap;
  912. }
  913. /**
  914. * @description: copy part 使用的方法
  915. * @author LR
  916. * @date 2025/5/21 16:01
  917. * @version 1.0
  918. */
  919. public Map<String, String> getRoutingToolsWithCopyPart(RoutingIfsHeader inData) {
  920. logger.info("Routing Tools查询开始:"+JSON.toJSONString(inData));
  921. //公共参数
  922. Map<String, String> returnMap = new HashMap<>();
  923. String username = inData.getIfsUsername();
  924. String password = inData.getIfsPassword();
  925. String contract = inData.getContract();
  926. String partNo = inData.getPartNo();
  927. try{
  928. //获取连接
  929. Server srv = ifsServer.getIfsServer(username, password);
  930. //循环处理
  931. List<RoutingIfsTool> resultList = RoutingApi.getRoutingToolsWithCopyPart(srv, contract, partNo);
  932. returnMap.put("resultCode", "200");
  933. logger.info("Routing Tools查询到数据:"+JSON.toJSONString(inData));
  934. returnMap.put("obj", JSON.toJSONString(resultList));
  935. } catch(APException e){
  936. returnMap.put("resultCode", "400");
  937. returnMap.put("resultMsg", e.getMessage());
  938. logger.info("异常信息:"+e.getMessage());
  939. }
  940. //打印日志
  941. logger.info("Routing Tools查询结束:"+JSON.toJSONString(inData));
  942. //返回结果集
  943. return returnMap;
  944. }
  945. /**
  946. * @description: copy part 使用的方法
  947. * @author LR
  948. * @date 2025/5/21 16:05
  949. * @version 1.0
  950. */
  951. public Map<String, String> getRoutingGuideLinesWithCopyPart(RoutingIfsHeader inData) {
  952. logger.info("Routing GuideLines查询开始:"+JSON.toJSONString(inData));
  953. //公共参数
  954. Map<String, String> returnMap = new HashMap<>();
  955. String username = inData.getIfsUsername();
  956. String password = inData.getIfsPassword();
  957. String contract = inData.getContract();
  958. String partNo = inData.getPartNo();
  959. try{
  960. //获取连接
  961. Server srv = ifsServer.getIfsServer(username, password);
  962. //循环处理
  963. List<RoutingIfsGuideLine> resultList = RoutingApi.getRoutingGuideLinesWithCopyPart(srv, contract, partNo);
  964. returnMap.put("resultCode", "200");
  965. logger.info("Routing GuideLines查询到数据:"+JSON.toJSONString(inData));
  966. returnMap.put("obj", JSON.toJSONString(resultList));
  967. } catch(APException e){
  968. returnMap.put("resultCode", "400");
  969. returnMap.put("resultMsg", e.getMessage());
  970. logger.info("异常信息:"+e.getMessage());
  971. }
  972. //打印日志
  973. logger.info("Routing GuideLines查询结束:"+JSON.toJSONString(inData));
  974. //返回结果集
  975. return returnMap;
  976. }
  977. }