package com.mes.rawusage.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.mes.rawusage.mapper.RawUsageMapper;
|
import com.mes.rawusage.entity.RawUsage;
|
import com.mes.rawusage.service.RawUsageService;
|
import com.mes.shelfrack.entity.ShelfRack;
|
import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
|
import com.mes.shelfrack.mapper.ShelfRackMapper;
|
import com.mes.storagetask.entity.StorageTask;
|
import com.mes.storagetask.mapper.StorageTaskMapper;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.lang.reflect.InvocationTargetException;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
import static cn.hutool.core.date.DateTime.now;
|
|
/**
|
* @author system
|
* @since 2024-07-09 14:51:27
|
*/
|
@Service
|
public class RawUsageServiceImpl extends ServiceImpl<RawUsageMapper, RawUsage> implements RawUsageService {
|
|
@Autowired
|
private RawUsageMapper rawUsageMapper;
|
@Autowired
|
private ShelfRackMapper shelfRackMapper;
|
@Autowired
|
private StorageTaskMapper storageTaskMapper;
|
|
@Override
|
public List<RawUsage> findList(RawUsage params){
|
LambdaQueryWrapper<RawUsage> query = Wrappers.lambdaQuery(RawUsage.class);
|
return rawUsageMapper.selectList(query);
|
}
|
|
@Override
|
public void updateRawPackageAndStorageRack(RawUsage raw) {
|
// Step 1: 查询raw_package_id
|
LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
|
.eq(ShelfRack::getNumber, raw.getId());
|
ShelfRack shelfRack = shelfRackMapper.selectOne(queryWrapper);
|
if (shelfRack == null) {
|
throw new RuntimeException("未找到与指定货架ID关联的原料包信息");
|
}
|
|
|
// Step 2: 更新raw_package表
|
RawUsage rawUsage=new RawUsage();
|
|
rawUsage.setState("空闲");
|
rawUsage.setId(shelfRack.getRawPackageId());
|
rawUsageMapper.updateById(rawUsage);
|
|
// Step 3: 更新storage_rack表
|
|
ShelfRack rack = new ShelfRack();
|
rack.setState("空闲");
|
rack.setRawPackageId(null); // 设置RawPackageId为特定的空值,例如0
|
LambdaQueryWrapper<ShelfRack> queryWrapper2 = Wrappers.lambdaQuery(ShelfRack.class)
|
.eq(ShelfRack::getNumber, raw.getId());
|
shelfRackMapper.update(rack, queryWrapper2);
|
|
|
}
|
|
|
|
|
|
@Override
|
public void inStorage(RawUsageAndShelfRack raw) {
|
RawUsage rawPackage = new RawUsage();
|
BeanUtils.copyProperties(raw,rawPackage);
|
rawPackage.setRawType(raw.getRawThickness() + raw.getColor());
|
rawPackage.setState("使用中");
|
rawPackage.setLeftPieces(rawPackage.getPieces());
|
rawUsageMapper.insert(rawPackage);
|
|
// 更新架表
|
ShelfRack rack = new ShelfRack();
|
rack.setState("使用中");
|
rack.setRawPackageId(rawPackage.getId()); // 设置RawPackageId为特定的空值,例如0
|
LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
|
.eq(ShelfRack::getNumber, raw.getNumber());
|
shelfRackMapper.update(rack, queryWrapper);
|
StorageTask storageTask=new StorageTask();
|
storageTask.setTaskState("等待中");
|
storageTask.setTaskType("从仓位到吊装位");
|
storageTask.setLoadRack(raw.getLoadRack());
|
storageTask.setShelfRack(raw.getNumber());
|
storageTask.setRouteGroup(1);
|
storageTask.setStartTime(now());
|
storageTask.setFinishTime(now());
|
insertTask(storageTask);
|
|
|
}
|
|
|
@Override
|
public void outStorage(RawUsageAndShelfRack raw) {
|
ShelfRack rack = new ShelfRack();
|
rack.setState("等待出库");
|
rack.setRawPackageId(null); // 设置RawPackageId为特定的空值,例如0
|
LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
|
.eq(ShelfRack::getNumber, raw.getNumber());
|
shelfRackMapper.update(rack, queryWrapper);
|
|
|
StorageTask storageTask=new StorageTask();
|
storageTask.setTaskState("等待中");
|
storageTask.setTaskType("从仓位到吊装位");
|
storageTask.setLoadRack(raw.getLoadRack());
|
storageTask.setShelfRack(raw.getNumber());
|
storageTask.setRouteGroup(1);
|
storageTask.setStartTime(now());
|
storageTask.setFinishTime(now());
|
insertTask(storageTask);
|
}
|
|
|
public void insertTask(StorageTask storageTask) {
|
storageTaskMapper.insert(storageTask);
|
|
}
|
|
|
|
|
}
|