|
|
|
@ -9,6 +9,11 @@ import com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper;
|
|
|
|
|
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
|
|
|
|
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; |
|
|
|
|
import com.logpm.distribution.entity.DistributionParcelListEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionStockArticleEntity; |
|
|
|
|
import com.logpm.distribution.feign.IDistributionParcelListClient; |
|
|
|
|
import com.logpm.distribution.feign.IDistributionStockArticleClient; |
|
|
|
|
import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; |
|
|
|
|
import com.logpm.trunkline.feign.ITrunklineCarsLoadScanClient; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
@ -16,6 +21,7 @@ import org.springblade.common.utils.CommonUtil;
|
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.BeanUtil; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
@ -33,6 +39,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
|
|
|
|
|
|
|
|
|
|
private final IBasicdataWarehouseClient basicdataWarehouseClient; |
|
|
|
|
|
|
|
|
|
private final IDistributionStockArticleClient stockArticleClient; |
|
|
|
|
|
|
|
|
|
private final IDistributionParcelListClient parcelListClient; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R findPageList(AbnormalRecordDTO abnormalRecordDTO) { |
|
|
|
|
IPage<Object> page = new Page<>(); |
|
|
|
@ -117,6 +127,158 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
|
|
|
|
|
abnormalRecordEntity.setRemark("已入库("+upWarehouseName+" "+AuthUtil.getNickName()+")"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}else if("5".equals(abnormalType)){ |
|
|
|
|
//零担卸车数量异常
|
|
|
|
|
Integer dealType = abnormalRecordDTO.getDealType(); |
|
|
|
|
Integer num = abnormalRecordEntity.getNum(); |
|
|
|
|
Long associationId = abnormalRecordEntity.getAssociationId(); |
|
|
|
|
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(associationId); |
|
|
|
|
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); |
|
|
|
|
String orderCode = carsLoadScanEntity.getOrderCode(); |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); |
|
|
|
|
if(!Objects.isNull(stockArticleEntity)){ |
|
|
|
|
Long stockId = stockArticleEntity.getId(); |
|
|
|
|
if(dealType.equals(5)){ |
|
|
|
|
//回退原仓库
|
|
|
|
|
stockArticleClient.addHandQuantity(stockId,num); |
|
|
|
|
abnormalRecordEntity.setRemark("差异件数退回原仓"); |
|
|
|
|
}else if(dealType.equals(6)){ |
|
|
|
|
//入库本仓
|
|
|
|
|
Integer enterNum = abnormalRecordDTO.getNum(); |
|
|
|
|
if(enterNum > 0){ |
|
|
|
|
Date now = new Date(); |
|
|
|
|
int diff = num - enterNum; |
|
|
|
|
Long warehouseId = abnormalRecordEntity.getWarehouseId(); |
|
|
|
|
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); |
|
|
|
|
if(diff == 0){ |
|
|
|
|
//全部入库到本仓
|
|
|
|
|
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); |
|
|
|
|
if(Objects.isNull(currentStockArticleEntity)){ |
|
|
|
|
currentStockArticleEntity = new DistributionStockArticleEntity(); |
|
|
|
|
Integer totalNumber = stockArticleEntity.getTotalNumber(); |
|
|
|
|
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); |
|
|
|
|
currentStockArticleEntity.setId(null); |
|
|
|
|
currentStockArticleEntity.setHandQuantity(enterNum); |
|
|
|
|
currentStockArticleEntity.setWarehouseId(warehouseId); |
|
|
|
|
currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); |
|
|
|
|
currentStockArticleEntity.setWarehouseEntryTime(now); |
|
|
|
|
currentStockArticleEntity.setCompleteSet(1); |
|
|
|
|
currentStockArticleEntity.setOrderReceiveStatus("20"); |
|
|
|
|
if(totalNumber.equals(enterNum)){ |
|
|
|
|
currentStockArticleEntity.setCompleteSet(2); |
|
|
|
|
currentStockArticleEntity.setOrderReceiveStatus("30"); |
|
|
|
|
} |
|
|
|
|
currentStockArticleEntity.setStockupStatus("10"); |
|
|
|
|
currentStockArticleEntity.setReservationStatus("10"); |
|
|
|
|
currentStockArticleEntity.setOrderStatus("20"); |
|
|
|
|
currentStockArticleEntity.setGroundingStatus("10"); |
|
|
|
|
currentStockArticleEntity.setFreezeStatus("10"); |
|
|
|
|
currentStockArticleEntity.setWarehouseEntryTimeEnd(now); |
|
|
|
|
currentStockArticleEntity.setSortingQuantity(0); |
|
|
|
|
currentStockArticleEntity.setDeliveryQuantity(0); |
|
|
|
|
currentStockArticleEntity.setTransferQuantity(0); |
|
|
|
|
currentStockArticleEntity.setSigninQuantity(0); |
|
|
|
|
currentStockArticleEntity.setAllocation(null); |
|
|
|
|
currentStockArticleEntity.setTrays(null); |
|
|
|
|
currentStockArticleEntity.setIncomingNum(enterNum); |
|
|
|
|
Long orderId = stockArticleClient.addData(currentStockArticleEntity); |
|
|
|
|
if(!Objects.isNull(orderId)){ |
|
|
|
|
List<DistributionParcelListEntity> addParcelListEntityList = new ArrayList<>(); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId); |
|
|
|
|
parcelListEntityList.forEach(parcelListEntity -> { |
|
|
|
|
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); |
|
|
|
|
BeanUtil.copy(parcelListEntity,currentParcelListEntity); |
|
|
|
|
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); |
|
|
|
|
currentParcelListEntity.setId(null); |
|
|
|
|
currentParcelListEntity.setGoodsAllocation(null); |
|
|
|
|
currentParcelListEntity.setStockArticleId(orderId); |
|
|
|
|
currentParcelListEntity.setPallet(null); |
|
|
|
|
currentParcelListEntity.setWarehouseId(warehouseId); |
|
|
|
|
currentParcelListEntity.setWarehouse(warehouseEntity.getName()); |
|
|
|
|
currentParcelListEntity.setIsTransfer(1); |
|
|
|
|
if(acceptWarehouseId.equals(warehouseId)){ |
|
|
|
|
currentParcelListEntity.setIsTransfer(0); |
|
|
|
|
} |
|
|
|
|
addParcelListEntityList.add(currentParcelListEntity); |
|
|
|
|
}); |
|
|
|
|
parcelListClient.addZeroParcelList(addParcelListEntityList); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
|
|
|
|
|
stockArticleClient.addHandQuantity(currentStockArticleEntity.getId(),enterNum); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓"); |
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
//回退原仓库
|
|
|
|
|
stockArticleClient.addHandQuantity(stockId,diff); |
|
|
|
|
|
|
|
|
|
//全部入库到本仓
|
|
|
|
|
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); |
|
|
|
|
if(Objects.isNull(currentStockArticleEntity)){ |
|
|
|
|
currentStockArticleEntity = new DistributionStockArticleEntity(); |
|
|
|
|
Integer totalNumber = stockArticleEntity.getTotalNumber(); |
|
|
|
|
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); |
|
|
|
|
currentStockArticleEntity.setId(null); |
|
|
|
|
currentStockArticleEntity.setHandQuantity(enterNum); |
|
|
|
|
currentStockArticleEntity.setWarehouseId(warehouseId); |
|
|
|
|
currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); |
|
|
|
|
currentStockArticleEntity.setWarehouseEntryTime(now); |
|
|
|
|
currentStockArticleEntity.setCompleteSet(1); |
|
|
|
|
currentStockArticleEntity.setOrderReceiveStatus("20"); |
|
|
|
|
if(totalNumber.equals(enterNum)){ |
|
|
|
|
currentStockArticleEntity.setCompleteSet(2); |
|
|
|
|
currentStockArticleEntity.setOrderReceiveStatus("30"); |
|
|
|
|
} |
|
|
|
|
currentStockArticleEntity.setStockupStatus("10"); |
|
|
|
|
currentStockArticleEntity.setReservationStatus("10"); |
|
|
|
|
currentStockArticleEntity.setOrderStatus("20"); |
|
|
|
|
currentStockArticleEntity.setGroundingStatus("10"); |
|
|
|
|
currentStockArticleEntity.setFreezeStatus("10"); |
|
|
|
|
currentStockArticleEntity.setWarehouseEntryTimeEnd(now); |
|
|
|
|
currentStockArticleEntity.setSortingQuantity(0); |
|
|
|
|
currentStockArticleEntity.setDeliveryQuantity(0); |
|
|
|
|
currentStockArticleEntity.setTransferQuantity(0); |
|
|
|
|
currentStockArticleEntity.setSigninQuantity(0); |
|
|
|
|
currentStockArticleEntity.setAllocation(null); |
|
|
|
|
currentStockArticleEntity.setTrays(null); |
|
|
|
|
currentStockArticleEntity.setIncomingNum(enterNum); |
|
|
|
|
Long orderId = stockArticleClient.addData(currentStockArticleEntity); |
|
|
|
|
if(!Objects.isNull(orderId)){ |
|
|
|
|
List<DistributionParcelListEntity> addParcelListEntityList = new ArrayList<>(); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId); |
|
|
|
|
parcelListEntityList.forEach(parcelListEntity -> { |
|
|
|
|
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); |
|
|
|
|
BeanUtil.copy(parcelListEntity,currentParcelListEntity); |
|
|
|
|
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); |
|
|
|
|
currentParcelListEntity.setId(null); |
|
|
|
|
currentParcelListEntity.setGoodsAllocation(null); |
|
|
|
|
currentParcelListEntity.setStockArticleId(orderId); |
|
|
|
|
currentParcelListEntity.setPallet(null); |
|
|
|
|
currentParcelListEntity.setWarehouseId(warehouseId); |
|
|
|
|
currentParcelListEntity.setWarehouse(warehouseEntity.getName()); |
|
|
|
|
currentParcelListEntity.setIsTransfer(1); |
|
|
|
|
if(acceptWarehouseId.equals(warehouseId)){ |
|
|
|
|
currentParcelListEntity.setIsTransfer(0); |
|
|
|
|
} |
|
|
|
|
addParcelListEntityList.add(currentParcelListEntity); |
|
|
|
|
}); |
|
|
|
|
parcelListClient.addZeroParcelList(addParcelListEntityList); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
|
|
|
|
|
stockArticleClient.addHandQuantity(currentStockArticleEntity.getId(),enterNum); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件"); |
|
|
|
|
} |
|
|
|
|
carsLoadScanEntity.setScanStatus("2"); |
|
|
|
|
carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getUnloadNum()+enterNum); |
|
|
|
|
trunklineCarsLoadScanClient.updateEntity(carsLoadScanEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
abnormalRecordEntity.setAbnormalStatus(1); |
|
|
|
|
abnormalRecordEntity.setDealTime(new Date()); |
|
|
|
|