PrintVersionServiceImpl.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package jnpf.base.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import jnpf.base.entity.DataSetEntity;
  5. import jnpf.base.entity.PrintVersionEntity;
  6. import jnpf.base.mapper.PrintVersionMapper;
  7. import jnpf.base.model.dataset.DataSetForm;
  8. import jnpf.base.model.dataset.DataSetPagination;
  9. import jnpf.base.model.print.PrintDevFormDTO;
  10. import jnpf.base.service.DataSetService;
  11. import jnpf.base.service.PrintVersionService;
  12. import jnpf.base.service.SuperServiceImpl;
  13. import jnpf.emnus.DataSetTypeEnum;
  14. import jnpf.util.RandomUtil;
  15. import jnpf.util.UserProvider;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.ArrayList;
  20. import java.util.Comparator;
  21. import java.util.Date;
  22. import java.util.List;
  23. /**
  24. * @author JNPF开发平台组
  25. * @version v5.0.0
  26. * @copyright 引迈信息技术有限公司
  27. * @date 2024/5/6 14:07:11
  28. */
  29. @Service
  30. public class PrintVersionServiceImpl extends SuperServiceImpl<PrintVersionMapper, PrintVersionEntity> implements PrintVersionService {
  31. @Autowired
  32. private DataSetService dataSetService;
  33. @Override
  34. @Transactional
  35. public void create(PrintDevFormDTO dto) {
  36. String versionId = RandomUtil.uuId();
  37. PrintVersionEntity entity = new PrintVersionEntity();
  38. entity.setId(versionId);
  39. entity.setTemplateId(dto.getId());
  40. entity.setCreatorUserId(UserProvider.getUser().getUserId());
  41. entity.setCreatorTime(new Date());
  42. entity.setPrintTemplate(dto.getPrintTemplate());
  43. entity.setConvertConfig(dto.getConvertConfig());
  44. entity.setGlobalConfig(dto.getGlobalConfig());
  45. List<PrintVersionEntity> verList = getList(entity.getId());
  46. int version = verList.stream().map(PrintVersionEntity::getVersion).max(Comparator.naturalOrder()).orElse(0) + 1;
  47. entity.setVersion(version);
  48. entity.setState(0);
  49. entity.setSortCode(0l);
  50. this.setIgnoreLogicDelete().removeById(entity.getId());
  51. this.setIgnoreLogicDelete().saveOrUpdate(entity);
  52. this.clearIgnoreLogicDelete();
  53. //数据集创建
  54. List<DataSetForm> dataSetList = dto.getDataSetList() != null ? dto.getDataSetList() : new ArrayList<>();
  55. dataSetService.create(dataSetList, DataSetTypeEnum.PRINT_VER.getCode(), versionId);
  56. }
  57. @Override
  58. public List<PrintVersionEntity> getList(String templateId) {
  59. QueryWrapper<PrintVersionEntity> queryWrapper = new QueryWrapper<>();
  60. queryWrapper.lambda().eq(PrintVersionEntity::getTemplateId, templateId);
  61. queryWrapper.lambda().orderByDesc(PrintVersionEntity::getSortCode).orderByAsc(PrintVersionEntity::getState);
  62. return this.list(queryWrapper);
  63. }
  64. @Override
  65. public String copyVersion(String versionId) {
  66. PrintVersionEntity entity = this.getById(versionId);
  67. PrintVersionEntity versionEntity = BeanUtil.copyProperties(entity, PrintVersionEntity.class);
  68. String newVersionId = RandomUtil.uuId();
  69. versionEntity.setId(newVersionId);
  70. List<PrintVersionEntity> verList = getList(entity.getTemplateId());
  71. int version = verList.stream().map(PrintVersionEntity::getVersion).max(Comparator.naturalOrder()).orElse(0) + 1;
  72. versionEntity.setVersion(version);
  73. versionEntity.setState(0);
  74. versionEntity.setSortCode(0l);
  75. versionEntity.setCreatorTime(new Date());
  76. versionEntity.setCreatorUserId(UserProvider.getUser().getUserId());
  77. versionEntity.setLastModifyTime(null);
  78. versionEntity.setLastModifyUserId(null);
  79. List<DataSetEntity> dataSetList = dataSetService.getList(new DataSetPagination(DataSetTypeEnum.PRINT_VER.getCode(), versionId));
  80. for (DataSetEntity item : dataSetList) {
  81. item.setId(RandomUtil.uuId());
  82. item.setObjectType(DataSetTypeEnum.PRINT_VER.getCode());
  83. item.setObjectId(newVersionId);
  84. item.setCreatorTime(new Date());
  85. item.setCreatorUserId(UserProvider.getUser().getUserId());
  86. item.setLastModifyTime(null);
  87. item.setLastModifyUserId(null);
  88. dataSetService.save(item);
  89. }
  90. this.save(versionEntity);
  91. return newVersionId;
  92. }
  93. @Override
  94. public void removeByTemplateId(String templateId) {
  95. List<PrintVersionEntity> list = this.getList(templateId);
  96. for(PrintVersionEntity item :list){
  97. QueryWrapper<DataSetEntity> dataSetWrapper = new QueryWrapper<>();
  98. dataSetWrapper.lambda().eq(DataSetEntity::getObjectType, DataSetTypeEnum.PRINT_VER.getCode());
  99. dataSetWrapper.lambda().eq(DataSetEntity::getObjectId, templateId);
  100. dataSetService.remove(dataSetWrapper);
  101. this.removeById(item);
  102. }
  103. }
  104. }