wu
2024-08-02 928fa3682fcd0bcb59e3ca3da8770ecbb06cf315
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
@@ -6,9 +6,20 @@
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
@@ -19,6 +30,10 @@
    @Autowired
    private RawUsageMapper rawUsageMapper;
    @Autowired
    private ShelfRackMapper shelfRackMapper;
    @Autowired
    private StorageTaskMapper storageTaskMapper;
    @Override
    public List<RawUsage> findList(RawUsage params){
@@ -27,23 +42,97 @@
    }
    @Override
    public RawUsage findById(Long id) {
        return rawUsageMapper.selectById(id);
    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 boolean insert(RawUsage rawUsage) {
        return save(rawUsage);
    }
    @Override
    public boolean update(RawUsage rawUsage) {
        return updateById(rawUsage);
    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 int delete(Long id) {
        return rawUsageMapper.deleteById(id);
    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);
    }
}