java 原生的定时任务(项目一启动便执行定时任务)

java 原生的定时任务(项目一启动便执行定时任务)

package com.risen.wechat.controller;

import com.risen.base.frame.controller.ExeMvcAction;
import com.risen.core.dao.ICoreOrganizationDao;
import com.risen.core.model.CoreOrganization;
import com.risen.hp.fastjson.JSON;
import com.risen.hp.fastjson.JSONArray;
import com.risen.hp.fastjson.JSONObject;
import com.risen.wechat.unit.HttpUtil;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import java.sql.*;
import java.util.*;
import java.util.Date;

/**
 * @author hew
 * @date 2019/11/4 11:22
 */
@Controller
public class RisenTaskAction extends ExeMvcAction implements InitializingBean {

    @Autowired
    private ICoreOrganizationDao coreOrganizationDao;

    public static void save(CoreOrganization coreOrganization) {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        //编写sql
        String sql = "INSERT INTO core_organization(CRORG_UUID,CRORG_LEVEL_CODE,CRORG_NUMBER,CRORG_PARENT_UUID" +
                ",CRORG_NAME,CRORG_FULL_NAME,CRORG_ADDRESS,CRORG_PHONE,CRORG_TYPE,CRORG_STATUS,CRORG_ORDER) values(?,?,?,?,?,?,?,?,?,?,?) ";

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://60.191.64.2:9421/risen_badj?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
                    "root", "");
//            conn.setAutoCommit(false);
            ps = conn.prepareStatement(sql);

            ps.setString(1, coreOrganization.getCrorgUuid());
            ps.setString(2, coreOrganization.getCrorgLevelCode());
            ps.setString(3, coreOrganization.getCrorgNumber());
            ps.setString(4, coreOrganization.getCrorgParentUuid());
            ps.setString(5, coreOrganization.getCrorgName());
            ps.setString(6, coreOrganization.getCrorgFullName());
            ps.setString(7, coreOrganization.getCrorgAddress());
            ps.setString(8, coreOrganization.getCrorgPhone());
            ps.setString(9, coreOrganization.getCrorgType());
            ps.setString(10, coreOrganization.getCrorgStatus());
            ps.setInt(11, coreOrganization.getCrorgOrder());

            ps.executeUpdate();            //执行sql语句

            System.out.println("插入成功(* ̄︶ ̄)");
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                ps.close();
                conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }

    }

    public static void update(CoreOrganization coreOrganization) {

        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        //编写sql
        String sql = "UPDATE core_organization SET " +
                "CRORG_LEVEL_CODE = ?, " +
                "CRORG_NUMBER = ?, " +
                "CRORG_PARENT_UUID = ?, " +
                "CRORG_NAME = ?, " +
                "CRORG_FULL_NAME = ?, " +
                "CRORG_ADDRESS = ?, " +
                "CRORG_PHONE = ?, " +
                "CRORG_TYPE = ?, " +
                "CRORG_STATUS = ?, " +
                "CRORG_ORDER = ?, " +
                "CRORG_UPDATE_TIME = ? " +
                "WHERE CRORG_UUID = ?";

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://60.191.64.2:9421/risen_badj?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
                    "root", "");
