Forráskód Böngészése

删除合同校验

qianxb 2 éve
szülő
commit
3837d94552

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.java

@@ -28,4 +28,6 @@ public interface ContractReturnedInfoMapper extends BaseMapper<ContractReturnedI
     BigDecimal getYearReturned(@Param("year") int year);
 
     List<ContractReturnedInfo> getProjectReturnedByMonth(@Param("date") String date);
+
+    void deleteByContractId(@Param("contractId") Long contractId);
 }

+ 4 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml

@@ -7,6 +7,10 @@
         delete from c_contract_returned_info
         where contract_id = #{contractId} and  practical_returned_time is null and practical_returned_money is null
     </delete>
+    <delete id="deleteByContractId">
+        delete from c_contract_returned_info
+        where contract_id = #{contractId}
+    </delete>
     <select id="getListByContractId" resultType="org.springblade.control.vo.ContractReturnedInfoVO">
         select
             ri.*,

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java

@@ -38,4 +38,6 @@ public interface IContractReturnedInfoService extends BaseService<ContractReturn
     BigDecimal getYearReturned(int year);
 
     List<ContractReturnedInfo> getProjectReturnedByMonth(String date);
+
+    void deleteByContractId(Long id);
 }

+ 3 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -184,6 +184,9 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
             if (incomeList != null && incomeList.size() >0){
                 for (AnnualBudgetIncomeVO vo : incomeList) {
                     if (vo.getReturnTime().getMonthValue() == i) {
+                        if (vo.getReturnMoney() == null){
+                            vo.setReturnMoney(new BigDecimal(0));
+                        }
                         incomeTotal = incomeTotal.add(vo.getReturnMoney());
                         list1.add(vo);
                     }

+ 18 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractInfoServiceImpl.java

@@ -17,6 +17,7 @@ import org.springblade.control.service.IContractInfoService;
 import org.springblade.control.service.IContractReturnedInfoService;
 import org.springblade.control.service.IProjectInfoService;
 import org.springblade.control.service.IProjectProcessService;
+import org.springblade.control.vo.ContractReturnedInfoVO;
 import org.springblade.control.vo.ControlContractInfoVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
 import org.springblade.control.vo.EMInvoiceInfoVO;
@@ -32,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Param
@@ -95,7 +97,22 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     @Override
     @Transactional
     public void deleteContractInfoById(Long id) {
-        //合同回款记录和合同开票记录一起删除
+        //如果已经有回款信息则不能删除
+        List<ContractReturnedInfoVO> list = returnedInfoService.getListByContractId(id);
+        if (list != null && list.size() > 0){
+            list = list.stream().filter(l -> {
+                if (l.getPracticalReturnedMoney() != null) {
+                    return true;
+                } else {
+                    return false;
+                }
+            }).collect(Collectors.toList());
+            if (list != null && list.size() >0){
+                throw new ServiceException("合同存在已回款信息,不能删除");
+            }
+        }
+        //合同回款记录一起删除
+        returnedInfoService.deleteByContractId(id);
         baseMapper.deleteById(id);
     }
 

+ 5 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java

@@ -116,4 +116,9 @@ public class ContractReturnedInfoServiceImpl extends BaseServiceImpl<ContractRet
     public List<ContractReturnedInfo> getProjectReturnedByMonth(String date) {
         return baseMapper.getProjectReturnedByMonth(date);
     }
+
+    @Override
+    public void deleteByContractId(Long contractId) {
+        baseMapper.deleteByContractId(contractId);
+    }
 }