Browse Source

1.欧派获取签收数据并保存

training
zhenghaoyu 2 years ago
parent
commit
a95e50b7cf
  1. 4
      blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java
  2. 13
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/FactoryOrderEntity.java
  3. 73
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/OpOutGoingOrderEntity.java
  4. 89
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/OpSignBillEntity.java
  5. 44
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/OpSignPackageEntity.java
  6. 18
      blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java
  7. 12
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpOutGoingOrderMapper.java
  8. 5
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpOutGoingOrderMapper.xml
  9. 9
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignBillMapper.java
  10. 5
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignBillMapper.xml
  11. 9
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignPackageMapper.java
  12. 5
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignPackageMapper.xml
  13. 274
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpSignDataHandler.java
  14. 9
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOpOutGoingOrderService.java
  15. 8
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOpSignBillService.java
  16. 8
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOpSignPackageService.java
  17. 21
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OpOutGoingOrderServiceImpl.java
  18. 21
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OpSignBillServiceImpl.java
  19. 21
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OpSignPackageServiceImpl.java
  20. 42
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

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

@ -56,6 +56,10 @@ public interface RabbitConstant {
String OUPAI_RECEIVING_EXCHANGE = "oupai_receiving_exchange";
String OUPAI_RECEIVING_ROUTING = "oupai_receiving_routing";
String OUPAI_SIGN_QUEUE = "oupai_sign_queue";
String OUPAI_SIGN_EXCHANGE = "oupai_sign_exchange";
String OUPAI_SIGN_ROUTING = "oupai_sign_routing";
//----------------------distribution---------------------
//备货消费失败队列
String DISTRIBUTION_ERROR_QUEUE = "distribution_error_queue";

13
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/FactoryOrderEntity.java

@ -249,4 +249,17 @@ public class FactoryOrderEntity extends BaseEntity {
*/
@ApiModelProperty(name = "转发状态 1转送 0未转送", notes = "")
private Integer turnStatus;
/**
* 商场编码
*/
@ApiModelProperty(name = "商场编码", notes = "")
private String shopCode;
/**
* 商场名称
*/
@ApiModelProperty(name = "商场名称", notes = "")
private String shopName;
}

73
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/OpOutGoingOrderEntity.java

@ -0,0 +1,73 @@
package com.logpm.factory.oupai.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
@Data
@TableName("op_out_going_order")
@ApiModel(value = "OpOutGoingOrder对象", description = "欧派工厂配送单")
@EqualsAndHashCode(callSuper = true)
public class OpOutGoingOrderEntity extends BaseEntity {
/** 预留1 */
@ApiModelProperty(name = "预留1",notes = "")
private String reserve1 ;
/** 预留2 */
@ApiModelProperty(name = "预留2",notes = "")
private String reserve2 ;
/** 预留3 */
@ApiModelProperty(name = "预留3",notes = "")
private String reserve3 ;
/** 预留4 */
@ApiModelProperty(name = "预留4",notes = "")
private String reserve4 ;
/** 预留5 */
@ApiModelProperty(name = "预留5",notes = "")
private String reserve5 ;
/** 配送单编码 */
@ApiModelProperty(name = "配送单编码",notes = "")
private String code ;
/** 配送单状态 */
@ApiModelProperty(name = "配送单状态",notes = "")
private Integer outGoingOrderStatus ;
/** 配送仓库编码 */
@ApiModelProperty(name = "配送仓库编码",notes = "")
private String warehouseCode ;
/** 配送仓库名称 */
@ApiModelProperty(name = "配送仓库名称",notes = "")
private String warehouseName ;
/** 配送仓库地址 */
@ApiModelProperty(name = "配送仓库地址",notes = "")
private String warehouseAddress ;
/** 配送车牌号 */
@ApiModelProperty(name = "配送车牌号",notes = "")
private String truckPlate ;
/** 配送日期 */
@ApiModelProperty(name = "配送日期",notes = "")
private Date deliveryDate ;
/** 创建者 */
@ApiModelProperty(name = "创建者",notes = "")
private String creator ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date createTime ;
@ApiModelProperty(name = "门店编码",notes = "")
private String storeCode;
@ApiModelProperty(name = "门店名称",notes = "")
private String storeName;
@ApiModelProperty(name = "商场编码",notes = "")
private String shopCode;
@ApiModelProperty(name = "商场名称",notes = "")
private String shopName;
/** 发货时间 */
@ApiModelProperty(name = "发货时间",notes = "")
private Date sendTime ;
}

89
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/OpSignBillEntity.java

@ -0,0 +1,89 @@
package com.logpm.factory.oupai.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("op_sign_bill")
@ApiModel(value = "OpSignBill对象", description = "欧派工厂签收单")
@EqualsAndHashCode(callSuper = true)
public class OpSignBillEntity extends BaseEntity {
/** 预留1 */
@ApiModelProperty(name = "预留1",notes = "")
private String reserve1 ;
/** 预留2 */
@ApiModelProperty(name = "预留2",notes = "")
private String reserve2 ;
/** 预留3 */
@ApiModelProperty(name = "预留3",notes = "")
private String reserve3 ;
/** 预留4 */
@ApiModelProperty(name = "预留4",notes = "")
private String reserve4 ;
/** 预留5 */
@ApiModelProperty(name = "预留5",notes = "")
private String reserve5 ;
@ApiModelProperty(name = "配送单id",notes = "")
private Long outGoingOrderId ;
@ApiModelProperty(name = "签收单号",notes = "")
private String code ;
/**
* 新建:0
*
* 已签收:1
*
* 部分签收:2
*/
@ApiModelProperty(name = "状态",notes = "")
private Integer signBillStatus ;
@ApiModelProperty(name = "签收人",notes = "")
private String signPerson ;
@ApiModelProperty(name = "签收人电话",notes = "")
private String signPhone ;
@ApiModelProperty(name = "签收人地址",notes = "")
private String signAddress ;
@ApiModelProperty(name = "签收时间",notes = "")
private Date signTime ;
@ApiModelProperty(name = "签收说明",notes = "")
private String remark;
@ApiModelProperty(name = "配送单号",notes = "")
private String outGoingOrderCode;
@ApiModelProperty(name = "再投原因",notes = "")
private String againsendReason;
@ApiModelProperty(name = "再投描述",notes = "")
private String description;
@ApiModelProperty(name = "是否再投",notes = "")
private Integer isAgainsend;//0否1是
@ApiModelProperty(name = "创建者",notes = "")
private String creator;
@ApiModelProperty(name = "创建时间",notes = "")
private Date createTime ;
@ApiModelProperty(name = "顾客评分",notes = "")
private BigDecimal customerRate ;
@ApiModelProperty(name = "顾客反馈",notes = "")
private String customerFeedback;
@ApiModelProperty(name = "门店编码",notes = "")
private String storeCode;
@ApiModelProperty(name = "门店名称",notes = "")
private String storeName;
@ApiModelProperty(name = "商场编码",notes = "")
private String shopCode;
@ApiModelProperty(name = "商场名称",notes = "")
private String shopName;
@ApiModelProperty(name = "司机电话",notes = "")
private String driverPhone;
@ApiModelProperty(name = "司机名称",notes = "")
private String driverName;
@ApiModelProperty(name = "配送日期",notes = "")
private Date deliveryTime;
}

44
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/OpSignPackageEntity.java

@ -0,0 +1,44 @@
package com.logpm.factory.oupai.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
@Data
@TableName("op_sign_package")
@ApiModel(value = "OpSignPackage对象", description = "欧派工厂签收包件")
@EqualsAndHashCode(callSuper = true)
public class OpSignPackageEntity extends BaseEntity {
/** 预留1 */
@ApiModelProperty(name = "预留1",notes = "")
private String reserve1 ;
/** 预留2 */
@ApiModelProperty(name = "预留2",notes = "")
private String reserve2 ;
/** 预留3 */
@ApiModelProperty(name = "预留3",notes = "")
private String reserve3 ;
/** 预留4 */
@ApiModelProperty(name = "预留4",notes = "")
private String reserve4 ;
/** 预留5 */
@ApiModelProperty(name = "预留5",notes = "")
private String reserve5 ;
private Long signBillId;
/** 包件码 */
@ApiModelProperty(name = "包件码",notes = "")
private String orderPackageCode ;
/** 签收状态 */
@ApiModelProperty(name = "签收状态",notes = "")
private Integer packageStatus ;
/** 是否是库存品 */
@ApiModelProperty(name = "是否是库存品",notes = "")
private Integer isInventory ;//0否 1是
}

18
blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java

@ -230,6 +230,24 @@ public class RabbitMqConfiguration {
}
@Bean
public Queue oupaiSignQueue() {
return new Queue(RabbitConstant.OUPAI_SIGN_QUEUE, true);
}
@Bean
public CustomExchange oupaiSignExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.OUPAI_SIGN_EXCHANGE, "x-delayed-message", true, false, args);
}
@Bean
public Binding oupaiSignBinding(Queue oupaiSignQueue, CustomExchange oupaiSignExchange) {
return BindingBuilder.bind(oupaiSignQueue).to(oupaiSignExchange).with(RabbitConstant.OUPAI_SIGN_ROUTING).noargs();
}
}