//            conn.setAutoCommit(false);
            ps = conn.prepareStatement(sql);

            ps.setString(1, coreOrganization.getCrorgLevelCode());
            ps.setString(2, coreOrganization.getCrorgNumber());
            ps.setString(3, coreOrganization.getCrorgParentUuid());
            ps.setString(4, coreOrganization.getCrorgName());
            ps.setString(5, coreOrganization.getCrorgFullName());
            ps.setString(6, coreOrganization.getCrorgAddress());
            ps.setString(7, coreOrganization.getCrorgPhone());
            ps.setString(8, coreOrganization.getCrorgType());
            ps.setString(9, coreOrganization.getCrorgStatus());
            ps.setInt(10, coreOrganization.getCrorgOrder());

            Date d = new Date();
            Timestamp timestamp = new Timestamp(d.getTime());
            ps.setTimestamp(11, timestamp);
            ps.setString(12, coreOrganization.getCrorgUuid());

            ps.executeUpdate();            //执行sql语句

            System.out.println("更新成功(* ̄︶ ̄)");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                ps.close();
                conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                CoreOrganization coreOrganization = new CoreOrganization();
                //发送http请求获取到json数据(拿到智慧平台传递过来的数据)
                String url = "http://122.224.90.132:8085/public/app/getCoreOrganization.action";
                JSONObject jsonObject = HttpUtil.sendGetJson(url, "");
                String data = jsonObject.getString("data");
                //转换成json数组
                JSONArray objects = JSON.parseArray(data);
                System.out.println(objects);
                //定义map集合(将需要插入的json数据全部获取)
                Map<String, Map<String, String>> map = new HashMap<>();
                //定义一个list集合
                List<String> list1 = new ArrayList<>();
                //遍历json数组
                if (objects.size() > 0) {
                    for (int i = 0; i < objects.size(); i++) {
                        JSONObject job = objects.getJSONObject(i);
                        //CRORG_UNID  unid自动生成
                        //CRORG_UUID 部门uuid
                        String crorgUuid = null;
                        try {
                            crorgUuid = job.get("crorgUuid").toString();
                        } catch (Exception e) {
                            crorgUuid = "";
                        }
                        //CRORG_LEVEL_CODE 层级编码
                        String crorgLevelCode = null;
                        try {
                            crorgLevelCode = job.get("crorgLevelCode").toString();
                        } catch (Exception e) {
                            crorgLevelCode = "";
                        }
                        //CRORG_NUMBER 机构编号
                        String crorgNumber = null;
                        try {
                            crorgNumber = job.get("crorgNum").toString();
                        } catch (Exception e) {
                            crorgNumber = "";
                        }
                        //CRORG_PARENT_UUID 父节点PID
                        String crorgParentUuid = null;
                        try {
                            crorgParentUuid = job.get("crorgParentUuid").toString();
                        } catch (Exception e) {
                            crorgParentUuid = "";
                        }
                        //CRORG_NAME 机构名称
                        String crorgName = null;
                        try {
                            crorgName = job.get("crorgShortName").toString();
                        } catch (Exception e) {
                            crorgName = "";
                        }
                        //CRORG_FULL_NAME 机构全称
                        String crorgFullName = null;
                        try {
                            crorgFullName = job.get("crorgFullName").toString();
                        } catch (Exception e) {
                            crorgFullName = "";
                        }
                        //CRORG_ADDRESS 机构地址
                        String crorgAddress = null;
                        try {
                            crorgAddress = job.get("crorgAddress").toString();
                        } catch (Exception e) {
                            crorgAddress = "";
                        }
                        //CRORG_PHONE 机构电话
                        String crorgPhone = null;
                        try {
                            crorgPhone = job.get("crorgPhone").toString();
                        } catch (Exception e) {
                            crorgPhone = "";
                        }
                        //CRORG_TYPE 组织类型
                        String crorgType = null;
                        try {
                            crorgType = job.get("crorgType").toString();
                        } catch (Exception e) {
                            crorgType = "";
                        }
                        //CRORG_STATUS 状态
                        String crorgStatus = null;
                        try {
                            crorgStatus = job.get("crorgStatus").toString();
                        } catch (Exception e) {
                            crorgStatus = "";
                        }
                        //CRORG_ORDER 排序号
                        Integer crorgOrder = null;
                        try {
                            crorgOrder = Integer.parseInt(job.get("crorgOrd").toString());
                        } catch (Exception e) {
                            crorgOrder = -1;
                        }

                        List<CoreOrganization> list2 = coreOrganizationDao.findByIdList(Arrays.asList(crorgUuid));
                        //如果没有查询到数据,则进行插入操作
                        coreOrganization.setCrorgUuid(crorgUuid);
                        coreOrganization.setCrorgLevelCode(crorgLevelCode);
                        coreOrganization.setCrorgNumber(crorgNumber);
                        coreOrganization.setCrorgParentUuid(crorgParentUuid);
                        coreOrganization.setCrorgName(crorgName);
                        coreOrganization.setCrorgFullName(crorgFullName);
                        coreOrganization.setCrorgAddress(crorgAddress);
                        coreOrganization.setCrorgPhone(crorgPhone);
                        coreOrganization.setCrorgType(crorgType);
                        coreOrganization.setCrorgStatus(crorgStatus);
                        coreOrganization.setCrorgOrder(crorgOrder);
                        if (list2.size() == 0) {
                            //直接调用save方法
                            save(coreOrganization);
                        } else {
                            update(coreOrganization);
                        }
                    }
                }
            }
        }, 1000, 20000);//延迟1秒启动,每1秒执行一次
    }
}

发布了33 篇原创文章 · 获赞 2 · 访问量 4741

猜你喜欢

转载自blog.csdn.net/qq_36778310/article/details/102894152