替换积木报表
正在显示
15 个修改的文件
包含
693 行增加
和
155 行删除
... | @@ -248,9 +248,9 @@ | ... | @@ -248,9 +248,9 @@ |
248 | </select> | 248 | </select> |
249 | <select id="getTagDataList" resultType="com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo"> | 249 | <select id="getTagDataList" resultType="com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo"> |
250 | SELECT | 250 | SELECT |
251 | id, | 251 | m.id, |
252 | depart_id, | 252 | m.depart_id, |
253 | metric_uid_tag | 253 | m.metric_uid_tag |
254 | FROM | 254 | FROM |
255 | sys_monitor_metric_info m | 255 | sys_monitor_metric_info m |
256 | WHERE | 256 | WHERE |
... | @@ -258,5 +258,10 @@ | ... | @@ -258,5 +258,10 @@ |
258 | 'CSNH3N','CSCOD','CSLJLL','CSLL','CSPH','CSSS','CSTN','CSTP', | 258 | 'CSNH3N','CSCOD','CSLJLL','CSLL','CSPH','CSSS','CSTN','CSTP', |
259 | 'JSNH3N','JSCOD','JSLJLL','JSLL','JSPH','JSSS','JSTN','JSTP' | 259 | 'JSNH3N','JSCOD','JSLJLL','JSLL','JSPH','JSSS','JSTN','JSTP' |
260 | ) | 260 | ) |
261 | GROUP BY | ||
262 | m.metric_uid_tag, | ||
263 | m.depart_id | ||
264 | ORDER BY | ||
265 | m.depart_id | ||
261 | </select> | 266 | </select> |
262 | </mapper> | 267 | </mapper> | ... | ... |
... | @@ -27,6 +27,49 @@ public class DateUtils { | ... | @@ -27,6 +27,49 @@ public class DateUtils { |
27 | return sdf.format(str2Date(date,format)); | 27 | return sdf.format(str2Date(date,format)); |
28 | } | 28 | } |
29 | 29 | ||
30 | public static ThreadLocal<SimpleDateFormat> date_sdf = new ThreadLocal<SimpleDateFormat>() { | ||
31 | @Override | ||
32 | protected SimpleDateFormat initialValue() { | ||
33 | return new SimpleDateFormat("yyyy-MM-dd"); | ||
34 | } | ||
35 | }; | ||
36 | public static ThreadLocal<SimpleDateFormat> yyyyMMdd = new ThreadLocal<SimpleDateFormat>() { | ||
37 | @Override | ||
38 | protected SimpleDateFormat initialValue() { | ||
39 | return new SimpleDateFormat("yyyyMMdd"); | ||
40 | } | ||
41 | }; | ||
42 | public static ThreadLocal<SimpleDateFormat> date_sdf_wz = new ThreadLocal<SimpleDateFormat>() { | ||
43 | @Override | ||
44 | protected SimpleDateFormat initialValue() { | ||
45 | return new SimpleDateFormat("yyyy年MM月dd日"); | ||
46 | } | ||
47 | }; | ||
48 | public static ThreadLocal<SimpleDateFormat> time_sdf = new ThreadLocal<SimpleDateFormat>() { | ||
49 | @Override | ||
50 | protected SimpleDateFormat initialValue() { | ||
51 | return new SimpleDateFormat("yyyy-MM-dd HH:mm"); | ||
52 | } | ||
53 | }; | ||
54 | public static ThreadLocal<SimpleDateFormat> yyyymmddhhmmss = new ThreadLocal<SimpleDateFormat>() { | ||
55 | @Override | ||
56 | protected SimpleDateFormat initialValue() { | ||
57 | return new SimpleDateFormat("yyyyMMddHHmmss"); | ||
58 | } | ||
59 | }; | ||
60 | public static ThreadLocal<SimpleDateFormat> short_time_sdf = new ThreadLocal<SimpleDateFormat>() { | ||
61 | @Override | ||
62 | protected SimpleDateFormat initialValue() { | ||
63 | return new SimpleDateFormat("HH:mm"); | ||
64 | } | ||
65 | }; | ||
66 | public static ThreadLocal<SimpleDateFormat> datetimeFormat = new ThreadLocal<SimpleDateFormat>() { | ||
67 | @Override | ||
68 | protected SimpleDateFormat initialValue() { | ||
69 | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
70 | } | ||
71 | }; | ||
72 | |||
30 | public static void main(String[] args) { | 73 | public static void main(String[] args) { |
31 | System.out.println( formatDate("2024-01","yyyy-MM")); | 74 | System.out.println( formatDate("2024-01","yyyy-MM")); |
32 | } | 75 | } | ... | ... |
... | @@ -60,7 +60,7 @@ public class QuartzJobController { | ... | @@ -60,7 +60,7 @@ public class QuartzJobController { |
60 | 60 | ||
61 | /** | 61 | /** |
62 | * 分页列表查询 | 62 | * 分页列表查询 |
63 | * | 63 | * |
64 | * @param quartzJob | 64 | * @param quartzJob |
65 | * @param pageNo | 65 | * @param pageNo |
66 | * @param pageSize | 66 | * @param pageSize |
... | @@ -81,7 +81,7 @@ public class QuartzJobController { | ... | @@ -81,7 +81,7 @@ public class QuartzJobController { |
81 | 81 | ||
82 | /** | 82 | /** |
83 | * 添加定时任务 | 83 | * 添加定时任务 |
84 | * | 84 | * |
85 | * @param quartzJob | 85 | * @param quartzJob |
86 | * @return | 86 | * @return |
87 | */ | 87 | */ |
... | @@ -107,7 +107,7 @@ public class QuartzJobController { | ... | @@ -107,7 +107,7 @@ public class QuartzJobController { |
107 | 107 | ||
108 | /** | 108 | /** |
109 | * 更新定时任务 | 109 | * 更新定时任务 |
110 | * | 110 | * |
111 | * @param quartzJob | 111 | * @param quartzJob |
112 | * @return | 112 | * @return |
113 | */ | 113 | */ |
... | @@ -134,7 +134,7 @@ public class QuartzJobController { | ... | @@ -134,7 +134,7 @@ public class QuartzJobController { |
134 | 134 | ||
135 | /** | 135 | /** |
136 | * 通过id删除 | 136 | * 通过id删除 |
137 | * | 137 | * |
138 | * @param id | 138 | * @param id |
139 | * @return | 139 | * @return |
140 | */ | 140 | */ |
... | @@ -156,7 +156,7 @@ public class QuartzJobController { | ... | @@ -156,7 +156,7 @@ public class QuartzJobController { |
156 | 156 | ||
157 | /** | 157 | /** |
158 | * 批量删除 | 158 | * 批量删除 |
159 | * | 159 | * |
160 | * @param ids | 160 | * @param ids |
161 | * @return | 161 | * @return |
162 | */ | 162 | */ |
... | @@ -177,7 +177,7 @@ public class QuartzJobController { | ... | @@ -177,7 +177,7 @@ public class QuartzJobController { |
177 | 177 | ||
178 | /** | 178 | /** |
179 | * 暂停定时任务 | 179 | * 暂停定时任务 |
180 | * | 180 | * |
181 | * @param job | 181 | * @param job |
182 | * @return | 182 | * @return |
183 | */ | 183 | */ |
... | @@ -201,7 +201,7 @@ public class QuartzJobController { | ... | @@ -201,7 +201,7 @@ public class QuartzJobController { |
201 | 201 | ||
202 | /** | 202 | /** |
203 | * 启动定时任务 | 203 | * 启动定时任务 |
204 | * | 204 | * |
205 | * @param job | 205 | * @param job |
206 | * @return | 206 | * @return |
207 | */ | 207 | */ |
... | @@ -219,7 +219,7 @@ public class QuartzJobController { | ... | @@ -219,7 +219,7 @@ public class QuartzJobController { |
219 | 219 | ||
220 | /** | 220 | /** |
221 | * 通过id查询 | 221 | * 通过id查询 |
222 | * | 222 | * |
223 | * @param id | 223 | * @param id |
224 | * @return | 224 | * @return |
225 | */ | 225 | */ |
... | @@ -238,7 +238,7 @@ public class QuartzJobController { | ... | @@ -238,7 +238,7 @@ public class QuartzJobController { |
238 | 238 | ||
239 | /** | 239 | /** |
240 | * 导出excel | 240 | * 导出excel |
241 | * | 241 | * |
242 | * @param request | 242 | * @param request |
243 | * @param response | 243 | * @param response |
244 | */ | 244 | */ |
... | @@ -259,7 +259,7 @@ public class QuartzJobController { | ... | @@ -259,7 +259,7 @@ public class QuartzJobController { |
259 | 259 | ||
260 | /** | 260 | /** |
261 | * 通过excel导入数据 | 261 | * 通过excel导入数据 |
262 | * | 262 | * |
263 | * @param request | 263 | * @param request |
264 | * @param response | 264 | * @param response |
265 | * @return | 265 | * @return |
... | @@ -293,4 +293,24 @@ public class QuartzJobController { | ... | @@ -293,4 +293,24 @@ public class QuartzJobController { |
293 | } | 293 | } |
294 | return Result.error("文件导入失败!"); | 294 | return Result.error("文件导入失败!"); |
295 | } | 295 | } |
296 | |||
297 | /** | ||
298 | * 立即执行 | ||
299 | * @param id | ||
300 | * @return | ||
301 | */ | ||
302 | @GetMapping("/execute") | ||
303 | public Result<?> execute(@RequestParam(name = "id", required = true) String id) { | ||
304 | QuartzJob quartzJob = quartzJobService.getById(id); | ||
305 | if (quartzJob == null) { | ||
306 | return Result.error("未找到对应实体"); | ||
307 | } | ||
308 | try { | ||
309 | quartzJobService.execute(quartzJob); | ||
310 | } catch (Exception e) { | ||
311 | log.info("定时任务 立即执行失败>>"+e.getMessage()); | ||
312 | return Result.error("执行失败!"); | ||
313 | } | ||
314 | return Result.ok("执行成功!"); | ||
315 | } | ||
296 | } | 316 | } | ... | ... |
... | @@ -21,4 +21,6 @@ public interface IQuartzJobService extends IService<QuartzJob> { | ... | @@ -21,4 +21,6 @@ public interface IQuartzJobService extends IService<QuartzJob> { |
21 | boolean deleteAndStopJob(QuartzJob quartzJob); | 21 | boolean deleteAndStopJob(QuartzJob quartzJob); |
22 | 22 | ||
23 | boolean resumeJob(QuartzJob quartzJob); | 23 | boolean resumeJob(QuartzJob quartzJob); |
24 | |||
25 | void execute(QuartzJob quartzJob) throws Exception; | ||
24 | } | 26 | } | ... | ... |
1 | package com.skua.modules.quartz.service.impl; | 1 | package com.skua.modules.quartz.service.impl; |
2 | 2 | ||
3 | import java.util.Date; | ||
3 | import java.util.List; | 4 | import java.util.List; |
4 | 5 | ||
5 | import com.skua.core.constant.CommonConstant; | 6 | import com.skua.core.constant.CommonConstant; |
... | @@ -7,16 +8,8 @@ import com.skua.core.exception.JeecgBootException; | ... | @@ -7,16 +8,8 @@ import com.skua.core.exception.JeecgBootException; |
7 | import com.skua.modules.quartz.entity.QuartzJob; | 8 | import com.skua.modules.quartz.entity.QuartzJob; |
8 | import com.skua.modules.quartz.mapper.QuartzJobMapper; | 9 | import com.skua.modules.quartz.mapper.QuartzJobMapper; |
9 | import com.skua.modules.quartz.service.IQuartzJobService; | 10 | import com.skua.modules.quartz.service.IQuartzJobService; |
10 | import org.quartz.CronScheduleBuilder; | 11 | import com.skua.tool.util.DateUtils; |
11 | import org.quartz.CronTrigger; | 12 | import org.quartz.*; |
12 | import org.quartz.Job; | ||
13 | import org.quartz.JobBuilder; | ||
14 | import org.quartz.JobDetail; | ||
15 | import org.quartz.JobKey; | ||
16 | import org.quartz.Scheduler; | ||
17 | import org.quartz.SchedulerException; | ||
18 | import org.quartz.TriggerBuilder; | ||
19 | import org.quartz.TriggerKey; | ||
20 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
21 | import org.springframework.stereotype.Service; | 14 | import org.springframework.stereotype.Service; |
22 | 15 | ||
... | @@ -34,6 +27,10 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob | ... | @@ -34,6 +27,10 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob |
34 | private QuartzJobMapper quartzJobMapper; | 27 | private QuartzJobMapper quartzJobMapper; |
35 | @Autowired | 28 | @Autowired |
36 | private Scheduler scheduler; | 29 | private Scheduler scheduler; |
30 | /** | ||
31 | * 立即执行的任务分组 | ||
32 | */ | ||
33 | private static final String JOB_TEST_GROUP = "test_group"; | ||
37 | 34 | ||
38 | @Override | 35 | @Override |
39 | public List<QuartzJob> findByJobClassName(String jobClassName) { | 36 | public List<QuartzJob> findByJobClassName(String jobClassName) { |
... | @@ -65,9 +62,30 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob | ... | @@ -65,9 +62,30 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob |
65 | return this.updateById(quartzJob); | 62 | return this.updateById(quartzJob); |
66 | } | 63 | } |
67 | 64 | ||
65 | @Override | ||
66 | public void execute(QuartzJob quartzJob) throws Exception { | ||
67 | String jobName = quartzJob.getJobClassName().trim(); | ||
68 | Date startDate = new Date(); | ||
69 | String ymd = DateUtils.date2Str(startDate, DateUtils.yyyymmddhhmmss.get()); | ||
70 | String identity = jobName + ymd; | ||
71 | //3秒后执行 只执行一次 | ||
72 | startDate.setTime(startDate.getTime()+3000L); | ||
73 | // 定义一个Trigger | ||
74 | SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger() | ||
75 | .withIdentity(identity, JOB_TEST_GROUP) | ||
76 | .startAt(startDate) | ||
77 | .build(); | ||
78 | // 构建job信息 | ||
79 | JobDetail jobDetail = JobBuilder.newJob(getClass(jobName).getClass()).withIdentity(identity).usingJobData("parameter", quartzJob.getParameter()).build(); | ||
80 | // 将trigger和 jobDetail 加入这个调度 | ||
81 | scheduler.scheduleJob(jobDetail, trigger); | ||
82 | // 启动scheduler | ||
83 | scheduler.start(); | ||
84 | } | ||
85 | |||
68 | /** | 86 | /** |
69 | * 编辑&启停定时任务 | 87 | * 编辑&启停定时任务 |
70 | * @throws SchedulerException | 88 | * @throws SchedulerException |
71 | */ | 89 | */ |
72 | @Override | 90 | @Override |
73 | public boolean editAndScheduleJob(QuartzJob quartzJob) throws SchedulerException { | 91 | public boolean editAndScheduleJob(QuartzJob quartzJob) throws SchedulerException { |
... | @@ -92,7 +110,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob | ... | @@ -92,7 +110,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob |
92 | 110 | ||
93 | /** | 111 | /** |
94 | * 添加定时任务 | 112 | * 添加定时任务 |
95 | * | 113 | * |
96 | * @param jobClassName | 114 | * @param jobClassName |
97 | * @param cronExpression | 115 | * @param cronExpression |
98 | * @param parameter | 116 | * @param parameter |
... | @@ -123,7 +141,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob | ... | @@ -123,7 +141,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob |
123 | 141 | ||
124 | /** | 142 | /** |
125 | * 删除定时任务 | 143 | * 删除定时任务 |
126 | * | 144 | * |
127 | * @param jobClassName | 145 | * @param jobClassName |
128 | */ | 146 | */ |
129 | private void schedulerDelete(String jobClassName) { | 147 | private void schedulerDelete(String jobClassName) { | ... | ... |
sk-module-datafill/src/main/java/com/skua/modules/custom/handle/impl/HjtjReportHandle.java
0 → 100644
1 | package com.skua.modules.custom.handle.impl; | ||
2 | |||
3 | import com.skua.common.constant.ReportConstant; | ||
4 | import com.skua.common.report.ReportViewUtil; | ||
5 | import com.skua.common.report.entity.ValueEntity; | ||
6 | import com.skua.core.util.ConvertUtils; | ||
7 | import com.skua.modules.common.service.ICommonSqlService; | ||
8 | import com.skua.modules.custom.handle.ICustomHandle; | ||
9 | import com.skua.modules.custom.service.IFCustomReportDatasetService; | ||
10 | import org.apache.commons.lang.StringUtils; | ||
11 | import org.springframework.beans.factory.annotation.Autowired; | ||
12 | import org.springframework.stereotype.Component; | ||
13 | |||
14 | import java.util.*; | ||
15 | |||
16 | /** | ||
17 | * <pre> | ||
18 | * 环境统计季、年报自定义逻辑 | ||
19 | * </pre> | ||
20 | * @author zhanglei | ||
21 | * @version V0.1, 2024年11月17日 上午9:40:17 | ||
22 | */ | ||
23 | @Component("hjtjReportHandle") | ||
24 | public class HjtjReportHandle implements ICustomHandle{ | ||
25 | @Autowired | ||
26 | private IFCustomReportDatasetService fCustomReportDatasetService; | ||
27 | |||
28 | @Override | ||
29 | public Map<String, List<Map<String, ValueEntity>>> buildDataMap(String reportId, String startTime, String endTime, | ||
30 | String departId,String indexCode) { | ||
31 | Map<String,List<Map<String,ValueEntity>>> dataMap = new HashMap<String,List<Map<String,ValueEntity>>>(); | ||
32 | //获取数据集 | ||
33 | //获取填报数据及报表数据项信息,组装报表所需数据机构 | ||
34 | List<Map<String,ValueEntity>> list = new ArrayList<Map<String,ValueEntity>>(); | ||
35 | //根据数据集id获取数据项及填报数据 | ||
36 | Map<String,String> dataFieldDict = new HashMap<String,String>(); | ||
37 | //表内容 | ||
38 | dataFieldDict.put("CSL", "排水量"); | ||
39 | dataFieldDict.put("YXTS", "运行天数"); | ||
40 | dataFieldDict.put("YXSJ", "运行时间"); | ||
41 | dataFieldDict.put("JSCOD", "化学需氧量进口浓度"); | ||
42 | dataFieldDict.put("CSCOD", "化学需氧量出口浓度"); | ||
43 | dataFieldDict.put("JSBOD", "生化需氧量进口浓度"); | ||
44 | dataFieldDict.put("CSBOD", "生化需氧量出口浓度"); | ||
45 | dataFieldDict.put("JSTN", "总氮进口浓度"); | ||
46 | dataFieldDict.put("CSTN", "总氮出口浓度"); | ||
47 | dataFieldDict.put("JSNH3N", "氨氮进口浓度"); | ||
48 | dataFieldDict.put("CSNH3N", "氨氮出口浓度"); | ||
49 | dataFieldDict.put("JSTP", "总磷进口浓度"); | ||
50 | dataFieldDict.put("CSTP", "总磷出口浓度"); | ||
51 | dataFieldDict.put("HDL", "用电量"); | ||
52 | dataFieldDict.put("WSCLNL", "污水处理能力"); | ||
53 | dataFieldDict.put("WSSJCLNL", "污水实际处理能力"); | ||
54 | dataFieldDict.put("WNCSL", "污泥产生量"); | ||
55 | dataFieldDict.put("WNHSL", "污泥含水率"); | ||
56 | dataFieldDict.put("WNCLL", "污泥处理量"); | ||
57 | dataFieldDict.put("WNZCL", "污泥贮存量"); | ||
58 | String dataViewName9bff = ReportViewUtil.buildView(ReportConstant.view9bff,"", departId, startTime, endTime); | ||
59 | String dataViewName3a24 = ReportViewUtil.buildView(ReportConstant.view3a24,"", departId, startTime, endTime); | ||
60 | String dataViewName2119 = ReportViewUtil.buildView(ReportConstant.view2119,"", departId, startTime, endTime); | ||
61 | //结果集 | ||
62 | List<Map<String, Object>> szMapList = fCustomReportDatasetService.queryHjtjReport(dataViewName9bff, dataViewName3a24, dataViewName2119, | ||
63 | startTime, endTime, departId); | ||
64 | list = changeDataList(szMapList,list,startTime,dataFieldDict); | ||
65 | dataMap.put("综合数据源", list); | ||
66 | return dataMap; | ||
67 | } | ||
68 | |||
69 | /** | ||
70 | * 构造LIST | ||
71 | * @param szMapList | ||
72 | * @param list | ||
73 | * @param startTime | ||
74 | * @param dataFieldDict | ||
75 | * @return | ||
76 | */ | ||
77 | private List<Map<String, ValueEntity>> changeDataList(List<Map<String, Object>> szMapList, List<Map<String, ValueEntity>> list, | ||
78 | String startTime, Map<String, String> dataFieldDict) { | ||
79 | for(Map<String,Object> valueMap : szMapList) { | ||
80 | Map<String,ValueEntity> handleMap = new HashMap<String,ValueEntity>(); | ||
81 | //添加时间参数 | ||
82 | ValueEntity startTimeValueEntity = new ValueEntity(); | ||
83 | startTimeValueEntity.setValue(startTime); | ||
84 | handleMap.put("参数时间", startTimeValueEntity); | ||
85 | Set<String> keySet = valueMap.keySet(); | ||
86 | for(String key : keySet) { | ||
87 | if(!StringUtils.isEmpty(dataFieldDict.get(key))) { | ||
88 | ValueEntity valueEntity = new ValueEntity(); | ||
89 | valueEntity.setValue(ConvertUtils.getString(valueMap.get(key))); | ||
90 | handleMap.put(dataFieldDict.get(key),valueEntity); | ||
91 | } | ||
92 | } | ||
93 | list.add(handleMap); | ||
94 | } | ||
95 | return list; | ||
96 | } | ||
97 | |||
98 | @Override | ||
99 | public String buildWaterQualityAlarmValue(String reportId, String departId, String json) { | ||
100 | return json; | ||
101 | } | ||
102 | |||
103 | } |
sk-module-datafill/src/main/java/com/skua/modules/custom/handle/impl/PwxknbReportHandle.java
0 → 100644
1 | package com.skua.modules.custom.handle.impl; | ||
2 | |||
3 | import com.skua.common.constant.ReportConstant; | ||
4 | import com.skua.common.report.ReportViewUtil; | ||
5 | import com.skua.common.report.entity.ValueEntity; | ||
6 | import com.skua.core.util.ConvertUtils; | ||
7 | import com.skua.modules.common.service.ICommonSqlService; | ||
8 | import com.skua.modules.custom.handle.ICustomHandle; | ||
9 | import com.skua.modules.custom.service.IFCustomReportDatasetService; | ||
10 | import com.skua.modules.custom.vo.FCustomReportDatasetVO; | ||
11 | import com.skua.modules.dataAnalysis.service.IFactoryCenterService; | ||
12 | import com.skua.tool.util.DateUtils; | ||
13 | import org.apache.commons.lang.StringUtils; | ||
14 | import org.springframework.beans.factory.annotation.Autowired; | ||
15 | import org.springframework.stereotype.Component; | ||
16 | |||
17 | import javax.annotation.Resource; | ||
18 | import java.util.*; | ||
19 | |||
20 | /** | ||
21 | * <pre> | ||
22 | * 排污许可年报自定义逻辑 | ||
23 | * </pre> | ||
24 | * @author zhanglei | ||
25 | * @version V0.1, 2024年11月17日 上午9:40:17 | ||
26 | */ | ||
27 | @Component("pwxknbReportHandle") | ||
28 | public class PwxknbReportHandle implements ICustomHandle{ | ||
29 | @Autowired | ||
30 | private IFCustomReportDatasetService fCustomReportDatasetService; | ||
31 | @Autowired | ||
32 | private ICommonSqlService commonSqlService; | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String, List<Map<String, ValueEntity>>> buildDataMap(String reportId, String startTime, String endTime, | ||
37 | String departId,String indexCode) { | ||
38 | List<String> timeList = DateUtils.getMonthsBetween(startTime, endTime); | ||
39 | String departIds = commonSqlService.getChildDepartId(departId); | ||
40 | Map<String,List<Map<String,ValueEntity>>> dataMap = new HashMap<String,List<Map<String,ValueEntity>>>(); | ||
41 | //获取数据集 | ||
42 | //获取填报数据及报表数据项信息,组装报表所需数据机构 | ||
43 | List<Map<String,ValueEntity>> list = new ArrayList<Map<String,ValueEntity>>(); | ||
44 | //根据数据集id获取数据项及填报数据 | ||
45 | Map<String,String> dataFieldDict = new HashMap<String,String>(); | ||
46 | //添加厂站、时间字段 | ||
47 | dataFieldDict.put("depart_name", "厂站名称"); | ||
48 | dataFieldDict.put("time", "时间"); | ||
49 | dataFieldDict.put("paramTime", "参数时间"); | ||
50 | //表内容 | ||
51 | dataFieldDict.put("flow", "流量SUM"); | ||
52 | dataFieldDict.put("cod_avg", "化学需氧量AVG"); | ||
53 | dataFieldDict.put("cod_sum", "化学需氧量SUM"); | ||
54 | dataFieldDict.put("nh3n_avg", "氨氮AVG"); | ||
55 | dataFieldDict.put("nh3n_sum", "氨氮SUM"); | ||
56 | dataFieldDict.put("tn_avg", "总氮AVG"); | ||
57 | dataFieldDict.put("tn_sum", "总氮SUM"); | ||
58 | dataFieldDict.put("tp_avg", "总磷AVG"); | ||
59 | dataFieldDict.put("tp_sum", "总磷SUM"); | ||
60 | dataFieldDict.put("ss_avg", "SSAVG"); | ||
61 | dataFieldDict.put("ss_sum", "SSSUM"); | ||
62 | String dataViewName = ReportViewUtil.buildView(ReportConstant.view2119,"", departIds, startTime, endTime); | ||
63 | //结果集 | ||
64 | List<Map<String, Object>> szMapList = fCustomReportDatasetService.queryPwxknbReport(dataViewName, startTime, endTime, departIds); | ||
65 | list = changeDataList(szMapList,list,startTime,dataFieldDict); | ||
66 | List<Map<String,ValueEntity>> dataList = new ArrayList<>(); | ||
67 | for (String time: timeList) { | ||
68 | Map<String,ValueEntity> newDataMap = new HashMap<>(); | ||
69 | ValueEntity valueEntity = new ValueEntity(); | ||
70 | valueEntity.setValue(time); | ||
71 | newDataMap.put("时间", valueEntity); | ||
72 | for (Map<String,ValueEntity> dMap: list) { | ||
73 | if(time.equals(dMap.get("时间").getValue())){ | ||
74 | newDataMap.putAll(dMap); | ||
75 | } | ||
76 | } | ||
77 | dataList.add(newDataMap); | ||
78 | } | ||
79 | dataMap.put("综合数据源", dataList); | ||
80 | return dataMap; | ||
81 | } | ||
82 | |||
83 | /** | ||
84 | * 构造LIST | ||
85 | * @param szMapList | ||
86 | * @param list | ||
87 | * @param startTime | ||
88 | * @param dataFieldDict | ||
89 | * @return | ||
90 | */ | ||
91 | private List<Map<String, ValueEntity>> changeDataList(List<Map<String, Object>> szMapList, List<Map<String, ValueEntity>> list, | ||
92 | String startTime, Map<String, String> dataFieldDict) { | ||
93 | for(Map<String,Object> valueMap : szMapList) { | ||
94 | Map<String,ValueEntity> handleMap = new HashMap<String,ValueEntity>(); | ||
95 | //添加时间参数 | ||
96 | ValueEntity startTimeValueEntity = new ValueEntity(); | ||
97 | startTimeValueEntity.setValue(startTime); | ||
98 | handleMap.put("参数时间", startTimeValueEntity); | ||
99 | Set<String> keySet = valueMap.keySet(); | ||
100 | for(String key : keySet) { | ||
101 | if(!StringUtils.isEmpty(dataFieldDict.get(key))) { | ||
102 | ValueEntity valueEntity = new ValueEntity(); | ||
103 | valueEntity.setValue(ConvertUtils.getString(valueMap.get(key))); | ||
104 | handleMap.put(dataFieldDict.get(key),valueEntity); | ||
105 | } | ||
106 | } | ||
107 | list.add(handleMap); | ||
108 | } | ||
109 | return list; | ||
110 | } | ||
111 | |||
112 | @Override | ||
113 | public String buildWaterQualityAlarmValue(String reportId, String departId, String json) { | ||
114 | return json; | ||
115 | } | ||
116 | |||
117 | } |
sk-module-datafill/src/main/java/com/skua/modules/custom/handle/impl/PwxkybReportHandle.java
0 → 100644
1 | package com.skua.modules.custom.handle.impl; | ||
2 | |||
3 | import com.skua.common.constant.ReportConstant; | ||
4 | import com.skua.common.report.ReportViewUtil; | ||
5 | import com.skua.common.report.entity.ValueEntity; | ||
6 | import com.skua.core.util.ConvertUtils; | ||
7 | import com.skua.modules.common.service.ICommonSqlService; | ||
8 | import com.skua.modules.custom.handle.ICustomHandle; | ||
9 | import com.skua.modules.custom.service.IFCustomReportDatasetService; | ||
10 | import com.skua.tool.util.DateUtils; | ||
11 | import org.apache.commons.lang.StringUtils; | ||
12 | import org.springframework.beans.factory.annotation.Autowired; | ||
13 | import org.springframework.stereotype.Component; | ||
14 | |||
15 | import java.util.*; | ||
16 | |||
17 | /** | ||
18 | * <pre> | ||
19 | * 排污许可月报自定义逻辑 | ||
20 | * </pre> | ||
21 | * @author zhanglei | ||
22 | * @version V0.1, 2024年11月17日 上午9:40:17 | ||
23 | */ | ||
24 | @Component("pwxkybReportHandle") | ||
25 | public class PwxkybReportHandle implements ICustomHandle{ | ||
26 | @Autowired | ||
27 | private IFCustomReportDatasetService fCustomReportDatasetService; | ||
28 | @Autowired | ||
29 | private ICommonSqlService commonSqlService; | ||
30 | |||
31 | |||
32 | @Override | ||
33 | public Map<String, List<Map<String, ValueEntity>>> buildDataMap(String reportId, String startTime, String endTime, | ||
34 | String departId,String indexCode) { | ||
35 | List<String> timeList = DateUtils.getDatesBetween(startTime, endTime); | ||
36 | String departIds = commonSqlService.getChildDepartId(departId); | ||
37 | Map<String,List<Map<String,ValueEntity>>> dataMap = new HashMap<String,List<Map<String,ValueEntity>>>(); | ||
38 | //获取数据集 | ||
39 | //获取填报数据及报表数据项信息,组装报表所需数据机构 | ||
40 | List<Map<String,ValueEntity>> list = new ArrayList<Map<String,ValueEntity>>(); | ||
41 | //根据数据集id获取数据项及填报数据 | ||
42 | Map<String,String> dataFieldDict = new HashMap<String,String>(); | ||
43 | //添加厂站、时间字段 | ||
44 | dataFieldDict.put("depart_name", "厂站名称"); | ||
45 | dataFieldDict.put("time", "时间"); | ||
46 | dataFieldDict.put("paramTime", "参数时间"); | ||
47 | //表内容 | ||
48 | dataFieldDict.put("flow", "流量SUM"); | ||
49 | dataFieldDict.put("cod_avg", "化学需氧量AVG"); | ||
50 | dataFieldDict.put("cod_sum", "化学需氧量SUM"); | ||
51 | dataFieldDict.put("nh3n_avg", "氨氮AVG"); | ||
52 | dataFieldDict.put("nh3n_sum", "氨氮SUM"); | ||
53 | dataFieldDict.put("tn_avg", "总氮AVG"); | ||
54 | dataFieldDict.put("tn_sum", "总氮SUM"); | ||
55 | dataFieldDict.put("tp_avg", "总磷AVG"); | ||
56 | dataFieldDict.put("tp_sum", "总磷SUM"); | ||
57 | dataFieldDict.put("ss_avg", "SSAVG"); | ||
58 | dataFieldDict.put("ss_sum", "SSSUM"); | ||
59 | String dataViewName = ReportViewUtil.buildView(ReportConstant.view2119,"", departIds, startTime, endTime); | ||
60 | //结果集 | ||
61 | List<Map<String, Object>> szMapList = fCustomReportDatasetService.queryPwxkybReport(dataViewName, startTime, endTime, departIds); | ||
62 | list = changeDataList(szMapList,list,startTime,dataFieldDict); | ||
63 | List<Map<String,ValueEntity>> dataList = new ArrayList<>(); | ||
64 | for (String time: timeList) { | ||
65 | Map<String,ValueEntity> newDataMap = new HashMap<>(); | ||
66 | ValueEntity valueEntity = new ValueEntity(); | ||
67 | valueEntity.setValue(time); | ||
68 | newDataMap.put("时间", valueEntity); | ||
69 | for (Map<String,ValueEntity> dMap: list) { | ||
70 | if(time.equals(dMap.get("时间").getValue())){ | ||
71 | newDataMap.putAll(dMap); | ||
72 | } | ||
73 | } | ||
74 | dataList.add(newDataMap); | ||
75 | } | ||
76 | dataMap.put("综合数据源", dataList); | ||
77 | return dataMap; | ||
78 | } | ||
79 | |||
80 | /** | ||
81 | * 构造LIST | ||
82 | * @param szMapList | ||
83 | * @param list | ||
84 | * @param startTime | ||
85 | * @param dataFieldDict | ||
86 | * @return | ||
87 | */ | ||
88 | private List<Map<String, ValueEntity>> changeDataList(List<Map<String, Object>> szMapList, List<Map<String, ValueEntity>> list, | ||
89 | String startTime, Map<String, String> dataFieldDict) { | ||
90 | for(Map<String,Object> valueMap : szMapList) { | ||
91 | Map<String,ValueEntity> handleMap = new HashMap<String,ValueEntity>(); | ||
92 | //添加时间参数 | ||
93 | ValueEntity startTimeValueEntity = new ValueEntity(); | ||
94 | startTimeValueEntity.setValue(startTime); | ||
95 | handleMap.put("参数时间", startTimeValueEntity); | ||
96 | Set<String> keySet = valueMap.keySet(); | ||
97 | for(String key : keySet) { | ||
98 | if(!StringUtils.isEmpty(dataFieldDict.get(key))) { | ||
99 | ValueEntity valueEntity = new ValueEntity(); | ||
100 | valueEntity.setValue(ConvertUtils.getString(valueMap.get(key))); | ||
101 | handleMap.put(dataFieldDict.get(key),valueEntity); | ||
102 | } | ||
103 | } | ||
104 | list.add(handleMap); | ||
105 | } | ||
106 | return list; | ||
107 | } | ||
108 | |||
109 | @Override | ||
110 | public String buildWaterQualityAlarmValue(String reportId, String departId, String json) { | ||
111 | return json; | ||
112 | } | ||
113 | |||
114 | } |
... | @@ -151,4 +151,17 @@ public interface FCustomReportDatasetMapper extends BaseMapper<FCustomReportData | ... | @@ -151,4 +151,17 @@ public interface FCustomReportDatasetMapper extends BaseMapper<FCustomReportData |
151 | 151 | ||
152 | List<Map<String, Object>> queryScybReport(@Param(value="dataViewName4411") String dataViewName4411, | 152 | List<Map<String, Object>> queryScybReport(@Param(value="dataViewName4411") String dataViewName4411, |
153 | @Param(value="month") String month, @Param(value="departId") String departId); | 153 | @Param(value="month") String month, @Param(value="departId") String departId); |
154 | |||
155 | List<Map<String, Object>> queryPwxknbReport(@Param(value="dataViewName") String dataViewName, | ||
156 | @Param(value="startTime") String startTime, @Param(value="endTime") String endTime, | ||
157 | @Param(value="departId") String departId); | ||
158 | |||
159 | List<Map<String, Object>> queryPwxkybReport(@Param(value="dataViewName") String dataViewName, | ||
160 | @Param(value="startTime") String startTime, @Param(value="endTime") String endTime, | ||
161 | @Param(value="departId") String departId); | ||
162 | |||
163 | List<Map<String, Object>> queryHjtjReport(@Param(value="dataViewName9bff") String dataViewName9bff, @Param(value="dataViewName3a24") String dataViewName3a24, | ||
164 | @Param(value="dataViewName2119") String dataViewName2119, | ||
165 | @Param(value="startTime") String startTime, @Param(value="endTime") String endTime, | ||
166 | @Param(value="departId") String departId); | ||
154 | } | 167 | } | ... | ... |
... | @@ -849,4 +849,154 @@ | ... | @@ -849,4 +849,154 @@ |
849 | ORDER BY | 849 | ORDER BY |
850 | v4.time DESC,d.depart_order ASC | 850 | v4.time DESC,d.depart_order ASC |
851 | </select> | 851 | </select> |
852 | <select id="queryPwxknbReport" resultType="java.util.HashMap"> | ||
853 | SELECT | ||
854 | v4.time, | ||
855 | v4.CSZL AS tp_avg, | ||
856 | ROUND( v4.CSL * v4.CSZL / 1000000, 4 ) AS tp_sum, | ||
857 | v4.CSTN AS tn_avg, | ||
858 | ROUND( v4.CSL * v4.CSTN / 1000000, 4 ) AS tn_sum, | ||
859 | v4.CSAD AS nh3n_avg, | ||
860 | ROUND( v4.CSL * v4.CSAD / 1000000, 4 ) AS nh3n_sum, | ||
861 | v4.CSSS AS ss_avg, | ||
862 | ROUND( v4.CSL * v4.CSSS / 1000000, 4 ) AS ss_sum, | ||
863 | v4.CSCOD AS cod_avg, | ||
864 | ROUND( v4.CSL * v4.CSCOD / 1000000, 4 ) AS cod_sum, | ||
865 | ROUND(v4.CSL/10000,4) AS flow | ||
866 | FROM | ||
867 | ( | ||
868 | SELECT | ||
869 | ROUND( AVG( v.CSZL ), 4 ) AS CSZL, | ||
870 | ROUND( AVG( v.CSTN ), 4 ) AS CSTN, | ||
871 | ROUND( AVG( v.CSAD ), 4 ) AS CSAD, | ||
872 | ROUND( AVG( v.CSSS ), 4 ) AS CSSS, | ||
873 | ROUND( AVG( v.CSCOD ), 2 ) AS CSCOD, | ||
874 | ROUND( SUM( v.CSL ) ) AS CSL, | ||
875 | LEFT ( v.time, 7 ) AS time | ||
876 | FROM | ||
877 | ${dataViewName} v | ||
878 | WHERE | ||
879 | v.time LIKE '2024%' | ||
880 | AND v.depart_id IN | ||
881 | <foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")"> | ||
882 | '${item}' | ||
883 | </foreach> | ||
884 | GROUP BY | ||
885 | LEFT ( v.time, 7 ) | ||
886 | ) v4 | ||
887 | </select> | ||
888 | |||
889 | <select id="queryPwxkybReport" resultType="java.util.HashMap"> | ||
890 | SELECT | ||
891 | v4.time, | ||
892 | v4.CSZL AS tp_avg, | ||
893 | ROUND( v4.CSL * v4.CSZL / 1000000, 4 ) AS tp_sum, | ||
894 | v4.CSTN AS tn_avg, | ||
895 | ROUND( v4.CSL * v4.CSTN / 1000000, 4 ) AS tn_sum, | ||
896 | v4.CSAD AS nh3n_avg, | ||
897 | ROUND( v4.CSL * v4.CSAD / 1000000, 4 ) AS nh3n_sum, | ||
898 | v4.CSSS AS ss_avg, | ||
899 | ROUND( v4.CSL * v4.CSSS / 1000000, 4 ) AS ss_sum, | ||
900 | v4.CSCOD AS cod_avg, | ||
901 | ROUND( v4.CSL * v4.CSCOD / 1000000, 4 ) AS cod_sum, | ||
902 | ROUND(v4.CSL/10000,4) AS flow | ||
903 | FROM | ||
904 | ( | ||
905 | SELECT | ||
906 | ROUND( AVG( v.CSZL ), 4 ) AS CSZL, | ||
907 | ROUND( AVG( v.CSTN ), 4 ) AS CSTN, | ||
908 | ROUND( AVG( v.CSAD ), 4 ) AS CSAD, | ||
909 | ROUND( AVG( v.CSSS ), 4 ) AS CSSS, | ||
910 | ROUND( AVG( v.CSCOD ), 2 ) AS CSCOD, | ||
911 | ROUND( SUM( v.CSL ) ) AS CSL, | ||
912 | v.time | ||
913 | FROM | ||
914 | ${dataViewName} v | ||
915 | WHERE | ||
916 | v.time LIKE '2024-12%' | ||
917 | AND v.depart_id IN | ||
918 | <foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")"> | ||
919 | '${item}' | ||
920 | </foreach> | ||
921 | GROUP BY | ||
922 | v.time | ||
923 | ) v4 | ||
924 | </select> | ||
925 | |||
926 | <select id="queryHjtjReport" resultType="java.util.HashMap"> | ||
927 | SELECT | ||
928 | f.pro_scale*v2.DAY_COUNT AS WSCLNL, | ||
929 | v2.CSL AS WSSJCLNL, | ||
930 | v2.DAY_COUNT AS YXTS, | ||
931 | v2.DAY_COUNT*24 AS YXSJ, | ||
932 | ROUND(v2.CSL/10000,2) CSL, | ||
933 | ROUND(v2.CSL/(v2.DAY_COUNT*24),2) CSL, | ||
934 | v9.JSCOD, | ||
935 | v9.CSCOD, | ||
936 | v9.JSNH3N, | ||
937 | v9.CSNH3N, | ||
938 | v9.CSTN, | ||
939 | v9.JSTN, | ||
940 | v9.JSTP, | ||
941 | v9.CSTP, | ||
942 | v9.CSBOD, | ||
943 | v9.JSBOD, | ||
944 | v3.DLHJ AS HDL, | ||
945 | v3.WNL AS WNCSL, | ||
946 | v3.WNHSL, | ||
947 | '' AS WNCLL, | ||
948 | '' AS WNZCL | ||
949 | FROM | ||
950 | sys_factory_info f | ||
951 | LEFT JOIN ( | ||
952 | SELECT | ||
953 | SUM( v3.DLHJ ) AS DLHJ, | ||
954 | SUM( v3.WNL ) AS WNL, | ||
955 | AVG( v3.WNHSL ) AS WNHSL, | ||
956 | SUM( v3.WFCSL ) AS WFCSL, | ||
957 | SUM( v3.WFCZL ) AS WFCZL, | ||
958 | v3.depart_id | ||
959 | FROM | ||
960 | ${dataViewName3a24} v3 | ||
961 | WHERE | ||
962 | v3.depart_id = #{departId} | ||
963 | AND v3.time >= #{startTime} | ||
964 | AND v3.time <= #{endTime} | ||
965 | ) v3 ON v3.depart_id = f.depart_id | ||
966 | LEFT JOIN ( | ||
967 | SELECT | ||
968 | COUNT( v2.CSL ) AS DAY_COUNT, | ||
969 | SUM( v2.CSL ) AS CSL, | ||
970 | v2.depart_id | ||
971 | FROM | ||
972 | ${dataViewName2119} v2 | ||
973 | WHERE | ||
974 | v2.depart_id = #{departId} | ||
975 | AND v2.time >= #{startTime} | ||
976 | AND v2.time <= #{endTime} | ||
977 | ) v2 ON v2.depart_id = f.depart_id | ||
978 | LEFT JOIN ( | ||
979 | SELECT | ||
980 | ROUND( AVG( v.JSCODHY ), 2 ) AS JSCOD, | ||
981 | ROUND( AVG( v.CSCODHY ), 2 ) AS CSCOD, | ||
982 | ROUND( AVG( v.JSADHY ), 2 ) AS JSNH3N, | ||
983 | ROUND( AVG( v.CSADHY ), 2 ) AS CSNH3N, | ||
984 | ROUND( AVG( v.CSTNHY ), 2 ) AS CSTN, | ||
985 | ROUND( AVG( v.JSZDHY ), 2 ) AS JSTN, | ||
986 | ROUND( AVG( v.JSZLHY ), 2 ) AS JSTP, | ||
987 | ROUND( AVG( v.CSZLHY ), 2 ) AS CSTP, | ||
988 | ROUND( AVG( v.CSBODHY ), 2 ) AS CSBOD, | ||
989 | ROUND( AVG( v.JSBODHY ), 2 ) AS JSBOD, | ||
990 | v.depart_id | ||
991 | FROM | ||
992 | ${dataViewName9bff} v | ||
993 | WHERE | ||
994 | v.depart_id = #{departId} | ||
995 | AND v.time >= #{startTime} | ||
996 | AND v.time <= #{endTime} | ||
997 | ) v9 ON v9.depart_id = f.depart_id | ||
998 | WHERE | ||
999 | f.depart_id = #{departId} | ||
1000 | </select> | ||
1001 | |||
852 | </mapper> | 1002 | </mapper> | ... | ... |
... | @@ -144,4 +144,11 @@ public interface IFCustomReportDatasetService extends IService<FCustomReportData | ... | @@ -144,4 +144,11 @@ public interface IFCustomReportDatasetService extends IService<FCustomReportData |
144 | List<Map<String, Object>> queryHyReport(String dataViewName9bff, String startTime, String endTime, String departIds); | 144 | List<Map<String, Object>> queryHyReport(String dataViewName9bff, String startTime, String endTime, String departIds); |
145 | 145 | ||
146 | List<Map<String, Object>> queryScybReport(String dataViewName4411, String month, String departIds); | 146 | List<Map<String, Object>> queryScybReport(String dataViewName4411, String month, String departIds); |
147 | |||
148 | List<Map<String, Object>> queryPwxknbReport(String dataViewName, String startTime, String endTime, String departIds); | ||
149 | |||
150 | List<Map<String, Object>> queryPwxkybReport(String dataViewName, String startTime, String endTime, String departIds); | ||
151 | |||
152 | List<Map<String, Object>> queryHjtjReport(String dataViewName9bff,String dataViewName3a24,String dataViewName2119, | ||
153 | String startTime, String endTime, String departId); | ||
147 | } | 154 | } | ... | ... |
... | @@ -478,6 +478,26 @@ public class FCustomReportDatasetServiceImpl extends ServiceImpl<FCustomReportDa | ... | @@ -478,6 +478,26 @@ public class FCustomReportDatasetServiceImpl extends ServiceImpl<FCustomReportDa |
478 | return list; | 478 | return list; |
479 | } | 479 | } |
480 | 480 | ||
481 | @Override | ||
482 | public List<Map<String, Object>> queryPwxknbReport(String dataViewName, String startTime, String endTime, String departIds) { | ||
483 | List<Map<String, Object>> list = mapper.queryPwxknbReport(dataViewName, startTime, endTime, departIds); | ||
484 | return list; | ||
485 | } | ||
486 | |||
487 | @Override | ||
488 | public List<Map<String, Object>> queryPwxkybReport(String dataViewName, String startTime, String endTime, String departIds) { | ||
489 | List<Map<String, Object>> list = mapper.queryPwxkybReport(dataViewName, startTime, endTime, departIds); | ||
490 | return list; | ||
491 | } | ||
492 | |||
493 | @Override | ||
494 | public List<Map<String, Object>> queryHjtjReport(String dataViewName9bff, String dataViewName3a24, String dataViewName2119, | ||
495 | String startTime, String endTime, String departId) { | ||
496 | List<Map<String, Object>> list = mapper.queryHjtjReport(dataViewName9bff, dataViewName3a24, dataViewName2119, | ||
497 | startTime, endTime, departId); | ||
498 | return list; | ||
499 | } | ||
500 | |||
481 | /**转换为Map<部门编号,JnhbReportData> */ | 501 | /**转换为Map<部门编号,JnhbReportData> */ |
482 | private Map<String,JnhbReportData> convertJnhbReportDataMap(List<JnhbReportData> dataList){// Map<部门编号,JnhbReportData> | 502 | private Map<String,JnhbReportData> convertJnhbReportDataMap(List<JnhbReportData> dataList){// Map<部门编号,JnhbReportData> |
483 | Map<String,JnhbReportData> dataMap = new HashMap<>(); | 503 | Map<String,JnhbReportData> dataMap = new HashMap<>(); | ... | ... |
... | @@ -131,6 +131,15 @@ public class FCustomReportInfoServiceImpl extends ServiceImpl<FCustomReportInfoM | ... | @@ -131,6 +131,15 @@ public class FCustomReportInfoServiceImpl extends ServiceImpl<FCustomReportInfoM |
131 | public Workbook reportExport(String reportId,String startTime,String endTime,String departId,String sheetName,String indexCode) { | 131 | public Workbook reportExport(String reportId,String startTime,String endTime,String departId,String sheetName,String indexCode) { |
132 | //获取自定义报表对象 | 132 | //获取自定义报表对象 |
133 | FCustomReportInfo reportInfo = this.getById(reportId); | 133 | FCustomReportInfo reportInfo = this.getById(reportId); |
134 | if("3".equals(reportInfo.getReportTimeQueryType())){//年 | ||
135 | startTime = startTime + "-01"; | ||
136 | endTime = endTime + "-31"; | ||
137 | }else if("2".equals(reportInfo.getReportTimeQueryType())){//月 | ||
138 | if("1".equals(reportInfo.getReportType())){ | ||
139 | startTime = startTime + "-01"; | ||
140 | endTime = endTime + "-31"; | ||
141 | } | ||
142 | } | ||
134 | String customService = reportInfo.getCustomService(); | 143 | String customService = reportInfo.getCustomService(); |
135 | Map<String,List<Map<String,ValueEntity>>> dataMap = new HashMap<String,List<Map<String,ValueEntity>>>(); | 144 | Map<String,List<Map<String,ValueEntity>>> dataMap = new HashMap<String,List<Map<String,ValueEntity>>>(); |
136 | //判断自定义处理逻辑是否填写,如果没填写自动使用默认逻辑 | 145 | //判断自定义处理逻辑是否填写,如果没填写自动使用默认逻辑 | ... | ... |
... | @@ -35,6 +35,7 @@ public class DayDataSyncJob implements Job { | ... | @@ -35,6 +35,7 @@ public class DayDataSyncJob implements Job { |
35 | private ISysFactoryDeviceService sysFactoryDeviceService; | 35 | private ISysFactoryDeviceService sysFactoryDeviceService; |
36 | @Autowired | 36 | @Autowired |
37 | private IReportDataService reportDataService; | 37 | private IReportDataService reportDataService; |
38 | private DecimalFormat df = new DecimalFormat("######0.0000"); | ||
38 | 39 | ||
39 | /** | 40 | /** |
40 | * 若参数变量名修改 QuartzJobController中也需对应修改 | 41 | * 若参数变量名修改 QuartzJobController中也需对应修改 |
... | @@ -52,7 +53,7 @@ public class DayDataSyncJob implements Job { | ... | @@ -52,7 +53,7 @@ public class DayDataSyncJob implements Job { |
52 | yesterday = this.parameter; | 53 | yesterday = this.parameter; |
53 | } | 54 | } |
54 | log.info("开始同步【"+yesterday+"】数据入报表"); | 55 | log.info("开始同步【"+yesterday+"】数据入报表"); |
55 | DecimalFormat df = new DecimalFormat("######0.0000"); | 56 | |
56 | List<SysFactoryDevice> deviceList = sysFactoryDeviceService.getList(); | 57 | List<SysFactoryDevice> deviceList = sysFactoryDeviceService.getList(); |
57 | if(deviceList.size() > 0){ | 58 | if(deviceList.size() > 0){ |
58 | Map<String, String> tagMap = new HashMap<>(); | 59 | Map<String, String> tagMap = new HashMap<>(); |
... | @@ -78,137 +79,27 @@ public class DayDataSyncJob implements Job { | ... | @@ -78,137 +79,27 @@ public class DayDataSyncJob implements Job { |
78 | } | 79 | } |
79 | Map<String, String> data = new HashMap<>(); | 80 | Map<String, String> data = new HashMap<>(); |
80 | if(dataMap.size() != 0){ | 81 | if(dataMap.size() != 0){ |
81 | if(tagMap.get("CSLL-"+departId)!=null){ | 82 | //出水数据 |
82 | if(dataMap.get(tagMap.get("CSLL-"+departId)) != null){ | 83 | data = setReportDataValue(data,departId,"CSLL","CSL",tagMap,dataMap); |
83 | data.put("CSL", df.format(24*Double.parseDouble(dataMap.get(tagMap.get("CSLL-"+departId)).toString()))); | 84 | data = setReportDataValue(data,departId,"CSNH3N","CSAD",tagMap,dataMap); |
84 | }else{ | 85 | data = setReportDataValue(data,departId,"CSCOD","CSCOD",tagMap,dataMap); |
85 | data.put("CSL", ""); | 86 | data = setReportDataValue(data,departId,"CSPH","CSPH",tagMap,dataMap); |
86 | } | 87 | data = setReportDataValue(data,departId,"CSSS","CSSS",tagMap,dataMap); |
87 | }else{ | 88 | data = setReportDataValue(data,departId,"CSTP","CSZL",tagMap,dataMap); |
88 | data.put("CSL", ""); | 89 | data = setReportDataValue(data,departId,"CSTN","CSTN",tagMap,dataMap); |
89 | } | 90 | //进水数据 |
90 | if(tagMap.get("JSLL-"+departId)!=null){ | 91 | data = setReportDataValue(data,departId,"JSLL","JSL",tagMap,dataMap); |
91 | if(dataMap.get(tagMap.get("JSLL-"+departId)) != null){ | 92 | data = setReportDataValue(data,departId,"JSNH3N","JSAD",tagMap,dataMap); |
92 | data.put("JSL", df.format(24*Double.parseDouble(dataMap.get(tagMap.get("JSLL-"+departId)).toString()))); | 93 | data = setReportDataValue(data,departId,"JSCOD","JSCOD",tagMap,dataMap); |
93 | }else{ | 94 | data = setReportDataValue(data,departId,"JSPH","JSPH",tagMap,dataMap); |
94 | data.put("JSL", ""); | 95 | data = setReportDataValue(data,departId,"JSSS","JSSS",tagMap,dataMap); |
95 | } | 96 | data = setReportDataValue(data,departId,"JSTP","JSZL",tagMap,dataMap); |
96 | }else{ | 97 | data = setReportDataValue(data,departId,"JSTN","JSZD",tagMap,dataMap); |
97 | data.put("JSL", ""); | ||
98 | } | ||
99 | if(tagMap.get("CSNH3N-"+departId)!=null){ | ||
100 | if(dataMap.get(tagMap.get("CSNH3N-"+departId)) != null){ | ||
101 | data.put("CSAD", dataMap.get(tagMap.get("CSNH3N-"+departId)).toString()); | ||
102 | }else{ | ||
103 | data.put("CSAD", ""); | ||
104 | } | ||
105 | }else{ | ||
106 | data.put("CSAD", ""); | ||
107 | } | ||
108 | if(tagMap.get("CSCOD-"+departId)!=null){ | ||
109 | if(dataMap.get(tagMap.get("CSCOD-"+departId)) != null){ | ||
110 | data.put("CSCOD", dataMap.get(tagMap.get("CSCOD-"+departId)).toString()); | ||
111 | }else{ | ||
112 | data.put("CSCOD", ""); | ||
113 | } | ||
114 | |||
115 | }else{ | ||
116 | data.put("CSCOD", ""); | ||
117 | } | ||
118 | if(tagMap.get("CSPH-"+departId)!=null){ | ||
119 | if(dataMap.get(tagMap.get("CSPH-"+departId)) != null){ | ||
120 | data.put("CSPH", dataMap.get(tagMap.get("CSPH-"+departId)).toString()); | ||
121 | }else{ | ||
122 | data.put("CSPH", ""); | ||
123 | } | ||
124 | }else{ | ||
125 | data.put("CSPH", ""); | ||
126 | } | ||
127 | if(tagMap.get("CSSS-"+departId)!=null){ | ||
128 | if(dataMap.get(tagMap.get("CSSS-"+departId)) != null){ | ||
129 | data.put("CSSS", ""); | ||
130 | }else{ | ||
131 | data.put("CSSS", dataMap.get(tagMap.get("CSSS-"+departId)).toString()); | ||
132 | } | ||
133 | }else{ | ||
134 | data.put("CSSS", ""); | ||
135 | } | ||
136 | if(tagMap.get("CSTN-"+departId)!=null){ | ||
137 | if(dataMap.get(tagMap.get("CSTN-"+departId)) != null){ | ||
138 | data.put("CSTN", dataMap.get(tagMap.get("CSTN-"+departId)).toString()); | ||
139 | }else{ | ||
140 | data.put("CSTN", ""); | ||
141 | } | ||
142 | }else{ | ||
143 | data.put("CSTN", ""); | ||
144 | } | ||
145 | if(tagMap.get("CSTP-"+departId)!=null){ | ||
146 | if(dataMap.get(tagMap.get("CSTP-"+departId)) != null){ | ||
147 | data.put("CSZL", dataMap.get(tagMap.get("CSTP-"+departId)).toString()); | ||
148 | }else{ | ||
149 | data.put("CSZL", ""); | ||
150 | } | ||
151 | }else{ | ||
152 | data.put("CSZL", ""); | ||
153 | } | ||
154 | if(tagMap.get("JSNH3N-"+departId)!=null){ | ||
155 | if(dataMap.get(tagMap.get("JSNH3N-"+departId)) != null){ | ||
156 | data.put("JSAD", dataMap.get(tagMap.get("JSNH3N-"+departId)).toString()); | ||
157 | }else{ | ||
158 | data.put("JSAD", ""); | ||
159 | } | ||
160 | }else{ | ||
161 | data.put("JSAD", ""); | ||
162 | } | ||
163 | if(tagMap.get("JSCOD-"+departId)!=null){ | ||
164 | if(dataMap.get(tagMap.get("JSCOD-"+departId)) != null){ | ||
165 | data.put("JSCOD", dataMap.get(tagMap.get("JSCOD-"+departId)).toString()); | ||
166 | }else{ | ||
167 | data.put("JSCOD", ""); | ||
168 | } | ||
169 | }else{ | ||
170 | data.put("JSCOD", ""); | ||
171 | } | ||
172 | if(tagMap.get("JSPH-"+departId)!=null){ | ||
173 | if(dataMap.get(tagMap.get("JSPH-"+departId)) != null){ | ||
174 | data.put("JSPH", dataMap.get(tagMap.get("JSPH-"+departId)).toString()); | ||
175 | }else{ | ||
176 | data.put("JSPH", ""); | ||
177 | } | ||
178 | }else{ | ||
179 | data.put("JSPH", ""); | ||
180 | } | ||
181 | if(tagMap.get("JSSS-"+departId)!=null){ | ||
182 | if(dataMap.get(tagMap.get("JSSS-"+departId)) != null){ | ||
183 | data.put("JSSS", dataMap.get(tagMap.get("JSSS-"+departId)).toString()); | ||
184 | }else{ | ||
185 | data.put("JSSS", ""); | ||
186 | } | ||
187 | }else{ | ||
188 | data.put("JSSS", ""); | ||
189 | } | ||
190 | if(tagMap.get("JSTN-"+departId)!=null){ | ||
191 | if(dataMap.get(tagMap.get("JSTN-"+departId)) != null){ | ||
192 | data.put("JSZD", dataMap.get(tagMap.get("JSTN-"+departId)).toString()); | ||
193 | }else{ | ||
194 | data.put("JSZD", ""); | ||
195 | } | ||
196 | }else{ | ||
197 | data.put("JSZD", ""); | ||
198 | } | ||
199 | if(tagMap.get("JSTP-"+departId)!=null){ | ||
200 | if(dataMap.get(tagMap.get("JSTP-"+departId)) != null){ | ||
201 | data.put("JSZL", dataMap.get(tagMap.get("JSTP-"+departId)).toString()); | ||
202 | }else{ | ||
203 | data.put("JSZL", ""); | ||
204 | } | ||
205 | }else{ | ||
206 | data.put("JSZL", ""); | ||
207 | } | ||
208 | data.put("departId", departId); | 98 | data.put("departId", departId); |
209 | data.put("reportId", ReportConstant.view2119); | 99 | data.put("reportId", ReportConstant.view2119); |
210 | data.put("time",yesterday); | 100 | data.put("time",yesterday); |
211 | reportDataService.insertOrUpdateReportData(departId, yesterday, data, ReportConstant.view2119); | 101 | //reportDataService.insertOrUpdateReportData(departId, yesterday, data, ReportConstant.view2119); |
102 | log.info("========="+departId+"数据同步完成"+data); | ||
212 | } | 103 | } |
213 | } | 104 | } |
214 | } | 105 | } |
... | @@ -218,4 +109,28 @@ public class DayDataSyncJob implements Job { | ... | @@ -218,4 +109,28 @@ public class DayDataSyncJob implements Job { |
218 | } | 109 | } |
219 | 110 | ||
220 | } | 111 | } |
112 | |||
113 | /** | ||
114 | * 填充报表数据 | ||
115 | * @param data | ||
116 | * @param departId | ||
117 | * @param tagCode | ||
118 | * @param itemCode | ||
119 | * @param tagMap | ||
120 | * @param dataMap | ||
121 | * @return | ||
122 | */ | ||
123 | private Map<String, String> setReportDataValue(Map<String, String> data, String departId, String tagCode, String itemCode, | ||
124 | Map<String, String> tagMap, Map<String, Object> dataMap) { | ||
125 | if(tagMap.get(tagCode+"-"+departId)!=null){ | ||
126 | if(dataMap.get(tagMap.get(tagCode+"-"+departId)) != null){ | ||
127 | data.put(itemCode, df.format(24*Double.parseDouble(dataMap.get(tagMap.get(tagCode+"-"+departId)).toString()))); | ||
128 | }else{ | ||
129 | data.put(itemCode, ""); | ||
130 | } | ||
131 | }else{ | ||
132 | data.put(itemCode, ""); | ||
133 | } | ||
134 | return data; | ||
135 | } | ||
221 | } | 136 | } | ... | ... |
1 | package com.skua.modules.report.service; | 1 | package com.skua.modules.report.service; |
2 | 2 | ||
3 | import org.springframework.scheduling.annotation.Async; | ||
3 | import java.util.Map; | 4 | import java.util.Map; |
4 | 5 | ||
5 | /** | 6 | /** |
... | @@ -9,5 +10,6 @@ public interface IReportDataService { | ... | @@ -9,5 +10,6 @@ public interface IReportDataService { |
9 | 10 | ||
10 | void insertOrUpdateReportData(String departId, String time, Map<String, String> data, String reportId); | 11 | void insertOrUpdateReportData(String departId, String time, Map<String, String> data, String reportId); |
11 | 12 | ||
13 | @Async | ||
12 | void syncUpdateScybData(String departId,String time); | 14 | void syncUpdateScybData(String departId,String time); |
13 | } | 15 | } | ... | ... |
-
请 注册 或 登录 后发表评论