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.

1062 lines
51 KiB

1 year ago
  1. package com.spring.ifs.api;
  2. import com.spring.ifs.data.*;
  3. import com.spring.ifs.utils.IfsConverterToMap;
  4. import com.spring.ifs.utils.IfsPlsqlUtils;
  5. import com.spring.modules.base.utils.DateUtils;
  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<RoutingHeader> 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 null;
  65. } else {
  66. List<RoutingHeader> 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. RoutingHeader tempItem = new RoutingHeader();
  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, RoutingHeader 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, RoutingHeader 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, RoutingHeader 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, RoutingAlternative 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, RoutingAlternative 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, RoutingAlternative 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, RoutingAlternative 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. "PLAN__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  334. //执行do的操作
  335. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_ALTERNATE_API",
  336. "PLAN__", 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, RoutingAlternative 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 AND OBJVERSION = :ifsRowVersion");
  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 null;
  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<RoutingItem> 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 null;
  464. } else {
  465. List<RoutingItem> 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. RoutingItem tempItem = new RoutingItem();
  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: 插入Routing Item
  504. * @author LR
  505. * @date 2024/12/11 16:17
  506. * @version 1.0
  507. */
  508. public static Map<String, String> insertRoutingItem(Server srv, RoutingItem inData) throws APException {
  509. //公共参数
  510. String contract = inData.getContract();// 域
  511. String partNo = inData.getPartNo();// 物料编码
  512. String routingRevision = inData.getRoutingRevision();// 版本
  513. String routingType = inData.getRoutingType();// 分类
  514. String alternativeNo = inData.getAlternativeNo();
  515. String operationNo = inData.getOperationNo();
  516. String operationDesc = inData.getOperationDesc();
  517. String workCenterNo = inData.getWorkCenterNo();//
  518. String efficiencyFactor = inData.getEfficiencyFactor();
  519. String machSetupTime = inData.getMachSetupTime();
  520. String machRunFactor = inData.getMachRunFactor();
  521. String runTimeCode = inData.getRunTimeCode();
  522. String laborRunFactor = inData.getLaborRunFactor();
  523. String laborSetupTime = inData.getLaborSetupTime();
  524. String crewSize = inData.getCrewSize();
  525. String setupCrewSize = inData.getSetupCrewSize();
  526. String machineNo = inData.getMachineNo();
  527. String noteText = inData.getNoteText();
  528. String outsideOpItem = inData.getOutsideOpItem();
  529. String laborClassNo = inData.getLaborClassNo();
  530. String setupLaborClassNo = inData.getSetupLaborClassNo();
  531. String overlap = "0";
  532. String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00";
  533. //入参
  534. Map<String, String> inParam = new HashMap<>();
  535. //填充参数
  536. inParam.put("OBJID", "");
  537. inParam.put("OBJVERSION", "");
  538. inParam.put("PART_NO", partNo); // 物料编码
  539. inParam.put("CONTRACT", contract); // 域
  540. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  541. inParam.put("BOM_TYPE", routingType); // BOM类型
  542. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  543. inParam.put("OPERATION_NO", operationNo); // 工序
  544. inParam.put("OPERATION_DESCRIPTION", operationDesc); // 工序描述
  545. inParam.put("LOT_QTY", "1"); // 默认值
  546. inParam.put("WORK_CENTER_NO", workCenterNo); // 加工中心
  547. inParam.put("MACHINE_NO", machineNo); // 机台
  548. inParam.put("EFFICIENCY_FACTOR", efficiencyFactor); // 效率
  549. inParam.put("MACH_SETUP_TIME", machSetupTime); // 机器调机时间
  550. inParam.put("MACH_RUN_FACTOR", machRunFactor); // 机器效率
  551. inParam.put("RUN_TIME_CODE", runTimeCode); // 运行编码
  552. inParam.put("MOVE_TIME", "0"); // 固定值
  553. inParam.put("LABOR_RUN_FACTOR", laborRunFactor); // 人员运行效率
  554. inParam.put("LABOR_SETUP_TIME", laborSetupTime); // 人员调机时间
  555. inParam.put("CREW_SIZE", crewSize); // 生产过程所需人数
  556. inParam.put("SETUP_CREW_SIZE", setupCrewSize); // 调机过程所需人数
  557. inParam.put("NOTE_TEXT", noteText); // 备注
  558. inParam.put("OUTSIDE_OP_ITEM", outsideOpItem); // 外协料号
  559. inParam.put("LABOR_CLASS_NO", laborClassNo); // 人员等级
  560. inParam.put("SETUP_LABOR_CLASS_NO", setupLaborClassNo); // 调机人员等级
  561. inParam.put("OVERLAP", overlap); // OVERLAP
  562. // 固定的数值
  563. inParam.put("FIXED_RESOURCE_SHARE", "1"); // 固定值
  564. inParam.put("PARALLEL_OPERATION", "Not parallel"); // 固定值
  565. inParam.put("MILESTONE_OPERATION_DB", "FALSE"); // 固定值
  566. inParam.put("INCREASE_LOTSIZE_ON_SCRAP_DB", "FALSE"); // 固定值
  567. inParam.put("OVERLAP_UNIT", "Units"); // 固定值
  568. inParam.put("INCLUDE_SETUP_FOR_OVERLAP_DB", "N"); // 固定值
  569. inParam.put("OUTSIDE_OP_SUPPLY_TYPE", "Purchase Requisition"); // 固定值
  570. inParam.put("OUTSIDE_OP_BACKFLUSH", "Disallowed"); // 固定值
  571. inParam.put("SEND_TO_NEXT_SUPPLIER_DB", "FALSE"); // 固定值
  572. inParam.put("OPERATION_USAGE_FACTOR", "1"); // 固定值
  573. inParam.put("PHASE_IN_DATE", createDate); // 固定值
  574. inParam.put("PHASE_OUT_DATE", ""); // 固定值
  575. //执行check的操作
  576. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  577. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  578. //执行do的操作
  579. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  580. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  581. //返回结果集
  582. return resultMap;
  583. }
  584. /**
  585. * @description: 修改 Routing Item
  586. * @author LR
  587. * @date 2024/12/11 16:22
  588. * @version 1.0
  589. */
  590. public static Map<String, String> modifyRoutingItem(Server srv, RoutingItem inData) throws APException {
  591. //公共参数
  592. String ifsRowId = inData.getIfsRowId();// 域
  593. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  594. String operationNo = inData.getOperationNo();
  595. String operationDesc = inData.getOperationDesc();
  596. String workCenterNo = inData.getWorkCenterNo();//
  597. String efficiencyFactor = inData.getEfficiencyFactor();
  598. String machSetupTime = inData.getMachSetupTime();
  599. String machRunFactor = inData.getMachRunFactor();
  600. String runTimeCode = inData.getRunTimeCode();
  601. String laborRunFactor = inData.getLaborRunFactor();
  602. String laborSetupTime = inData.getLaborSetupTime();
  603. String crewSize = inData.getCrewSize();
  604. String setupCrewSize = inData.getSetupCrewSize();
  605. String machineNo = inData.getMachineNo();
  606. String noteText = inData.getNoteText();
  607. String outsideOpItem = inData.getOutsideOpItem();
  608. String laborClassNo = inData.getLaborClassNo();
  609. String setupLaborClassNo = inData.getSetupLaborClassNo();
  610. String overlap = "0";
  611. //入参
  612. Map<String, String> inParam = new HashMap<>();
  613. //填充参数
  614. inParam.put("OBJID", ifsRowId);
  615. inParam.put("OBJVERSION", ifsRowVersion);
  616. inParam.put("OPERATION_NO", operationNo); // 工序
  617. inParam.put("OPERATION_DESCRIPTION", operationDesc); // 工序描述
  618. inParam.put("WORK_CENTER_NO", workCenterNo); // 加工中心
  619. inParam.put("MACHINE_NO", machineNo); // 机台
  620. inParam.put("EFFICIENCY_FACTOR", efficiencyFactor); // 效率
  621. inParam.put("MACH_SETUP_TIME", machSetupTime); // 机器调机时间
  622. inParam.put("MACH_RUN_FACTOR", machRunFactor); // 机器效率
  623. inParam.put("RUN_TIME_CODE", runTimeCode); // 运行编码
  624. inParam.put("MOVE_TIME", "0"); // 固定值
  625. inParam.put("LABOR_RUN_FACTOR", laborRunFactor); // 人员运行效率
  626. inParam.put("LABOR_SETUP_TIME", laborSetupTime); // 人员调机时间
  627. inParam.put("CREW_SIZE", crewSize); // 生产过程所需人数
  628. inParam.put("SETUP_CREW_SIZE", setupCrewSize); // 调机过程所需人数
  629. inParam.put("NOTE_TEXT", noteText); // 备注
  630. inParam.put("OUTSIDE_OP_ITEM", outsideOpItem); // 外协料号
  631. inParam.put("LABOR_CLASS_NO", laborClassNo); // 人员等级
  632. inParam.put("SETUP_LABOR_CLASS_NO", setupLaborClassNo); // 调机人员等级
  633. inParam.put("OVERLAP", overlap); // OVERLAP
  634. //执行check的操作
  635. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  636. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  637. //执行do的操作
  638. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  639. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  640. //返回结果集
  641. return resultMap;
  642. }
  643. /**
  644. * @description: 删除 Routing Item
  645. * @author LR
  646. * @date 2024/12/11 16:24
  647. * @version 1.0
  648. */
  649. public static Map<String, String> removeRoutingItem(Server srv, RoutingItem inData) throws APException {
  650. //公共参数
  651. String ifsRowId = inData.getIfsRowId();//
  652. String ifsRowVersion = inData.getIfsRowVersion();//
  653. //入参
  654. Map<String, String> inParam = new HashMap<>();
  655. //填充参数
  656. inParam.put("OBJID", ifsRowId);
  657. inParam.put("OBJVERSION", ifsRowVersion);
  658. //执行check的操作
  659. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  660. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  661. //执行do的操作
  662. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_API",
  663. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  664. //返回结果集
  665. return resultMap;
  666. }
  667. /**
  668. * @description: 查询Routing Tool
  669. * @author LR
  670. * @date 2024/12/11 16:27
  671. * @version 1.0
  672. */
  673. public static Map<String, String> getRoutingTool(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo,
  674. String toolId) throws APException {
  675. StringBuilder searchSql = new StringBuilder();
  676. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
  677. searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, TOOL_ID, TOOL_QUANTITY, NOTE_TEXT");
  678. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
  679. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
  680. //设置查询的入参
  681. Map<String, String> inParam = new HashMap<>();
  682. inParam.put("contract", contract);
  683. inParam.put("partNo", partNo);
  684. inParam.put("routingRevision", routingRevision);
  685. inParam.put("routingType", routingType);
  686. inParam.put("alternativeNo", alternativeNo);
  687. //添加判断的查询条件
  688. if(!(null == toolId || "".equals(toolId))) {
  689. searchSql.append(" AND OPERATION_NO = :toolId");
  690. inParam.put("toolId", toolId);
  691. }
  692. //调用查询的通用方法
  693. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  694. //判断能否返回
  695. if (recordCollection == null) {
  696. return null;
  697. } else {
  698. Record record = recordCollection.get(0);
  699. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(record);
  700. return resultMap;
  701. }
  702. }
  703. /**
  704. * @description: 查询Routing Tool的所有信息
  705. * @author LR
  706. * @date 2024/12/11 16:30
  707. * @version 1.0
  708. */
  709. public static List<Map<String, String>> getRoutingTools(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo) throws APException {
  710. StringBuilder searchSql = new StringBuilder();
  711. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE routingType,");
  712. searchSql.append(" ALTERNATIVE_NO, OPERATION_NO, TOOL_ID, TOOL_QUANTITY, NOTE_TEXT");
  713. searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL");
  714. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo");
  715. //设置查询的入参
  716. Map<String, String> inParam = new HashMap<>();
  717. inParam.put("contract", contract);
  718. inParam.put("partNo", partNo);
  719. inParam.put("routingRevision", routingRevision);
  720. inParam.put("routingType", routingType);
  721. inParam.put("alternativeNo", alternativeNo);
  722. //调用查询的通用方法
  723. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  724. //判断能否返回
  725. if (recordCollection == null) {
  726. return null;
  727. } else {
  728. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  729. return resultList;
  730. }
  731. }
  732. /**
  733. * @description: 新增 Routing Tool信息
  734. * @author LR
  735. * @date 2024/12/11 16:47
  736. * @version 1.0
  737. */
  738. public static Map<String, String> insertRoutingTool(Server srv, RoutingTool inData) throws APException {
  739. //公共参数
  740. String contract = inData.getContract();// 域
  741. String partNo = inData.getPartNo();// 物料编码
  742. String routingRevision = inData.getRoutingRevision();// 版本
  743. String routingType = inData.getRoutingType();// 分类
  744. String alternativeNo = inData.getAlternativeNo();
  745. String operationNo = inData.getOperationNo();
  746. String operationId = inData.getOperationId();
  747. String toolId = inData.getToolId();
  748. String toolQuantity = inData.getToolQuantity();
  749. String noteText = inData.getNoteText();
  750. //入参
  751. Map<String, String> inParam = new HashMap<>();
  752. //填充参数
  753. inParam.put("OBJID", "");
  754. inParam.put("OBJVERSION", "");
  755. inParam.put("CONTRACT", contract); // 域
  756. inParam.put("PART_NO", partNo); // 物料编码
  757. inParam.put("BOM_TYPE", routingType); // BOM类型
  758. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  759. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  760. inParam.put("OPERATION_NO", operationNo); // 工序
  761. inParam.put("OPERATION_ID", operationId); // 工序ID
  762. inParam.put("TOOL_ID", toolId); // 工具编码
  763. inParam.put("TOOL_QUANTITY", toolQuantity); // 工具数量
  764. inParam.put("NOTE_TEXT", noteText); // 备注
  765. //执行check的操作
  766. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  767. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  768. //执行do的操作
  769. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  770. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  771. //返回结果集
  772. return resultMap;
  773. }
  774. /**
  775. * @description: 修改 Routing Tool
  776. * @author LR
  777. * @date 2024/12/11 17:47
  778. * @version 1.0
  779. */
  780. public static Map<String, String> modifyRoutingTool(Server srv, RoutingTool inData) throws APException {
  781. //公共参数
  782. String ifsRowId = inData.getIfsRowId();// 域
  783. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  784. String toolId = inData.getToolId();
  785. String toolQuantity = inData.getToolQuantity();
  786. String noteText = inData.getNoteText();
  787. //入参
  788. Map<String, String> inParam = new HashMap<>();
  789. //填充参数
  790. inParam.put("OBJID", ifsRowId);
  791. inParam.put("OBJVERSION", ifsRowVersion);
  792. inParam.put("TOOL_ID", toolId); // 工具编码
  793. inParam.put("TOOL_QUANTITY", toolQuantity); // 工具数量
  794. inParam.put("NOTE_TEXT", noteText); // 备注
  795. //执行check的操作
  796. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  797. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  798. //执行do的操作
  799. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  800. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  801. //返回结果集
  802. return resultMap;
  803. }
  804. /**
  805. * @description: 删除 Routing Tool
  806. * @author LR
  807. * @date 2024/12/11 17:50
  808. * @version 1.0
  809. */
  810. public static Map<String, String> removeRoutingTool(Server srv, RoutingTool inData) throws APException {
  811. //公共参数
  812. String ifsRowId = inData.getIfsRowId();// 域
  813. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  814. //入参
  815. Map<String, String> inParam = new HashMap<>();
  816. //填充参数
  817. inParam.put("OBJID", ifsRowId);
  818. inParam.put("OBJVERSION", ifsRowVersion);
  819. //执行check的操作
  820. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  821. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  822. //执行do的操作
  823. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPERATION_TOOL_API",
  824. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  825. //返回结果集
  826. return resultMap;
  827. }
  828. /**
  829. * @description: 查询Routing Tool
  830. * @author LR
  831. * @date 2024/12/11 16:27
  832. * @version 1.0
  833. */
  834. public static Map<String, String> getRoutingGuideLine(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo,
  835. String operationId, String guidelineSeq) throws APException {
  836. StringBuilder searchSql = new StringBuilder();
  837. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, GUIDELINE_SEQ guidelineSeq,");
  838. searchSql.append(" GUIDELINE_DESC guidelineDesc, GUIDELINE_TEXT guidelineText");
  839. searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE");
  840. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  841. searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo AND OPERATION_ID = :operationId");
  842. searchSql.append(" AND GUIDELINE_SEQ = :guidelineSeq");
  843. //设置查询的入参
  844. Map<String, String> inParam = new HashMap<>();
  845. inParam.put("contract", contract);
  846. inParam.put("partNo", partNo);
  847. inParam.put("routingRevision", routingRevision);
  848. inParam.put("routingType", routingType);
  849. inParam.put("alternativeNo", alternativeNo);
  850. inParam.put("operationId", operationId);
  851. inParam.put("guidelineSeq", guidelineSeq);
  852. //调用查询的通用方法
  853. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  854. //判断能否返回
  855. if (recordCollection == null) {
  856. return null;
  857. } else {
  858. Record record = recordCollection.get(0);
  859. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(record);
  860. return resultMap;
  861. }
  862. }
  863. /**
  864. * @description: 查询Routing Tool的所有信息
  865. * @author LR
  866. * @date 2024/12/11 16:30
  867. * @version 1.0
  868. */
  869. public static List<Map<String, String>> getRoutingGuideLines(Server srv, String contract, String partNo, String routingRevision, String routingType,
  870. String alternativeNo, String operationId) throws APException {
  871. StringBuilder searchSql = new StringBuilder();
  872. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, GUIDELINE_SEQ guidelineSeq,");
  873. searchSql.append(" GUIDELINE_DESC guidelineDesc, GUIDELINE_TEXT guidelineText");
  874. searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE");
  875. searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision AND BOM_TYPE = :routingType");
  876. searchSql.append(" AND ALTERNATIVE_NO = :alternativeNo AND OPERATION_ID = :operationId");
  877. searchSql.append(" AND GUIDELINE_SEQ = :guidelineSeq");
  878. //设置查询的入参
  879. Map<String, String> inParam = new HashMap<>();
  880. inParam.put("contract", contract);
  881. inParam.put("partNo", partNo);
  882. inParam.put("routingRevision", routingRevision);
  883. inParam.put("routingType", routingType);
  884. inParam.put("alternativeNo", alternativeNo);
  885. inParam.put("operationId", operationId);
  886. //调用查询的通用方法
  887. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  888. //判断能否返回
  889. if (recordCollection == null) {
  890. return null;
  891. } else {
  892. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  893. return resultList;
  894. }
  895. }
  896. /**
  897. * @description: 新增 Routing Guide Line
  898. * @author LR
  899. * @date 2024/12/11 16:47
  900. * @version 1.0
  901. */
  902. public static Map<String, String> insertRoutingGuideLine(Server srv, RoutingGuideLine inData) throws APException {
  903. //公共参数
  904. String contract = inData.getContract();// 域
  905. String partNo = inData.getPartNo();// 物料编码
  906. String routingRevision = inData.getRoutingRevision();// 版本
  907. String routingType = inData.getRoutingType();// 分类
  908. String alternativeNo = inData.getAlternativeNo();
  909. String operationId = inData.getOperationId();
  910. String guidelineSeq = inData.getGuidelineSeq(); //
  911. String guidelineDesc = inData.getGuidelineDesc(); //
  912. String guidelineText = inData.getGuidelineText(); //
  913. String operWorkGuideType = inData.getOperWorkGuideType(); //
  914. String signOffReq = inData.getSignOffReq(); //
  915. String inspectSignOffReq = inData.getInspectSignOffReq();//
  916. //入参
  917. Map<String, String> inParam = new HashMap<>();
  918. //填充参数
  919. inParam.put("OBJID", "");
  920. inParam.put("OBJVERSION", "");
  921. inParam.put("CONTRACT", contract); // 域
  922. inParam.put("PART_NO", partNo); // 物料编码
  923. inParam.put("BOM_TYPE", routingType); // BOM类型
  924. inParam.put("ROUTING_REVISION", routingRevision); // 物料的版本
  925. inParam.put("ALTERNATIVE_NO", alternativeNo); // 替代编码
  926. inParam.put("OPERATION_ID", operationId); // 工序ID
  927. inParam.put("REFERENCE_NUMBER", ""); // 空值
  928. inParam.put("GUIDELINE_SEQ", guidelineSeq); // 序号
  929. inParam.put("GUIDELINE_DESC", guidelineDesc); // 描述
  930. inParam.put("GUIDELINE_TEXT", guidelineText); // 备注
  931. inParam.put("OPER_WORK_GUIDE_TYPE", operWorkGuideType); // 分类
  932. inParam.put("SIGN_OFF_REQ", signOffReq); // 签字要求
  933. inParam.put("EMP_QUALIF_PROF_ID", ""); // 空值
  934. inParam.put("SIGN_OFF_NOTE", ""); // 空值
  935. inParam.put("INSPECT_SIGN_OFF_REQ", inspectSignOffReq); // 检验签字要求
  936. inParam.put("INSP_EMP_QUALIF_PROF_ID", ""); // 空值
  937. inParam.put("INSPECT_SIGN_OFF_NOTE", ""); // 空值
  938. //执行check的操作
  939. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  940. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  941. //执行do的操作
  942. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  943. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  944. //返回结果集
  945. return resultMap;
  946. }
  947. /**
  948. * @description: 修改 Routing Guide Line
  949. * @author LR
  950. * @date 2024/12/11 17:47
  951. * @version 1.0
  952. */
  953. public static Map<String, String> modifyRoutingGuideLine(Server srv, RoutingGuideLine inData) throws APException {
  954. //公共参数
  955. String ifsRowId = inData.getIfsRowId();// 域
  956. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  957. String guidelineSeq = inData.getGuidelineSeq(); //
  958. String guidelineDesc = inData.getGuidelineDesc(); //
  959. String guidelineText = inData.getGuidelineText(); //
  960. String operWorkGuideType = inData.getOperWorkGuideType(); //
  961. String signOffReq = inData.getSignOffReq(); //
  962. String inspectSignOffReq = inData.getInspectSignOffReq();//
  963. //入参
  964. Map<String, String> inParam = new HashMap<>();
  965. //填充参数
  966. inParam.put("OBJID", ifsRowId);
  967. inParam.put("OBJVERSION", ifsRowVersion);
  968. inParam.put("GUIDELINE_SEQ", guidelineSeq); // 序号
  969. inParam.put("GUIDELINE_DESC", guidelineDesc); // 描述
  970. inParam.put("GUIDELINE_TEXT", guidelineText); // 备注
  971. inParam.put("OPER_WORK_GUIDE_TYPE", operWorkGuideType); // 分类
  972. inParam.put("SIGN_OFF_REQ", signOffReq); // 签字要求
  973. inParam.put("INSPECT_SIGN_OFF_REQ", inspectSignOffReq); // 检验签字
  974. //执行check的操作
  975. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  976. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  977. //执行do的操作
  978. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  979. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  980. //返回结果集
  981. return resultMap;
  982. }
  983. /**
  984. * @description: 删除 Routing Guide Line
  985. * @author LR
  986. * @date 2024/12/11 17:50
  987. * @version 1.0
  988. */
  989. public static Map<String, String> removeRoutingGuideLine(Server srv, RoutingGuideLine inData) throws APException {
  990. //公共参数
  991. String ifsRowId = inData.getIfsRowId();// 域
  992. String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
  993. //入参
  994. Map<String, String> inParam = new HashMap<>();
  995. //填充参数
  996. inParam.put("OBJID", ifsRowId);
  997. inParam.put("OBJVERSION", ifsRowVersion);
  998. //执行check的操作
  999. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1000. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  1001. //执行do的操作
  1002. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "ROUTING_OPER_WORK_GUIDE_API",
  1003. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  1004. //返回结果集
  1005. return resultMap;
  1006. }
  1007. }