6 changed files with 1190 additions and 341 deletions
-
26src/main/java/com/spring/ifs/api/BomApi.java
-
2src/main/java/com/spring/ifs/api/BomApiTest.java
-
719src/main/java/com/spring/ifs/bean/BomServiceBean.java
-
774src/main/java/com/spring/ifs/bean/BomServiceBeanTest.java
-
6src/main/java/com/spring/ifs/bean/InventoryServiceBean.java
-
4src/main/java/com/spring/ifs/bean/InventoryServiceBeanTest.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; |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue