|
|
@@ -16,15 +16,27 @@
|
|
|
*/
|
|
|
package com.trade.purchase.extra.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.trade.purchase.extra.entity.Claim;
|
|
|
import com.trade.purchase.extra.entity.ClaimItem;
|
|
|
import com.trade.purchase.extra.mapper.ClaimItemMapper;
|
|
|
+import com.trade.purchase.extra.mapper.ClaimMapper;
|
|
|
import com.trade.purchase.extra.service.IClaimItemService;
|
|
|
import com.trade.purchase.extra.vo.ClaimItemVO;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
+import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.rmi.server.ServerCloneException;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 费用报销明细表 服务实现类
|
|
|
@@ -33,8 +45,11 @@ import java.util.List;
|
|
|
* @since 2022-04-08
|
|
|
*/
|
|
|
@Service
|
|
|
+@AllArgsConstructor
|
|
|
public class ClaimItemServiceImpl extends ServiceImpl<ClaimItemMapper, ClaimItem> implements IClaimItemService {
|
|
|
|
|
|
+ private final ClaimMapper claimMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<ClaimItemVO> selectClaimItemPage(IPage<ClaimItemVO> page, ClaimItemVO claimItem) {
|
|
|
return page.setRecords(baseMapper.selectClaimItemPage(page, claimItem));
|
|
|
@@ -51,4 +66,33 @@ public class ClaimItemServiceImpl extends ServiceImpl<ClaimItemMapper, ClaimItem
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<Map<String, Object>> saveActualAmount(ClaimItem claimItem){
|
|
|
+ //修改明细实报金额
|
|
|
+ ClaimItem item = baseMapper.selectById(claimItem.getId());
|
|
|
+ if (ObjectUtil.isEmpty(item)){
|
|
|
+ throw new SecurityException("明细数据异常");
|
|
|
+ }
|
|
|
+ item.setActualAmount(claimItem.getActualAmount());
|
|
|
+ baseMapper.updateById(item);
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ //修改主表总实报金额
|
|
|
+ LambdaQueryWrapper<ClaimItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(ClaimItem::getTenantId, AuthUtil.getTenantId());
|
|
|
+ lambdaQueryWrapper.eq(ClaimItem::getIsDeleted, 0);
|
|
|
+ lambdaQueryWrapper.eq(ClaimItem::getPid, claimItem.getPid());
|
|
|
+ List<ClaimItem> list = baseMapper.selectList(lambdaQueryWrapper);
|
|
|
+
|
|
|
+ BigDecimal totalActualAmount = list.stream().map(ClaimItem::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ Claim claim = new Claim();
|
|
|
+ claim.setTotalActualAmount(totalActualAmount);
|
|
|
+ claim.setId(claimItem.getPid());
|
|
|
+ claimMapper.updateById(claim);
|
|
|
+
|
|
|
+ map.put("totalActualAmount",totalActualAmount);
|
|
|
+ return R.data(map);
|
|
|
+ }
|
|
|
+
|
|
|
}
|