通用项目详情完善

This commit is contained in:
梁琦涛
2021-09-15 13:46:19 +08:00
parent 79c4e0a003
commit 93aad30c16
7 changed files with 72 additions and 54 deletions
@@ -21,9 +21,11 @@ public interface ProjectDetailService {
* @Description 获取变更应收金额之后的状态
* @Author lqt
* @Date 2021/9/14
* @Param
* @Param projectId 项目id
* @Param receivableAmount 应收金额
* @Param needInvoice 需要发票
* @Return
* @Exception
*/
ProjectStatusVO getStatus(String projectId, BigDecimal receivableAmount);
ProjectStatusVO getStatus(String projectId, BigDecimal receivableAmount,Integer needInvoice);
}
@@ -194,7 +194,7 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
}
@Override
public ProjectStatusVO getStatus(String projectId, BigDecimal receivableAmount) {
public ProjectStatusVO getStatus(String projectId, BigDecimal receivableAmount,Integer needInvoice) {
if(StringUtils.isBlank(projectId)){
throw new JeroBootException("项目id不能为空!");
}
@@ -206,10 +206,15 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
if(Objects.isNull(payCommonProject)){
throw new JeroBootException("项目不存在!");
}
// 应收金额没有变更
if(receivableAmount.compareTo(payCommonProject.getReceivableAmount()) == 0){
// 应收金额没有变更 && 验证来款方式没有变更
if(receivableAmount.compareTo(payCommonProject.getReceivableAmount()) == 0 && needInvoice == payCommonProject.getNeedInvoice()){
return null;
}
// 验证来款方式,有变更,按照变更处理
if(needInvoice != payCommonProject.getNeedInvoice()){
payCommonProject.setNeedInvoice(needInvoice);
}
ProjectStatusVO projectStatusVO = new ProjectStatusVO();
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
queryPayMailBillProject.eq(PayMailBillProject::getProjectId,projectId);
@@ -248,31 +253,35 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
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);
// 不需要开票
if(Objects.equals(payCommonProject.getNeedInvoice(),ProjectCommon.NEED_INVOICE0)){
projectStatusVO.setMakeInvoice(ProjectCommon.MAKE_INVOICE0);
}else{
// 开票金额 = 0 || 开票金额 = 到账金额 = 1
if(invoice.compareTo(new BigDecimal("0.00")) == 0 || invoice.compareTo(payCommonProject.getPaidAmount()) == 0){
projectStatusVO.setMakeInvoice(ProjectCommon.MAKE_INVOICE1);
}
// 开票金额 = 应收金额 = 0
if(invoice.compareTo(receivableAmount) == 0){
projectStatusVO.setMakeInvoice(ProjectCommon.MAKE_INVOICE0);
}
// 开票金额 > 0 && 开票金额 < 实收金额 = 2
if(invoice.compareTo(new BigDecimal("0.00")) == 1 && invoice.compareTo(payCommonProject.getPaidAmount()) == -1){
projectStatusVO.setMakeInvoice(ProjectCommon.MAKE_INVOICE2);
}
}
// 邮寄
// 开票金额 = 应收金额 && 邮寄次数 = 开票次数 = 1
if(invoice.compareTo(receivableAmount) == 0 && c == y){
projectStatusVO.setMail(ProjectCommon.IN_ACCOUNT2);
projectStatusVO.setMail(ProjectCommon.MAIL1);
}
// 邮寄次数 = 0 = 0
if(y == 0){
projectStatusVO.setMail(ProjectCommon.IN_ACCOUNT0);
projectStatusVO.setMail(ProjectCommon.MAIL0);
}
// 邮寄次数 > 0 && 邮寄次数 < 开票次数 = 2
// 邮寄次数 > 0 && 邮寄次数 <= 开票次数 = 2
if(y > 0 && y <= c){
projectStatusVO.setMail(ProjectCommon.IN_ACCOUNT2);
projectStatusVO.setMail(ProjectCommon.MAIL2);
}
return projectStatusVO;
}