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.

259 lines
10 KiB

  1. package com.spring.ifs.bean;
  2. import com.alibaba.fastjson.JSON;
  3. import com.spring.ifs.api.IfsServer;
  4. import com.spring.ifs.api.TechnicalClassApi;
  5. import com.spring.ifs.api.TechnicalClassApiTest;
  6. import com.spring.ifs.data.TechnicalAttribute;
  7. import com.spring.ifs.data.TechnicalClass;
  8. import ifs.fnd.ap.APException;
  9. import ifs.fnd.ap.Server;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. import java.util.HashMap;
  15. import java.util.List;
  16. import java.util.Map;
  17. /**
  18. * @description: 技术等级实现类
  19. * @author LR
  20. * @date 2024/12/9 11:49
  21. * @version 1.0
  22. */
  23. @Component
  24. public class TechnicalClassBeanTest {
  25. @Autowired
  26. private IfsServer ifsServer;
  27. private static final Logger logger = LoggerFactory.getLogger(TechnicalClassBeanTest.class);
  28. /**
  29. * @description: 查询技术等级
  30. * @author LR
  31. * @date 2024/12/16 13:15
  32. * @version 1.0
  33. */
  34. public Map<String, String> getTechnicalClass(TechnicalClass inData) throws APException {
  35. logger.info("Technical Class 查询开始:"+ JSON.toJSONString(inData));
  36. //公共参数
  37. Map<String, String> returnMap = new HashMap<>();
  38. String username = inData.getIfsUsername();
  39. String password = inData.getIfsPassword();
  40. String luName = inData.getLuName(); //
  41. String keyRef = inData.getKeyRef(); //
  42. try{
  43. //获取连接
  44. Server srv = ifsServer.getIfsServer(username, password);
  45. //查询对象
  46. Map<String, String> resultMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  47. //判断查询导数据
  48. if(resultMap == null) {
  49. throw new RuntimeException("查无此技术等级的信息!");
  50. }
  51. //设置ifs 信息
  52. inData.setIfsRowId(resultMap.get("IFSROWID"));
  53. inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
  54. returnMap.put("resultCode", "200");
  55. returnMap.put("obj", JSON.toJSONString(inData));
  56. } catch(APException e){
  57. returnMap.put("resultCode", "400");
  58. returnMap.put("resultMsg", e.getMessage());
  59. }
  60. //打印日志
  61. logger.info("Technical Class 查询结束:"+JSON.toJSONString(inData));
  62. //返回结果集
  63. return returnMap;
  64. }
  65. /**
  66. * @description: 新增
  67. * @author LR
  68. * @date 2024/12/16 13:37
  69. * @version 1.0
  70. */
  71. public Map<String, String> syncTechnicalClass(TechnicalClass inData) throws APException {
  72. logger.info("Technical Class 新增开始:"+JSON.toJSONString(inData));
  73. //公共参数
  74. Map<String, String> returnMap = new HashMap<>();
  75. String username = inData.getIfsUsername();
  76. String password = inData.getIfsPassword();
  77. String luName = inData.getLuName(); //
  78. String keyRef = inData.getKeyRef(); //
  79. try{
  80. //获取连接
  81. Server srv = ifsServer.getIfsServer(username, password);
  82. //查询对象
  83. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  84. //判断查询导数据
  85. if(technicalMap != null && technicalMap.size() > 0) {
  86. throw new RuntimeException("已存在此技术等级的信息!");
  87. }
  88. //调用api同步信息
  89. Map<String, String> resultMap = TechnicalClassApiTest.insertTechnicalClass(srv, inData);
  90. //设置唯一键和版本
  91. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  92. returnMap.put("resultCode", "200");
  93. returnMap.put("obj", JSON.toJSONString(inData));
  94. } catch(APException e){
  95. returnMap.put("resultCode", "400");
  96. returnMap.put("resultMsg", e.getMessage());
  97. }
  98. //插入查询的记录数据
  99. logger.info("Technical Class 新增结束:"+JSON.toJSONString(inData));
  100. //返回结果集
  101. return returnMap;
  102. }
  103. /**
  104. * @description: 修改技术等级的数据
  105. * @author LR
  106. * @date 2024/12/16 13:45
  107. * @version 1.0
  108. */
  109. public Map<String, String> modifyTechnicalClass(TechnicalClass inData) throws APException {
  110. logger.info("Technical Class 修改开始:"+JSON.toJSONString(inData));
  111. //公共参数
  112. Map<String, String> returnMap = new HashMap<>();
  113. String username = inData.getIfsUsername();
  114. String password = inData.getIfsPassword();
  115. String luName = inData.getLuName(); //
  116. String keyRef = inData.getKeyRef();
  117. try{
  118. //获取连接
  119. Server srv = ifsServer.getIfsServer(username, password);
  120. //查询对象
  121. Map<String, String> technicalMap = TechnicalClassApiTest.getTechnicalClass(srv, luName, keyRef);
  122. //判断查询导数据
  123. if(technicalMap == null || technicalMap.size() == 0) {
  124. throw new RuntimeException("不存在此技术等级的信息!");
  125. }
  126. //设置IFS的信息
  127. inData.setIfsRowId(technicalMap.get("IFSROWID"));
  128. inData.setIfsRowVersion(technicalMap.get("IFSROWVERSION"));
  129. //调用api同步信息
  130. Map<String, String> resultMap = TechnicalClassApiTest.modifyTechnicalClass(srv, inData);
  131. //设置唯一键和版本
  132. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  133. returnMap.put("resultCode", "200");
  134. returnMap.put("obj", JSON.toJSONString(inData));
  135. } catch(APException e){
  136. returnMap.put("resultCode", "400");
  137. returnMap.put("resultMsg", e.getMessage());
  138. }
  139. //插入查询的记录数据
  140. logger.info("Technical Class 修改结束:"+JSON.toJSONString(inData));
  141. //返回结果集
  142. return returnMap;
  143. }
  144. /**
  145. * @description: 刪除技术等级的信息
  146. * @author LR
  147. * @date 2024/12/16 13:46
  148. * @version 1.0
  149. */
  150. public Map<String, String> removeTechnicalClass(TechnicalClass inData) throws APException {
  151. logger.info("Technical Class 删除开始:"+JSON.toJSONString(inData));
  152. //公共参数
  153. Map<String, String> returnMap = new HashMap<>();
  154. String username = inData.getIfsUsername();
  155. String password = inData.getIfsPassword();
  156. String luName = inData.getLuName(); //
  157. String keyRef = inData.getKeyRef(); //
  158. try{
  159. //获取连接
  160. Server srv = ifsServer.getIfsServer(username, password);
  161. //查询对象
  162. Map<String, String> technicalMap = TechnicalClassApiTest.getTechnicalClass(srv, luName, keyRef);
  163. //判断查询导数据
  164. if(technicalMap == null || technicalMap.size() == 0) {
  165. throw new RuntimeException("不存在此技术等级的信息!");
  166. }
  167. //设置IFS的信息
  168. inData.setIfsRowId(technicalMap.get("IFSROWID"));
  169. inData.setIfsRowVersion(technicalMap.get("IFSROWVERSION"));
  170. //调用api同步信息
  171. TechnicalClassApiTest.removeTechnicalClass(srv, inData);
  172. returnMap.put("resultCode", "200");
  173. returnMap.put("obj", JSON.toJSONString(inData));
  174. } catch(APException e){
  175. returnMap.put("resultCode", "400");
  176. returnMap.put("resultMsg", e.getMessage());
  177. }
  178. //插入查询的记录数据
  179. logger.info("Technical Class 删除结束:"+JSON.toJSONString(inData));
  180. //返回结果集
  181. return returnMap;
  182. }
  183. /**
  184. * @description: 批量同步技术等级属性数据
  185. * @author LR
  186. * @date 2024/12/19 15:02
  187. * @version 1.0
  188. */
  189. public Map<String, String> modifyTechnicalClassAttributes(List<TechnicalAttribute> inDatas) throws APException {
  190. logger.info("Technical Class Attributes 批量修改开始:"+JSON.toJSONString(inDatas));
  191. Map<String, String> returnMap = new HashMap<>();
  192. TechnicalAttribute inData = inDatas.get(0);
  193. // 公共参数
  194. String username = inData.getIfsUsername();
  195. String password = inData.getIfsPassword();
  196. String luName = inData.getLuName(); //
  197. String keyRef = inData.getKeyRef(); //
  198. try{
  199. //获取连接
  200. Server srv = ifsServer.getIfsServer(username, password);
  201. //查询技术等级
  202. Map<String, String> technicalMap = TechnicalClassApiTest.getTechnicalClass(srv, luName, keyRef);
  203. //判断查询导数据
  204. //判断查询导数据
  205. if(technicalMap == null || technicalMap.size() == 0) {
  206. throw new RuntimeException("不存在此技术等级的信息!");
  207. }
  208. //设置唯一键和版本
  209. String technicalSpecNo = technicalMap.get("TECHNICAL_SPEC_NO");
  210. String technicalClass = inData.getTechnicalClass();
  211. //循环设置参数
  212. for(TechnicalAttribute tempData : inDatas) {
  213. String attribute = tempData.getAttribute();
  214. //查询属性信息
  215. Map<String, String> attributeMap = TechnicalClassApiTest.getTechnicalAttribute(srv, technicalSpecNo, technicalClass, attribute);
  216. if(attributeMap == null || attributeMap.size() == 0) {
  217. throw new RuntimeException("不存在此技术等级的属性信息!");
  218. }
  219. //设置替代的ifs的key
  220. inData.setIfsRowId(attributeMap.get("IFSROWID"));
  221. inData.setIfsRowVersion(attributeMap.get("IFSROWVERSION"));
  222. inData.setTechnicalSpecNo(technicalSpecNo);
  223. //api修改参数
  224. Map<String, String> resultMap = TechnicalClassApiTest.modifyTechnicalAttribute(srv, tempData);
  225. //设置记录的版本
  226. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  227. }
  228. returnMap.put("resultCode", "200");
  229. returnMap.put("obj", JSON.toJSONString(inDatas));
  230. } catch(APException e){
  231. returnMap.put("resultCode", "400");
  232. returnMap.put("resultMsg", e.getMessage());
  233. }
  234. //插入查询的记录数据
  235. logger.info("Technical Class Attributes 批量修改结束:"+JSON.toJSONString(inDatas));
  236. //返回结果集
  237. return returnMap;
  238. }
  239. }