From fbf9c55f67b97c2c7b92d383fcefe3523e32a43c Mon Sep 17 00:00:00 2001 From: DouDou <877258667@qq.com> Date: Thu, 19 Dec 2024 09:28:58 +0800 Subject: [PATCH] =?UTF-8?q?IFS=20jar=20=E6=B5=8B=E8=AF=95=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/spring/ifs/api/BomApi.java | 26 +- .../java/com/spring/ifs/api/BomApiTest.java | 2 +- .../com/spring/ifs/bean/BomServiceBean.java | 719 ++++++++-------- .../spring/ifs/bean/BomServiceBeanTest.java | 774 ++++++++++++++++++ .../spring/ifs/bean/InventoryServiceBean.java | 6 +- .../ifs/bean/InventoryServiceBeanTest.java | 4 +- 6 files changed, 1190 insertions(+), 341 deletions(-) create mode 100644 src/main/java/com/spring/ifs/bean/BomServiceBeanTest.java diff --git a/src/main/java/com/spring/ifs/api/BomApi.java b/src/main/java/com/spring/ifs/api/BomApi.java index b2542719..cd89d8ec 100644 --- a/src/main/java/com/spring/ifs/api/BomApi.java +++ b/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 getBomHeadersByPartNo(Server srv, String contract, String partNo) throws APException { + public static List 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 resultItems = new ArrayList<>(); + List resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //判断是否存在数据 @@ -78,7 +80,7 @@ public class BomApi { //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map 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 insertBomHeader(Server srv, BomHeader inData) throws APException { + public static Map 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 modifyBomHeader(Server srv, BomHeader inData) throws APException { + public static Map 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 removeBomHeader(Server srv, BomHeader inData) throws APException { + public static Map 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 insertBomAlternative(Server srv, BomAlternative inData) throws APException { + public static Map 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 modifyBomAlternative(Server srv, BomAlternative inData) throws APException { + public static Map 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 buildBomAlternative(Server srv, BomAlternative inData) throws APException { + public static Map 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 retireBomAlternative(Server srv, BomAlternative inData) throws APException { + public static Map 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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map diff --git a/src/main/java/com/spring/ifs/api/BomApiTest.java b/src/main/java/com/spring/ifs/api/BomApiTest.java index b32704ab..7b0ada4e 100644 --- a/src/main/java/com/spring/ifs/api/BomApiTest.java +++ b/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 resultItems = new ArrayList<>(); //调用通用的处理方法 返回Map diff --git a/src/main/java/com/spring/ifs/bean/BomServiceBean.java b/src/main/java/com/spring/ifs/bean/BomServiceBean.java index 8ec27ab2..f0689eb2 100644 --- a/src/main/java/com/spring/ifs/bean/BomServiceBean.java +++ b/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 getBomHeader(Server srv, BomIfsHeader inData) throws APException { logger.info("Bom查询参数:"+JSON.toJSONString(inData)); //查询的参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType); - //判断是否需要插入到ifs - if(bomMap == null || bomMap.size() == 0) { - throw new RuntimeException("Bom不存在!"); + try{ + //查询数据 + Map 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 syncBomHeader(Server srv, BomIfsHeader inData) throws APException { logger.info("Bom新增开始:"+JSON.toJSONString(inData)); //查询的参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType); - //判断是否需要插入到ifs - if(bomMap != null && bomMap.size() > 0) { - throw new RuntimeException("Bom已存在!"); - } + try{ + //查询数据 + Map 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 resultMap = BomApi.insertBomHeader(srv, inData); - //设置版本的信息 - inData.setIfsRowVersion(resultMap.get("OBJVERSION")); + //调用api + Map 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 modifyBomHeader(Server srv, BomIfsHeader inData) throws APException { logger.info("Bom修改开始:"+JSON.toJSONString(inData)); //查询的参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType); - //判断是否需要插入到ifs - if(bomMap == null || bomMap.size() == 0) { - throw new RuntimeException("Bom不存在!"); + try{ + //查询数据 + Map 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 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 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 removeBomHeader(Server srv, BomIfsHeader inData) throws APException { logger.info("Bom Header删除开始:"+JSON.toJSONString(inData)); //查询的参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 bomMap = BomApi.getBomHeader(srv, contract, partNo, engChgLevel, bomType); - //判断是否需要插入到ifs - if(bomMap == null && bomMap.size() == 0) { - throw new RuntimeException("Bom不存在!"); + try{ + //查询数据 + Map 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 getBomAlternative(Server srv, BomIfsAlternative inData) throws APException { logger.info("Bom Alternative 查询开始:"+JSON.toJSONString(inData)); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null) { - throw new RuntimeException("Bom Alternative 不存在!"); + try{ + //查询数据 + Map 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 syncBomAlternative(Server srv, BomIfsAlternative inData) throws APException { logger.info("Bom Alternative 新增开始:"+JSON.toJSONString(inData)); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap != null && alternativeMap.size() > 0) { - throw new RuntimeException("Bom Alternative 已存在!"); - } + try{ + //查询数据 + Map alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap != null && alternativeMap.size() > 0) { + throw new RuntimeException("Bom Alternative 已存在!"); + } - //调用新增api - Map resultMap = BomApi.insertBomAlternative(srv, inData); - //设置ifs 信息 - inData.setIfsRowId(resultMap.get("IFSROWID")); - inData.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //调用新增api + Map 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 modifyBomAlternative(Server srv, BomIfsAlternative inData) throws APException { logger.info("Bom Alternative 修改开始:"+JSON.toJSONString(inData)); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); + try{ + //查询数据 + Map 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 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 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 removeBomAlternative(Server srv, BomIfsAlternative inData) throws APException { logger.info("Bom Alternative 删除开始:"+JSON.toJSONString(inData)); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); + try{ + //查询数据 + Map 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 buildBomAlternative(Server srv, BomIfsAlternative inData) throws APException { logger.info("Bom替代Build开始:"+JSON.toJSONString(inData)); - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + //公共参数 + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); + try{ + //查询数据 + Map 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 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 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 retireBomAlternative(Server srv, BomIfsAlternative inData) throws APException { + logger.info("Bom替代retire开始:"+JSON.toJSONString(inData)); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); + try{ + //查询数据 + Map 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 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 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 getBomItems(BomItem inData) throws APException { + public Map getBomItems(Server srv, BomItem inData) throws APException { //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); - } - //查询结果集 - List resultList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo); - //判断是否查询数据 - if(resultList.size() == 0 || resultList.isEmpty()) { - throw new RuntimeException("不存在此bom组件信息!"); + try{ + //查询数据 + Map alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Bom Alternative不存在!"); + } + //查询结果集 + List 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 syncBomItems(List inDatas) throws APException { + public Map syncBomItems(Server srv, List inDatas) throws APException { logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas)); //公共参数 - String username = inDatas.get(0).getIfsUsername(); - String password = inDatas.get(0).getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); - } - //查询结果集 - List itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); - //转Map - Map 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 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 tempMap = BomApi.insertBomItem(srv, bomItem); - //设置ifs 信息 - bomItem.setIfsRowId(tempMap.get("IFSROWID")); - bomItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); + //查询结果集 + List itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); + //转Map + Map 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 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 modifyBomItem(Server srv, BomItem inData) throws APException { logger.info("Bom替代明细新增开始:"+JSON.toJSONString(inData)); // 公共参数 - //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); - //判断是否需要插入到ifs - if(alternativeMap == null || alternativeMap.size() == 0) { - throw new RuntimeException("Bom Alternative不存在!"); - } - //查询结果集 - List resultList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, lineItemNo); - //判断是否查询数据 - if(resultList.size() == 0 || resultList.isEmpty()) { - throw new RuntimeException("不存在此bom组件信息!"); - } + try{ + //查询数据 + Map alternativeMap = BomApi.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Bom Alternative不存在!"); + } + //查询结果集 + List 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 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 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 inDatas) throws APException { + public Map removeBomItems(Server srv, List inDatas) throws APException { logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas)); //公共参数 - String username = inDatas.get(0).getIfsUsername(); - String password = inDatas.get(0).getIfsPassword(); + Map 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 itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); - //转Map - Map 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 itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); + //转Map + Map 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 modifyBomDistribution(Server srv, BomDistribution inData) throws APException { logger.info("Bom Distribution查询开始:"+JSON.toJSONString(inData)); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 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 resultMap = BomApi.modifyBomDistribution(srv, inData); - //设置IFS信息 - inData.setIfsRowVersion(resultMap.get("ifsRowVersion")); - //打印日志 + try{ + //查询数据 + Map 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 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 modifyBomDistributions(List inDatas) throws APException { + public Map modifyBomDistributions(Server srv, List inDatas) throws APException { logger.info("Bom Distribution批量修改开始:"+JSON.toJSONString(inDatas)); BomDistribution inData = inDatas.get(0); //公共参数 - String username = inData.getIfsUsername(); - String password = inData.getIfsPassword(); + Map 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 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 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 searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo, - componentLineItemNo, byProductLineItemNo); - //设置RowId和Rowversion - bomDistribution.setIfsRowId(searchMap.get("IFSROWID")); - bomDistribution.setIfsRowVersion(searchMap.get("IFSROWVERSION")); - //不存在 则调用当前修改的副产品成本分配的方法 - Map resultMap = BomApi.modifyBomDistribution(srv, bomDistribution); - //设置版本信息 - bomDistribution.setIfsRowVersion(resultMap.get("IFSROWVERSION")); + //迭代循环调用 + for(BomDistribution bomDistribution : inDatas) { + String componentLineItemNo = bomDistribution.getComponentLineItemNo(); + String byProductLineItemNo = bomDistribution.getByProdLineItemNo();// 副产品的序号 + Map searchMap = BomApi.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo, + componentLineItemNo, byProductLineItemNo); + //设置RowId和Rowversion + bomDistribution.setIfsRowId(searchMap.get("IFSROWID")); + bomDistribution.setIfsRowVersion(searchMap.get("IFSROWVERSION")); + //不存在 则调用当前修改的副产品成本分配的方法 + Map 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; } diff --git a/src/main/java/com/spring/ifs/bean/BomServiceBeanTest.java b/src/main/java/com/spring/ifs/bean/BomServiceBeanTest.java new file mode 100644 index 00000000..f8354998 --- /dev/null +++ b/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 getBomHeader(BomHeader inData) throws APException { + logger.info("Bom查询参数:"+JSON.toJSONString(inData)); + //查询的参数 + Map 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 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 syncBomHeader(BomHeader inData) throws APException { + logger.info("Bom新增开始:"+JSON.toJSONString(inData)); + //查询的参数 + Map 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 bomMap = BomApiTest.getBomHeader(srv, contract, partNo, engChgLevel, bomType); + //判断是否需要插入到ifs + if(bomMap != null && bomMap.size() > 0) { + throw new RuntimeException("Bom已存在!"); + } + + //调用api + Map 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 modifyBomHeader(BomHeader inData) throws APException { + logger.info("Bom修改开始:"+JSON.toJSONString(inData)); + //查询的参数 + Map 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 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 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 removeBomHeader(BomHeader inData) throws APException { + logger.info("Bom Header删除开始:"+JSON.toJSONString(inData)); + //查询的参数 + Map 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 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 getBomAlternative(BomAlternative inData) throws APException { + logger.info("Bom Alternative 查询开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 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 syncBomAlternative(BomAlternative inData) throws APException { + logger.info("Bom Alternative 新增开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap != null && alternativeMap.size() > 0) { + throw new RuntimeException("Bom Alternative 已存在!"); + } + + //调用新增api + Map 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 modifyBomAlternative(BomAlternative inData) throws APException { + logger.info("Bom Alternative 修改开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 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 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 removeBomAlternative(BomAlternative inData) throws APException { + logger.info("Bom Alternative 删除开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 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 buildBomAlternative(BomAlternative inData) throws APException { + logger.info("Bom替代Build开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 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 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 retireBomAlternative(BomAlternative inData) throws APException { + logger.info("Bom替代retire开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 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 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 getBomItems(BomItem inData) throws APException { + //公共参数 + Map 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 alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Bom Alternative不存在!"); + } + //查询结果集 + List 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 syncBomItems(List inDatas) throws APException { + logger.info("Bom替代明细集合新增开始:"+JSON.toJSONString(inDatas)); + //公共参数 + Map 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 alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Bom Alternative不存在!"); + } + //查询结果集 + List itemList = BomApiTest.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); + //转Map + Map 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 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 modifyBomItem(BomItem inData) throws APException { + logger.info("Bom替代明细新增开始:"+JSON.toJSONString(inData)); + // 公共参数 + Map 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 alternativeMap = BomApiTest.getBomAlternative(srv, contract, partNo, engChgLevel, bomType, alternativeNo); + //判断是否需要插入到ifs + if(alternativeMap == null || alternativeMap.size() == 0) { + throw new RuntimeException("Bom Alternative不存在!"); + } + //查询结果集 + List 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 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 removeBomItems(List inDatas) throws APException { + logger.info("Bom 明细集合删除开始:"+JSON.toJSONString(inDatas)); + //公共参数 + Map 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 itemList = BomApiTest.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); + //转Map + Map 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 modifyBomDistribution(BomDistribution inData) throws APException { + logger.info("Bom Distribution查询开始:"+JSON.toJSONString(inData)); + //公共参数 + Map 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 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 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 modifyBomDistributions(List inDatas) throws APException { + logger.info("Bom Distribution批量修改开始:"+JSON.toJSONString(inDatas)); + BomDistribution inData = inDatas.get(0); + //公共参数 + Map 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 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 searchMap = BomApiTest.getBomDistribution(srv, contract, partNo, engChgLevel, bomType, alternativeNo, + componentLineItemNo, byProductLineItemNo); + //设置RowId和Rowversion + bomDistribution.setIfsRowId(searchMap.get("IFSROWID")); + bomDistribution.setIfsRowVersion(searchMap.get("IFSROWVERSION")); + //不存在 则调用当前修改的副产品成本分配的方法 + Map 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; + } + + + +} diff --git a/src/main/java/com/spring/ifs/bean/InventoryServiceBean.java b/src/main/java/com/spring/ifs/bean/InventoryServiceBean.java index 3cca99d3..f7ea4573 100644 --- a/src/main/java/com/spring/ifs/bean/InventoryServiceBean.java +++ b/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 getInventoryPart(Server srv, InventoryPart inData) { + public Map getInventoryPart(Server srv, PartIfsInventory inData) { logger.info("Inventory Part 查询开始:"+ JSON.toJSONString(inData)); //查询的参数 Map returnMap = new HashMap<>(); @@ -646,10 +646,10 @@ public class InventoryServiceBean { String partNo = inData.getPartNo(); try{ //按照条件查询Bom的相关信息 按照海波的要求 删除Bom Header - List bomHeaders = BomApi.getBomHeadersByPartNo(srv, contract, partNo); + List bomHeaders = BomApi.getBomHeadersByPartNo(srv, contract, partNo); //判断是否存在 if(bomHeaders != null && bomHeaders.size() > 0) { - for(BomHeader bomHeader : bomHeaders) { + for(BomIfsHeader bomHeader : bomHeaders) { //执行删除的操作 BomApi.removeBomHeader(srv, bomHeader); } diff --git a/src/main/java/com/spring/ifs/bean/InventoryServiceBeanTest.java b/src/main/java/com/spring/ifs/bean/InventoryServiceBeanTest.java index 7aacbc23..9d1a5f4a 100644 --- a/src/main/java/com/spring/ifs/bean/InventoryServiceBeanTest.java +++ b/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 bomHeaders = BomApi.getBomHeadersByPartNo(srv, contract, partNo); + List bomHeaders = BomApiTest.getBomHeadersByPartNo(srv, contract, partNo); //判断是否存在 if(bomHeaders != null && bomHeaders.size() > 0) { for(BomHeader bomHeader : bomHeaders) { //执行删除的操作 - BomApi.removeBomHeader(srv, bomHeader); + BomApiTest.removeBomHeader(srv, bomHeader); } }