Browse Source

1.mq接收消息,存入在库订单数据信息逻辑

dev-warehouse
zhenghaoyu 2 years ago
parent
commit
137434eb0c
  1. 10
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  2. 6
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java
  3. 155
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/entity/OrderEntity.java
  4. 9
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IAdvanceDetailClient.java
  5. 43
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOrderClient.java
  6. 67
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/vo/DistributionParcelListEntityVO.java
  7. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  8. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java
  9. 6
      blade-service/logpm-factory/pom.xml
  10. 70
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/DealWithDataHandler.java
  11. 6
      blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/controller/PanFactoryDataController.java
  12. 3
      blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/IPanFactoryDataService.java
  13. 103
      blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/PanFactoryDataServiceImpl.java
  14. 14
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/AdvanceDetailClient.java
  15. 44
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/OrderClient.java
  16. 4
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.java
  17. 23
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.xml
  18. 31
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.java
  19. 7
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.xml
  20. 7
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IAdvanceDetailService.java
  21. 11
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IOrderService.java
  22. 15
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/AdvanceDetailServiceImpl.java
  23. 25
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/OrderServiceImpl.java

10
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java

@ -16,12 +16,15 @@
*/
package com.logpm.distribution.feign;
import org.springblade.core.mp.support.BladePage;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 在库订单包件清单 Feign接口类
*
@ -46,4 +49,9 @@ public interface IDistributionParcelListClient {
@GetMapping(TOP)
BladePage<DistributionParcelListEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
@GetMapping(API_PREFIX+"/findByPacketBarCode")
DistributionParcelListEntity findByPacketBarCode(String unitNo);
@GetMapping(API_PREFIX+"/addBatch")
boolean addBatch(@RequestBody List<DistributionParcelListEntity> parcelListEntityList);
}

6
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java

@ -16,10 +16,12 @@
*/
package com.logpm.distribution.feign;
import org.springblade.core.mp.support.BladePage;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
@ -46,4 +48,6 @@ public interface IDistributionStockArticleClient {
@GetMapping(TOP)
BladePage<DistributionStockArticleEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
@PostMapping(API_PREFIX + "/addData")
Long addData(@RequestBody DistributionStockArticleEntity distributionStockArticleEntity);
}

155
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/entity/OrderEntity.java

@ -0,0 +1,155 @@
package com.logpm.oldproject.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@TableName("ht_order")
@ApiModel(value = "Order对象", description = "订单信息")
public class OrderEntity {
@TableId(
value = "id",
type = IdType.AUTO
)
private Integer id;
private Integer test;
@ApiModelProperty(value = "订单号")
@TableField("number")
private String number;
@ApiModelProperty(value = "服务号")
@TableField("servicenum")
private String servicenum;
@ApiModelProperty(value = "仓库id")
@TableField("warehouse_id")
private Integer warehouseId;
@ApiModelProperty(value = "货区id")
@TableField("cargo_id")
private Integer cargoId;
@ApiModelProperty(value = "货架id")
@TableField("shelf_id")
private Integer shelfId;
@ApiModelProperty(value = "货位id")
@TableField("location_id")
private String locationId;
@ApiModelProperty(value = "订单来源")
@TableField("source")
private String source;
@ApiModelProperty(value = "紧急程度:0=正常,1=加急")
@TableField("emergency")
private Integer emergency;
@ApiModelProperty(value = "订单自编号")
@TableField("selfnumber")
private String selfnumber;
@ApiModelProperty(value = "客户姓名")
@TableField("contact")
private String contact;
@ApiModelProperty(value = "联系方式")
@TableField("phone")
private String phone;
@ApiModelProperty(value = "收货地址")
@TableField("address")
private String address;
@ApiModelProperty(value = "上门提货:0=否,1=是")
@TableField("door")
private Integer door;
@ApiModelProperty(value = "总订单数量【未使用】")
@TableField("total")
private Integer total;
@ApiModelProperty(value = "付款方式")
@TableField("payment")
private String payment;
@ApiModelProperty(value = "入库状态")
@TableField("status")
private Integer status;
@ApiModelProperty(value = "入库数量【未使用】")
@TableField("in_num")
private Integer inNum;
@ApiModelProperty(value = "装车数量【未使用】")
@TableField("trans_num")
private Integer transNum;
@ApiModelProperty(value = "分拣数量【未使用】")
@TableField("sorting")
private Integer sorting;
@ApiModelProperty(value = "出库数量【未使用】")
@TableField("out_num")
private Integer outNum;
@ApiModelProperty(value = "配送数量【未使用】")
@TableField("delive_num")
private Integer deliveNum;
@ApiModelProperty(value = "签收数量【未使用】")
@TableField("sign_num")
private Integer signNum;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "修改时间")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "删除时间")
@TableField("delete_time")
private Integer deleteTime;
@ApiModelProperty(value = "创建人")
@TableField("administrators_id")
private Integer administratorsId;
@ApiModelProperty(value = "是否异常")
@TableField("abnormal")
private Integer abnormal;
@ApiModelProperty(value = "寄件人")
@TableField("sender")
private String sender;
@ApiModelProperty(value = "寄件人电话")
@TableField("sender_tel")
private String senderTel;
@ApiModelProperty(value = "寄件人地址")
@TableField("sender_address")
private String senderAddress;
@ApiModelProperty(value = "上架状态:0未上架,1已上架,2部分上架,3已下架")
@TableField("on_shelf_type")
private Integer onShelfType;
@ApiModelProperty(value = "旧id")
@TableField("old_id")
private Integer oldId;
}

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

@ -17,12 +17,14 @@
package com.logpm.oldproject.feign;
import com.logpm.oldproject.entity.AdvanceDetailEntity;
import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
@ -66,4 +68,11 @@ public interface IAdvanceDetailClient {
*/
@GetMapping(API_PREFIX + "/getSupplyData")
Map<String, String> getSupplyData(@RequestParam String unitNo);
@GetMapping(API_PREFIX + "/getOneByUnitNo")
AdvanceDetailEntity getOneByUnitNo(@RequestParam String unitNo);
@GetMapping(API_PREFIX + "/getListByOrderSelfNum")
List<DistributionParcelListEntityVO> getListByOrderSelfNum(@RequestParam String orderSelfNum);
}

43
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOrderClient.java

@ -0,0 +1,43 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.oldproject.feign;
import com.logpm.oldproject.entity.OrderEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 订单 Feign接口类
*
* @author zhy
* @since 2023-06-24
*/
@FeignClient(
value = "logpm-old-project"
)
public interface IOrderClient {
String API_PREFIX = "/client";
@GetMapping(API_PREFIX + "/getOrderByOrderSelfNum")
List<OrderEntity> getOrderByOrderSelfNum(@RequestParam String orderSelfNum);
}

67
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/vo/DistributionParcelListEntityVO.java

@ -0,0 +1,67 @@
package com.logpm.oldproject.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DistributionParcelListEntityVO {
@ApiModelProperty(value = "仓库")
private String warehouse;
/**
* 状态
*/
@ApiModelProperty(value = "状态")
private Integer conditions;
/**
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String packetBarCode;
/**
* 货位信息
*/
@ApiModelProperty(value = "货位信息")
private String goodsAllocation;
/**
* 所在托盘
*/
@ApiModelProperty(value = "所在托盘")
private String pallet;
/**
* 一级品
*/
@ApiModelProperty(value = "一级品")
private String firsts;
/**
* 二级品
*/
@ApiModelProperty(value = "二级品")
private String second;
/**
* 三级品
*/
@ApiModelProperty(value = "三级品")
private String thirdProduct;
/**
* 物料
*/
@ApiModelProperty(value = "物料")
private String material;
/**
* 数量
*/
@ApiModelProperty(value = "数量")
private Integer quantity;
/**
* 车次号
*/
@ApiModelProperty(value = "车次号")
private String trainNumber;
/**
* 在库订单ID
*/
@ApiModelProperty(value = "在库订单ID")
private String stockArticleId;
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java

@ -16,6 +16,7 @@
*/
package com.logpm.distribution.feign;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
@ -27,6 +28,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* 在库订单包件清单 Feign实现类
*
@ -50,4 +53,17 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
return BladePage.of(page);
}
@Override
@GetMapping(API_PREFIX+"/findByPacketBarCode")
public DistributionParcelListEntity findByPacketBarCode(String unitNo) {
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("packet_bar_code",unitNo);
return distributionParcelListService.getOne(queryWrapper);
}
@Override
public boolean addBatch(List<DistributionParcelListEntity> parcelListEntityList) {
return distributionParcelListService.saveBatch(parcelListEntityList);
}
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java

@ -50,4 +50,14 @@ public class DistributionStockArticleClient implements IDistributionStockArticle
return BladePage.of(page);
}
@Override
public Long addData(DistributionStockArticleEntity distributionStockArticleEntity) {
boolean saveFlag = distributionStockArticleService.save(distributionStockArticleEntity);
if(saveFlag){
return distributionStockArticleEntity.getId();
}else{
return 0L;
}
}
}

6
blade-service/logpm-factory/pom.xml

@ -80,6 +80,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-distribution-api</artifactId>
<version>3.1.0.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

70
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/DealWithDataHandler.java

@ -0,0 +1,70 @@
package com.logpm.factory.receiver;
import com.logpm.factory.snm.dto.OrderStatusDTO;
import com.logpm.factory.snm.service.IPanFactoryDataService;
import com.logpm.oldproject.feign.IAdvanceDetailClient;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.utils.StringUtil;
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 yangkai.shen
*/
@Slf4j
@RabbitListener(queues = RabbitConstant.DEAL_WITH_QUEUE)
@Component
public class DealWithDataHandler {
@Autowired
private IAdvanceDetailClient advanceDetailClient;
@Autowired
private IPanFactoryDataService panFactoryDataService;
private Integer retryCount = 1;
@RabbitHandler
public void dealWithDataHandler(Map map, Message message, Channel channel) throws IOException {
// 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉
final long deliveryTag = message.getMessageProperties().getDeliveryTag();
log.info("##################我进入这里了 retryCount={}",retryCount++);
OrderStatusDTO orderStatusDTO = (OrderStatusDTO) map.get("messageData");
String status = orderStatusDTO.getStatus();
String unitNo = orderStatusDTO.getUnitNo();
if("4".equals(status)){
//继续判断是否到达目的仓
String currentWarehouseId = orderStatusDTO.getCurrentWarehouse();//当前仓Id
//查询destinationWarehouse logiBillNo plantId数据
Map<String,String> supplyData = advanceDetailClient.getSupplyData(unitNo);
String destinationWarehouseId = supplyData.get("destinationWarehouseId");//目的仓id
if(StringUtil.isBlank(currentWarehouseId)||StringUtil.isBlank(destinationWarehouseId)){
log.warn("##############dealWithDataHandler: 仓库数据有问题currentWarehouseId={} destinationWarehouseId={}",currentWarehouseId,destinationWarehouseId);
throw new CustomerException(405,"仓库数据有误");
}else{
if(!currentWarehouseId.equals(destinationWarehouseId)){
log.info("##############dealWithDataHandler: 不用处理的状态 currentWarehouseId={} destinationWarehouseId={}",currentWarehouseId,destinationWarehouseId);
channel.basicAck(deliveryTag,false);
}else{
//真正的处理需要的数据
panFactoryDataService.handleDataToPlatform(unitNo);
}
}
}else{
log.info("##############dealWithDataHandler: 不用处理的状态 status={}",status);
channel.basicAck(deliveryTag,false);
}
}
}

6
blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/controller/PanFactoryDataController.java

@ -202,11 +202,13 @@ public class PanFactoryDataController extends BladeController {
Map<String,Object> map=new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("logId", panOrderStatusLog.getId());
map.put("type", "Push");
map.put("messageData",orderStatusDTO);
map.put("createTime",new Date().getTime());
//将消息携带绑定键值
rabbitTemplate.convertAndSend(RabbitConstant.ORDER_STATUS_EXCHANGE, RabbitConstant.ORDER_STATUS_ROUTING, map,new CorrelationData(String.valueOf(panOrderStatusLog.getId())));
rabbitTemplate.convertAndSend(RabbitConstant.DEAL_WITH_EXCHANGE, RabbitConstant.DEAL_WITH_ROUTING, map,new CorrelationData(String.valueOf(panOrderStatusLog.getId())));
rabbitTemplate.convertAndSend(RabbitConstant.ORDER_STATUS_EXCHANGE, RabbitConstant.ORDER_STATUS_ROUTING, map);
map.put("type", "DealWith");
rabbitTemplate.convertAndSend(RabbitConstant.DEAL_WITH_EXCHANGE, RabbitConstant.DEAL_WITH_ROUTING,map);
// R r = factoryDataService.handleStatusData(orderStatusDTO);

3
blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/IPanFactoryDataService.java

@ -14,4 +14,7 @@ public interface IPanFactoryDataService {
R handleData(OrderInfoDTO orderInfoDTO);
R handleStatusData(OrderStatusDTO orderStatusDTO);
void handleDataToPlatform(String unitNo);
}

103
blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/PanFactoryDataServiceImpl.java

@ -1,10 +1,15 @@
package com.logpm.factory.snm.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.alibaba.nacos.shaded.com.google.gson.GsonBuilder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.factory.props.PanFactoryProperties;
import com.logpm.factory.snm.bean.Resp;
import com.logpm.factory.snm.dto.OrderInfoDTO;
@ -15,8 +20,14 @@ import com.logpm.factory.snm.service.IPanFactoryDataService;
import com.logpm.factory.snm.service.IPanFactoryOrderService;
import com.logpm.factory.snm.service.IPanOrderStatusLogService;
import com.logpm.factory.snm.service.IPanPackageInfoService;
import com.logpm.oldproject.entity.AdvanceDetailEntity;
import com.logpm.oldproject.entity.AdvanceEntity;
import com.logpm.oldproject.entity.OrderEntity;
import com.logpm.oldproject.feign.IAdvanceClient;
import com.logpm.oldproject.feign.IAdvanceDetailClient;
import com.logpm.oldproject.feign.IOrderClient;
import com.logpm.oldproject.feign.IWarehouseClient;
import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -26,9 +37,7 @@ import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.*;
@AllArgsConstructor
@Service
@ -47,6 +56,11 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
private final IPanFactoryOrderService panFactoryOrderService;
private final IAdvanceDetailClient advanceDetailClient;
private final IWarehouseClient warehouseClient;
private final IOrderClient orderClient;
private final IAdvanceClient advanceClient;
private final IDistributionParcelListClient distributionParcelListClient;
private final IDistributionStockArticleClient distributionStockArticleClient;
// @Override
// public FactoryTokenVO getToken(String corpId, String appKey, String appSecret) throws NoSuchAlgorithmException {
@ -234,7 +248,6 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
return Resp.success("SUCCESS");
}
private String getPanToken(){
Map<String,Object> map = new HashMap<>();
map.put("client_id",panFactoryProperties.getClientId());
@ -260,4 +273,86 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
}
@Transactional
@Override
public void handleDataToPlatform(String unitNo) {
logger.info("############handleDataToPlatform: 处理数据到platform unitNo={}",unitNo);
//先查询包件是否已存入到新系统数据库
DistributionParcelListEntity distributionParcelListEntity = distributionParcelListClient.findByPacketBarCode(unitNo);
if(Objects.isNull(distributionParcelListEntity)){
//未找到包件信息那就去新增
//1.根据包条码去老系统数据库找到对应的包条信息
AdvanceDetailEntity advanceDetailEntity = advanceDetailClient.getOneByUnitNo(unitNo);
if(Objects.isNull(advanceDetailEntity)){
logger.warn("#################handleDataToPlatform: 未找到对应的包条信息 unitNo={}",unitNo);
throw new CustomerException(405,"未找到对应的包条信息");
}
//2.根据包条信息拿到订单信息
String orderSelfNum = advanceDetailEntity.getOrderSelfNum();//订单自编码
//2.1如果订单信息出现两条,就正序排列取时间最早的一条,并在存入platform的时候打上标记
List<OrderEntity> orderEntityList = orderClient.getOrderByOrderSelfNum(orderSelfNum);
AdvanceEntity advanceEntity = advanceClient.getQueryDataOne(orderSelfNum);
if(Objects.isNull(advanceEntity)){
logger.warn("#################handleDataToPlatform: 未找到对应的订单信息 orderSelfNum={}",orderSelfNum);
throw new CustomerException(405,"未找到对应的订单信息");
}
int size = orderEntityList.size();//数据数量
if(size < 1){
logger.warn("#################handleDataToPlatform: 未找到对应的订单信息 orderSelfNum={}",orderSelfNum);
throw new CustomerException(405,"未找到对应的订单信息");
}
OrderEntity orderEntity = orderEntityList.get(0);
Integer warehouseId = orderEntity.getWarehouseId();//仓库id
//根据仓库id查询仓库
String warehouseName = warehouseClient.selectNameById(warehouseId);
DistributionStockArticleEntity distributionStockArticleEntity = new DistributionStockArticleEntity();
distributionStockArticleEntity.setServiceNumber(orderEntity.getServicenum());
distributionStockArticleEntity.setOrderSelfNumbering(orderEntity.getSelfnumber());
distributionStockArticleEntity.setMallName(advanceEntity.getStoreName());
distributionStockArticleEntity.setDescriptionGoods(advanceEntity.getFirstPackName());
distributionStockArticleEntity.setWarehouse(warehouseName);
distributionStockArticleEntity.setWarehouseEntryTime(null);//TODO 入库时间没找到
distributionStockArticleEntity.setStoreTime(0);//TODO
distributionStockArticleEntity.setTotalNumber(advanceEntity.getTotal());
distributionStockArticleEntity.setHandQuantity(0);//TODO
distributionStockArticleEntity.setCompleteSet(1);//TODO
distributionStockArticleEntity.setBrand(advanceEntity.getType());
distributionStockArticleEntity.setTypeService(orderEntity.getDoor());
distributionStockArticleEntity.setCustomerName(orderEntity.getContact());
distributionStockArticleEntity.setCustomerTelephone(orderEntity.getPhone());
distributionStockArticleEntity.setCustomerAddress(orderEntity.getAddress());
distributionStockArticleEntity.setGenre(2);
distributionStockArticleEntity.setState(2);
if(size > 1){
distributionStockArticleEntity.setReserve1("multiple");
}
Long id = distributionStockArticleClient.addData(distributionStockArticleEntity);
if(id == 0){
logger.warn("#################handleDataToPlatform: 保存订单信息失败 orderSelfNum={}",orderSelfNum);
throw new CustomerException(405,"保存订单信息失败");
}
//通过订单自编号查询包件信息
List<DistributionParcelListEntityVO> detailList = advanceDetailClient.getListByOrderSelfNum(orderSelfNum);
List<DistributionParcelListEntity> parcelListEntityList = new ArrayList<>();
for (DistributionParcelListEntityVO vo:detailList){
DistributionParcelListEntity entity = new DistributionParcelListEntity();
BeanUtil.copyProperties(vo,entity);
entity.setStockArticleId(id+"");
parcelListEntityList.add(entity);
}
boolean b = distributionParcelListClient.addBatch(parcelListEntityList);
if(!b){
logger.warn("#################handleDataToPlatform: 保存包件信息失败 orderSelfNum={}",orderSelfNum);
throw new CustomerException(405,"保存包件信息失败");
}
logger.info("#################handleDataToPlatform: 数据处理完成");
}else{
//已存在包件信息那就不处理
logger.info("#################handleDataToPlatform: 包件信息已存在,不用处理 unitNo={}",unitNo);
}
}
}

