| | |
| | | import com.ruoyi.chargingPile.api.feignClient.SiteClient; |
| | | import com.ruoyi.chargingPile.api.model.Site; |
| | | import com.ruoyi.order.api.model.TChargingBill; |
| | | import com.ruoyi.order.api.model.TChargingOrder; |
| | | import com.ruoyi.order.service.TChargingBillService; |
| | | import com.ruoyi.order.service.TChargingOrderService; |
| | | import org.apache.logging.log4j.core.util.UuidUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | |
| | | private TChargingBillService chargingBillService; |
| | | @Resource |
| | | private SiteClient siteClient; |
| | | @Resource |
| | | private TChargingOrderService chargingOrderService; |
| | | |
| | | public static void main(String[] args) { |
| | | LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1). |
| | | withDayOfMonth(2); |
| | | String string = firstDayOfLastMonth.toString(); |
| | | // 将-替换为空字符串 |
| | | string = string.replace("-", ""); |
| | | System.err.println(string); |
| | | } |
| | | // 每月2号凌晨12点执行的定时任务 |
| | | // @Scheduled(cron = "0 0 0 2 * ?") |
| | | // 每天凌晨12点执行的定时任务 |
| | | |
| | | @Scheduled(cron = "0 0 12 2 * ?") |
| | | // 每30秒执行一次的定时任务 |
| | | @Scheduled(cron = "0/30 * * * * ?") |
| | | |
| | | @Scheduled(cron = "0 0 0 2 * ?") |
| | | public void taskMonth() { |
| | | try { |
| | | // 获取上个月的开始和结束日期 |
| | |
| | | .collect(Collectors.joining()); // 将其连接成一个字符串 |
| | | tChargingBill.setCode("JSD"+string+randomDigits ); |
| | | tChargingBill.setType(1); |
| | | tChargingBill.setSiteId(0); |
| | | tChargingBill.setBillTime(LocalDateTime.now()); |
| | | tChargingBill.setStatus(1); |
| | | tChargingBill.setOrderState(2); |
| | | tChargingBill.setBillType(1); |
| | | System.err.println("定时任务生成充电算帐单:全站"); |
| | | chargingBillService.save(tChargingBill); |
| | | // 每月二号给每个站点生成上月账单 |
| | | // 生成一次全站订单 |
| | | TChargingBill tChargingBill1 = new TChargingBill(); |
| | | // 订单生成规则JSD+20231201(账单所属月份)+1131304205(随机10位数)+001(当月账单序号,每月重置) |
| | | Random random1 = new Random(); |
| | | String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 |
| | | .mapToObj(String::valueOf) |
| | | .collect(Collectors.joining()); // 将其连接成一个字符串 |
| | | tChargingBill1.setCode("JSD"+string+randomDigits1 ); |
| | | tChargingBill1.setType(1); |
| | | tChargingBill1.setSiteId(0); |
| | | tChargingBill1.setBillTime(LocalDateTime.now()); |
| | | tChargingBill1.setStatus(1); |
| | | tChargingBill1.setOrderState(2); |
| | | tChargingBill1.setBillType(2); |
| | | System.err.println("定时任务生成账户结算帐单:全站"); |
| | | chargingBillService.save(tChargingBill1); |
| | | System.err.println("定时任务生成各个站点结算帐单"); |
| | | List<Integer> collect = siteClient.getSiteAll().getData().stream().map(Site::getId).collect(Collectors.toList()); |
| | | // 充电算帐单 |
| | | List<TChargingBill> tChargingBills = new ArrayList<>(); |
| | | for (int i = 1; i <= collect.size(); i++) { |
| | | TChargingBill tChargingBill1 = new TChargingBill(); |
| | | Random random1 = new Random(); |
| | | String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 |
| | | // 账户结算账单 |
| | | List<TChargingBill> tChargingBills1 = new ArrayList<>(); |
| | | for (int i = 0; i < collect.size(); i++) { |
| | | TChargingBill tChargingBill2 = new TChargingBill(); |
| | | Random random2 = new Random(); |
| | | String randomDigits2 = random2.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 |
| | | .mapToObj(String::valueOf) |
| | | .collect(Collectors.joining()); // 将其连接成一个字符串 |
| | | tChargingBill1.setCode("JSD"+string+randomDigits1+i ); |
| | | tChargingBill1.setType(2); |
| | | tChargingBill1.setSiteId(collect.get(i)); |
| | | tChargingBill1.setBillTime(LocalDateTime.now()); |
| | | tChargingBill1.setStatus(1); |
| | | tChargingBill1.setOrderState(2); |
| | | tChargingBills.add(tChargingBill1); |
| | | tChargingBill2.setCode("JSD"+string+randomDigits2+(i+1) ); |
| | | tChargingBill2.setType(2); |
| | | List<TChargingOrder> list = chargingOrderService.lambdaQuery() |
| | | .eq(TChargingOrder::getSiteId, collect.get(i)).list(); |
| | | if (list.isEmpty()){ |
| | | continue; |
| | | } |
| | | tChargingBill2.setSiteId(collect.get(i)); |
| | | tChargingBill2.setBillTime(LocalDateTime.now()); |
| | | tChargingBill2.setBillType(1); |
| | | tChargingBill2.setStatus(1); |
| | | tChargingBill2.setOrderState(2); |
| | | tChargingBills.add(tChargingBill2); |
| | | TChargingBill tChargingBill3 = new TChargingBill(); |
| | | Random random3 = new Random(); |
| | | String randomDigits3 = random3.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 |
| | | .mapToObj(String::valueOf) |
| | | .collect(Collectors.joining()); // 将其连接成一个字符串 |
| | | tChargingBill3.setCode("JSD"+string+randomDigits3+(i+1) ); |
| | | tChargingBill3.setType(2); |
| | | tChargingBill3.setSiteId(collect.get(i)); |
| | | tChargingBill3.setBillTime(LocalDateTime.now()); |
| | | tChargingBill3.setBillType(2); |
| | | tChargingBill3.setStatus(1); |
| | | tChargingBill3.setOrderState(2); |
| | | tChargingBills1.add(tChargingBill3); |
| | | } |
| | | System.err.println("列表"+tChargingBills); |
| | | if (!tChargingBills.isEmpty())chargingBillService.saveBatch(tChargingBills); |
| | | if (!tChargingBills1.isEmpty())chargingBillService.saveBatch(tChargingBills1); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | // 每个月最后一天23点执行的定时任务 |
| | | @Scheduled(cron = "0 0 23 L * ?") |
| | | @Scheduled(cron = "0 0 23 * * ?") |
| | | public void taskLastDay() { |
| | | try { |
| | | // 获取上个月的开始和结束日期 |