diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java index 85357e7d..233f3166 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/ProjectDetailService.java @@ -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); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java index a188e807..c25b026c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/ProjectDetailServiceImpl.java @@ -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 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; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java index 1184b468..90416e36 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPayIncomeContractService.java @@ -149,4 +149,15 @@ public interface IPayIncomeContractService extends IService { * @Exception */ PayIncomeContract setPayIncomeContractAssociated(String contractNum,String companyId,String projectId); + /** + * @Description 合同存在 && 合同状态不为草稿,不为未通过 关联合同 + * @Author lqt + * @Date 2021/9/15 + * @Param payIncomeContract 合同信息 + * @Param projectId 项目id + * @Param projectType 项目类型 + * @Return + * @Exception + */ + void insertPayIncomeContract(PayIncomeContract payIncomeContract,String projectId,Integer projectType); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java index ff4da928..b232ec44 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java @@ -27,6 +27,7 @@ import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyService; +import com.jero.project.common.PayProjectCommon; import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroupSubItem; @@ -739,4 +740,19 @@ public class PayIncomeContractServiceImpl extends ServiceImpl0 && <总金额(半满标志))*/ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java index 7c1cb8bd..76f2eb0d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java @@ -107,15 +107,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl