Browse Source

新增api查询接口

master
Rui_Li 1 year ago
parent
commit
65821c62ab
  1. 87
      src/main/java/com/spring/ifs/api/BaseSearchApi.java
  2. 89
      src/main/java/com/spring/ifs/api/BaseSearchApiTest.java
  3. 43
      src/main/java/com/spring/ifs/bean/BaseSearchBean.java
  4. 50
      src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java
  5. 46
      src/main/java/com/spring/ifs/controller/TestIfsController.java

87
src/main/java/com/spring/ifs/api/BaseSearchApi.java

@ -331,4 +331,91 @@ public class BaseSearchApi {
return resultItems;
}
}
/**
* @description: 根据条件查询库存件的成本价
* @author LR
* @date 2025/1/17 11:36
* @version 1.0
*/
public static InventoryPartUnitCostSumVo getInventoryValueByPartNo(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT site, PART_NO, CONFIGURATION_ID, LOT_BATCH_NO, SERIAL_NO,");
searchSql.append(" ifsapp.Inventory_Part_Unit_Cost_API.Get_Inventory_Value_By_Method(CONTRACT,PART_NO,CONFIGURATION_ID,LOT_BATCH_NO,SERIAL_NO) inventoryValue");
searchSql.append(" FROM ifsapp.INVENTORY_PART_UNIT_COST_SUM pcs");
searchSql.append(" WHERE pcs.CONTRACT = : contract AND pcs.PART_NO = :partNo AND pcs.CONFIGURATION_ID = '*'");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
} else {
//调用通用的处理方法 返回Map
Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordCollection.get(0));
InventoryPartUnitCostSumVo resultRow = new InventoryPartUnitCostSumVo();
//设置参数
resultRow.setIfsRowId(resultMap.get("IFSROWID"));
resultRow.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
resultRow.setSite(resultMap.get("SITE"));
resultRow.setPartNo(resultMap.get("PART_NO"));
resultRow.setConfigurationId(resultMap.get("CONFIGURATION_ID"));
resultRow.setLotBatchNo(resultMap.get("LOT_BATCH_NO"));
resultRow.setSerialNo(resultMap.get("SERIAL_NO"));
resultRow.setInventoryValue(resultMap.get("INVENTORYVALUE"));
return resultRow;
}
}
/**
* @description: 查询技术等级的属性列表
* @author LR
* @date 2025/1/17 14:12
* @version 1.0
*/
public static List<TechnicalAttribute> getTechnicalAttributesByCon(Server srv, String technicalSpecNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, TECHNICAL_SPEC_NO, TECHNICAL_CLASS, ATTRIB_NUMBER, ATTRIBUTE,");
searchSql.append(" VALUE_NO, LOWER_LIMIT, UPPER_LIMIT, INFO, ALT_VALUE_NO, ALT_UNIT,");
searchSql.append(" CASE WHEN objtype = 'TechnicalSpecNumeric' THEN 'Numeric'");
searchSql.append(" WHEN objtype = 'TechnicalSpecAlphanum' THEN 'Alpha' ELSE '' END attributeType");
searchSql.append(" FROM ifsapp.TECHNICAL_SPECIFICATION_BOTH");
searchSql.append(" WHERE TECHNICAL_SPEC_NO = :technicalSpecNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("technicalSpecNo", technicalSpecNo);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<TechnicalAttribute> technicalAttributes = new ArrayList<>();
//处理结果集
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
//获取数据转bean
for (int i = 0; i < resultList.size(); i++) {
Map<String, String> tempMap = resultList.get(i);
TechnicalAttribute tempItem = new TechnicalAttribute();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setTechnicalSpecNo(tempMap.get("TECHNICAL_SPEC_NO"));
tempItem.setTechnicalClass(tempMap.get("TECHNICAL_CLASS"));
tempItem.setAttribute(tempMap.get("ATTRIBUTE"));
tempItem.setValueNo(tempMap.get("VALUE_NO"));
tempItem.setLowerLimit(tempMap.get("LOWER_LIMIT"));
tempItem.setUpperLimit(tempMap.get("UPPER_LIMIT"));
tempItem.setInfo(tempMap.get("INFO"));
tempItem.setAttributeType(tempMap.get("ATTRIBUTETYPE"));
//添加对象
technicalAttributes.add(tempItem);
}
return technicalAttributes;
}
}
}

