获取供应商 token

This commit is contained in:
liuhanqing
2025-12-04 13:08:31 +08:00
parent 68c9100aab
commit aaef8ab5fc
9 changed files with 187 additions and 26 deletions

View File

@@ -3,6 +3,7 @@ package com.ruoyi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;

View File

@@ -1,22 +1,13 @@
package com.ruoyi.api.controller;
import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.ReMaterialParam;
import com.ruoyi.api.domain.RequestEnter;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToErpService;
import com.ruoyi.api.service.IToWmsService;
import com.ruoyi.bas.BasCustomer.domain.BasCustomer;
import com.ruoyi.bas.BasProduct.domain.BasProduct;
import com.ruoyi.bas.BasSupplier.domain.BasSupplier;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.log.domain.RequestLog;
import com.ruoyi.log.service.IRequestLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 作业统计 Controller
*/
@@ -46,7 +37,13 @@ public class ToErpApiController {
* 接收供应商信息
*/
@GetMapping("/receiveSupplier")
public AjaxResult receiveSupplier(@RequestBody BasSupplier basSupplier) {
return toErpService.receiveSupplier(basSupplier);
public AjaxResult receiveSupplier(/*@RequestBody BasSupplier basSupplier*/) {
return toErpService.receiveSupplier();
}
@PostMapping("/login")
public AjaxResult login() {
toErpService.login();
return AjaxResult.success();
}
}

View File

@@ -0,0 +1,21 @@
package com.ruoyi.api.domain.erp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ErpSupplierParam {
private String myuserid;
private String fl;
private String jb;
private String hy;
private String gysname;
private String phone;
private String address;
private String url;
private int page_size;
private int page_index;
}

View File

@@ -0,0 +1,36 @@
package com.ruoyi.api.domain.erp;
import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ErpSupplierResponse {
@Alias("Page")
private Page page;
@Alias("Cols")
private List<String> cols;
@Alias("Rows")
private List<List<Object>> rows;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Page {
@Alias("RecordCount")
private int recordCount;
@Alias("PageSize")
private int pageSize;
@Alias("PageIndex")
private int pageIndex;
@Alias("PageCount")
private int pageCount;
}
}

View File

@@ -0,0 +1,24 @@
package com.ruoyi.api.domain.erp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginParam {
private List<ErpUserDataInfo> datas;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class ErpUserDataInfo {
private String id;
private String val;
}
}

View File

@@ -0,0 +1,27 @@
package com.ruoyi.api.domain.erp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginResponse {
private Header header;
private Body body;
@Data
public class Header{
String code;
String message;
String session;
String appversion;
}
@Data
public class Body{
String model;
}
}

View File

@@ -21,5 +21,7 @@ public interface IToErpService {
AjaxResult receiveCustomer(BasCustomer basProduct);
AjaxResult receiveSupplier(BasSupplier basSupplier);
AjaxResult receiveSupplier();
String login();
}

View File

@@ -1,9 +1,15 @@
package com.ruoyi.api.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import com.ruoyi.api.mapper.JobStatisticsMapper;
import com.ruoyi.api.service.IJobStatisticsService;
import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.erp.ErpSupplierParam;
import com.ruoyi.api.domain.erp.ErpSupplierResponse;
import com.ruoyi.api.domain.erp.LoginParam;
import com.ruoyi.api.domain.erp.LoginResponse;
import com.ruoyi.api.service.IToErpService;
import com.ruoyi.bas.BasCustomer.domain.BasCustomer;
import com.ruoyi.bas.BasCustomer.service.IBasCustomerService;
@@ -11,11 +17,8 @@ import com.ruoyi.bas.BasProduct.domain.BasProduct;
import com.ruoyi.bas.BasProduct.service.IBasProductService;
import com.ruoyi.bas.BasSupplier.domain.BasSupplier;
import com.ruoyi.bas.BasSupplier.service.IBasSupplierService;
import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.mapper.MydoJobMapper;
import com.ruoyi.common.core.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -23,6 +26,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* 作业统计 Service 实现
@@ -39,6 +43,15 @@ public class ToErpServiceImpl implements IToErpService {
@Autowired
private IBasCustomerService basCustomerService;
@Autowired
private RedisCache redisCache;
private static final String erpUrl = "http://115.190.99.109:5055";
private static final String loginUrl = erpUrl+"/webapi/v3/ov1/login";
private static final String supplierListUrl = erpUrl+"/webapi/v3/store/supplierList";
@Override
public Map<String, String> saveTransferBill() {
@@ -79,14 +92,54 @@ public class ToErpServiceImpl implements IToErpService {
}
@Override
public AjaxResult receiveSupplier(BasSupplier basSupplier) {
String supplierNo = basSupplier.getId();
BasSupplier oldSupplier = basSupplierService.selectBasSupplierById(supplierNo);
if (ObjUtil.isNotNull(oldSupplier)){
basSupplierService.updateBasSupplier(basSupplier);
}else {
basSupplierService.insertBasSupplier(basSupplier);
public AjaxResult receiveSupplier() {
ErpSupplierParam erpSupplierParam = new ErpSupplierParam();
erpSupplierParam.setPage_index(1);
erpSupplierParam.setPage_size(100000);
String body = HttpRequest.post(supplierListUrl).header("ZBAPI-Token", login()).body(JSONUtil.toJsonStr(erpSupplierParam)).execute().body();
ErpSupplierResponse responseBean = JSONUtil.toBean(body, ErpSupplierResponse.class);
for (List<Object> row : responseBean.getRows()) {
BasSupplier supplier = new BasSupplier();
supplier.setSupplierName(Convert.toStr(row.get(0)));
supplier.setTaxpayerRegistrationNumber(Convert.toStr(row.get(1)));
supplier.setId(Convert.toStr(row.get(2)));
supplier.setSupplierNo(Convert.toStr(row.get(2)));
supplier.setSupplierArae(Convert.toStr(row.get(3)));
supplier.setContactName(Convert.toStr(row.get(4)));
supplier.setContactNumber(Convert.toStr(row.get(5)));
supplier.setCountry(Convert.toStr(row.get(6)));
supplier.setTimeZone(Convert.toStr(row.get(7)));
supplier.setUseable("1");
BasSupplier basSupplier = basSupplierService.selectBasSupplierById(supplier.getId());
if (ObjUtil.isNotNull(basSupplier)){
basSupplierService.updateBasSupplier(basSupplier);
}else {
basSupplierService.insertBasSupplier( supplier);
}
}
return AjaxResult.success();
}
@Override
public String login() {
LoginParam loginParam = new LoginParam();
List<LoginParam.ErpUserDataInfo> datas = new ArrayList<>();
LoginParam.ErpUserDataInfo d1 = new LoginParam.ErpUserDataInfo("user", "txt:孙瑞雅");
LoginParam.ErpUserDataInfo d2 = new LoginParam.ErpUserDataInfo("password", "txt:888888");
LoginParam.ErpUserDataInfo d3 = new LoginParam.ErpUserDataInfo("serialnum", "txt:abcd1234");
LoginParam.ErpUserDataInfo d4 = new LoginParam.ErpUserDataInfo("rndcode", "");
datas.add(d1);
datas.add(d2);
datas.add(d3);
datas.add(d4);
loginParam.setDatas(datas);
String post = HttpUtil.post(loginUrl, JSONUtil.toJsonStr(loginParam));
LoginResponse bean = JSONUtil.toBean(post, LoginResponse.class);
if (!redisCache.hasKey("erpSession")){
redisCache.setCacheObject("erpSession", bean.getHeader().getSession(), 1500, TimeUnit.SECONDS);
return bean.getHeader().getSession();
}else {
return redisCache.getCacheObject("erpSession");
}
}
}