Эх сурвалжийг харах

合同计量期删除-增加材料调差判断2

qianxb 1 жил өмнө
parent
commit
2642af4b7a

+ 15 - 3
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractMeterPeriodController.java

@@ -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("有计量期已经关联中期支付证书,无法删除");
 				}
 			}
 			//存在数据,先删再存,循环排序