|
@@ -5,18 +5,18 @@ import cn.com.ty.lift.business.contract.dao.entity.ContractsExtend;
|
|
|
import cn.com.ty.lift.business.contract.dao.entity.ContractsHistory;
|
|
|
import cn.com.ty.lift.business.contract.dao.entity.Payment;
|
|
|
import cn.com.ty.lift.business.contract.dao.entity.model.request.ContractRequest;
|
|
|
-import cn.com.ty.lift.business.contract.dao.entity.model.response.ContractResponse;
|
|
|
import cn.com.ty.lift.business.contract.dao.entity.model.request.ContractsHistoryRequest;
|
|
|
+import cn.com.ty.lift.business.contract.dao.entity.model.response.ContractResponse;
|
|
|
import cn.com.ty.lift.business.contract.dao.mapper.ContractsMapper;
|
|
|
import cn.com.ty.lift.business.framework.util.MessageUtils;
|
|
|
import cn.com.ty.lift.business.project.dao.entity.Project;
|
|
|
import cn.com.ty.lift.business.project.service.ProjectService;
|
|
|
import cn.com.ty.lift.common.utils.DateUtils;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -24,10 +24,13 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static java.math.BigDecimal.ZERO;
|
|
|
+
|
|
|
/**
|
|
|
* @author bieao
|
|
|
* @date 2019/12/07
|
|
@@ -113,6 +116,18 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
|
|
|
String contractCode = DateUtils.generateCode();
|
|
|
contracts.setCode("HT" + contractCode);
|
|
|
}
|
|
|
+ List<Payment> paymentList = extend.getPaymentList();
|
|
|
+ if (CollUtil.isNotEmpty(paymentList)) {
|
|
|
+ //应收金额总计
|
|
|
+ BigDecimal planMoneyTotal = paymentList.stream().map(Payment::getPlanMoney).reduce(ZERO, BigDecimal::add);
|
|
|
+ contracts.setPlanMoneyTotal(planMoneyTotal);
|
|
|
+ //实收金额总计
|
|
|
+ BigDecimal workMoneyTotal = paymentList.stream().map(Payment::getWorkMoney).reduce(ZERO, BigDecimal::add);
|
|
|
+ contracts.setWorkMoneyTotal(workMoneyTotal);
|
|
|
+ //开票金额总计
|
|
|
+ BigDecimal invoiceTotal = paymentList.stream().map(Payment::getAmountInvoice).reduce(ZERO, BigDecimal::add);
|
|
|
+ contracts.setInvoiceMoneyTotal(invoiceTotal);
|
|
|
+ }
|
|
|
//插入合同信息
|
|
|
int result = contractsMapper.insert(contracts);
|
|
|
if (result < 0) {
|
|
@@ -121,7 +136,7 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
|
|
|
return RestResponse.fail(MessageUtils.get("msg.add.fail"));
|
|
|
}
|
|
|
//批量插入收款信息
|
|
|
- boolean ret = paymentService.insertBatch(extend.getPaymentList(), contracts.getId());
|
|
|
+ boolean ret = paymentService.insertBatch(paymentList, contracts.getId());
|
|
|
if (!ret) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return RestResponse.fail(MessageUtils.get("msg.add.batch.fail"));
|
|
@@ -151,11 +166,23 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
|
|
|
Contracts contracts = extend.getContracts();
|
|
|
//修改合同信息
|
|
|
contracts.setIsCheck(0);
|
|
|
+ List<Payment> paymentList = extend.getPaymentList();
|
|
|
+ //应收金额总计
|
|
|
+ BigDecimal planMoneyTotal = paymentList.stream().map(Payment::getPlanMoney).reduce(ZERO, BigDecimal::add);
|
|
|
+ contracts.setPlanMoneyTotal(planMoneyTotal);
|
|
|
+ //实收金额总计
|
|
|
+ BigDecimal workMoneyTotal = paymentList.stream().map(Payment::getWorkMoney).reduce(ZERO, BigDecimal::add);
|
|
|
+ contracts.setWorkMoneyTotal(workMoneyTotal);
|
|
|
+ //开票金额总计
|
|
|
+ BigDecimal invoiceTotal = paymentList.stream().map(Payment::getAmountInvoice).reduce(ZERO, BigDecimal::add);
|
|
|
+ contracts.setInvoiceMoneyTotal(invoiceTotal);
|
|
|
+
|
|
|
boolean contractResult = updateById(contracts);
|
|
|
if (!contractResult) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
|
|
|
}
|
|
|
+
|
|
|
//修改付款信息
|
|
|
boolean paymentResult = paymentService.modifyBatchById(extend.getPaymentList());
|
|
|
if (!paymentResult) {
|