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 = "仓库类型")
private String warehouseType;
@JsonProperty("单据类型")
@ApiModelProperty(value = "单据类型")
private String orderType;
@JsonProperty("送货车号")
@ApiModelProperty(value = "送货车号")
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 = "出库时间")
private String outboundDate;
@JsonProperty("数量")
@ApiModelProperty(value = "数量")
private Integer number;
@JsonProperty("包装编号")
@ApiModelProperty(value = "包装编号")
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
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

Loading…
Cancel
Save