Browse Source

增加市配预约、配送计划日志

dist.1.3.0
汤建军 2 months ago
parent
commit
9ff80fc015
  1. 106
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionPlanLogEntity.java
  2. 46
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionPlanLogMapper.java
  3. 30
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionPlanLogMapper.xml
  4. 31
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionPlanLogService.java
  5. 113
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  6. 38
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionPlanLogServiceImpl.java
  7. 139
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

106
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionPlanLogEntity.java

@ -0,0 +1,106 @@
/*
* 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.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
* PAD备货扫描记录 实体类
*
* @author cyz
* @since 2023-06-26
*/
@Data
@TableName("logpm_distribution_plan_log")
@ApiModel(value = "DistributionPlanLogEntity对象", description = "计划日志")
@EqualsAndHashCode(callSuper = true)
public class DistributionPlanLogEntity extends TenantEntity {
/**
* 预留1
*/
@ApiModelProperty(value = "预留1")
private String reserve1;
/**
* 预留2
*/
@ApiModelProperty(value = "预留2")
private String reserve2;
/**
* 预留3
*/
@ApiModelProperty(value = "预留3")
private String reserve3;
/**
* 预留4
*/
@ApiModelProperty(value = "预留4")
private String reserve4;
/**
* 预留5
*/
@ApiModelProperty(value = "预留5")
private String reserve5;
/**
* 关联ID
*/
@ApiModelProperty(value = "关联ID")
private Long refId;
/**
* 关联任务Code
*/
@ApiModelProperty(value = "关联任务Code")
private String refCode;
/**
* 仓库ID
*/
@ApiModelProperty(value = "仓库ID")
private Long warehouseId;
/**
* 仓库名称
*/
@ApiModelProperty(value = "仓库名称")
private String warehouseName;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String content;
/**
* 操作人
*/
@ApiModelProperty(value = "操作人")
private String operator;
/**
* 货位
*/
@ApiModelProperty(value = "类型 1-预约计划,2-自提计划,3-配送计划,4-备货计划")
private Integer type;
}

46
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionPlanLogMapper.java

@ -0,0 +1,46 @@
/*
* 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.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.dto.DistributionLoadingNumDTO;
import com.logpm.distribution.dto.DistributionParcelNumberDTO;
import com.logpm.distribution.dto.DistributionReservationDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.vo.*;
import com.logpm.oldproject.dto.SignPushDataContactDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 预约列表 Mapper 接口
*
* @author TJJ
* @since 2023-06-12
*/
@Mapper
public interface DistributionPlanLogMapper extends BaseMapper<DistributionPlanLogEntity> {
}

30
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionPlanLogMapper.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.distribution.mapper.DistributionPlanLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="reservationResultMap" type="com.logpm.distribution.entity.DistributionPlanLogEntity">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="create_dept" property="createDept"/>
<result column="reserve1" property="reserve1"/>
<result column="reserve2" property="reserve2"/>
<result column="reserve3" property="reserve3"/>
<result column="reserve4" property="reserve4"/>
<result column="reserve5" property="reserve5"/>
<result column="ref_id" property="refId"/>
<result column="ref_code" property="refCode"/>
<result column="warehouse_id" property="warehouseId"/>
<result column="warehouse_name" property="warehouseName"/>
<result column="content" property="content"/>
<result column="operator" property="operator"/>
<result column="type" property="type"/>
</resultMap>
</mapper>

31
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionPlanLogService.java

@ -0,0 +1,31 @@
/*
* 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.service;
import com.logpm.distribution.entity.DistributionPlanLogEntity;
import org.springblade.core.mp.base.BaseService;
/**
* 配送计划日志服务类
*
* @author cyz
* @since 2023-07-25
*/
public interface IDistributionPlanLogService extends BaseService<DistributionPlanLogEntity> {
}

