src/main/java/com/zy/asrs/controller/OpenController.java
@@ -6,6 +6,7 @@ import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.param.*; import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.service.OpenService; import com.zy.common.model.DetlDto; import com.zy.common.web.BaseController; @@ -105,9 +106,10 @@ */ @RequestMapping("/stock/default/v1") public R queryStock(@RequestHeader(required = false) String appkey, @RequestBody StockVo stockVo, HttpServletRequest request) { auth(appkey, null, request); return R.ok().add(openService.queryStock()); return R.ok().add(openService.queryStock(stockVo)); } private void auth(String appkey, Object obj, HttpServletRequest request) { src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -58,7 +58,7 @@ Double queryStockAnfme(String matnr, String batch); List<StockVo> queryStockTotal(); List<StockVo> queryStockTotal(@Param("matnr")String matnr,@Param("batch")String batch); Integer sum(); src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -47,7 +47,7 @@ Double queryStockAnfme(String matnr, String batch); List<StockVo> queryStockTotal(); List<StockVo> queryStockTotal(StockVo stockVo); Integer sum(); src/main/java/com/zy/asrs/service/OpenService.java
@@ -32,7 +32,7 @@ /** * 库存统计 */ List<StockVo> queryStock(); List<StockVo> queryStock(StockVo stockVo); // ------------------------------------------ src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -87,8 +87,10 @@ } @Override public List<StockVo> queryStockTotal() { return this.baseMapper.queryStockTotal(); public List<StockVo> queryStockTotal(StockVo stockVo) { String matnr=stockVo.getMatnr(); String batch=stockVo.getBatch(); return this.baseMapper.queryStockTotal(matnr,batch); } /** src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -335,8 +335,8 @@ @Override @Transactional public List<StockVo> queryStock() { return locDetlService.queryStockTotal(); public List<StockVo> queryStock(StockVo stockVo) { return locDetlService.queryStockTotal(stockVo); } @Override 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 = "10 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,89 @@ package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.core.exception.CoolException; 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) { log.info("连接erp服务器超时"); return; } JSONObject data = null; try { data = (JSONObject) appTokenResp.get("data"); } catch (Exception e) { System.out.println("获取appToken为空"); throw new CoolException(e); } //获取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 = null; try { accessTokenData = (JSONObject) accessTokenResp.get("data"); } catch (Exception e) { System.out.println("获取accessToken为空"); throw new CoolException(e); } 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: src/main/resources/mapper/LocDetlMapper.xml
@@ -295,9 +295,15 @@ select matnr, batch, count(anfme) as count sum(anfme) as count from asr_loc_detl where 1=1 <if test="batch != null and batch != ''"> and batch = #{batch} </if> <if test="matnr != null and matnr != ''"> and matnr = #{matnr} </if> group by matnr,batch </select> <select id="sum" resultType="java.lang.Integer">