14
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/AdvanceDetailClient.java

@ -18,12 +18,14 @@ package com.logpm.oldproject.feign;
import com.logpm.oldproject.entity.AdvanceDetailEntity;
import com.logpm.oldproject.service.IAdvanceDetailService;
import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
/**
@ -66,4 +68,16 @@ public class AdvanceDetailClient implements IAdvanceDetailClient {
return map;
}
@Override
@GetMapping(API_PREFIX + "/getOneByUnitNo")
public AdvanceDetailEntity getOneByUnitNo(String unitNo) {
//查询对应的包件信息
return advanceDetailService.getOneByUnitNo(unitNo);
}
@Override
public List<DistributionParcelListEntityVO> getListByOrderSelfNum(String orderSelfNum) {
return advanceDetailService.getListByOrderSelfNum(orderSelfNum);
}
}

44
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/OrderClient.java

@ -0,0 +1,44 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.oldproject.feign;
import com.logpm.oldproject.entity.OrderEntity;
import com.logpm.oldproject.service.IOrderService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* order Feign实现类
*
* @author zhy
* @since 2023-06-24
*/
@ApiIgnore()
@RestController
@AllArgsConstructor
public class OrderClient implements IOrderClient {
private IOrderService orderService;
@Override
public List<OrderEntity> getOrderByOrderSelfNum(String orderSelfNum) {
return orderService.getOrderByOrderSelfNum(orderSelfNum);
}
}

4
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.java

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.oldproject.entity.AdvanceDetailEntity;
import com.logpm.oldproject.vo.AdvanceDetailVO;
import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -50,4 +51,7 @@ public interface AdvanceDetailMapper extends BaseMapper<AdvanceDetailEntity> {
Boolean addAll(@Param("param") AdvanceDetailEntity advanceDetailEntity);
Map<String, String> getSupplyData(@Param("unitNo") String unitNo);
List<DistributionParcelListEntityVO> getListByOrderSelfNum(@Param("orderSelfNum") String orderSelfNum);
}

