diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java index 752dd14ec..f95380ae4 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java +++ b/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"; diff --git a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java b/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java index 80593f0c5..93de3da3a 100644 --- a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java +++ b/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=自提 */ diff --git a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/ISignPushClient.java b/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOldSystemDataPushClient.java similarity index 76% rename from blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/ISignPushClient.java rename to blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOldSystemDataPushClient.java index ce0c497dc..f4e7526b0 100644 --- a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/ISignPushClient.java +++ b/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 dataMap); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java index fb173650f..d3bdbee3e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java +++ b/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 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(); + } + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java new file mode 100644 index 000000000..68e685885 --- /dev/null +++ b/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); + + + + + } +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index b1aa2e728..92453739b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 查询包件数据 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 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 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 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 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; - } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/props/OldSystemProperties.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/props/OldSystemProperties.java index f95298858..d0d8c0d0c 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/props/OldSystemProperties.java +++ b/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; +// +// +// +//} diff --git a/blade-service/logpm-old-project/pom.xml b/blade-service/logpm-old-project/pom.xml index 4d509a622..c34c39e7d 100644 --- a/blade-service/logpm-old-project/pom.xml +++ b/blade-service/logpm-old-project/pom.xml @@ -24,10 +24,10 @@ blade-starter-swagger - - org.springframework.boot - spring-boot-starter-amqp - + + + + diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/config/RabbitMqConfiguration.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/config/RabbitMqConfiguration.java index 1e3d0af9e..68c73c36f 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/config/RabbitMqConfiguration.java +++ b/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 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 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(); +// } +// +// +// +// +// +// +// +//} diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java index fd2bdaf2f..834037d0a 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java +++ b/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 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 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; } + } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/props/OldSystemProperties.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/props/OldSystemProperties.java new file mode 100644 index 000000000..2dcd15e3a --- /dev/null +++ b/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; + + + +} diff --git a/blade-service/logpm-old-project/src/main/resources/application-dev.yml b/blade-service/logpm-old-project/src/main/resources/application-dev.yml index 2a188cdd7..6e8304334 100644 --- a/blade-service/logpm-old-project/src/main/resources/application-dev.yml +++ b/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