| | |
| | | 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"); |
| | | |
| | | 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(); |
| | | } |
| | | } |