FengChaoYu vor 6 Monaten
Ursprung
Commit
15340004ea

+ 8 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/contract/ContractTemplateLogic.java

@@ -204,6 +204,14 @@ public class ContractTemplateLogic {
         if (StringUtils.isBlank(contractTemplate.getContractTemplatePdf())) {
             throw new RemoteServiceException("合同模板不能为空");
         }
+        if (StringUtils.isNotBlank(contractTemplate.getFollowContractTemplateId())
+                && ContractTypeEnum.FOLLOW.getKey().equals(contractTemplate.getContractType())) {
+            final ContractTemplate mainContract = contractTemplateService.getById(contractTemplate.getFollowContractTemplateId());
+            if (Objects.nonNull(mainContract)) {
+                contractTemplate.setValidDate(mainContract.getValidDate())
+                        .setExpireDate(mainContract.getExpireDate());
+            }
+        }
     }
 
     private void checkMainDate(ContractTemplateBean contractTemplate) {

+ 41 - 0
mall-server-api/src/main/java/com/gree/mall/manager/schedule/ContractExceSchedule.java

@@ -0,0 +1,41 @@
+package com.gree.mall.manager.schedule;
+
+import cn.hutool.core.date.DateUtil;
+import com.gree.mall.manager.enums.material.StateEnum;
+import com.gree.mall.manager.plus.entity.ContractTemplate;
+import com.gree.mall.manager.plus.service.ContractTemplateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * 合同相关任务
+ */
+@Slf4j
+@ConditionalOnProperty(name = "schedule.enable", havingValue = "true", matchIfMissing = true)
+@Component
+public class ContractExceSchedule {
+
+    @Resource
+    ContractTemplateService contractTemplateService;
+
+    /**
+     * 过期的合同设为无效
+     * @throws Exception
+     */
+    @Scheduled(cron = "30 0 0 * * * ")
+    public void task() throws Exception {
+        contractTemplateService.lambdaUpdate()
+                .set(ContractTemplate::getStatus, StateEnum.OFF.getKey())
+                .lt(ContractTemplate::getExpireDate, DateUtil.date())
+                .eq(ContractTemplate::getStatus, StateEnum.ON.getKey())
+                .update();
+    }
+
+
+
+
+}