Browse Source

维护包件装车下架、维护包件签收解托、维护完成复核的配送状态

dev-pushdata-important
汤建军 1 year ago
parent
commit
3edde95c61
  1. 2
      blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java
  2. 71
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  3. 26
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/ISyncDistributionParceListMapper.xml
  4. 16
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/ISyncDistributionParcelListMapper.java
  5. 17
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncDistributionParcelListService.java
  6. 27
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncDistributionParcelListServiceImpl.java
  7. 39
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java
  8. 47
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

2
blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java

@ -8,7 +8,7 @@ public interface ModuleNameConstant {
/**
* 如果不需要 ""
*/
public static final String DEVAUTH ="";
public static final String DEVAUTH ="-tjj";
/**
* 工厂对接服务名称

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

@ -1,13 +1,20 @@
package com.logpm.patch.jobhandle;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.patch.service.ISyncDistributionParcelListService;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 配送数据修复
*/
@ -17,21 +24,81 @@ import org.springframework.stereotype.Component;
public class DistributionDatarepair {
// private final ISyncDistributionParcelListService distributionParcelListService;
private final ISyncDistributionParcelListService iSyncDistributionParcelListService;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
/**
* 预约状态修复
*
* @param param
* @return
*/
@XxlJob("reservationDatarepair")
public ReturnT<String> reservationDatarepair(String param) {
return null;
}
/**
* 对已出库包件进行下架解托
*
* @return
*/
@XxlJob("downOldPackage")
public ReturnT<String> downOldPackage(String params) {
//查询已装车且还在库内的包件
List<DistributionParcelListEntity> deliveryParcelListEntities = iSyncDistributionParcelListService.selectDeliveryOnWarehouse();
//将装车为下架的包件进行下架
StringBuffer stringBuffer = new StringBuffer();
if (Func.isNotEmpty(deliveryParcelListEntities)) {
Map<Long, List<DistributionParcelListEntity>> packageMap = deliveryParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWarehouseId));
packageMap.forEach((k, v) -> {
String orderPackageCodes = v.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.joining(","));
stringBuffer.append("仓库:"+k).append("包件下架"+orderPackageCodes);;
warehouseUpdownTypeClient.downDeliveryPackage(orderPackageCodes, k);
});
}
log.info("执行包件下架操作>>>>>>>>>>>>>"+stringBuffer.toString());
return ReturnT.SUCCESS;
}
return null;
/**
* 对已签收包件进行解托
* @return
*/
@XxlJob("downTrayOldPackage")
public ReturnT<String> downTrayOldPackage(String params) {
//查询已装车且还在库内的包件
List<DistributionParcelListEntity> deliveryParcelListEntities = iSyncDistributionParcelListService.selectSigningOnTray();
//将装车为下架的包件进行下架
StringBuffer stringBuffer = new StringBuffer();
if (Func.isNotEmpty(deliveryParcelListEntities)) {
Map<Long, List<DistributionParcelListEntity>> packageMap = deliveryParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWarehouseId));
packageMap.forEach((k, v) -> {
String orderPackageCodes = v.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.joining(","));
stringBuffer.append("仓库:"+k).append("包件解托"+orderPackageCodes);;
warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCodes, k);
});
}
log.info("执行包件下架操作>>>>>>>>>>>>>"+stringBuffer.toString());
return ReturnT.SUCCESS;
}
/**
* 维护
* @return
*/
@XxlJob("maintenanceDeliveryStatus")
public ReturnT<String> maintenanceDeliveryStatus(String params) {
//维护配送的状态
Integer row = iSyncDistributionParcelListService.updateCompleteDeliveryStatus();
return ReturnT.SUCCESS;
}

26
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/ISyncDistributionParceListMapper.xml