89
src/main/java/com/spring/ifs/api/BaseSearchApiTest.java

@ -3,6 +3,7 @@ package com.spring.ifs.api;
import com.spring.ifs.data.*;
import com.spring.ifs.utils.IfsConverterToMap;
import com.spring.ifs.utils.IfsPlsqlUtils;
import com.spring.modules.part.vo.InventoryPartUnitCostSumVo;
import ifs.fnd.ap.APException;
import ifs.fnd.ap.RecordCollection;
import ifs.fnd.ap.Server;
@ -325,4 +326,92 @@ public class BaseSearchApiTest {
return resultItems;
}
}
/**
* @description: 根据条件查询库存件的成本价
* @author LR
* @date 2025/1/17 11:36
* @version 1.0
*/
public static InventoryValue getInventoryValueByPartNo(Server srv, String contract, String partNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT site, PART_NO, CONFIGURATION_ID, LOT_BATCH_NO, SERIAL_NO,");
searchSql.append(" ifsapp.Inventory_Part_Unit_Cost_API.Get_Inventory_Value_By_Method(CONTRACT,PART_NO,CONFIGURATION_ID,LOT_BATCH_NO,SERIAL_NO) inventoryValue");
searchSql.append(" FROM ifsapp.INVENTORY_PART_UNIT_COST_SUM pcs");
searchSql.append(" WHERE pcs.CONTRACT = : contract AND pcs.PART_NO = :partNo AND pcs.CONFIGURATION_ID = '*'");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("contract", contract);
inParam.put("partNo", partNo);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return null;
} else {
//调用通用的处理方法 返回Map
Map<String, String> resultMap = IfsConverterToMap.ConverterIfsToMap(recordCollection.get(0));
InventoryValue resultRow = new InventoryValue();
//设置参数
resultRow.setIfsRowId(resultMap.get("IFSROWID"));
resultRow.setIfsRowVersion(resultMap.get("IFSROWVERSION"));
resultRow.setSite(resultMap.get("SITE"));
resultRow.setPartNo(resultMap.get("PART_NO"));
resultRow.setConfigurationId(resultMap.get("CONFIGURATION_ID"));
resultRow.setLotBatchNo(resultMap.get("LOT_BATCH_NO"));
resultRow.setSerialNo(resultMap.get("SERIAL_NO"));
resultRow.setInventoryValue(resultMap.get("INVENTORYVALUE"));
return resultRow;
}
}
/**
* @description: 查询技术等级的属性列表
* @author LR
* @date 2025/1/17 14:12
* @version 1.0
*/
public static List<TechnicalAttribute> getTechnicalAttributesByCon(Server srv, String technicalSpecNo) throws APException {
StringBuilder searchSql = new StringBuilder();
searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, TECHNICAL_SPEC_NO, TECHNICAL_CLASS, ATTRIB_NUMBER, ATTRIBUTE,");
searchSql.append(" VALUE_NO, LOWER_LIMIT, UPPER_LIMIT, INFO, ALT_VALUE_NO, ALT_UNIT,");
searchSql.append(" CASE WHEN objtype = 'TechnicalSpecNumeric' THEN 'Numeric'");
searchSql.append(" WHEN objtype = 'TechnicalSpecAlphanum' THEN 'Alpha' ELSE '' END attributeType");
searchSql.append(" FROM ifsapp.TECHNICAL_SPECIFICATION_BOTH");
searchSql.append(" WHERE TECHNICAL_SPEC_NO = :technicalSpecNo");
//设置查询的入参
Map<String, String> inParam = new HashMap<>();
inParam.put("technicalSpecNo", technicalSpecNo);
//调用查询的通用方法
RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam);
//判断能否返回
if (recordCollection == null) {
return new ArrayList<>();
} else {
List<TechnicalAttribute> technicalAttributes = new ArrayList<>();
//处理结果集
List<Map<String, String>> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection);
//获取数据转bean
for (int i = 0; i < resultList.size(); i++) {
Map<String, String> tempMap = resultList.get(i);
TechnicalAttribute tempItem = new TechnicalAttribute();
//设置参数
tempItem.setIfsRowId(tempMap.get("IFSROWID"));
tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION"));
tempItem.setTechnicalSpecNo(tempMap.get("TECHNICAL_SPEC_NO"));
tempItem.setTechnicalClass(tempMap.get("TECHNICAL_CLASS"));
tempItem.setAttribute(tempMap.get("ATTRIBUTE"));
tempItem.setValueNo(tempMap.get("VALUE_NO"));
tempItem.setLowerLimit(tempMap.get("LOWER_LIMIT"));
tempItem.setUpperLimit(tempMap.get("UPPER_LIMIT"));
tempItem.setInfo(tempMap.get("INFO"));
tempItem.setAttributeType(tempMap.get("ATTRIBUTETYPE"));
//添加对象
technicalAttributes.add(tempItem);
}
return technicalAttributes;
}
}
}

