通用项目详情完善
This commit is contained in:
@@ -37,4 +37,62 @@ public class ProjectCommon {
|
|||||||
* 来源(1:收入合同,2:打包管理)
|
* 来源(1:收入合同,2:打包管理)
|
||||||
*/
|
*/
|
||||||
public final static Integer COME2 = 2;
|
public final static Integer COME2 = 2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
public final static Integer IN_ACCOUNT0 = 0;
|
||||||
|
/**
|
||||||
|
* 到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
public final static Integer IN_ACCOUNT1 = 1;
|
||||||
|
/**
|
||||||
|
* 到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
public final static Integer IN_ACCOUNT2 = 2;
|
||||||
|
/**
|
||||||
|
* 开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
public final static Integer MAKE_INVOICE0 = 0;
|
||||||
|
/**
|
||||||
|
* 开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
public final static Integer MAKE_INVOICE1 = 1;
|
||||||
|
/**
|
||||||
|
* 开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
public final static Integer MAKE_INVOICE2 = 2;
|
||||||
|
/**
|
||||||
|
* 邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))
|
||||||
|
*/
|
||||||
|
public final static Integer MAIL0 = 0;
|
||||||
|
/**
|
||||||
|
* 邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))
|
||||||
|
*/
|
||||||
|
public final static Integer MAIL1 = 1;
|
||||||
|
/**
|
||||||
|
* 邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))
|
||||||
|
*/
|
||||||
|
public final static Integer MAIL2 = 2;
|
||||||
|
/**
|
||||||
|
* 需要发票(1:增值税普通发票,2:增值税专用发票,0:否)
|
||||||
|
*/
|
||||||
|
public final static Integer NEED_INVOICE0 = 0;
|
||||||
|
/**
|
||||||
|
* 需要发票(1:增值税普通发票,2:增值税专用发票,0:否)
|
||||||
|
*/
|
||||||
|
public final static Integer NEED_INVOICE1 = 1;
|
||||||
|
/**
|
||||||
|
* 需要发票(1:增值税普通发票,2:增值税专用发票,0:否)
|
||||||
|
*/
|
||||||
|
public final static Integer NEED_INVOICE2 = 2;
|
||||||
|
/**
|
||||||
|
* 邮寄状态(0:未邮寄,1:已邮寄)
|
||||||
|
*/
|
||||||
|
public final static Integer POST_STATUS0 = 0;
|
||||||
|
/**
|
||||||
|
* 邮寄状态(0:未邮寄,1:已邮寄)
|
||||||
|
*/
|
||||||
|
public final static Integer POST_STATUS1 = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
UNION ALL
|
UNION ALL
|
||||||
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'','',gsub.remarks,gsub.contract_num,gsub.charge_company_temporary_id,gsub.charge_way
|
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'','',gsub.remarks,gsub.contract_num,gsub.charge_company_temporary_id,gsub.charge_way
|
||||||
from pay_working_group g
|
from pay_working_group g
|
||||||
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
|
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
|
||||||
<where>
|
<where>
|
||||||
<if test="projectId != null and projectId != ''">
|
<if test="projectId != null and projectId != ''">
|
||||||
AND gsub.id = #{projectId}
|
AND gsub.id = #{projectId}
|
||||||
|
|||||||
+13
@@ -1,6 +1,9 @@
|
|||||||
package com.jero.common.service;
|
package com.jero.common.service;
|
||||||
|
|
||||||
import com.jero.common.vo.ProjectDetailVO;
|
import com.jero.common.vo.ProjectDetailVO;
|
||||||
|
import com.jero.common.vo.ProjectStatusVO;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
public interface ProjectDetailService {
|
public interface ProjectDetailService {
|
||||||
|
|
||||||
@@ -13,4 +16,14 @@ public interface ProjectDetailService {
|
|||||||
* @Exception
|
* @Exception
|
||||||
*/
|
*/
|
||||||
ProjectDetailVO getProjectDetail(String projectId);
|
ProjectDetailVO getProjectDetail(String projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description 获取变更应收金额之后的状态
|
||||||
|
* @Author lqt
|
||||||
|
* @Date 2021/9/14
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Exception
|
||||||
|
*/
|
||||||
|
ProjectStatusVO getStatus(String projectId, BigDecimal receivableAmount);
|
||||||
}
|
}
|
||||||
|
|||||||
+91
@@ -8,6 +8,7 @@ import com.jero.common.service.ProjectDetailService;
|
|||||||
import com.jero.common.system.api.ISysBaseAPI;
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
import com.jero.common.util.PasswordUtil;
|
import com.jero.common.util.PasswordUtil;
|
||||||
import com.jero.common.vo.ProjectDetailVO;
|
import com.jero.common.vo.ProjectDetailVO;
|
||||||
|
import com.jero.common.vo.ProjectStatusVO;
|
||||||
import com.jero.company.entity.PayCompanyManagement;
|
import com.jero.company.entity.PayCompanyManagement;
|
||||||
import com.jero.company.entity.PayContactsManagement;
|
import com.jero.company.entity.PayContactsManagement;
|
||||||
import com.jero.company.service.IPayCompanyManagementService;
|
import com.jero.company.service.IPayCompanyManagementService;
|
||||||
@@ -17,6 +18,8 @@ import com.jero.contract.entity.PayIncomeContractAssociated;
|
|||||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||||
import com.jero.contract.service.IPayIncomeContractService;
|
import com.jero.contract.service.IPayIncomeContractService;
|
||||||
import com.jero.mail.entity.PayMailBill;
|
import com.jero.mail.entity.PayMailBill;
|
||||||
|
import com.jero.mail.entity.PayMailBillProject;
|
||||||
|
import com.jero.mail.service.IPayMailBillProjectService;
|
||||||
import com.jero.mail.service.IPayMailBillService;
|
import com.jero.mail.service.IPayMailBillService;
|
||||||
import com.jero.payment.entity.PayPaymentRecord;
|
import com.jero.payment.entity.PayPaymentRecord;
|
||||||
import com.jero.payment.service.IPayPaymentRecordService;
|
import com.jero.payment.service.IPayPaymentRecordService;
|
||||||
@@ -31,8 +34,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ProjectDetailServiceImpl implements ProjectDetailService {
|
public class ProjectDetailServiceImpl implements ProjectDetailService {
|
||||||
@@ -57,6 +62,8 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
|
|||||||
private IPayIncomeContractService payIncomeContractService;
|
private IPayIncomeContractService payIncomeContractService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||||
|
@Autowired
|
||||||
|
private IPayMailBillProjectService payMailBillProjectService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProjectDetailVO getProjectDetail(String projectId) {
|
public ProjectDetailVO getProjectDetail(String projectId) {
|
||||||
@@ -185,4 +192,88 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
|
|||||||
}
|
}
|
||||||
return projectDetailVO;
|
return projectDetailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProjectStatusVO getStatus(String projectId, BigDecimal receivableAmount) {
|
||||||
|
if(StringUtils.isBlank(projectId)){
|
||||||
|
throw new JeroBootException("项目id不能为空!");
|
||||||
|
}
|
||||||
|
if(receivableAmount.compareTo(new BigDecimal("0.00")) == 0){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 获取项目信息
|
||||||
|
PayCommonProject payCommonProject = projectDetailMapper.queryProject(projectId);
|
||||||
|
if(Objects.isNull(payCommonProject)){
|
||||||
|
throw new JeroBootException("项目不存在!");
|
||||||
|
}
|
||||||
|
// 应收金额没有变更
|
||||||
|
if(receivableAmount.compareTo(payCommonProject.getReceivableAmount()) == 0){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
ProjectStatusVO projectStatusVO = new ProjectStatusVO();
|
||||||
|
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
|
||||||
|
queryPayMailBillProject.eq(PayMailBillProject::getProjectId,projectId);
|
||||||
|
List<PayMailBillProject> listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject);
|
||||||
|
// 开票金额
|
||||||
|
BigDecimal invoice = new BigDecimal("0.00");
|
||||||
|
// 开票次数
|
||||||
|
int c = listPayMailBillProject.size();
|
||||||
|
// 邮寄次数
|
||||||
|
int y = 0;
|
||||||
|
if(!CollectionUtils.isEmpty(listPayMailBillProject)){
|
||||||
|
BigDecimal b = listPayMailBillProject.stream().map(PayMailBillProject::getInvoiceAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
|
||||||
|
invoice = invoice.add(b);
|
||||||
|
if(receivableAmount.compareTo(invoice) == -1){
|
||||||
|
throw new JeroBootException("应收金额不能小于开票金额!");
|
||||||
|
}
|
||||||
|
List<String> list = listPayMailBillProject.stream().map(PayMailBillProject::getBillId).collect(Collectors.toList());
|
||||||
|
LambdaQueryWrapper<PayMailBill> queryPayMailBill = new LambdaQueryWrapper<>();
|
||||||
|
queryPayMailBill.in(PayMailBill::getId,list);
|
||||||
|
queryPayMailBill.eq(PayMailBill::getPostStatus,ProjectCommon.POST_STATUS1);
|
||||||
|
List<PayMailBill> listPayMailBill = payMailBillService.list(queryPayMailBill);
|
||||||
|
y = listPayMailBill.size();
|
||||||
|
}
|
||||||
|
// 到账
|
||||||
|
// 应收金额 = 实收金额 = 1
|
||||||
|
if(receivableAmount.compareTo(payCommonProject.getPaidAmount()) == 0){
|
||||||
|
projectStatusVO.setInAccount(ProjectCommon.IN_ACCOUNT1);
|
||||||
|
}
|
||||||
|
// 0 = 实收金额 = 0
|
||||||
|
if(payCommonProject.getPaidAmount().compareTo(new BigDecimal("0.00")) == 0){
|
||||||
|
projectStatusVO.setInAccount(ProjectCommon.IN_ACCOUNT0);
|
||||||
|
}
|
||||||
|
// 0 < 实收金额 && 实收金额 < 应收金额 = 2
|
||||||
|
if(payCommonProject.getPaidAmount().compareTo(new BigDecimal("0.00")) == 1
|
||||||
|
&& payCommonProject.getPaidAmount().compareTo(receivableAmount) ==-1){
|
||||||
|
projectStatusVO.setInAccount(ProjectCommon.IN_ACCOUNT2);
|
||||||
|
}
|
||||||
|
// 开票
|
||||||
|
// 不需要开票 || 开票金额 = 0 = 0
|
||||||
|
if(Objects.equals(payCommonProject.getNeedInvoice(),ProjectCommon.NEED_INVOICE0)
|
||||||
|
|| invoice.compareTo(new BigDecimal("0.00")) == 0){
|
||||||
|
projectStatusVO.setMakeInvoice(ProjectCommon.IN_ACCOUNT0);
|
||||||
|
}
|
||||||
|
// 开票金额 = 应收金额 = 1
|
||||||
|
if(invoice.compareTo(receivableAmount) == 0){
|
||||||
|
projectStatusVO.setMakeInvoice(ProjectCommon.IN_ACCOUNT1);
|
||||||
|
}
|
||||||
|
// 开票金额 > 0 && 开票金额 < 实收金额 = 2
|
||||||
|
if(invoice.compareTo(new BigDecimal("0.00")) == 1 && invoice.compareTo(payCommonProject.getPaidAmount()) == -1){
|
||||||
|
projectStatusVO.setMakeInvoice(ProjectCommon.IN_ACCOUNT2);
|
||||||
|
}
|
||||||
|
// 邮寄
|
||||||
|
// 开票金额 = 应收金额 && 邮寄次数 = 开票次数 = 1
|
||||||
|
if(invoice.compareTo(receivableAmount) == 0 && c == y){
|
||||||
|
projectStatusVO.setMail(ProjectCommon.IN_ACCOUNT2);
|
||||||
|
}
|
||||||
|
// 邮寄次数 = 0 = 0
|
||||||
|
if(y == 0){
|
||||||
|
projectStatusVO.setMail(ProjectCommon.IN_ACCOUNT0);
|
||||||
|
}
|
||||||
|
// 邮寄次数 > 0 && 邮寄次数 < 开票次数 = 2
|
||||||
|
if(y > 0 && y <= c){
|
||||||
|
projectStatusVO.setMail(ProjectCommon.IN_ACCOUNT2);
|
||||||
|
}
|
||||||
|
return projectStatusVO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.jero.common.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ProjectStatusVO implements Serializable {
|
||||||
|
/**
|
||||||
|
* 到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
private Integer inAccount;
|
||||||
|
/**
|
||||||
|
* 开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
|
||||||
|
*/
|
||||||
|
private Integer makeInvoice;
|
||||||
|
/**
|
||||||
|
* 邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))
|
||||||
|
*/
|
||||||
|
private Integer mail;
|
||||||
|
}
|
||||||
+2
-2
@@ -46,7 +46,7 @@
|
|||||||
UNION ALL
|
UNION ALL
|
||||||
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'',''
|
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'',''
|
||||||
from pay_working_group g
|
from pay_working_group g
|
||||||
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
|
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
|
||||||
<where>
|
<where>
|
||||||
<if test="companyId != null and companyId != ''">
|
<if test="companyId != null and companyId != ''">
|
||||||
AND gsub.charge_company_id = #{companyId}
|
AND gsub.charge_company_id = #{companyId}
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
select gsub.id,g.working_group_project, gsub.charge_use,
|
select gsub.id,g.working_group_project, gsub.charge_use,
|
||||||
g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'',''
|
g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'',''
|
||||||
from pay_working_group g
|
from pay_working_group g
|
||||||
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
|
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
|
||||||
<where>
|
<where>
|
||||||
<if test="companyId != null and companyId != ''">
|
<if test="companyId != null and companyId != ''">
|
||||||
AND gsub.charge_company_id = #{companyId}
|
AND gsub.charge_company_id = #{companyId}
|
||||||
|
|||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.project.controller;
|
package com.jero.project.controller;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -210,11 +211,11 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
|
|||||||
if(!StringUtils.isBlank(msg)){
|
if(!StringUtils.isBlank(msg)){
|
||||||
return Result.error(msg.toString());
|
return Result.error(msg.toString());
|
||||||
}
|
}
|
||||||
// todo 缺少修改应收金额时查询状态,更新状态
|
|
||||||
payCommonProjectService.editPayCommonProject(payCommonProject);
|
payCommonProjectService.editPayCommonProject(payCommonProject);
|
||||||
return Result.OK("编辑成功!");
|
return Result.OK("编辑成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id删除
|
* 通过id删除
|
||||||
|
|||||||
+31
-2
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.service.ProjectDetailService;
|
import com.jero.common.service.ProjectDetailService;
|
||||||
|
import com.jero.common.vo.ProjectStatusVO;
|
||||||
import com.jero.contract.common.PayIncomeContractCommon;
|
import com.jero.contract.common.PayIncomeContractCommon;
|
||||||
import com.jero.contract.entity.PayIncomeContract;
|
import com.jero.contract.entity.PayIncomeContract;
|
||||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||||
@@ -65,6 +66,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||||
|
@Autowired
|
||||||
|
private ProjectDetailService projectDetailService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -126,6 +129,14 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
if(Objects.isNull(payCommonProjectOld)){
|
if(Objects.isNull(payCommonProjectOld)){
|
||||||
throw new JeroBootException("项目不存在!");
|
throw new JeroBootException("项目不存在!");
|
||||||
}
|
}
|
||||||
|
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
|
||||||
|
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyId())
|
||||||
|
&& (Objects.equals(payCommonProject.getPack(),PayProjectCommon.PACKAGING1)
|
||||||
|
|| !Objects.equals(payCommonProject.getInAccount(),PayProjectCommon.IN_ACCOUNT0)
|
||||||
|
|| !Objects.equals(payCommonProject.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|
||||||
|
|| !Objects.equals(payCommonProject.getMail(),PayProjectCommon.MAIL0))){
|
||||||
|
throw new JeroBootException("来款企业不可更改!");
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
// 编辑保存前再次校验来款项目是否存在
|
// 编辑保存前再次校验来款项目是否存在
|
||||||
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
@@ -142,8 +153,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
|
|
||||||
// 校验项目是否已关联合同
|
// 校验项目是否已关联合同
|
||||||
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payCommonProjectOld.getId());
|
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payCommonProjectOld.getId());
|
||||||
if(!Objects.isNull(payIncomeContract) && !Objects.equals(payIncomeContract.getContractNum(),payCommonProject.getContractNum())){
|
if(!Objects.isNull(payIncomeContract)){
|
||||||
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
|
if(!Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
||||||
|
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
|
||||||
|
}
|
||||||
|
if(!Objects.equals(payIncomeContract.getContractNum(),payCommonProject.getContractNum())){
|
||||||
|
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Objects.isNull(payIncomeContract)){
|
if(Objects.isNull(payIncomeContract)){
|
||||||
@@ -171,6 +187,19 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
|
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
|
||||||
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
|
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
|
||||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsTemporaryId(),payCommonProjectOld.getMailContactsTemporaryId()));
|
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsTemporaryId(),payCommonProjectOld.getMailContactsTemporaryId()));
|
||||||
|
// 变更应收金额,重新校验状态
|
||||||
|
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payCommonProject.getId(),payCommonProject.getReceivableAmount());
|
||||||
|
if(!Objects.isNull(projectStatusVO)){
|
||||||
|
if(!Objects.isNull(projectStatusVO.getInAccount())){
|
||||||
|
payCommonProject.setInAccount(projectStatusVO.getInAccount());
|
||||||
|
}
|
||||||
|
if(!Objects.isNull(projectStatusVO.getMakeInvoice())){
|
||||||
|
payCommonProject.setMakeInvoice(projectStatusVO.getMakeInvoice());
|
||||||
|
}
|
||||||
|
if(!Objects.isNull(projectStatusVO.getMail())){
|
||||||
|
payCommonProject.setMail(projectStatusVO.getMail());
|
||||||
|
}
|
||||||
|
}
|
||||||
payCommonProjectService.updateById(payCommonProject);
|
payCommonProjectService.updateById(payCommonProject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-2
@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.service.ProjectDetailService;
|
||||||
import com.jero.common.util.ValidUtil;
|
import com.jero.common.util.ValidUtil;
|
||||||
|
import com.jero.common.vo.ProjectStatusVO;
|
||||||
import com.jero.company.entity.PayCompanyManagement;
|
import com.jero.company.entity.PayCompanyManagement;
|
||||||
import com.jero.company.entity.PayContactsManagement;
|
import com.jero.company.entity.PayContactsManagement;
|
||||||
import com.jero.company.service.IPayCompanyManagementService;
|
import com.jero.company.service.IPayCompanyManagementService;
|
||||||
@@ -76,6 +78,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
|||||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||||
|
@Autowired
|
||||||
|
private ProjectDetailService projectDetailService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateBatchSetCharge(SetChargeInput input) {
|
public void updateBatchSetCharge(SetChargeInput input) {
|
||||||
@@ -165,6 +169,14 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
|||||||
if(Objects.isNull(payWorkingGroupSubItemOld)){
|
if(Objects.isNull(payWorkingGroupSubItemOld)){
|
||||||
throw new JeroBootException("项目不存在!");
|
throw new JeroBootException("项目不存在!");
|
||||||
}
|
}
|
||||||
|
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
|
||||||
|
if(!Objects.equals(payWorkingGroupSubItem.getChargeCompanyId(),payWorkingGroupSubItemOld.getChargeCompanyId())
|
||||||
|
&& (Objects.equals(payWorkingGroupSubItem.getPack(),PayProjectCommon.PACKAGING1)
|
||||||
|
|| !Objects.equals(payWorkingGroupSubItem.getInAccount(),PayProjectCommon.IN_ACCOUNT0)
|
||||||
|
|| !Objects.equals(payWorkingGroupSubItem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|
||||||
|
|| !Objects.equals(payWorkingGroupSubItem.getMail(),PayProjectCommon.MAIL0))){
|
||||||
|
throw new JeroBootException("来款企业不可更改!");
|
||||||
|
}
|
||||||
if(payWorkingGroupSubItem.getChargeWay() == PayProjectCommon.CHARGE_WAY2){
|
if(payWorkingGroupSubItem.getChargeWay() == PayProjectCommon.CHARGE_WAY2){
|
||||||
if(Objects.isNull(payWorkingGroupSubItem.getReceivableAmount())){
|
if(Objects.isNull(payWorkingGroupSubItem.getReceivableAmount())){
|
||||||
throw new JeroBootException("应收金额不能为空");
|
throw new JeroBootException("应收金额不能为空");
|
||||||
@@ -203,8 +215,13 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
|||||||
}
|
}
|
||||||
// 校验项目是否已关联合同
|
// 校验项目是否已关联合同
|
||||||
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payWorkingGroupSubItem.getId());
|
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payWorkingGroupSubItem.getId());
|
||||||
if(!Objects.isNull(payIncomeContract) && !Objects.equals(payIncomeContract.getContractNum(),payWorkingGroupSubItem.getContractNum())){
|
if(!Objects.isNull(payIncomeContract)){
|
||||||
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
|
if(!Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
||||||
|
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
|
||||||
|
}
|
||||||
|
if(!Objects.equals(payIncomeContract.getContractNum(),payWorkingGroupSubItem.getContractNum())){
|
||||||
|
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(Objects.isNull(payIncomeContract)){
|
if(Objects.isNull(payIncomeContract)){
|
||||||
PayIncomeContract payIncomeContractAdd = null;
|
PayIncomeContract payIncomeContractAdd = null;
|
||||||
@@ -232,6 +249,19 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
|||||||
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId());
|
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId());
|
||||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payWorkingGroupSubItemOld.getContactsTemporaryIdOne(),payWorkingGroupSubItemOld.getContactsTemporaryIdTwo(),payWorkingGroupSubItemOld.getContactsTemporaryIdThree()));
|
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payWorkingGroupSubItemOld.getContactsTemporaryIdOne(),payWorkingGroupSubItemOld.getContactsTemporaryIdTwo(),payWorkingGroupSubItemOld.getContactsTemporaryIdThree()));
|
||||||
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
|
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
|
||||||
|
// 变更应收金额,重新校验状态
|
||||||
|
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payWorkingGroupSubItem.getId(),payWorkingGroupSubItem.getReceivableAmount());
|
||||||
|
if(!Objects.isNull(projectStatusVO)){
|
||||||
|
if(!Objects.isNull(projectStatusVO.getInAccount())){
|
||||||
|
payWorkingGroupSubItem.setInAccount(projectStatusVO.getInAccount());
|
||||||
|
}
|
||||||
|
if(!Objects.isNull(projectStatusVO.getMakeInvoice())){
|
||||||
|
payWorkingGroupSubItem.setMakeInvoice(projectStatusVO.getMakeInvoice());
|
||||||
|
}
|
||||||
|
if(!Objects.isNull(projectStatusVO.getMail())){
|
||||||
|
payWorkingGroupSubItem.setMail(projectStatusVO.getMail());
|
||||||
|
}
|
||||||
|
}
|
||||||
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
|
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user