| | |
| | | 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; |
| | | |
| | |
| | | @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; |
| | | } |
| | | |
| | | /** |
| | | * 原材料检验-检验后移库 |
| | |
| | | * @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; |
| | | } |
| | | |
| | | /** |
| | | * 查询库存数据 |
| | |
| | | * @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); |
| | |
| | | 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; |
| | | } |
| | | } |