通用项目详情完善
This commit is contained in:
+4
-2
@@ -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);
|
||||
}
|
||||
|
||||
+28
-19
@@ -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;
|
||||
}
|
||||
|
||||
+11
@@ -149,4 +149,15 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
|
||||
* @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);
|
||||
}
|
||||
|
||||
+16
@@ -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 ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertPayIncomeContract(PayIncomeContract payIncomeContract,String projectId,Integer projectType) {
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
if(!Objects.isNull(payIncomeContract)){
|
||||
if(payIncomeContract.getStatus() == PayIncomeContractCommon.STATUS1 && payIncomeContract.getStatus() == PayIncomeContractCommon.STATUS4){
|
||||
throw new JeroBootException("合同状态为草稿状态,不能进行关联!");
|
||||
}
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
payIncomeContractAssociated.setContractId(payIncomeContract.getId());
|
||||
payIncomeContractAssociated.setProjectType(projectType);
|
||||
payIncomeContractAssociated.setProjectId(projectId);
|
||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -128,9 +128,9 @@ public class PayCommonProject implements Serializable {
|
||||
@Excel(name = "打包(1:是,0:否)", width = 15)
|
||||
@ApiModelProperty(value = "打包(1:是,0:否)")
|
||||
private Integer pack;
|
||||
/**需要发票(1:增值税普通发票,2:增值税专用发票,3:否)*/
|
||||
@Excel(name = "需要发票(1:增值税普通发票,2:增值税专用发票,3:否)", width = 15)
|
||||
@ApiModelProperty(value = "需要发票(1:增值税普通发票,2:增值税专用发票,3:否)")
|
||||
/**需要发票(1:增值税普通发票,2:增值税专用发票,0:否)*/
|
||||
@Excel(name = "需要发票(1:增值税普通发票,2:增值税专用发票,0:否)", width = 15)
|
||||
@ApiModelProperty(value = "需要发票(1:增值税普通发票,2:增值税专用发票,0:否)")
|
||||
@NotNull(message = "需要发票不能为空!")
|
||||
private Integer needInvoice;
|
||||
/**到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))*/
|
||||
|
||||
+5
-16
@@ -107,15 +107,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
||||
payCommonProject.setMail(PayProjectCommon.MAIL0);
|
||||
payCommonProjectService.save(payCommonProject);
|
||||
|
||||
if(!Objects.isNull(payIncomeContract)){
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
payIncomeContractAssociated.setContractId(payIncomeContract.getId());
|
||||
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
||||
payIncomeContractAssociated.setProjectId(payCommonProject.getId());
|
||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
||||
}
|
||||
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
payIncomeContractService.insertPayIncomeContract(payIncomeContract,payCommonProject.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
||||
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
|
||||
payPackCompanyProjectService.setPack(payCommonProject.getChargeCompanyId(),payCommonProject.getContactsId(),payIncomeContract.getPackYear(),payCommonProject.getId(),PayProjectCommon.PROJECT_TYPE1,payIncomeContract.getPack());
|
||||
@@ -169,12 +162,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(payCommonProject.getContractNum(),payCommonProject.getChargeCompanyId(),payCommonProject.getId());
|
||||
}
|
||||
if(!Objects.isNull(payIncomeContractAdd)){
|
||||
payCommonProject.setPack(PayProjectCommon.PACKAGING1);
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
payIncomeContractAssociated.setContractId(payIncomeContractAdd.getId());
|
||||
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
||||
payIncomeContractAssociated.setProjectId(payCommonProject.getId());
|
||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
payIncomeContractService.insertPayIncomeContract(payIncomeContractAdd,payCommonProject.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
||||
}else{
|
||||
payCommonProject.setPack(PayProjectCommon.PACKAGING0);
|
||||
}
|
||||
@@ -188,7 +177,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
|
||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsTemporaryId(),payCommonProjectOld.getMailContactsTemporaryId()));
|
||||
// 变更应收金额,重新校验状态
|
||||
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payCommonProject.getId(),payCommonProject.getReceivableAmount());
|
||||
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payCommonProject.getId(),payCommonProject.getReceivableAmount(),payCommonProject.getNeedInvoice());
|
||||
if(!Objects.isNull(projectStatusVO)){
|
||||
if(!Objects.isNull(projectStatusVO.getInAccount())){
|
||||
payCommonProject.setInAccount(projectStatusVO.getInAccount());
|
||||
|
||||
+5
-14
@@ -149,13 +149,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
|
||||
payWorkingGroupSubItemService.save(payWorkingGroupSubItem);
|
||||
|
||||
if(!Objects.isNull(payIncomeContract)){
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
payIncomeContractAssociated.setContractId(payIncomeContract.getId());
|
||||
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE2));
|
||||
payIncomeContractAssociated.setProjectId(payWorkingGroupSubItem.getId());
|
||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
||||
}
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
payIncomeContractService.insertPayIncomeContract(payIncomeContract,payWorkingGroupSubItem.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE2));
|
||||
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
|
||||
payPackCompanyProjectService.setPack(payWorkingGroupSubItem.getChargeCompanyId(),payWorkingGroupSubItem.getContactsIdOne(),payIncomeContract.getPackYear(),payIncomeContract.getId(),PayProjectCommon.PROJECT_TYPE2,payIncomeContract.getPack());
|
||||
@@ -230,12 +225,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(payWorkingGroupSubItem.getContractNum(),payWorkingGroupSubItem.getChargeCompanyId(),payWorkingGroupSubItem.getId());
|
||||
}
|
||||
if(!Objects.isNull(payIncomeContractAdd)){
|
||||
payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING1);
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
payIncomeContractAssociated.setContractId(payIncomeContractAdd.getId());
|
||||
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
||||
payIncomeContractAssociated.setProjectId(payWorkingGroupSubItem.getId());
|
||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
payIncomeContractService.insertPayIncomeContract(payIncomeContractAdd,payWorkingGroupSubItem.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE2));
|
||||
}else{
|
||||
payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING0);
|
||||
}
|
||||
@@ -250,7 +241,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payWorkingGroupSubItemOld.getContactsTemporaryIdOne(),payWorkingGroupSubItemOld.getContactsTemporaryIdTwo(),payWorkingGroupSubItemOld.getContactsTemporaryIdThree()));
|
||||
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
|
||||
// 变更应收金额,重新校验状态
|
||||
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payWorkingGroupSubItem.getId(),payWorkingGroupSubItem.getReceivableAmount());
|
||||
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payWorkingGroupSubItem.getId(),payWorkingGroupSubItem.getReceivableAmount(),payWorkingGroupSubItem.getNeedInvoice());
|
||||
if(!Objects.isNull(projectStatusVO)){
|
||||
if(!Objects.isNull(projectStatusVO.getInAccount())){
|
||||
payWorkingGroupSubItem.setInAccount(projectStatusVO.getInAccount());
|
||||
|
||||
Reference in New Issue
Block a user