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.

296 lines
12 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.modules.part.entity.APIEntity.PartIfsCatalogModel;
  6. import com.spring.modules.part.entity.APIEntity.PartIfsCatalogProperty;
  7. import ifs.fnd.ap.APException;
  8. import ifs.fnd.ap.Server;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Component;
  13. import java.util.ArrayList;
  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 TechnicalClassBean {
  25. @Autowired
  26. private IfsServer ifsServer;
  27. private static final Logger logger = LoggerFactory.getLogger(TechnicalClassBean.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(Server srv, PartIfsCatalogModel inData) {
  35. logger.info("Technical Class 查询开始:"+ JSON.toJSONString(inData));
  36. //公共参数
  37. Map<String, String> returnMap = new HashMap<>();
  38. String luName = inData.getLuName(); //
  39. String keyRef = inData.getKeyRef(); //
  40. try{
  41. //查询对象
  42. Map<String, String> resultMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  43. //判断查询导数据
  44. if(resultMap == null) {
  45. throw new APException("查无此技术等级的信息!");
  46. }
  47. //设置ifs 信息
  48. inData.setIfsRowId(resultMap.get("IFSROWID"));
  49. inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
  50. returnMap.put("resultCode", "200");
  51. returnMap.put("obj", JSON.toJSONString(inData));
  52. } catch(APException e){
  53. returnMap.put("resultCode", "400");
  54. returnMap.put("resultMsg", e.getMessage());
  55. logger.info("异常信息:"+e.getMessage());
  56. }
  57. //打印日志
  58. logger.info("Technical Class 查询结束:"+JSON.toJSONString(inData));
  59. //返回结果集
  60. return returnMap;
  61. }
  62. /**
  63. * @description: 新增
  64. * @author LR
  65. * @date 2024/12/16 13:37
  66. * @version 1.0
  67. */
  68. public Map<String, String> syncTechnicalClass(Server srv, PartIfsCatalogModel inData) {
  69. logger.info("Technical Class 新增开始:"+JSON.toJSONString(inData));
  70. //公共参数
  71. Map<String, String> returnMap = new HashMap<>();
  72. String luName = inData.getLuName(); //
  73. String keyRef = inData.getKeyRef(); //
  74. try{
  75. //查询对象
  76. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  77. //判断查询导数据
  78. if(technicalMap != null && !technicalMap.isEmpty()) {
  79. throw new APException("已存在此技术等级的信息!");
  80. }
  81. //调用api同步信息
  82. Map<String, String> resultMap = TechnicalClassApi.insertTechnicalClass(srv, inData);
  83. //设置唯一键和版本
  84. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  85. returnMap.put("resultCode", "200");
  86. returnMap.put("obj", JSON.toJSONString(inData));
  87. } catch(APException e){
  88. returnMap.put("resultCode", "400");
  89. returnMap.put("resultMsg", e.getMessage());
  90. logger.info("异常信息:"+e.getMessage());
  91. }
  92. //插入查询的记录数据
  93. logger.info("Technical Class 新增结束:"+JSON.toJSONString(inData));
  94. //返回结果集
  95. return returnMap;
  96. }
  97. /**
  98. * @description: 修改技术等级的数据
  99. * @author LR
  100. * @date 2024/12/16 13:45
  101. * @version 1.0
  102. */
  103. public Map<String, String> modifyTechnicalClass(Server srv, PartIfsCatalogModel inData) {
  104. logger.info("Technical Class 修改开始:"+JSON.toJSONString(inData));
  105. //公共参数
  106. Map<String, String> returnMap = new HashMap<>();
  107. String luName = inData.getLuName(); //
  108. String keyRef = inData.getKeyRef();
  109. try{
  110. //查询对象
  111. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  112. //判断查询导数据
  113. if(technicalMap == null || technicalMap.isEmpty()) {
  114. throw new APException("不存在此技术等级的信息!");
  115. }
  116. //设置IFS的信息
  117. inData.setIfsRowId(technicalMap.get("IFSROWID"));
  118. inData.setIfsRowVersion(technicalMap.get("IFSROWVERSION"));
  119. //调用api同步信息
  120. Map<String, String> resultMap = TechnicalClassApi.modifyTechnicalClass(srv, inData);
  121. //设置唯一键和版本
  122. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  123. returnMap.put("resultCode", "200");
  124. returnMap.put("obj", JSON.toJSONString(inData));
  125. } catch(APException e){
  126. returnMap.put("resultCode", "400");
  127. returnMap.put("resultMsg", e.getMessage());
  128. logger.info("异常信息:"+e.getMessage());
  129. }
  130. //插入查询的记录数据
  131. logger.info("Technical Class 修改结束:"+JSON.toJSONString(inData));
  132. //返回结果集
  133. return returnMap;
  134. }
  135. /**
  136. * @description: 刪除技术等级的信息
  137. * @author LR
  138. * @date 2024/12/16 13:46
  139. * @version 1.0
  140. */
  141. public Map<String, String> removeTechnicalClass(Server srv, PartIfsCatalogModel inData) {
  142. logger.info("Technical Class 删除开始:"+JSON.toJSONString(inData));
  143. //公共参数
  144. Map<String, String> returnMap = new HashMap<>();
  145. String luName = inData.getLuName(); //
  146. String keyRef = inData.getKeyRef(); //
  147. try{
  148. //查询对象
  149. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  150. //判断查询导数据
  151. if(technicalMap == null || technicalMap.isEmpty()) {
  152. throw new APException("不存在此技术等级的信息!");
  153. }
  154. //设置IFS的信息
  155. inData.setIfsRowId(technicalMap.get("IFSROWID"));
  156. inData.setIfsRowVersion(technicalMap.get("IFSROWVERSION"));
  157. //调用api同步信息
  158. TechnicalClassApi.removeTechnicalClass(srv, inData);
  159. returnMap.put("resultCode", "200");
  160. returnMap.put("obj", JSON.toJSONString(inData));
  161. } catch(APException e){
  162. returnMap.put("resultCode", "400");
  163. returnMap.put("resultMsg", e.getMessage());
  164. logger.info("异常信息:"+e.getMessage());
  165. }
  166. //插入查询的记录数据
  167. logger.info("Technical Class 删除结束:"+JSON.toJSONString(inData));
  168. //返回结果集
  169. return returnMap;
  170. }
  171. /**
  172. * @description: 批量同步技术等级属性数据
  173. * @author LR
  174. * @date 2024/12/19 15:02
  175. * @version 1.0
  176. */
  177. public Map<String, String> modifyTechnicalClassAttributes(Server srv, List<PartIfsCatalogProperty> inDatas) {
  178. logger.info("Technical Class Attributes 批量修改开始:"+JSON.toJSONString(inDatas));
  179. Map<String, String> returnMap = new HashMap<>();
  180. PartIfsCatalogProperty inData = inDatas.get(0);
  181. // 公共参数
  182. String luName = inData.getLuName(); //
  183. String keyRef = inData.getKeyRef(); //
  184. try{
  185. //查询技术等级
  186. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  187. //判断查询导数据
  188. //判断查询导数据
  189. if(technicalMap == null || technicalMap.isEmpty()) {
  190. throw new APException("不存在此技术等级的信息!");
  191. }
  192. //设置唯一键和版本
  193. String technicalSpecNo = technicalMap.get("TECHNICAL_SPEC_NO");
  194. String technicalClass = inData.getTechnicalClass();
  195. //循环设置参数
  196. for(PartIfsCatalogProperty tempData : inDatas) {
  197. String attribute = tempData.getAttribute();
  198. //查询属性信息
  199. Map<String, String> attributeMap = TechnicalClassApi.getTechnicalAttribute(srv, technicalSpecNo, technicalClass, attribute);
  200. if(attributeMap == null || attributeMap.isEmpty()) {
  201. throw new APException("不存在此技术等级的属性信息!");
  202. }
  203. //设置替代的ifs的key
  204. tempData.setIfsRowId(attributeMap.get("IFSROWID"));
  205. tempData.setIfsRowVersion(attributeMap.get("IFSROWVERSION"));
  206. tempData.setTechnicalSpecNo(technicalSpecNo);
  207. //api修改参数
  208. Map<String, String> resultMap = TechnicalClassApi.modifyTechnicalAttribute(srv, tempData);
  209. //设置记录的版本
  210. tempData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  211. }
  212. returnMap.put("resultCode", "200");
  213. returnMap.put("obj", JSON.toJSONString(inDatas));
  214. } catch(APException e){
  215. returnMap.put("resultCode", "400");
  216. returnMap.put("resultMsg", e.getMessage());
  217. logger.info("异常信息:"+e.getMessage());
  218. }
  219. //插入查询的记录数据
  220. logger.info("Technical Class Attributes 批量修改结束:"+JSON.toJSONString(inDatas));
  221. //返回结果集
  222. return returnMap;
  223. }
  224. /**
  225. * @description: 批量删除技术等级属性数据
  226. * @author LR
  227. * @date 2024/12/19 15:02
  228. * @version 1.0
  229. */
  230. public Map<String, String> removeTechnicalClassAttributes(Server srv, List<PartIfsCatalogProperty> inDatas) {
  231. logger.info("Technical Class Attributes 批量删除开始:"+JSON.toJSONString(inDatas));
  232. Map<String, String> returnMap = new HashMap<>();
  233. PartIfsCatalogProperty inData = inDatas.get(0);
  234. // 公共参数
  235. String luName = inData.getLuName(); //
  236. String keyRef = inData.getKeyRef(); //
  237. try{
  238. //查询技术等级
  239. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
  240. logger.info("技术等级查询");
  241. //判断查询导数据
  242. if(technicalMap == null || technicalMap.isEmpty()) {
  243. throw new APException("不存在此技术等级的信息!");
  244. }
  245. //设置唯一键和版本
  246. String technicalSpecNo = technicalMap.get("TECHNICAL_SPEC_NO");
  247. String technicalClass = inData.getTechnicalClass();
  248. //循环设置参数
  249. for(PartIfsCatalogProperty tempData : inDatas) {
  250. String attribute = tempData.getAttribute();
  251. //查询属性信息
  252. Map<String, String> attributeMap = TechnicalClassApi.getTechnicalAttribute(srv, technicalSpecNo, technicalClass, attribute);
  253. if(attributeMap == null || attributeMap.isEmpty()) {
  254. throw new APException("不存在此技术等级的属性信息!");
  255. }
  256. logger.info("技术等级属性查询");
  257. //设置替代的ifs的key
  258. tempData.setIfsRowId(attributeMap.get("IFSROWID"));
  259. tempData.setIfsRowVersion(attributeMap.get("IFSROWVERSION"));
  260. tempData.setAttributeType(attributeMap.get("ATTRIBUTETYPE"));
  261. tempData.setTechnicalSpecNo(technicalSpecNo);
  262. logger.info("技术等级属性删除开始");
  263. //api修改参数
  264. TechnicalClassApi.removeTechnicalAttribute(srv, tempData);
  265. logger.info("技术等级属性删除结束");
  266. }
  267. returnMap.put("resultCode", "200");
  268. returnMap.put("obj", JSON.toJSONString(inDatas));
  269. } catch(APException e){
  270. returnMap.put("resultCode", "400");
  271. returnMap.put("resultMsg", e.getMessage());
  272. logger.info("异常信息:"+e.getMessage());
  273. }
  274. //插入查询的记录数据
  275. logger.info("Technical Class Attributes 批量删除结束:"+JSON.toJSONString(inDatas));
  276. //返回结果集
  277. return returnMap;
  278. }
  279. }