diff --git a/src/main/java/com/spring/ifs/api/RoutingApi.java b/src/main/java/com/spring/ifs/api/RoutingApi.java index fd56051a..ea2e68ab 100644 --- a/src/main/java/com/spring/ifs/api/RoutingApi.java +++ b/src/main/java/com/spring/ifs/api/RoutingApi.java @@ -857,6 +857,69 @@ public class RoutingApi { } } + /** + * @description: 同步数据查询routing 工具 + * @author LR + * @date 2025/7/4 16:34 + * @version 1.0 + */ + public static List getRoutingToolsForSync(Server srv, String contract, String partNo, String routingRevision, + String routingType, String alternativeNo, String operationNo) throws APException { + StringBuilder searchSql = new StringBuilder(); + searchSql.append("SELECT CONTRACT, PART_NO, ROUTING_REVISION, BOM_TYPE, ALTERNATIVE_NO, OPERATION_NO,"); + searchSql.append(" TOOL_ID, TOOL_QUANTITY, OBJID ifsRowId, OBJVERSION ifsRowVersion, NOTE_TEXT"); + searchSql.append(" FROM IFSAPP.ROUTING_OPERATION_TOOL"); + searchSql.append(" WHERE CONTRACT = :contract AND PART_NO = :partNo AND ROUTING_REVISION = :routingRevision"); + searchSql.append(" AND BOM_TYPE = :routingType AND ALTERNATIVE_NO = :alternativeNo"); + + //设置查询的入参 + Map inParam = new HashMap<>(); + inParam.put("contract", contract); + inParam.put("partNo", partNo); + inParam.put("routingRevision", routingRevision); + inParam.put("routingType", routingType); + inParam.put("alternativeNo", alternativeNo); + + //添加判断的查询条件 + if(!(null == operationNo || "".equals(operationNo))) { + searchSql.append(" AND OPERATION_NO = :operationNo"); + inParam.put("operationNo", operationNo); + } + //调用查询的通用方法 + RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); + //判断能否返回 + if (recordCollection == null) { + return new ArrayList<>(); + } else { + List resultItems = new ArrayList<>(); + //调用通用的处理方法 返回Map + List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); + //判断是否存在数据 + if(resultList == null) { + return resultItems; + } + //获取数据转bean + for (int i = 0; i < resultList.size(); i++) { + Map tempMap = resultList.get(i); + RoutingIfsTool tempItem = new RoutingIfsTool(); + //设置参数 + tempItem.setIfsRowId(tempMap.get("IFSROWID")); + tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); + tempItem.setContract(tempMap.get("CONTRACT")); + tempItem.setPartNo(tempMap.get("PART_NO")); + tempItem.setRoutingType(tempMap.get("BOM_TYPE")); + tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION")); + tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO")); + tempItem.setOperationNo(tempMap.get("OPERATION_NO")); // + tempItem.setToolId(tempMap.get("TOOL_ID")); // + tempItem.setNoteText(tempMap.get("NOTE_TEXT")); + //添加对象 + resultItems.add(tempItem); + } + return resultItems; + } + } + /** * @description: 查询Routing Tool的所有信息 * @author LR @@ -1114,6 +1177,66 @@ public class RoutingApi { } } + + public static List getRoutingGuideLinesForSync(Server srv, String contract, String partNo, String routingRevision, String routingType, String alternativeNo, String operationNo) throws APException { + StringBuilder searchSql = new StringBuilder(); + searchSql.append("SELECT rog.CONTRACT, rog.PART_NO, rog.ROUTING_REVISION, rog.BOM_TYPE, rog.ALTERNATIVE_NO, rot.OPERATION_NO, rog.GUIDELINE_NO,"); + searchSql.append(" rog.GUIDELINE_SEQ, rog.OBJID ifsRowId, rog.OBJVERSION ifsRowVersion"); + searchSql.append(" FROM IFSAPP.ROUTING_OPER_WORK_GUIDE rog"); + searchSql.append(" LEFT JOIN IFSAPP.ROUTING_OPERATION rot"); + searchSql.append(" ON rot.CONTRACT = rog.CONTRACT AND rot.PART_NO = rog.PART_NO AND rot.ROUTING_REVISION = rog.ROUTING_REVISION "); + searchSql.append(" AND rot.BOM_TYPE = rog.BOM_TYPE AND rot.ALTERNATIVE_NO = rog.ALTERNATIVE_NO AND rot.OPERATION_ID = rog.OPERATION_ID"); + searchSql.append(" WHERE rog.CONTRACT = :contract AND rog.PART_NO = :partNo AND rog.ROUTING_REVISION = :routingRevision"); + searchSql.append(" AND rog.BOM_TYPE = :routingType AND rog.ALTERNATIVE_NO = :alternativeNo"); + + //设置查询的入参 + Map inParam = new HashMap<>(); + inParam.put("contract", contract); + inParam.put("partNo", partNo); + inParam.put("routingRevision", routingRevision); + inParam.put("routingType", routingType); + inParam.put("alternativeNo", alternativeNo); + + //添加判断的查询条件 + if(!(null == operationNo || "".equals(operationNo))) { + searchSql.append(" AND rog.OPERATION_NO = :operationNo"); + inParam.put("operationNo", operationNo); + } + //调用查询的通用方法 + RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); + //判断能否返回 + if (recordCollection == null) { + return new ArrayList<>(); + } else { + List resultItems = new ArrayList<>(); + //调用通用的处理方法 返回Map + List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); + //判断是否存在数据 + if(resultList == null) { + return resultItems; + } + //获取数据转bean + for (int i = 0; i < resultList.size(); i++) { + Map tempMap = resultList.get(i); + RoutingIfsGuideLine tempItem = new RoutingIfsGuideLine(); + //设置参数 + tempItem.setIfsRowId(tempMap.get("IFSROWID")); + tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); + tempItem.setContract(tempMap.get("CONTRACT")); + tempItem.setPartNo(tempMap.get("PART_NO")); + tempItem.setRoutingType(tempMap.get("BOM_TYPE")); + tempItem.setRoutingRevision(tempMap.get("ROUTING_REVISION")); + tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO")); + tempItem.setOperationNo(tempMap.get("OPERATION_NO")); // + tempItem.setGuidelineSeq(tempMap.get("GUIDELINE_SEQ")); + tempItem.setNoteText(tempMap.get("NOTE_TEXT")); + //添加对象 + resultItems.add(tempItem); + } + return resultItems; + } + } + /** * @description: 新增 Routing Guide Line * @author LR diff --git a/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java b/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java index d2d35e8b..8ea8d827 100644 --- a/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java +++ b/src/main/java/com/spring/ifs/bean/RoutingServiceBean.java @@ -551,6 +551,18 @@ public class RoutingServiceBean { routingItem.setIfsRowId(tempMap.get("OBJID")); routingItem.setIfsRowVersion(tempMap.get("OBJVERSION")); } + //二次查询 赋值 operationId使用 + Map operationIdMap = new HashMap<>(); + itemList = RoutingApi.getRoutingItems(srv, contract, partNo, routingRevision, routingType, alternativeNo, null); + //转Map + for (RoutingIfsItem item : itemList){ + operationIdMap.put(item.getIfsRowId(), item.getOperationId()); + + } + //循环设置IfsoperationId + for (RoutingIfsItem item : inDatas){ + item.setIfsOperationId(operationIdMap.get(item.getIfsRowId())); + } returnMap.put("resultCode", "200"); returnMap.put("obj", JSON.toJSONString(inDatas)); } catch(APException e){ @@ -579,7 +591,7 @@ public class RoutingServiceBean { String routingRevision = inData.getRoutingRevision(); String routingType = inData.getRoutingType(); String alternativeNo = inData.getAlternativeNo(); - String operationNo = inData.getOperationNo(); + String operationId = inData.getOperationNo(); try{ //查询制造商信息 Map alternativeMap = RoutingApi.getRoutingAlternative(srv, contract, partNo, routingRevision, routingType, alternativeNo); @@ -729,6 +741,39 @@ public class RoutingServiceBean { return returnMap; } + /** + * @description: 同步查询guidelines + * @author LR + * @date 2025/7/4 16:40 + * @version 1.0 + */ + public Map getRoutingGuideLinesForSync(Server srv, RoutingIfsItem inData) { + logger.info("Routing GuideLines查询开始:"+JSON.toJSONString(inData)); + //公共参数 + Map returnMap = new HashMap<>(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + String operationNo = inData.getOperationNo(); + try{ + //循环处理 + List resultList = RoutingApi.getRoutingGuideLinesForSync(srv, contract, partNo, routingRevision, routingType, alternativeNo, operationNo); + returnMap.put("resultCode", "200"); + logger.info("Routing GuideLines查询到数据:"+JSON.toJSONString(resultList)); + returnMap.put("obj", JSON.toJSONString(resultList)); + } catch(APException e){ + returnMap.put("resultCode", "400"); + returnMap.put("resultMsg", e.getMessage()); + logger.info("异常信息:"+e.getMessage()); + } + //打印日志 + logger.info("Routing GuideLines查询结束:"+JSON.toJSONString(inData)); + //返回结果集 + return returnMap; + } + /** * @description: 批量新增 Routing Tool * @author LR @@ -934,6 +979,34 @@ public class RoutingServiceBean { return returnMap; } + public Map getRoutingToolsForSync(Server srv, RoutingIfsItem inData) { + logger.info("Routing Tools查询开始:"+JSON.toJSONString(inData)); + //公共参数 + Map returnMap = new HashMap<>(); + String contract = inData.getContract(); + String partNo = inData.getPartNo(); + String routingRevision = inData.getRoutingRevision(); + String routingType = inData.getRoutingType(); + String alternativeNo = inData.getAlternativeNo(); + String operationNo = inData.getOperationNo(); + try{ + //循环处理 + List resultList = RoutingApi.getRoutingToolsForSync(srv, contract, partNo, routingRevision, routingType, + alternativeNo, operationNo); + returnMap.put("resultCode", "200"); + logger.info("Routing Tools查询到数据:"+JSON.toJSONString(resultList)); + returnMap.put("obj", JSON.toJSONString(resultList)); + } catch(APException e){ + returnMap.put("resultCode", "400"); + returnMap.put("resultMsg", e.getMessage()); + logger.info("异常信息:"+e.getMessage()); + } + //打印日志 + logger.info("Routing Tools查询结束:"+JSON.toJSONString(inData)); + //返回结果集 + return returnMap; + } + diff --git a/src/main/java/com/spring/modules/part/entity/APIEntity/RoutingIfsItem.java b/src/main/java/com/spring/modules/part/entity/APIEntity/RoutingIfsItem.java index 4e567474..06c5a900 100644 --- a/src/main/java/com/spring/modules/part/entity/APIEntity/RoutingIfsItem.java +++ b/src/main/java/com/spring/modules/part/entity/APIEntity/RoutingIfsItem.java @@ -112,6 +112,8 @@ public class RoutingIfsItem { * ifs的对象id */ private String ifsRowVersion; + //2025-07-02 后加字段 + private String ifsOperationId; public RoutingIfsItem() {}