diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index c52287c..09fd5d0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -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; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java index a209d57..3056b24 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java @@ -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(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/ErpSupplierParam.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/ErpSupplierParam.java new file mode 100644 index 0000000..cfb14a8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/ErpSupplierParam.java @@ -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; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/ErpSupplierResponse.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/ErpSupplierResponse.java new file mode 100644 index 0000000..a029aa0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/ErpSupplierResponse.java @@ -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 cols; + @Alias("Rows") + private List> 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; + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/LoginParam.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/LoginParam.java new file mode 100644 index 0000000..4b721d6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/LoginParam.java @@ -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 datas; + + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class ErpUserDataInfo { + private String id; + private String val; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/LoginResponse.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/LoginResponse.java new file mode 100644 index 0000000..9e6d088 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/erp/LoginResponse.java @@ -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; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java index aa76ea9..9af94ed 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToErpService.java @@ -21,5 +21,7 @@ public interface IToErpService { AjaxResult receiveCustomer(BasCustomer basProduct); - AjaxResult receiveSupplier(BasSupplier basSupplier); + AjaxResult receiveSupplier(); + + String login(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java index b99bbb2..d78445b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java @@ -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 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 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 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"); + } + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index cbb7999..16219a0 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -104,7 +104,7 @@ public class SecurityConfig // 静态资源,可匿名访问 .requestMatchers(HttpMethod.GET, "/", "/*.html", "/**.html", "/**.css", "/**.js", "/profile/**").permitAll() .requestMatchers("/swagger-ui.html", "/v3/api-docs/**", "/swagger-ui/**", "/druid/**").permitAll() - .requestMatchers("/api/**","/api2wms/**").permitAll() + .requestMatchers("/api/**","/api2wms/**","/api2erp/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); })