kangwei:
1 设备运行时,补全日期、月份数据
正在显示
6 个修改的文件
包含
212 行增加
和
67 行删除
1 | package com.skua.modules.common.service; | ||
2 | |||
3 | import java.util.List; | ||
4 | import java.util.Map; | ||
5 | |||
6 | /** | ||
7 | * @auther kangwei | ||
8 | * @create 2024-11-19-12:09 | ||
9 | */ | ||
10 | public interface IPgCommonService { | ||
11 | List<Map<String, Object>> queryForList(String sql); | ||
12 | Map<String, Object> queryForMap(String sql); | ||
13 | } |
sk-base-common/src/main/java/com/skua/modules/common/service/impl/PgCommonServiceImpl.java
0 → 100644
1 | package com.skua.modules.common.service.impl; | ||
2 | |||
3 | import com.baomidou.dynamic.datasource.annotation.DS; | ||
4 | import com.skua.modules.common.service.IPgCommonService; | ||
5 | import org.springframework.beans.factory.annotation.Autowired; | ||
6 | import org.springframework.jdbc.core.JdbcTemplate; | ||
7 | import org.springframework.stereotype.Service; | ||
8 | |||
9 | import java.util.List; | ||
10 | import java.util.Map; | ||
11 | |||
12 | /** | ||
13 | * @auther kangwei | ||
14 | * @create 2024-11-19-12:10 | ||
15 | */ | ||
16 | @Service | ||
17 | @DS("pg-db") | ||
18 | public class PgCommonServiceImpl implements IPgCommonService { | ||
19 | @Autowired | ||
20 | private JdbcTemplate jdbcTemplate; | ||
21 | @Override | ||
22 | public List<Map<String, Object>> queryForList(String sql) { | ||
23 | return jdbcTemplate.queryForList(sql); | ||
24 | } | ||
25 | |||
26 | @Override | ||
27 | public Map<String, Object> queryForMap(String sql) { | ||
28 | return jdbcTemplate.queryForMap(sql); | ||
29 | } | ||
30 | |||
31 | |||
32 | } |
... | @@ -8,7 +8,7 @@ import com.skua.core.context.SpringContextUtils; | ... | @@ -8,7 +8,7 @@ import com.skua.core.context.SpringContextUtils; |
8 | import com.skua.core.service.IFactoryInfoService; | 8 | import com.skua.core.service.IFactoryInfoService; |
9 | import com.skua.core.util.ConvertUtils; | 9 | import com.skua.core.util.ConvertUtils; |
10 | import com.skua.core.util.DateUtils; | 10 | import com.skua.core.util.DateUtils; |
11 | import com.skua.modules.equipment.vo.EquipmentRealTimeVO; | 11 | import com.skua.modules.common.service.IPgCommonService; |
12 | import com.skua.modules.erp.vo.MetricInfoVO; | 12 | import com.skua.modules.erp.vo.MetricInfoVO; |
13 | import com.skua.modules.erp.vo.RealTimeHistoryDataVO; | 13 | import com.skua.modules.erp.vo.RealTimeHistoryDataVO; |
14 | import com.skua.modules.guest.util.DateUtil; | 14 | import com.skua.modules.guest.util.DateUtil; |
... | @@ -26,8 +26,10 @@ import org.springframework.web.bind.annotation.RequestMapping; | ... | @@ -26,8 +26,10 @@ import org.springframework.web.bind.annotation.RequestMapping; |
26 | import org.springframework.web.bind.annotation.RequestParam; | 26 | import org.springframework.web.bind.annotation.RequestParam; |
27 | import org.springframework.web.bind.annotation.RestController; | 27 | import org.springframework.web.bind.annotation.RestController; |
28 | 28 | ||
29 | import java.text.ParseException; | 29 | import java.sql.PreparedStatement; |
30 | import java.text.SimpleDateFormat; | 30 | import java.sql.ResultSet; |
31 | import java.sql.ResultSetMetaData; | ||
32 | import java.sql.SQLException; | ||
31 | import java.util.*; | 33 | import java.util.*; |
32 | 34 | ||
33 | @Api(tags="设备-设备运行台时报表") | 35 | @Api(tags="设备-设备运行台时报表") |
... | @@ -40,15 +42,20 @@ public class TestMetricInfoController { | ... | @@ -40,15 +42,20 @@ public class TestMetricInfoController { |
40 | 42 | ||
41 | @Autowired | 43 | @Autowired |
42 | private IFactoryInfoService iFactoryInfoService; | 44 | private IFactoryInfoService iFactoryInfoService; |
43 | 45 | @Autowired | |
46 | private IPgCommonService pgCommonService; | ||
44 | 47 | ||
45 | @AutoLog(value = "设备-设备运行台时报表") | 48 | @AutoLog(value = "设备-设备运行台时报表") |
46 | @ApiOperation(value = "设备-设备运行台时报表(timeType:1 当日数据,=2表示月数据;=3表示年数据)", notes = "设备-设备运行台时报表") | 49 | @ApiOperation(value = "设备-设备运行台时报表(timeType:1 当日数据,=2表示月数据;=3表示年数据)", notes = "设备-设备运行台时报表") |
47 | @GetMapping(value = "/realTimeHistoryData") | 50 | @GetMapping(value = "/realTimeHistoryData") |
48 | public Result<RealTimeHistoryDataVO> equipRealTimeHistoryDataCtrl(@RequestParam(value = "departId") String departId, | 51 | public Result<RealTimeHistoryDataVO> equipRealTimeHistoryDataCtrl(@RequestParam(value = "departId") String departId, |
49 | @RequestParam(value = "startTime") String startTime, | 52 | @RequestParam(value = "time") String time,@RequestParam(value = "timeType",defaultValue = "1")String timeType, |
50 | @RequestParam(value = "endTime") String endTime, | 53 | @RequestParam(value = "startTime") String startTime, @RequestParam(value = "endTime") String endTime) { |
51 | @RequestParam(value = "timeType",defaultValue = "1")String timeType) { | 54 | |
55 | if("3".equals(timeType)){ | ||
56 | startTime = time+"-01-01"; | ||
57 | endTime = time+"-12-31"; | ||
58 | } | ||
52 | if(StringUtils.isEmpty(startTime)){ | 59 | if(StringUtils.isEmpty(startTime)){ |
53 | startTime = DateUtil.getCurrentDate() ; | 60 | startTime = DateUtil.getCurrentDate() ; |
54 | } | 61 | } |
... | @@ -61,6 +68,7 @@ public class TestMetricInfoController { | ... | @@ -61,6 +68,7 @@ public class TestMetricInfoController { |
61 | if(endTime != null && endTime.length() < 19){ | 68 | if(endTime != null && endTime.length() < 19){ |
62 | endTime = endTime+" 23:59:59"; | 69 | endTime = endTime+" 23:59:59"; |
63 | } | 70 | } |
71 | |||
64 | Result<RealTimeHistoryDataVO> result = new Result<>(); | 72 | Result<RealTimeHistoryDataVO> result = new Result<>(); |
65 | RealTimeHistoryDataVO realTimeHistoryDataVO = new RealTimeHistoryDataVO(); | 73 | RealTimeHistoryDataVO realTimeHistoryDataVO = new RealTimeHistoryDataVO(); |
66 | //String fields = "TCSWSCLC_PLC300_Tag182,TCSWSCLC_PLC300_Tag185"; | 74 | //String fields = "TCSWSCLC_PLC300_Tag182,TCSWSCLC_PLC300_Tag185"; |
... | @@ -94,113 +102,132 @@ public class TestMetricInfoController { | ... | @@ -94,113 +102,132 @@ public class TestMetricInfoController { |
94 | fields = fields.substring(0, fields.length() - 1); | 102 | fields = fields.substring(0, fields.length() - 1); |
95 | } | 103 | } |
96 | List<Map<String, Object>> pgDataList = queryFactoryInfos(departId, fields, startTime, endTime, timeType); | 104 | List<Map<String, Object>> pgDataList = queryFactoryInfos(departId, fields, startTime, endTime, timeType); |
97 | |||
98 | List<Map<String, Object>> dataList = null; | 105 | List<Map<String, Object>> dataList = null; |
106 | if (timeType.equals("1")){//获取时数据 | ||
107 | dataList = getHourData(metricInfoVOList ,pgDataList); | ||
108 | }else{//获取日数据或月数据 | ||
109 | dataList = getDaysAndMonthsData(metricInfoVOList ,pgDataList,startTime, endTime,timeType); | ||
110 | } | ||
111 | realTimeHistoryDataVO.setHeadList( metricInfoVOList); | ||
112 | realTimeHistoryDataVO.setDataList( dataList ); | ||
113 | result.setResult( realTimeHistoryDataVO); | ||
114 | return result; | ||
115 | } | ||
99 | 116 | ||
117 | private List<Map<String, Object>> getHourData( List<MetricInfoVO> metricInfoVOList , List<Map<String, Object>> pgDataList){ | ||
118 | List<Map<String, Object>> dataList = new ArrayList<>(); | ||
100 | if(pgDataList != null ) { | 119 | if(pgDataList != null ) { |
101 | dataList = new ArrayList<>(pgDataList.size()); | 120 | dataList = new ArrayList<>(pgDataList.size()); |
102 | Map<String, Object> dataMap = null; | 121 | Map<String, Object> dataMap = null; |
103 | //elect ts as time,nm as monitorId,v as monitorValue | 122 | //select ts as time,nm as monitorId,v as monitorValue |
104 | String equipmentCode = null; | ||
105 | for (Map<String, Object> paramMap : pgDataList) { | 123 | for (Map<String, Object> paramMap : pgDataList) { |
106 | dataMap = new HashMap<>(); | 124 | dataMap = new HashMap<>(); |
107 | dataMap.put("time",paramMap.get("time") ); | ||
108 | if(timeType.equals( "1")){ | ||
109 | dataMap.put("time",DateUtils.formatTime(Long.parseLong(paramMap.get("time") + "000")) ); | 125 | dataMap.put("time",DateUtils.formatTime(Long.parseLong(paramMap.get("time") + "000")) ); |
110 | } | ||
111 | for(MetricInfoVO metricInfoVO : metricInfoVOList){ | 126 | for(MetricInfoVO metricInfoVO : metricInfoVOList){ |
112 | dataMap.put( metricInfoVO.getEquipmentCode()+"_YX" , JSUtils.format(paramMap.get(metricInfoVO.getYxExpress()),"0.00"));//运行 | 127 | dataMap.put( metricInfoVO.getEquipmentCode()+"_YX" , JSUtils.format(paramMap.get(metricInfoVO.getYxExpress()),"0.00"));//运行 |
113 | dataMap.put( metricInfoVO.getEquipmentCode()+"_GZ" , JSUtils.format(paramMap.get(metricInfoVO.getGzExpress()),"0.00"));//故障 | 128 | dataMap.put( metricInfoVO.getEquipmentCode()+"_GZ" , JSUtils.format(paramMap.get(metricInfoVO.getGzExpress()),"0.00"));//故障 |
114 | //时数据 | 129 | //时数据 |
115 | if (timeType.equals("1")) dataMap.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 | 130 | dataMap.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 |
116 | //日数据 | ||
117 | if (timeType.equals("2")) dataMap.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 24*60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 | ||
118 | //月数据 | ||
119 | if (timeType.equals("3")) dataMap.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 30*24*60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 | ||
120 | } | 131 | } |
121 | dataList.add( dataMap ); | 132 | dataList.add( dataMap ); |
122 | } | 133 | } |
123 | } | 134 | } |
124 | /* //拼装数据 | 135 | return dataList; |
125 | Map<String, Map<String,String>> linkedHashMap = new LinkedHashMap<String, Map<String,String>>();//返回数据结果 | ||
126 | String timeTemp = null; | ||
127 | Map<String,String> dataMap = null; | ||
128 | if(pgDataList != null ){ | ||
129 | //elect ts as time,nm as monitorId,v as monitorValue | ||
130 | for( Map<String, Object> paramMap : pgDataList){ | ||
131 | timeTemp = DateUtils.formatTime(Long.parseLong(paramMap.get("time") + "000")); | ||
132 | dataMap = linkedHashMap.get(timeTemp); | ||
133 | if(dataMap == null ){ | ||
134 | dataMap = new HashMap<>(); | ||
135 | dataMap.put("time",timeTemp); | ||
136 | for (Map.Entry<String, String> entry : nameMap.entrySet()) { | ||
137 | dataMap.put(entry.getKey(),"0"); | ||
138 | } | 136 | } |
137 | |||
138 | private List<Map<String, Object>> getDaysAndMonthsData( List<MetricInfoVO> metricInfoVOList , List<Map<String, Object>> pgDataList,String startTime, String endTime,String timeType){ | ||
139 | List<Map<String, Object>> dataList = new ArrayList<>(); | ||
140 | List<String> timeList = null; | ||
141 | Map<String, Object> dataMap = null;//数据变量 | ||
142 | //日数据 | ||
143 | if (timeType.equals("2")){ | ||
144 | timeList = DateUtil.getDaysBetween(startTime, endTime,"yyyy-MM-dd HH:mm:ss"); | ||
139 | } | 145 | } |
140 | // 使用For-Each迭代entries,通过Map.entrySet遍历key和value | 146 | //月数据 |
141 | for (Map.Entry<String, String> entry : nameMap.entrySet()) { | 147 | if (timeType.equals("3")){ |
142 | System.out.println("entry.getKey()" +entry.getKey()+ "****"+"paramMap.get() = "+paramMap.get(entry.getKey())); | 148 | timeList = DateUtil.getMonthsBetween(startTime, endTime,"yyyy-MM-dd HH:mm:ss"); |
143 | if(entry.getKey().equals( ConvertUtils.getString(paramMap.get(entry.getKey())) )){ | ||
144 | dataMap.put( entry.getValue() , ConvertUtils.getString(paramMap.get(entry.getKey()))); | ||
145 | } | 149 | } |
150 | for(String date : timeList){ | ||
151 | dataMap = new HashMap<>(); | ||
152 | dataMap.put("time",date); | ||
153 | for(MetricInfoVO metricInfoVO : metricInfoVOList){ | ||
154 | dataMap.put( metricInfoVO.getEquipmentCode()+"_YX" , "0.00");//运行 | ||
155 | dataMap.put( metricInfoVO.getEquipmentCode()+"_GZ" , "0.00");//故障 | ||
156 | dataMap.put( metricInfoVO.getEquipmentCode()+"_ZT" ,"0.00" );//暂停 | ||
146 | } | 157 | } |
147 | linkedHashMap.put(timeTemp,dataMap); | 158 | dataList.add(dataMap); |
148 | } | 159 | } |
149 | }*/ | ||
150 | 160 | ||
151 | realTimeHistoryDataVO.setHeadList( metricInfoVOList); | 161 | if(pgDataList != null ) { |
152 | realTimeHistoryDataVO.setDataList( dataList ); | 162 | for(Map<String, Object> dataMapTemp : dataList){ |
153 | result.setResult( realTimeHistoryDataVO); | 163 | //select ts as time,nm as monitorId,v as monitorValue |
154 | return result; | 164 | for (Map<String, Object> paramMap : pgDataList) { |
165 | if( dataMapTemp.get("time").equals( paramMap.get("time") ) ){ | ||
166 | for(MetricInfoVO metricInfoVO : metricInfoVOList){ | ||
167 | dataMapTemp.put( metricInfoVO.getEquipmentCode()+"_YX" , JSUtils.format(paramMap.get(metricInfoVO.getYxExpress()),"0.00"));//运行 | ||
168 | dataMapTemp.put( metricInfoVO.getEquipmentCode()+"_GZ" , JSUtils.format(paramMap.get(metricInfoVO.getGzExpress()),"0.00"));//故障 | ||
169 | //时数据 | ||
170 | if (timeType.equals("1")) dataMapTemp.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 | ||
171 | //日数据 | ||
172 | if (timeType.equals("2")) dataMapTemp.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 24*60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 | ||
173 | //月数据 | ||
174 | if (timeType.equals("3")) dataMapTemp.put( metricInfoVO.getEquipmentCode()+"_ZT" ,JSUtils.subtract( 30*24*60, paramMap.get(metricInfoVO.getYxExpress()),paramMap.get(metricInfoVO.getGzExpress()) ) );//暂停 | ||
175 | } | ||
176 | break; | ||
177 | } | ||
178 | } | ||
179 | } | ||
180 | } | ||
181 | return dataList; | ||
155 | } | 182 | } |
156 | 183 | ||
157 | public List<Map<String, Object>> queryFactoryInfos(String departId, String fields, String startTime, String endTime, String tableType) { | 184 | |
185 | public List<Map<String, Object>> queryFactoryInfos(String departId, String fields, String startTime, String endTime, String timeType) { | ||
158 | String fieldSqlPart = ""; | 186 | String fieldSqlPart = ""; |
159 | String[] fieldsArr = fields.split(","); | 187 | String[] fieldsArr = fields.split(","); |
160 | 188 | ||
161 | for(int i = 0; i < fieldsArr.length; ++i) { | 189 | for(int i = 0; i < fieldsArr.length; ++i) { |
162 | fieldSqlPart = fieldSqlPart + ",'" + fieldsArr[i] + "'"; | 190 | fieldSqlPart = fieldSqlPart + ",'" + fieldsArr[i] + "'"; |
163 | } | 191 | } |
164 | |||
165 | if (!StringUtils.isEmpty(fieldSqlPart)) { | 192 | if (!StringUtils.isEmpty(fieldSqlPart)) { |
166 | fieldSqlPart = fieldSqlPart.substring(1); | 193 | fieldSqlPart = fieldSqlPart.substring(1); |
167 | } | 194 | } |
168 | |||
169 | JdbcTemplate pgDB = (JdbcTemplate)SpringContextUtils.getBean("pg-db"); | ||
170 | JdbcTemplate masterDB = (JdbcTemplate)SpringContextUtils.getBean("master"); | 195 | JdbcTemplate masterDB = (JdbcTemplate)SpringContextUtils.getBean("master"); |
171 | List<Map<String, Object>> result = new ArrayList(); | 196 | List<Map<String, Object>> result = new ArrayList(); |
172 | List<Map<String, Object>> factoryDesign = masterDB.queryForList("select * from sys_factory_device where depart_id = '" + departId + "'"); | 197 | List<Map<String, Object>> factoryDesign = masterDB.queryForList("select * from sys_factory_device where depart_id = '" + departId + "'"); |
173 | if (factoryDesign != null && factoryDesign.size() != 0) { | 198 | if (factoryDesign != null && factoryDesign.size() != 0) { |
174 | String countTableName = ConvertUtils.getString(((Map)factoryDesign.get(0)).get("device_id")); | 199 | String countTableName = ConvertUtils.getString(((Map)factoryDesign.get(0)).get("device_id")); |
175 | String sql = null; | 200 | String sql = null; |
201 | try { | ||
202 | String tsStartTime = String.valueOf(DateUtils.getMillis(DateUtils.parseDate(startTime, "yyyy-MM-dd HH:mm:ss")) / 1000L); | ||
203 | String tsEndTime = String.valueOf(DateUtils.getMillis(DateUtils.parseDate(endTime, "yyyy-MM-dd HH:mm:ss")) / 1000L); | ||
176 | //时数据 | 204 | //时数据 |
177 | if (tableType.equals("1")) { | 205 | if (timeType.equals("1")) { |
178 | sql = "select ts as time,nm as monitorId,v as monitorValue from " + countTableName + "_count where nm in(" + fieldSqlPart + ") and ts>=? and ts <? "; | 206 | sql = "select ts as time,nm as monitorId,v as monitorValue from " + countTableName + "_count where nm in(" + fieldSqlPart + ") and ts>='"+tsStartTime+"' and ts <'"+tsEndTime+"' "; |
179 | } | 207 | } |
180 | //日数据 | 208 | //日数据 |
181 | if (tableType.equals("2")) { | 209 | if (timeType.equals("2")) { |
182 | sql = "select aaa.date as time , aaa.monitorId ,SUM( to_number ( aaa.monitorValue, '9999999999999999.99' ) )as monitorValue from ("; | 210 | sql = "select aaa.date as time , aaa.monitorId ,SUM( to_number ( aaa.monitorValue, '9999999999999999.99' ) )as monitorValue from ("; |
183 | sql += "select to_char(to_timestamp(ts::INT8)::DATE,'YYYY-MM-DD') as date, ts as time,nm as monitorId,v as monitorValue from " + countTableName + "_count where nm in(" + fieldSqlPart + ") and ts>=? and ts <? "; | 211 | sql += "select to_char(to_timestamp(ts::INT8)::DATE,'YYYY-MM-DD') as date, ts as time,nm as monitorId,v as monitorValue from " + countTableName + "_count where nm in(" + fieldSqlPart + ") and ts>='"+tsStartTime+"' and ts <'"+tsEndTime+"' "; |
184 | sql += " )aaa group by aaa.date ,aaa.monitorId order by aaa.date asc"; | 212 | sql += " )aaa group by aaa.date ,aaa.monitorId order by aaa.date asc"; |
185 | } | 213 | } |
186 | //月数据 | 214 | //月数据 |
187 | if (tableType.equals("3")) { | 215 | if (timeType.equals("3")) { |
188 | sql = "select aaa.date as time , aaa.monitorId ,SUM( to_number ( aaa.monitorValue, '9999999999999999.99' ) )as monitorValue from ("; | 216 | sql = "select aaa.date as time , aaa.monitorId ,SUM( to_number ( aaa.monitorValue, '9999999999999999.99' ) )as monitorValue from ("; |
189 | sql += "select to_char(to_timestamp(ts::INT8)::DATE,'YYYY-MM') as date, ts as time,nm as monitorId,v as monitorValue from " + countTableName + "_count where nm in(" + fieldSqlPart + ") and ts>=? and ts <? "; | 217 | sql += "select to_char(to_timestamp(ts::INT8)::DATE,'YYYY-MM') as date, ts as time,nm as monitorId,v as monitorValue from " + countTableName + "_count where nm in(" + fieldSqlPart + ") and ts>='"+tsStartTime+"' and ts <'"+tsEndTime+"' "; |
190 | sql += " )aaa group by aaa.date ,aaa.monitorId order by aaa.date asc"; | 218 | sql += " )aaa group by aaa.date ,aaa.monitorId order by aaa.date asc"; |
191 | } | 219 | } |
220 | List<Map<String, Object>> dataList = null; | ||
192 | try { | 221 | try { |
193 | String tsStartTime = String.valueOf(DateUtils.getMillis(DateUtils.parseDate(startTime, "yyyy-MM-dd HH:mm:ss")) / 1000L); | 222 | // List<Map<String, Object>> pgDataList = iFactoryInfoService.queryFactoryInfos(departId, fields, startTime, endTime, "1"); |
194 | String tsEndTime = String.valueOf(DateUtils.getMillis(DateUtils.parseDate(endTime, "yyyy-MM-dd HH:mm:ss")) / 1000L); | 223 | dataList = pgCommonService.queryForList(sql); |
195 | List dataList = null; | ||
196 | try { | ||
197 | dataList = pgDB.queryForList(sql, new Object[]{tsStartTime, tsEndTime}); | ||
198 | } catch (DataAccessException var23) { | 224 | } catch (DataAccessException var23) { |
199 | Object pgDbSlaveObject = SpringContextUtils.getBean("pg-db-slave"); | 225 | Object pgDbSlaveObject = SpringContextUtils.getBean("pg-db-slave"); |
200 | if (pgDbSlaveObject != null) { | 226 | if (pgDbSlaveObject != null) { |
201 | pgDB = (JdbcTemplate)pgDbSlaveObject; | 227 | JdbcTemplate pgDB = (JdbcTemplate)pgDbSlaveObject; |
202 | dataList = pgDB.queryForList(sql, new Object[]{tsStartTime, tsEndTime}); | 228 | dataList = pgDB.queryForList(sql); |
203 | } | 229 | } |
230 | var23.printStackTrace(); | ||
204 | } | 231 | } |
205 | this.dataRowToCellByTime(result, dataList); | 232 | this.dataRowToCellByTime(result, dataList); |
206 | } catch (Exception var24) { | 233 | } catch (Exception var24) { |
... | @@ -216,7 +243,6 @@ public class TestMetricInfoController { | ... | @@ -216,7 +243,6 @@ public class TestMetricInfoController { |
216 | List<String> orderTsList = new ArrayList(); | 243 | List<String> orderTsList = new ArrayList(); |
217 | Map<String, Map<String, Object>> resultMap = new HashMap(); | 244 | Map<String, Map<String, Object>> resultMap = new HashMap(); |
218 | Iterator var5 = dataList.iterator(); | 245 | Iterator var5 = dataList.iterator(); |
219 | |||
220 | while(true) { | 246 | while(true) { |
221 | while(var5.hasNext()) { | 247 | while(var5.hasNext()) { |
222 | Map<String, Object> tempMap = (Map)var5.next(); | 248 | Map<String, Object> tempMap = (Map)var5.next(); | ... | ... |
... | @@ -2,11 +2,9 @@ package com.skua.modules.guest.util; | ... | @@ -2,11 +2,9 @@ package com.skua.modules.guest.util; |
2 | 2 | ||
3 | import java.text.ParseException; | 3 | import java.text.ParseException; |
4 | import java.text.SimpleDateFormat; | 4 | import java.text.SimpleDateFormat; |
5 | import java.time.LocalDate; | 5 | import java.time.*; |
6 | import java.time.LocalDateTime; | ||
7 | import java.time.Period; | ||
8 | import java.time.ZoneId; | ||
9 | import java.time.format.DateTimeFormatter; | 6 | import java.time.format.DateTimeFormatter; |
7 | import java.time.temporal.ChronoUnit; | ||
10 | import java.util.*; | 8 | import java.util.*; |
11 | import java.util.stream.Stream; | 9 | import java.util.stream.Stream; |
12 | 10 | ||
... | @@ -97,6 +95,62 @@ public class DateUtil { | ... | @@ -97,6 +95,62 @@ public class DateUtil { |
97 | } | 95 | } |
98 | 96 | ||
99 | 97 | ||
98 | /*** | ||
99 | * 获取两个时间的日期 | ||
100 | * @param start | ||
101 | * @param end | ||
102 | * @return | ||
103 | */ | ||
104 | public static List<String> getDaysBetween(String start, String end,String format) { | ||
105 | List<String> days = new ArrayList<>(); | ||
106 | if(format == null ){ | ||
107 | format = "yyyy-MM-dd"; | ||
108 | } | ||
109 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); | ||
110 | // 解析日期 | ||
111 | LocalDate startDate = LocalDate.parse(start, formatter); | ||
112 | LocalDate endDate = LocalDate.parse(end, formatter); | ||
113 | LocalDate currentDate = LocalDate.now();//创建一个LocalData对象获取当前日期 | ||
114 | if(endDate.isAfter( currentDate)){ | ||
115 | endDate = currentDate; | ||
116 | } | ||
117 | long numOfDaysBetween = ChronoUnit.DAYS.between(startDate, endDate); | ||
118 | for (int i = 0; i <= numOfDaysBetween; i++) { | ||
119 | LocalDate date = startDate.plusDays(i); | ||
120 | days.add(date.toString()); // 格式化为 yyyy-MM | ||
121 | } | ||
122 | return days; | ||
123 | } | ||
124 | /*** | ||
125 | * 获取两个时间的月份 | ||
126 | * @param start | ||
127 | * @param end | ||
128 | * @return | ||
129 | */ | ||
130 | public static List<String> getMonthsBetween(String start, String end,String format) { | ||
131 | if(format == null ){ | ||
132 | format = "yyyy-MM-dd"; | ||
133 | } | ||
134 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); | ||
135 | // 解析日期 | ||
136 | LocalDate startDate = LocalDate.parse(start, formatter); | ||
137 | LocalDate endDate = LocalDate.parse(end, formatter); | ||
138 | LocalDate currentDate = LocalDate.now();//创建一个LocalData对象获取当前日期 | ||
139 | if(endDate.isAfter( currentDate)){ | ||
140 | endDate = currentDate; | ||
141 | } | ||
142 | List<String> months = new ArrayList<>(); | ||
143 | // 获取起始和结束月份 | ||
144 | YearMonth startMonth = YearMonth.from(startDate); | ||
145 | YearMonth endMonth = YearMonth.from(endDate); | ||
146 | // 遍历月份并添加到列表 | ||
147 | YearMonth currentMonth = startMonth; | ||
148 | while (!currentMonth.isAfter(endMonth)) { | ||
149 | months.add(currentMonth.toString()); // 格式化为 yyyy-MM | ||
150 | currentMonth = currentMonth.plusMonths(1); | ||
151 | } | ||
152 | return months; | ||
153 | } | ||
100 | 154 | ||
101 | /** | 155 | /** |
102 | * 获取两个日期之间的所有日期 (年月日) | 156 | * 获取两个日期之间的所有日期 (年月日) |
... | @@ -123,10 +177,9 @@ public class DateUtil { | ... | @@ -123,10 +177,9 @@ public class DateUtil { |
123 | if(currentDate.getTime() < endDate.getTime() ){ | 177 | if(currentDate.getTime() < endDate.getTime() ){ |
124 | endDate = currentDate; | 178 | endDate = currentDate; |
125 | } | 179 | } |
126 | |||
127 | //用Calendar 进行日期比较判断 | 180 | //用Calendar 进行日期比较判断 |
128 | Calendar calendar = Calendar.getInstance(); | 181 | Calendar calendar = Calendar.getInstance(); |
129 | while (startDate.getTime() < endDate.getTime()){ | 182 | while (startDate.getTime() <= endDate.getTime()){ |
130 | // 把日期添加到集合 | 183 | // 把日期添加到集合 |
131 | list.add(formatSDF.format(startDate)); | 184 | list.add(formatSDF.format(startDate)); |
132 | // 设置日期 | 185 | // 设置日期 | ... | ... |
... | @@ -121,4 +121,15 @@ public class MaterialInfo { | ... | @@ -121,4 +121,15 @@ public class MaterialInfo { |
121 | @Excel(name = "修订过程", width = 15) | 121 | @Excel(name = "修订过程", width = 15) |
122 | @ApiModelProperty(value = "修订过程") | 122 | @ApiModelProperty(value = "修订过程") |
123 | private String updateHistory; | 123 | private String updateHistory; |
124 | |||
125 | @ApiModelProperty(value = "文件号") | ||
126 | private String fileCode; | ||
127 | |||
128 | @ApiModelProperty(value = "使用范围") | ||
129 | private String useScope; | ||
130 | |||
131 | @ApiModelProperty(value = "审核状态:0 未发布 1 已发布(待审核)2 审核驳回 3 审核通过") | ||
132 | @Dict(dicCode = "purchase_plan_status") | ||
133 | private String status; | ||
134 | |||
124 | } | 135 | } | ... | ... |
... | @@ -322,4 +322,14 @@ public class ScreenDataServiceImpl implements IScreenDataService { | ... | @@ -322,4 +322,14 @@ public class ScreenDataServiceImpl implements IScreenDataService { |
322 | return months; | 322 | return months; |
323 | } | 323 | } |
324 | 324 | ||
325 | public static void main(String[] args) { | ||
326 | String startTime = "2024-01-01";// | ||
327 | String endTime = "2024-12-31"; | ||
328 | String format ="yyyy-MM-dd"; | ||
329 | List<String> dateList = getMonthsBetween(startTime, endTime); | ||
330 | for(String date : dateList){ | ||
331 | System.out.println("date:"+date); | ||
332 | } | ||
333 | } | ||
334 | |||
325 | } | 335 | } | ... | ... |
-
请 注册 或 登录 后发表评论