5dca25a6 张雷

替换积木报表

1 个父辈 81c652f7
...@@ -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) {
......
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 }
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 }
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 &gt;= #{startTime}
964 AND v3.time &lt;= #{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 &gt;= #{startTime}
976 AND v2.time &lt;= #{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 &gt;= #{startTime}
996 AND v.time &lt;= #{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 }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!