package com.jyxt.getdatabyrestful.service; import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import java.sql.Timestamp; import java.util.*; @Component public class IBPSService { private static final Logger log = LoggerFactory.getLogger(IBPSService.class); @Value("${config.qrymode}") private String qrymode; @Autowired private JdbcTemplate jdbcTemplate; private static final ObjectMapper mapper = new ObjectMapper(); public List> getUndoList(){ List> undoList = new ArrayList<>(); String sqlQryUndo = "SELECT * from t_snwsdjkjlb where date(create_time_)=CURRENT_DATE and shi_fou_guo_shen_='待处理'"; log.info("excute sql:"+sqlQryUndo); undoList = jdbcTemplate.queryForList(sqlQryUndo); return undoList; } public List> getConfList(){ List> configList = new ArrayList<>(); String sqlQryConf = "select * from t_wsdcjpzb where shi_fou_qi_yong_='是'"; log.info("excute sql:"+sqlQryConf); configList = jdbcTemplate.queryForList(sqlQryConf); return configList; } public String UpdateData(String TableName, String id, String retJsonStr, String JsonFlag, String timeSlot, String timeStr){ // 解析状态标志 String[] flags = JsonFlag.split("\\^"); // 注意:^是正则表达式特殊字符,需要转义 String finishFlag = flags[0]; String contrlFlag = flags[1]; // 准备更新时间和失控状态 // String updateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); Timestamp updateTime = new Timestamp(new Date().getTime()); String shiKongZhuangT = "0".equals(contrlFlag) ? "正常" : "失控"; String sqlTime = ""; if(timeSlot.equals("上午")){ sqlTime = "shang_wu_jian_kon"; } if(timeSlot.equals("下午")){ sqlTime = "xia_wu_jian_kong_"; } // 构建SQL语句 String sql; Object[] params; if ("1".equals(finishFlag)) { // 已完成的情况 sql = "UPDATE " + TableName + " SET lie_biao_shu_ju_=?, update_time_=?, bei_zhu_='自动导入', " + "shi_kong_zhuang_t=?, shi_fou_guo_shen_='已完成',"+sqlTime+"=? WHERE id_=?"; params = new Object[]{retJsonStr, updateTime, shiKongZhuangT, timeStr, id}; } else { // 未完成的情况 sql = "UPDATE " + TableName + " SET lie_biao_shu_ju_=?, update_time_=?, bei_zhu_='自动导入', " + "shi_kong_zhuang_t=?,"+sqlTime+"=? WHERE id_=?"; params = new Object[]{retJsonStr, updateTime, shiKongZhuangT, timeStr, id}; } try { // 执行更新操作 int affectedRows = 0; if(qrymode.equals("0")){ log.info("Ready to update:TableName,{},id:{},retJsonStr:{},JsonFlag:{}",TableName,id,retJsonStr,JsonFlag); affectedRows = jdbcTemplate.update(sql, params); } else { log.info("qry mode,TableName,{},id:{},retJsonStr:{},JsonFlag:{}",TableName,id,retJsonStr,JsonFlag); affectedRows = 1; } if (affectedRows > 0) { return "1"; // 更新成功 } else { log.warn("更新失败,未找到匹配的记录。表: " + TableName + ", ID: " + id); return "0"; // 更新失败 } } catch (Exception e) { log.error("数据库更新失败: " + e.getMessage(), e); return "0"; // 更新失败 } } }