ly 1 gadu atpakaļ
vecāks
revīzija
c4ba344ac5

+ 108 - 2
src/main/java/cn/ezhizao/project/business/order/controller/BizArchiveInputController.java

@@ -98,6 +98,9 @@ public class BizArchiveInputController extends BaseController {
     @Resource
     private IBizWorkOrderRecordService workOrderRecordService;
 
+    @Resource
+    private IBizArchiveInputDetailService bizArchiveInputDetailServiceService;
+
 
     /**
      * 查询档案入库列表
@@ -264,6 +267,11 @@ public class BizArchiveInputController extends BaseController {
     @Log(title = "合同解除", businessType = BusinessType.UPDATE)
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult dissolution(@RequestBody BizArchiveInput bizArchiveInput) {
+        boolean b = relieveCheck(bizArchiveInput);
+        if (!b) {
+            throw new RuntimeException("解除失败,请先解除最后签约合同");
+        }
+
         bizArchiveInput = getById(bizArchiveInput.getId());
         bizArchiveInput.setDissolution(1);
         bizArchiveInput.setStatus(9);
@@ -407,7 +415,7 @@ public class BizArchiveInputController extends BaseController {
                     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                     List<LocalDate> datesList = list.stream().map(x -> {
                         String formattedMonth = String.format("%02d", Integer.valueOf(x.getMonth()).intValue());
-                        return LocalDate.parse(x.getYear() + "-" +formattedMonth+"-01", formatter);
+                        return LocalDate.parse(x.getYear() + "-" + formattedMonth + "-01", formatter);
                     }).collect(Collectors.toList());
                     TimeVo time = getTime(item.getContractId(), item.getId(), item.getTaskTypeId(), newBizArchiveInput.getCompanyId());
                     if (time != null) {
@@ -601,7 +609,7 @@ public class BizArchiveInputController extends BaseController {
                         .eq(BizWorkOrderDetail::getContractDetailId, contractDetailId)
                         .eq(BizWorkOrderDetail::getCompanyId, companyId)
                         .eq(BizWorkOrderDetail::getTaskTypeId, typeId).eq(BizWorkOrderDetail::getDeleted, 0));
-        if (one == null){
+        if (one == null) {
             return null;
         }
         Long workOrderId = one.getWorkOrderId();
@@ -653,5 +661,103 @@ public class BizArchiveInputController extends BaseController {
         return total;
     }
 
+    public boolean relieveCheck(BizArchiveInput input) {
+        boolean flag = false;
+        //通过公司id 合同id taskId 查询  workOrderDetail 如果是最后一条则可以删除
+        List<BizArchiveInputDetail> list = bizArchiveInputDetailServiceService.list(
+                new LambdaQueryWrapper<BizArchiveInputDetail>()
+                        .eq(BizArchiveInputDetail::getContractId, input.getId())
+                        .eq(BizArchiveInputDetail::getDeleted, 0)
+        );
+
+        List<BizArchiveInputDetail> details = list;
+        //代理记账
+        BizWorkOrderDetail typeOne = null;
+        //社保
+        BizWorkOrderDetail typeTwo = null;
+        //公积金
+        BizWorkOrderDetail typeThree = null;
+        //报税申报
+        BizWorkOrderDetail typeFour = null;
+        for (BizArchiveInputDetail detail : details) {
+            BizWorkOrderDetail one = bizWorkOrderDetailService.getOne(new LambdaQueryWrapper<BizWorkOrderDetail>()
+                    .eq(BizWorkOrderDetail::getContractId, input.getId())
+                    .eq(BizWorkOrderDetail::getContractDetailId, detail.getId())
+                    .eq(BizWorkOrderDetail::getTaskTypeId, detail.getTaskTypeId())
+                    .eq(BizWorkOrderDetail::getDeleted, 0)
+                    .eq(BizWorkOrderDetail::getCompanyId, input.getCompanyId())
+            );
+            if (detail.getTaskTypeId() == 1) {
+                typeOne = one;
+            } else if (detail.getTaskTypeId() == 2) {
+                typeTwo = one;
+            } else if (detail.getTaskTypeId() == 3) {
+                typeThree = one;
+            } else if (detail.getTaskTypeId() == 4) {
+                typeFour = one;
+            }
+        }
+        if (typeOne != null) {
+            Long workOrderId = typeOne.getWorkOrderId();
+            //获取时间最后一个
+            BizWorkOrderDetail bizWorkOrderDetail = bizWorkOrderDetailService.list(new LambdaQueryWrapper<BizWorkOrderDetail>()
+                    .eq(BizWorkOrderDetail::getWorkOrderId, workOrderId)
+                    .eq(BizWorkOrderDetail::getDeleted, 0)
+                    .eq(BizWorkOrderDetail::getIsStop, 0)
+                    .orderByDesc(BizWorkOrderDetail::getCreateTime)
+            ).get(0);
+            if (bizWorkOrderDetail.getId().equals(typeOne.getId())) {
+                flag = true;
+            } else {
+                return false;
+            }
+
+        }
+        if (typeTwo != null) {
+            Long workOrderId = typeTwo.getWorkOrderId();
+            //获取时间最后一个
+            BizWorkOrderDetail bizWorkOrderDetail = bizWorkOrderDetailService.list(new LambdaQueryWrapper<BizWorkOrderDetail>()
+                    .eq(BizWorkOrderDetail::getWorkOrderId, workOrderId)
+                    .eq(BizWorkOrderDetail::getDeleted, 0)
+                    .orderByDesc(BizWorkOrderDetail::getCreateTime)
+            ).get(0);
+            if (bizWorkOrderDetail.getId().equals(typeTwo.getId())) {
+                flag = true;
+            } else {
+                return false;
+            }
+
+        }
+        if (typeThree != null) {
+            Long workOrderId = typeThree.getWorkOrderId();
+            //获取时间最后一个
+            BizWorkOrderDetail bizWorkOrderDetail = bizWorkOrderDetailService.list(new LambdaQueryWrapper<BizWorkOrderDetail>()
+                    .eq(BizWorkOrderDetail::getWorkOrderId, workOrderId)
+                    .eq(BizWorkOrderDetail::getDeleted, 0)
+                    .orderByDesc(BizWorkOrderDetail::getCreateTime)
+            ).get(0);
+            if (bizWorkOrderDetail.getId().equals(typeThree.getId())) {
+                flag = true;
+            } else {
+                return false;
+            }
+
+        }
+        if (typeFour != null) {
+            Long workOrderId = typeFour.getWorkOrderId();
+            //获取时间最后一个
+            BizWorkOrderDetail bizWorkOrderDetail = bizWorkOrderDetailService.list(new LambdaQueryWrapper<BizWorkOrderDetail>()
+                    .eq(BizWorkOrderDetail::getWorkOrderId, workOrderId)
+                    .eq(BizWorkOrderDetail::getDeleted, 0)
+                    .orderByDesc(BizWorkOrderDetail::getCreateTime)
+            ).get(0);
+            if (bizWorkOrderDetail.getId().equals(typeFour.getId())) {
+                flag = true;
+            } else {
+                return false;
+            }
+        }
+        return flag;
+    }
 
 }