Browse Source

1.对接新系统的签收

training
pref_mail@163.com 1 year ago
parent
commit
d567a85257
  1. 11
      blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java
  2. 3
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java
  3. 9
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOldSystemDataPushClient.java
  4. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java
  5. 59
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java
  6. 33
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  7. 147
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpOldReceivingDataHandler.java
  8. 66
      blade-service/logpm-factory/src/main/java/com/logpm/factory/props/OldSystemProperties.java
  9. 8
      blade-service/logpm-old-project/pom.xml
  10. 200
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/config/RabbitMqConfiguration.java
  11. 94
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java
  12. 33
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/props/OldSystemProperties.java
  13. 26
      blade-service/logpm-old-project/src/main/resources/application-dev.yml

11
blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java

@ -89,6 +89,17 @@ public interface RabbitConstant {
String STOCKUP_STATE_UPDATE_ROUTING = "stockup_state_update_routing";
/****************文员复合签收推送老系统队列 start *************************/
String CLERK_CHECK_PUSH_DATA_QUEUE = "clerk_check_push_data_queue";
String CLERK_CHECK_PUSH_DATA_EXCHANGE = "clerk_check_push_data_exchange";
String CLERK_CHECK_PUSH_DATA_ROUTING = "clerk_check_push_data_routing";
/****************文员复合签收推送老系统队列 end *************************/
/****************test队列******************/
String TEST_RECEIVE_INFO_QUEUE = "test_receive_info_queue";
String TEST_RECEIVE_INFO_EXCHANGE = "test_receive_info_exchange";

3
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java

@ -1,5 +1,6 @@
package com.logpm.oldproject.dto;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -21,7 +22,7 @@ public class SignPushDataDTO {
/**
* 仓库id
*/
private long warehouse_id;
private Integer warehouse_id;
/**
* 出库方式1=市配2=商配3=自提
*/

9
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/ISignPushClient.java → blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOldSystemDataPushClient.java

@ -6,17 +6,24 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
/**
* 新系统签收数据推送老系统
*/
@FeignClient(
value = ModuleNameConstant.APPLICATION_OLDPROJECT_NAME
)
public interface ISignPushClient {
public interface IOldSystemDataPushClient {
String API_PREFIX = "/client";
@PostMapping(API_PREFIX + "/pushOldSystemSignInfo")
Boolean pushOldSystemSignInfo(@RequestBody SignPushDataDTO signPushDataDTO);
@PostMapping(API_PREFIX + "/pushOldSystemSignInfo")
boolean sendPackageData(@RequestBody Map<String,Object> dataMap);
}

19
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java

@ -111,6 +111,25 @@ public class RabbitMqConfiguration {
}
/**
* 文员签收复合推送老系统队列
* @return
*/
@Bean
public Queue clerkCheckPushDataQueue() {
return new Queue(RabbitConstant.CLERK_CHECK_PUSH_DATA_QUEUE, true);
}
@Bean
public CustomExchange clerkCheckPushDataExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.CLERK_CHECK_PUSH_DATA_EXCHANGE, "x-delayed-message", true, false, args);
}
@Bean
public Binding clerkCheckPushDataBinding(Queue clerkCheckPushDataQueue, CustomExchange clerkCheckPushDataExchange) {
return BindingBuilder.bind(clerkCheckPushDataQueue).to(clerkCheckPushDataExchange).with(RabbitConstant.CLERK_CHECK_PUSH_DATA_ROUTING).noargs();
}

59
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java

@ -0,0 +1,59 @@
package com.logpm.distribution.receiver;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.logpm.distribution.entity.DistributionStockEntity;
import com.logpm.distribution.service.IDistributionStockService;
import com.logpm.oldproject.dto.SignPushDataDTO;
import com.logpm.oldproject.feign.IOldSystemDataPushClient;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
/**
* 异常消息队列 处理器
*
* @author zhy
*/
@Slf4j
@RabbitListener(queues = RabbitConstant.CLERK_CHECK_PUSH_DATA_QUEUE)
@Component
public class ClerkCheckPushDataQueueHandler {
@Autowired
private IDistributionStockService distributionStockService;
private IOldSystemDataPushClient oldSystemDataPushClient;
@RabbitHandler
public void clerkCheckPushDataHandler(Map map, Message message, Channel channel) {
//得到审核的任务ID
Long signfor_id = (Long) map.get("signfor_id");
// 得到配送计划
// 得到配送客户
// 得到签收订单数量
// 调用方法 推送老系统 闭环
SignPushDataDTO signPushDataDTO = new SignPushDataDTO();
Boolean b = oldSystemDataPushClient.pushOldSystemSignInfo(signPushDataDTO);
}
}

33
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -51,6 +51,7 @@ import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.Inventory.InventoryLoadingStatusConstant;
import org.springblade.common.constant.Inventory.InventorySigningStatusConstant;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.loading.LoadScanSigningStatusConstant;
import org.springblade.common.constant.loading.LoadingIsInsertConstant;
@ -68,6 +69,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.feign.IDictBizClient;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -119,6 +122,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
private final IDistributionSignPrintService iDistributionSignPrintService;
private final IDistributionParcelNumberService distributionParcelNumberService;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private final RabbitTemplate rabbitTemplate;
// private final IBasicdataWarehouseClient warehouseUpdownTypeClient;
@Override
@ -2827,9 +2833,30 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
distributionSignfor.setSigningTime(sdf.format(date));
this.updatePicture(distributionSignfor);
this.updateById(distributionSignfor);
return R.status(true);
boolean isSuccess =this.updatePicture(distributionSignfor);
if(isSuccess){
this.updateById(distributionSignfor);
// 创建异步队列推送老系统的的签收信息 构建请求参数
buildArgsToPushMq(distributionSignfor);
return R.status(true);
}
return R.status(false);
}
/**
* 构建文员签收审核的参数
* @param distributionSignfor
*/
private void buildArgsToPushMq(DistributionSignforDTO distributionSignfor) {
Map map = new HashMap();
// 得到signfor的ID 获取配送计划的的信息 和配送客户的信息
map.put("signfor_id",distributionSignfor.getId());
rabbitTemplate.convertAndSend(RabbitConstant.CLERK_CHECK_PUSH_DATA_EXCHANGE, RabbitConstant.CLERK_CHECK_PUSH_DATA_ROUTING, map, new CorrelationData(String.valueOf(orderStatusLog.getId())));
}
@Override

