Browse Source

签收配送状态维护

training
kilo 2 years ago
parent
commit
dcccda6bac
  1. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.java
  2. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.xml
  3. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  4. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  5. 105
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  6. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  7. 114
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  8. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.java

@ -53,8 +53,14 @@ public interface DisStockListDetailMapper extends BaseMapper<DisStockListDetailE
List<DisStockListDetailExcel> exportDisStockListDetail(@Param("ew") Wrapper<DisStockListDetailEntity> queryWrapper);
/**
* 删除该客户下的库存品包件信息
* 删除该客户下指定库存品类的库存品包件信息
* @param id
*/
void deleteByReservationStockListId(@Param("reservationStockListId") Long id);
void deleteInventoryByStockListId(@Param("reservationStockListId") Long id);
/**
* 删除客户下的库存品包件信息
* @param id
*/
void deleteInventoryByReservationId(@Param("reservationId")Long id);
}

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.xml

@ -29,8 +29,13 @@
<result column="reserve4" property="reserve4"/>
<result column="reserve5" property="reserve5"/>
</resultMap>
<delete id="deleteByReservationStockListId">
DELETE FROM logpm_dis_stock_list_teail WHERE reservation_stock_list_id = #{reservationStockListId}
<delete id="deleteInventoryByStockListId">
DELETE FROM logpm_dis_stock_list_detail WHERE reservation_stock_list_id = #{reservationStockListId}
</delete>
<delete id="deleteInventoryByReservationId">
DELETE FROM logpm_dis_stock_list_detail WHERE reservation_id = #{reservationId}
</delete>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -47,7 +47,7 @@
WHERE ldl.package_id = #{id} and lddl.loading_time is null
</update>
<update id="updateloadingTimeById">
UPDATE logpm_distribution_delivery_list lddl SET lddl.loading_time = now(),lddl.delivery_status =2 WHERE lddl.id = #{id} and lddl.loading_time is null
UPDATE logpm_distribution_delivery_list lddl SET lddl.loading_time = now(),lddl.delivery_status = 1 WHERE lddl.id = #{id} and lddl.loading_time is null
</update>
<delete id="deleteDeliveryListById">

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java

@ -180,4 +180,20 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
* @return
*/
List<DistributionAddvaluePackageEntity> selectAppPackageListByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询出客户下的库存品订单维度信息
* @param id
* @return
*/
List<DistributionReservationStocklistEntity> selectStockListByReservationId(@Param("reservationId")Long id);
List<DistributionReservationPackageEntity> selectReservationPackageByReservationId(@Param("reservationId")Long id);
/**
* 查询预约计划的备货任务
* @param id
* @return
*/
DistributionStockupEntity selectStockup(@Param("reservationId")Long id);
}

105
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -758,5 +758,110 @@
WHERE
ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId}
</select>
<select id="selectStockListByReservationId"
resultType="com.logpm.distribution.entity.DistributionReservationStocklistEntity">
SELECT
id,
tenant_id,
create_user,
create_time,
update_user,
update_time,
status,
is_deleted,
create_dept,
reservation_id,
stocklist_id,
reservation_num,
reserve1,
reserve2,
reserve3,
reserve4,
reserve5,
stock_article_code,
is_have_data,
unit,
is_unpack_product,
stock_list_status,
reality_num,
loading_status,
signing_status
FROM
logpm_distribution_reservation_stocklist
WHERE
stock_list_status IN ( '1', '3' )
AND reservation_id = #{reservationId}
</select>
<select id="selectReservationPackageByReservationId"
resultType="com.logpm.distribution.entity.DistributionReservationPackageEntity">
SELECT
id,
tenant_id,
create_user,
create_time,
update_user,
update_time,
STATUS,
is_deleted,
create_dept,
reservation_id,
parce_list_id,
reserve1,
reserve2,
reserve3,
reserve4,
reserve5,
stock_article_id,
packet_bar_code,
packet_bar_status
FROM
logpm_distribution_reservation_package
WHERE
packet_bar_status IN ( '1', '3' )
AND reservation_id = #{reservationId}
</select>
<select id="selectStockup" resultType="com.logpm.distribution.entity.DistributionStockupEntity">
SELECT
lds.id,
lds.tenant_id,
lds.create_user,
lds.create_time,
lds.update_user,
lds.update_time,
lds.STATUS,
lds.is_deleted,
lds.create_dept,
lds.reserve1,
lds.reserve2,
lds.reserve3,
lds.reserve4,
lds.reserve5,
lds.stockup_date,
lds.stockup_user,
lds.stockup_status,
lds.stockup_area,
lds.assign_status,
lds.stockip_allocation,
lds.goods_area_id,
lds.forklift_id,
lds.loader_id,
lds.team_responsibility,
lds.fix_time,
lds.assign_time,
lds.type_service,
lds.stockup_user_id,
lds.warehouse_id,
lds.forklift_name,
lds.loader_name,
lds.stockup_code,
lds.remarks,
lds.annulment,
lds.outbound_date
FROM
logpm_distribution_stockup_info AS ldsi
INNER JOIN logpm_distribution_stockup AS lds ON ldsi.stockup_id = lds.id
WHERE
ldsi.reservation_id = #{reservationId}
</select>
</mapper>

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

