Browse Source

1.三方中转流程逻辑修改

pre-production
zhenghaoyu 2 months ago
parent
commit
e90383f12c
  1. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java
  2. 61
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/TripartiteTransferController.java
  3. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  4. 20
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  5. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java
  6. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  7. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  8. 75
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java
  9. 10
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  10. 231
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  11. 18
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java

1
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java

@ -7,6 +7,7 @@ import lombok.Data;
public class TrunklineCarsLoadScanVO extends TrunklineCarsLoadScanEntity {
private Long signOrderId;
private Long carsLoadScanId;
private String destinationWarehouseName;

61
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/TripartiteTransferController.java

@ -175,6 +175,38 @@ public class TripartiteTransferController {
}
@ResponseBody
@PostMapping("/startCarsBefore")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "三方中转发车前验证", notes = "传入loadCarsDTO")
public R startCarsBefore(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############startCars: ";
log.info(method+"请求参数{}",loadCarsDTO);
Long loadId = loadCarsDTO.getLoadId();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(400,"多仓权限无法操作,请选择仓库");
}
if(Objects.isNull(loadId)){
log.warn(method+"三方中转id为空 loadId={}",loadId);
return R.fail(400,"三方中转id为空");
}
return carsLoadService.startCarsBefore(loadId,myCurrentWarehouse.getId());
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
@ResponseBody
@PostMapping("/startCars")
@ApiOperationSupport(order = 1)
@ -392,6 +424,7 @@ public class TripartiteTransferController {
String carNumber = carsLoadDTO.getCarNumber();
String remark = carsLoadDTO.getRemark();
String loadType = carsLoadDTO.getLoadType();
String deliveryType = carsLoadDTO.getDeliveryType();
try{
@ -406,18 +439,26 @@ public class TripartiteTransferController {
log.warn(method+"配载id为空 loadId={}",loadId);
return R.fail(400,"配载id为空");
}
if(Objects.isNull(driverId)){
log.warn(method+"司机id为空 driverId={}",driverId);
return R.fail(400,"司机id为空");
}
if(StringUtil.isBlank(driverName)){
log.warn(method+"司机名称为空 driverName={}",driverName);
return R.fail(400,"司机名称为空");
if(StringUtil.isBlank(deliveryType)){
log.warn(method+"送货方式为空 deliveryType={}",deliveryType);
return R.fail(400,"送货方式为空");
}
if(StringUtil.isBlank(driverMobile)){
log.warn(method+"司机电话为空 driverMobile={}",driverMobile);
return R.fail(400,"司机电话为空");
if(deliveryType.equals("2")){
if(Objects.isNull(driverId)){
log.warn(method+"司机id为空 driverId={}",driverId);
return R.fail(400,"司机id为空");
}
if(StringUtil.isBlank(driverName)){
log.warn(method+"司机名称为空 driverName={}",driverName);
return R.fail(400,"司机名称为空");
}
if(StringUtil.isBlank(driverMobile)){
log.warn(method+"司机电话为空 driverMobile={}",driverMobile);
return R.fail(400,"司机电话为空");
}
}
if(StringUtil.isBlank(chargeType)){

4
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java

@ -171,4 +171,8 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper<TrunklineCarsLoa
List<TrunklineCarsLoadScanEntity> findAbnormalZeroScanList(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<ZeroNumVO> findZeroStartNum(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<Long> findAllIdListByLoadIdAndNoScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus);
List<LoadScanWaybillVO> findTransferLoadScanWaybillList(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId);
}

20
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml

@ -80,7 +80,8 @@
<select id="loadingDetail" resultType="com.logpm.trunkline.vo.TrunklineCarsLoadScanVO">
select cls.*,
lww.destination_warehouse_name
lww.destination_warehouse_name destinationWarehouseName,
cls.id carsLoadScanId
from logpm_trunkline_cars_load_scan cls
left join logpm_warehouse_waybill lww on cls.waybill_id = lww.id
where cls.load_id = #{param.loadId}
@ -496,6 +497,16 @@
group by waybill_no
</select>
<select id="findTransferLoadScanWaybillList" resultType="com.logpm.trunkline.vo.LoadScanWaybillVO">
select waybill_no waybillNo,
sum(unload_num) num
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and warehouse_id = #{nodeId}
and waybill_no is not null
group by waybill_no
</select>
<select id="findArriveLoadScanWaybillList" resultType="com.logpm.trunkline.vo.LoadScanWaybillVO">
select waybill_no waybillNo,
sum(num) num
@ -914,4 +925,11 @@
</select>
<select id="findAllIdListByLoadIdAndNoScanStatus" resultType="java.lang.Long">
select id
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and scan_status != #{scanStatus}
</select>
</mapper>

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java

@ -10,10 +10,12 @@ public interface IOpenOrderAsyncService {
void saveLog(Long waybillId, String waybillNo, String trackType, String refer, String operationRemark, String nickName,Long userId,Long warehouseId,String warehouseName);
void saveStartCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity,String nickName,Long userId);
void saveTripartiteStartCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity,String nickName,Long userId);
void saveCancelStartCarLog(TrunklineCarsLoadLineEntity currentCarsLoadLineEntity, String nickName,Long userId);
void saveArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId);
void saveTripartiteArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId);
void saveCancelArriveCarLog(TrunklineCarsLoadLineEntity currentCarsLoadLineEntity, String nickName,Long userId);

4
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java

@ -166,4 +166,8 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
List<TrunklineCarsLoadScanEntity> findAbnormalZeroScanList(Long loadId, Long warehouseId);
List<ZeroNumVO> findZeroStartNum(Long loadId, Long warehouseId);
List<Long> findAllIdListByLoadIdAndNoScanStatus(Long loadId, String scanStatus);
List<LoadScanWaybillVO> findTransferLoadScanWaybillList(Long loadId, Long nodeId);
}

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java

@ -223,4 +223,6 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R selectEditDetailByLoadIdNoXz(Long loadId);
R signOrderZeroSuppleList(LoadCarsDTO loadCarsDTO);
R startCarsBefore(Long loadId, Long warehouseId);
}