23
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.xml

@ -78,7 +78,8 @@
<select id="getSupplyData" resultType="Map" >
SELECT
wo.waybill_no logiBillNo,
wb.arrive_site destinationWarehouse
wb.arrive_site destinationWarehouse,
wb.arrive_site_id destinationWarehouseId
FROM ht_advance_detail d
left join ht_waybill_order wo on wo.advance_id = d.advance_id and wo.delete_time = 0
left join ht_way_bill wb on wb.id = wo.way_bill_id and wb.delete_time = 0
@ -86,4 +87,24 @@
</select>
<select id="getListByOrderSelfNum" resultType="com.logpm.oldproject.vo.DistributionParcelListEntityVO" >
select w.title warehouse, --仓库
2 conditions, --状态
od.unitNo packetBarCode, --包条码
l.title goodsAllocation, --货位信息
'托盘信息' pallet, --托盘信息
od.title firsts, --一级品
od.secondPackName `second`, --二级品
od.thirdPackName `thirdProduct`, --三级品
od.title material, --物料
ad.mscsNum quantity, --数量
od.start_cars_no trainNumber --车次号
from ht_order_detail od
left join ht_advance_detail ad on od.unitNo = ad.unitNo and ad.delete_time = 0
left join ht_warehouse w on w.id = od.now_warehouse_id
left join ht_location l on l.id = od.location_id
where od.detail_number = #{orderSelfNum}
</select>
</mapper>

31
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.java

@ -0,0 +1,31 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.oldproject.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.oldproject.entity.OrderEntity;
/**
* 订单 Mapper 接口
*
* @author zhy
* @since 2023-06-24
*/
public interface OrderMapper extends BaseMapper<OrderEntity> {
}

7
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.oldproject.mapper.OrderMapper">
</mapper>

7
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IAdvanceDetailService.java

@ -17,7 +17,9 @@
package com.logpm.oldproject.service;
import com.logpm.oldproject.entity.AdvanceDetailEntity;
import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import java.util.List;
import java.util.Map;
/**
@ -32,4 +34,9 @@ public interface IAdvanceDetailService {
Boolean addAdvanceDetail(AdvanceDetailEntity advanceDetailEntity);
Map<String, String> getSupplyData(String unitNo);
AdvanceDetailEntity getOneByUnitNo(String unitNo);
List<DistributionParcelListEntityVO> getListByOrderSelfNum(String orderSelfNum);
}

11
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IOrderService.java

@ -0,0 +1,11 @@
package com.logpm.oldproject.service;
import com.logpm.oldproject.entity.OrderEntity;
import java.util.List;
public interface IOrderService {
List<OrderEntity> getOrderByOrderSelfNum(String orderSelfNum);
}

15
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/AdvanceDetailServiceImpl.java

@ -16,12 +16,15 @@
*/
package com.logpm.oldproject.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.oldproject.entity.AdvanceDetailEntity;
import com.logpm.oldproject.mapper.AdvanceDetailMapper;
import com.logpm.oldproject.service.IAdvanceDetailService;
import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
@ -49,5 +52,17 @@ public class AdvanceDetailServiceImpl implements IAdvanceDetailService {
return map;
}
@Override
public AdvanceDetailEntity getOneByUnitNo(String unitNo) {
QueryWrapper<AdvanceDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("unitNo",unitNo);
return advanceDetailMapper.selectOne(queryWrapper);
}
@Override
public List<DistributionParcelListEntityVO> getListByOrderSelfNum(String orderSelfNum) {
return advanceDetailMapper.getListByOrderSelfNum(orderSelfNum);
}
}

25
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/OrderServiceImpl.java

@ -0,0 +1,25 @@
package com.logpm.oldproject.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.oldproject.entity.OrderEntity;
import com.logpm.oldproject.mapper.OrderMapper;
import com.logpm.oldproject.service.IOrderService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@AllArgsConstructor
public class OrderServiceImpl implements IOrderService {
private OrderMapper orderMapper;
@Override
public List<OrderEntity> getOrderByOrderSelfNum(String orderSelfNum) {
QueryWrapper<OrderEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("selfnumber",orderSelfNum)
.orderByAsc("create_time");
return orderMapper.selectList(queryWrapper);
}
}
Loading…
Cancel
Save