43
src/main/java/com/spring/ifs/bean/BaseSearchBean.java

@ -2,6 +2,7 @@ package com.spring.ifs.bean;
import com.spring.ifs.api.BaseSearchApi;
import com.spring.ifs.api.IfsServer;
import com.spring.ifs.api.TechnicalClassApi;
import com.spring.ifs.data.*;
import com.spring.modules.base.vo.PersonnelLevelVo;
import com.spring.modules.part.entity.PartInformationEntity;
@ -17,6 +18,7 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @description: 基础查询的实现类
@ -146,5 +148,46 @@ public class BaseSearchBean {
}
/**
* @description: 按照条件查询库存件的成本
* @author LR
* @date 2025/1/17 11:40
* @version 1.0
*/
public InventoryPartUnitCostSumVo getInventoryValueByPartNo(Server srv, PartInformationEntity inData) throws APException {
//查询的参数
String site = inData.getSite();
String partNo = inData.getPartNo();
logger.info("库存件cost value请求参数 域:"+site+",物料编码:"+partNo);
InventoryPartUnitCostSumVo resultRow = BaseSearchApi.getInventoryValueByPartNo(srv, site, partNo);
//判断null
if(resultRow == null) {
throw new APException("库存机按成本不存在!");
}
logger.info("返回集合大小:"+resultRow.toString());
return resultRow;
}
/**
* @description: 按照条件查询技术等级的数据
* @author LR
* @date 2025/1/17 13:20
* @version 1.0
*/
public List<TechnicalAttribute> getTechnicalAttributesByCon(BaseSearchData inData) throws APException {
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String keyRef = inData.getKeyRef();
String luName = inData.getLuName() ;
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询主表对应的信息
Map<String, String> resultMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
//获取关联键
String technicalSpecNo = resultMap.get("TECHNICAL_SPEC_NO");
//查询技术等级属性的列表数据
List<TechnicalAttribute> resultList = BaseSearchApi.getTechnicalAttributesByCon(srv, technicalSpecNo);
return resultList;
}
}

50
src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java