75
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java

@ -170,6 +170,51 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService {
}
@LogpmAsync("asyncExecutor")
@Override
public void saveTripartiteStartCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity,String nickName,Long userId) {
Long loadId = carsLoadLineEntity.getLoadId();
Integer sort = carsLoadLineEntity.getSort();
String tenantId = AuthUtil.getTenantId();
BladeUser user = AuthUtil.getUser();
// DynamicDataSourceContextHolder.push(tenantId);
TrunklineCarsLoadEntity carsLoadEntity = trunklineCarsLoadService.getById(loadId);
if(Objects.isNull(carsLoadEntity)){
log.warn("##############saveStartCarLog: 配载信息不存在 loadId={}",loadId);
return;
}
String carsNo = carsLoadEntity.getCarsNo();
String carNumber = carsLoadEntity.getCarNumber();
String driverName = carsLoadEntity.getDriverName();
String driverMobile = carsLoadEntity.getDriverMobile();
Long nodeId = carsLoadLineEntity.getNodeId();
String nodeName = carsLoadLineEntity.getNodeName();
List<LoadScanWaybillVO> list = trunklineCarsLoadScanService.findTransferLoadScanWaybillList(loadId,nodeId);
for (LoadScanWaybillVO loadScanWaybillVO : list) {
String waybillNo = loadScanWaybillVO.getWaybillNo();
Integer num = loadScanWaybillVO.getNum();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if(Objects.isNull(waybillEntity)){
log.warn("##############saveStartCarLog: 运单信息不存在 waybillNo={}",waybillNo);
continue;
}
Long waybillId = waybillEntity.getId();
String operationRemark = "运单装车"+num+"件 三方中转批次号:"+carsNo+",车牌号:"+carNumber+",司机姓名:"+driverName+",司机手机:"+driverMobile;
saveLog(waybillId,waybillNo,"30",nodeName+" 三方中转装车",operationRemark,nickName,userId,nodeId,nodeName);
operationRemark = "三方中转从"+nodeName+"发车,实际发车时间"+ CommonUtil.dateToStringGeneral(new Date());
saveLog(waybillId,waybillNo,"40",nodeName+"已发车",operationRemark,nickName,userId,nodeId,nodeName);
}
}
private void saveTrackLog(Long waybillId, String waybillNo, String trackType, String refer, String operationRemark, String nickName,Long userId,Long warehouseId,String warehouseName) {
TrunklineWaybillTrackEntity waybillTrackEntity = new TrunklineWaybillTrackEntity();
waybillTrackEntity.setWarehouseId(warehouseId);
@ -249,6 +294,36 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService {
}
}
@LogpmAsync("asyncExecutor")
@Override
public void saveTripartiteArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId) {
Long loadId = carsLoadLineEntity.getLoadId();
TrunklineCarsLoadEntity carsLoadEntity = trunklineCarsLoadService.getById(loadId);
if(Objects.isNull(carsLoadEntity)){
log.warn("##############saveCancelStartCarLog: 配载信息不存在 loadId={}",loadId);
return;
}
Long nodeId = carsLoadLineEntity.getNodeId();
String nodeName = carsLoadLineEntity.getNodeName();
List<LoadScanWaybillVO> list = trunklineCarsLoadScanService.findArriveLoadScanWaybillList(loadId,nodeId);
for (LoadScanWaybillVO loadScanWaybillVO : list) {
String waybillNo = loadScanWaybillVO.getWaybillNo();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if(Objects.isNull(waybillEntity)){
log.warn("##############saveCancelStartCarLog: 运单信息不存在 waybillNo={}",waybillNo);
continue;
}
Long waybillId = waybillEntity.getId();
String operationRemark = "三方中转到达"+nodeName+",到达时间"+ CommonUtil.dateToStringGeneral(new Date());
saveLog(waybillId,waybillNo,"60",nodeName+" 三方中转到达",operationRemark,nickName,userId,nodeId,nodeName);
}
}
@LogpmAsync("asyncExecutor")
@Override
public void saveCancelArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId) {

10
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java

@ -404,4 +404,14 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
return baseMapper.findZeroStartNum(loadId,warehouseId);
}
@Override
public List<Long> findAllIdListByLoadIdAndNoScanStatus(Long loadId, String scanStatus) {
return baseMapper.findAllIdListByLoadIdAndNoScanStatus(loadId,scanStatus);
}
@Override
public List<LoadScanWaybillVO> findTransferLoadScanWaybillList(Long loadId, Long nodeId) {
return baseMapper.findTransferLoadScanWaybillList(loadId,nodeId);
}
}

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

