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.

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