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.

217 lines
9.5 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. package com.spring.ifs.api;
  2. import com.spring.ifs.utils.IfsConverterToMap;
  3. import com.spring.ifs.utils.IfsPlsqlUtils;
  4. import com.spring.modules.part.entity.APIEntity.PartIfsCatalog;
  5. import ifs.fnd.ap.*;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. /**
  11. * @description: 处理Master业务的底层相关函数
  12. * @author LR
  13. * @date 2024/12/9 10:56
  14. * @version 1.0
  15. */
  16. public class MasterPartApi {
  17. private static Logger logger = LoggerFactory.getLogger(MasterPartApi.class);
  18. /**
  19. * @description: 获取Master part的相关信息
  20. * @author LR
  21. * @date 2024/12/9 11:13
  22. * @version 1.0
  23. */
  24. public static Map<String, String> getMasterPart(Server srv, String partNo) throws APException {
  25. StringBuilder searchSql = new StringBuilder();
  26. searchSql.append("SELECT PART_NO, DESCRIPTION partDesc, objid ifsRowId, objversion ifsRowVersion");
  27. searchSql.append(" FROM IFSAPP.PART_CATALOG");
  28. searchSql.append(" WHERE PART_NO = :partNo");
  29. //设置查询的入参
  30. Map<String, String> inParam = new HashMap<>();
  31. inParam.put("partNo", partNo);
  32. //调用查询的通用方法
  33. Record resultRecord = IfsPlsqlUtils.execSqlSearchGetRecord(srv, searchSql, inParam);
  34. //判断能否返回
  35. if (resultRecord == null) {
  36. return null;
  37. } else {
  38. //调用通用的处理方法 返回Map
  39. Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(resultRecord);
  40. return resultMap;
  41. }
  42. }
  43. /**
  44. * @description: 执行库存件的新增操作
  45. * @author LR
  46. * @date 2024/12/10 17:59
  47. * @version 1.0
  48. */
  49. public static Map<String, String> insertMasterPart(Server srv, PartIfsCatalog inData) throws APException {
  50. //公共参数
  51. String partNo = inData.getPartNo().toUpperCase();
  52. String partDesc = inData.getPartDesc();
  53. String unitCode = inData.getUnitCode();
  54. String partMainGroup = inData.getPartMainGroup();
  55. String weightNet = inData.getWeightNet();
  56. String uomForWeightNet = inData.getUomForWeightNet();
  57. String volumeNet = inData.getVolumeNet();
  58. String uomForVolumeNet = inData.getUomForVolumeNet();
  59. String conditionCodeUsageDb = inData.getConditionCodeUsageDb();
  60. String multilevelTrackingDb = inData.getMultilevelTrackingDb();
  61. String allowAsNotConsumedDb = inData.getAllowAsNotConsumedDb();
  62. String lotTrackingCode = inData.getLotTrackingCode();
  63. String lotQuantityRule = inData.getLotQuantityRule();
  64. String subLotRule = inData.getSubLotRule();
  65. String componentLotRule = inData.getComponentLotRule();
  66. String infoText = inData.getInfoText();
  67. //入参
  68. Map<String, String> inParam = new HashMap<>();
  69. //填充参数
  70. inParam.put("PART_NO", partNo);
  71. inParam.put("DESCRIPTION", partDesc);
  72. inParam.put("UNIT_CODE", unitCode);
  73. inParam.put("STD_NAME_ID", "0");
  74. inParam.put("PART_MAIN_GROUP", partMainGroup);
  75. inParam.put("WEIGHT_NET", weightNet);
  76. inParam.put("UOM_FOR_WEIGHT_NET", uomForWeightNet);
  77. inParam.put("VOLUME_NET", volumeNet);
  78. inParam.put("UOM_FOR_VOLUME_NET", uomForVolumeNet);
  79. inParam.put("FREIGHT_FACTOR", "1");
  80. inParam.put("POSITION_PART_DB", "NOT POSITION PART");
  81. inParam.put("CONDITION_CODE_USAGE_DB", conditionCodeUsageDb);
  82. inParam.put("CONFIGURABLE_DB", "NOT CONFIGURED");
  83. inParam.put("CATCH_UNIT_ENABLED_DB", "FALSE");
  84. inParam.put("MULTILEVEL_TRACKING_DB", multilevelTrackingDb);
  85. inParam.put("ALLOW_AS_NOT_CONSUMED_DB", allowAsNotConsumedDb);
  86. inParam.put("RECEIPT_ISSUE_SERIAL_TRACK_DB", "FALSE");
  87. inParam.put("SERIAL_TRACKING_CODE_DB", "NOT SERIAL TRACKING");
  88. inParam.put("ENG_SERIAL_TRACKING_CODE_DB", "NOT SERIAL TRACKING");
  89. inParam.put("STOP_ARRIVAL_ISSUED_SERIAL_DB", "FALSE");
  90. inParam.put("STOP_NEW_SERIAL_IN_RMA_DB", "TRUE");
  91. inParam.put("SERIAL_RULE", "Manual");
  92. inParam.put("LOT_TRACKING_CODE", lotTrackingCode);
  93. inParam.put("LOT_QUANTITY_RULE", lotQuantityRule);
  94. inParam.put("SUB_LOT_RULE", subLotRule);
  95. inParam.put("COMPONENT_LOT_RULE", componentLotRule);
  96. inParam.put("INFO_TEXT", infoText);
  97. inParam.put("OBJID", "");
  98. inParam.put("OBJVERSION", "");
  99. //执行存储过程 获取结果集
  100. //执行check的操作
  101. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
  102. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.CHECK, inParam);
  103. String warning = checkMap.get("WARNING");
  104. //如果存在警告信息 需要写入入参
  105. if (!(null == warning || "".equals(warning))){
  106. logger.info("警告信息:"+warning);
  107. inParam.put("WARNING", warning);
  108. }
  109. //执行do的操作
  110. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
  111. "NEW__", PlsqlBaseMethodType.NEW, PlsqlBaseMethodAction.DO, inParam);
  112. //返回结果集
  113. return resultMap;
  114. }
  115. /**
  116. * @description: 修改物料件的数据
  117. * @author LR
  118. * @date 2024/12/11 9:24
  119. * @version 1.0
  120. */
  121. public static Map<String, String> modifyMasterPart(Server srv, PartIfsCatalog inData) throws APException {
  122. //公共参数
  123. String ifsRowId = inData.getIfsRowId();
  124. String ifsRowVersion = inData.getIfsRowVersion();
  125. String partDesc = inData.getPartDesc();
  126. String unitCode = inData.getUnitCode();
  127. String partMainGroup = inData.getPartMainGroup();
  128. String weightNet = inData.getWeightNet();
  129. String uomForWeightNet = inData.getUomForWeightNet();
  130. String volumeNet = inData.getVolumeNet();
  131. String uomForVolumeNet = inData.getUomForVolumeNet();
  132. String conditionCodeUsageDb = inData.getConditionCodeUsageDb();
  133. String multilevelTrackingDb = inData.getMultilevelTrackingDb();
  134. String allowAsNotConsumedDb = inData.getAllowAsNotConsumedDb();
  135. String lotTrackingCode = inData.getLotTrackingCode();
  136. String lotQuantityRule = inData.getLotQuantityRule();
  137. String subLotRule = inData.getSubLotRule();
  138. String componentLotRule = inData.getComponentLotRule();
  139. String infoText = inData.getInfoText();
  140. //入参
  141. Map<String, String> inParam = new HashMap<>();
  142. //填充参数
  143. inParam.put("OBJID", ifsRowId);
  144. inParam.put("OBJVERSION", ifsRowVersion);
  145. inParam.put("DESCRIPTION", partDesc); // 物料描述
  146. inParam.put("UNIT_CODE", unitCode); // 单位
  147. inParam.put("PART_MAIN_GROUP", partMainGroup); // PART_MAIN_GROUP
  148. inParam.put("WEIGHT_NET", weightNet); // 净重
  149. inParam.put("UOM_FOR_WEIGHT_NET", uomForWeightNet); // 净重单位
  150. inParam.put("VOLUME_NET", volumeNet); // 体积
  151. inParam.put("UOM_FOR_VOLUME_NET", uomForVolumeNet); // 体积单位
  152. inParam.put("CONDITION_CODE_USAGE_DB", conditionCodeUsageDb); // CONDITION_CODE_USAGE_DB
  153. inParam.put("MULTILEVEL_TRACKING_DB", multilevelTrackingDb); // MULTILEVEL_TRACKING_DB
  154. inParam.put("ALLOW_AS_NOT_CONSUMED_DB", allowAsNotConsumedDb); // ALLOW_AS_NOT_CONSUMED_DB
  155. inParam.put("LOT_TRACKING_CODE", lotTrackingCode); // 批次跟踪代码
  156. inParam.put("LOT_QUANTITY_RULE", lotQuantityRule); // LOT_QUANTITY_RULE
  157. inParam.put("SUB_LOT_RULE", subLotRule); // SUB_LOT_RULE
  158. inParam.put("COMPONENT_LOT_RULE", componentLotRule); // COMPONENT_LOT_RULE
  159. inParam.put("INFO_TEXT", infoText); // 备注
  160. //执行存储过程 获取结果集
  161. //执行check的操作
  162. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
  163. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.CHECK, inParam);
  164. //警告信息
  165. String warning = checkMap.get("WARNING");
  166. //如果存在警告信息 需要写入入参
  167. if (!(null == warning || "".equals(warning))){
  168. logger.info("警告信息:"+warning);
  169. inParam.put("WARNING", warning);
  170. }
  171. //执行do的操作
  172. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
  173. "MODIFY__", PlsqlBaseMethodType.MODIFY, PlsqlBaseMethodAction.DO, inParam);
  174. //返回结果集
  175. return resultMap;
  176. }
  177. /**
  178. * @description: 删除物料件
  179. * @author LR
  180. * @date 2024/12/11 10:01
  181. * @version 1.0
  182. */
  183. public static void removeMasterPart(Server srv, PartIfsCatalog inData) throws APException {
  184. //公共参数
  185. String ifsRowId = inData.getIfsRowId();
  186. String ifsRowVersion = inData.getIfsRowVersion();
  187. //入参
  188. Map<String, String> inParam = new HashMap<>();
  189. //填充参数
  190. inParam.put("OBJID", ifsRowId);
  191. inParam.put("OBJVERSION", ifsRowVersion);
  192. //执行存储过程 获取结果集
  193. //执行check的操作
  194. Map<String, String> checkMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
  195. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.CHECK, inParam);
  196. //执行do的操作
  197. Map<String, String> resultMap = IfsPlsqlUtils.execProcedureGetRecord(srv, "PART_CATALOG_API",
  198. "REMOVE__", PlsqlBaseMethodType.REMOVE, PlsqlBaseMethodAction.DO, inParam);
  199. }
  200. }