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.

211 lines
8.0 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. package com.spring.ifs.bean;
  2. import com.alibaba.fastjson.JSON;
  3. import com.spring.ifs.api.IfsServer;
  4. import com.spring.ifs.api.MasterPartApi;
  5. import com.spring.ifs.api.TechnicalClassApi;
  6. import com.spring.modules.base.utils.DateUtils;
  7. import com.spring.modules.part.entity.APIEntity.PartIfsCatalog;
  8. import com.spring.modules.part.entity.APIEntity.PartIfsCatalogModel;
  9. import ifs.fnd.ap.APException;
  10. import ifs.fnd.ap.Server;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Component;
  16. import java.util.Date;
  17. import java.util.HashMap;
  18. import java.util.Map;
  19. /**
  20. * @description: 物料件的实现类
  21. * @author LR
  22. * @date 2024/12/9 11:49
  23. * @version 1.0
  24. */
  25. @Component
  26. public class MasterServiceBean {
  27. @Autowired
  28. private IfsServer ifsServer;
  29. private static final Logger logger = LoggerFactory.getLogger(MasterServiceBean.class);
  30. /**
  31. * @description: 查询物料件的信息
  32. * @author LR
  33. * @date 2024/12/9 13:28
  34. * @version 1.0
  35. */
  36. public Map<String, String> getMasterPart(Server srv, PartIfsCatalog inData) {
  37. //公共参数
  38. Map<String, String> returnMap = new HashMap<>();
  39. String partNo = inData.getPartNo();
  40. try {
  41. //获取参数
  42. Map<String, String> resultMap = MasterPartApi.getMasterPart(srv, partNo);
  43. //判断是否存在
  44. if (null == resultMap) {
  45. throw new APException("当前物料件不存在!");
  46. } else {
  47. //设置ifs 信息
  48. inData.setIfsRowId(resultMap.get("OBJID"));
  49. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  50. }
  51. returnMap.put("resultCode", "200");
  52. returnMap.put("obj", JSON.toJSONString(inData));
  53. } catch(APException e){
  54. returnMap.put("resultCode", "400");
  55. returnMap.put("resultMsg", e.getMessage());
  56. logger.info("异常信息:"+e.getMessage());
  57. }
  58. return returnMap;
  59. }
  60. /**
  61. * @description: master part 新增
  62. * @author LR
  63. * @date 2024/12/12 15:33
  64. * @version 1.0
  65. */
  66. public Map<String, String> syncPartCatalog(Server srv, PartIfsCatalog inData) {
  67. logger.info("Part Catalog 新增开始:"+ JSON.toJSONString(inData));
  68. //公共参数
  69. Map<String, String> returnMap = new HashMap<>();
  70. String partNo = inData.getPartNo();
  71. try{
  72. Map<String, String> partMap = MasterPartApi.getMasterPart(srv, partNo);
  73. //判断是否需要插入到ifs
  74. if(partMap == null || partMap.isEmpty()) {
  75. Map<String, String> resultMap = MasterPartApi.insertMasterPart(srv, inData);
  76. //设置ifs 信息
  77. inData.setIfsRowId(resultMap.get("OBJID"));
  78. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  79. }else {
  80. throw new APException("物料件已存在!");
  81. }
  82. returnMap.put("resultCode", "200");
  83. returnMap.put("obj", JSON.toJSONString(inData));
  84. } catch(APException e){
  85. returnMap.put("resultCode", "400");
  86. returnMap.put("resultMsg", e.getMessage());
  87. logger.info("异常信息:"+e.getMessage());
  88. }
  89. //打印日志
  90. logger.info("Part Catalog 新增结束:"+JSON.toJSONString(inData));
  91. //返回结果集
  92. return returnMap;
  93. }
  94. /**
  95. * @description: 调用修改的方法
  96. * @author LR
  97. * @date 2024/12/12 15:40
  98. * @version 1.0
  99. */
  100. public Map<String, String> modifyPartCatalog(Server srv, PartIfsCatalog inData) {
  101. logger.info("Part Catalog 修改开始:"+JSON.toJSONString(inData));
  102. //公共参数
  103. Map<String, String> returnMap = new HashMap<>();
  104. String partNo = inData.getPartNo();
  105. try {
  106. //查询数据
  107. Map<String, String> partMap = MasterPartApi.getMasterPart(srv, partNo);
  108. //判断是否需要插入到ifs
  109. if (partMap == null || partMap.isEmpty()) {
  110. throw new APException("物料件不存在!");
  111. } else {
  112. //设置ifs 信息
  113. inData.setIfsRowId(partMap.get("IFSROWID"));
  114. inData.setIfsRowVersion(partMap.get("IFSROWVERSION"));
  115. Map<String, String> resultMap = MasterPartApi.modifyMasterPart(srv, inData);
  116. //处理基数等级的业务方法
  117. this.processPartCatalogTechnicalClass(srv, inData);
  118. //设置ifs 信息
  119. inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
  120. }
  121. returnMap.put("resultCode", "200");
  122. returnMap.put("obj", JSON.toJSONString(inData));
  123. } catch(APException e){
  124. returnMap.put("resultCode", "400");
  125. returnMap.put("resultMsg", e.getMessage());
  126. logger.info("异常信息:"+e.getMessage());
  127. }
  128. logger.info("Part Catalog 修改结束:"+JSON.toJSONString(inData));
  129. //返回结果集
  130. return returnMap;
  131. }
  132. /**
  133. * @description: 处理基数等级的业务方法
  134. * @author LR
  135. * @date 2024/12/12 15:40
  136. * @version 1.0
  137. */
  138. public void processPartCatalogTechnicalClass(Server srv, PartIfsCatalog inData) throws APException {
  139. //拼装技术等级的属性数据
  140. String partNo = inData.getPartNo();
  141. String luName = "PartCatalog";
  142. String keyRef = "PART_NO=" + partNo + "^";
  143. String technicalClass = inData.getTechnicalClass();
  144. PartIfsCatalogModel technical = new PartIfsCatalogModel();
  145. technical.setLuName(luName);
  146. technical.setKeyRef(keyRef);
  147. //查询当前技术等级的数据
  148. Map<String, String> technicalMap = TechnicalClassApi.getTechnicalClass(srv, "PART_CATALOG", "PART_NO=" + partNo + "^");
  149. //设置IFS系统的参数
  150. technical.setTechnicalClass(technicalClass);
  151. technical.setDtOk(DateUtils.getStringDate(new Date(), "yyyy-MM-dd"));
  152. technical.setOkSign(inData.getIfsUsername()); //判断是否已经存在当前数据
  153. if (null == technicalMap){
  154. //判断技术等级是否需要新增
  155. if (StringUtils.isNotBlank(technicalClass)){
  156. //设置同步的属性
  157. technical.setTechnicalSpecNo("");
  158. TechnicalClassApi.insertTechnicalClass(srv, technical);
  159. }
  160. }else {
  161. //直接调用修改的接口
  162. technical.setTechnicalSpecNo(technicalMap.get("TECHNICAL_SPEC_NO"));
  163. TechnicalClassApi.modifyTechnicalClass(srv, technical);
  164. }
  165. }
  166. /**
  167. * @description: 调用删除的方法
  168. * @author LR
  169. * @date 2024/12/12 15:40
  170. * @version 1.0
  171. */
  172. public Map<String, String> removePartCatalog(Server srv, PartIfsCatalog inData) {
  173. logger.info("Part Catalog 删除开始:"+JSON.toJSONString(inData));
  174. //公共参数
  175. Map<String, String> returnMap = new HashMap<>();
  176. String partNo = inData.getPartNo();
  177. //查询数据
  178. try{
  179. Map<String, String> partMap = MasterPartApi.getMasterPart(srv, partNo);
  180. //判断是否需要插入到ifs
  181. if(partMap == null || partMap.isEmpty()) {
  182. throw new APException("物料件不存在!");
  183. }else {
  184. //设置ifs 信息
  185. inData.setIfsRowId(partMap.get("IFSROWID"));
  186. inData.setIfsRowVersion(partMap.get("IFSROWVERSION"));
  187. MasterPartApi.removeMasterPart(srv, inData);
  188. }
  189. returnMap.put("resultCode", "200");
  190. returnMap.put("obj", JSON.toJSONString(inData));
  191. } catch(APException e){
  192. returnMap.put("resultCode", "400");
  193. returnMap.put("resultMsg", e.getMessage());
  194. logger.info("异常信息:"+e.getMessage());
  195. }
  196. logger.info("Part Catalog 删除结束:"+JSON.toJSONString(inData));
  197. //返回结果集
  198. return returnMap;
  199. }
  200. }