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

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;
}
}