|
@@ -0,0 +1,114 @@
|
|
|
+package com.fjhx.sale.service.claim.impl;
|
|
|
+
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.fjhx.account.entity.account.po.AccountRunningWater;
|
|
|
+import com.fjhx.account.service.account.AccountRunningWaterService;
|
|
|
+import com.fjhx.file.utils.ObsFileUtil;
|
|
|
+import com.fjhx.sale.entity.claim.po.Claim;
|
|
|
+import com.fjhx.sale.entity.claim.po.ClaimContract;
|
|
|
+import com.fjhx.sale.mapper.claim.ClaimMapper;
|
|
|
+import com.fjhx.sale.service.claim.ClaimContractService;
|
|
|
+import com.fjhx.sale.service.claim.ClaimService;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.obs.services.internal.ServiceException;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.fjhx.sale.entity.claim.vo.ClaimVo;
|
|
|
+import com.fjhx.sale.entity.claim.dto.ClaimSelectDto;
|
|
|
+import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
+import com.fjhx.sale.entity.claim.dto.ClaimDto;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 到账认领 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author
|
|
|
+ * @since 2023-04-18
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements ClaimService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ClaimContractService claimContractService;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AccountRunningWaterService accountRunningWaterService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<ClaimVo> getPage(ClaimSelectDto dto) {
|
|
|
+ IWrapper<Claim> wrapper = getWrapper();
|
|
|
+ wrapper.orderByDesc("c", Claim::getId);
|
|
|
+ Page<ClaimVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ClaimVo detail(Long id) {
|
|
|
+ Claim Claim = this.getById(id);
|
|
|
+ ClaimVo result = BeanUtil.toBean(Claim, ClaimVo.class);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加
|
|
|
+ * @param claim
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void add(Claim claim) {
|
|
|
+ Claim data = this.getOne(Wrappers.<Claim>query().lambda().eq(Claim::getBusinessId,claim.getBusinessId()));
|
|
|
+ if(ObjectUtils.isNotEmpty(data)){
|
|
|
+ throw new ServiceException("当前这笔资金已被认领");
|
|
|
+ }
|
|
|
+ this.save(claim);
|
|
|
+ List<ClaimContract> claimContractList = claim.getClaimContractList();
|
|
|
+ if(CollectionUtils.isNotEmpty(claim.getClaimContractList())){
|
|
|
+ for(ClaimContract c:claimContractList){
|
|
|
+ c.setClaimId(claim.getId());
|
|
|
+ }
|
|
|
+ claimContractService.saveBatch(claimContractList);
|
|
|
+ }
|
|
|
+ //更新流水数据为认领状态
|
|
|
+ AccountRunningWater water = new AccountRunningWater();
|
|
|
+ water.setId(claim.getBusinessId());
|
|
|
+ water.setIsClaim(1);//已认领状态
|
|
|
+ accountRunningWaterService.updateById(water);
|
|
|
+ ObsFileUtil.saveFile(claim.getFileList(),claim.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void edit(ClaimDto claimDto) {
|
|
|
+ this.updateById(claimDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除
|
|
|
+ * @param id 流水ID
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void delete(Long id) {
|
|
|
+ Claim claim = this.getOne(Wrappers.<Claim>query().lambda().eq(Claim::getBusinessId,id));
|
|
|
+ if(ObjectUtils.isNotEmpty(claim.getBusinessId())){
|
|
|
+ //更新流水数据为认领状态
|
|
|
+ AccountRunningWater water = new AccountRunningWater();
|
|
|
+ water.setId(claim.getBusinessId());
|
|
|
+ water.setIsClaim(0);//未认领状态
|
|
|
+ accountRunningWaterService.updateById(water);
|
|
|
+ }
|
|
|
+ this.removeById(Wrappers.<Claim>query().lambda().eq(Claim::getBusinessId,id));
|
|
|
+ claimContractService.remove(Wrappers.<ClaimContract>query().lambda().eq(ClaimContract::getClaimId,claim.getId()));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|