zouyu
6 天以前 e50a43bb067adff10cd1dcc81349b1aafdfda882
ruoyi-common/src/main/java/com/ruoyi/common/utils/api/IfsApiUtils.java
@@ -6,12 +6,15 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.config.ifs.IfsConfig;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.config.IfsProperties;
import com.ruoyi.common.config.ifs.IfsProperties;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -24,64 +27,46 @@
@Component
public class IfsApiUtils {
    private IfsProperties ifsProperties;
    private IfsConfig ifsConfig;
    public IfsProperties getPropByContract(String contract){
        return ifsConfig.getProps().stream().filter(f-> StringUtils.equals(contract,f.getContract())).findFirst().orElse(new IfsProperties());
    }
    /**
     * 查询采购订单未检验
     */
    private String getStock(String inAttr) {
        return ifsProperties.getCustorderPort() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=QUERY_POL_RECEIPT_STD&userId=lims_user&inAttr=" + inAttr;
    public List<Map<String, Object>> getInventory(Map<String,Object> inAttrMap) {
        List<Map<String, Object>> maps = new ArrayList<>();
        ifsConfig.getProps().forEach(ifsProp->{
            String procedureName = "QUERY_POL_RECEIPT_STD";
            inAttrMap.put("LOCATION_NO",ifsProp.getTobeInspectedLocation());
            String inAttr = JSONUtil.toJsonStr(inAttrMap);
            JSONObject stockMap = getJsonObject(procedureName, inAttr,ifsProp.getContract(),ifsProp.getContractKeyPost());
            String body = HttpRequest.post(ifsProp.getCustorderPort()).form(stockMap).execute().body();
            ObjectMapper objectMapper = new ObjectMapper();
            try {
                Map map = objectMapper.readValue(body, Map.class);
                maps.addAll(objectMapper.readValue(JSONUtil.toJsonStr(map.get("LIST_INFO")), new TypeReference<List<Map<String, Object>>>() {
                }));
                log.info("获取采购订单-->>" + maps);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        });
        return maps;
    }
    public List<Map<String, Object>> getInventory(String inAttr) {
        String body = HttpRequest.get(getStock(inAttr)).execute().body();
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Map map = objectMapper.readValue(body, Map.class);
            List<Map<String, Object>> maps = objectMapper.readValue(JSONUtil.toJsonStr(map.get("LIST_INFO")), new TypeReference<List<Map<String, Object>>>() {
            });
            log.info("获取采购订单-->>" + maps);
            return maps;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    /**
     * 登记采购检验结果STD
     */
    private String ProcurementResultsURL(String inAttr) {
        return ifsProperties.getCustorder() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=REGIST_INSPECTION_RESULTS_STD&userId=lims_user&inAttr=" + inAttr;
    public Result getProcurementResults(String contract,String inAttr) {
        return getResult(contract,"REGIST_INSPECTION_RESULTS_STD", inAttr, "GET", "登记采购检验结果-->");
    }
    public Result getProcurementResults(String inAttr) {
        String body = HttpRequest.get(ProcurementResultsURL(inAttr)).execute().body();
        log.info("登记采购检验结果-->" + body);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Map map = objectMapper.readValue(body, Map.class);
            String successFlag = map.get("SuccessFlag").toString();
            if (Integer.valueOf(successFlag) == 1) {
                return Result.success(map);
            } else {
                return Result.fail(map.get("ErrorMsg").toString());
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return Result.fail(e.getMessage());
        }
    }
    /**
     * 检验后移库
     */
    private String getMoveReceiptApi(String inAttr) {
        return ifsProperties.getCustorder() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=MOVE_RECEIPT_STD&userId=lims_user&inAttr=" + inAttr;
    }
    /**
     * 原材料检验-检验后移库
@@ -89,64 +74,22 @@
     * @param inAttr
     * @return
     */
    public Result moveReceipt(String inAttr) {
        String body = HttpRequest.get(getMoveReceiptApi(inAttr)).execute().body();
        log.info("检验后移库-->" + body);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Map map = objectMapper.readValue(body, Map.class);
            String successFlag = map.get("SuccessFlag").toString();
            if (Integer.valueOf(successFlag) == 1) {
                return Result.success(map);
            } else {
                return Result.fail(map.get("ErrorMsg").toString());
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return Result.fail(e.getMessage());
        }
    public Result moveReceipt(String contract,String inAttr) {
        return getResult(contract,"MOVE_RECEIPT_STD", inAttr, "GET", "检验后移库-->");
    }
    /**
     * 采购接收更改批号
     */
    private String getMoveReceiptLotApi(String inAttr) {
        return ifsProperties.getCustorder() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=MODIFY_PURCH_RECEIPT_LOT_STD&userId=lims_user&inAttr=" + inAttr;
    }
    /**
     * 原材料检验-检验后移库
     * 原材料检验-采购接收更改批号
     *
     * @param inAttr
     * @return
     */
    public Result updateMoveReceiptLot(String inAttr) {
        String body = HttpRequest.get(getMoveReceiptLotApi(inAttr)).execute().body();
        log.info("修改采购订单批次号-->" + body);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Map map = objectMapper.readValue(body, Map.class);
            String successFlag = map.get("SuccessFlag").toString();
            if (Integer.valueOf(successFlag) == 1) {
                return Result.success(map);
            } else {
                return Result.fail(map.get("ErrorMsg").toString());
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return Result.fail(e.getMessage());
        }
    public Result updateMoveReceiptLot(String contract,String inAttr) {
        return getResult(contract,"MODIFY_PURCH_RECEIPT_LOT_STD", inAttr, "GET", "修改采购订单批次号-->");
    }
    /**
     * 查询库存数据
     */
    private String getIfsStockApi(String inAttr) {
        return ifsProperties.getCustorderPort() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=QUERY_INVENTORY_INFO_STD&userId=lims_user&inAttr=" + inAttr;
    }
    /**
     * 查询库存数据
@@ -154,15 +97,40 @@
     * @param inAttr
     * @return
     */
    public Result getIfsStock(String inAttr) {
    public Result getIfsStock(String contract,String inAttr) {
        return getResult(contract,"QUERY_INVENTORY_INFO_STD", inAttr, "POST", "查询库存信息-->");
    }
    /**
     * 库存物料批次属性新增修改接口
     *
     * @param inAttr
     * @return
     */
    public Result importPartLotAttr(String contract,String inAttr) {
        return getResult(contract,"IMPORT_PART_LOT_ATTR_STD", inAttr, "GET", "库存物料批次属性新增修改接口-->");
    }
    /**
     * 通用接口
     * @param contract IFS域
     * @param procedureName 方法名
     * @param inAttr  传参
     * @param urlType 请求类型(GET/POST)
     * @param image 消息
     * @return
     */
    private Result<?> getResult(String contract,String procedureName, String inAttr, String urlType, String image) {
        IfsProperties ifsProperties = getPropByContract(contract);
        JSONObject stockMap = new JSONObject();
        stockMap.put("procedureName", "QUERY_INVENTORY_INFO_STD");
        stockMap.put("procedureName", procedureName);
        stockMap.put("contract", ifsProperties.getContract());
        stockMap.put("contractKey", ifsProperties.getContractKeyPost());
        stockMap.put("userId", "userId");
        stockMap.put("userId", "lims_user");
        stockMap.put("inAttr", inAttr);
        String body = HttpRequest.post(ifsProperties.getCustorderPort()).form(stockMap).execute().body();
        log.info("查询库存信息-->" + body);
        String url = StringUtils.equals("GET",urlType)?ifsProperties.getCustorder():ifsProperties.getCustorderPort();
        String body = HttpRequest.post(url).form(stockMap).execute().body();
        log.info(image + body);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Map map = objectMapper.readValue(body, Map.class);
@@ -177,4 +145,20 @@
            return Result.fail(e.getMessage());
        }
    }
    /**
     * 获取添加请求信息
     * @param procedureName      结构名称
     * @param inAttr             请求参数
     * @return
     */
    private JSONObject getJsonObject(String procedureName, String inAttr,String contract,String contractKeyPost) {
        JSONObject stockMap = new JSONObject();
        stockMap.put("procedureName", procedureName);
        stockMap.put("contract", contract);
        stockMap.put("contractKey", contractKeyPost);
        stockMap.put("userId", "lims_user");
        stockMap.put("inAttr", inAttr);
        return stockMap;
    }
}