@ -0,0 +1,26 @@
<?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.patch.mapper.ISyncDistributionParcelListMapper">
<update id="updateCompleteDeliveryStatus">
UPDATE logpm_distribution_delivery_list
SET delivery_status = 3
WHERE
id IN (
SELECT
a.id
FROM
( SELECT customers_number, id FROM logpm_distribution_delivery_list WHERE delivery_status != 3 AND warehouse_id = '1713372842906734594' ) AS a
INNER JOIN ( SELECT count(*) AS signNum, delivery_id FROM logpm_distribution_signfor WHERE signing_status = 2 GROUP BY delivery_id ) AS b ON a.id = b.delivery_id
WHERE
a.customers_number = b.signNum)
</update>
<select id="selectDeliveryOnWarehousePackage"
resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
SELECT * FROM logpm_distribution_parcel_list WHERE order_package_code IN (SELECT association_value FROM logpm_warehouse_updown_goods WHERE association_value IN (SELECT order_package_code FROM `logpm_distribution_loadscan`))
</select>
<select id="selectSigningOnTray" resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
SELECT * FROM logpm_distribution_parcel_list WHERE order_package_code IN (SELECT association_value FROM logpm_warehouse_tray_goods WHERE association_value IN (SELECT order_package_code FROM `logpm_distribution_loadscan` WHERE signfor_state = 2))
</select>
</mapper>

16
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/ISyncDistributionParcelListMapper.java

@ -1,5 +1,6 @@
package com.logpm.patch.mapper;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -9,6 +10,19 @@ import java.util.Map;
public interface ISyncDistributionParcelListMapper {
List<Map<String,Integer>> selectAllErrorReservationOrder();
List<Map<String,Integer>> selectAllErrorReservationOrder();
/**
* 查询在配送中且还在仓库内的包件
* @return
*/
List<DistributionParcelListEntity> selectDeliveryOnWarehousePackage();
/**
* 查询在配送中且在托盘内的包件
* @return
*/
List<DistributionParcelListEntity> selectSigningOnTray();
Integer updateCompleteDeliveryStatus();
}

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

@ -1,5 +1,7 @@
package com.logpm.patch.service;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import java.util.List;
import java.util.Map;
@ -11,4 +13,19 @@ public interface ISyncDistributionParcelListService {
*/
List<Map<String,Integer>> selectAllErrorReservationOrder();
/**
* 查询未进行下架的包件信息
* @return
*/
List<DistributionParcelListEntity> selectDeliveryOnWarehouse();
/**
* 查询签收还和托盘存在绑定关系的包件
* @return
*/
List<DistributionParcelListEntity> selectSigningOnTray();
Integer updateCompleteDeliveryStatus();
}

27
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncDistributionParcelListServiceImpl.java

@ -1,15 +1,42 @@
package com.logpm.patch.service.impl;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.patch.mapper.ISyncDistributionParcelListMapper;
import com.logpm.patch.service.ISyncDistributionParcelListService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@AllArgsConstructor
@Service
public class SyncDistributionParcelListServiceImpl implements ISyncDistributionParcelListService {
private ISyncDistributionParcelListMapper distributionParcelListMapper;
@Override
public List<Map<String, Integer>> selectAllErrorReservationOrder() {
return null;
}
@Override
public List<DistributionParcelListEntity> selectDeliveryOnWarehouse() {
return distributionParcelListMapper.selectDeliveryOnWarehousePackage();
}
@Override
public List<DistributionParcelListEntity> selectSigningOnTray() {
return distributionParcelListMapper.selectSigningOnTray();
}
@Override
public Integer updateCompleteDeliveryStatus() {
return distributionParcelListMapper.updateCompleteDeliveryStatus();
}
}

39
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

@ -49,6 +49,7 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache;
@ -2130,24 +2131,32 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
trayGoodsQueryWrapper.eq("association_type","3")
.eq("association_value",orderPackageCode);
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getOne(trayGoodsQueryWrapper);
Long trayGoodsId = trayGoodsEntity.getId();
Long trayTypeId = trayGoodsEntity.getTrayTypeId();
Long trayId = trayGoodsEntity.getTrayId();
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectById(trayTypeId);
//解除绑定
Integer residueNum = warehouseTrayGoodsService.deleteByTrayGoodsId(trayGoodsId,warehouseId);
StringBuffer stringBuffer = new StringBuffer();
if (Func.isNotEmpty(trayGoodsEntity)){
Long trayGoodsId = trayGoodsEntity.getId();
Long trayTypeId = trayGoodsEntity.getTrayTypeId();
Long trayId = trayGoodsEntity.getTrayId();
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectById(trayTypeId);
//解除绑定
Integer residueNum = warehouseTrayGoodsService.deleteByTrayGoodsId(trayGoodsId,warehouseId);
if(residueNum == 0){
//空置托盘
removeById(trayTypeId);
//更新托盘状态
basicdataTrayClient.updateTrayStatus(trayId,1);
}
if(residueNum == 0){
//空置托盘
removeById(trayTypeId);
//更新托盘状态
basicdataTrayClient.updateTrayStatus(trayId,1);
}
//添加下托日志
warehouseTrayGoodsLogService.saveLogPackage(parcelListEntity,trayTypeEntity,"0",remark,"1");
//添加下托日志
warehouseTrayGoodsLogService.saveLogPackage(parcelListEntity,trayTypeEntity,"0",remark,"1");
updateNumByTrayTypeId(trayTypeEntity);
updateNumByTrayTypeId(trayTypeEntity);
}else {
stringBuffer.append(orderPackageCode);
}
if (Func.isNotEmpty(stringBuffer)){
log.error("托盘商品不存在,trayId:{}",stringBuffer.toString());
}
}
@Override