12
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpOutGoingOrderMapper.java

@ -0,0 +1,12 @@
package com.logpm.factory.oupai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.factory.oupai.entity.OpOutGoingOrderEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OpOutGoingOrderMapper extends BaseMapper<OpOutGoingOrderEntity> {
}

5
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpOutGoingOrderMapper.xml

@ -0,0 +1,5 @@
<?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.factory.oupai.mapper.OpOutGoingOrderMapper">
</mapper>

9
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignBillMapper.java

@ -0,0 +1,9 @@
package com.logpm.factory.oupai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.factory.oupai.entity.OpSignBillEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OpSignBillMapper extends BaseMapper<OpSignBillEntity> {
}

5
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignBillMapper.xml

@ -0,0 +1,5 @@
<?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.factory.oupai.mapper.OpSignBillMapper">
</mapper>

9
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignPackageMapper.java

@ -0,0 +1,9 @@
package com.logpm.factory.oupai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.factory.oupai.entity.OpSignPackageEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OpSignPackageMapper extends BaseMapper<OpSignPackageEntity> {
}

5
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/mapper/OpSignPackageMapper.xml

@ -0,0 +1,5 @@
<?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.factory.oupai.mapper.OpSignPackageMapper">
</mapper>

274
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpSignDataHandler.java

