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.

294 lines
12 KiB

  1. package com.spring.ifs.api;
  2. import com.spring.ifs.data.TechnicalAttribute;
  3. import com.spring.ifs.data.TechnicalClass;
  4. import com.spring.ifs.utils.IfsConverterToMap;
  5. import com.spring.ifs.utils.IfsPlsqlUtils;
  6. import ifs.fnd.ap.*;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. /**
  11. * @description: 处理技术等级的api
  12. * @author LR
  13. * @date 2024/12/9 10:56
  14. * @version 1.0
  15. */
  16. public class TechnicalClassApiTest {
  17. /**
  18. * @description: 查询技术等级的信息
  19. * @author LR
  20. * @date 2024/12/11 11:35
  21. * @version 1.0
  22. */
  23. public static Map<String, String> getTechnicalClass(Server srv, String luName, String keyRef) throws APException {
  24. StringBuilder searchSql = new StringBuilder();
  25. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, LU_NAME, KEY_REF, TECHNICAL_SPEC_NO, TECHNICAL_CLASS,");
  26. searchSql.append(" OK_YES_NO, OK_SIGN, DT_OK");
  27. searchSql.append(" FROM ifsapp.TECHNICAL_OBJECT_REFERENCE");
  28. searchSql.append(" WHERE LU_NAME = :luName and KEY_REF = :keyRef");
  29. //设置查询的入参
  30. Map<String, String> inParam = new HashMap<>();
  31. inParam.put("luName", luName);
  32. inParam.put("keyRef", keyRef);
  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: 新增技术等级的数据
  46. * @author LR
  47. * @date 2024/12/11 11:38
  48. * @version 1.0
  49. */
  50. public static Map<String, String> insertTechnicalClass(Server srv, TechnicalClass inData) throws APException {
  51. //公共参数
  52. String keyRef = inData.getKeyRef();
  53. String luName = inData.getLuName();
  54. String technicalSpecNo = inData.getTechnicalSpecNo(); //
  55. String technicalClass = inData.getTechnicalClass(); //
  56. String okSign = inData.getOkSign(); //
  57. String dtOk = inData.getDtOk();
  58. //是否存在有效值
  59. if(dtOk == null || dtOk.equals("")) {
  60. dtOk = "";
  61. }else {
  62. dtOk = dtOk+"-00.00.00";
  63. }
  64. //入参
  65. Map<String, String> inParam = new HashMap<>();
  66. //填充参数
  67. inParam.put("OBJID", "");
  68. inParam.put("OBJVERSION", "");
  69. inParam.put("LU_NAME", luName); // 属性值
  70. inParam.put("KEY_REF", keyRef); // 物料
  71. inParam.put("TECHNICAL_SPEC_NO", technicalSpecNo); // 固定值
  72. inParam.put("TECHNICAL_CLASS", technicalClass); // 技术等级
  73. inParam.put("OK_YES_NO", "Not Approved"); // 是否批准
  74. inParam.put("OK_SIGN", okSign); // 人员
  75. inParam.put("DT_OK", dtOk); // 时间
  76. //执行存储过程 获取结果集
  77. //执行check的操作
  78. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "TECHNICAL_OBJECT_REFERENCE_API",
  79. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  80. //执行do的操作
  81. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "TECHNICAL_OBJECT_REFERENCE_API",
  82. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  83. //返回结果集
  84. return resultMap;
  85. }
  86. /**
  87. * @description: 修改技术等级的信息
  88. * @author LR
  89. * @date 2024/12/11 11:42
  90. * @version 1.0
  91. */
  92. public static Map<String, String> modifyTechnicalClass(Server srv, TechnicalClass inData) throws APException {
  93. //公共参数
  94. String ifsRowId = inData.getIfsRowId();
  95. String ifsRowVersion = inData.getIfsRowVersion();
  96. String technicalClass = inData.getTechnicalClass();
  97. //入参
  98. Map<String, String> inParam = new HashMap<>();
  99. //填充参数
  100. inParam.put("OBJID", ifsRowId);
  101. inParam.put("OBJVERSION", ifsRowVersion);
  102. inParam.put("TECHNICAL_CLASS", technicalClass);
  103. //执行存储过程 获取结果集
  104. //执行check的操作
  105. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "TECHNICAL_OBJECT_REFERENCE_API",
  106. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  107. //执行do的操作
  108. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "TECHNICAL_OBJECT_REFERENCE_API",
  109. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  110. //返回结果集
  111. return resultMap;
  112. }
  113. /**
  114. * @description: 删除技术等级的信息
  115. * @author LR
  116. * @date 2024/12/11 11:45
  117. * @version 1.0
  118. */
  119. public static void removeTechnicalClass(Server srv, TechnicalClass inData) throws APException {
  120. //公共参数
  121. String ifsRowId = inData.getIfsRowId();
  122. String ifsRowVersion = inData.getIfsRowVersion();
  123. //入参
  124. Map<String, String> inParam = new HashMap<>();
  125. //填充参数
  126. inParam.put("OBJID", ifsRowId);
  127. inParam.put("OBJVERSION", ifsRowVersion);
  128. //执行存储过程 获取结果集
  129. //执行check的操作
  130. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "TECHNICAL_OBJECT_REFERENCE_API",
  131. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  132. //执行do的操作
  133. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "TECHNICAL_OBJECT_REFERENCE_API",
  134. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  135. }
  136. /**
  137. * @description: 查询技术等级的属性
  138. * @author LR
  139. * @date 2024/12/11 13:23
  140. * @version 1.0
  141. */
  142. public static Map<String, String> getTechnicalAttribute(Server srv, String technicalSpecNo, String technicalClass, String attribute) throws APException {
  143. StringBuilder searchSql = new StringBuilder();
  144. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, TECHNICAL_SPEC_NO, TECHNICAL_CLASS, ATTRIB_NUMBER, ATTRIBUTE,");
  145. searchSql.append(" VALUE_NO, LOWER_LIMIT, UPPER_LIMIT, INFO, ALT_VALUE_NO, ALT_UNIT,");
  146. searchSql.append(" CASE WHEN objtype = 'TechnicalSpecNumeric' THEN 'Numeric'");
  147. searchSql.append(" WHEN objtype = 'TechnicalSpecAlphanum' THEN 'Alpha' ELSE '' END attributeType");
  148. searchSql.append(" FROM ifsapp.TECHNICAL_SPECIFICATION_BOTH");
  149. searchSql.append(" WHERE TECHNICAL_SPEC_NO = :technicalSpecNo AND TECHNICAL_CLASS = :technicalClass AND ATTRIBUTE = :attribute");
  150. //设置查询的入参
  151. Map<String, String> inParam = new HashMap<>();
  152. inParam.put("technicalSpecNo", technicalSpecNo);
  153. inParam.put("technicalClass", technicalClass);
  154. inParam.put("attribute", attribute);
  155. //调用查询的通用方法
  156. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  157. //判断能否返回
  158. if (recordCollection == null) {
  159. return null;
  160. } else {
  161. Record recordData = recordCollection.get(0);
  162. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordData);
  163. return resultMap;
  164. }
  165. }
  166. /**
  167. * @description: 查询技术等级的属性集合
  168. * @author LR
  169. * @date 2024/12/11 13:26
  170. * @version 1.0
  171. */
  172. public static List<Map<String, String>> getTechnicalAttributes(Server srv, String technicalSpecNo, String technicalClass) throws APException {
  173. StringBuilder searchSql = new StringBuilder();
  174. searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, TECHNICAL_SPEC_NO, TECHNICAL_CLASS, ATTRIB_NUMBER, ATTRIBUTE,");
  175. searchSql.append(" VALUE_NO, LOWER_LIMIT, UPPER_LIMIT, INFO, ALT_VALUE_NO, ALT_UNIT,");
  176. searchSql.append(" CASE WHEN objtype = 'TechnicalSpecNumeric' THEN 'Numeric'");
  177. searchSql.append(" WHEN objtype = 'TechnicalSpecAlphanum' THEN 'Alpha' ELSE '' END attributeType");
  178. searchSql.append(" FROM ifsapp.TECHNICAL_SPECIFICATION_BOTH");
  179. searchSql.append(" WHERE TECHNICAL_SPEC_NO = :technicalSpecNo AND TECHNICAL_CLASS = :technicalClass");
  180. //设置查询的入参
  181. Map<String, String> inParam = new HashMap<>();
  182. inParam.put("technicalSpecNo", technicalSpecNo);
  183. inParam.put("technicalClass", technicalClass);
  184. //调用查询的通用方法
  185. RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
  186. //判断能否返回
  187. if (recordCollection == null) {
  188. return null;
  189. } else {
  190. //处理结果集
  191. List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
  192. return resultList;
  193. }
  194. }
  195. /**
  196. * @description: 插入技术等级的属性
  197. * @author LR
  198. * @date 2024/12/11 13:55
  199. * @version 1.0
  200. */
  201. public static Map<String, String> modifyTechnicalAttribute(Server srv, TechnicalAttribute inData) throws APException {
  202. //公共参数
  203. String ifsRowId = inData.getIfsRowId();
  204. String ifsRowVersion = inData.getIfsRowVersion();
  205. String valueNo = inData.getValueNo();
  206. String lowerLimit = inData.getLowerLimit();
  207. String upperLimit = inData.getUpperLimit();
  208. String valueText = inData.getValueText();
  209. String attributeType = inData.getAttributeType();
  210. String info = inData.getInfo();
  211. String packageName = "";
  212. //入参
  213. Map<String, String> inParam = new HashMap<>();
  214. //填充参数
  215. inParam.put("OBJID", ifsRowId);
  216. inParam.put("OBJVERSION", ifsRowVersion);
  217. if(!(null == info || "".equals(info))) {
  218. inParam.put("INFO", info);
  219. }
  220. //区分修改的是字符串 还是数字
  221. if("Numeric".equalsIgnoreCase(attributeType)) {
  222. packageName = "TECHNICAL_SPEC_NUMERIC_API";
  223. inParam.put("VALUE_NO", valueNo); // 属性值
  224. //判断上下限
  225. if(!(null == lowerLimit || "".equals(lowerLimit))) {
  226. inParam.put("LOWER_LIMIT", lowerLimit); // 下限
  227. }
  228. if(!(null == upperLimit || "".equals(upperLimit))) {
  229. inParam.put("UPPER_LIMIT", upperLimit); // 上限
  230. }
  231. }else if("Alpha".equalsIgnoreCase(attributeType)) {
  232. packageName = "TECHNICAL_SPEC_ALPHANUM_API";
  233. inParam.put("VALUE_TEXT", valueText); // 属性值
  234. }
  235. //执行check的操作
  236. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, packageName,
  237. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  238. //执行do的操作
  239. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, packageName,
  240. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  241. //返回结果集
  242. return resultMap;
  243. }
  244. /**
  245. * @description: 删除属性的书
  246. * @author LR
  247. * @date 2024/12/11 14:04
  248. * @version 1.0
  249. */
  250. public static void removeTechnicalAttribute(Server srv, TechnicalAttribute inData) throws APException {
  251. //公共参数
  252. String ifsRowId = inData.getIfsRowId();
  253. String ifsRowVersion = inData.getIfsRowVersion();
  254. String attributeType = inData.getAttributeType();
  255. String packageName = "";
  256. //入参
  257. Map<String, String> inParam = new HashMap<>();
  258. //填充参数
  259. inParam.put("OBJID", ifsRowId);
  260. inParam.put("OBJVERSION", ifsRowVersion);
  261. //区分修改的是字符串 还是数字
  262. if("Numeric".equalsIgnoreCase(attributeType)) {
  263. packageName = "TECHNICAL_SPEC_NUMERIC_API";
  264. }else if("Alpha".equalsIgnoreCase(attributeType)) {
  265. packageName = "TECHNICAL_SPEC_ALPHANUM_API";
  266. }
  267. //执行check的操作
  268. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, packageName,
  269. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  270. //执行do的操作
  271. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, packageName,
  272. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  273. }
  274. }