Browse Source

IFS jar 测试开发代码

master
DouDou 1 year ago
parent
commit
fbf9c55f67
  1. 26
      src/main/java/com/spring/ifs/api/BomApi.java
  2. 2
      src/main/java/com/spring/ifs/api/BomApiTest.java
  3. 719
      src/main/java/com/spring/ifs/bean/BomServiceBean.java
  4. 774
      src/main/java/com/spring/ifs/bean/BomServiceBeanTest.java
  5. 6
      src/main/java/com/spring/ifs/bean/InventoryServiceBean.java
  6. 4
      src/main/java/com/spring/ifs/bean/InventoryServiceBeanTest.java

26
src/main/java/com/spring/ifs/api/BomApi.java

@ -4,6 +4,8 @@ import com.spring.ifs.data.*;
import com.spring.ifs.utils.IfsConverterToMap;
import com.spring.ifs.utils.IfsPlsqlUtils;
import com.spring.modules.base.utils.DateUtils;
import com.spring.modules.part.entity.APIEntity.BomIfsAlternative;
import com.spring.modules.part.entity.APIEntity.BomIfsHeader;
import ifs.fnd.ap.*;
import java.util.*;
@ -52,7 +54,7 @@ public class BomApi {
* @date 2024/12/12 17:40
* @version 1.0
*/
public static List<BomHeader> getBomHeadersByPartNo(Server srv, String contract, String partNo) throws APException {
public static List<BomIfsHeader> getBomHeadersByPartNo(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion,");
searchSql.append(" CONTRACT, PART_NO, BOM_TYPE, ENG_CHG_LEVEL, NOTE_TEXT");
@ -68,7 +70,7 @@ public class BomApi {
if (recordCollection == null) {
return null;
} else {
List<BomHeader> resultItems = new ArrayList<>();
List<BomIfsHeader> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
//判断是否存在数据
@ -78,7 +80,7 @@ public class BomApi {
//获取数据转bean
for (int i = 0; i < resultList.size(); i++) {
Map<String, String> tempMap = resultList.get(i);
BomHeader tempItem = new BomHeader();
BomIfsHeader tempItem = new BomIfsHeader();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
@ -100,7 +102,7 @@ public class BomApi {
* @date 2024/12/11 15:08
* @version 1.0
*/
public static Map<String, String> insertBomHeader(Server srv, BomHeader inData) throws APException {
public static Map<String, String> insertBomHeader(Server srv, BomIfsHeader inData) throws APException {
//公共参数
String contract = inData.getContract();//
String partNo = inData.getPartNo();// 物料编码
@ -147,7 +149,7 @@ public class BomApi {
* @date 2024/12/11 15:32
* @version 1.0
*/
public static Map<String, String> modifyBomHeader(Server srv, BomHeader inData) throws APException {
public static Map<String, String> modifyBomHeader(Server srv, BomIfsHeader inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();
String ifsRowVersion = inData.getIfsRowVersion();
@ -185,7 +187,7 @@ public class BomApi {
* @date 2024/12/11 15:33
* @version 1.0
*/
public static Map<String, String> removeBomHeader(Server srv, BomHeader inData) throws APException {
public static Map<String, String> removeBomHeader(Server srv, BomIfsHeader inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();
String ifsRowVersion = inData.getIfsRowVersion();
@ -244,7 +246,7 @@ public class BomApi {
* @date 2024/12/11 15:45
* @version 1.0
*/
public static Map<String, String> insertBomAlternative(Server srv, BomAlternative inData) throws APException {
public static Map<String, String> insertBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
//公共参数
String contract = inData.getContract();//
String partNo = inData.getPartNo();// 物料编码
@ -286,7 +288,7 @@ public class BomApi {
* @date 2024/12/11 15:47
* @version 1.0
*/
public static Map<String, String> modifyBomAlternative(Server srv, BomAlternative inData) throws APException {
public static Map<String, String> modifyBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();//
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
@ -316,7 +318,7 @@ public class BomApi {
* @date 2024/12/11 15:51
* @version 1.0
*/
public static void removeBomAlternative(Server srv, BomAlternative inData) throws APException {
public static void removeBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();//
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
@ -340,7 +342,7 @@ public class BomApi {
* @date 2024/12/11 15:53
* @version 1.0
*/
public static Map<String, String> buildBomAlternative(Server srv, BomAlternative inData) throws APException {
public static Map<String, String> buildBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();//
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
@ -366,7 +368,7 @@ public class BomApi {
* @date 2024/12/11 15:55
* @version 1.0
*/
public static Map<String, String> retireBomAlternative(Server srv, BomAlternative inData) throws APException {
public static Map<String, String> retireBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
//公共参数
String ifsRowId = inData.getIfsRowId();//
String ifsRowVersion = inData.getIfsRowVersion();// 物料编码
@ -486,7 +488,7 @@ public class BomApi {
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
return new ArrayList<>();
} else {
List<BomItem> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map

2
src/main/java/com/spring/ifs/api/BomApiTest.java

@ -489,7 +489,7 @@ public class BomApiTest {
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
return new ArrayList<>();
} else {
List<BomItem> resultItems = new ArrayList<>();
//调用通用的处理方法 返回Map

719
src/main/java/com/spring/ifs/bean/BomServiceBean.java

@ -6,6 +6,8 @@ import com.spring.ifs.api.IfsServer;
import com.spring.ifs.api.InventoryPartApi;
import com.spring.ifs.api.RoutingApi;
import com.spring.ifs.data.*;
import com.spring.modules.part.entity.APIEntity.BomIfsAlternative;
import com.spring.modules.part.entity.APIEntity.BomIfsHeader;
import ifs.fnd.ap.APException;
import ifs.fnd.ap.Server;
import org.slf4j.Logger;
@ -13,6 +15,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@ -38,28 +41,34 @@ public class BomServiceBean {
* @date 2024/12/12 15:49
* @version 1.0
*/
public BomHeader getBomHeader(BomHeader inData) throws APException {
public Map<String, String> getBomHeader(Server srv, BomIfsHeader inData) throws APException {
logger.info("Bom查询参数:"+JSON.toJSONString(inData));
//查询的参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
try{
//查询数据
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
//打印日志
logger.info("Bom查询:"+JSON.toJSONString(inData));
return inData;
//返回结果集
return returnMap;
}
/**
@ -68,34 +77,36 @@ public class BomServiceBean {
* @date 2024/12/12 15:52
* @version 1.0
*/
public BomHeader syncBomHeader(BomHeader inData) throws APException {
public Map<String, String> syncBomHeader(Server srv, BomIfsHeader inData) throws APException {
logger.info("Bom新增开始:"+JSON.toJSONString(inData));
//查询的参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap != null && bomMap.size() > 0) {
throw new RuntimeException("Bom已存在!");
}
try{
//查询数据
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap != null && bomMap.size() > 0) {
throw new RuntimeException("Bom已存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
//调用api
Map<String, String> resultMap = BomApi.insertBomHeader(srv, inData);
//设置版本的信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
//调用api
Map<String, String> resultMap = BomApi.insertBomHeader(srv, inData);
//设置版本的信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom新增结束:"+JSON.toJSONString(inData));
//返回结果集
return inData;
return returnMap;
}
/**
@ -104,32 +115,37 @@ public class BomServiceBean {
* @date 2024/12/12 15:55
* @version 1.0
*/
public BomHeader modifyBomHeader(BomHeader inData) throws APException {
public Map<String, String> modifyBomHeader(Server srv, BomIfsHeader inData) throws APException {
logger.info("Bom修改开始:"+JSON.toJSONString(inData));
//查询的参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
try{
//查询数据
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
Map<String, String> resultMap = BomApi.modifyBomHeader(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
Map<String, String> resultMap = BomApi.modifyBomHeader(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
//打印日志
logger.info("Bom修改结束:"+JSON.toJSONString(inData));
//返回结果
return inData;
//返回结果集
return returnMap;
}
/**
@ -138,28 +154,35 @@ public class BomServiceBean {
* @date 2024/12/12 15:58
* @version 1.0
*/
public void removeBomHeader(BomHeader inData) throws APException {
public Map<String, String> removeBomHeader(Server srv, BomIfsHeader inData) throws APException {
logger.info("Bom Header删除开始:"+JSON.toJSONString(inData));
//查询的参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null && bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
try{
//查询数据
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
BomApi.removeBomHeader(srv, inData);
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
BomApi.removeBomHeader(srv, inData);
//打印日志
logger.info("Bom Header 删除结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
@ -168,30 +191,35 @@ public class BomServiceBean {
* @date 2024/12/12 16:59
* @version 1.0
*/
public BomAlternative getBomAlternative(BomAlternative inData) throws APException {
public Map<String, String> getBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
logger.info("Bom Alternative 查询开始:"+JSON.toJSONString(inData));
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null) {
throw new RuntimeException("Bom Alternative 不存在!");
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null) {
throw new RuntimeException("Bom Alternative 不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//打印日志
logger.info("Bom Alternative 查询结束:"+JSON.toJSONString(inData));
return inData;
//返回结果集
return returnMap;
}
/**
@ -200,34 +228,38 @@ public class BomServiceBean {
* @date 2024/12/12 17:03
* @version 1.0
*/
public BomAlternative syncBomAlternative(BomAlternative inData) throws APException {
public Map<String, String> syncBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
logger.info("Bom Alternative 新增开始:"+JSON.toJSONString(inData));
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap != null && alternativeMap.size() > 0) {
throw new RuntimeException("Bom Alternative 已存在!");
}
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap != null && alternativeMap.size() > 0) {
throw new RuntimeException("Bom Alternative 已存在!");
}
//调用新增api
Map<String, String> resultMap = BomApi.insertBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowId(resultMap.get("IFSROWID"));
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
//调用新增api
Map<String, String> resultMap = BomApi.insertBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowId(resultMap.get("OBJID"));
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Alternative 新增结束:"+JSON.toJSONString(inData));
//返回结果
return inData;
//返回结果
return returnMap;
}
/**
@ -236,35 +268,39 @@ public class BomServiceBean {
* @date 2024/12/12 17:06
* @version 1.0
*/
public BomAlternative modifyBomAlternative(BomAlternative inData) throws APException {
public Map<String, String> modifyBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
logger.info("Bom Alternative 修改开始:"+JSON.toJSONString(inData));
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用api
Map<String, String> resultMap = BomApi.modifyBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用api
Map<String, String> resultMap = BomApi.modifyBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
//打印日志
logger.info("Bom Alternative 修改结束:"+JSON.toJSONString(inData));
//返回结果
return inData;
//返回结果集
return returnMap;
}
/**
@ -273,31 +309,37 @@ public class BomServiceBean {
* @date 2024/12/12 17:07
* @version 1.0
*/
public void removeBomAlternative(BomAlternative inData) throws APException {
public Map<String, String> removeBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
logger.info("Bom Alternative 删除开始:"+JSON.toJSONString(inData));
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用api
BomApi.removeBomAlternative(srv, inData);
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用api
BomApi.removeBomAlternative(srv, inData);
//打印日志
logger.info("Bom Alternative 删除结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
@ -306,34 +348,39 @@ public class BomServiceBean {
* @date 2024/12/13 9:37
* @version 1.0
*/
public BomAlternative buildBomAlternative(BomAlternative inData) throws APException {
public Map<String, String> buildBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
logger.info("Bom替代Build开始:"+JSON.toJSONString(inData));
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
//公共参数
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用删除方法
Map<String, String> resultMap = BomApi.buildBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用删除方法
Map<String, String> resultMap = BomApi.buildBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
//打印日志
logger.info("Bom替代Build结束:"+JSON.toJSONString(inData));
//返回结果集
return inData;
return returnMap;
}
/**
@ -342,35 +389,39 @@ public class BomServiceBean {
* @date 2024/12/13 9:40
* @version 1.0
*/
public BomAlternative retireBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom替代Build开始:"+JSON.toJSONString(inData));
public Map<String, String> retireBomAlternative(Server srv, BomIfsAlternative inData) throws APException {
logger.info("Bom替代retire开始:"+JSON.toJSONString(inData));
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用删除方法
Map<String, String> resultMap = BomApi.retireBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用删除方法
Map<String, String> resultMap = BomApi.retireBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
//打印日志
logger.info("Bom替代Retire结束:"+JSON.toJSONString(inData));
logger.info("Bom替代retire开始:"+JSON.toJSONString(inData));
//返回结果集
return inData;
return returnMap;
}
/**
@ -379,34 +430,38 @@ public class BomServiceBean {
* @date 2024/12/13 9:53
* @version 1.0
*/
public List<BomItem> getBomItems(BomItem inData) throws APException {
public Map<String, String> getBomItems(Server srv, BomItem inData) throws APException {
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
String lineItemNo = inData.getLineItemNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> resultList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo);
//判断是否查询数据
if(resultList.size() == 0 || resultList.isEmpty()) {
throw new RuntimeException("不存在此bom组件信息!");
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> resultList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo);
//判断是否查询数据
if(resultList == null ||resultList.size() == 0 || resultList.isEmpty()) {
throw new RuntimeException("不存在此bom组件信息!");
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代明细集合结束:"+JSON.toJSONString(inData));
//返回结果集
return resultList;
return returnMap;
}
/**
@ -415,51 +470,55 @@ public class BomServiceBean {
* @date 2024/12/12 17:23
* @version 1.0
*/
public List<BomItem> syncBomItems(List<BomItem> inDatas) throws APException {
public Map<String, String> syncBomItems(Server srv, List<BomItem> inDatas) throws APException {
logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas));
//公共参数
String username = inDatas.get(0).getIfsUsername();
String password = inDatas.get(0).getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inDatas.get(0).getContract();
String partNo = inDatas.get(0).getPartNo();
String engChgLevel = inDatas.get(0).getEngChgLevel();
String bomType = inDatas.get(0).getBomType();
String alternativeNo = inDatas.get(0).getAlternativeNo();
String lineItemNo = inDatas.get(0).getLineItemNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//转Map
Map<String, String> itemMap = itemList.stream().collect(Collectors.toMap(BomItem::getLineItemNo, BomItem::getLineItemNo));
//打印日志
logger.info("Bom替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
//循环判断的方法
for(BomItem bomItem : inDatas) {
//判断是否已经存在
String tempLineItemNo = bomItem.getLineItemNo();
if(itemMap.containsKey(tempLineItemNo)) {
throw new RuntimeException("已存在此bom组件信息!LineItemNo:"+tempLineItemNo);
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
}
// 校验通过 循环调用新增的方法
for(BomItem bomItem : inDatas) {
//调用api
Map<String, String> tempMap = BomApi.insertBomItem(srv, bomItem);
//设置ifs 信息
bomItem.setIfsRowId(tempMap.get("IFSROWID"));
bomItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
//查询结果集
List<BomItem> itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//转Map
Map<String, String> itemMap = itemList.stream().collect(Collectors.toMap(BomItem::getLineItemNo, BomItem::getLineItemNo));
//打印日志
logger.info("Bom替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
//循环判断的方法
for(BomItem bomItem : inDatas) {
//判断是否已经存在
String tempLineItemNo = bomItem.getLineItemNo();
if(itemMap.containsKey(tempLineItemNo)) {
throw new RuntimeException("已存在此bom组件信息!LineItemNo:"+tempLineItemNo);
}
}
// 校验通过 循环调用新增的方法
for(BomItem bomItem : inDatas) {
//调用api
Map<String, String> tempMap = BomApi.insertBomItem(srv, bomItem);
//设置ifs 信息
bomItem.setIfsRowId(tempMap.get("OBJID"));
bomItem.setIfsRowVersion(tempMap.get("OBJVERSION"));
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inDatas));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas));
//返回结果集
return inDatas;
return returnMap;
}
/**
@ -468,46 +527,49 @@ public class BomServiceBean {
* @date 2024/12/13 10:24
* @version 1.0
*/
public BomItem modifyBomItem(BomItem inData) throws APException {
public Map<String, String> modifyBomItem(Server srv, BomItem inData) throws APException {
logger.info("Bom替代明细新增开始:"+JSON.toJSONString(inData));
// 公共参数
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
String lineItemNo = inData.getLineItemNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> resultList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo);
//判断是否查询数据
if(resultList.size() == 0 || resultList.isEmpty()) {
throw new RuntimeException("不存在此bom组件信息!");
}
try{
//查询数据
Map<String, String> alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> resultList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo);
//判断是否查询数据
if(resultList.size() == 0 || resultList.isEmpty()) {
throw new RuntimeException("不存在此bom组件信息!");
}
BomItem bomItem = resultList.get(0);
//设置版本信息
inData.setIfsRowId(bomItem.getIfsRowId());
inData.setIfsRowVersion(bomItem.getIfsRowVersion());
//调用修改的方法
Map<String, String> resultMap = BomApi.modifyBomItem(srv, inData);
//设置ifs 信息
bomItem.setIfsRowId(resultMap.get("IFSROWID"));
bomItem.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
BomItem bomItem = resultList.get(0);
//设置版本信息
inData.setIfsRowId(bomItem.getIfsRowId());
inData.setIfsRowVersion(bomItem.getIfsRowVersion());
//调用修改的方法
Map<String, String> resultMap = BomApi.modifyBomItem(srv, inData);
//设置ifs 信息
bomItem.setIfsRowId(resultMap.get("OBJID"));
bomItem.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代明细新增结束:"+JSON.toJSONString(inData));
//返回结果集
return bomItem;
return returnMap;
}
/**
@ -516,45 +578,50 @@ public class BomServiceBean {
* @date 2024/12/13 10:26
* @version 1.0
*/
public void removeBomItems(List<BomItem> inDatas) throws APException {
public Map<String, String> removeBomItems(Server srv, List<BomItem> inDatas) throws APException {
logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas));
//公共参数
String username = inDatas.get(0).getIfsUsername();
String password = inDatas.get(0).getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inDatas.get(0).getContract();
String partNo = inDatas.get(0).getPartNo();
String engChgLevel = inDatas.get(0).getEngChgLevel();
String bomType = inDatas.get(0).getBomType();
String alternativeNo = inDatas.get(0).getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询结果集
List<BomItem> itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//转Map
Map<String, BomItem> itemMap = itemList.stream().collect(Collectors.toMap(BomItem::getLineItemNo, Function.identity()));
//打印日志
logger.info("Bom替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
//循环判断的方法
for(BomItem bomItem : inDatas) {
//判断是否已经存在
String tempLineItemNo = bomItem.getLineItemNo();
if(!itemMap.containsKey(tempLineItemNo)) {
throw new RuntimeException("不存在此bom组件信息!LineItemNo:"+tempLineItemNo);
try{
//查询数据
List<BomItem> itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//转Map
Map<String, BomItem> itemMap = itemList.stream().collect(Collectors.toMap(BomItem::getLineItemNo, Function.identity()));
//打印日志
logger.info("Bom替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
//循环判断的方法
for(BomItem bomItem : inDatas) {
//判断是否已经存在
String tempLineItemNo = bomItem.getLineItemNo();
if(!itemMap.containsKey(tempLineItemNo)) {
throw new RuntimeException("不存在此bom组件信息!LineItemNo:"+tempLineItemNo);
}
}
}
// 校验通过 循环调用新增的方法
for(BomItem bomItem : inDatas) {
//设置版本的信息
String key = bomItem.getLineItemNo();
BomItem oriItem = itemMap.get(key);
bomItem.setIfsRowId(oriItem.getIfsRowId());
bomItem.setIfsRowVersion(oriItem.getIfsRowVersion());
//调用api
BomApi.removeBomItem(srv, bomItem);
// 校验通过 循环调用新增的方法
for(BomItem bomItem : inDatas) {
//设置版本的信息
String key = bomItem.getLineItemNo();
BomItem oriItem = itemMap.get(key);
bomItem.setIfsRowId(oriItem.getIfsRowId());
bomItem.setIfsRowVersion(oriItem.getIfsRowVersion());
//调用api
BomApi.removeBomItem(srv, bomItem);
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inDatas));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas));
//返回结果集
return returnMap;
}
/**
@ -563,11 +630,10 @@ public class BomServiceBean {
* @date 2024/12/13 10:51
* @version 1.0
*/
public BomDistribution modifyBomDistribution(BomDistribution inData) throws APException {
public Map<String, String> modifyBomDistribution(Server srv, BomDistribution inData) throws APException {
logger.info("Bom Distribution查询开始:"+JSON.toJSONString(inData));
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
@ -575,26 +641,30 @@ public class BomServiceBean {
String alternativeNo = inData.getAlternativeNo();
String componentLineItemNo = inData.getComponentLineItemNo();
String byProductLineItemNo = inData.getByProdLineItemNo();// 副产品的序号
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询数据
Map<String, String> searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//判断是否存在
if(searchMap == null) {
throw new RuntimeException("查无此副产品分配信息!");
}
//设置RowId和Rowversion
inData.setIfsRowId(searchMap.get("IFSROWID"));
inData.setIfsRowVersion(searchMap.get("IFSROWVERSION"));
//不存在 则调用当前修改的副产品成本分配的方法
Map<String, String> resultMap = BomApi.modifyBomDistribution(srv, inData);
//设置IFS信息
inData.setIfsRowVersion(resultMap.get("ifsRowVersion"));
//打印日志
try{
//查询数据
Map<String, String> searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//判断是否存在
if(searchMap == null) {
throw new RuntimeException("查无此副产品分配信息!");
}
//设置RowId和Rowversion
inData.setIfsRowId(searchMap.get("IFSROWID"));
inData.setIfsRowVersion(searchMap.get("IFSROWVERSION"));
//不存在 则调用当前修改的副产品成本分配的方法
Map<String, String> resultMap = BomApi.modifyBomDistribution(srv, inData);
//设置IFS信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}//打印日志
logger.info("Bom Distribution查询结束:"+JSON.toJSONString(inData));
//返回结果
return inData;
//返回结果
return returnMap;
}
/**
@ -603,49 +673,52 @@ public class BomServiceBean {
* @date 2024/12/13 10:57
* @version 1.0
*/
public List<BomDistribution> modifyBomDistributions(List<BomDistribution> inDatas) throws APException {
public Map<String, String> modifyBomDistributions(Server srv, List<BomDistribution> inDatas) throws APException {
logger.info("Bom Distribution批量修改开始:"+JSON.toJSONString(inDatas));
BomDistribution inData = inDatas.get(0);
//公共参数
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
Map<String, String> returnMap = new HashMap<>();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//迭代循环调用 验证
for(BomDistribution bomDistribution : inDatas) {
String componentLineItemNo = bomDistribution.getComponentLineItemNo();
String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号
Map<String, String> searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//判断是否存在
if(searchMap == null) {
throw new RuntimeException("查无此副产品分配信息!");
try{
//迭代循环调用 验证
for(BomDistribution bomDistribution : inDatas) {
String componentLineItemNo = bomDistribution.getComponentLineItemNo();
String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号
Map<String, String> searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//判断是否存在
if(searchMap == null) {
throw new RuntimeException("查无此副产品分配信息!");
}
}
}
//迭代循环调用
for(BomDistribution bomDistribution : inDatas) {
String componentLineItemNo = bomDistribution.getComponentLineItemNo();
String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号
Map<String, String> searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//设置RowId和Rowversion
bomDistribution.setIfsRowId(searchMap.get("IFSROWID"));
bomDistribution.setIfsRowVersion(searchMap.get("IFSROWVERSION"));
//不存在 则调用当前修改的副产品成本分配的方法
Map<String, String> resultMap = BomApi.modifyBomDistribution(srv, bomDistribution);
//设置版本信息
bomDistribution.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
//迭代循环调用
for(BomDistribution bomDistribution : inDatas) {
String componentLineItemNo = bomDistribution.getComponentLineItemNo();
String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号
Map<String, String> searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//设置RowId和Rowversion
bomDistribution.setIfsRowId(searchMap.get("IFSROWID"));
bomDistribution.setIfsRowVersion(searchMap.get("IFSROWVERSION"));
//不存在 则调用当前修改的副产品成本分配的方法
Map<String, String> resultMap = BomApi.modifyBomDistribution(srv, bomDistribution);
//设置版本信息
bomDistribution.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Distribution批量修改结束:"+JSON.toJSONString(inDatas));
//返回结果
return inDatas;
//返回结果
return returnMap;
}

774
src/main/java/com/spring/ifs/bean/BomServiceBeanTest.java

@ -0,0 +1,774 @@
package com.spring.ifs.bean;
import com.alibaba.fastjson.JSON;
import com.spring.ifs.api.BomApi;
import com.spring.ifs.api.BomApiTest;
import com.spring.ifs.api.IfsServer;
import com.spring.ifs.data.BomAlternative;
import com.spring.ifs.data.BomDistribution;
import com.spring.ifs.data.BomHeader;
import com.spring.ifs.data.BomItem;
import ifs.fnd.ap.APException;
import ifs.fnd.ap.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @description: 处理Bom的
* @author LR
* @date 2024/12/9 15:44
* @version 1.0
*/
@Component
public class BomServiceBeanTest {
@Autowired
private IfsServer ifsServer;
private static final Logger logger = LoggerFactory.getLogger(BomServiceBeanTest.class);
/**
* @description: 查询Bom Header
* @author LR
* @date 2024/12/12 15:49
* @version 1.0
*/
public Map<String, String> getBomHeader(BomHeader inData) throws APException {
logger.info("Bom查询参数:"+JSON.toJSONString(inData));
//查询的参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
try{ //获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApiTest.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom查询:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: Bom Header新增
* @author LR
* @date 2024/12/12 15:52
* @version 1.0
*/
public Map<String, String> syncBomHeader(BomHeader inData) throws APException {
logger.info("Bom新增开始:"+JSON.toJSONString(inData));
//查询的参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
try{
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApiTest.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap != null && bomMap.size() > 0) {
throw new RuntimeException("Bom已存在!");
}
//调用api
Map<String, String> resultMap = BomApiTest.insertBomHeader(srv, inData);
//设置版本的信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom新增结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: Bom Header修改
* @author LR
* @date 2024/12/12 15:55
* @version 1.0
*/
public Map<String, String> modifyBomHeader(BomHeader inData) throws APException {
logger.info("Bom修改开始:"+JSON.toJSONString(inData));
//查询的参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
try{
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApiTest.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
Map<String, String> resultMap = BomApiTest.modifyBomHeader(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom修改结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: Bom Header删除
* @author LR
* @date 2024/12/12 15:58
* @version 1.0
*/
public Map<String, String> removeBomHeader(BomHeader inData) throws APException {
logger.info("Bom Header删除开始:"+JSON.toJSONString(inData));
//查询的参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
Map<String, String> bomMap = BomApiTest.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
//判断是否需要插入到ifs
if(bomMap == null || bomMap.size() == 0) {
throw new RuntimeException("Bom不存在!");
}
//设置ifs 信息
inData.setIfsRowId(bomMap.get("IFSROWID"));
inData.setIfsRowVersion(bomMap.get("IFSROWVERSION"));
BomApiTest.removeBomHeader(srv, inData);
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Header 删除结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 查询Bom Alternative
* @author LR
* @date 2024/12/12 16:59
* @version 1.0
*/
public Map<String, String> getBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom Alternative 查询开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null) {
throw new RuntimeException("Bom Alternative 不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Alternative 查询结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 插入Bom Alternative
* @author LR
* @date 2024/12/12 17:03
* @version 1.0
*/
public Map<String, String> syncBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom Alternative 新增开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{ //获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap != null && alternativeMap.size() > 0) {
throw new RuntimeException("Bom Alternative 已存在!");
}
//调用新增api
Map<String, String> resultMap = BomApiTest.insertBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowId(resultMap.get("OBJID"));
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Alternative 新增结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 修改Bom Alternative
* @author LR
* @date 2024/12/12 17:06
* @version 1.0
*/
public Map<String, String> modifyBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom Alternative 修改开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{ //获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用api
Map<String, String> resultMap = BomApiTest.modifyBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Alternative 修改结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 删除Bom Alternative
* @author LR
* @date 2024/12/12 17:07
* @version 1.0
*/
public Map<String, String> removeBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom Alternative 删除开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用api
BomApiTest.removeBomAlternative(srv, inData);
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Alternative 删除结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: Build Bom Alternative
* @author LR
* @date 2024/12/13 9:37
* @version 1.0
*/
public Map<String, String> buildBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom替代Build开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用删除方法
Map<String, String> resultMap = BomApiTest.buildBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代Build结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: Retire Bom Alternative
* @author LR
* @date 2024/12/13 9:40
* @version 1.0
*/
public Map<String, String> retireBomAlternative(BomAlternative inData) throws APException {
logger.info("Bom替代retire开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{ //获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//设置ifs 信息
inData.setIfsRowId(alternativeMap.get("IFSROWID"));
inData.setIfsRowVersion(alternativeMap.get("IFSROWVERSION"));
//调用删除方法
Map<String, String> resultMap = BomApiTest.retireBomAlternative(srv, inData);
//设置ifs 信息
inData.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代retire开始:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 获取Bom 的明细
* @author LR
* @date 2024/12/13 9:53
* @version 1.0
*/
public Map<String, String> getBomItems(BomItem inData) throws APException {
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
String lineItemNo = inData.getLineItemNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> resultList = BomApiTest.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo);
//判断是否查询数据
if(resultList == null ||resultList.size() == 0 || resultList.isEmpty()) {
throw new RuntimeException("不存在此bom组件信息!");
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代明细集合结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 批量新增Bom Item
* @author LR
* @date 2024/12/12 17:23
* @version 1.0
*/
public Map<String, String> syncBomItems(List<BomItem> inDatas) throws APException {
logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inDatas.get(0).getIfsUsername();
String password = inDatas.get(0).getIfsPassword();
String contract = inDatas.get(0).getContract();
String partNo = inDatas.get(0).getPartNo();
String engChgLevel = inDatas.get(0).getEngChgLevel();
String bomType = inDatas.get(0).getBomType();
String alternativeNo = inDatas.get(0).getAlternativeNo();
String lineItemNo = inDatas.get(0).getLineItemNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> itemList = BomApiTest.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//转Map
Map<String, String> itemMap = itemList.stream().collect(Collectors.toMap(BomItem::getLineItemNo, BomItem::getLineItemNo));
//打印日志
logger.info("Bom替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
//循环判断的方法
for(BomItem bomItem : inDatas) {
//判断是否已经存在
String tempLineItemNo = bomItem.getLineItemNo();
if(itemMap.containsKey(tempLineItemNo)) {
throw new RuntimeException("已存在此bom组件信息!LineItemNo:"+tempLineItemNo);
}
}
// 校验通过 循环调用新增的方法
for(BomItem bomItem : inDatas) {
//调用api
Map<String, String> tempMap = BomApiTest.insertBomItem(srv, bomItem);
//设置ifs 信息
bomItem.setIfsRowId(tempMap.get("OBJID"));
bomItem.setIfsRowVersion(tempMap.get("OBJVERSION"));
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inDatas));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas));
//返回结果集
return returnMap;
}
/**
* @description: 修改Bom的明细
* @author LR
* @date 2024/12/13 10:24
* @version 1.0
*/
public Map<String, String> modifyBomItem(BomItem inData) throws APException {
logger.info("Bom替代明细新增开始:"+JSON.toJSONString(inData));
// 公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
String lineItemNo = inData.getLineItemNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询制造商信息
Map<String, String> alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo);
//判断是否需要插入到ifs
if(alternativeMap == null || alternativeMap.size() == 0) {
throw new RuntimeException("Bom Alternative不存在!");
}
//查询结果集
List<BomItem> resultList = BomApiTest.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo);
//判断是否查询数据
if(resultList.size() == 0 || resultList.isEmpty()) {
throw new RuntimeException("不存在此bom组件信息!");
}
BomItem bomItem = resultList.get(0);
//设置版本信息
inData.setIfsRowId(bomItem.getIfsRowId());
inData.setIfsRowVersion(bomItem.getIfsRowVersion());
//调用修改的方法
Map<String, String> resultMap = BomApiTest.modifyBomItem(srv, inData);
//设置ifs 信息
bomItem.setIfsRowId(resultMap.get("OBJID"));
bomItem.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom替代明细新增结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 批量删除
* @author LR
* @date 2024/12/13 10:26
* @version 1.0
*/
public Map<String, String> removeBomItems(List<BomItem> inDatas) throws APException {
logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inDatas.get(0).getIfsUsername();
String password = inDatas.get(0).getIfsPassword();
String contract = inDatas.get(0).getContract();
String partNo = inDatas.get(0).getPartNo();
String engChgLevel = inDatas.get(0).getEngChgLevel();
String bomType = inDatas.get(0).getBomType();
String alternativeNo = inDatas.get(0).getAlternativeNo();
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询结果集
List<BomItem> itemList = BomApiTest.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//转Map
Map<String, BomItem> itemMap = itemList.stream().collect(Collectors.toMap(BomItem::getLineItemNo, Function.identity()));
//打印日志
logger.info("Bom替代明细集合 批量新增结束:"+JSON.toJSONString(inDatas));
//循环判断的方法
for(BomItem bomItem : inDatas) {
//判断是否已经存在
String tempLineItemNo = bomItem.getLineItemNo();
if(!itemMap.containsKey(tempLineItemNo)) {
throw new RuntimeException("不存在此bom组件信息!LineItemNo:"+tempLineItemNo);
}
}
// 校验通过 循环调用新增的方法
for(BomItem bomItem : inDatas) {
//设置版本的信息
String key = bomItem.getLineItemNo();
BomItem oriItem = itemMap.get(key);
bomItem.setIfsRowId(oriItem.getIfsRowId());
bomItem.setIfsRowVersion(oriItem.getIfsRowVersion());
//调用api
BomApiTest.removeBomItem(srv, bomItem);
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inDatas));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas));
//返回结果集
return returnMap;
}
/**
* @description: 修改单个 Bom 副产品
* @author LR
* @date 2024/12/13 10:51
* @version 1.0
*/
public Map<String, String> modifyBomDistribution(BomDistribution inData) throws APException {
logger.info("Bom Distribution查询开始:"+JSON.toJSONString(inData));
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
String componentLineItemNo = inData.getComponentLineItemNo();
String byProductLineItemNo = inData.getByProdLineItemNo();// 副产品的序号
try{//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询数据
Map<String, String> searchMap = BomApiTest.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//判断是否存在
if(searchMap == null) {
throw new RuntimeException("查无此副产品分配信息!");
}
//设置RowId和Rowversion
inData.setIfsRowId(searchMap.get("IFSROWID"));
inData.setIfsRowVersion(searchMap.get("IFSROWVERSION"));
//不存在 则调用当前修改的副产品成本分配的方法
Map<String, String> resultMap = BomApiTest.modifyBomDistribution(srv, inData);
//设置IFS信息
inData.setIfsRowVersion(resultMap.get("OBJVERSION"));
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}//打印日志
logger.info("Bom Distribution查询结束:"+JSON.toJSONString(inData));
//返回结果集
return returnMap;
}
/**
* @description: 批量修改
* @author LR
* @date 2024/12/13 10:57
* @version 1.0
*/
public Map<String, String> modifyBomDistributions(List<BomDistribution> inDatas) throws APException {
logger.info("Bom Distribution批量修改开始:"+JSON.toJSONString(inDatas));
BomDistribution inData = inDatas.get(0);
//公共参数
Map<String, String> returnMap = new HashMap<>();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String contract = inData.getContract();
String partNo = inData.getPartNo();
String engChgLevel = inData.getEngChgLevel();
String bomType = inData.getBomType();
String alternativeNo = inData.getAlternativeNo();
try{ //获取连接
Server srv = ifsServer.getIfsServer(username, password);
//迭代循环调用 验证
for(BomDistribution bomDistribution : inDatas) {
String componentLineItemNo = bomDistribution.getComponentLineItemNo();
String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号
Map<String, String> searchMap = BomApiTest.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//判断是否存在
if(searchMap == null) {
throw new RuntimeException("查无此副产品分配信息!");
}
}
//迭代循环调用
for(BomDistribution bomDistribution : inDatas) {
String componentLineItemNo = bomDistribution.getComponentLineItemNo();
String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号
Map<String, String> searchMap = BomApiTest.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo,
componentLineItemNo, byProductLineItemNo);
//设置RowId和Rowversion
bomDistribution.setIfsRowId(searchMap.get("IFSROWID"));
bomDistribution.setIfsRowVersion(searchMap.get("IFSROWVERSION"));
//不存在 则调用当前修改的副产品成本分配的方法
Map<String, String> resultMap = BomApiTest.modifyBomDistribution(srv, bomDistribution);
//设置版本信息
bomDistribution.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
}
returnMap.put("resultCode", "200");
returnMap.put("obj", JSON.toJSONString(inData));
} catch(APException e){
returnMap.put("resultCode", "400");
returnMap.put("resultMsg", e.getMessage());
}
//打印日志
logger.info("Bom Distribution批量修改结束:"+JSON.toJSONString(inDatas));
//返回结果集
return returnMap;
}
}

6
src/main/java/com/spring/ifs/bean/InventoryServiceBean.java

@ -37,7 +37,7 @@ public class InventoryServiceBean {
* @date 2024/12/12 15:49
* @version 1.0
*/
public Map<String, String> getInventoryPart(Server srv, InventoryPart inData) {
public Map<String, String> getInventoryPart(Server srv, PartIfsInventory inData) {
logger.info("Inventory Part 查询开始:"+ JSON.toJSONString(inData));
//查询的参数
Map<String, String> returnMap = new HashMap<>();
@ -646,10 +646,10 @@ public class InventoryServiceBean {
String partNo = inData.getPartNo();
try{
//按照条件查询Bom的相关信息 按照海波的要求 删除Bom Header
List<BomHeader> bomHeaders = BomApi.getBomHeadersByPartNo(srv, contract, partNo);
List<BomIfsHeader> bomHeaders = BomApi.getBomHeadersByPartNo(srv, contract, partNo);
//判断是否存在
if(bomHeaders != null && bomHeaders.size() > 0) {
for(BomHeader bomHeader : bomHeaders) {
for(BomIfsHeader bomHeader : bomHeaders) {
//执行删除的操作
BomApi.removeBomHeader(srv, bomHeader);
}

4
src/main/java/com/spring/ifs/bean/InventoryServiceBeanTest.java

@ -552,12 +552,12 @@ public class InventoryServiceBeanTest {
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//按照条件查询Bom的相关信息 按照海波的要求 删除Bom Header
List<BomHeader> bomHeaders = BomApi.getBomHeadersByPartNo(srv, contract, partNo);
List<BomHeader> bomHeaders = BomApiTest.getBomHeadersByPartNo(srv, contract, partNo);
//判断是否存在
if(bomHeaders != null && bomHeaders.size() > 0) {
for(BomHeader bomHeader : bomHeaders) {
//执行删除的操作
BomApi.removeBomHeader(srv, bomHeader);
BomApiTest.removeBomHeader(srv, bomHeader);
}
}

Loading…
Cancel
Save