src/main/java/com/zy/asrs/task/ErpAccessTokenScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/OrderSendScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/ErpAccessTokenHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/task/ErpAccessTokenScheduler.java
New file @@ -0,0 +1,25 @@ package com.zy.asrs.task; import com.zy.asrs.task.handler.ErpAccessTokenHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @Component public class ErpAccessTokenScheduler { public static String accessToken = ""; @Autowired private ErpAccessTokenHandler erpAccessTokenHandler; @PostConstruct @Scheduled(cron = "* 15,30,45,59 * * * ?") private void accessToken(){ erpAccessTokenHandler.getAccessToken(); } } src/main/java/com/zy/asrs/task/OrderSendScheduler.java
New file @@ -0,0 +1,33 @@ package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.Order; import com.zy.asrs.service.OrderService; import com.zy.asrs.task.handler.OrderSendHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; @Component public class OrderSendScheduler { @Autowired private OrderService orderService; @Autowired private OrderSendHandler orderSendHandler; @Scheduled(cron = "0/3 * * * * ? ") private void looping(){ List<Order> orders = orderService.selectList(new EntityWrapper<Order>() .eq("settle", "4") .le("item_id", 3)); for (Order order : orders) { orderSendHandler.start(order); } } } src/main/java/com/zy/asrs/task/handler/ErpAccessTokenHandler.java
New file @@ -0,0 +1,76 @@ package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.ErpAccessTokenScheduler; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.io.IOException; @Service @Slf4j public class ErpAccessTokenHandler extends AbstractHandler<String> { private String erpIp = "http://10.100.221.19:81"; public void getAccessToken() { JSONObject appTokenJson = new JSONObject(); appTokenJson.put("appId","ESB"); appTokenJson.put("appSecuret","123456789"); appTokenJson.put("tenantid","ierp"); appTokenJson.put("accountId","1492035591649364992"); appTokenJson.put("language","zh_CN"); JSONObject appTokenResp; //获取app_token,用app_token获取access_token try { appTokenResp = JSON.parseObject(new HttpHandler.Builder() .setUri(erpIp) .setPath("/ierp/api/getAppToken.do") .setJson(appTokenJson.toJSONString()) .build() .doPost()); } catch (IOException e) { throw new RuntimeException(e); } JSONObject data = (JSONObject) appTokenResp.get("data"); //获取access_token if ((boolean) data.get("success")) { JSONObject accessTokenJson = new JSONObject(); accessTokenJson.put("user","13800000000"); accessTokenJson.put("apptoken",(String) data.get("app_token")); accessTokenJson.put("tenantid","ierp"); accessTokenJson.put("accountId","1492035591649364992"); accessTokenJson.put("usertype","Mobile"); JSONObject accessTokenResp; //获取app_token,用app_token获取access_token try { accessTokenResp = JSON.parseObject(new HttpHandler.Builder() .setUri(erpIp) .setPath("/ierp/api/login.do") .setJson(accessTokenJson.toJSONString()) .build() .doPost()); } catch (IOException e) { throw new RuntimeException(e); } JSONObject accessTokenData = (JSONObject) accessTokenResp.get("data"); if ((boolean)accessTokenData.get("success")) { ErpAccessTokenScheduler.accessToken = (String)accessTokenData.get("access_token"); log.info("更新access_token, 新token为:" + (String)accessTokenData.get("access_token")); } } } } src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java
New file @@ -0,0 +1,88 @@ package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.DocType; import com.zy.asrs.entity.Order; import com.zy.asrs.service.DocTypeService; import com.zy.asrs.service.OrderService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.ErpAccessTokenScheduler; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.util.HashMap; import java.util.Map; @Slf4j @Service @Transactional public class OrderSendHandler extends AbstractHandler<String> { private static final String erpIp = "10.100.221.19:81"; private static final String inPath = "/ierp/kapi/app/im/PurinbillApiPlugin"; private static final String outPath = "/ierp/kapi/app/im/SaloutbillApiPlugin"; @Autowired private OrderService orderService; @Autowired private DocTypeService docTypeService; public void start(Order order) { String accessToken = ErpAccessTokenScheduler.accessToken; if (accessToken.equals("")) { return; } HashMap<String, Object> header = new HashMap<>(); header.put("accessToken",accessToken); JSONObject jsonObject = new JSONObject(); jsonObject.put("orderNo",order.getOrderNo()); HttpHandler.Builder prepBuilder = new HttpHandler.Builder() .setUri(erpIp) .setHeaders(header) .setJson(jsonObject.toJSONString()); JSONObject respJson; //入库单据 if (docTypeService.selectOne(new EntityWrapper<DocType>() .eq("doc_id",order.getDocType())).getPakin() == 1) { try { respJson = JSON.parseObject( prepBuilder.setPath(inPath) .build() .doPost()); } catch (IOException e) { throw new RuntimeException(e); } }else { //出库单据 try { respJson = JSON.parseObject( prepBuilder.setPath(outPath) .build() .doPost()); } catch (IOException e) { throw new RuntimeException(e); } } if ((boolean)respJson.get("success")) { orderService.updateSettle(order.getId(),6L,1L); log.info("单据:" + order.getOrderNo() + "回传成功,已更新单据状态"); }else { order.setItemId(order.getItemId() + 1); orderService.updateById(order); log.info("单据:"+ order.getOrderNo()+" 回传失败,这是第" + order.getItemId() + "次回传"); log.info(respJson.toJSONString()); } } } src/main/resources/application.yml
@@ -10,8 +10,8 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs url: jdbc:sqlserver://192.168.4.15:1433;databasename=stasrs url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs # url: jdbc:sqlserver://192.168.4.15:1433;databasename=stasrs username: sa password: sa@123 mvc: