From d104d01175c1658b0e48286afc8213c94b650e1f Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期五, 13 六月 2025 14:19:20 +0800 Subject: [PATCH] 同步日报 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java | 94 +++++++++++++++++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java | 1 ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java | 36 +++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java | 15 +++ ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java | 31 +++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java | 14 +++ 6 files changed, 191 insertions(+), 0 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java new file mode 100644 index 0000000..2d7ced6 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java @@ -0,0 +1,94 @@ +package com.iailab.module.ansteel.job.task; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.framework.common.util.http.HttpUtils; +import com.iailab.module.ansteel.report.entity.DutyReportEntity; +import com.iailab.module.ansteel.report.service.DutyReportService; +import com.iailab.module.data.api.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年06月13日 + */ +@Component("syncDutyReportTask") +public class SyncDutyReportTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private DutyReportService dutyReportService; + + @Autowired + private DataPointApi dataPointApi; + + private final static String URL = "http://10.50.37.1:8806/batch/xxb/getDutyReportData"; + + @Override + public void run(String params) { + logger.info("SyncDutyReportTask定时任务正在执行,参数为:{}", params); + try { + String date = params; + if (StringUtils.isBlank(date)) { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MILLISECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.add(Calendar.DAY_OF_YEAR, -1); + date = DateUtils.format(calendar.getTime(), "yyyy-MM-dd"); + } + Map<String, Object> queryMap = new HashMap<String, Object>(); + queryMap.put("date", date); + String responseStr = HttpUtils.sendPost(URL, JSONObject.toJSONString(queryMap)); + if (StringUtils.isBlank(responseStr)) { + logger.info("responseStr is null"); + return; + } + Map<String, BigDecimal> dataMap1 = new HashMap<>(); + Map<String, BigDecimal> dataMap2 = new HashMap<>(); + JSONArray jsonArray = JSONArray.parseArray(responseStr); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + dataMap1.put(jsonObject.getString("cdeIndex"), new BigDecimal(jsonObject.get("valAct").toString())); + dataMap2.put(jsonObject.getString("cdeIndex"), new BigDecimal(jsonObject.get("monthAvgValue").toString())); + } + + List<DutyReportEntity> list = dutyReportService.list(); + if (CollectionUtils.isEmpty(list)) { + logger.info("DutyReportEntity list is empty"); + return; + } + for (DutyReportEntity dutyReportEntity : list) { + if (dataMap1.get(dutyReportEntity.getCdeIndex()) != null) { + ApiPointValueWriteDTO writeDTO = new ApiPointValueWriteDTO(); + writeDTO.setPointNo(dutyReportEntity.getPointNo1()); + writeDTO.setValue(dataMap1.get(dutyReportEntity.getCdeIndex())); + dataPointApi.writePointRealValue(writeDTO); + } + if (dataMap2.get(dutyReportEntity.getCdeIndex()) != null) { + ApiPointValueWriteDTO writeDTO = new ApiPointValueWriteDTO(); + writeDTO.setPointNo(dutyReportEntity.getPointNo2()); + writeDTO.setValue(dataMap2.get(dutyReportEntity.getCdeIndex())); + dataPointApi.writePointRealValue(writeDTO); + } + } + } catch (Exception ex) { + logger.error("SyncDutyReportTask运行异常"); + ex.printStackTrace(); + } + logger.info("SyncDutyReportTask运行完成"); + } +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java new file mode 100644 index 0000000..8845a87 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java @@ -0,0 +1,14 @@ +package com.iailab.module.ansteel.report.dao; + +import com.iailab.framework.common.dao.BaseDao; +import com.iailab.module.ansteel.report.entity.DutyReportEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年06月13日 + */ +@Mapper +public interface DutyReportDao extends BaseDao<DutyReportEntity> { +} diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java new file mode 100644 index 0000000..2dfbafa --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java @@ -0,0 +1,36 @@ +package com.iailab.module.ansteel.report.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年06月13日 + */ +@Data +@TableName("t_xxb_duty_report") +public class DutyReportEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId + private String id; + + private String cdeIndex; + + private String nameIndex; + + private String pointNo1; + + private String pointNo2; + + private String pointNo3; + + private Integer sort; +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java new file mode 100644 index 0000000..43e7430 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java @@ -0,0 +1 @@ +package com.iailab.module.ansteel.report; \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java new file mode 100644 index 0000000..bc62da6 --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java @@ -0,0 +1,15 @@ +package com.iailab.module.ansteel.report.service; + +import com.iailab.module.ansteel.report.entity.DutyReportEntity; + +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年06月13日 + */ +public interface DutyReportService { + + List<DutyReportEntity> list(); +} diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java new file mode 100644 index 0000000..fcd98eb --- /dev/null +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java @@ -0,0 +1,31 @@ +package com.iailab.module.ansteel.report.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.module.ansteel.report.dao.DutyReportDao; +import com.iailab.module.ansteel.report.entity.DutyReportEntity; +import com.iailab.module.ansteel.report.service.DutyReportService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年06月13日 + */ +@Slf4j +@Service +public class DutyReportServiceImpl implements DutyReportService { + + @Autowired + private DutyReportDao dutyReportDao; + + @Override + public List<DutyReportEntity> list() { + QueryWrapper<DutyReportEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByAsc("sort"); + return dutyReportDao.selectList(queryWrapper); + } +} \ No newline at end of file -- Gitblit v1.9.3