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.

1357 lines
67 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. package com.spring.ifs.api;
  2. import com.spring.ifs.utils.IfsConverterToMap;
  3. import com.spring.ifs.utils.IfsPlsqlUtils;
  4. import com.spring.modules.base.utils.DateUtils;
  5. import com.spring.modules.part.entity.APIEntity.*;
  6. import ifs.fnd.ap.*;
  7. import java.util.*;
  8. /**
  9. * @description: Routing的api
  10. * @author LR
  11. * @date 2024/12/9 10:56
  12. * @version 1.0
  13. */
  14. public class RoutingApi {
  15. /**
  16. * @description: 查询Routing Header
  17. * @author LR
  18. * @date 2024/12/11 14:45
  19. * @version 1.0
  20. */
  21. public static Map<String, String> getRoutingHeader(Server srv, String contract, String partNo, String routingRevision, String routingType) throws APException {
  22. StringBuilder searchSql = new StringBuilder();
  23. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, BOM_TYPE routingType, ROUTING_REVISION,");
  24. searchSql.append(" PHASE_IN_DATE, PHASE_OUT_DATE, NOTE_TEXT");
  25. searchSql.append(" FROM IFSAPP.ROUTING_HEAD");
  26. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  27. //设置查询的入参
  28. Map<String, String> inParam = new HashMap<>();
  29. inParam.put("contract", contract);
  30. inParam.put("partNo", partNo);
  31. inParam.put("routingRevision", routingRevision);
  32. inParam.put("routingType", routingType);
  33. //调用查询的通用方法
  34. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  35. //判断能否返回
  36. if (recordCollection == null) {
  37. return null;
  38. } else {
  39. Record recordData = recordCollection.get(0);
  40. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
  41. return resultMap;
  42. }
  43. }
  44. /**
  45. * @description: 查询Routing的主表数据
  46. * @author LR
  47. * @date 2024/12/12 17:48
  48. * @version 1.0
  49. */
  50. public static List<RoutingIfsHeader> getRoutingHeadersByPartNo(Server srv, String contract, String partNo) throws APException {
  51. StringBuilder searchSql = new StringBuilder();
  52. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, BOM_TYPE, ROUTING_REVISION,");
  53. searchSql.append(" PHASE_IN_DATE, PHASE_OUT_DATE, NOTE_TEXT");
  54. searchSql.append(" FROM IFSAPP.ROUTING_HEAD");
  55. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo");
  56. //设置查询的入参
  57. Map<String, String> inParam = new HashMap<>();
  58. inParam.put("contract", contract);
  59. inParam.put("partNo", partNo);
  60. //调用查询的通用方法
  61. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  62. //判断能否返回
  63. if (recordCollection == null) {
  64. return new ArrayList<>();
  65. } else {
  66. List<RoutingIfsHeader> resultItems = new ArrayList<>();
  67. //调用通用的处理方法 返回Map
  68. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  69. //判断是否存在数据
  70. if(resultList == null) {
  71. return resultItems;
  72. }
  73. //获取数据转bean
  74. for (int i = 0; i < resultList.size(); i++) {
  75. Map<String, String> tempMap = resultList.get(i);
  76. RoutingIfsHeader tempItem = new RoutingIfsHeader();
  77. //设置参数
  78. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  79. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  80. tempItem.setContract(tempMap.get("CONTRACT"));
  81. tempItem.setPartNo(tempMap.get("PART_NO"));
  82. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  83. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  84. tempItem.setPhaseInDate(tempMap.get("PHASE_IN_DATE")); // 如果 PHASE_IN_DATE 是日期类型,请确保进行适当的类型转换
  85. tempItem.setPhaseOutDate(tempMap.get("PHASE_OUT_DATE")); //
  86. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  87. //添加对象
  88. resultItems.add(tempItem);
  89. }
  90. return resultItems;
  91. }
  92. }
  93. /**
  94. * @description: 插入Bom Header的主表
  95. * @author LR
  96. * @date 2024/12/11 15:08
  97. * @version 1.0
  98. */
  99. public static Map<String, String> insertRoutingHeader(Server srv, RoutingIfsHeader inData) throws APException {
  100. //公共参数
  101. //公共参数
  102. String contract = inData.getContract();// 域
  103. String partNo = inData.getPartNo();// 物料编码
  104. String routingRevision = inData.getRoutingRevision();// 版本
  105. String routingType = inData.getRoutingType();
  106. String phaseInDate = inData.getPhaseInDate().substring(0, 10)+"-00.00.00";// 启用时间-年月日
  107. String phaseOutDate = inData.getPhaseOutDate();// 结束时间-年月日
  108. if(phaseOutDate == null || phaseOutDate.equals("")) {
  109. phaseOutDate = "";
  110. }else {
  111. phaseOutDate = phaseOutDate+"-00.00.00";
  112. }
  113. String noteText = inData.getNoteText();// 备注
  114. //入参
  115. Map<String, String> inParam = new HashMap<>();
  116. //填充参数
  117. inParam.put("OBJID", "");
  118. inParam.put("OBJVERSION", "");
  119. inParam.put("PART_NO", partNo); // 物料编码
  120. inParam.put("CONTRACT", contract); // 域
  121. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  122. inParam.put("BOM_TYPE", routingType); // routing类型
  123. inParam.put("PHASE_IN_DATE", phaseInDate); // 启用日期
  124. inParam.put("PHASE_OUT_DATE", phaseOutDate); // 到期时间
  125. inParam.put("NOTE_TEXT", noteText); // 备注
  126. //执行check的操作
  127. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
  128. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  129. //执行do的操作
  130. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
  131. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  132. //返回结果集
  133. return resultMap;
  134. }
  135. /**
  136. * @description: 修改Bom Header的主表信息
  137. * @author LR
  138. * @date 2024/12/11 15:32
  139. * @version 1.0
  140. */
  141. public static Map<String, String> modifyRoutingHeader(Server srv, RoutingIfsHeader inData) throws APException {
  142. //公共参数
  143. String ifsRowId = inData.getIfsRowId();//
  144. String ifsRowVersion = inData.getIfsRowVersion();//
  145. //判断是否存在问题
  146. String phaseInDate = inData.getPhaseInDate().substring(0, 10)+"-00.00.00";// 启用时间-年月日
  147. String phaseOutDate = inData.getPhaseOutDate();// 结束时间-年月日
  148. if(phaseOutDate == null || phaseOutDate.equals("")) {
  149. phaseOutDate = "";
  150. }else {
  151. phaseOutDate = phaseOutDate+"-00.00.00";
  152. }
  153. String noteText = inData.getNoteText();// 备注
  154. //入参
  155. Map<String, String> inParam = new HashMap<>();
  156. //填充参数
  157. inParam.put("OBJID", ifsRowId);
  158. inParam.put("OBJVERSION", ifsRowVersion);
  159. inParam.put("PHASE_IN_DATE", phaseInDate); // 启用日期
  160. inParam.put("PHASE_OUT_DATE", phaseOutDate); // 到期时间
  161. inParam.put("NOTE_TEXT", noteText); // 备注
  162. //执行check的操作
  163. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
  164. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  165. //执行do的操作
  166. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
  167. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  168. //返回结果集
  169. return resultMap;
  170. }
  171. /**
  172. * @description: 删除Bom的主表信息
  173. * @author LR
  174. * @date 2024/12/11 15:33
  175. * @version 1.0
  176. */
  177. public static Map<String, String> removeRoutingHeader(Server srv, RoutingIfsHeader inData) throws APException {
  178. //公共参数
  179. String ifsRowId = inData.getIfsRowId();
  180. String ifsRowVersion = inData.getIfsRowVersion();
  181. //入参
  182. Map<String, String> inParam = new HashMap<>();
  183. //填充参数
  184. inParam.put("OBJID", ifsRowId);
  185. inParam.put("OBJVERSION", ifsRowVersion);
  186. //执行check的操作
  187. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
  188. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  189. //执行do的操作
  190. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_HEAD_API",
  191. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  192. //返回结果集
  193. return resultMap;
  194. }
  195. /**
  196. * @description: 查询Bom的替代
  197. * @author LR
  198. * @date 2024/12/11 14:48
  199. * @version 1.0
  200. */
  201. public static Map<String, String> getRoutingAlternative(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo) throws APException {
  202. StringBuilder searchSql = new StringBuilder();
  203. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, BOM_TYPE routingType, ROUTING_REVISION,");
  204. searchSql.append(" ALTERNATIVE_NO, NOTE_TEXT");
  205. searchSql.append(" FROM IFSAPP.ROUTING_ALTERNATE");
  206. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
  207. //设置查询的入参
  208. Map<String, String> inParam = new HashMap<>();
  209. inParam.put("contract", contract);
  210. inParam.put("partNo", partNo);
  211. inParam.put("routingRevision", routingRevision);
  212. inParam.put("routingType", routingType);
  213. inParam.put("alternativeNo", alternativeNo);
  214. //调用查询的通用方法
  215. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  216. //判断能否返回
  217. if (recordCollection == null) {
  218. return null;
  219. } else {
  220. Record recordData = recordCollection.get(0);
  221. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
  222. return resultMap;
  223. }
  224. }
  225. /**
  226. * @description: 插入Bom Alternative
  227. * @author LR
  228. * @date 2024/12/11 15:45
  229. * @version 1.0
  230. */
  231. public static Map<String, String> insertRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
  232. //公共参数
  233. //公共参数
  234. String contract = inData.getContract();// 域
  235. String partNo = inData.getPartNo();// 物料编码
  236. String routingRevision = inData.getRoutingRevision();// 版本
  237. String routingType = inData.getRoutingType();// 分类
  238. String alternativeNo = inData.getAlternativeNo();
  239. String alternativeDesc = inData.getAlternativeDesc();
  240. String noteText = inData.getNoteText();// 备注
  241. //入参
  242. Map<String, String> inParam = new HashMap<>();
  243. //填充参数
  244. inParam.put("OBJID", "");
  245. inParam.put("OBJVERSION", "");
  246. inParam.put("PART_NO", partNo); // 物料编码
  247. inParam.put("CONTRACT", contract); // 域
  248. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  249. inParam.put("BOM_TYPE", routingType); // BOM类型
  250. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  251. inParam.put("ALTERNATIVE_DESCRIPTION", alternativeDesc); // 替代编码描述
  252. inParam.put("FIXED_LEADTIME_DAY", "0"); // 固定值
  253. inParam.put("VARIABLE_LEADTIME_DAY", "0"); // 固定值
  254. inParam.put("FIXED_LEADTIME_HOUR", "0"); // 固定值
  255. inParam.put("VARIABLE_LEADTIME_HOUR", "0"); // 固定值
  256. inParam.put("NOTE_TEXT", noteText); // 备注
  257. //执行check的操作
  258. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  259. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  260. //执行do的操作
  261. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  262. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  263. //返回结果集
  264. return resultMap;
  265. }
  266. /**
  267. * @description: 修改Routing Alternative
  268. * @author LR
  269. * @date 2024/12/11 15:47
  270. * @version 1.0
  271. */
  272. public static Map<String, String> modifyRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
  273. //公共参数
  274. String ifsRowId = inData.getIfsRowId();//
  275. String ifsRowVersion = inData.getIfsRowVersion();//
  276. String alternativeDesc = inData.getAlternativeDesc();
  277. String noteText = inData.getNoteText();// 备注
  278. //入参
  279. Map<String, String> inParam = new HashMap<>();
  280. //填充参数
  281. inParam.put("OBJID", ifsRowId);
  282. inParam.put("OBJVERSION", ifsRowVersion);
  283. inParam.put("ALTERNATIVE_DESCRIPTION", alternativeDesc); // 替代编码描述
  284. inParam.put("NOTE_TEXT", noteText); // 备注
  285. //执行check的操作
  286. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  287. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  288. //执行do的操作
  289. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  290. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  291. //返回结果集
  292. return resultMap;
  293. }
  294. /**
  295. * @description: 删除Routing Alternative
  296. * @author LR
  297. * @date 2024/12/11 15:51
  298. * @version 1.0
  299. */
  300. public static void removeRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
  301. //公共参数
  302. String ifsRowId = inData.getIfsRowId();// 域
  303. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  304. //入参
  305. Map<String, String> inParam = new HashMap<>();
  306. //填充参数
  307. inParam.put("OBJID", ifsRowId);
  308. inParam.put("OBJVERSION", ifsRowVersion);
  309. //执行check的操作
  310. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  311. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  312. //执行do的操作
  313. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  314. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  315. }
  316. /**
  317. * @description: Build Routing Alternative
  318. * @author LR
  319. * @date 2024/12/11 15:53
  320. * @version 1.0
  321. */
  322. public static Map<String, String> buildRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
  323. //公共参数
  324. String ifsRowId = inData.getIfsRowId();// 域
  325. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  326. //入参
  327. Map<String, String> inParam = new HashMap<>();
  328. //填充参数
  329. inParam.put("OBJID", ifsRowId);
  330. inParam.put("OBJVERSION", ifsRowVersion);
  331. //执行check的操作
  332. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  333. "BUILD__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  334. //执行do的操作
  335. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  336. "BUILD__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  337. //返回结果集
  338. return resultMap;
  339. }
  340. /**
  341. * @description: retire Routing Alternative
  342. * @author LR
  343. * @date 2024/12/11 15:55
  344. * @version 1.0
  345. */
  346. public static Map<String, String> retireRoutingAlternative(Server srv, RoutingIfsAlternative inData) throws APException {
  347. //公共参数
  348. String ifsRowId = inData.getIfsRowId();// 域
  349. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  350. //入参
  351. Map<String, String> inParam = new HashMap<>();
  352. //填充参数
  353. inParam.put("OBJID", ifsRowId);
  354. inParam.put("OBJVERSION", ifsRowVersion);
  355. //执行check的操作
  356. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  357. "RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  358. //执行do的操作
  359. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  360. "RETIRE__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  361. //返回结果集
  362. return resultMap;
  363. }
  364. /**
  365. * @description: 获取Routing Item
  366. * @author LR
  367. * @date 2024/12/11 16:12
  368. * @version 1.0
  369. */
  370. public static Map<String, String> getRoutingItem(Server srv, String ifsRowId, String ifsRowVersion) throws APException {
  371. StringBuilder searchSql = new StringBuilder();
  372. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
  373. searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, OPERATION_ID");
  374. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION");
  375. searchSql.append(" WHERE OBJID = :ifsRowId");
  376. //设置查询的入参
  377. Map<String, String> inParam = new HashMap<>();
  378. inParam.put("ifsRowId", ifsRowId);
  379. inParam.put("ifsRowVersion", ifsRowVersion);
  380. //调用查询的通用方法
  381. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  382. //判断能否返回
  383. if (recordCollection == null) {
  384. return null;
  385. } else {
  386. Record recordData = recordCollection.get(0);
  387. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
  388. return resultMap;
  389. }
  390. }
  391. /**
  392. * @description: 获取Routing Items
  393. * @author LR
  394. * @date 2024/12/11 16:16
  395. * @version 1.0
  396. */
  397. public static List<Map<String, String>> getRoutingItemMaps(Server srv, String contract, String partNo, String routingRevision, String routingType,
  398. String alternativeNo, String operationNo) throws APException {
  399. StringBuilder searchSql = new StringBuilder();
  400. searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO,");
  401. searchSql.append(" OPERATION_NO, OPERATION_DESCRIPTION operationDesc, WORK_CENTER_NO, EFFICIENCY_FACTOR, MACH_SETUP_TIME,");
  402. searchSql.append(" MACH_RUN_FACTOR, RUN_TIME_CODE, LABOR_RUN_FACTOR, LABOR_SETUP_TIME, CREW_SIZE, SETUP_CREW_SIZE,");
  403. searchSql.append(" OPERATION_ID, MACHINE_NO, OUTSIDE_OP_ITEM, LABOR_CLASS_NO, SETUP_LABOR_CLASS_NO,");
  404. searchSql.append(" OVERLAP, NOTE_TEXT, objid ifsRowId, objversion ifsRowVersion");
  405. searchSql.append(" FROM ifsapp.ROUTING_OPERATION");
  406. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  407. searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo");
  408. //设置查询的入参
  409. Map<String, String> inParam = new HashMap<>();
  410. inParam.put("contract", contract);
  411. inParam.put("partNo", partNo);
  412. inParam.put("routingRevision", routingRevision);
  413. inParam.put("routingType", routingType);
  414. inParam.put("alternativeNo", alternativeNo);
  415. //添加判断的查询条件
  416. if(!(null == operationNo || "".equals(operationNo))) {
  417. searchSql.append(" AND OPERATION_NO = :operationNo");
  418. inParam.put("operationNo", operationNo);
  419. }
  420. //调用查询的通用方法
  421. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  422. //判断能否返回
  423. if (recordCollection == null) {
  424. return new ArrayList<>();
  425. } else {
  426. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  427. return resultList;
  428. }
  429. }
  430. /**
  431. * @description: 查询Routing Item
  432. * @author LR
  433. * @date 2024/12/13 13:35
  434. * @version 1.0
  435. */
  436. public static List<RoutingIfsItem> getRoutingItems(Server srv, String contract, String partNo, String routingRevision, String routingType,
  437. String alternativeNo, String operationNo) throws APException {
  438. StringBuilder searchSql = new StringBuilder();
  439. searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO,");
  440. searchSql.append(" OPERATION_NO, OPERATION_DESCRIPTION operationDesc, WORK_CENTER_NO, EFFICIENCY_FACTOR, MACH_SETUP_TIME,");
  441. searchSql.append(" MACH_RUN_FACTOR, RUN_TIME_CODE, LABOR_RUN_FACTOR, LABOR_SETUP_TIME, CREW_SIZE, SETUP_CREW_SIZE,");
  442. searchSql.append(" OPERATION_ID, MACHINE_NO, OUTSIDE_OP_ITEM, LABOR_CLASS_NO, SETUP_LABOR_CLASS_NO,");
  443. searchSql.append(" OVERLAP, NOTE_TEXT, objid ifsRowId, objversion ifsRowVersion");
  444. searchSql.append(" FROM ifsapp.ROUTING_OPERATION");
  445. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  446. searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo");
  447. //设置查询的入参
  448. Map<String, String> inParam = new HashMap<>();
  449. inParam.put("contract", contract);
  450. inParam.put("partNo", partNo);
  451. inParam.put("routingRevision", routingRevision);
  452. inParam.put("routingType", routingType);
  453. inParam.put("alternativeNo", alternativeNo);
  454. //添加判断的查询条件
  455. if(!(null == operationNo || "".equals(operationNo))) {
  456. searchSql.append(" AND OPERATION_NO = :operationNo");
  457. inParam.put("operationNo", operationNo);
  458. }
  459. //调用查询的通用方法
  460. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  461. //判断能否返回
  462. if (recordCollection == null) {
  463. return new ArrayList<>();
  464. } else {
  465. List<RoutingIfsItem> resultItems = new ArrayList<>();
  466. //调用通用的处理方法 返回Map
  467. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  468. //获取数据转bean
  469. for (int i = 0; i < resultList.size(); i++) {
  470. Map<String, String> tempMap = resultList.get(i);
  471. RoutingIfsItem tempItem = new RoutingIfsItem();
  472. //设置参数
  473. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  474. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  475. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  476. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  477. tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
  478. tempItem.setOperationNo(tempMap.get("OPERATION_NO"));
  479. tempItem.setOperationDesc(tempMap.get("OPERATION_DESCRIPTION"));
  480. tempItem.setWorkCenterNo(tempMap.get("WORK_CENTER_NO"));
  481. tempItem.setEfficiencyFactor(tempMap.get("EFFICIENCY_FACTOR"));
  482. tempItem.setMachSetupTime(tempMap.get("MACH_SETUP_TIME"));
  483. tempItem.setMachRunFactor(tempMap.get("MACH_RUN_FACTOR"));
  484. tempItem.setRunTimeCode(tempMap.get("RUN_TIME_CODE"));
  485. tempItem.setLaborRunFactor(tempMap.get("LABOR_RUN_FACTOR"));
  486. tempItem.setLaborSetupTime(tempMap.get("LABOR_SETUP_TIME"));
  487. tempItem.setCrewSize(tempMap.get("CREW_SIZE"));
  488. tempItem.setSetupCrewSize(tempMap.get("SETUP_CREW_SIZE"));
  489. tempItem.setOperationId(tempMap.get("OPERATION_ID"));
  490. tempItem.setMachineNo(tempMap.get("MACHINE_NO"));
  491. tempItem.setOutsideOpItem(tempMap.get("OUTSIDE_OP_ITEM"));
  492. tempItem.setLaborClassNo(tempMap.get("LABOR_CLASS_NO"));
  493. tempItem.setSetupLaborClassNo(tempMap.get("SETUP_LABOR_CLASS_NO"));
  494. tempItem.setOverlap(tempMap.get("OVERLAP"));
  495. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  496. //添加对象
  497. resultItems.add(tempItem);
  498. }
  499. return resultItems;
  500. }
  501. }
  502. /**
  503. * @description: 仅仅copy part 赋值使用
  504. * @author LR
  505. * @date 2025/5/21 15:56
  506. * @version 1.0
  507. */
  508. public static List<RoutingIfsItem> getRoutingItemsWithCopyPart(Server srv, String contract, String partNo) throws APException {
  509. StringBuilder searchSql = new StringBuilder();
  510. searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO,");
  511. searchSql.append(" OPERATION_NO, OPERATION_DESCRIPTION operationDesc, WORK_CENTER_NO, EFFICIENCY_FACTOR, MACH_SETUP_TIME,");
  512. searchSql.append(" MACH_RUN_FACTOR, RUN_TIME_CODE, LABOR_RUN_FACTOR, LABOR_SETUP_TIME, CREW_SIZE, SETUP_CREW_SIZE,");
  513. searchSql.append(" OPERATION_ID, MACHINE_NO, OUTSIDE_OP_ITEM, LABOR_CLASS_NO, SETUP_LABOR_CLASS_NO,");
  514. searchSql.append(" OVERLAP, NOTE_TEXT, objid ifsRowId, objversion ifsRowVersion");
  515. searchSql.append(" FROM ifsapp.ROUTING_OPERATION");
  516. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo");
  517. //设置查询的入参
  518. Map<String, String> inParam = new HashMap<>();
  519. inParam.put("contract", contract);
  520. inParam.put("partNo", partNo);
  521. //调用查询的通用方法
  522. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  523. //判断能否返回
  524. if (recordCollection == null) {
  525. return new ArrayList<>();
  526. } else {
  527. List<RoutingIfsItem> resultItems = new ArrayList<>();
  528. //调用通用的处理方法 返回Map
  529. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  530. //获取数据转bean
  531. for (int i = 0; i < resultList.size(); i++) {
  532. Map<String, String> tempMap = resultList.get(i);
  533. RoutingIfsItem tempItem = new RoutingIfsItem();
  534. //设置参数
  535. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  536. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  537. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  538. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  539. tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
  540. tempItem.setOperationNo(tempMap.get("OPERATION_NO"));
  541. tempItem.setOperationDesc(tempMap.get("OPERATION_DESCRIPTION"));
  542. tempItem.setWorkCenterNo(tempMap.get("WORK_CENTER_NO"));
  543. tempItem.setEfficiencyFactor(tempMap.get("EFFICIENCY_FACTOR"));
  544. tempItem.setMachSetupTime(tempMap.get("MACH_SETUP_TIME"));
  545. tempItem.setMachRunFactor(tempMap.get("MACH_RUN_FACTOR"));
  546. tempItem.setRunTimeCode(tempMap.get("RUN_TIME_CODE"));
  547. tempItem.setLaborRunFactor(tempMap.get("LABOR_RUN_FACTOR"));
  548. tempItem.setLaborSetupTime(tempMap.get("LABOR_SETUP_TIME"));
  549. tempItem.setCrewSize(tempMap.get("CREW_SIZE"));
  550. tempItem.setSetupCrewSize(tempMap.get("SETUP_CREW_SIZE"));
  551. tempItem.setOperationId(tempMap.get("OPERATION_ID"));
  552. tempItem.setMachineNo(tempMap.get("MACHINE_NO"));
  553. tempItem.setOutsideOpItem(tempMap.get("OUTSIDE_OP_ITEM"));
  554. tempItem.setLaborClassNo(tempMap.get("LABOR_CLASS_NO"));
  555. tempItem.setSetupLaborClassNo(tempMap.get("SETUP_LABOR_CLASS_NO"));
  556. tempItem.setOverlap(tempMap.get("OVERLAP"));
  557. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  558. tempItem.setContract(tempMap.get("CONTRACT"));
  559. tempItem.setPartNo(tempMap.get("PART_NO"));
  560. //添加对象
  561. resultItems.add(tempItem);
  562. }
  563. return resultItems;
  564. }
  565. }
  566. /**
  567. * @description: 插入Routing Item
  568. * @author LR
  569. * @date 2024/12/11 16:17
  570. * @version 1.0
  571. */
  572. public static Map<String, String> insertRoutingItem(Server srv, RoutingIfsItem inData) throws APException {
  573. //公共参数
  574. String contract = inData.getContract();// 域
  575. String partNo = inData.getPartNo();// 物料编码
  576. String routingRevision = inData.getRoutingRevision();// 版本
  577. String routingType = inData.getRoutingType();// 分类
  578. String alternativeNo = inData.getAlternativeNo();
  579. String operationNo = inData.getOperationNo();
  580. String operationDesc = inData.getOperationDesc();
  581. String workCenterNo = inData.getWorkCenterNo();//
  582. String efficiencyFactor = inData.getEfficiencyFactor();
  583. String machSetupTime = inData.getMachSetupTime();
  584. String machRunFactor = inData.getMachRunFactor();
  585. String runTimeCode = inData.getRunTimeCode();
  586. String laborRunFactor = inData.getLaborRunFactor();
  587. String laborSetupTime = inData.getLaborSetupTime();
  588. String crewSize = inData.getCrewSize();
  589. String setupCrewSize = inData.getSetupCrewSize();
  590. String machineNo = inData.getMachineNo();
  591. String noteText = inData.getNoteText();
  592. String outsideOpItem = inData.getOutsideOpItem();
  593. String laborClassNo = inData.getLaborClassNo();
  594. String setupLaborClassNo = inData.getSetupLaborClassNo();
  595. String overlap = "0";
  596. String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00";
  597. //入参
  598. Map<String, String> inParam = new HashMap<>();
  599. //填充参数
  600. inParam.put("OBJID", "");
  601. inParam.put("OBJVERSION", "");
  602. inParam.put("PART_NO", partNo); // 物料编码
  603. inParam.put("CONTRACT", contract); // 域
  604. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  605. inParam.put("BOM_TYPE", routingType); // BOM类型
  606. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  607. inParam.put("OPERATION_NO", operationNo); // 工序
  608. inParam.put("OPERATION_DESCRIPTION", operationDesc); // 工序描述
  609. inParam.put("LOT_QTY", "1"); // 默认值
  610. inParam.put("WORK_CENTER_NO", workCenterNo); // 加工中心
  611. inParam.put("MACHINE_NO", machineNo); // 机台
  612. inParam.put("EFFICIENCY_FACTOR", efficiencyFactor); // 效率
  613. inParam.put("MACH_SETUP_TIME", machSetupTime); // 机器调机时间
  614. inParam.put("MACH_RUN_FACTOR", machRunFactor); // 机器效率
  615. inParam.put("RUN_TIME_CODE", runTimeCode); // 运行编码
  616. inParam.put("MOVE_TIME", "0"); // 固定值
  617. inParam.put("LABOR_RUN_FACTOR", laborRunFactor); // 人员运行效率
  618. inParam.put("LABOR_SETUP_TIME", laborSetupTime); // 人员调机时间
  619. inParam.put("CREW_SIZE", crewSize); // 生产过程所需人数
  620. inParam.put("SETUP_CREW_SIZE", setupCrewSize); // 调机过程所需人数
  621. inParam.put("NOTE_TEXT", noteText); // 备注
  622. inParam.put("OUTSIDE_OP_ITEM", outsideOpItem); // 外协料号
  623. inParam.put("LABOR_CLASS_NO", laborClassNo); // 人员等级
  624. inParam.put("SETUP_LABOR_CLASS_NO", setupLaborClassNo); // 调机人员等级
  625. inParam.put("OVERLAP", overlap); // OVERLAP
  626. // 固定的数值
  627. inParam.put("FIXED_RESOURCE_SHARE", "1"); // 固定值
  628. inParam.put("PARALLEL_OPERATION", "Not parallel"); // 固定值
  629. inParam.put("MILESTONE_OPERATION_DB", "FALSE"); // 固定值
  630. inParam.put("INCREASE_LOTSIZE_ON_SCRAP_DB", "FALSE"); // 固定值
  631. inParam.put("OVERLAP_UNIT", "Units"); // 固定值
  632. inParam.put("INCLUDE_SETUP_FOR_OVERLAP_DB", "N"); // 固定值
  633. inParam.put("OUTSIDE_OP_SUPPLY_TYPE", "Purchase Requisition"); // 固定值
  634. inParam.put("OUTSIDE_OP_BACKFLUSH", "Disallowed"); // 固定值
  635. inParam.put("SEND_TO_NEXT_SUPPLIER_DB", "FALSE"); // 固定值
  636. inParam.put("OPERATION_USAGE_FACTOR", "1"); // 固定值
  637. inParam.put("PHASE_IN_DATE", createDate); // 固定值
  638. inParam.put("PHASE_OUT_DATE", ""); // 固定值
  639. //执行check的操作
  640. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  641. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  642. //执行do的操作
  643. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  644. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  645. //返回结果集
  646. return resultMap;
  647. }
  648. /**
  649. * @description: 修改 Routing Item
  650. * @author LR
  651. * @date 2024/12/11 16:22
  652. * @version 1.0
  653. */
  654. public static Map<String, String> modifyRoutingItem(Server srv, RoutingIfsItem inData) throws APException {
  655. //公共参数
  656. String ifsRowId = inData.getIfsRowId();// 域
  657. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  658. String operationNo = inData.getOperationNo();
  659. String operationDesc = inData.getOperationDesc();
  660. String workCenterNo = inData.getWorkCenterNo();//
  661. String efficiencyFactor = inData.getEfficiencyFactor();
  662. String machSetupTime = inData.getMachSetupTime();
  663. String machRunFactor = inData.getMachRunFactor();
  664. String runTimeCode = inData.getRunTimeCode();
  665. String laborRunFactor = inData.getLaborRunFactor();
  666. String laborSetupTime = inData.getLaborSetupTime();
  667. String crewSize = inData.getCrewSize();
  668. String setupCrewSize = inData.getSetupCrewSize();
  669. String machineNo = inData.getMachineNo();
  670. String noteText = inData.getNoteText();
  671. String outsideOpItem = inData.getOutsideOpItem();
  672. String laborClassNo = inData.getLaborClassNo();
  673. String setupLaborClassNo = inData.getSetupLaborClassNo();
  674. String overlap = "0";
  675. //入参
  676. Map<String, String> inParam = new HashMap<>();
  677. //填充参数
  678. inParam.put("OBJID", ifsRowId);
  679. inParam.put("OBJVERSION", ifsRowVersion);
  680. inParam.put("OPERATION_NO", operationNo); // 工序
  681. inParam.put("OPERATION_DESCRIPTION", operationDesc); // 工序描述
  682. inParam.put("WORK_CENTER_NO", workCenterNo); // 加工中心
  683. inParam.put("MACHINE_NO", machineNo); // 机台
  684. inParam.put("EFFICIENCY_FACTOR", efficiencyFactor); // 效率
  685. inParam.put("MACH_SETUP_TIME", machSetupTime); // 机器调机时间
  686. inParam.put("MACH_RUN_FACTOR", machRunFactor); // 机器效率
  687. inParam.put("RUN_TIME_CODE", runTimeCode); // 运行编码
  688. inParam.put("MOVE_TIME", "0"); // 固定值
  689. inParam.put("LABOR_RUN_FACTOR", laborRunFactor); // 人员运行效率
  690. inParam.put("LABOR_SETUP_TIME", laborSetupTime); // 人员调机时间
  691. inParam.put("CREW_SIZE", crewSize); // 生产过程所需人数
  692. inParam.put("SETUP_CREW_SIZE", setupCrewSize); // 调机过程所需人数
  693. inParam.put("NOTE_TEXT", noteText); // 备注
  694. inParam.put("OUTSIDE_OP_ITEM", outsideOpItem); // 外协料号
  695. inParam.put("LABOR_CLASS_NO", laborClassNo); // 人员等级
  696. inParam.put("SETUP_LABOR_CLASS_NO", setupLaborClassNo); // 调机人员等级
  697. inParam.put("OVERLAP", overlap); // OVERLAP
  698. //执行check的操作
  699. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  700. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  701. //执行do的操作
  702. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  703. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  704. //返回结果集
  705. return resultMap;
  706. }
  707. /**
  708. * @description: 删除 Routing Item
  709. * @author LR
  710. * @date 2024/12/11 16:24
  711. * @version 1.0
  712. */
  713. public static Map<String, String> removeRoutingItem(Server srv, RoutingIfsItem inData) throws APException {
  714. //公共参数
  715. String ifsRowId = inData.getIfsRowId();//
  716. String ifsRowVersion = inData.getIfsRowVersion();//
  717. //入参
  718. Map<String, String> inParam = new HashMap<>();
  719. //填充参数
  720. inParam.put("OBJID", ifsRowId);
  721. inParam.put("OBJVERSION", ifsRowVersion);
  722. //执行check的操作
  723. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  724. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  725. //执行do的操作
  726. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  727. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  728. //返回结果集
  729. return resultMap;
  730. }
  731. /**
  732. * @description: 查询Routing Tool
  733. * @author LR
  734. * @date 2024/12/11 16:27
  735. * @version 1.0
  736. */
  737. public static Map<String, String> getRoutingTool(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo,
  738. String toolId) throws APException {
  739. StringBuilder searchSql = new StringBuilder();
  740. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
  741. searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, TOOL_ID, TOOL_QUANTITY, NOTE_TEXT");
  742. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
  743. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
  744. //设置查询的入参
  745. Map<String, String> inParam = new HashMap<>();
  746. inParam.put("contract", contract);
  747. inParam.put("partNo", partNo);
  748. inParam.put("routingRevision", routingRevision);
  749. inParam.put("routingType", routingType);
  750. inParam.put("alternativeNo", alternativeNo);
  751. //添加判断的查询条件
  752. if(!(null == toolId || "".equals(toolId))) {
  753. searchSql.append(" AND TOOL_ID = :toolId");
  754. inParam.put("toolId", toolId);
  755. }
  756. //调用查询的通用方法
  757. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  758. //判断能否返回
  759. if (recordCollection == null) {
  760. return null;
  761. } else {
  762. Record record = recordCollection.get(0);
  763. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(record);
  764. return resultMap;
  765. }
  766. }
  767. /**
  768. * @description: copy part 使用的查询方法
  769. * @author LR
  770. * @date 2025/5/21 16:02
  771. * @version 1.0
  772. */
  773. public static List<RoutingIfsTool> getRoutingToolsWithCopyPart(Server srv, String contract, String partNo) throws APException {
  774. StringBuilder searchSql = new StringBuilder();
  775. searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO, OPERATION_NO,");
  776. searchSql.append(" TOOL_ID, TOOL_QUANTITY, OBJID ifsRowId, OBJVERSION ifsRowVersion, NOTE_TEXT");
  777. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
  778. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo");
  779. //设置查询的入参
  780. Map<String, String> inParam = new HashMap<>();
  781. inParam.put("contract", contract);
  782. inParam.put("partNo", partNo);
  783. //调用查询的通用方法
  784. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  785. //判断能否返回
  786. if (recordCollection == null) {
  787. return new ArrayList<>();
  788. } else {
  789. List<RoutingIfsTool> resultItems = new ArrayList<>();
  790. //调用通用的处理方法 返回Map
  791. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  792. //判断是否存在数据
  793. if(resultList == null) {
  794. return resultItems;
  795. }
  796. //获取数据转bean
  797. for (int i = 0; i < resultList.size(); i++) {
  798. Map<String, String> tempMap = resultList.get(i);
  799. RoutingIfsTool tempItem = new RoutingIfsTool();
  800. //设置参数
  801. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  802. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  803. tempItem.setContract(tempMap.get("CONTRACT"));
  804. tempItem.setPartNo(tempMap.get("PART_NO"));
  805. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  806. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  807. tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
  808. tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
  809. tempItem.setToolId(tempMap.get("TOOL_ID")); //
  810. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  811. //添加对象
  812. resultItems.add(tempItem);
  813. }
  814. return resultItems;
  815. }
  816. }
  817. /**
  818. * @description: 同步数据查询routing 工具
  819. * @author LR
  820. * @date 2025/7/4 16:34
  821. * @version 1.0
  822. */
  823. public static List<RoutingIfsTool> getRoutingToolsForSync(Server srv, String contract, String partNo, String routingRevision,
  824. String routingType, String alternativeNo, String operationNo) throws APException {
  825. StringBuilder searchSql = new StringBuilder();
  826. searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO, OPERATION_NO,");
  827. searchSql.append(" TOOL_ID, TOOL_QUANTITY, OBJID ifsRowId, OBJVERSION ifsRowVersion, NOTE_TEXT");
  828. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
  829. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision");
  830. searchSql.append(" AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
  831. //设置查询的入参
  832. Map<String, String> inParam = new HashMap<>();
  833. inParam.put("contract", contract);
  834. inParam.put("partNo", partNo);
  835. inParam.put("routingRevision", routingRevision);
  836. inParam.put("routingType", routingType);
  837. inParam.put("alternativeNo", alternativeNo);
  838. //添加判断的查询条件
  839. if(!(null == operationNo || "".equals(operationNo))) {
  840. searchSql.append(" AND OPERATION_NO = :operationNo");
  841. inParam.put("operationNo", operationNo);
  842. }
  843. //调用查询的通用方法
  844. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  845. //判断能否返回
  846. if (recordCollection == null) {
  847. return new ArrayList<>();
  848. } else {
  849. List<RoutingIfsTool> resultItems = new ArrayList<>();
  850. //调用通用的处理方法 返回Map
  851. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  852. //判断是否存在数据
  853. if(resultList == null) {
  854. return resultItems;
  855. }
  856. //获取数据转bean
  857. for (int i = 0; i < resultList.size(); i++) {
  858. Map<String, String> tempMap = resultList.get(i);
  859. RoutingIfsTool tempItem = new RoutingIfsTool();
  860. //设置参数
  861. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  862. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  863. tempItem.setContract(tempMap.get("CONTRACT"));
  864. tempItem.setPartNo(tempMap.get("PART_NO"));
  865. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  866. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  867. tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
  868. tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
  869. tempItem.setToolId(tempMap.get("TOOL_ID")); //
  870. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  871. //添加对象
  872. resultItems.add(tempItem);
  873. }
  874. return resultItems;
  875. }
  876. }
  877. /**
  878. * @description: 查询Routing Tool的所有信息
  879. * @author LR
  880. * @date 2024/12/11 16:30
  881. * @version 1.0
  882. */
  883. public static List<Map<String, String>> getRoutingTools(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo) throws APException {
  884. StringBuilder searchSql = new StringBuilder();
  885. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
  886. searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, TOOL_ID, TOOL_QUANTITY, NOTE_TEXT");
  887. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
  888. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
  889. //设置查询的入参
  890. Map<String, String> inParam = new HashMap<>();
  891. inParam.put("contract", contract);
  892. inParam.put("partNo", partNo);
  893. inParam.put("routingRevision", routingRevision);
  894. inParam.put("routingType", routingType);
  895. inParam.put("alternativeNo", alternativeNo);
  896. //调用查询的通用方法
  897. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  898. //判断能否返回
  899. if (recordCollection == null) {
  900. return new ArrayList<>();
  901. } else {
  902. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  903. return resultList;
  904. }
  905. }
  906. /**
  907. * @description: 新增 Routing Tool信息
  908. * @author LR
  909. * @date 2024/12/11 16:47
  910. * @version 1.0
  911. */
  912. public static Map<String, String> insertRoutingTool(Server srv, RoutingIfsTool inData) throws APException {
  913. //公共参数
  914. String contract = inData.getContract();// 域
  915. String partNo = inData.getPartNo();// 物料编码
  916. String routingRevision = inData.getRoutingRevision();// 版本
  917. String routingType = inData.getRoutingType();// 分类
  918. String alternativeNo = inData.getAlternativeNo();
  919. String operationNo = inData.getOperationNo();
  920. String operationId = inData.getOperationId();
  921. String toolId = inData.getToolId();
  922. String toolQuantity = inData.getToolQuantity();
  923. String noteText = inData.getNoteText();
  924. //入参
  925. Map<String, String> inParam = new HashMap<>();
  926. //填充参数
  927. inParam.put("OBJID", "");
  928. inParam.put("OBJVERSION", "");
  929. inParam.put("CONTRACT", contract); // 域
  930. inParam.put("PART_NO", partNo); // 物料编码
  931. inParam.put("BOM_TYPE", routingType); // BOM类型
  932. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  933. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  934. inParam.put("OPERATION_NO", operationNo); // 工序
  935. inParam.put("OPERATION_ID", operationId); // 工序ID
  936. inParam.put("TOOL_ID", toolId); // 工具编码
  937. inParam.put("TOOL_QUANTITY", toolQuantity); // 工具数量
  938. inParam.put("NOTE_TEXT", noteText); // 备注
  939. //执行check的操作
  940. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  941. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  942. //执行do的操作
  943. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  944. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  945. //返回结果集
  946. return resultMap;
  947. }
  948. /**
  949. * @description: 修改 Routing Tool
  950. * @author LR
  951. * @date 2024/12/11 17:47
  952. * @version 1.0
  953. */
  954. public static Map<String, String> modifyRoutingTool(Server srv, RoutingIfsTool inData) throws APException {
  955. //公共参数
  956. String ifsRowId = inData.getIfsRowId();// 域
  957. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  958. String toolId = inData.getToolId();
  959. String toolQuantity = inData.getToolQuantity();
  960. String noteText = inData.getNoteText();
  961. //入参
  962. Map<String, String> inParam = new HashMap<>();
  963. //填充参数
  964. inParam.put("OBJID", ifsRowId);
  965. inParam.put("OBJVERSION", ifsRowVersion);
  966. inParam.put("TOOL_ID", toolId); // 工具编码
  967. inParam.put("TOOL_QUANTITY", toolQuantity); // 工具数量
  968. inParam.put("NOTE_TEXT", noteText); // 备注
  969. //执行check的操作
  970. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  971. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  972. //执行do的操作
  973. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  974. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  975. //返回结果集
  976. return resultMap;
  977. }
  978. /**
  979. * @description: 删除 Routing Tool
  980. * @author LR
  981. * @date 2024/12/11 17:50
  982. * @version 1.0
  983. */
  984. public static Map<String, String> removeRoutingTool(Server srv, RoutingIfsTool inData) throws APException {
  985. //公共参数
  986. String ifsRowId = inData.getIfsRowId();// 域
  987. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  988. //入参
  989. Map<String, String> inParam = new HashMap<>();
  990. //填充参数
  991. inParam.put("OBJID", ifsRowId);
  992. inParam.put("OBJVERSION", ifsRowVersion);
  993. //执行check的操作
  994. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  995. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  996. //执行do的操作
  997. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  998. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  999. //返回结果集
  1000. return resultMap;
  1001. }
  1002. /**
  1003. * @description: 查询Routing Tool
  1004. * @author LR
  1005. * @date 2024/12/11 16:27
  1006. * @version 1.0
  1007. */
  1008. public static Map<String, String> getRoutingGuideLine(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo,
  1009. String operationId, String guidelineSeq) throws APException {
  1010. StringBuilder searchSql = new StringBuilder();
  1011. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, GUIDELINE_SEQ guidelineSeq,");
  1012. searchSql.append(" GUIDELINE_DESC guidelineDesc, GUIDELINE_TEXT guidelineText");
  1013. searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE");
  1014. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  1015. searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo AND OPERATION_ID = :operationId");
  1016. searchSql.append(" AND GUIDELINE_SEQ = :guidelineSeq");
  1017. //设置查询的入参
  1018. Map<String, String> inParam = new HashMap<>();
  1019. inParam.put("contract", contract);
  1020. inParam.put("partNo", partNo);
  1021. inParam.put("routingRevision", routingRevision);
  1022. inParam.put("routingType", routingType);
  1023. inParam.put("alternativeNo", alternativeNo);
  1024. inParam.put("operationId", operationId);
  1025. inParam.put("guidelineSeq", guidelineSeq);
  1026. //调用查询的通用方法
  1027. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  1028. //判断能否返回
  1029. if (recordCollection == null) {
  1030. return null;
  1031. } else {
  1032. Record record = recordCollection.get(0);
  1033. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(record);
  1034. return resultMap;
  1035. }
  1036. }
  1037. /**
  1038. * @description: 查询Routing Tool的所有信息
  1039. * @author LR
  1040. * @date 2024/12/11 16:30
  1041. * @version 1.0
  1042. */
  1043. public static List<Map<String, String>> getRoutingGuideLines(Server srv, String contract, String partNo, String routingRevision, String routingType,
  1044. String alternativeNo, String operationId) throws APException {
  1045. StringBuilder searchSql = new StringBuilder();
  1046. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, GUIDELINE_SEQ guidelineSeq,");
  1047. searchSql.append(" GUIDELINE_DESC guidelineDesc, GUIDELINE_TEXT guidelineText");
  1048. searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE");
  1049. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  1050. searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo AND OPERATION_ID = :operationId");
  1051. searchSql.append(" AND GUIDELINE_SEQ = :guidelineSeq");
  1052. //设置查询的入参
  1053. Map<String, String> inParam = new HashMap<>();
  1054. inParam.put("contract", contract);
  1055. inParam.put("partNo", partNo);
  1056. inParam.put("routingRevision", routingRevision);
  1057. inParam.put("routingType", routingType);
  1058. inParam.put("alternativeNo", alternativeNo);
  1059. inParam.put("operationId", operationId);
  1060. //调用查询的通用方法
  1061. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  1062. //判断能否返回
  1063. if (recordCollection == null) {
  1064. return new ArrayList<>();
  1065. } else {
  1066. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  1067. return resultList;
  1068. }
  1069. }
  1070. /**
  1071. * @description: 查询RoutingIfsGuideLine 集合
  1072. * @author LR
  1073. * @date 2025/5/21 15:42
  1074. * @version 1.0
  1075. */
  1076. public static List<RoutingIfsGuideLine> getRoutingGuideLinesWithCopyPart(Server srv, String contract, String partNo) throws APException {
  1077. StringBuilder searchSql = new StringBuilder();
  1078. searchSql.append("SELECT rog.CONTRACT, rog.PART_NO, rog.ROUTING_REVISION, rog.BOM_TYPE, rog.ALTERNATIVE_NO, rot.OPERATION_NO, rog.GUIDELINE_NO,");
  1079. searchSql.append(" rog.GUIDELINE_SEQ, rog.OBJID ifsRowId, rog.OBJVERSION ifsRowVersion");
  1080. searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE rog");
  1081. searchSql.append(" LEFT JOIN IFSAPP.ROUTING_OPERATION rot");
  1082. searchSql.append(" ON rot.CONTRACT = rog.CONTRACT AND rot.PART_NO = rog.PART_NO AND rot.ROUTING_REVISION = rog.ROUTING_REVISION ");
  1083. searchSql.append(" AND rot.BOM_TYPE = rog.BOM_TYPE AND rot.ALTERNATIVE_NO = rog.ALTERNATIVE_NO AND rot.OPERATION_ID = rog.OPERATION_ID");
  1084. searchSql.append(" WHERE rog.CONTRACT = :contract AND rog.PART_NO = :partNo");
  1085. //设置查询的入参
  1086. Map<String, String> inParam = new HashMap<>();
  1087. inParam.put("contract", contract);
  1088. inParam.put("partNo", partNo);
  1089. //调用查询的通用方法
  1090. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  1091. //判断能否返回
  1092. if (recordCollection == null) {
  1093. return new ArrayList<>();
  1094. } else {
  1095. List<RoutingIfsGuideLine> resultItems = new ArrayList<>();
  1096. //调用通用的处理方法 返回Map
  1097. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  1098. //判断是否存在数据
  1099. if(resultList == null) {
  1100. return resultItems;
  1101. }
  1102. //获取数据转bean
  1103. for (int i = 0; i < resultList.size(); i++) {
  1104. Map<String, String> tempMap = resultList.get(i);
  1105. RoutingIfsGuideLine tempItem = new RoutingIfsGuideLine();
  1106. //设置参数
  1107. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  1108. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  1109. tempItem.setContract(tempMap.get("CONTRACT"));
  1110. tempItem.setPartNo(tempMap.get("PART_NO"));
  1111. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  1112. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  1113. tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
  1114. tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
  1115. tempItem.setGuidelineSeq(tempMap.get("GUIDELINE_SEQ"));
  1116. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  1117. //添加对象
  1118. resultItems.add(tempItem);
  1119. }
  1120. return resultItems;
  1121. }
  1122. }
  1123. public static List<RoutingIfsGuideLine> getRoutingGuideLinesForSync(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo, String operationNo) throws APException {
  1124. StringBuilder searchSql = new StringBuilder();
  1125. searchSql.append("SELECT rog.CONTRACT, rog.PART_NO, rog.ROUTING_REVISION, rog.BOM_TYPE, rog.ALTERNATIVE_NO, rot.OPERATION_NO, rog.GUIDELINE_NO,");
  1126. searchSql.append(" rog.GUIDELINE_SEQ, rog.OBJID ifsRowId, rog.OBJVERSION ifsRowVersion");
  1127. searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE rog");
  1128. searchSql.append(" LEFT JOIN IFSAPP.ROUTING_OPERATION rot");
  1129. searchSql.append(" ON rot.CONTRACT = rog.CONTRACT AND rot.PART_NO = rog.PART_NO AND rot.ROUTING_REVISION = rog.ROUTING_REVISION ");
  1130. searchSql.append(" AND rot.BOM_TYPE = rog.BOM_TYPE AND rot.ALTERNATIVE_NO = rog.ALTERNATIVE_NO AND rot.OPERATION_ID = rog.OPERATION_ID");
  1131. searchSql.append(" WHERE rog.CONTRACT = :contract AND rog.PART_NO = :partNo AND rog.ROUTING_REVISION = :routingRevision");
  1132. searchSql.append(" AND rog.BOM_TYPE = :routingType AND rog.ALTERNATIVE_NO = :alternativeNo");
  1133. //设置查询的入参
  1134. Map<String, String> inParam = new HashMap<>();
  1135. inParam.put("contract", contract);
  1136. inParam.put("partNo", partNo);
  1137. inParam.put("routingRevision", routingRevision);
  1138. inParam.put("routingType", routingType);
  1139. inParam.put("alternativeNo", alternativeNo);
  1140. //添加判断的查询条件
  1141. if(!(null == operationNo || "".equals(operationNo))) {
  1142. searchSql.append(" AND rog.OPERATION_NO = :operationNo");
  1143. inParam.put("operationNo", operationNo);
  1144. }
  1145. //调用查询的通用方法
  1146. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  1147. //判断能否返回
  1148. if (recordCollection == null) {
  1149. return new ArrayList<>();
  1150. } else {
  1151. List<RoutingIfsGuideLine> resultItems = new ArrayList<>();
  1152. //调用通用的处理方法 返回Map
  1153. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  1154. //判断是否存在数据
  1155. if(resultList == null) {
  1156. return resultItems;
  1157. }
  1158. //获取数据转bean
  1159. for (int i = 0; i < resultList.size(); i++) {
  1160. Map<String, String> tempMap = resultList.get(i);
  1161. RoutingIfsGuideLine tempItem = new RoutingIfsGuideLine();
  1162. //设置参数
  1163. tempItem.setIfsRowId(tempMap.get("IFSROWID"));
  1164. tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
  1165. tempItem.setContract(tempMap.get("CONTRACT"));
  1166. tempItem.setPartNo(tempMap.get("PART_NO"));
  1167. tempItem.setRoutingType(tempMap.get("BOM_TYPE"));
  1168. tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION"));
  1169. tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO"));
  1170. tempItem.setOperationNo(tempMap.get("OPERATION_NO")); //
  1171. tempItem.setGuidelineSeq(tempMap.get("GUIDELINE_SEQ"));
  1172. tempItem.setNoteText(tempMap.get("NOTE_TEXT"));
  1173. //添加对象
  1174. resultItems.add(tempItem);
  1175. }
  1176. return resultItems;
  1177. }
  1178. }
  1179. /**
  1180. * @description: 新增 Routing Guide Line
  1181. * @author LR
  1182. * @date 2024/12/11 16:47
  1183. * @version 1.0
  1184. */
  1185. public static Map<String, String> insertRoutingGuideLine(Server srv, RoutingIfsGuideLine inData) throws APException {
  1186. //公共参数
  1187. String contract = inData.getContract();// 域
  1188. String partNo = inData.getPartNo();// 物料编码
  1189. String routingRevision = inData.getRoutingRevision();// 版本
  1190. String routingType = inData.getRoutingType();// 分类
  1191. String alternativeNo = inData.getAlternativeNo();
  1192. String operationId = inData.getOperationId();
  1193. String guidelineSeq = inData.getGuidelineSeq(); //
  1194. String guidelineDesc = inData.getGuidelineDesc(); //
  1195. String guidelineText = inData.getGuidelineText(); //
  1196. String operWorkGuideType = inData.getOperWorkGuideType(); //
  1197. String signOffReq = inData.getSignOffReq(); //
  1198. String inspectSignOffReq = inData.getInspectSignOffReq();//
  1199. //入参
  1200. Map<String, String> inParam = new HashMap<>();
  1201. //填充参数
  1202. inParam.put("OBJID", "");
  1203. inParam.put("OBJVERSION", "");
  1204. inParam.put("CONTRACT", contract); // 域
  1205. inParam.put("PART_NO", partNo); // 物料编码
  1206. inParam.put("BOM_TYPE", routingType); // BOM类型
  1207. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  1208. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  1209. inParam.put("OPERATION_ID", operationId); // 工序ID
  1210. inParam.put("REFERENCE_NUMBER", ""); // 空值
  1211. inParam.put("GUIDELINE_SEQ", guidelineSeq); // 序号
  1212. inParam.put("GUIDELINE_DESC", guidelineDesc); // 描述
  1213. inParam.put("GUIDELINE_TEXT", guidelineText); // 备注
  1214. inParam.put("OPER_WORK_GUIDE_TYPE", operWorkGuideType); // 分类
  1215. inParam.put("SIGN_OFF_REQ", signOffReq); // 签字要求
  1216. inParam.put("EMP_QUALIF_PROF_ID", ""); // 空值
  1217. inParam.put("SIGN_OFF_NOTE", ""); // 空值
  1218. inParam.put("INSPECT_SIGN_OFF_REQ", inspectSignOffReq); // 检验签字要求
  1219. inParam.put("INSP_EMP_QUALIF_PROF_ID", ""); // 空值
  1220. inParam.put("INSPECT_SIGN_OFF_NOTE", ""); // 空值
  1221. //执行check的操作
  1222. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1223. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  1224. //执行do的操作
  1225. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1226. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  1227. //返回结果集
  1228. return resultMap;
  1229. }
  1230. /**
  1231. * @description: 修改 Routing Guide Line
  1232. * @author LR
  1233. * @date 2024/12/11 17:47
  1234. * @version 1.0
  1235. */
  1236. public static Map<String, String> modifyRoutingGuideLine(Server srv, RoutingIfsGuideLine inData) throws APException {
  1237. //公共参数
  1238. String ifsRowId = inData.getIfsRowId();// 域
  1239. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  1240. String guidelineSeq = inData.getGuidelineSeq(); //
  1241. String guidelineDesc = inData.getGuidelineDesc(); //
  1242. String guidelineText = inData.getGuidelineText(); //
  1243. String operWorkGuideType = inData.getOperWorkGuideType(); //
  1244. String signOffReq = inData.getSignOffReq(); //
  1245. String inspectSignOffReq = inData.getInspectSignOffReq();//
  1246. //入参
  1247. Map<String, String> inParam = new HashMap<>();
  1248. //填充参数
  1249. inParam.put("OBJID", ifsRowId);
  1250. inParam.put("OBJVERSION", ifsRowVersion);
  1251. inParam.put("GUIDELINE_SEQ", guidelineSeq); // 序号
  1252. inParam.put("GUIDELINE_DESC", guidelineDesc); // 描述
  1253. inParam.put("GUIDELINE_TEXT", guidelineText); // 备注
  1254. inParam.put("OPER_WORK_GUIDE_TYPE", operWorkGuideType); // 分类
  1255. inParam.put("SIGN_OFF_REQ", signOffReq); // 签字要求
  1256. inParam.put("INSPECT_SIGN_OFF_REQ", inspectSignOffReq); // 检验签字
  1257. //执行check的操作
  1258. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1259. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  1260. //执行do的操作
  1261. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1262. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  1263. //返回结果集
  1264. return resultMap;
  1265. }
  1266. /**
  1267. * @description: 删除 Routing Guide Line
  1268. * @author LR
  1269. * @date 2024/12/11 17:50
  1270. * @version 1.0
  1271. */
  1272. public static Map<String, String> removeRoutingGuideLine(Server srv, RoutingIfsGuideLine inData) throws APException {
  1273. //公共参数
  1274. String ifsRowId = inData.getIfsRowId();// 域
  1275. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  1276. //入参
  1277. Map<String, String> inParam = new HashMap<>();
  1278. //填充参数
  1279. inParam.put("OBJID", ifsRowId);
  1280. inParam.put("OBJVERSION", ifsRowVersion);
  1281. //执行check的操作
  1282. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1283. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  1284. //执行do的操作
  1285. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1286. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  1287. //返回结果集
  1288. return resultMap;
  1289. }
  1290. }