@ -0,0 +1,274 @@
package com.logpm.factory.oupai.receiver;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.logpm.factory.oupai.entity.OpOrderStatusLogEntity;
import com.logpm.factory.oupai.entity.OpOutGoingOrderEntity;
import com.logpm.factory.oupai.entity.OpSignBillEntity;
import com.logpm.factory.oupai.entity.OpSignPackageEntity;
import com.logpm.factory.oupai.service.IOpOutGoingOrderService;
import com.logpm.factory.oupai.service.IOpSignBillService;
import com.logpm.factory.oupai.service.IOpSignPackageService;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.utils.CommonUtil;
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;
import java.util.Objects;
/**
* 获取订单数据 处理器
*
* @author yangkai.shen
*/
@Slf4j
@RabbitListener(queues = RabbitConstant.OUPAI_SIGN_QUEUE)
@Component
public class OpSignDataHandler {
@Autowired
private IOpOutGoingOrderService opOutGoingOrderService;
@Autowired
private IOpSignBillService opSignBillService;
@Autowired
private IOpSignPackageService opSignPackageService;
@RabbitHandler
public void opSignDataHandler(Map map, Message message, Channel channel) throws IOException {
// 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉
log.info("##################opSignDataHandler: 处理欧派收货数据到新系统");
OpOrderStatusLogEntity opOrderStatusLogEntity = (OpOrderStatusLogEntity) map.get("messageData");
String args = opOrderStatusLogEntity.getArgs();
JSONObject jsonObject = JSONObject.parseObject(args);
JSONArray jsonArray = jsonObject.getJSONArray("value");
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject valueObject = jsonArray.getJSONObject(i);
JSONObject outGoingOrder = valueObject.getJSONObject("OutGoingOrder");
String outGoingOrderCode = outGoingOrder.getString("Code");
JSONObject store = valueObject.getJSONObject("Store");
JSONArray packages = valueObject.getJSONArray("Packages");
String status = outGoingOrder.getString("Status");
//先查询是否已经有数据存在系统中
OpOutGoingOrderEntity opOutGoingOrderEntity = opOutGoingOrderService.getEntityByCode(outGoingOrderCode);
Long outGoingOrderId = null;
if(Objects.isNull(opOutGoingOrderEntity)){
//如果是空则新增
opOutGoingOrderEntity = new OpOutGoingOrderEntity();
opOutGoingOrderEntity.setCode(outGoingOrderCode);
if("新建".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(0);
}else if("已调度".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(1);
}else if("已发运".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(2);
}else if("已签收".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(3);
}else if("部分签收".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(4);
}else if("待处理".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(5);
}
JSONObject warehouse = outGoingOrder.getJSONObject("Warehouse");
if(!Objects.isNull(warehouse)){
opOutGoingOrderEntity.setWarehouseCode(warehouse.getString("Code"));
opOutGoingOrderEntity.setWarehouseName(warehouse.getString("Name"));
opOutGoingOrderEntity.setWarehouseAddress(warehouse.getString("Address"));
}
JSONObject truck = outGoingOrder.getJSONObject("Truck");
if(!Objects.isNull(truck)){
opOutGoingOrderEntity.setTruckPlate(truck.getString("Plate"));
}
opOutGoingOrderEntity.setDeliveryDate(CommonUtil.StringToDate(outGoingOrder.getString("DeliveryDate")));
opOutGoingOrderEntity.setCreator(outGoingOrder.getString("Creator"));
opOutGoingOrderEntity.setCreateTime(CommonUtil.StringToDate(outGoingOrder.getString("CreateTime")));
if (!Objects.isNull(store)) {
JSONObject shop = store.getJSONObject("Shop");
if(!Objects.isNull(shop)){
opOutGoingOrderEntity.setShopCode(shop.getString("Code"));
opOutGoingOrderEntity.setShopName(shop.getString("Name"));
}
opOutGoingOrderEntity.setStoreCode(store.getString("Code"));
opOutGoingOrderEntity.setStoreName(store.getString("Name"));
}
opOutGoingOrderEntity.setSendTime(CommonUtil.StringToDate(outGoingOrder.getString("SendTime")));
opOutGoingOrderService.save(opOutGoingOrderEntity);
outGoingOrderId = opOutGoingOrderEntity.getId();
}else{
if("新建".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(0);
}else if("已调度".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(1);
}else if("已发运".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(2);
}else if("已签收".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(3);
}else if("部分签收".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(4);
}else if("待处理".equals(status)){
opOutGoingOrderEntity.setOutGoingOrderStatus(5);
}
opOutGoingOrderService.updateById(opOutGoingOrderEntity);
outGoingOrderId = opOutGoingOrderEntity.getId();
}
//处理签收单数据
Long signBillId = null;
String recevierCode = valueObject.getString("Code");
String SignBillStatus = valueObject.getString("Status");
OpSignBillEntity signBillEntity = opSignBillService.findEntityByCode(recevierCode);
if(Objects.isNull(signBillEntity)){
signBillEntity = new OpSignBillEntity();
signBillEntity.setOutGoingOrderId(outGoingOrderId);
signBillEntity.setCode(recevierCode);
if("新建".equals(SignBillStatus)){
signBillEntity.setSignBillStatus(0);
}else if("已签收".equals(SignBillStatus)){
signBillEntity.setSignBillStatus(1);
}else if("部分签收".equals(SignBillStatus)){
signBillEntity.setSignBillStatus(2);
}
signBillEntity.setSignPerson(valueObject.getString("SignPerson"));
signBillEntity.setSignPhone(valueObject.getString("SignPhone"));
signBillEntity.setSignAddress(valueObject.getString("SignAddress"));
signBillEntity.setSignTime(CommonUtil.StringToDate(valueObject.getString("SignTime")));
signBillEntity.setRemark(valueObject.getString("Remark"));
signBillEntity.setOutGoingOrderCode(outGoingOrderCode);
signBillEntity.setAgainsendReason(valueObject.getString("AgainsendReason"));
signBillEntity.setDescription(valueObject.getString("Description"));
Boolean isAgainsend = valueObject.getBoolean("IsAgainsend");
if(isAgainsend){
signBillEntity.setIsAgainsend(1);
}else{
signBillEntity.setIsAgainsend(0);
}
signBillEntity.setCreator(valueObject.getString("Creator"));
signBillEntity.setCreateTime(CommonUtil.StringToDate(valueObject.getString("CreateTime")));
signBillEntity.setCustomerRate(valueObject.getBigDecimal("CustomerRate"));
signBillEntity.setCustomerFeedback(valueObject.getString("CustomerFeedback"));
if (!Objects.isNull(store)) {
JSONObject shop = store.getJSONObject("Shop");
if(!Objects.isNull(shop)){
signBillEntity.setShopCode(shop.getString("Code"));
signBillEntity.setShopName(shop.getString("Name"));
}
signBillEntity.setStoreCode(store.getString("Code"));
signBillEntity.setStoreName(store.getString("Name"));
}
signBillEntity.setDriverPhone(valueObject.getString("DriverPhone"));
signBillEntity.setDriverName(valueObject.getString("DriverName"));
signBillEntity.setDeliveryTime(CommonUtil.StringToDate(valueObject.getString("DeliveryTime")));
opSignBillService.save(signBillEntity);
signBillId = signBillEntity.getId();
}else{
if("新建".equals(SignBillStatus)){
signBillEntity.setSignBillStatus(0);
}else if("已签收".equals(SignBillStatus)){
signBillEntity.setSignBillStatus(1);
}else if("部分签收".equals(SignBillStatus)){
signBillEntity.setSignBillStatus(2);
}
opSignBillService.updateById(signBillEntity);
signBillId = signBillEntity.getId();
}
//存入包件数据
for (int j = 0; j <packages.size(); j++) {
JSONObject packagesJSONObject = packages.getJSONObject(j);
String code = packagesJSONObject.getString("Code");
String packageStatus = packagesJSONObject.getString("PackageStatus");
OpSignPackageEntity signPackageEntity = opSignPackageService.findEntityByOrderPackageCode(code);
if(Objects.isNull(signPackageEntity)){
signPackageEntity = new OpSignPackageEntity();
signPackageEntity.setSignBillId(signBillId);
signPackageEntity.setOrderPackageCode(code);
if ("已调度".equals(packageStatus)) {
signPackageEntity.setPackageStatus(1);
} else if ("已装车".equals(packageStatus)) {
signPackageEntity.setPackageStatus(2);
} else if ("待收货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(3);
} else if ("已收货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(4);
} else if ("已在库".equals(packageStatus)) {
signPackageEntity.setPackageStatus(5);
} else if ("待理货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(6);
} else if ("待上架".equals(packageStatus)) {
signPackageEntity.setPackageStatus(7);
} else if ("已上架".equals(packageStatus)) {
signPackageEntity.setPackageStatus(8);
} else if ("已下架".equals(packageStatus)) {
signPackageEntity.setPackageStatus(9);
} else if ("已发运".equals(packageStatus)) {
signPackageEntity.setPackageStatus(10);
} else if ("已签收".equals(packageStatus)) {
signPackageEntity.setPackageStatus(11);
} else if ("待返货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(12);
} else if ("已提件".equals(packageStatus)) {
signPackageEntity.setPackageStatus(13);
} else if ("已拒收".equals(packageStatus)) {
signPackageEntity.setPackageStatus(14);
} else if ("异常".equals(packageStatus)) {
signPackageEntity.setPackageStatus(-1);
} else {
signPackageEntity.setPackageStatus(0);
}
Boolean isInventory = packagesJSONObject.getBoolean("IsInventory");
if(isInventory){
signPackageEntity.setIsInventory(1);
}else{
signPackageEntity.setIsInventory(0);
}
opSignPackageService.save(signPackageEntity);
}else{
if ("已调度".equals(packageStatus)) {
signPackageEntity.setPackageStatus(1);
} else if ("已装车".equals(packageStatus)) {
signPackageEntity.setPackageStatus(2);
} else if ("待收货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(3);
} else if ("已收货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(4);
} else if ("已在库".equals(packageStatus)) {
signPackageEntity.setPackageStatus(5);
} else if ("待理货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(6);
} else if ("待上架".equals(packageStatus)) {
signPackageEntity.setPackageStatus(7);
} else if ("已上架".equals(packageStatus)) {
signPackageEntity.setPackageStatus(8);
} else if ("已下架".equals(packageStatus)) {
signPackageEntity.setPackageStatus(9);
} else if ("已发运".equals(packageStatus)) {
signPackageEntity.setPackageStatus(10);
} else if ("已签收".equals(packageStatus)) {
signPackageEntity.setPackageStatus(11);
} else if ("待返货".equals(packageStatus)) {
signPackageEntity.setPackageStatus(12);
} else if ("已提件".equals(packageStatus)) {
signPackageEntity.setPackageStatus(13);
} else if ("已拒收".equals(packageStatus)) {
signPackageEntity.setPackageStatus(14);
} else if ("异常".equals(packageStatus)) {
signPackageEntity.setPackageStatus(-1);
} else {
signPackageEntity.setPackageStatus(0);
}
opSignPackageService.updateById(signPackageEntity);
}
}
}
}
}