@ -1719,6 +1719,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.data(pageList);
}
@Override
public R startCarsBefore(Long loadId, Long warehouseId) {
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("load_id",loadId);
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper);
Integer loadingNum = carsLoadScanEntityList.stream().mapToInt(t -> Objects.nonNull(t.getNum()) ? t.getNum() : 0).sum();
Integer unloadNum = carsLoadScanEntityList.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
Map<String,Integer> map = new HashMap<>();
map.put("loadingNum",loadingNum);
map.put("unloadNum",unloadNum);
return R.data(map);
}
@Transactional(rollbackFor = Exception.class)
@Override
@ -2355,10 +2371,65 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
try {
trunklineCarsLoadLogService.saveLog(carsLoadEntity, carsLoadLineEntity, CarsLoadLogTypeConstant.FIRST_START_CARS_LOAD.getValue());
List<String> orderPackageCodes = trunklineCarsLoadScanService.findPackageListByLoadId(loadId);
openOrderAsyncService.saveTripartiteStartCarLog(carsLoadLineEntity, AuthUtil.getNickName(), AuthUtil.getUserId());
String content = "包件在 " + warehouseEntity.getName() + "三方中转发车";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.TRIPARTITE_TRANSFER_DEPART.getCode(), content);
List<String> orderPackageCodes = new ArrayList<>();
List<String> noUnloadOrderPackageCodes = new ArrayList<>();
//处理三方中转未卸车数据
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("load_id",loadId);
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper);
//把carsLoadScanEntityList中所有元素通过type进行分组
//通过type分组区分零担和包件
Map<Integer, List<TrunklineCarsLoadScanEntity>> carsLoadScanEntityMap = carsLoadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType));
carsLoadScanEntityMap.keySet().forEach(type -> {
List<TrunklineCarsLoadScanEntity> trunklineCarsLoadScanEntities = carsLoadScanEntityMap.get(type);
if(type == 1){
//包件
trunklineCarsLoadScanEntities.forEach(trunklineCarsLoadScanEntity -> {
String scanCode = trunklineCarsLoadScanEntity.getScanCode();
Integer num = trunklineCarsLoadScanEntity.getNum();
Integer unloadNum = trunklineCarsLoadScanEntity.getUnloadNum();
Integer isData = trunklineCarsLoadScanEntity.getIsData();
if(unloadNum == num){
orderPackageCodes.add(scanCode);
}else{
//未卸车包件
if(isData == 1){
noUnloadOrderPackageCodes.add(scanCode);
}
}
});
}else if(type == 2){
//零担
//把trunklineCarsLoadScanEntities通过orderCode进行分组
//通过orderCode分组
Map<String, List<TrunklineCarsLoadScanEntity>> orderCodeMap = trunklineCarsLoadScanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getOrderCode));
orderCodeMap.keySet().forEach(orderCode -> {
List<TrunklineCarsLoadScanEntity> trunklineCarsLoadScanEntities1 = orderCodeMap.get(orderCode);
Integer loadingNum = trunklineCarsLoadScanEntities1.stream().mapToInt(t -> Objects.nonNull(t.getNum()) ? t.getNum() : 0).sum();
Integer unloadNum = trunklineCarsLoadScanEntities1.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
int i = loadingNum - unloadNum;
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(!Objects.isNull(stockArticleEntity)){
distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(), i);
}
});
}
});
if(CollUtil.isNotEmpty(orderPackageCodes)){
String content = "包件在 " + warehouseEntity.getName() + "三方中转发车";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.TRIPARTITE_TRANSFER_DEPART.getCode(), content);
}
if(CollUtil.isNotEmpty(noUnloadOrderPackageCodes)){
String content = "包件在 " + warehouseEntity.getName() + "三方中转取消装车";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), noUnloadOrderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content);
}
} catch (Exception e) {
log.warn("#############startCarByLoadId: 存入日志失败");
@ -2493,6 +2564,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadLogService.saveLog(carsLoadEntity, carsLoadLineEntity, CarsLoadLogTypeConstant.END_ARRIVE_CARS_LOAD.getValue());
List<String> orderPackageCodes = trunklineCarsLoadScanService.findPackageListByLoadId(loadId);
openOrderAsyncService.saveTripartiteArriveCarLog(carsLoadLineEntity,AuthUtil.getNickName(),AuthUtil.getUserId());
String content = "包件在 " + warehouseEntity.getName() + "三方中转到达";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.ARRICE_TRIPARTITE_TRANSFER_DEPART.getCode(), content);
@ -2535,27 +2608,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
throw new CustomerException(400, "三方中转节点不存在");
}
carsLoadEntity.setSignTime(new Date());
carsLoadEntity.setLoadStatus("90");
updateById(carsLoadEntity);
trunklineCarsLoadScanService.updateScanStatusByLoadId(loadId, "3", new Date(),AuthUtil.getNickName());
List<Long> scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3");
try {
trunklineCarsLoadLogService.saveLog(carsLoadEntity, carsLoadLineEntity, CarsLoadLogTypeConstant.TRIPARTITE_TRANSFER_SIGN.getValue());
return signLoadScanByIds(scanLoadIds,warehouseId);
List<String> orderPackageCodes = trunklineCarsLoadScanService.findSignListOrderPackageCodes(loadId);
String content = "包件在" + warehouseEntity.getName() + "被三方中转整车签收";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode(), content);
// 推送签收数据给工厂
sendFactorySignTriparite(warehouseId, orderPackageCodes, warehouseEntity);
} catch (Exception e) {
log.warn("###########存入日志失败");
}
return R.success("签收成功");
// carsLoadEntity.setSignTime(new Date());
// carsLoadEntity.setLoadStatus("90");
// updateById(carsLoadEntity);
//
// trunklineCarsLoadScanService.updateScanStatusByLoadId(loadId, "3", new Date(),AuthUtil.getNickName());
//
// try {
// trunklineCarsLoadLogService.saveLog(carsLoadEntity, carsLoadLineEntity, CarsLoadLogTypeConstant.TRIPARTITE_TRANSFER_SIGN.getValue());
//
// List<String> orderPackageCodes = trunklineCarsLoadScanService.findSignListOrderPackageCodes(loadId);
//
// String content = "包件在" + warehouseEntity.getName() + "被三方中转整车签收";
// packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode(), content);
// // 推送签收数据给工厂
// sendFactorySignTriparite(warehouseId, orderPackageCodes, warehouseEntity);
// } catch (Exception e) {
// log.warn("###########存入日志失败");
// }
// return R.success("签收成功");
}
@Override
@ -3647,6 +3723,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("##########addZeroSupple: 配载计划信息不存在 loadId={}", loadId);
return R.fail(405, "配载计划信息不存在");
}
String carsNo = carsLoadEntity.getCarsNo();
String carNumber = carsLoadEntity.getCarNumber();
String driverName = carsLoadEntity.getDriverName();
String driverMobile = carsLoadEntity.getDriverMobile();
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if (Objects.isNull(carsLoadLineEntity)) {
@ -3654,6 +3734,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405, "配载计划节点信息不存在");
}
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if(Objects.isNull(warehouseEntity)){
log.warn("##########addZeroSupple: 仓库信息不存在 warehouseId={}", warehouseId);
return R.fail(405, "仓库信息不存在");
}
String warehouseName = warehouseEntity.getName();
for (ZeroSuppleVO zeroSuppleVO : zeroSuppleList) {
String waybillNo = zeroSuppleVO.getWaybillNo();
String orderCode = zeroSuppleVO.getOrderCode();
@ -3666,6 +3754,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("##########addZeroSupple: 运单信息不存在 loadId={} waybillNo={}", loadId, waybillNo);
return R.fail(405, "运单信息不存在");
}
Long waybillId = warehouseWaybillEntity.getId();
DistributionStockArticleEntity zeroStockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if (Objects.isNull(zeroStockArticleEntity)) {
@ -3707,6 +3796,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
distributionStockArticleClient.saveOrUpdate(zeroStockArticleEntity);
waybillPackageService.updateWaybillStatus(warehouseWaybillEntity);
String operationRemark = "运单 补录装车"+enterNum+"件 干线批次号:"+carsNo+",车牌号:"+carNumber+",司机姓名:"+driverName+",司机手机:"+driverMobile;
openOrderAsyncService.saveLog(waybillId,waybillNo,"30",warehouseName+" 干线补录装车",operationRemark,AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName);
if(!Objects.isNull(signOrderId)){
updateSignOrderNumBySignOrderId(signOrderId);
// TrunklineLoadSignOrderEntity signOrderEntity = trunklineLoadSignOrderService.getById(signOrderId);
@ -5202,6 +5296,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("##############signScanPackageCode: 仓库信息不存在 warehouseId={}", warehouseId);
return R.fail(405, "仓库信息不存在");
}
String warehouseName = warehouseEntity.getName();
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
if (Objects.isNull(carsLoadEntity)) {
@ -5211,6 +5306,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String carsNo = carsLoadEntity.getCarsNo();
Long waybillId = null;
Date date = new Date();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.findEntityByLoadIdAndOrderPackageCode(loadId, orderPackageCode);
if (Objects.isNull(carsLoadScanEntity)) {
@ -5230,6 +5327,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
inComingService.incomingPackage(inComingDTO);
String orderCode = trunklineAdvanceDetail.getOrderCode();
String waybillNo = trunklineAdvanceDetail.getWaybillNo();
waybillId = trunklineAdvanceDetail.getWaybillId();
DistributionParcelListEntity distributionParcelList = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId);
if(!Objects.isNull(distributionParcelList)){
@ -5248,6 +5347,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setLoadCode(carsNo);
carsLoadScanEntity.setWarehouseId(warehouseId);
carsLoadScanEntity.setWarehouseName(warehouseEntity.getName());
carsLoadScanEntity.setOrderCode(orderCode);
carsLoadScanEntity.setWaybillId(waybillId);
carsLoadScanEntity.setWaybillNo(waybillNo);
carsLoadScanEntity.setScanCode(orderPackageCode);
carsLoadScanEntity.setScanStatus("3");
carsLoadScanEntity.setNum(1);
@ -5294,7 +5396,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long wid = parcelListEntity.getWarehouseId();
String wName = parcelListEntity.getWarehouse();
String waybillNumber = parcelListEntity.getWaybillNumber();
Long waybillId = parcelListEntity.getWaybillId();
waybillId = parcelListEntity.getWaybillId();
String orderCode = parcelListEntity.getOrderCode();
Long stockArticleId = parcelListEntity.getStockArticleId();
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findEntityByStockArticleId(stockArticleId);
@ -5399,6 +5501,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setSignAbnormal(0);
}
waybillId = carsLoadScanEntity.getWaybillId();
// Long wid = carsLoadScanEntity.getWarehouseId();
// if (!wid.equals(warehouseId)) {
// log.warn("##############signScanPackageCode: 包件不在签收计划中 loadId={},orderPackageCode={} scanStatus={}", loadId, orderPackageCode, scanStatus);
@ -5426,6 +5530,26 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<String> orderPackageCodes = new ArrayList<>();
try {
// if(!Objects.isNull(waybillId)){
// WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
// waybillPackageService.updateWaybillStatus(waybillEntity);
// WaybillLogDTO waybillLogDTO = new WaybillLogDTO();
// waybillLogDTO.setWarehouseId(warehouseId);
// waybillLogDTO.setWarehouseName(warehouseName);
// waybillLogDTO.setWaybillNo(waybillEntity.getWaybillNo());
// waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo());
// waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber());
// waybillLogDTO.setSignUser(AuthUtil.getNickName());
// waybillLogDTO.setSignTime(date);
// waybillLogDTO.setDriverName(carsLoadEntity.getDriverName());
// waybillLogDTO.setNum(unloadNum);
// waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo());
// waybillLogDTO.setType(1);
// waybillLogDTO.setUserId(AuthUtil.getUserId());
// waybillLogDTO.setNickName(AuthUtil.getNickName());
// waybillTrackService.addSignWaybillLog(waybillLogDTO);
// }
orderPackageCodes.add(orderPackageCode);
String content = "包件在 " + warehouseEntity.getName() + "直发商家签收";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_DIRECT_SHIPPER.getCode(), content);
@ -5474,8 +5598,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
signOrderEntity.setSignStatus("20");
signOrderEntity.setSignTime(new Date());
} else {
signOrderEntity.setSignStatus("10");
signOrderEntity.setSignTime(new Date());
if(signNum == 0){
signOrderEntity.setSignStatus("0");
}else{
signOrderEntity.setSignStatus("10");
signOrderEntity.setSignTime(new Date());
}
}
trunklineLoadSignOrderService.updateById(signOrderEntity);
@ -5528,6 +5656,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405, "签收数量不能大于当前数据的装车数量");
}
carsLoadScanEntity.setScanStatus("3");
carsLoadScanEntity.setUnloadNum(enterNum);
carsLoadScanEntity.setUnloadAbnormal(0);
@ -5550,6 +5680,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//重新计算签收单的数量
updateSignOrderNumBySignOrderId(signOrderId);
Long waybillId = carsLoadScanEntity.getWaybillId();
if(!Objects.isNull(waybillId)){
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
waybillPackageService.updateWaybillStatus(waybillEntity);
}
// return Resp.scanSuccess("签收成功",enterNum+"件");
return R.success("签收成功");
@ -6028,6 +6164,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer realLoadingNumber = carsLoadEntity.getRealLoadingNumber();
String deliveryType = carsLoadEntity.getDeliveryType();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if (Objects.isNull(warehouseEntity)) {
@ -6067,26 +6204,32 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Map<String, List<TrunklineCarsLoadScanEntity>> map = trunklineCarsLoadScanEntities.stream().filter(t -> Objects.nonNull(t.getWaybillNo())).collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getWaybillNo));
map.keySet().forEach(waybillNo -> {
List<TrunklineCarsLoadScanEntity> list = map.get(waybillNo);
//把list中所有元素的unloadNum求和,没有值就取0
Integer unloadNum = list.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
WaybillLogDTO waybillLogDTO = new WaybillLogDTO();
waybillLogDTO.setWarehouseId(warehouseId);
waybillLogDTO.setWarehouseName(warehouseName);
waybillLogDTO.setWaybillNo(waybillNo);
waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo());
waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber());
waybillLogDTO.setSignUser(AuthUtil.getNickName());
waybillLogDTO.setSignTime(date);
waybillLogDTO.setDriverName(carsLoadEntity.getDriverName());
waybillLogDTO.setNum(unloadNum);
waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo());
waybillLogDTO.setType(1);
waybillLogDTO.setUserId(AuthUtil.getUserId());
waybillLogDTO.setNickName(AuthUtil.getNickName());
waybillTrackService.addSignWaybillLog(waybillLogDTO);
});
Integer signNum = 0;
if("1".equals(deliveryType)){
signNum = list.stream().mapToInt(t -> Objects.nonNull(t.getNum()) ? t.getNum() : 0).sum();
}else if("2".equals(deliveryType)){
signNum = list.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
}
if(signNum > 0){
WaybillLogDTO waybillLogDTO = new WaybillLogDTO();
waybillLogDTO.setWarehouseId(warehouseId);
waybillLogDTO.setWarehouseName(warehouseName);
waybillLogDTO.setWaybillNo(waybillNo);
waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo());
waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber());
waybillLogDTO.setSignUser(AuthUtil.getNickName());
waybillLogDTO.setSignTime(date);
waybillLogDTO.setDriverName(carsLoadEntity.getDriverName());
waybillLogDTO.setNum(signNum);
waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo());
waybillLogDTO.setType(1);
waybillLogDTO.setUserId(AuthUtil.getUserId());
waybillLogDTO.setNickName(AuthUtil.getNickName());
waybillTrackService.addSignWaybillLog(waybillLogDTO);
}
});
} catch (Exception e) {
log.warn("###########存入日志失败");
@ -6395,7 +6538,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<WaybillLogDTO> waybillLogDTOList = new ArrayList<>();
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("load_id",warehouseId)
queryWrapper1.eq("load_id",loadId)
.eq("sign_order_id",signOrderId)
.eq("scan_status","3");
List<TrunklineCarsLoadScanEntity> signCarsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper1);

