TAssayItemServiceImpl.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package com.ruoyi.business.service.impl;
  2. import java.math.BigDecimal;
  3. import java.util.*;
  4. import com.ruoyi.business.domain.TAssayItemExtra;
  5. import com.ruoyi.business.mapper.TAssayItemExtraMapper;
  6. import com.ruoyi.common.utils.DateUtils;
  7. import com.ruoyi.common.utils.SecurityUtils;
  8. import com.ruoyi.common.utils.StringUtils;
  9. import com.ruoyi.system.mapper.SysUserMapper;
  10. import org.apache.commons.collections4.CollectionUtils;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import com.ruoyi.business.mapper.TAssayItemMapper;
  14. import com.ruoyi.business.domain.TAssayItem;
  15. import com.ruoyi.business.service.ITAssayItemService;
  16. import org.springframework.transaction.annotation.Transactional;
  17. /**
  18. * 化验项目Service业务层处理
  19. *
  20. * @author ruoyi
  21. * @date 2025-03-06
  22. */
  23. @Service
  24. public class TAssayItemServiceImpl implements ITAssayItemService
  25. {
  26. @Autowired
  27. private TAssayItemMapper tAssayItemMapper;
  28. @Autowired
  29. private TAssayItemExtraMapper assayItemExtraMapper;
  30. @Autowired
  31. private SysUserMapper sysUserMapper;
  32. /**
  33. * 查询化验项目
  34. *
  35. * @param id 化验项目主键
  36. * @return 化验项目
  37. */
  38. @Override
  39. public TAssayItem selectTAssayItemById(Long id)
  40. {
  41. TAssayItem tAssayItem = tAssayItemMapper.selectTAssayItemById(id);
  42. if(!Objects.isNull(tAssayItem))
  43. this.addExtra(tAssayItem);
  44. return tAssayItem;
  45. }
  46. private void addExtra(TAssayItem tAssayItem) {
  47. Long id = tAssayItem.getId();
  48. List<TAssayItemExtra> fyList = this.assayItemExtraMapper.selectTAssayItemExtraList(TAssayItemExtra.builder().itemId(id).type(0).build());
  49. tAssayItem.setFyList(fyList);
  50. tAssayItem.setFyAmount(fyList.stream().map(TAssayItemExtra::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
  51. List<TAssayItemExtra> yjList = this.assayItemExtraMapper.selectTAssayItemExtraList(TAssayItemExtra.builder().itemId(id).type(1).build());
  52. tAssayItem.setYjList(yjList);
  53. tAssayItem.setYjAmount(yjList.stream().map(TAssayItemExtra::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
  54. //2025年03月13日11:16:04 额外返回创建人和编辑人对象
  55. String createBy = tAssayItem.getCreateBy();
  56. String updateBy = tAssayItem.getUpdateBy();
  57. if(StringUtils.isNotBlank(createBy))
  58. tAssayItem.setCreateUser(this.sysUserMapper.selectUserById(Long.valueOf(createBy)));
  59. if(StringUtils.isNotBlank(updateBy))
  60. tAssayItem.setUpdateUser(this.sysUserMapper.selectUserById(Long.valueOf(updateBy)));
  61. }
  62. public static void main(String[] args) {
  63. /*TAssayItemExtra tAssayItemExtra = new TAssayItemExtra();
  64. tAssayItemExtra.setAmount(BigDecimal.ZERO);
  65. TAssayItemExtra tAssayItemExtra1 = new TAssayItemExtra();
  66. tAssayItemExtra1.setAmount(BigDecimal.ZERO);
  67. List<TAssayItemExtra> list = Arrays.asList(tAssayItemExtra, tAssayItemExtra1);*/
  68. List<TAssayItemExtra> list = new ArrayList<>();
  69. BigDecimal bigDecimal = list.stream().map(TAssayItemExtra::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
  70. System.out.println(bigDecimal);
  71. }
  72. /**
  73. * 查询化验项目列表
  74. *
  75. * @param tAssayItem 化验项目
  76. * @return 化验项目
  77. */
  78. @Override
  79. public List<TAssayItem> selectTAssayItemList(TAssayItem tAssayItem)
  80. {
  81. List<TAssayItem> tAssayItems = tAssayItemMapper.selectTAssayItemList(tAssayItem);
  82. if(!CollectionUtils.isEmpty(tAssayItems)){
  83. for (TAssayItem assayItem : tAssayItems) {
  84. this.addExtra(assayItem);
  85. }
  86. }
  87. return tAssayItems;
  88. }
  89. /**
  90. * 新增化验项目
  91. *
  92. * @param tAssayItem 化验项目
  93. * @return 结果
  94. */
  95. @Override
  96. public int insertTAssayItem(TAssayItem tAssayItem)
  97. {
  98. tAssayItem.setCreateTime(DateUtils.getNowDate());
  99. //存放的是用户ID
  100. tAssayItem.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
  101. return tAssayItemMapper.insertTAssayItem(tAssayItem);
  102. }
  103. /**
  104. * 修改化验项目
  105. *
  106. * @param tAssayItem 化验项目
  107. * @return 结果
  108. */
  109. @Override
  110. @Transactional
  111. public int updateTAssayItem(TAssayItem tAssayItem)
  112. {
  113. tAssayItem.setUpdateTime(DateUtils.getNowDate());
  114. //存放的是用户ID
  115. tAssayItem.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
  116. //2025年03月14日16:17:49 额外处理明细
  117. this.handleItem(tAssayItem);
  118. return tAssayItemMapper.updateTAssayItem(tAssayItem);
  119. }
  120. private void handleItem(TAssayItem tAssayItem) {
  121. addItem(tAssayItem.getFyList(), tAssayItem.getId());
  122. addItem(tAssayItem.getYjList(), tAssayItem.getId());
  123. }
  124. private void addItem(List<TAssayItemExtra> list, Long id) {
  125. //先删除以前的关联数据
  126. List<TAssayItemExtra> tAssayItemExtras = this.assayItemExtraMapper.selectTAssayItemExtraList(TAssayItemExtra.builder().itemId(id).build());
  127. if(!CollectionUtils.isEmpty(tAssayItemExtras)){
  128. for (TAssayItemExtra tAssayItemExtra : tAssayItemExtras) {
  129. this.assayItemExtraMapper.deleteTAssayItemExtraById(tAssayItemExtra.getId());
  130. }
  131. }
  132. //添加新的关联数据
  133. if(!CollectionUtils.isEmpty(list)){
  134. for (TAssayItemExtra tAssayItemExtra : list) {
  135. tAssayItemExtra.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
  136. tAssayItemExtra.setCreateTime(DateUtils.getNowDate());
  137. this.assayItemExtraMapper.insertTAssayItemExtra(tAssayItemExtra);
  138. }
  139. }
  140. }
  141. /**
  142. * 批量删除化验项目
  143. *
  144. * @param ids 需要删除的化验项目主键
  145. * @return 结果
  146. */
  147. @Override
  148. public int deleteTAssayItemByIds(Long[] ids)
  149. {
  150. return tAssayItemMapper.deleteTAssayItemByIds(ids);
  151. }
  152. /**
  153. * 删除化验项目信息
  154. *
  155. * @param id 化验项目主键
  156. * @return 结果
  157. */
  158. @Override
  159. public int deleteTAssayItemById(Long id)
  160. {
  161. return tAssayItemMapper.deleteTAssayItemById(id);
  162. }
  163. }