9
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOpOutGoingOrderService.java

@ -0,0 +1,9 @@
package com.logpm.factory.oupai.service;
import com.logpm.factory.oupai.entity.OpOutGoingOrderEntity;
import org.springblade.core.mp.base.BaseService;
public interface IOpOutGoingOrderService extends BaseService<OpOutGoingOrderEntity> {
OpOutGoingOrderEntity getEntityByCode(String outGoingOrderCode);
}

8
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOpSignBillService.java

@ -0,0 +1,8 @@
package com.logpm.factory.oupai.service;
import com.logpm.factory.oupai.entity.OpSignBillEntity;
import org.springblade.core.mp.base.BaseService;
public interface IOpSignBillService extends BaseService<OpSignBillEntity> {
OpSignBillEntity findEntityByCode(String recevierCode);
}

8
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOpSignPackageService.java

@ -0,0 +1,8 @@
package com.logpm.factory.oupai.service;
import com.logpm.factory.oupai.entity.OpSignPackageEntity;
import org.springblade.core.mp.base.BaseService;
public interface IOpSignPackageService extends BaseService<OpSignPackageEntity> {
OpSignPackageEntity findEntityByOrderPackageCode(String code);
}

21
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OpOutGoingOrderServiceImpl.java

@ -0,0 +1,21 @@
package com.logpm.factory.oupai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.factory.oupai.entity.OpOutGoingOrderEntity;
import com.logpm.factory.oupai.mapper.OpOutGoingOrderMapper;
import com.logpm.factory.oupai.service.IOpOutGoingOrderService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class OpOutGoingOrderServiceImpl extends BaseServiceImpl<OpOutGoingOrderMapper, OpOutGoingOrderEntity> implements IOpOutGoingOrderService {
@Override
public OpOutGoingOrderEntity getEntityByCode(String outGoingOrderCode) {
QueryWrapper<OpOutGoingOrderEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",outGoingOrderCode)
.eq("is_deleted",0);
return baseMapper.selectOne(queryWrapper);
}
}

