Browse Source

维护仓库预约单状态补丁

pull/2/head
汤建军 11 months ago
parent
commit
51a00a0921
  1. 10
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionReservationClient.java
  2. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java
  3. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java
  4. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml
  5. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java
  6. 122
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  7. 17
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java

10
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionReservationClient.java

@ -21,6 +21,7 @@ import com.logpm.distribution.vo.DistributionRetentionScanVo;
import org.apache.ibatis.annotations.Param;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -60,4 +61,13 @@ public interface IDistributionReservationClient {
*/
@GetMapping(TOP+"/getReservationList")
List<DistributionReservationEntity> getReservationList(@RequestParam("reservationIds") String reservationIds);
/**
* 维护仓库预约信息
* @param warehouseId
* @return
*/
@GetMapping(TOP+"/maintenanceReservationInfo")
R maintenanceReservationInfo(@RequestParam("warehouseId") String warehouseId);
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java

@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@ -59,5 +60,14 @@ public class DistributionReservationClient implements IDistributionReservationCl
return reservationService.getRetentionReservationList(reservationIds);
}
/**
* @param warehouseId
* @return
*/
@Override
public R maintenanceReservationInfo(String warehouseId) {
return reservationService.maintenanceReservationInfoByWarehouseId(warehouseId);
}
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java

@ -92,4 +92,11 @@ public interface DistributionStockMapper extends BaseMapper<DistributionStockEnt
* @return
*/
Integer selectStockNumByStockupId(@Param("stockUpId") Long stockUpId);
/**
* 查询备货扫描数量
* @param reservationId
* @return
*/
Integer selectStockNumByReservationId(@Param("reservationId")Long reservationId);
}

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml

@ -111,6 +111,9 @@
<select id="selectStockNumByStockupId" resultType="java.lang.Integer">
SELECT IF(sum(stock_quantity) is null,0,sum(stock_quantity)) FROM logpm_distribution_stock WHERE stockup_id =#{stockUpId} AND is_deleted = 0
</select>
<select id="selectStockNumByReservationId" resultType="java.lang.Integer">
SELECT IF(SUM(stock_quantity) is null,0,SUM(stock_quantity)) FROM logpm_distribution_stock AS lds WHERE reservation_id = #{reservationId}
</select>
</mapper>

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java

@ -275,4 +275,11 @@ public interface IDistributionReservationService extends BaseService<Distributio
* @return
*/
DistributionReservationEntity selectByReservationCode(String searchCode);
/**
* 维护仓库预约信息
* @param warehouseId
* @return
*/
R maintenanceReservationInfoByWarehouseId(String warehouseId);
}

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

@ -215,6 +215,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private DistributionLoadscanMapper distributionLoadscanMapper;
@Autowired
private DistributionStockMapper distributionStockMapper;
@ -3531,50 +3534,69 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
throw new RuntimeException("服务器正忙!!!");
}
DistributionReservationEntity reservationEntity = this.getById(reservationId);
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
boolean loadStatus = false;
boolean signStatus = false;
if (Func.isNotEmpty(distributionParcelListEntities)){
loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = distributionParcelListEntities.stream().allMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
}
if (Func.isNotEmpty(disStockListDetailEntities)){
loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
}
//已签收预约单不需要进行预约状态维护 预约单状态达到最终
if (!ReservationSigningStatusConstant.yiqianshou.getValue().equals(reservationEntity.getSigningStatus())){
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
boolean loadStatus = false;
boolean signStatus = false;
boolean stockUpStatus = false;
if (Func.isNotEmpty(distributionParcelListEntities)){
loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = distributionParcelListEntities.stream().allMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
stockUpStatus = distributionParcelListEntities.stream().allMatch(p->p.getOrderPackageStockupStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue()));
}
if (loadStatus){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
//判断是否都为完成装车
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId);
if (Func.isEmpty(loadingNum)){
if (loadingNum > 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}else {
if (Func.isNotEmpty(disStockListDetailEntities)){
loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
stockUpStatus = disStockListDetailEntities.stream().allMatch(p->p.getStockStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue()));
}
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
if (loadStatus){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
//判断是否都为完成装车
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId);
if (Func.isEmpty(loadingNum)){
if (loadingNum > 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
if (loadingNum ==0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}
}
}
}
if (signStatus){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
//判断是否都为完成签收
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId);
//判断当前客户是否签收完成了
if (signingNum > 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
if (signStatus){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
//判断是否都为完成签收
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId);
//判断当前客户是否签收完成了
if (signingNum > 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
}
if (signingNum == 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
}
}
if (stockUpStatus){
reservationEntity.setStockStatus(ReservationStockupStatusConstant.yibeihuo.getValue());
}else {
//判断是否都为完成签收
Integer stockNum = distributionStockMapper.selectStockNumByReservationId(reservationId);
//判断当前客户是否签收完成了
if (stockNum > 0){
reservationEntity.setStockStatus(ReservationStockupStatusConstant.daibeihuo.getValue());
}else {
reservationEntity.setStockStatus(ReservationStockupStatusConstant.weibeihuo.getValue());
}
}
if (signingNum == 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
if ((reservationEntity.getReservationNum()+reservationEntity.getReservationStockListNum())==0){
reservationEntity.setReservationStatus(ReservationStatusConstant.yiquexiao.getValue());
}
this.updateById(reservationEntity);
}
this.updateById(reservationEntity);
}
@Override
@ -3692,4 +3714,30 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
}
return baseMapper.selectByReservationCode(myCurrentWarehouse.getId(),searchCode);
}
/**
* @param warehouseIds
* @return
*/
@Override
@Transactional
public R maintenanceReservationInfoByWarehouseId(String warehouseIds) {
if (Func.isNotEmpty(warehouseIds)){
for (Long l : Func.toLongList(warehouseIds)) {
List<DistributionReservationEntity> reservationEntityList = this.list(Wrappers.<DistributionReservationEntity>query().lambda().eq(DistributionReservationEntity::getWarehouseId, l));
if (Func.isNotEmpty(reservationEntityList)){
for (DistributionReservationEntity reservationEntity : reservationEntityList) {
this.maintenanceReservationInfo(reservationEntity.getId());
}
}else {
log.info("##################"+l+"没有预约单信息");
}
}
}else {
log.error("#####################维护预约单信息缺少仓库信息");
return R.fail("操作失败");
}
return R.success("操作成功");
}
}

17
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java

@ -3,6 +3,7 @@ package com.logpm.patch.jobhandle;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.feign.IDistributionDeliveryListClient;
import com.logpm.distribution.feign.IDistributionReservationClient;
import com.logpm.patch.service.ISyncDistributionParcelListService;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.xxl.job.core.biz.model.ReturnT;
@ -31,6 +32,8 @@ public class DistributionDatarepair {
private final IDistributionDeliveryListClient deliveryListClient;
private final IDistributionReservationClient distributionReservationClient;
/**
* 预约状态修复
@ -106,6 +109,20 @@ public class DistributionDatarepair {
return ReturnT.SUCCESS;
}
/**
* 维护预约单信息
* @return
*/
@XxlJob("maintenanceReservationInfo")
public ReturnT<String> maintenanceReservationInfo(String params) {
//维护配送的状态
String method = "######################DistributionDatarepair.maintenanceDeliveryStatus";
log.info(method+"维护配送订单id:{}",params);
distributionReservationClient.maintenanceReservationInfo(params);
log.info(method+"维护配送订单结束");
return ReturnT.SUCCESS;
}

Loading…
Cancel
Save