1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| package com.battery.business.report;
|
| import com.alibaba.fastjson2.JSON;
| import com.ruoyi.common.exception.ServiceException;
| import org.springframework.jdbc.core.JdbcTemplate;
| import org.springframework.stereotype.Repository;
| import javax.sql.DataSource;
| import java.sql.Timestamp;
| import java.util.List;
| import java.util.Map;
|
| @Repository
| public class CompareFieldTemplateRepository {
| private final JdbcTemplate jdbc;
| public CompareFieldTemplateRepository(DataSource dataSource) { jdbc = new JdbcTemplate(dataSource); }
| public record Template(long id, String name, String type, List<Map<String, Object>> fields, String creator, long updatedAt) {}
| @SuppressWarnings("unchecked") private List<Map<String,Object>> fields(String json) { return (List<Map<String,Object>>)(List<?>) JSON.parseArray(json, Map.class); }
| public List<Template> list() {
| return jdbc.query("select template_id,template_name,template_type,fields_json,creator_name,updated_at_utc from t_compare_report_field_template where template_type='compare' order by template_name,template_id",
| (rs, i) -> new Template(rs.getLong(1), rs.getString(2), rs.getString(3), fields(rs.getString(4)), rs.getString(5), rs.getTimestamp(6).getTime()));
| }
| public Template get(long id) {
| List<Template> rows = jdbc.query("select template_id,template_name,template_type,fields_json,creator_name,updated_at_utc from t_compare_report_field_template where template_id=?", (rs,i) -> new Template(rs.getLong(1),rs.getString(2),rs.getString(3),fields(rs.getString(4)),rs.getString(5),rs.getTimestamp(6).getTime()), id);
| if (rows.isEmpty()) throw new ServiceException("字段模板不存在");
| return rows.get(0);
| }
| public long insert(String name, List<Map<String,Object>> fields, long userId, String userName) {
| try {
| var key = new org.springframework.jdbc.support.GeneratedKeyHolder();
| jdbc.update(c -> { var s=c.prepareStatement("insert into t_compare_report_field_template(template_name,template_type,fields_json,creator_id,creator_name,created_at_utc,updated_at_utc) values(?,'compare',?,?,?,?,?)", java.sql.Statement.RETURN_GENERATED_KEYS); s.setString(1,name); s.setString(2,JSON.toJSONString(fields)); s.setLong(3,userId); s.setString(4,userName); var now=new Timestamp(System.currentTimeMillis()); s.setTimestamp(5,now); s.setTimestamp(6,now); return s; }, key);
| return key.getKey().longValue();
| } catch (org.springframework.dao.DuplicateKeyException e) { throw new ServiceException("模板名称已存在"); }
| }
| }
|
|