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