skyouc
2025-03-25 eb8ded2565e746a360985f702c556b26f750d35a
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
@@ -7,20 +7,15 @@
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.LocMastInitParam;
import com.vincent.rsf.server.manager.controller.params.LocModifyParams;
import com.vincent.rsf.server.manager.entity.LocType;
import com.vincent.rsf.server.manager.entity.LocTypeRela;
import com.vincent.rsf.server.manager.entity.WarehouseAreas;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.mapper.LocMapper;
import com.vincent.rsf.server.manager.entity.Loc;
import com.vincent.rsf.server.manager.mapper.LocTypeRelaMapper;
import com.vincent.rsf.server.manager.service.LocService;
import com.vincent.rsf.server.manager.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vincent.rsf.server.manager.service.LocTypeRelaService;
import com.vincent.rsf.server.manager.service.LocTypeService;
import com.vincent.rsf.server.manager.service.WarehouseAreasService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.Date;
@@ -36,6 +31,12 @@
    @Autowired
    private LocTypeRelaService locTypeRelaService;
    @Autowired
    private LocAreaRelaService locAreaRelaService;
    @Autowired
    private LocAreaService locAreaService;
    @Autowired
    private LocTypeRelaMapper locTypeRelaMapper;
@@ -54,6 +55,8 @@
        boolean update = this.update(new LambdaUpdateWrapper<Loc>()
                .in(Loc::getId, locs.getId())
                .eq(Loc::getStatus, 1)
                .set(!Objects.isNull(loc.getAreaId()), Loc::getAreaId, loc.getAreaId())
                .set(!Objects.isNull(loc.getWarehouseId()), Loc::getWarehouseId, loc.getWarehouseId())
                .set(!Objects.isNull(loc.getUseStatus()), Loc::getUseStatus, loc.getUseStatus())
                .set(!Objects.isNull(loc.getType()), Loc::getType, loc.getType())
                .set(!Objects.isNull(loc.getLength()), Loc::getLength, loc.getLength())
@@ -65,21 +68,22 @@
        if (!update) {
            throw new CoolException("库位信息修改失败!!");
        }
        return R.ok("操作成功!!");
        return R.ok(loc);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R initLocs(LocMastInitParam param) {
        //清空表
        if (this.baseMapper.delete(new LambdaUpdateWrapper<>()) < 0) {
            throw new CoolException("数据库初始化失败:老数据删除失败!!");
        }
        WarehouseAreas warehouseAreas = warehouseAreasService.getById(param.getAreaId());
        this.baseMapper.deleteAll();
        WarehouseAreas warehouseAreas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
                .eq(WarehouseAreas::getWarehouseId, param.getWarehouseId())
                .eq(WarehouseAreas::getId, param.getAreaId()));
        if (Objects.isNull(warehouseAreas)) {
            throw new CoolException("库区不存在!!");
        }
        List<Loc> list = new ArrayList<>();
        for (int r = param.getStartRow(); r <= param.getEndRow(); r++) {
            for (int b = param.getStartBay(); b <= param.getEndBay(); b++) {
@@ -95,7 +99,6 @@
                            .setAreaId(param.getAreaId())
                            .setWarehouseId(warehouseAreas.getWarehouseId())
                            .setType(param.getType());
                    list.add(loc);
                }
            }
@@ -108,7 +111,6 @@
    @Override
    public boolean saveType(Loc loc) {
        List<LocTypeRela> relas =  new ArrayList<>();
        loc.getTypeIds().forEach(id -> {
            LocTypeRela typeRela = new LocTypeRela();
@@ -117,7 +119,7 @@
            relas.add(typeRela);
        });
        if (!locTypeRelaService.saveOrUpdateBatch(relas)) {
            throw new CoolException("库位关联关系保存成功!!");
            throw new CoolException("库位关联关系保存失败!!");
        }
        return true;
    }
@@ -125,7 +127,6 @@
    @Override
    public boolean updateLoc(Loc loc) {
        locTypeRelaMapper.delete(new LambdaQueryWrapper<LocTypeRela>().eq(LocTypeRela::getLocId, loc.getId()));
        List<LocTypeRela> relas =  new ArrayList<>();
        loc.getTypeIds().forEach(id -> {
            LocTypeRela typeRela = new LocTypeRela();
@@ -134,8 +135,34 @@
            relas.add(typeRela);
        });
        if (!locTypeRelaService.saveOrUpdateBatch(relas)) {
            throw new CoolException("库位关联关系保存成功!!");
            throw new CoolException("库位关联关系保存失败!!");
        }
        return false;
        return true;
    }
    @Override
    public R batchBindLocs(LocModifyParams locs) {
        if (locs.getId().isEmpty()) {
            throw new CoolException("库位ID不能为空!!");
        }
        if (Objects.isNull(locs.getLocAreaId())) {
            throw new CoolException("修改库位信息不能为空!!");
        }
        List<LocArea> locAreas = locAreaService.list(new LambdaQueryWrapper<LocArea>().eq(LocArea::getId, locs.getLocAreaId()));
        if (locAreas.isEmpty()) {
            throw new CoolException("库位分区不存在!!");
        }
        List<LocAreaRela> relas = new ArrayList<>();
        locs.getId().forEach(id -> {
            LocAreaRela locAreaRela = new LocAreaRela();
            locAreaRela.setLocId(id)
                    .setLocAreaId(locs.getLocAreaId());
            relas.add(locAreaRela);
        });
        if (!locAreaRelaService.saveBatch(relas)) {
            throw new CoolException("库位分区失败!!");
        }
        return R.ok();
    }
}