|
@@ -31,8 +31,10 @@ import org.springblade.core.mp.support.Query;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.meter.dto.ContractMeterPeriodDTO;
|
|
|
+import org.springblade.meter.entity.ContractMaterialAdjust;
|
|
|
import org.springblade.meter.entity.InterimPayCertificate;
|
|
|
import org.springblade.meter.entity.MeterPeriod;
|
|
|
+import org.springblade.meter.service.IContractMaterialAdjustService;
|
|
|
import org.springblade.meter.service.IInterimPayCertificateService;
|
|
|
import org.springblade.meter.vo.ContractMeterPeriodVO;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -61,6 +63,7 @@ public class ContractMeterPeriodController extends BladeController {
|
|
|
|
|
|
private final IContractMeterPeriodService contractMeterPeriodService;
|
|
|
private final IInterimPayCertificateService interimPayCertificateService;
|
|
|
+ private final IContractMaterialAdjustService adjustService;
|
|
|
|
|
|
/**
|
|
|
* 分页
|
|
@@ -90,11 +93,20 @@ public class ContractMeterPeriodController extends BladeController {
|
|
|
}else {
|
|
|
/*如果被删除的计量期已经关联中期支付证书,则不允许删除,必须先删除报表yangyj 20240514*/
|
|
|
List<Long> ids= this.interimPayCertificateService.existCertificate(dto.getContractId());
|
|
|
- if(ids.size()>0){
|
|
|
- List<Long> cpIds = list.stream().map(ContractMeterPeriod::getId).collect(Collectors.toList());
|
|
|
+ List<Long> cpIds = list.stream().map(ContractMeterPeriod::getId).collect(Collectors.toList());
|
|
|
+ if(ids.size()>0){
|
|
|
/*当前计量期集合是否涵盖所有支付证书里的计量期id*/
|
|
|
if(!cpIds.containsAll(ids)){
|
|
|
- return R.fail("已经关联中期支付证书,无法删除");
|
|
|
+ return R.fail("有计量期已经关联中期支付证书,无法删除");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //校验是否删除了关联材料
|
|
|
+ List<Long> ids2 = adjustService.list(new LambdaQueryWrapper<ContractMaterialAdjust>()
|
|
|
+ .eq(ContractMaterialAdjust::getContractId, dto.getContractId()))
|
|
|
+ .stream().map(l -> l.getMeterPeriodId()).collect(Collectors.toList());
|
|
|
+ if(ids2.size()>0){
|
|
|
+ if(!cpIds.containsAll(ids2)){
|
|
|
+ return R.fail("有计量期已经关联中期支付证书,无法删除");
|
|
|
}
|
|
|
}
|
|
|
//存在数据,先删再存,循环排序
|