Browse Source

1.梦天推送订单数据逻辑修改

test
zhenghaoyu 2 years ago
parent
commit
f5d5822314
  1. 4
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtFactoryOrderMain.java
  2. 4
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtPackageInfo.java
  3. 157
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java

4
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtFactoryOrderMain.java

@ -30,6 +30,10 @@ public class MtFactoryOrderMain extends BaseEntity {
@ApiModelProperty(value = "仓库类型") @ApiModelProperty(value = "仓库类型")
private String warehouseType; private String warehouseType;
@JsonProperty("单据类型")
@ApiModelProperty(value = "单据类型")
private String orderType;
@JsonProperty("送货车号") @JsonProperty("送货车号")
@ApiModelProperty(value = "送货车号") @ApiModelProperty(value = "送货车号")
private String sendCarNumber; private String sendCarNumber;

4
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtPackageInfo.java

@ -23,6 +23,10 @@ public class MtPackageInfo extends BaseEntity {
@ApiModelProperty(value = "出库时间") @ApiModelProperty(value = "出库时间")
private String outboundDate; private String outboundDate;
@JsonProperty("数量")
@ApiModelProperty(value = "数量")
private Integer number;
@JsonProperty("包装编号") @JsonProperty("包装编号")
@ApiModelProperty(value = "包装编号") @ApiModelProperty(value = "包装编号")
private String packageCode; private String packageCode;

157
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java

@ -64,81 +64,108 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
@Override @Override
public R dealWithData(MtFactoryDataDTO mtFactoryDataDTO) { public R dealWithData(MtFactoryDataDTO mtFactoryDataDTO) {
log.info("#############dealWithData: 处理梦天工厂数据 开始"); log.info("#############dealWithData: 处理梦天工厂数据 开始");
String invoiceOrderCode = mtFactoryDataDTO.getInvoiceOrderCode();//发货单编码 String orderType = mtFactoryDataDTO.getOrderType();//单据类型
//先判断该发货单编码是否已经存在 if("反冲单".equals(orderType)){
QueryWrapper<MtFactoryOrderMain> queryWrapper = new QueryWrapper<>(); //如果是反冲单 就去把对应的包件信息逻辑删除
queryWrapper.eq("invoice_order_code",invoiceOrderCode); List<MtFactoryOrderDTO> orderList = mtFactoryDataDTO.getOrderList();
Long mainId = null; List<MtPackageInfo> updateList = new ArrayList<>();
MtFactoryOrderMain mtFactoryOrderMain = mtFactoryOrderMainService.getOne(queryWrapper); for (MtFactoryOrderDTO mtFactoryOrderDTO:orderList){
if(!Objects.isNull(mtFactoryOrderMain)){ String orderCode = mtFactoryOrderDTO.getOrderCode();
log.warn("#############dealWithData: 数据已存在 invoiceOrderCode={}",invoiceOrderCode); List<MtPackageInfoDTO> packageInfos = mtFactoryOrderDTO.getPackageInfos();
return R.fail(405,"发货单已存在");
}
//先取出所有发车单下面的订单
List<MtFactoryOrderDTO> orderList = mtFactoryDataDTO.getOrderList();//所有订单数据
for(MtFactoryOrderDTO mtFactoryOrderDTO:orderList){
String orderCode = mtFactoryOrderDTO.getOrderCode();//订单自编码
//先取出订单下面的包件进行判断是否存在
List<MtPackageInfoDTO> packageInfos = mtFactoryOrderDTO.getPackageInfos();
//查询出该订单自编码下面的目前存在的所有包件
QueryWrapper<MtPackageInfo> qw = new QueryWrapper<>();
qw.eq("order_code",orderCode);
List<MtPackageInfo> existPackages = mtPackageInfoService.list(qw);
for(MtPackageInfo mtPackageInfo:existPackages){
String packageCode = mtPackageInfo.getPackageCode();
for (MtPackageInfoDTO mtPackageInfoDTO:packageInfos){ for (MtPackageInfoDTO mtPackageInfoDTO:packageInfos){
String pc = mtPackageInfoDTO.getPackageCode(); //根据包件码和订单自编码查询是否存在该包件
if(packageCode.equals(pc)){ String packageCode = mtPackageInfoDTO.getPackageCode();
packageInfos.remove(mtPackageInfoDTO); QueryWrapper<MtPackageInfo> queryWrapper = new QueryWrapper<>();
break; queryWrapper.eq("order_code",orderCode)
.eq("package_code",packageCode)
.eq("is_deleted",0);
MtPackageInfo mtPackageInfo = mtPackageInfoService.getOne(queryWrapper);
if(!Objects.isNull(mtPackageInfo)){
mtPackageInfo.setIsDeleted(1);
updateList.add(mtPackageInfo);
} }
} }
} }
//判断是否有新的包件 mtPackageInfoService.updateBatchById(updateList);
if(packageInfos.size() == 0){ return R.success("SUCCESS");
//如果没有新增包件就直接下一条数据 }else {
log.info("##################dealWithData: 没有新增包件,所以当前数据不保存 invoiceOrderCode={}",invoiceOrderCode); String invoiceOrderCode = mtFactoryDataDTO.getInvoiceOrderCode();//发货单编码
continue; //先判断该发货单编码是否已经存在
QueryWrapper<MtFactoryOrderMain> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("invoice_order_code",invoiceOrderCode);
Long mainId = null;
MtFactoryOrderMain mtFactoryOrderMain = mtFactoryOrderMainService.getOne(queryWrapper);
if(!Objects.isNull(mtFactoryOrderMain)){
log.warn("#############dealWithData: 数据已存在 invoiceOrderCode={}",invoiceOrderCode);
return R.fail(405,"发货单已存在");
} }
//如果有新增包件就去存入订单发车单,和订单信息
if(Objects.isNull(mtFactoryOrderMain)){ //先取出所有发车单下面的订单
mtFactoryOrderMain = new MtFactoryOrderMain(); List<MtFactoryOrderDTO> orderList = mtFactoryDataDTO.getOrderList();//所有订单数据
BeanUtil.copyProperties(mtFactoryDataDTO,mtFactoryOrderMain); for(MtFactoryOrderDTO mtFactoryOrderDTO:orderList){
boolean saveMain = mtFactoryOrderMainService.save(mtFactoryOrderMain); String orderCode = mtFactoryOrderDTO.getOrderCode();//订单自编码
if(saveMain){ //先取出订单下面的包件进行判断是否存在
mainId = mtFactoryOrderMain.getId(); List<MtPackageInfoDTO> packageInfos = mtFactoryOrderDTO.getPackageInfos();
//查询出该订单自编码下面的目前存在的所有包件
QueryWrapper<MtPackageInfo> qw = new QueryWrapper<>();
qw.eq("order_code",orderCode);
List<MtPackageInfo> existPackages = mtPackageInfoService.list(qw);
for(MtPackageInfo mtPackageInfo:existPackages){
String packageCode = mtPackageInfo.getPackageCode();
for (MtPackageInfoDTO mtPackageInfoDTO:packageInfos){
String pc = mtPackageInfoDTO.getPackageCode();
if(packageCode.equals(pc)){
packageInfos.remove(mtPackageInfoDTO);
break;
}
}
}
//判断是否有新的包件
if(packageInfos.size() == 0){
//如果没有新增包件就直接下一条数据
log.info("##################dealWithData: 没有新增包件,所以当前数据不保存 invoiceOrderCode={}",invoiceOrderCode);
continue;
}
//如果有新增包件就去存入订单发车单,和订单信息
if(Objects.isNull(mtFactoryOrderMain)){
mtFactoryOrderMain = new MtFactoryOrderMain();
BeanUtil.copyProperties(mtFactoryDataDTO,mtFactoryOrderMain);
boolean saveMain = mtFactoryOrderMainService.save(mtFactoryOrderMain);
if(saveMain){
mainId = mtFactoryOrderMain.getId();
}else{
log.warn("##################dealWithData: 保存头信息失败invoiceOrderCode={} ",invoiceOrderCode);
throw new CustomerException(405,"保存数据失败");
}
}
//保存订单信息
MtFactoryOrder mtFactoryOrder = new MtFactoryOrder();
BeanUtil.copyProperties(mtFactoryOrderDTO,mtFactoryOrder);
mtFactoryOrder.setMainId(mainId);
boolean saveOrder = mtFactoryOrderService.save(mtFactoryOrder);
Long orderId = mtFactoryOrder.getId();
if(saveOrder){
List<MtPackageInfo> list = new ArrayList<>();
for(MtPackageInfoDTO mtPackageInfoDTO:packageInfos){
MtPackageInfo mtPackageInfo = new MtPackageInfo();
BeanUtil.copyProperties(mtPackageInfoDTO,mtPackageInfo);
mtPackageInfo.setOrderId(orderId);
mtPackageInfo.setOrderCode(orderCode);
list.add(mtPackageInfo);
}
//保存包件信息
boolean b = mtPackageInfoService.saveBatch(list);
}else{ }else{
log.warn("##################dealWithData: 保存头信息失败invoiceOrderCode={} ",invoiceOrderCode); log.warn("##################dealWithData: 保存订单信息失败orderCode={} ",orderCode);
throw new CustomerException(405,"保存数据失败"); throw new CustomerException(405,"保存数据失败");
} }
} }
//保存订单信息 Map<String,Long> map = new HashMap<>();
MtFactoryOrder mtFactoryOrder = new MtFactoryOrder(); map.put("mainId",mainId);
BeanUtil.copyProperties(mtFactoryOrderDTO,mtFactoryOrder);
mtFactoryOrder.setMainId(mainId);
boolean saveOrder = mtFactoryOrderService.save(mtFactoryOrder);
Long orderId = mtFactoryOrder.getId();
if(saveOrder){
List<MtPackageInfo> list = new ArrayList<>();
for(MtPackageInfoDTO mtPackageInfoDTO:packageInfos){
MtPackageInfo mtPackageInfo = new MtPackageInfo();
BeanUtil.copyProperties(mtPackageInfoDTO,mtPackageInfo);
mtPackageInfo.setOrderId(orderId);
mtPackageInfo.setOrderCode(orderCode);
list.add(mtPackageInfo);
}
//保存包件信息
boolean b = mtPackageInfoService.saveBatch(list);
}else{
log.warn("##################dealWithData: 保存订单信息失败orderCode={} ",orderCode);
throw new CustomerException(405,"保存数据失败");
}
}
Map<String,Long> map = new HashMap<>();
map.put("mainId",mainId);
return R.data(map); return R.data(map);
}
} }
@Override @Override

Loading…
Cancel
Save