MergePersonService.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.MergePersonQueryDTO;
  3. import cn.cslg.pas.common.model.cronModel.PersonnelVO;
  4. import cn.cslg.pas.common.model.cronModel.Records;
  5. import cn.cslg.pas.common.utils.CacheUtils;
  6. import cn.cslg.pas.common.utils.LoginUtils;
  7. import cn.cslg.pas.common.vo.business.MergePersonIdVO;
  8. import cn.cslg.pas.common.vo.business.MergePersonQueryVO;
  9. import cn.cslg.pas.common.vo.business.MergePersonVO;
  10. import cn.cslg.pas.domain.BaseEntity;
  11. import cn.cslg.pas.domain.business.FollowUp;
  12. import cn.cslg.pas.domain.business.MergePerson;
  13. import cn.cslg.pas.exception.UnLoginException;
  14. import cn.cslg.pas.mapper.MergePersonMapper;
  15. import cn.hutool.core.util.ObjectUtil;
  16. import cn.hutool.core.util.PageUtil;
  17. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  18. import com.baomidou.mybatisplus.core.metadata.IPage;
  19. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  20. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  21. import com.github.pagehelper.PageHelper;
  22. import lombok.extern.slf4j.Slf4j;
  23. import org.apache.commons.lang3.StringUtils;
  24. import org.springframework.beans.BeanUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Propagation;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import java.util.ArrayList;
  30. import java.util.Date;
  31. import java.util.List;
  32. /**
  33. * @Author xiexiang
  34. * @Date 2024/01/02
  35. */
  36. @Slf4j
  37. @Service
  38. public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePerson> {
  39. @Autowired
  40. private CacheUtils cacheUtils;
  41. @Autowired
  42. private LoginUtils loginUtils;
  43. @Autowired
  44. private MergePersonMapper mergePersonMapper;
  45. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
  46. public Integer mergePerson(MergePersonVO vo) {
  47. //获取登陆人信息 用于设置创建人
  48. PersonnelVO personnelVO = new PersonnelVO();
  49. try {
  50. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  51. } catch (Exception e) {
  52. throw new UnLoginException("未登录");
  53. }
  54. MergePerson person = new MergePerson();
  55. BeanUtils.copyProperties(vo, person);
  56. person.setCreateId(personnelVO.getId());
  57. person.setCreateTime(new Date());
  58. person.insert();
  59. //todo 关联相关专利
  60. return person.getId();
  61. }
  62. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
  63. public Integer updateMergePerson(MergePersonVO vo) {
  64. //获取登陆人信息 用于设置创建人
  65. PersonnelVO personnelVO = new PersonnelVO();
  66. try {
  67. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  68. } catch (Exception e) {
  69. throw new UnLoginException("未登录");
  70. }
  71. MergePerson person = this.getById(vo.getId());
  72. if (ObjectUtil.isNotEmpty(person)) {
  73. BeanUtils.copyProperties(vo, person);
  74. person.setCreateId(personnelVO.getId());
  75. person.setCreateTime(new Date());
  76. person.updateById();
  77. //todo 关联相关专利
  78. } else {
  79. person = new MergePerson();
  80. }
  81. return person.getId();
  82. }
  83. public Records selectMergePersonList(MergePersonQueryVO vo) {
  84. List<MergePersonQueryDTO> list = new ArrayList<>();
  85. IPage<MergePerson> page = new Page<>(vo.getPageNum(), vo.getPageSize());
  86. LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
  87. .eq(StringUtils.isNotEmpty(vo.getCountry()), MergePerson::getCountry, vo.getCountry())
  88. .like(StringUtils.isNotEmpty(vo.getName()), MergePerson::getName, vo.getName());
  89. IPage<MergePerson> record = mergePersonMapper.selectPage(page, wrapper);
  90. for (MergePerson person : record.getRecords()) {
  91. MergePersonQueryDTO dto = new MergePersonQueryDTO();
  92. dto.setId(person.getId());
  93. dto.setName(person.getName());
  94. dto.setAddress(person.getAddress());
  95. dto.setCountry(person.getCountry());
  96. dto.setRemark(person.getRemark());
  97. dto.setCreateTime(person.getCreateTime());
  98. list.add(dto);
  99. }
  100. Records records = new Records();
  101. records.setCurrent(record.getCurrent());
  102. records.setSize(record.getSize());
  103. records.setData(list);
  104. records.setTotal(record.getTotal());
  105. return records;
  106. }
  107. public Integer delMergePerson(MergePersonIdVO vo) {
  108. LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
  109. .eq(BaseEntity::getId, vo.getId());
  110. this.remove(wrapper);
  111. return vo.getId();
  112. }
  113. }