|
@@ -19,6 +19,7 @@ import com.zjugis.business.flow.usemoney.controller.vo.UseMoneyDeptRespVO;
|
|
|
import com.zjugis.business.flow.usemoney.service.UseMoneyDetailService;
|
|
|
import com.zjugis.business.flow.usemoney.service.UseMoneyService;
|
|
|
import com.zjugis.business.mapper.ContractMapper;
|
|
|
+import com.zjugis.business.mapper.ProjectAmountMapper;
|
|
|
import com.zjugis.business.mapper.ProjectMapper;
|
|
|
import com.zjugis.business.service.*;
|
|
|
import com.zjugis.framework.common.exception.ServiceException;
|
|
@@ -37,6 +38,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
@@ -97,6 +99,9 @@ public class ContractServiceImpl implements ContractService{
|
|
|
|
|
|
@Autowired
|
|
|
private CommonService commonService;
|
|
|
+ @Autowired
|
|
|
+ ProjectAmountMapper projectAmountMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public String insert(Contract contract) {
|
|
@@ -116,7 +121,36 @@ public class ContractServiceImpl implements ContractService{
|
|
|
Contract contract = new Contract();
|
|
|
BeanUtils.copyProperties(record,contract);
|
|
|
updateProjectXsry(record);
|
|
|
- return contractMapper.updateById(contract);
|
|
|
+ if(contract.getTaxHsjeTotal()!=null){
|
|
|
+ contract.setContractAmount(contract.getTaxHsjeTotal());
|
|
|
+ }
|
|
|
+ int count =contractMapper.updateById(contract);
|
|
|
+ Contract contract1=contractMapper.selectById(contract.getId());
|
|
|
+ ProjectAmount projectAmounts = projectAmountService.selectById(contract1.getProjectId());
|
|
|
+ //更新PROJECT_AMOUNT表
|
|
|
+ ProjectAmount projectAmount=new ProjectAmount();
|
|
|
+ projectAmount.setProjectId(contract1.getProjectId());
|
|
|
+ projectAmount.setContractAmount(contractMapper.getSumContractById(contract1.getProjectId()));
|
|
|
+ projectAmount.setContractBalance(projectAmount.getContractAmount().subtract(projectAmounts.getReceivableAmount()).subtract(projectAmounts.getReturnAmount()));
|
|
|
+ projectAmount.setUpdateTime(LocalDateTime.now());
|
|
|
+ projectAmountMapper.updateById(projectAmount);
|
|
|
+ //如果是有子合同的主合同,更新项目产值和更新PROJECT_AMOUNT的虚拟合同额
|
|
|
+ if(contract1.getContractType()!=null&&contract1.getContractType().equals(1)){
|
|
|
+ //Contract contract2=contractMapper.selectById(contract1.getParentId());
|
|
|
+ BigDecimal child = contractMapper.getSumChildById(contract1.getId());
|
|
|
+ if(child!=null){
|
|
|
+ // Contract parentcon=contractMapper.selectById(contract1.getParentId());
|
|
|
+ Project project=new Project();
|
|
|
+ project.setId(contract1.getProjectId());
|
|
|
+ project.setOutputValue(contract1.getContractAmount().subtract(child));
|
|
|
+ projectMapper.updateById(project);
|
|
|
+ ProjectAmount projectAmount2=new ProjectAmount();
|
|
|
+ projectAmount2.setProjectId(contract1.getProjectId());
|
|
|
+ projectAmount2.setVirtualAmount(child);
|
|
|
+ projectAmountMapper.updateById(projectAmount2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return count;
|
|
|
}
|
|
|
|
|
|
private void updateProjectXsry(ContractRequest record) {
|