Browse Source

Merge remote-tracking branch 'origin/dev' into dev

master
zhenghaoyu 11 months ago
parent
commit
e981e235e5
  1. 114
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/OrderStatusDTO.java
  2. 29
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  3. 114
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/OrderStatusDTO.java
  4. 21
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java
  5. 26
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

114
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/OrderStatusDTO.java

@ -0,0 +1,114 @@
/*
* 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.distribution.dto;
import lombok.Data;
import org.springblade.core.tool.utils.StringUtil;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
/**
* OrderStatus
*
* @author zhy
* @since 2023-06-12
*/
@Data
public class OrderStatusDTO implements Serializable {
private static final long serialVersionUID = 1L;
@NotEmpty(message = "派车单号不能为空")
private String dispatchNumber;//派车单号
@NotEmpty(message = "客户订单号不能为空")
private String orderNo;//客户订单号
@NotEmpty(message = "工厂ID不能为空")
private String plantId;//工厂ID
@NotEmpty(message = "物流单号不能为空")
private String logiBillNo;//物流单号
@NotEmpty(message = "包件码不能为空")
private String unitNo;//包件码
@NotEmpty(message = "操作时间不能为空")
private String operationTime;//操作时间
@NotEmpty(message = "当前仓库不能为空")
private String currentWarehouse;//当前仓库
@NotEmpty(message = "目的仓库不能为空")
private String destinationWarehouse;//目的仓库
@NotEmpty(message = "状态不能为空")
private String status;//状态
@NotEmpty(message = "送货任务ID不能为空")
private String distributionContactId;
@NotEmpty(message = "托盘id")
private Integer trayId;
@NotEmpty(message = "托盘编码")
private String trayNo;
@NotEmpty(message = "操作人名称")
private String username;
/**
* 验证参数是否都存在
* @return
*/
public boolean verifyData(){
if(StringUtil.isBlank(dispatchNumber)){
return false;
}
if(StringUtil.isBlank(orderNo)){
return false;
}
if(StringUtil.isBlank(plantId)){
return false;
}
if(StringUtil.isBlank(logiBillNo)){
return false;
}
if(StringUtil.isBlank(unitNo)){
return false;
}
if(StringUtil.isBlank(operationTime)){
return false;
}
if(StringUtil.isBlank(currentWarehouse)){
return false;
}
if(StringUtil.isBlank(destinationWarehouse)){
return false;
}
if(StringUtil.isBlank(status)){
return false;
}
if(StringUtil.isBlank(distributionContactId)){
return false;
}
return true;
}
}

29
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -17,6 +17,7 @@
package com.logpm.distribution.service.impl; package com.logpm.distribution.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -35,6 +36,7 @@ import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.dto.DistributionParcelListDTO; import com.logpm.distribution.dto.DistributionParcelListDTO;
import com.logpm.distribution.dto.DistributionStockListDTO; import com.logpm.distribution.dto.DistributionStockListDTO;
import com.logpm.distribution.dto.DistrilbutionBillLadingDTO; import com.logpm.distribution.dto.DistrilbutionBillLadingDTO;
import com.logpm.distribution.dto.OrderStatusDTO;
import com.logpm.distribution.dto.app.BillLadingAppDTO; import com.logpm.distribution.dto.app.BillLadingAppDTO;
import com.logpm.distribution.entity.*; import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
@ -52,6 +54,7 @@ import lombok.extern.log4j.Log4j2;
import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.Strings;
import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant; import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.constant.WorkNodeEnums; import org.springblade.common.constant.WorkNodeEnums;
import org.springblade.common.constant.billLading.BillLadingStatusConstant; import org.springblade.common.constant.billLading.BillLadingStatusConstant;
import org.springblade.common.constant.common.IsOrNoConstant; import org.springblade.common.constant.common.IsOrNoConstant;
@ -76,6 +79,7 @@ import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache; import org.springblade.system.cache.DictBizCache;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
@ -152,6 +156,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
private BladeRedis redis; private BladeRedis redis;
@Resource @Resource
private FactoryDataMessageSender factoryDataMessageSender; private FactoryDataMessageSender factoryDataMessageSender;
@Resource
private RabbitTemplate rabbitTemplate;
@Override @Override
@ -2959,6 +2965,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId()); distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId());
} }
parcelListIds.addAll(ladingScanEntities.stream().map(DistributionBillLadingScanEntity::getParcelListId).collect(Collectors.toSet())); parcelListIds.addAll(ladingScanEntities.stream().map(DistributionBillLadingScanEntity::getParcelListId).collect(Collectors.toSet()));
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
// 签收发送消息到工厂
pushFactoryOrderData(myCurrentWarehouse.getId(), ladingScanEntity.getParcelListId().toString(), ladingScanEntity.getOrderSelfNumbering());
}
}else { }else {
distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId()); distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId());
} }
@ -2993,7 +3003,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
} }
//处理库存品签收数据 //处理库存品签收数据
updateStock(s); updateStock(s);
} }
// 回传工厂数据 // 回传工厂数据
sendFactory(myCurrentWarehouse, parcelListIds); sendFactory(myCurrentWarehouse, parcelListIds);
@ -3036,6 +3045,24 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
} }
} }
private void pushFactoryOrderData(Long warehouseId, String orderPackageCode, String orderCode) {
try {
// 发送入库消息
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// 通过包件id 查询包件
orderStatusDTO.setUnitNo(orderPackageCode);
orderStatusDTO.setOrderNo(orderCode);
orderStatusDTO.setStatus("3");
orderStatusDTO.setOperationTime(DateUtil.now());
orderStatusDTO.setCurrentWarehouse(warehouseId.toString());
Map<String, Object> map = new HashMap<>();
map.put("messageData", orderStatusDTO);
rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map);
} catch (Exception e) {
log.error("入库推送失败:{}", e);
}
}
/** /**
* 处理提货库存品签收 * 处理提货库存品签收
*/ */

114
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/OrderStatusDTO.java

@ -0,0 +1,114 @@
/*
* 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.trunkline.dto;
import lombok.Data;
import org.springblade.core.tool.utils.StringUtil;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
/**
* OrderStatus
*
* @author zhy
* @since 2023-06-12
*/
@Data
public class OrderStatusDTO implements Serializable {
private static final long serialVersionUID = 1L;
@NotEmpty(message = "派车单号不能为空")
private String dispatchNumber;//派车单号
@NotEmpty(message = "客户订单号不能为空")
private String orderNo;//客户订单号
@NotEmpty(message = "工厂ID不能为空")
private String plantId;//工厂ID
@NotEmpty(message = "物流单号不能为空")
private String logiBillNo;//物流单号
@NotEmpty(message = "包件码不能为空")
private String unitNo;//包件码
@NotEmpty(message = "操作时间不能为空")
private String operationTime;//操作时间
@NotEmpty(message = "当前仓库不能为空")
private String currentWarehouse;//当前仓库
@NotEmpty(message = "目的仓库不能为空")
private String destinationWarehouse;//目的仓库
@NotEmpty(message = "状态不能为空")
private String status;//状态
@NotEmpty(message = "送货任务ID不能为空")
private String distributionContactId;
@NotEmpty(message = "托盘id")
private Integer trayId;
@NotEmpty(message = "托盘编码")
private String trayNo;
@NotEmpty(message = "操作人名称")
private String username;
/**
* 验证参数是否都存在
* @return
*/
public boolean verifyData(){
if(StringUtil.isBlank(dispatchNumber)){
return false;
}
if(StringUtil.isBlank(orderNo)){
return false;
}
if(StringUtil.isBlank(plantId)){
return false;
}
if(StringUtil.isBlank(logiBillNo)){
return false;
}
if(StringUtil.isBlank(unitNo)){
return false;
}
if(StringUtil.isBlank(operationTime)){
return false;
}
if(StringUtil.isBlank(currentWarehouse)){
return false;
}
if(StringUtil.isBlank(destinationWarehouse)){
return false;
}
if(StringUtil.isBlank(status)){
return false;
}
if(StringUtil.isBlank(distributionContactId)){
return false;
}
return true;
}
}

21
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java