147
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpOldReceivingDataHandler.java

@ -12,6 +12,7 @@ import com.logpm.factory.oupai.service.IFactoryPackageService;
import com.logpm.factory.pan.service.IPanFactoryDataService;
import com.logpm.factory.props.OldSystemProperties;
import com.logpm.oldproject.entity.WarehouseEntity;
import com.logpm.oldproject.feign.IOldSystemDataPushClient;
import com.logpm.oldproject.feign.IWarehouseClient;
import com.rabbitmq.client.Channel;
import jodd.util.StringUtil;
@ -48,8 +49,10 @@ public class OpOldReceivingDataHandler {
private IBasicdataTripartiteWarehouseClient basicdataTripartiteWarehouseClient;
@Autowired
private IWarehouseClient warehouseClient;
@Autowired
private OldSystemProperties oldSystemProperties;
private IOldSystemDataPushClient oldSystemDataPushClient;
@Autowired
private IFactoryPackageService factoryPackageService;
@ -84,7 +87,6 @@ public class OpOldReceivingDataHandler {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 查询包件数据 end >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packageEntity {}", packageEntity);
//真正的处理需要的数据
try {
// 保存数据
@ -96,60 +98,56 @@ public class OpOldReceivingDataHandler {
// 请求老系统的登录接口
if (!ObjectUtils.isNull(warehouseEntity)) {
String authCode = oldLogin(warehouseEntity.getId());
// 推送数据
if (StringUtil.isNotBlank(authCode)) {
Map<String,Object> reqMap = new HashMap<>();
reqMap.put("authCode", authCode);
// 收货单
reqMap.put("op_shipNo", opShipNo);
//仓库ID
reqMap.put("warehouse_id", warehouseEntity.getId());
//订单自编号
reqMap.put("orderSelfNum", orderSelfNum);
//扫描时间
reqMap.put("scan_time", scanTime);
//扫描人
reqMap.put("scan_user", "");
//车次号
reqMap.put("mctsTruck", carNumber);
//发货基地
reqMap.put("siteName", siteName);
//一级品类
reqMap.put("firstPackName", firstPackName);
//二级品类
reqMap.put("secondPackName", secondPackName);
//三级品类
reqMap.put("thirdPackName", thirdPackName);
//物料名称
reqMap.put("productname", packageDetailNames);
//包条码
reqMap.put("unitNo", orderPackageCode);
boolean isSuccess = sendPackageData(reqMap);
if (isSuccess) {
// 请求成功 修改推送数据的状态 修改未1
if (ObjectUtils.isNotNull(packageEntity)) {
packageEntity.setOldPushStatus(1);
}
} else {
if (ObjectUtils.isNotNull(packageEntity)) {
packageEntity.setOldPushStatus(2);
}
}
}
} else {
if (ObjectUtils.isNotNull(packageEntity)) {
packageEntity.setOldPushStatus(2);
Map<String, Object> dataMap = new HashMap<>();
// reqMap.put("authCode", authCode);
// 收货单
dataMap.put("op_shipNo", opShipNo);
//仓库ID
dataMap.put("warehouse_id", warehouseEntity.getId());
//订单自编号
dataMap.put("orderSelfNum", orderSelfNum);
//扫描时间
dataMap.put("scan_time", scanTime);
//扫描人
dataMap.put("scan_user", "");
//车次号
dataMap.put("mctsTruck", carNumber);
//发货基地
dataMap.put("siteName", siteName);
//一级品类
dataMap.put("firstPackName", firstPackName);
//二级品类
dataMap.put("secondPackName", secondPackName);
//三级品类
dataMap.put("thirdPackName", thirdPackName);
//物料名称
dataMap.put("productname", packageDetailNames);
//包条码
dataMap.put("unitNo", orderPackageCode);
boolean isSuccess = oldSystemDataPushClient.sendPackageData(dataMap);
if (isSuccess) {
// 请求成功 修改推送数据的状态 修改未1
if (ObjectUtils.isNotNull(packageEntity)) {
packageEntity.setOldPushStatus(1);
}
} else {
if (ObjectUtils.isNotNull(packageEntity)) {
packageEntity.setOldPushStatus(2);
}
}
}
} else {
if (ObjectUtils.isNotNull(packageEntity)) {
packageEntity.setOldPushStatus(2);
}
}
} catch (Exception e) {
log.error("##################opReceivingDataHandler: 处理欧派收货数据到新系统,orderPackageCode:{},warehouseName{}",
orderPackageCode, warehouseName);
@ -167,56 +165,5 @@ public class OpOldReceivingDataHandler {
}
private boolean sendPackageData(Map<String,Object> map) {
// 构建请求头
String authCode = map.get("authCode").toString();
log.info("##################sendPackageData: 请求老系统接口 start map {}", map);
String url = oldSystemProperties.getUrl() + "openApi/newSystem.OptimsWarehouseScan/index";
String body = HttpRequest.post(url).form(map).header("token", authCode).execute().body();
log.info("##################sendPackageData: 请求老系统接口,url:{},body:{}", url, body);
if (StringUtil.isNotBlank(body)) {
JSONObject res = JSON.parseObject(body);
if ("200".equals(res.getString("code"))) {
return true;
}
}
return false;
}
/**
* 登录老系统
*
* @param warhouseId 仓库ID
* @return 成功token
*/
private String oldLogin(Integer warhouseId) {
String o = bladeRedis.get(oldSystemProperties.getUserId() + "_" + warhouseId);
if (StringUtil.isBlank(o)) {
String url = oldSystemProperties.getUrl() + "api/fakeLogin";
Map<String, Object> map = new HashMap<>();
map.put("pwd", oldSystemProperties.getPwd());
map.put("user_id", oldSystemProperties.getUserId());
map.put("warehouse_id", warhouseId);
String body = HttpRequest.post(url).form(map).execute().body();
log.info("##################opReceivingDataHandler: 请求老系统接口,url:{},body:{}", url, body);
JSONObject authCode = JSON.parseObject(body);
if ("200".equals(authCode.getString("code"))) {
o = authCode.getJSONObject("data").getJSONObject("token").getString("token");
bladeRedis.setEx(oldSystemProperties.getUserId() + "_" + warhouseId, o, 30 * 60L);
}
}
return o;
}
}

66
blade-service/logpm-factory/src/main/java/com/logpm/factory/props/OldSystemProperties.java

@ -1,33 +1,33 @@
package com.logpm.factory.props;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* FactoryProperties
*
* @author pref
*/
@Data
@ConfigurationProperties(prefix = "old")
@Component
public class OldSystemProperties {
/**
* 请求地址
*/
private String url;
/**
* 默认账号
*/
private String pwd;
/**
* 默认用户
*/
private String userId;
}
//package com.logpm.factory.props;
//
//import lombok.Data;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.stereotype.Component;
//
///**
// * FactoryProperties
// *
// * @author pref
// */
//@Data
//@ConfigurationProperties(prefix = "old")
//@Component
//public class OldSystemProperties {
// /**
// * 请求地址
// */
// private String url;
//
// /**
// * 默认账号
// */
// private String pwd;
//
// /**
// * 默认用户
// */
// private String userId;
//
//
//
//}

8
blade-service/logpm-old-project/pom.xml

@ -24,10 +24,10 @@
<artifactId>blade-starter-swagger</artifactId>
</dependency>
<!--mq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-amqp</artifactId>-->
<!-- </dependency>-->
<dependency>

200
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/config/RabbitMqConfiguration.java

@ -1,100 +1,100 @@
package com.logpm.oldproject.config;
import com.alibaba.nacos.shaded.com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.retry.MessageRecoverer;
import org.springframework.amqp.rabbit.retry.RepublishMessageRecoverer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Map;
@Slf4j
@Configuration
public class RabbitMqConfiguration {
@Bean
public RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory){
RabbitTemplate template = new RabbitTemplate();
template.setConnectionFactory(connectionFactory);
template.setMandatory(true);
template.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean b, String s) {
System.out.println("确认回调-相关数据:"+correlationData);
System.out.println("确认回调-确认情况:"+b);
System.out.println("确认回调-原因:"+s);
}
});
template.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {
@Override
public void returnedMessage(ReturnedMessage returnedMessage) {
System.out.println("返回回调-消息:"+returnedMessage.getMessage());
System.out.println("返回回调-回应码:"+returnedMessage.getReplyCode());
System.out.println("返回回调-回应信息:"+returnedMessage.getReplyText());
System.out.println("返回回调-交换机:"+returnedMessage.getExchange());
System.out.println("返回回调-路由键:"+returnedMessage.getRoutingKey());
}
});
return template;
}
@Bean
public DirectExchange errorMessageExchange(){
return new DirectExchange(RabbitConstant.ERROR_EXCHANGE);
}
@Bean
public Queue errorQueue(){
return new Queue(RabbitConstant.ERROR_QUEUE, true);
}
@Bean
public Binding errorBinding(Queue errorQueue, DirectExchange errorMessageExchange){
return BindingBuilder.bind(errorQueue).to(errorMessageExchange).with(RabbitConstant.ERROR_ROUTING);
}
@Bean
public MessageRecoverer republishMessageRecoverer(RabbitTemplate rabbitTemplate){
return new RepublishMessageRecoverer(rabbitTemplate, RabbitConstant.ERROR_EXCHANGE, RabbitConstant.ERROR_ROUTING);
}
@Bean
public Queue orderStatusQueue() {
return new Queue(RabbitConstant.ORDER_STATUS_QUEUE, true);
}
@Bean
public CustomExchange orderStatusExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.ORDER_STATUS_EXCHANGE, "x-delayed-message", true, false, args);
}
@Bean
public Binding orderStatusBinding(Queue orderStatusQueue, CustomExchange orderStatusExchange) {
return BindingBuilder.bind(orderStatusQueue).to(orderStatusExchange).with(RabbitConstant.ORDER_STATUS_ROUTING).noargs();
}
}
//package com.logpm.oldproject.config;
//
//import com.alibaba.nacos.shaded.com.google.common.collect.Maps;
//import lombok.extern.slf4j.Slf4j;
//import org.springblade.common.constant.RabbitConstant;
//import org.springframework.amqp.core.*;
//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
//import org.springframework.amqp.rabbit.connection.CorrelationData;
//import org.springframework.amqp.rabbit.core.RabbitTemplate;
//import org.springframework.amqp.rabbit.retry.MessageRecoverer;
//import org.springframework.amqp.rabbit.retry.RepublishMessageRecoverer;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.Map;
//
//
//@Slf4j
//@Configuration
//public class RabbitMqConfiguration {
//
// @Bean
// public RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory){
// RabbitTemplate template = new RabbitTemplate();
// template.setConnectionFactory(connectionFactory);
// template.setMandatory(true);
// template.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
// @Override
// public void confirm(CorrelationData correlationData, boolean b, String s) {
// System.out.println("确认回调-相关数据:"+correlationData);
// System.out.println("确认回调-确认情况:"+b);
// System.out.println("确认回调-原因:"+s);
//
// }
// });
//
// template.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {
// @Override
// public void returnedMessage(ReturnedMessage returnedMessage) {
// System.out.println("返回回调-消息:"+returnedMessage.getMessage());
// System.out.println("返回回调-回应码:"+returnedMessage.getReplyCode());
// System.out.println("返回回调-回应信息:"+returnedMessage.getReplyText());
// System.out.println("返回回调-交换机:"+returnedMessage.getExchange());
// System.out.println("返回回调-路由键:"+returnedMessage.getRoutingKey());
// }
// });
// return template;
// }
//
// @Bean
// public DirectExchange errorMessageExchange(){
// return new DirectExchange(RabbitConstant.ERROR_EXCHANGE);
// }
// @Bean
// public Queue errorQueue(){
// return new Queue(RabbitConstant.ERROR_QUEUE, true);
// }
// @Bean
// public Binding errorBinding(Queue errorQueue, DirectExchange errorMessageExchange){
// return BindingBuilder.bind(errorQueue).to(errorMessageExchange).with(RabbitConstant.ERROR_ROUTING);
// }
//
//
//
// @Bean
// public MessageRecoverer republishMessageRecoverer(RabbitTemplate rabbitTemplate){
// return new RepublishMessageRecoverer(rabbitTemplate, RabbitConstant.ERROR_EXCHANGE, RabbitConstant.ERROR_ROUTING);
// }
//
//
//
//
//
// @Bean
// public Queue orderStatusQueue() {
// return new Queue(RabbitConstant.ORDER_STATUS_QUEUE, true);
// }
//
//
//
// @Bean
// public CustomExchange orderStatusExchange() {
// Map<String, Object> args = Maps.newHashMap();
// args.put("x-delayed-type", "direct");
// return new CustomExchange(RabbitConstant.ORDER_STATUS_EXCHANGE, "x-delayed-message", true, false, args);
// }
//
//
// @Bean
// public Binding orderStatusBinding(Queue orderStatusQueue, CustomExchange orderStatusExchange) {
// return BindingBuilder.bind(orderStatusQueue).to(orderStatusExchange).with(RabbitConstant.ORDER_STATUS_ROUTING).noargs();
// }
//
//
//
//
//
//
//
//}

