ContainerServiceImpl.java
2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.huaheng.pc.general.container.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.containerType.domain.ContainerType;
import com.huaheng.pc.config.containerType.service.ContainerTypeService;
import com.huaheng.pc.general.container.domain.ContainerStatus;
import org.apache.commons.collections.functors.ConstantFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.pc.general.container.domain.Container;
import com.huaheng.pc.general.container.mapper.ContainerMapper;
import com.huaheng.pc.general.container.service.ContainerService;
@Service
public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container> implements ContainerService{
@Resource
private ContainerTypeService containerTypeService;
@Resource
private ContainerMapper containerMapper;
@Override
public AjaxResult<List<Container>> insertContainer(String type, Integer quantity) {
List<Container> containerList = new ArrayList<>();
Integer number = getNumber(type);
for(int i=0; i<quantity; i++) {
number++;
Container container = new Container();
container.setContainerType(type);
container.setCode(String.format("%s%05d", type, number));
container.setStatus(ContainerStatus.empty.name());
container.setCreated(new Date());
container.setCreatedBy(ShiroUtils.getLoginName());
container.setLastUpdated(null);
container.setLastUpdatedBy(null);
container.setEnable(0);
container.setDeleted(false);
container.setWarehouseCode(ShiroUtils.getWarehouseCode());
this.save(container);
containerList.add(container);
}
return AjaxResult.success(containerList);
}
private Integer getNumber(String type) {
if (!containerTypeService.checkConfig(type))
throw new ServiceException("容器类型编码不存在");
LambdaQueryWrapper<Container> lambda = Wrappers.lambdaQuery();
lambda.select(Container::getCode).eq(Container::getContainerType, type)
.orderByDesc(Container::getId).last("Limit 1");
String maxCode = containerMapper.selectOne(lambda).getCode();
//如果指定类型的最后的code存在,那么 code = 容器类型 + (排序号 + 1)
if (maxCode != null) {
Integer number = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length()));
return number;
} else {
return 0;
}
}
}