ny
昨天 b6f169fe43a2b13f351aefc152374fc7f0bc8cb7
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package jnpf.base.service.impl;
 
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jnpf.base.entity.DataSetEntity;
import jnpf.base.entity.PrintVersionEntity;
import jnpf.base.mapper.DataSetMapper;
import jnpf.base.mapper.PrintVersionMapper;
import jnpf.base.model.dataset.DataSetForm;
import jnpf.base.model.dataset.DataSetPagination;
import jnpf.base.model.print.PrintDevFormDTO;
import jnpf.base.service.PrintVersionService;
import jnpf.base.service.SuperServiceImpl;
import jnpf.emnus.DataSetTypeEnum;
import jnpf.util.JsonUtil;
import jnpf.util.RandomUtil;
import jnpf.util.UserProvider;
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.Comparator;
import java.util.Date;
import java.util.List;
 
/**
 * @author JNPF开发平台组
 * @version v5.0.0
 * @copyright 引迈信息技术有限公司
 * @date 2024/5/6 14:07:11
 */
@Service
public class PrintVersionServiceImpl extends SuperServiceImpl<PrintVersionMapper, PrintVersionEntity> implements PrintVersionService {
 
    @Autowired
    private DataSetMapper dataSetMapper;
 
    @Override
    @Transactional
    public void create(PrintDevFormDTO dto) {
        PrintVersionEntity entity = JsonUtil.getJsonToBean(dto, PrintVersionEntity.class);
        entity.setTemplateId(dto.getId());
        this.baseMapper.create(entity);
        //数据集创建
        List<DataSetForm> dataSetList = dto.getDataSetList() != null ? dto.getDataSetList() : new ArrayList<>();
        dataSetMapper.create(dataSetList, DataSetTypeEnum.PRINT_VER.getCode(), entity.getId());
    }
 
    @Override
    public List<PrintVersionEntity> getList(String templateId) {
        return this.baseMapper.getList(templateId);
    }
 
    @Override
    public String copyVersion(String versionId) {
        PrintVersionEntity entity = this.getById(versionId);
        PrintVersionEntity versionEntity = BeanUtil.copyProperties(entity, PrintVersionEntity.class);
        String newVersionId = RandomUtil.uuId();
        versionEntity.setId(newVersionId);
        List<PrintVersionEntity> verList = getList(entity.getTemplateId());
        int version = verList.stream().map(PrintVersionEntity::getVersion).max(Comparator.naturalOrder()).orElse(0) + 1;
        versionEntity.setVersion(version);
        versionEntity.setState(0);
        versionEntity.setSortCode(0l);
        versionEntity.setCreatorTime(new Date());
        versionEntity.setCreatorUserId(UserProvider.getUser().getUserId());
        versionEntity.setLastModifyTime(null);
        versionEntity.setLastModifyUserId(null);
        List<DataSetEntity> dataSetList = dataSetMapper.getList(new DataSetPagination(DataSetTypeEnum.PRINT_VER.getCode(), versionId));
        for (DataSetEntity item : dataSetList) {
            item.setId(RandomUtil.uuId());
            item.setObjectType(DataSetTypeEnum.PRINT_VER.getCode());
            item.setObjectId(newVersionId);
            item.setCreatorTime(new Date());
            item.setCreatorUserId(UserProvider.getUser().getUserId());
            item.setLastModifyTime(null);
            item.setLastModifyUserId(null);
            dataSetMapper.insert(item);
        }
        this.save(versionEntity);
        return newVersionId;
    }
 
    @Override
    public void removeByTemplateId(String templateId) {
        List<PrintVersionEntity> list = this.getList(templateId);
        for (PrintVersionEntity item : list) {
            QueryWrapper<DataSetEntity> dataSetWrapper = new QueryWrapper<>();
            dataSetWrapper.lambda().eq(DataSetEntity::getObjectType, DataSetTypeEnum.PRINT_VER.getCode());
            dataSetWrapper.lambda().eq(DataSetEntity::getObjectId, templateId);
            dataSetMapper.deleteByIds(dataSetMapper.selectList(dataSetWrapper));
            this.removeById(item);
        }
    }
}