| package com.vincent.rsf.server.manager.service.impl; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.vincent.rsf.framework.common.R; | 
| import com.vincent.rsf.framework.exception.CoolException; | 
| import com.vincent.rsf.server.manager.controller.params.InitContainerParams; | 
| import com.vincent.rsf.server.manager.entity.WarehouseAreas; | 
| import com.vincent.rsf.server.manager.enums.QRCodeType; | 
| import com.vincent.rsf.server.manager.mapper.BasContainerMapper; | 
| import com.vincent.rsf.server.manager.entity.BasContainer; | 
| import com.vincent.rsf.server.manager.service.BasContainerService; | 
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
| import com.vincent.rsf.server.manager.service.WarehouseAreasService; | 
| import org.apache.tika.utils.StringUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.List; | 
| import java.util.Objects; | 
|   | 
| @Service("basContainerService") | 
| public class BasContainerServiceImpl extends ServiceImpl<BasContainerMapper, BasContainer> implements BasContainerService { | 
|   | 
|     @Autowired | 
|     private WarehouseAreasService warehouseAreasService; | 
|   | 
|   | 
|     /** | 
|      * 容器初始化 | 
|      * | 
|      * @param params | 
|      * @param loginUserId | 
|      * @return | 
|      */ | 
|     @Override | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public R init(InitContainerParams params, Long loginUserId) { | 
|         if (Objects.isNull(params.getStartNo())) { | 
|             throw new CoolException("容器起始值不能为空!!"); | 
|         } | 
|         if (Objects.isNull(params.getEndNo())) { | 
|             throw new CoolException("容器结束值不能为空!!"); | 
|         } | 
|   | 
|         WarehouseAreas areas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getId, 42L)); | 
|         if (Objects.isNull(areas)) { | 
|             throw new CoolException("库区不存在,请联系管理员!!"); | 
|         } | 
|   | 
|         if (params.getFlagInit()) { | 
|             this.remove(new LambdaQueryWrapper<>()); | 
|         } | 
|   | 
|         List<BasContainer> containerList = new ArrayList<>(); | 
|         for (int i = params.getStartNo(); i <= params.getEndNo() ; i++) { | 
|             BasContainer container = new BasContainer(); | 
|             String code = StringUtils.leftPad(i + "", params.getLength(), "0"); | 
|             if (!params.getContainerType().equals(3L)) { | 
|                 params.setPrefix("81"); | 
|             } | 
|             container.setAreas(areas.getName()) | 
|                     .setCodeType(QRCodeType.QRCODE_TYPE_BARCODE.desc) | 
|                     .setCode(params.getPrefix() + code) | 
|                     .setCreateTime(new Date()) | 
|                     .setCreateBy(loginUserId) | 
|                     .setUpdateBy(loginUserId) | 
|                     .setUpdateTime(new Date()) | 
|                     .setContainerType(params.getContainerType()); | 
|             containerList.add(container); | 
|         } | 
|   | 
|         if (!this.saveBatch(containerList)) { | 
|             throw new CoolException("容器保存失败,请检查编码是否有重复!!"); | 
|         } | 
|   | 
|         return R.ok("新增成功!!").add(containerList); | 
|     } | 
| } |