@ -1,8 +1,12 @@
package com.spring.ifs.bean;
import com.spring.ifs.api.BaseSearchApi;
import com.spring.ifs.api.BaseSearchApiTest;
import com.spring.ifs.api.IfsServer;
import com.spring.ifs.api.TechnicalClassApi;
import com.spring.ifs.data.*;
import com.spring.modules.part.entity.PartInformationEntity;
import com.spring.modules.part.vo.InventoryPartUnitCostSumVo;
import ifs.fnd.ap.APException;
import ifs.fnd.ap.Server;
import org.slf4j.Logger;
@ -12,6 +16,7 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @description: 基础查询的实现类
@ -159,6 +164,49 @@ public class BaseSearchBeanTest {
return resultList;
}
/**
* @description: 按照条件查询库存件的成本
* @author LR
* @date 2025/1/17 11:40
* @version 1.0
*/
public InventoryValue getInventoryValueByPartNo(BaseSearchData inData) throws APException {
//查询的参数
String site = inData.getSite();
String partNo = inData.getPartNo();
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
logger.info("库存件cost value请求参数 域:"+site+",物料编码:"+partNo);
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
InventoryValue resultRow = BaseSearchApiTest.getInventoryValueByPartNo(srv, site, partNo);
//判断null
if(resultRow == null) {
throw new APException("库存机按成本不存在!");
}
logger.info("返回集合大小:"+resultRow.toString());
return resultRow;
}
/**
* @description: 按照条件查询技术等级的数据
* @author LR
* @date 2025/1/17 13:20
* @version 1.0
*/
public List<TechnicalAttribute> getTechnicalAttributesByCon(BaseSearchData inData) throws APException {
String username = inData.getIfsUsername();
String password = inData.getIfsPassword();
String keyRef = inData.getKeyRef();
String luName = inData.getLuName() ;
//获取连接
Server srv = ifsServer.getIfsServer(username, password);
//查询主表对应的信息
Map<String, String> resultMap = TechnicalClassApi.getTechnicalClass(srv, luName, keyRef);
//获取关联键
String technicalSpecNo = resultMap.get("TECHNICAL_SPEC_NO");
//查询技术等级属性的列表数据
List<TechnicalAttribute> resultList = BaseSearchApi.getTechnicalAttributesByCon(srv, technicalSpecNo);
return resultList;
}
}

46
src/main/java/com/spring/ifs/controller/TestIfsController.java

@ -6,6 +6,7 @@ import com.spring.modules.part.entity.APIEntity.RecipeIfsAlternative;
import com.spring.modules.part.entity.APIEntity.RecipeIfsHeader;
import com.spring.modules.part.entity.APIEntity.RecipeIfsItem;
import ifs.fnd.ap.APException;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -37,6 +38,8 @@ public class TestIfsController {
private ToolServiceBeanTest toolServiceBean;
@Autowired
private RecipeServiceBeanTest recipeServiceBean;
@Autowired
private ListableBeanFactory listableBeanFactory;
/**
@ -149,6 +152,49 @@ public class TestIfsController {
return resultMap;
}
/**
* @description: 库存件成本查询
* @author LR
* @date 2025/1/17 11:44
* @version 1.0
*/
@PostMapping("/getInventoryValueByPartNo")
public Object getInventoryValueByPartNo(@RequestBody BaseSearchData inData) throws APException {
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
InventoryValue returnRow = baseSearchBeanTest.getInventoryValueByPartNo(inData);
resultMap.put("obj", returnRow);
resultMap.put("code", 200);
resultMap.put("msg", "操作成功!");
} catch (Exception e) {
resultMap.put("code", 400);
resultMap.put("msg", e.getMessage());
}
return resultMap;
}
/**
* @description: 按照条件查询技术等级的数据
* @author LR
* @date 2025/1/17 13:18
* @version 1.0
*/
@PostMapping("/getTechnicalAttributesByCon")
public Object getTechnicalAttributesByCon(@RequestBody BaseSearchData inData) throws APException {
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
List<TechnicalAttribute> returnlist = baseSearchBeanTest.getTechnicalAttributesByCon(inData);
resultMap.put("obj", returnlist);
resultMap.put("total", returnlist.size());
resultMap.put("code", 200);
resultMap.put("msg", "操作成功!");
} catch (Exception e) {
resultMap.put("code", 400);
resultMap.put("msg", e.getMessage());
}
return resultMap;
}
/**
* @description: 查询物料件
* @author LR

Loading…
Cancel
Save