94
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java

@ -1,21 +1,111 @@
package com.logpm.oldproject.feign;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.logpm.oldproject.dto.SignPushDataDTO;
import com.logpm.oldproject.props.OldSystemProperties;
import jodd.util.StringUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.redis.cache.BladeRedis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.Map;
@ApiIgnore()
@RestController
@AllArgsConstructor
public class SignPushClient implements ISignPushClient{
@Slf4j
public class SignPushClient implements IOldSystemDataPushClient {
@Autowired
private BladeRedis bladeRedis;
@Autowired
private OldSystemProperties oldSystemProperties;
@Override
public Boolean pushOldSystemSignInfo(SignPushDataDTO signPushDataDTO) {
//todo 这里存在调用老系统的接口 将数据会写给老系统
String authCode = oldLogin(signPushDataDTO.getWarehouse_id());
log.info("##################pushOldSystemSignInfo: 请求老系统接口 start map {}", signPushDataDTO);
String url = oldSystemProperties.getUrl() + "openApi/newSystem.OptimsSign/index";
String data = JSON.toJSONString(signPushDataDTO);
String body = HttpRequest.post(url).body(data).header("token", authCode).execute().body();
log.info("##################pushOldSystemSignInfo: 请求老系统接口,url:{},body:{}", url, body);
if (StringUtil.isNotBlank(body)) {
JSONObject res = JSON.parseObject(body);
if ("200".equals(res.getString("code"))) {
return true;
}
}
return false;
}
@Override
public boolean sendPackageData(Map<String, Object> dataMap) {
// 构建请求头
Object o = dataMap.get("warehouse_id");
Integer warehouse_id = (Integer) o;
String authCode = oldLogin(warehouse_id);
log.info("##################sendPackageData: 请求老系统接口 start map {}", dataMap);
String url = oldSystemProperties.getUrl() + "openApi/newSystem.OptimsWarehouseScan/index";
String body = HttpRequest.post(url).form(dataMap).header("token", authCode).execute().body();
log.info("##################sendPackageData: 请求老系统接口,url:{},body:{}", url, body);
if (StringUtil.isNotBlank(body)) {
return null;
JSONObject res = JSON.parseObject(body);
if ("200".equals(res.getString("code"))) {
return true;
}
}
return false;
}
/**
* 登录老系统
*
* @param warhouseId 仓库ID
* @return 成功token
*/
private String oldLogin(Integer warhouseId) {
String o = bladeRedis.get(oldSystemProperties.getUserId() + "_" + warhouseId);
if (StringUtil.isBlank(o)) {
String url = oldSystemProperties.getUrl() + "api/fakeLogin";
Map<String, Object> map = new HashMap<>();
map.put("pwd", oldSystemProperties.getPwd());
map.put("user_id", oldSystemProperties.getUserId());
map.put("warehouse_id", warhouseId);
String body = HttpRequest.post(url).form(map).execute().body();
log.info("##################opReceivingDataHandler: 请求老系统接口,url:{},body:{}", url, body);
JSONObject authCode = JSON.parseObject(body);
if ("200".equals(authCode.getString("code"))) {
o = authCode.getJSONObject("data").getJSONObject("token").getString("token");
bladeRedis.setEx(oldSystemProperties.getUserId() + "_" + warhouseId, o, 30 * 60L);
}
}
return o;
}
}

33
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/props/OldSystemProperties.java

@ -0,0 +1,33 @@
package com.logpm.oldproject.props;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* FactoryProperties
*
* @author pref
*/
@Data
@ConfigurationProperties(prefix = "old")
@Component
public class OldSystemProperties {
/**
* 请求地址
*/
private String url;
/**
* 默认账号
*/
private String pwd;
/**
* 默认用户
*/
private String userId;
}

26
blade-service/logpm-old-project/src/main/resources/application-dev.yml

@ -10,31 +10,7 @@ server:
# password: ${blade.datasource.dev.password}
spring:
rabbitmq:
host: 192.168.10.100
port: 5672
username: admin
password: admin
#虚拟host 可以不设置,使用server默认host
virtual-host: /
#确认消息已发送到队列(Queue)
publisher-returns: true
publisher-confirm-type: correlated
# 手动提交消息
listener:
simple:
acknowledge-mode: auto
default-requeue-rejected: false
retry:
enabled: true # 开启消费者失败重试
initial-interval: 1000 # 初识的失败等待时长为1秒
multiplier: 1 # 失败的等待时长倍数,下次等待时长 = multiplier * last-interval
max-attempts: 3 # 最大重试次数
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
direct:
acknowledge-mode: manual
template:
mandatory: true
#排除DruidDataSourceAutoConfigure
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

Loading…
Cancel
Save