123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- package com.ruoyi.business.service.impl;
- import java.math.BigDecimal;
- import java.util.*;
- import com.ruoyi.business.domain.TAssayItemExtra;
- import com.ruoyi.business.mapper.TAssayItemExtraMapper;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.system.mapper.SysUserMapper;
- import org.apache.commons.collections4.CollectionUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.ruoyi.business.mapper.TAssayItemMapper;
- import com.ruoyi.business.domain.TAssayItem;
- import com.ruoyi.business.service.ITAssayItemService;
- import org.springframework.transaction.annotation.Transactional;
- /**
- * 化验项目Service业务层处理
- *
- * @author ruoyi
- * @date 2025-03-06
- */
- @Service
- public class TAssayItemServiceImpl implements ITAssayItemService
- {
- @Autowired
- private TAssayItemMapper tAssayItemMapper;
- @Autowired
- private TAssayItemExtraMapper assayItemExtraMapper;
- @Autowired
- private SysUserMapper sysUserMapper;
- /**
- * 查询化验项目
- *
- * @param id 化验项目主键
- * @return 化验项目
- */
- @Override
- public TAssayItem selectTAssayItemById(Long id)
- {
- TAssayItem tAssayItem = tAssayItemMapper.selectTAssayItemById(id);
- if(!Objects.isNull(tAssayItem))
- this.addExtra(tAssayItem);
- return tAssayItem;
- }
- private void addExtra(TAssayItem tAssayItem) {
- Long id = tAssayItem.getId();
- List<TAssayItemExtra> fyList = this.assayItemExtraMapper.selectTAssayItemExtraList(TAssayItemExtra.builder().itemId(id).type(0).build());
- tAssayItem.setFyList(fyList);
- tAssayItem.setFyAmount(fyList.stream().map(TAssayItemExtra::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
- List<TAssayItemExtra> yjList = this.assayItemExtraMapper.selectTAssayItemExtraList(TAssayItemExtra.builder().itemId(id).type(1).build());
- tAssayItem.setYjList(yjList);
- tAssayItem.setYjAmount(yjList.stream().map(TAssayItemExtra::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
- //2025年03月13日11:16:04 额外返回创建人和编辑人对象
- String createBy = tAssayItem.getCreateBy();
- String updateBy = tAssayItem.getUpdateBy();
- if(StringUtils.isNotBlank(createBy))
- tAssayItem.setCreateUser(this.sysUserMapper.selectUserById(Long.valueOf(createBy)));
- if(StringUtils.isNotBlank(updateBy))
- tAssayItem.setUpdateUser(this.sysUserMapper.selectUserById(Long.valueOf(updateBy)));
- }
- public static void main(String[] args) {
- /*TAssayItemExtra tAssayItemExtra = new TAssayItemExtra();
- tAssayItemExtra.setAmount(BigDecimal.ZERO);
- TAssayItemExtra tAssayItemExtra1 = new TAssayItemExtra();
- tAssayItemExtra1.setAmount(BigDecimal.ZERO);
- List<TAssayItemExtra> list = Arrays.asList(tAssayItemExtra, tAssayItemExtra1);*/
- List<TAssayItemExtra> list = new ArrayList<>();
- BigDecimal bigDecimal = list.stream().map(TAssayItemExtra::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
- System.out.println(bigDecimal);
- }
- /**
- * 查询化验项目列表
- *
- * @param tAssayItem 化验项目
- * @return 化验项目
- */
- @Override
- public List<TAssayItem> selectTAssayItemList(TAssayItem tAssayItem)
- {
- List<TAssayItem> tAssayItems = tAssayItemMapper.selectTAssayItemList(tAssayItem);
- if(!CollectionUtils.isEmpty(tAssayItems)){
- for (TAssayItem assayItem : tAssayItems) {
- this.addExtra(assayItem);
- }
- }
- return tAssayItems;
- }
- /**
- * 新增化验项目
- *
- * @param tAssayItem 化验项目
- * @return 结果
- */
- @Override
- public int insertTAssayItem(TAssayItem tAssayItem)
- {
- tAssayItem.setCreateTime(DateUtils.getNowDate());
- //存放的是用户ID
- tAssayItem.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
- return tAssayItemMapper.insertTAssayItem(tAssayItem);
- }
- /**
- * 修改化验项目
- *
- * @param tAssayItem 化验项目
- * @return 结果
- */
- @Override
- @Transactional
- public int updateTAssayItem(TAssayItem tAssayItem)
- {
- tAssayItem.setUpdateTime(DateUtils.getNowDate());
- //存放的是用户ID
- tAssayItem.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
- //2025年03月14日16:17:49 额外处理明细
- this.handleItem(tAssayItem);
- return tAssayItemMapper.updateTAssayItem(tAssayItem);
- }
- private void handleItem(TAssayItem tAssayItem) {
- addItem(tAssayItem.getFyList(), tAssayItem.getId());
- addItem(tAssayItem.getYjList(), tAssayItem.getId());
- }
- private void addItem(List<TAssayItemExtra> list, Long id) {
- //先删除以前的关联数据
- List<TAssayItemExtra> tAssayItemExtras = this.assayItemExtraMapper.selectTAssayItemExtraList(TAssayItemExtra.builder().itemId(id).build());
- if(!CollectionUtils.isEmpty(tAssayItemExtras)){
- for (TAssayItemExtra tAssayItemExtra : tAssayItemExtras) {
- this.assayItemExtraMapper.deleteTAssayItemExtraById(tAssayItemExtra.getId());
- }
- }
- //添加新的关联数据
- if(!CollectionUtils.isEmpty(list)){
- for (TAssayItemExtra tAssayItemExtra : list) {
- tAssayItemExtra.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
- tAssayItemExtra.setCreateTime(DateUtils.getNowDate());
- this.assayItemExtraMapper.insertTAssayItemExtra(tAssayItemExtra);
- }
- }
- }
- /**
- * 批量删除化验项目
- *
- * @param ids 需要删除的化验项目主键
- * @return 结果
- */
- @Override
- public int deleteTAssayItemByIds(Long[] ids)
- {
- return tAssayItemMapper.deleteTAssayItemByIds(ids);
- }
- /**
- * 删除化验项目信息
- *
- * @param id 化验项目主键
- * @return 结果
- */
- @Override
- public int deleteTAssayItemById(Long id)
- {
- return tAssayItemMapper.deleteTAssayItemById(id);
- }
- }
|