From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:44:19 +0800 Subject: [PATCH] 删除 --- src/main/java/com/gk/firework/Scheduls/AssessTask/RecoverFromPunishmentTask.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 159 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Scheduls/AssessTask/RecoverFromPunishmentTask.java b/src/main/java/com/gk/firework/Scheduls/AssessTask/RecoverFromPunishmentTask.java new file mode 100644 index 0000000..ad838ad --- /dev/null +++ b/src/main/java/com/gk/firework/Scheduls/AssessTask/RecoverFromPunishmentTask.java @@ -0,0 +1,159 @@ +package com.gk.firework.Scheduls.AssessTask; + +import com.gk.firework.Domain.AccessAssessApply; +import com.gk.firework.Domain.AssessApply; +import com.gk.firework.Domain.Enterprise; +import com.gk.firework.Domain.Enum.AssessPunishment; +import com.gk.firework.Domain.Enum.EnterpriseStatus; +import com.gk.firework.Domain.Enum.PunishStatus; +import com.gk.firework.Domain.Exception.BusinessException; +import com.gk.firework.Domain.UserInfo; +import com.gk.firework.Service.AccessAssessApplyService; +import com.gk.firework.Service.AssessApplyService; +import com.gk.firework.Service.EnterpriseService; +import com.gk.firework.Service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; +/** +* @Description: 0点执行从处罚中恢复 +* @date 2021/7/12 15:42 +*/ +@Component +@EnableScheduling +public class RecoverFromPunishmentTask { + + @Value("${com.gk.firework.schedules.all.switch}") + private Boolean switchBtn; + //销售评定 + @Autowired + private AssessApplyService assessApplyService; + //准入评定 + @Autowired + private AccessAssessApplyService accessAssessApplyService; + @Autowired + private EnterpriseService enterpriseService; + @Autowired + private UserService userService; + + + @Scheduled(cron = "0 0 0 * * ?") + public void RecoverFromPunishment() { + + if (switchBtn) { + Date currentTime = new Date(); + + //1.获取销售评定处罚中的单子 + List<AssessApply> allPunishingSaleList = assessApplyService.selectAllPunishingSaleAssessApply(); + if (allPunishingSaleList.size() > 0) { + for (AssessApply assessApply : allPunishingSaleList) { + //企业信息检查 + Enterprise enterprise = enterpriseService.selectEnterpriseByNumber(assessApply.getEnterprisenumber()); + if (enterprise == null) throw new BusinessException("单位编号:" + assessApply.getEnterprisenumber() + ",企业信息为空"); + //用户检查 处罚中的企业状态都为1 + List<UserInfo> userInfos = userService.selectByCompanyId(enterprise.getId(), (byte) 1); + if (userInfos.size() != 2) throw new BusinessException("数据异常:用户对象个数不匹配"); + + switch (assessApply.getPunishmentmeasure()) { + case M0: + throw new BusinessException("数据异常,处罚中没有吊销"); + case M1: + this.recoverUserAndEndPunishment(userInfos,1,currentTime,assessApply); + break; + case M2: + this.recoverUserAndEndPunishment(userInfos,3,currentTime,assessApply); + break; + case M3: + this.recoverUserAndEndPunishment(userInfos,6,currentTime,assessApply); + break; + } + } + } + + + //2.获取准入评定处罚中的单子 + List<AccessAssessApply> allPunishingAccessList = accessAssessApplyService.selectAllPunishingAccessAssessApply(); + if (allPunishingAccessList.size() > 0) { + for (AccessAssessApply accessAssessApply : allPunishingAccessList) { + //企业信息检查 + Enterprise enterprise = enterpriseService.selectEnterpriseByNumber(accessAssessApply.getEnterprisenumber()); + if (enterprise == null) throw new BusinessException("单位编号:" + accessAssessApply.getEnterprisenumber() + ",企业信息为空"); + //用户检查 处罚中的企业状态都为1 + List<UserInfo> userInfos = userService.selectByCompanyId(enterprise.getId(), (byte) 1); + if (userInfos.size() != 2) throw new BusinessException("数据异常:用户对象个数不匹配"); + + switch (accessAssessApply.getPunishmentmeasure()) { + case M0: + throw new BusinessException("数据异常,处罚中没有吊销"); + case M1: + this.recoverUserAndEndPunishment(userInfos, 1, currentTime, accessAssessApply); + break; + case M2: + this.recoverUserAndEndPunishment(userInfos, 3, currentTime, accessAssessApply); + break; + case M3: + this.recoverUserAndEndPunishment(userInfos, 6, currentTime, accessAssessApply); + break; + } + } + } + } + + } + + + //停用企业 + private void activateEnterprise(Enterprise enterprise,List<UserInfo> userInfos) { + //停用企业 + enterpriseService.setEnterpriseStatus(EnterpriseStatus.ON, enterprise.getId()); + //停用用户 + for (UserInfo user : userInfos) { + userService.recoverOneById(user.getId()); + } + } + + + //评定恢复 + private void recoverUserAndEndPunishment(List<UserInfo> userInfos,int num,Date currentTime,AccessAssessApply accessAssessApply) { + + if (addMonth(accessAssessApply.getDeadline(), num).after(currentTime)) { + //用户恢复 + for (UserInfo user : userInfos) { + userService.recoverOneById(user.getId()); + } + //单子处罚结束 + accessAssessApply.setPunishstatus(PunishStatus.END); + accessAssessApplyService.updateById(accessAssessApply); + } + } + + //销售恢复 + private void recoverUserAndEndPunishment(List<UserInfo> userInfos,int num,Date currentTime,AssessApply assessApply) { + + if (addMonth(assessApply.getApprovetime(), num).after(currentTime)) { + //用户恢复 + for (UserInfo user : userInfos) { + userService.recoverOneById(user.getId()); + } + //单子处罚结束 + assessApply.setPunishstatus(PunishStatus.END); + assessApplyService.updateById(assessApply); + } + } + + + //往后推n个月 + private Date addMonth(Date date,int n) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.MONTH, n); + return calendar.getTime(); + } + +} -- Gitblit v1.9.2