|
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.alibaba.nacos.common.utils.StringUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.zjugis.business.bean.entity.Contract;
|
|
|
+import com.zjugis.business.bean.entity.ContractInvoiceRelation;
|
|
|
import com.zjugis.business.bean.entity.ContractReturnMoney;
|
|
|
import com.zjugis.business.bean.response.ContractReturnMoneyResponse;
|
|
|
import com.zjugis.business.mapper.ContractReturnMoneyMapper;
|
|
@@ -14,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -76,14 +78,28 @@ public class ContractReturnMoneyServiceImpl implements ContractReturnMoneyServic
|
|
|
if(contractReturnMoney.getRelationList() != null && !contractReturnMoney.getRelationList().isEmpty()){
|
|
|
contractInvoiceRelationService.updateAmount(contractReturnMoney.getRelationList());
|
|
|
}
|
|
|
- Contract contract = contractService.selectByPrimaryKey(contractReturnMoney.getContractId());
|
|
|
- if(StringUtils.isNotBlank(contract.getProjectId())) {
|
|
|
- projectService.calcProject(contract.getProjectId());
|
|
|
+ for(ContractInvoiceRelation list: contractReturnMoney.getRelationList()){
|
|
|
+ Contract contract = contractService.selectByPrimaryKey(list.getContractId());
|
|
|
+ if(StringUtils.isNotBlank(contract.getProjectId())) {
|
|
|
+ projectService.calcProject(contract.getProjectId());
|
|
|
+ projectService.updateProjectAmount(contract.getProjectId(),list.getContractId());
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
contractInvoiceService.updateAmountStatus(contractReturnMoney.getContractInvoiceId());
|
|
|
contractService.updateAmountStatus(contractReturnMoney.getContractId());
|
|
|
if(!"冲红".equals(contractReturnMoney.getBz())){
|
|
|
- contractMessageService.addByReturnMoney(contractReturnMoney);
|
|
|
+ BigDecimal sum=BigDecimal.ZERO;
|
|
|
+ for(ContractInvoiceRelation list: contractReturnMoney.getRelationList()){
|
|
|
+ sum=sum.add(list.getInvoiceAmount());
|
|
|
+ }
|
|
|
+ BigDecimal returnAmount=contractReturnMoney.getReturnAmount();
|
|
|
+ for(ContractInvoiceRelation list: contractReturnMoney.getRelationList()){
|
|
|
+ //获取主项目和子项目
|
|
|
+ contractReturnMoney.setReturnAmount(returnAmount.divide(sum,10, RoundingMode.HALF_UP).multiply(list.getInvoiceAmount()));
|
|
|
+ contractReturnMoney.setContractId(list.getContractId());
|
|
|
+ contractMessageService.addByReturnMoney(contractReturnMoney);
|
|
|
+ }
|
|
|
}
|
|
|
return contractReturnMoney.getId();
|
|
|
}
|