package com.ruoyi.common.utils; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.properties.IfsProperties; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /** * @Author zhuo * @Date 2024/9/29 */ @Slf4j @AllArgsConstructor @Component public class IfsApiUtils { private IfsProperties 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> getInventory(String inAttr) { String body = HttpRequest.get(getStock(inAttr)).execute().body(); ObjectMapper objectMapper = new ObjectMapper(); try { Map map = objectMapper.readValue(body, Map.class); List> maps = objectMapper.readValue(JSONUtil.toJsonStr(map.get("LIST_INFO")), new TypeReference>>() { }); 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 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; } /** * 原材料检验-检验后移库 * * @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()); } } /** * 采购接收更改批号 */ 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()); } } /** * 查询库存数据 */ private String getIfsStockApi(String inAttr) { return ifsProperties.getCustorderPort() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=QUERY_INVENTORY_INFO_STD&userId=lims_user&inAttr=" + inAttr; } /** * 查询库存数据 * * @param inAttr * @return */ public Result getIfsStock(String inAttr) { JSONObject stockMap = new JSONObject(); stockMap.put("procedureName", "QUERY_INVENTORY_INFO_STD"); stockMap.put("contract", ifsProperties.getContract()); stockMap.put("contractKey", ifsProperties.getContractKeyPost()); stockMap.put("userId", "userId"); stockMap.put("inAttr", inAttr); String body = HttpRequest.post(ifsProperties.getCustorderPort()).form(stockMap).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()); } } }