18
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java

@ -100,6 +100,9 @@ public class TrunklineWaybillTrackServiceImpl extends BaseServiceImpl<TrunklineW
case 3:
typeStr = "配送签收";
break;
case 4:
typeStr = "自提签收";
break;
default:
typeStr = "未知签收";
}
@ -114,7 +117,6 @@ public class TrunklineWaybillTrackServiceImpl extends BaseServiceImpl<TrunklineW
String operationRemark = warehouseName+" "+typeStr+num+"件,车次号:"+trainNumber+",司机:"+driverName+",车牌号:"+carNumber+",签收人"+ signUser+",签收单:"+signOrderCode+",签收时间"+ CommonUtil.dateToStringGeneral(signTime);
openOrderAsyncService.saveLog(waybillId,waybillNo,"100",warehouseName+" "+typeStr,operationRemark,nickName,userId,warehouseId,warehouseName);
if(type != 2){
warehouseWaybillEntity.setWaybillStatus("100");
//需要更新运单的状态
TrunklineWaybillOrderEntity waybillOrderEntity = waybillOrderService.findEntityByWaybillNoAndOrderCode(waybillNo, waybillNo);
@ -124,11 +126,20 @@ public class TrunklineWaybillTrackServiceImpl extends BaseServiceImpl<TrunklineW
Integer handleNumber = waybillOrderEntity.getHandleNumber();
int i = handleNumber + num;
if(waybillStatusInt < 90){
if(num == totalCount){
warehouseWaybillEntity.setWaybillStatus("100");
waybillOrderEntity.setHandleNumber(num);
}else{
warehouseWaybillEntity.setWaybillStatus("90");
waybillOrderEntity.setHandleNumber(num);
}
warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
waybillOrderService.updateById(waybillOrderEntity);
}else if(waybillStatusInt == 90){
if(i == totalCount){
warehouseWaybillEntity.setWaybillStatus("100");
waybillOrderEntity.setHandleNumber(i);
}else{
warehouseWaybillEntity.setWaybillStatus("90");
waybillOrderEntity.setHandleNumber(i);
}
warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
@ -168,6 +179,9 @@ public class TrunklineWaybillTrackServiceImpl extends BaseServiceImpl<TrunklineW
case 3:
typeStr = "配送签收";
break;
case 4:
typeStr = "自提签收";
break;
default:
typeStr = "未知签收";
}

Loading…
Cancel
Save