@ -474,7 +474,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
// }
// }
}
distributionLoadscanService.saveBatch(distributionLoadscanEntities);
// //找出该包条码
// List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListMapper.selectList(new QueryWrapper<DistributionParcelListEntity>().lambda()

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

@ -37,12 +37,14 @@ import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
import com.logpm.distribution.wrapper.DistributionStockListWrapper;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.Inventory.*;
import org.springblade.common.constant.delivery.DeliveryStatusConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageFreezeStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant;
import org.springblade.common.constant.reservation.*;
import org.springblade.common.constant.signing.SignforStatusConstant;
@ -81,6 +83,7 @@ import java.util.stream.Collectors;
* @since 2023-06-12
*/
@Service
@Slf4j
public class DistributionReservationServiceImpl extends BaseServiceImpl<DistributionReservationMapper, DistributionReservationEntity> implements IDistributionReservationService {
@Autowired
@ -168,6 +171,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private DisStockListDetailMapper disStockListDetailMapper;
@Autowired
private DistributionStockupInfoMapper distributionStockupInfoMapper;
@ -1205,7 +1211,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
Integer newQuantityOccupied = distributionStockListEntity.getQuantityOccupied() - reservationNum;
distributionStockListEntity.setQuantityOccupied(newQuantityOccupied);
distributionStockListService.updateById(distributionStockListEntity);
disStockListDetailMapper.deleteByReservationStockListId(distributionReservationStocklistEntity.getId());
disStockListDetailMapper.deleteInventoryByStockListId(distributionReservationStocklistEntity.getId());
List<DisStockListDetailEntity> list = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, distributionReservationStocklistEntity.getReservationId()).eq(DisStockListDetailEntity::getStockListId, distributionReservationStocklistEntity.getStocklistId()));
list.forEach(l->l.setStockPackageStatus(InventoryPackageStatusConstant.quxiao.getValue()));
@ -1672,19 +1678,115 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Transactional
public boolean cancelReservation(DistributionReservationDTO reservationDTO) {
if (Func.isEmpty(reservationDTO)) {
log.error("参数异常allocationDTO+{" + reservationDTO + "}");
log.error("参数异常allocationDTO>>>{}", reservationDTO);
return false;
}
DistributionReservationEntity reservationEntity = this.getById(reservationDTO.getId());
if (Func.isEmpty(reservationEntity)) {
log.error("参数异常reservationEntity+{" + reservationEntity + "}");
log.error("参数异常reservationEntity:{}" , reservationEntity );
return false;
}
boolean result = false;
// ------------------------取消预约需要重新调整————————————————————————————————————————————————————
// 思路:查询该预约,此预约是否进行了备货操作,如果没有进行备货操作,这里则进行订单状态的还原
// 如果此预约进行了备货操作则需要对备货人任务进行判断,备货任务未执行标记备货任务取消 将包件状态进行恢复
// 备货任务开始,此时则只表示预约任务取消,不对订单等信息进行更新状态的操作
DistributionStockupEntity stockupEntity = distributionReservationMapper.selectStockup(reservationEntity.getId());
if (Func.isEmpty(stockupEntity) || stockupEntity.getAssignStatus().equals(StockAssignStatusConstant.weizhipai.getValue())){
if (Func.isNotEmpty(stockupEntity)){
List<DistributionStockupInfoEntity> stockupInfoEntityList = distributionStockupInfoService.list(Wrappers.<DistributionStockupInfoEntity>query().lambda().eq(DistributionStockupInfoEntity::getStockupId, stockupEntity.getId()));
boolean flag = stockupInfoEntityList.stream().allMatch(info -> Func.equals(info.getReservationId(), reservationEntity.getId()));
if (flag){
//删除中间表和备货表
DistributionStockupInfoEntity stockupInfoEntity = stockupInfoEntityList.get(0);
distributionStockupInfoMapper.deleteByReservationId(stockupInfoEntity.getReservationId());
distributionStockupMapper.deleteStockUpById(stockupInfoEntity.getStockupId());
}else {
//只删除中间表
distributionStockupInfoMapper.deleteByReservationId(reservationEntity.getId());
}
}
//这里取消还需要对订单、包件、库存品的数据进行维护
// -------------------------------------------维护订单——————————————————————————————————————————————————————————————————————————
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(reservationStockarticleEntityList)&&reservationStockarticleEntityList.size()>0){
List<DistributionStockArticleEntity> stockArticleList = distributionReservationMapper.getStockArticleList(reservationEntity.getId());
stockArticleList.forEach(s->{
s.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
distributionStockArticleService.updateById(s);
});
reservationStockarticleEntityList.forEach(rs->{
rs.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue());
distributionReservationStockarticleService.updateById(rs);
});
}
// ----------------------------------------维护包件————————————————————————————————————————————————————————————————————————————————————
List<DistributionReservationPackageEntity> reservationPackageEntityList = distributionReservationMapper.selectReservationPackageByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(reservationPackageEntityList) && reservationPackageEntityList.size() > 0){
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationEntity.getId());
parcelListEntities.forEach(p->{
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue());
distributionParcelListService.updateById(p);
});
reservationPackageEntityList.forEach(rp->{
rp.setPacketBarStatus(ReservationPackageStatusConstant.quxiao.getValue());
distributionReservationPackageService.updateById(rp);
});
}
// ——————————————————————————————————————————————————维护库存品———————————————————————————————————————————————————————————————————————————
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(distributionReservationStocklistEntities) && distributionReservationStocklistEntities.size() > 0){
//进行库存品库存数量的维护
distributionReservationStocklistEntities.forEach(i->{
DistributionStockListEntity stockListEntity = distributionStockListService.getById(i.getStocklistId());
stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - i.getReservationNum());
distributionStockListService.updateById(stockListEntity);
i.setStockListStatus(ReservationInventoryStatusConstant.quxiao.getValue());
distributionReservationStocklistService.updateById(i);
});
//执行物理删除
disStockListDetailMapper.deleteInventoryByReservationId(reservationEntity.getId());
}
}else {
//仅仅标注该客户的预约计划取消
// -------------------------------------------维护订单——————————————————————————————————————————————————————————————————————————
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(reservationStockarticleEntityList)&&reservationStockarticleEntityList.size()>0){
reservationStockarticleEntityList.forEach(rs->{
rs.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue());
distributionReservationStockarticleService.updateById(rs);
});
}
// ----------------------------------------维护包件————————————————————————————————————————————————————————————————————————————————————
List<DistributionReservationPackageEntity> reservationPackageEntityList = distributionReservationMapper.selectReservationPackageByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(reservationPackageEntityList) && reservationPackageEntityList.size() > 0){
reservationPackageEntityList.forEach(rp->{
rp.setPacketBarStatus(ReservationPackageStatusConstant.quxiao.getValue());
distributionReservationPackageService.updateById(rp);
});
}
// ——————————————————————————————————————————————————维护库存品———————————————————————————————————————————————————————————————————————————
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(distributionReservationStocklistEntities) && distributionReservationStocklistEntities.size() > 0){
//进行库存品库存数量的维护
distributionReservationStocklistEntities.forEach(i->{
DistributionStockListEntity stockListEntity = distributionStockListService.getById(i.getStocklistId());
stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - i.getReservationNum());
distributionStockListService.updateById(stockListEntity);
i.setStockListStatus(ReservationInventoryStatusConstant.quxiao.getValue());
distributionReservationStocklistService.updateById(i);
});
}
}
reservationEntity.setCancelReason(reservationDTO.getCancelReason());
reservationEntity.setReservationStatus(ReservationStatusConstant.yiquexiao.getValue());
result = this.updateById(reservationEntity);
return result;
this.updateById(reservationEntity);
return true;
}
@Override

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -1116,7 +1116,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getSigningStatus, 1)
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getDriverSigning, 2)
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getSigningTime, simpleDateFormat.format(new Date()))
.set(distributionSignfor.getIsClerk() && StringUtils.isNotBlank(distributionSignfor.getClerkSignRemarks()), DistributionSignforEntity::getSigningStatus, distributionSignfor.getClerkSignRemarks())
.set(distributionSignfor.getIsClerk() && StringUtils.isNotBlank(distributionSignfor.getClerkSignRemarks()), DistributionSignforEntity::getClerkSignRemarks, distributionSignfor.getClerkSignRemarks())
.set(!distributionSignfor.getIsClerk() && StringUtils.isNotBlank(distributionSignfor.getDriverRemarks()), DistributionSignforEntity::getDriverRemarks, distributionSignfor.getDriverRemarks())
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getDriverSigning, 2)
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getSjsigningTime, simpleDateFormat.format(new Date()))

Loading…
Cancel
Save