113
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -264,6 +264,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
@Autowired
private IDistributionBillLadingScanService distributionBillLadingScanService;
@Autowired
private IDistributionPlanLogService distributionPlanLogService;
// private final IWarehouseRetentionScanClient warehouseRetentionScanClient;
// @Lazy
@ -3814,9 +3817,66 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
deliveryListEntity.setCustomersNumber(clientTotal.get());
//对配送进行更改
this.updateById(deliveryListEntity);
//进行日志记录
handleUpdateDistributionLog(deliveryListEntity,user,reservationDTOS,distributionReservationEntities,myCurrentWarehouse);
return R.status(true);
}
private void handleUpdateDistributionLog(DistributionDeliveryListEntity deliveryListEntity, BladeUser user, List<DistributionReservationEntity> oldList, List<DistributionReservationEntity> newList, BasicdataWarehouseEntity myCurrentWarehouse) {
List<DistributionReservationEntity> addNewList = newList.stream().filter(f -> !oldList.stream().map(DistributionReservationEntity::getId).collect(Collectors.toList()).contains(f.getId())).collect(Collectors.toList());
List<DistributionPlanLogEntity> reservationLogList= new ArrayList<>();
if (!addNewList.isEmpty()) {
//存在新增
for (DistributionReservationEntity reservationEntity : addNewList) {
String reservationContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"进行预约计划新增转配送;预约计划:"+reservationEntity.getReservationCode()
+"车次号:"+deliveryListEntity.getTrainNumber();
DistributionPlanLogEntity reservationPlanLogEntity = new DistributionPlanLogEntity();
reservationPlanLogEntity.setContent(reservationContent);
reservationPlanLogEntity.setRefId(reservationEntity.getId());
reservationPlanLogEntity.setRefCode(reservationEntity.getReservationCode());
reservationPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
reservationPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
reservationPlanLogEntity.setOperator(user.getNickName());
reservationPlanLogEntity.setType(1);
reservationLogList.add(reservationPlanLogEntity);
}
}
List<DistributionReservationEntity> deletedList = oldList.stream().filter(f -> !newList.stream().map(DistributionReservationEntity::getId).collect(Collectors.toList()).contains(f.getId())).collect(Collectors.toList());
if (!deletedList.isEmpty()) {
//存在取消
for (DistributionReservationEntity reservationEntity : addNewList) {
String reservationContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"进行预约计划取消转配送;预约计划:"+reservationEntity.getReservationCode()
+"车次号:"+deliveryListEntity.getTrainNumber();
DistributionPlanLogEntity reservationPlanLogEntity = new DistributionPlanLogEntity();
reservationPlanLogEntity.setContent(reservationContent);
reservationPlanLogEntity.setRefId(reservationEntity.getId());
reservationPlanLogEntity.setRefCode(reservationEntity.getReservationCode());
reservationPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
reservationPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
reservationPlanLogEntity.setOperator(user.getNickName());
reservationPlanLogEntity.setType(1);
reservationLogList.add(reservationPlanLogEntity);
}
}
if (!reservationLogList.isEmpty()){
distributionPlanLogService.saveBatch(reservationLogList);
String distributionContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"修改市配配送计划;车次号:"+deliveryListEntity.getTrainNumber()
+"预约编号:["+oldList.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","))+"]变更为-->["+newList.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","))+"]";
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(distributionContent);
distributionPlanLogEntity.setRefId(deliveryListEntity.getId());
distributionPlanLogEntity.setRefCode(deliveryListEntity.getTrainNumber());
distributionPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(3);
distributionPlanLogService.save(distributionPlanLogEntity);
}
}
@Override
public IPage<DistributionParcelListVO> getPackageListByDeliverylistId(IPage<DistributionParcelListEntity> page, Map<String, Object> distributionDeliveryInfoDTO) throws ParseException {
if (Func.isEmpty(distributionDeliveryInfoDTO.get("deliveryId"))) {
@ -4307,7 +4367,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
.set(DistributionDeliverySelfEntity::getDepartureTime, format)
);
} else {
b = distributionDeliveryTripartiteService.update(new UpdateWrapper<DistributionDeliveryTripartiteEntity>().lambda().eq(DistributionDeliveryTripartiteEntity::getId, loadingId).set(DistributionDeliveryTripartiteEntity::getDepartureTime, format));
b = distributionDeliveryTripartiteService.update(new UpdateWrapper<DistributionDeliveryTripartiteEntity>().lambda()
.eq(DistributionDeliveryTripartiteEntity::getId, loadingId)
.set(DistributionDeliveryTripartiteEntity::getDepartureTime, format));
}
//修改主表状态
@ -4324,7 +4386,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (planCount.get() != 0) {
builder.append("计划" + planCount.get() + "件");
}
//TODO 提示装车件数
Integer loadingCount = new Integer(0);
//查询配送任务的计划订单装车数
Integer packageLoadingNum = distributionLoadscanMapper.statisticsLoadingNum(distrilbutionloadingscanDTO.getDeliveryId());
@ -4343,7 +4404,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
if (loadingCount != 0) {
builder.append("装车" + loadingCount + "件");
}
//统计该配送任务的库存品装车数
Integer abnormalPackageLoadingNum = distributionLoadscanMapper.statisticsAbnormalLoadingNum(distrilbutionloadingscanDTO.getDeliveryId());
@ -4376,18 +4436,22 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
@Override
public R<?> cancelMarketDeliveryListTask(Map<String, Object> distributionDeliveryListDTO) {
//1、查询配送计划下的预约、订单、包件信息
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Objects.isNull(myCurrentWarehouse)){
return R.fail(403,"未授权!!!");
}
String deliveryListId = (String) distributionDeliveryListDTO.get("deliveryListId");
DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListId);
List<DistributionSignforEntity> distributionSignforEntities = distributionSignforServicer.getBaseMapper().selectList(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, deliveryListEntity.getId()));
BladeUser user = AuthUtil.getUser();
List<DistributionReservationEntity> reservationList = new ArrayList<>();
distributionSignforEntities.forEach(s -> {
//2、将预约计划进行确认状态的回滚
// DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(s.getReservationId());
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectOne(Wrappers.<DistributionReservationEntity>query().lambda()
.eq(DistributionReservationEntity::getId, s.getReservationId())
.ne(DistributionReservationEntity::getReservationStatus, ReservationStatusConstant.yiquexiao.getValue())
);
reservationList.add(reservationEntity);
reservationEntity.setReservationStatus(ReservationStatusConstant.yiqueren.getValue());
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
distributionReservationMapper.updateById(reservationEntity);
@ -4426,9 +4490,46 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//2、将这些状态修改为取消状态
baseMapper.deleteDeliveryListById(deliveryListId);
//3、处理配送表和配送计划
//进行取消操作日志记录
handleCancelDistributionLog(deliveryListEntity,user,reservationList,myCurrentWarehouse);
return R.status(true);
}
private void handleCancelDistributionLog(DistributionDeliveryListEntity deliveryListEntity, BladeUser user, List<DistributionReservationEntity> reservationList, BasicdataWarehouseEntity myCurrentWarehouse) {
List<DistributionPlanLogEntity> reservationLogList = new ArrayList<>();
//进行预约计划日志
for (DistributionReservationEntity reservationEntity : reservationList) {
String reservationContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"进行预约计划取消转配送;预约计划:"+reservationEntity.getReservationCode()
+"车次号:"+deliveryListEntity.getTrainNumber();
DistributionPlanLogEntity reservationPlanLogEntity = new DistributionPlanLogEntity();
reservationPlanLogEntity.setContent(reservationContent);
reservationPlanLogEntity.setRefId(reservationEntity.getId());
reservationPlanLogEntity.setRefCode(reservationEntity.getReservationCode());
reservationPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
reservationPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
reservationPlanLogEntity.setOperator(user.getNickName());
reservationPlanLogEntity.setType(1);
reservationLogList.add(reservationPlanLogEntity);
}
if (!reservationLogList.isEmpty()) {
distributionPlanLogService.saveBatch(reservationLogList);
}
String distributionContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"取消市配配送计划;车次号:"+deliveryListEntity.getTrainNumber()
+"预约编号:["+reservationList.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","))+"]";
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(distributionContent);
distributionPlanLogEntity.setRefId(deliveryListEntity.getId());
distributionPlanLogEntity.setRefCode(deliveryListEntity.getTrainNumber());
distributionPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(3);
distributionPlanLogService.save(distributionPlanLogEntity);
}
@Override
public List<DistributionReservationStocklistVO> selectDistributionDeliveryinventory(IPage<Object> page, Map<String, Object> distributionInventoryDTO) {
if (Func.isEmpty(distributionInventoryDTO.get("deliveryId"))) {

38
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionPlanLogServiceImpl.java

@ -0,0 +1,38 @@
/*
* 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.service.impl;
import com.logpm.distribution.entity.DistributionPlanLogEntity;
import com.logpm.distribution.mapper.DistributionPlanLogMapper;
import com.logpm.distribution.service.IDistributionPlanLogService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* 通知提货记录 服务实现类
*
* @author cyz
* @since 2023-06-14
*/
@Service
@AllArgsConstructor
public class DistributionPlanLogServiceImpl extends BaseServiceImpl<DistributionPlanLogMapper, DistributionPlanLogEntity> implements IDistributionPlanLogService {
}

139
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -38,23 +38,7 @@ import com.logpm.distribution.dto.DistributionReservationPackageDTO;
import com.logpm.distribution.dto.DistributionStockArticleDTO;
import com.logpm.distribution.dto.DistributionStockListDTO;
import com.logpm.distribution.dto.DistributionStockupDTO;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionDeliverySelfEntity;
import com.logpm.distribution.entity.DistributionDeliveryTripartiteEntity;
import com.logpm.distribution.entity.DistributionLoadscanEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionReservationPackageEntity;
import com.logpm.distribution.entity.DistributionReservationStockarticleEntity;
import com.logpm.distribution.entity.DistributionReservationStocklistEntity;
import com.logpm.distribution.entity.DistributionReservationZeroPackageEntity;
import com.logpm.distribution.entity.DistributionSignforEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.entity.DistributionStockupEntity;
import com.logpm.distribution.entity.DistributionStockupInfoEntity;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistributionReservationExcel;
import com.logpm.distribution.mapper.DisStockListDetailMapper;
import com.logpm.distribution.mapper.DistributionLoadscanMapper;
@ -69,24 +53,7 @@ import com.logpm.distribution.mapper.DistributionStockListMapper;
import com.logpm.distribution.mapper.DistributionStockMapper;
import com.logpm.distribution.mapper.DistributionStockupInfoMapper;
import com.logpm.distribution.mapper.DistributionStockupMapper;
import com.logpm.distribution.service.IDisStockListDetailService;
import com.logpm.distribution.service.IDistributionAsyncService;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionDeliverySelfService;
import com.logpm.distribution.service.IDistributionDeliveryTripartiteService;
import com.logpm.distribution.service.IDistributionLoadscaninvnService;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import com.logpm.distribution.service.IDistributionReservationPackageService;
import com.logpm.distribution.service.IDistributionReservationService;
import com.logpm.distribution.service.IDistributionReservationStockarticleService;
import com.logpm.distribution.service.IDistributionReservationStocklistService;
import com.logpm.distribution.service.IDistributionReservationZeroPackageService;
import com.logpm.distribution.service.IDistributionSignforService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.service.IDistributionStockListService;
import com.logpm.distribution.service.IDistributionStockupInfoService;
import com.logpm.distribution.service.IDistributionStockupService;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import com.logpm.distribution.vo.DistributionReservationOrderPackageVO;
@ -301,6 +268,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private IWarehouseGoodsAllocationClient warehouseGoodsAllocationClient;
@Autowired
private IDistributionPlanLogService distributionPlanLogService;
// @Autowired
// private IWarehouseWaybillClient warehouseWaybillClient;
@ -1285,6 +1256,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
String collect = reservationEntityList.stream().filter(r -> ReservationStatusConstant.daipeisong.getValue().equals(r.getReservationStatus())).map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","));
return R.fail(collect + "已进行配送 请移除");
}
//判断是否存在有取消的预约计划
boolean cancelMatch = reservationEntityList.stream().anyMatch(r -> ReservationStatusConstant.yiquexiao.getValue().equals(r.getReservationStatus()));
if (cancelMatch) {
String collect = reservationEntityList.stream().filter(r -> ReservationStatusConstant.yiquexiao.getValue().equals(r.getReservationStatus())).map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","));
return R.fail(collect + "已进行配送 请移除");
}
boolean flag = reservationEntityList.stream().anyMatch(s -> s.getStockupStatus().equals(ReservationStockupStatusConstant.weibeihuo.getValue()));
DistributionStockupEntity stockupEntity = null;
if (flag) {
@ -1479,9 +1456,45 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionAsyncService.recordsReservationDeliveryLog(reservationEntityList, myCurrentWarehouse, user, distributionDeliveryListEntity, WorkNodeEnums.PLAN_DISTRIBUTION.getCode(), content);
//处理广播数据
handleBroadcast(distributionDeliveryListEntity,AuthUtil.getUser().getNickName(),new Date());
//日志记录
handleCreatedDistributionLog(distributionDeliveryListEntity,myCurrentWarehouse,user,reservationEntityList);
return R.status(true);
}
private void handleCreatedDistributionLog(DistributionDeliveryListEntity distributionDeliveryListEntity, BasicdataWarehouseEntity myCurrentWarehouse, BladeUser user, List<DistributionReservationEntity> reservationEntityList) {
List<DistributionPlanLogEntity> reservationLogList = new ArrayList<>();
//进行预约计划日志
for (DistributionReservationEntity reservationEntity : reservationEntityList) {
String reservationContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"进行预约计划转配送;预约计划:"+reservationEntity.getReservationCode()
+"车次号:"+distributionDeliveryListEntity.getTrainNumber();
DistributionPlanLogEntity reservationPlanLogEntity = new DistributionPlanLogEntity();
reservationPlanLogEntity.setContent(reservationContent);
reservationPlanLogEntity.setRefId(reservationEntity.getId());
reservationPlanLogEntity.setRefCode(reservationEntity.getReservationCode());
reservationPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
reservationPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
reservationPlanLogEntity.setOperator(user.getNickName());
reservationPlanLogEntity.setType(1);
reservationLogList.add(reservationPlanLogEntity);
}
if (!reservationLogList.isEmpty()) {
distributionPlanLogService.saveBatch(reservationLogList);
}
String distributionContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"创建市配配送计划;车次号:"+distributionDeliveryListEntity.getTrainNumber()
+"预约编号:["+reservationEntityList.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","))+"],总件数:"+distributionDeliveryListEntity.getDeliveryNumber();
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(distributionContent);
distributionPlanLogEntity.setRefId(distributionDeliveryListEntity.getId());
distributionPlanLogEntity.setRefCode(distributionDeliveryListEntity.getTrainNumber());
distributionPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(3);
distributionPlanLogService.save(distributionPlanLogEntity);
}
/**
* 处理广播数据
* @param distributionDeliveryListEntity
@ -1579,6 +1592,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//推翻原有的
Long id = distributionReservationDTO.getId();
DistributionReservationEntity reservationEntity = this.getById(id);
DistributionReservationEntity oldReservation = BeanUtil.copy(reservationEntity, DistributionReservationEntity.class);
//这里需要查询出这个预约原来的订单、包件信息
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationStockarticleService.getBaseMapper().selectList(Wrappers.<DistributionReservationStockarticleEntity>query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, id).ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()));
Map<Long, List<DistributionReservationStockarticleEntity>> oldStockArticle = distributionReservationStockarticleEntities.stream().collect(Collectors.groupingBy(DistributionReservationStockarticleEntity::getStockArticleId));
@ -2129,9 +2143,41 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setIsUrgent(distributionReservationDTO.getIsUrgent());
reservationEntity.setIsInstall(distributionReservationDTO.getIsInstall());
this.updateById(reservationEntity);
compareReservation(reservationEntity,oldReservation,AuthUtil.getUser(),myCurrentWarehouse);
return R.status(true);
}
/**
* 比对预约计划
* @param reservationEntity
* @param oldReservation
* @param user
* @param myCurrentWarehouse
*/
private void compareReservation(DistributionReservationEntity reservationEntity, DistributionReservationEntity oldReservation, BladeUser user, BasicdataWarehouseEntity myCurrentWarehouse) {
Integer newPlanNum = reservationEntity.getReservationNum() + reservationEntity.getReservationStockListNum();
Integer oldPlanNum = oldReservation.getReservationNum() + oldReservation.getReservationStockListNum();
String planContent = user.getNickName()+"在"+myCurrentWarehouse.getName()
+"修改预约计划;预约计划编号:"+reservationEntity.getReservationCode()
+";收货单位:"+(reservationEntity.getReceivingUnit().equals(oldReservation.getReceivingUnit())?reservationEntity.getReceivingUnit():"由"+oldReservation.getReceivingUnit()+"变更为-->"+reservationEntity.getReceivingUnit())
+",收货人:"+(reservationEntity.getConsignee().equals(oldReservation.getConsignee())?reservationEntity.getConsignee():"由"+oldReservation.getConsignee()+"变更为-->"+reservationEntity.getConsignee())
+",联系电话:"+(reservationEntity.getDeliveryPhone().equals(oldReservation.getDeliveryPhone())?reservationEntity.getDeliveryPhone():"由"+oldReservation.getDeliveryPhone()+"变更为-->"+reservationEntity.getDeliveryPhone())
+",收货地址:"+(reservationEntity.getDeliveryAddress().equals(oldReservation.getDeliveryAddress())?reservationEntity.getDeliveryAddress():"由"+oldReservation.getDeliveryAddress()+"变更为-->"+reservationEntity.getDeliveryAddress())
+",计划件数:"+(newPlanNum.equals(oldPlanNum)?newPlanNum:"由"+oldPlanNum+"变更为-->"+newPlanNum);
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(reservationEntity.getId());
distributionPlanLogEntity.setRefCode(reservationEntity.getReservationCode());
distributionPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(1);
distributionPlanLogService.save(distributionPlanLogEntity);
}
@Override
@Transactional
public R deliveryBusinessTask(DistributionDeliveryAllocationDTO allocationDTO) {
@ -3390,9 +3436,32 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
reservationEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionReservationMapper.updateById(reservationEntity);
//进行日志的添加
BladeUser user = AuthUtil.getUser();
handleCreatedReservationPlanLog(reservationEntity,user,myCurrentWarehouse);
return R.status(true);
}
private void handleCreatedReservationPlanLog(DistributionReservationEntity reservationEntity, BladeUser user,BasicdataWarehouseEntity warehouse) {
String planContent = user.getNickName()+"在"+warehouse.getName()
+"创建预约计划;预约计划编号:"+reservationEntity.getReservationCode()
+";收货单位:"+reservationEntity.getReceivingUnit()
+",收货人:"+reservationEntity.getConsignee()
+",联系电话:"+reservationEntity.getDeliveryPhone()
+",收货地址:"+reservationEntity.getDeliveryAddress()
+",计划件数:"+(reservationEntity.getReservationNum()+reservationEntity.getReservationStockListNum())
+",配送类型:"+(reservationEntity.getDeliveryWay().equals(DistributionTypeConstant.shangpei.getValue())?"商配":"市配");
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(reservationEntity.getId());
distributionPlanLogEntity.setRefCode(reservationEntity.getReservationCode());
distributionPlanLogEntity.setWarehouseId(warehouse.getId());
distributionPlanLogEntity.setWarehouseName(warehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(1);
distributionPlanLogService.save(distributionPlanLogEntity);
}
/**
* 自提查询库存数量
*

Loading…
Cancel
Save