21
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OpSignBillServiceImpl.java

@ -0,0 +1,21 @@
package com.logpm.factory.oupai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.factory.oupai.entity.OpSignBillEntity;
import com.logpm.factory.oupai.mapper.OpSignBillMapper;
import com.logpm.factory.oupai.service.IOpSignBillService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class OpSignBillServiceImpl extends BaseServiceImpl<OpSignBillMapper, OpSignBillEntity> implements IOpSignBillService {
@Override
public OpSignBillEntity findEntityByCode(String recevierCode) {
QueryWrapper<OpSignBillEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",recevierCode)
.eq("is_deleted",0);
return baseMapper.selectOne(queryWrapper);
}
}

21
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OpSignPackageServiceImpl.java

@ -0,0 +1,21 @@
package com.logpm.factory.oupai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.factory.oupai.entity.OpSignPackageEntity;
import com.logpm.factory.oupai.mapper.OpSignPackageMapper;
import com.logpm.factory.oupai.service.IOpSignPackageService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class OpSignPackageServiceImpl extends BaseServiceImpl<OpSignPackageMapper, OpSignPackageEntity> implements IOpSignPackageService {
@Override
public OpSignPackageEntity findEntityByOrderPackageCode(String code) {
QueryWrapper<OpSignPackageEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_package_code",code)
.eq("is_deleted",0);
return baseMapper.selectOne(queryWrapper);
}
}