@ -1,10 +1,12 @@
package com.logpm.trunkline.service.impl; package com.logpm.trunkline.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.trunkline.bean.Resp; import com.logpm.trunkline.bean.Resp;
import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.dto.InComingDTO;
import com.logpm.trunkline.dto.OrderStatusDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.entity.TrunklineBillladingPackageEntity; import com.logpm.trunkline.entity.TrunklineBillladingPackageEntity;
import com.logpm.trunkline.service.*; import com.logpm.trunkline.service.*;
@ -13,11 +15,14 @@ import com.logpm.warehouse.feign.IWarehouseTrayTypeClient;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.IncomingTypeEnum; import org.springblade.common.constant.IncomingTypeEnum;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.constant.WorkNodeEnums; import org.springblade.common.constant.WorkNodeEnums;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@ -34,6 +39,7 @@ public class InComingServiceImpl implements IInComingService {
private final IBasicdataWarehouseClient warehouseClient; private final IBasicdataWarehouseClient warehouseClient;
private final IPackageTrackLogAsyncService packageTrackLogAsyncService; private final IPackageTrackLogAsyncService packageTrackLogAsyncService;
// private final DynamicDataSourceProvider dynamicDataSourceProvider; // private final DynamicDataSourceProvider dynamicDataSourceProvider;
private final RabbitTemplate rabbitTemplate;
@Override @Override
@ -126,6 +132,21 @@ public class InComingServiceImpl implements IInComingService {
warehouseTrayTypeClient.orderScanOrderPackageCode(map); warehouseTrayTypeClient.orderScanOrderPackageCode(map);
} }
} }
try {
// 发送入库消息
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// 通过包件id 查询包件
orderStatusDTO.setUnitNo(packageCode);
orderStatusDTO.setOrderNo(advanceDetailEntity.getOrderCode());
orderStatusDTO.setStatus("4");
orderStatusDTO.setOperationTime(DateUtil.now());
orderStatusDTO.setCurrentWarehouse(warehouseId.toString());
Map<String, Object> map = new HashMap<>();
map.put("messageData", orderStatusDTO);
rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map);
} catch (Exception e) {
log.error("入库推送失败:{}", e);
}
} }
} }
return R.success("入库成功"); return R.success("入库成功");

26
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -1,6 +1,7 @@
package com.logpm.trunkline.service.impl; package com.logpm.trunkline.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -2314,10 +2315,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, orderPackageCode, 1, trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, orderPackageCode, 1,
1, isData, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); 1, isData, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark);
updateNumByLoadId(loadId); updateNumByLoadId(loadId);
// 推送包件装车数据到工厂
pushFactoryOrderData(warehouseId, orderPackageCode, orderCode);
return R.success("装车成功"); return R.success("装车成功");
} }
private void pushFactoryOrderData(Long warehouseId, String orderPackageCode, String orderCode) {
try {
// 发送入库消息
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// 通过包件id 查询包件
orderStatusDTO.setUnitNo(orderPackageCode);
orderStatusDTO.setOrderNo(orderCode);
orderStatusDTO.setStatus("3");
orderStatusDTO.setOperationTime(DateUtil.now());
orderStatusDTO.setCurrentWarehouse(warehouseId.toString());
Map<String, Object> map = new HashMap<>();
map.put("messageData", orderStatusDTO);
rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map);
} catch (Exception e) {
log.error("入库推送失败:{}", e);
}
}
@Override @Override
public R loadingZero(Long loadId, Long warehouseId, String waybillNo, String orderCode, String trayCode, Integer enterNum, String remark) { public R loadingZero(Long loadId, Long warehouseId, String waybillNo, String orderCode, String trayCode, Integer enterNum, String remark) {
@ -3724,7 +3744,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
finalOrderCodes1.put(e,orderId); finalOrderCodes1.put(e,orderId);
} }
List<TrunklineCarsLoadScanEntity> carsLoadScanList = carsLoadScanEntitiesMap.get(e);
Long finalOrderId = orderId; Long finalOrderId = orderId;
carsLoadScanList.forEach(p -> { carsLoadScanList.forEach(p -> {
DistributionParcelListEntity parcelListEntity = parcelListMap.get(p.getScanCode()); DistributionParcelListEntity parcelListEntity = parcelListMap.get(p.getScanCode());
@ -4486,6 +4506,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
warehousePackageTrackLogEntity.setOperator(nickName); warehousePackageTrackLogEntity.setOperator(nickName);
addPackageTrackLogList.add(warehousePackageTrackLogEntity); addPackageTrackLogList.add(warehousePackageTrackLogEntity);
orderPackageCodes.add(orderPackageCode); orderPackageCodes.add(orderPackageCode);
// 推送包件装车信息到工厂
pushFactoryOrderData(warehouseId, orderPackageCode, orderCode);
} }
} }
}); });

Loading…
Cancel
Save