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 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 dataSetList = dto.getDataSetList() != null ? dto.getDataSetList() : new ArrayList<>(); dataSetMapper.create(dataSetList, DataSetTypeEnum.PRINT_VER.getCode(), entity.getId()); } @Override public List 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 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 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 list = this.getList(templateId); for (PrintVersionEntity item : list) { QueryWrapper 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); } } }