You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
726 lines
31 KiB
726 lines
31 KiB
package com.spring.ifs.bean;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.spring.ifs.api.BomApi;
|
|
import com.spring.ifs.api.IfsServer;
|
|
import com.spring.ifs.data.*;
|
|
import com.spring.modules.part.entity.APIEntity.BomIfsAlternative;
|
|
import com.spring.modules.part.entity.APIEntity.BomIfsHeader;
|
|
import com.spring.modules.part.entity.APIEntity.BomIfsItem;
|
|
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.ArrayList;
|
|
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 BomServiceBean {
|
|
|
|
@Autowired
|
|
private IfsServer ifsServer;
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(BomServiceBean.class);
|
|
|
|
/**
|
|
* @description: 查询Bom Header
|
|
* @author LR
|
|
* @date 2024/12/12 15:49
|
|
* @version 1.0
|
|
*/
|
|
public Map<String, String> getBomHeader(Server srv, BomIfsHeader inData) {
|
|
logger.info("Bom查询参数:"+JSON.toJSONString(inData));
|
|
//查询的参数
|
|
Map<String, String> returnMap = new HashMap<>();
|
|
String contract = inData.getContract();
|
|
String partNo = inData.getPartNo();
|
|
String engChgLevel = inData.getEngChgLevel();
|
|
String bomType = inData.getBomType();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsHeader inData) {
|
|
logger.info("Bom新增开始:"+JSON.toJSONString(inData));
|
|
//查询的参数
|
|
Map<String, String> returnMap = new HashMap<>();
|
|
String contract = inData.getContract();
|
|
String partNo = inData.getPartNo();
|
|
String engChgLevel = inData.getEngChgLevel();
|
|
String bomType = inData.getBomType();
|
|
try{
|
|
//查询数据
|
|
Map<String, String> bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType);
|
|
//判断是否需要插入到ifs
|
|
if(bomMap != null && bomMap.size() > 0) {
|
|
throw new RuntimeException("Bom已存在!");
|
|
}
|
|
|
|
//调用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 returnMap;
|
|
}
|
|
|
|
/**
|
|
* @description: Bom Header修改
|
|
* @author LR
|
|
* @date 2024/12/12 15:55
|
|
* @version 1.0
|
|
*/
|
|
public Map<String, String> modifyBomHeader(Server srv, BomIfsHeader inData) {
|
|
logger.info("Bom修改开始:"+JSON.toJSONString(inData));
|
|
//查询的参数
|
|
Map<String, String> returnMap = new HashMap<>();
|
|
String contract = inData.getContract();
|
|
String partNo = inData.getPartNo();
|
|
String engChgLevel = inData.getEngChgLevel();
|
|
String bomType = inData.getBomType();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsHeader inData) {
|
|
logger.info("Bom Header删除开始:"+JSON.toJSONString(inData));
|
|
//查询的参数
|
|
Map<String, String> returnMap = new HashMap<>();
|
|
String contract = inData.getContract();
|
|
String partNo = inData.getPartNo();
|
|
String engChgLevel = inData.getEngChgLevel();
|
|
String bomType = inData.getBomType();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsAlternative inData) {
|
|
logger.info("Bom Alternative 查询开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsAlternative inData) {
|
|
logger.info("Bom Alternative 新增开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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();
|
|
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("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(Server srv, BomIfsAlternative inData) {
|
|
logger.info("Bom Alternative 修改开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsAlternative inData) {
|
|
logger.info("Bom Alternative 删除开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsAlternative inData) {
|
|
logger.info("Bom替代Build开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsAlternative inData) {
|
|
logger.info("Bom替代retire开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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();
|
|
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());
|
|
}
|
|
//打印日志
|
|
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(Server srv, BomIfsItem inData) {
|
|
//公共参数
|
|
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();
|
|
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 returnMap;
|
|
}
|
|
|
|
/**
|
|
* @description: 批量新增Bom Item
|
|
* @author LR
|
|
* @date 2024/12/12 17:23
|
|
* @version 1.0
|
|
*/
|
|
public Map<String, String> syncBomItems(Server srv, List<BomIfsItem> inDatas) {
|
|
logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas));
|
|
//公共参数
|
|
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();
|
|
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> 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(BomIfsItem bomItem : inDatas) {
|
|
//判断是否已经存在
|
|
String tempLineItemNo = bomItem.getLineItemNo();
|
|
if(itemMap.containsKey(tempLineItemNo)) {
|
|
throw new RuntimeException("已存在此bom组件信息!LineItemNo:"+tempLineItemNo);
|
|
}
|
|
}
|
|
// 校验通过 循环调用新增的方法
|
|
for(BomIfsItem 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 returnMap;
|
|
}
|
|
|
|
/**
|
|
* @description: 修改Bom的明细
|
|
* @author LR
|
|
* @date 2024/12/13 10:24
|
|
* @version 1.0
|
|
*/
|
|
public Map<String, String> modifyBomItem(Server srv, BomIfsItem inData) {
|
|
logger.info("Bom替代明细新增开始:"+JSON.toJSONString(inData));
|
|
// 公共参数
|
|
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();
|
|
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("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(Server srv, ArrayList<BomIfsItem> inDatas) {
|
|
logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas));
|
|
//公共参数
|
|
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();
|
|
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(BomIfsItem bomItem : inDatas) {
|
|
//判断是否已经存在
|
|
String tempLineItemNo = bomItem.getLineItemNo();
|
|
if(!itemMap.containsKey(tempLineItemNo)) {
|
|
throw new RuntimeException("不存在此bom组件信息!LineItemNo:"+tempLineItemNo);
|
|
}
|
|
}
|
|
// 校验通过 循环调用新增的方法
|
|
for(BomIfsItem 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;
|
|
}
|
|
|
|
/**
|
|
* @description: 修改单个 Bom 副产品
|
|
* @author LR
|
|
* @date 2024/12/13 10:51
|
|
* @version 1.0
|
|
*/
|
|
public Map<String, String> modifyBomDistribution(Server srv, BomDistribution inData) {
|
|
logger.info("Bom Distribution查询开始:"+JSON.toJSONString(inData));
|
|
//公共参数
|
|
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 componentLineItemNo = inData.getComponentLineItemNo();
|
|
String byProductLineItemNo = inData.getByProdLineItemNo();// 副产品的序号
|
|
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 returnMap;
|
|
}
|
|
|
|
/**
|
|
* @description: 批量修改
|
|
* @author LR
|
|
* @date 2024/12/13 10:57
|
|
* @version 1.0
|
|
*/
|
|
public Map<String, String> modifyBomDistributions(Server srv, List<BomDistribution> inDatas) {
|
|
logger.info("Bom Distribution批量修改开始:"+JSON.toJSONString(inDatas));
|
|
BomDistribution inData = inDatas.get(0);
|
|
//公共参数
|
|
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();
|
|
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"));
|
|
}
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
}
|