47
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

@ -23,6 +23,7 @@ import org.springblade.common.exception.CustomerException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -1313,31 +1314,35 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl<WarehouseUpd
Long updownGoodsId = updownGoodsEntity.getId();
Long updownTypeId = updownGoodsEntity.getUpdownTypeId();
WarehouseUpdownTypeEntity updownTypeEntity = baseMapper.selectById(updownTypeId);
QueryWrapper<WarehouseTaryAllocationEntity> taryAllocationEntityQueryWrapper = new QueryWrapper<>();
taryAllocationEntityQueryWrapper.eq("allocation_id",allocationId)
.eq("is_deleted",0);
WarehouseTaryAllocationEntity taryAllocationEntity = warehouseTaryAllocationService.getOne(taryAllocationEntityQueryWrapper);
if (Func.isNotEmpty(updownTypeEntity)){
QueryWrapper<WarehouseTaryAllocationEntity> taryAllocationEntityQueryWrapper = new QueryWrapper<>();
taryAllocationEntityQueryWrapper.eq("allocation_id",allocationId)
.eq("is_deleted",0);
WarehouseTaryAllocationEntity taryAllocationEntity = warehouseTaryAllocationService.getOne(taryAllocationEntityQueryWrapper);
// BasicdataTrayEntity trayEntity = warehouseTaryAllocationService.getTrayByAllocationId(allocationId);
if(!Objects.isNull(taryAllocationEntity)){
//有托盘,托盘下托
warehouseTrayTypeService.downPackageByOrderPackageCode(orderPackageCode,"包件下架:同步下托",warehouseId);
}
Integer residue = warehouseUpdownGoodsService.deleteByUpdownGoodsId(updownGoodsId);
if(residue == 0){
//删除上架方式
removeById(updownTypeId);
//修改库位状态为空闲
basicdataGoodsAllocationClient.updateAllocationStatus(allocationId,"1");
//如果有托盘还要删除托盘与库位的绑定
if(!Objects.isNull(taryAllocationEntity)){
warehouseTaryAllocationService.deleteById(taryAllocationEntity);
//有托盘,托盘下托
warehouseTrayTypeService.downPackageByOrderPackageCode(orderPackageCode,"包件下架:同步下托",warehouseId);
}
}
warehouseUpdownGoodsLogService.saveAllocationAndPackage(updownTypeEntity,parcelListEntity,"2",0,"包件下架:包件下架");
updateUpdownTypeNum(updownTypeEntity);
Integer residue = warehouseUpdownGoodsService.deleteByUpdownGoodsId(updownGoodsId);
if(residue == 0){
//删除上架方式
removeById(updownTypeId);
//修改库位状态为空闲
basicdataGoodsAllocationClient.updateAllocationStatus(allocationId,"1");
//如果有托盘还要删除托盘与库位的绑定
if(!Objects.isNull(taryAllocationEntity)){
warehouseTaryAllocationService.deleteById(taryAllocationEntity);
}
}
warehouseUpdownGoodsLogService.saveAllocationAndPackage(updownTypeEntity,parcelListEntity,"2",0,"包件下架:包件下架");
updateUpdownTypeNum(updownTypeEntity);
num = num + quantity;
warehouseGoodsAllocationClient.updateAllocationCache(allocationId.toString());
num = num + quantity;
warehouseGoodsAllocationClient.updateAllocationCache(allocationId.toString());
}else {
log.error("包件下架失败,找不到上架方式,updownTypeId:{}",updownTypeId);
}
}
return Resp.scanSuccess("下架成功","成功下架"+num+"件");
}

Loading…
Cancel
Save