42
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

@ -116,8 +116,9 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
public String savaOuPaiSignBillByCode(String orderCode, Integer event) {
//
String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/SignBill?$filter=Code eq '" + orderCode + "'" +
"&$select=Code,Status,SignPerson,SignPhone,SignAddress,SignTime,Remark," +
"&$expand=OutGoingOrder($select=Code,Status&$expand=OutGoingOrderDetails($select=))&$expand=Packages($select=Code,FirstClassName,PackageStatus)&$expand=SignPictures($select=)";
"&$expand=OutGoingOrder($expand=Warehouse&$expand=Truck)" +
"&$expand=Store($select=Code,Name;$expand=Shop($select=Code,Name))" +
"&$expand=Packages($select=Code,PackageStatus,IsInventory)";
handleSignBillData(url, event);
return orderCode;
@ -128,19 +129,30 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
// 保存需要解析的数据
// 获取返回内容
// try {
// JSONObject jsonObject = JSONObject.parseObject(opOrderStatusLogEntity.getArgs());
// JSONArray resultArray = jsonObject.getJSONArray("value");
// log.info("############handlePackageData: 数据处理开始");
//
// //TODO 这里需要添加处理签收单的逻辑
//
// opOrderStatusLogEntity.setDataStatus(1);
// } catch (Exception e) {
// log.error("############handlePackageData: {}", e.getMessage());
// opOrderStatusLogEntity.setDataStatus(2);
// }
// opOrderStatusLogService.saveOrUpdate(opOrderStatusLogEntity);
Map<String, Object> map = new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("type", "Push");
map.put("messageData", opOrderStatusLogEntity);
map.put("createTime", new Date().getTime());
try {
JSONObject jsonObject = JSONObject.parseObject(opOrderStatusLogEntity.getArgs());
JSONArray resultArray = jsonObject.getJSONArray("value");
log.info("############handlePackageData: 数据处理开始");
//TODO 这里需要添加处理签收单的逻辑
opOrderStatusLogEntity.setDataStatus(1);
rabbitTemplate.convertAndSend(RabbitConstant.OUPAI_SIGN_EXCHANGE, RabbitConstant.OUPAI_SIGN_ROUTING, map);
} catch (Exception e) {
log.error("############handlePackageData: {}", e.getMessage());
opOrderStatusLogEntity.setDataStatus(2);
}
opOrderStatusLogService.saveOrUpdate(opOrderStatusLogEntity);
}
private void handleOutGoingOrderData(String url, Integer event) {
@ -366,6 +378,12 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
if (!Objects.isNull(store)) {
factoryOrderEntity.setStoreCode(store.getString("Code"));
factoryOrderEntity.setStoreName(store.getString("Name"));
JSONObject shop = store.getJSONObject("Shop");
if(!Objects.isNull(shop)){
factoryOrderEntity.setShopCode(shop.getString("Code"));
factoryOrderEntity.setShopName(shop.getString("Name"));
}
}
factoryOrderEntity.setMatingCode(orderEntity.getString("MatingCode"));
@ -543,7 +561,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
"Packages($select=Code,PdaNumber,FirstClassCode,FirstClassName,SecondClassCode,SecondClassName,ThirdClassCode,ThirdClassName,BuyIn,CosourcingCode,CosourcingUnit,SortingCenter,DistributionCenter,Length,Width,Height,Weight,OrderDetail,Order,PathIndex,PathDetail,DeliveryOrders,ReceivingOrders,LPN,LpnSerialNum,IsEntruck,ReservationOrder,OutGoingOrderDetail,SignBill,IsInventory,Inventories,InventoryInDetails,Freeze,OutGoingOrderDetailInventoryDetail,From,Creator,CreateTime,ShipTime,CarNumber,DeliveryMethod,DeliveryReceiver,DeliveryReceiverPhone,ReturnNumber,GroupType,CarrierCode,CarrierName,PackageDetailNames,ReceivingTime,SendTime,ExceptionSignRemark,Descript,SignTime,OutOrder,IsReceiveByHand,PackageStatus,PackageDetailNames;" +
"$expand=Order($select=" +
"Code,SelfCode,ContractNumber,ServiceNumber,OrderClass,OrderType,Status,FactoryShipStatus,FactorySendQty,WarehouseReceiveStatus,WarehouseReceiveQty,ReservationStatus,Store,MatingCode,IsMating,FirstClassCode,Leave,Customer,Province,City,CustomerAddress,CustomerPhone,ShopReceiver,BrandCode,BrandName,From,OutGoingTime,CreateTime,Freeze,FirstShipTime,MatingShipTime,FirstReceiveTime,MatingReceiveTime;\n" +
"$expand=Store($select=Name,Code))" +
"$expand=Store($select=Name,Code;$expand=Shop))" +
"&$expand=PackageDetails($select=Code,Name,Type,Unit,OrgCode)" +
"&$expand=CurrentWarehouse($select=Name,Code)" +
"&$expand=SendWarehouse($select=Name,Code)" +

Loading…
Cancel
Save