소스 검색

新增液位发送接口,每天23点发送

hfxc226 4 달 전
부모
커밋
c2106f97fa

+ 8 - 40
platform-rest/src/main/java/com/platform/rest/task/DegreeTask.java

@@ -14,6 +14,7 @@ import com.platform.dao.enums.SysConfigEnum;
 import com.platform.dao.vo.query.remote.RemoteOpcVO;
 import com.platform.dao.vo.remote.RemotePositionVO;
 import com.platform.service.big.BigScreenSbInfoService;
+import com.platform.service.remote.RemoteOpcService;
 import com.platform.service.remote.RemotePositionService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -39,14 +40,14 @@ public class DegreeTask {
 
     private final BigScreenSbInfoService bigScreenSbInfoService;
 
-    private final RemotePositionService sbPositionService;
+    private final RemoteOpcService remoteOpcService;
 
     /**
      * 每天凌晨1点发送前天的数据
      * <p>
      * http://192.168.16.226/api/ignores/produce/record/dian
      */
-    public void generateDian() throws IOException {
+    public void generateDian() {
         RemoteDegreeLogDTO record = new RemoteDegreeLogDTO();
         LocalDate localDate = LocalDate.now().plusDays(-1);
         record.setYear(localDate.getYear());
@@ -62,7 +63,7 @@ public class DegreeTask {
         setValue(url, localDate, bigDecimal.toString());
     }
 
-    public static void setValue(String url, LocalDate date, String value) {
+    public void setValue(String url, LocalDate date, String value) {
         Map<String, String> data = new HashMap<>();
         data.put("value", value);
         data.put("date", DateUtils.dateToString(date, DateUtils.PATTERN_YMD));
@@ -83,7 +84,7 @@ public class DegreeTask {
         remoteOpcVO.setPositionNum("1");
         remoteOpcVO.setResult(new BigDecimal(23));
         list.add(remoteOpcVO);
-        setDegreeValue(url2, list);
+        // setDegreeValue(url2, list);
     }
 
     /**
@@ -91,7 +92,7 @@ public class DegreeTask {
      * @param url
      * @param list
      */
-    public static void setDegreeValue(String url, List<RemoteOpcVO> list) {
+    public void setDegreeValue(String url, List<RemoteOpcVO> list) {
 
         // 发送
         List<Map<String, String>> dataList = new ArrayList<>();
@@ -119,40 +120,7 @@ public class DegreeTask {
      * <p>
      * http://192.168.16.226/api/ignores/produce/record/yewei
      */
-    public void generateYewei() {
-        // 找到配置的点位数据,逗号分割,点位编号
-        String positions = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.PURCHASE_DEGREE_NO.name());
-        if (StringUtils.isBlank(positions)) {
-            throw new BusinessException("请配置采集点位");
-        }
-        List<String> positionList = Arrays.asList(positions.split(","));
-        List<RemotePositionVO> remotePositionVOList = sbPositionService.selectVOList(null);
-
-        // 拿到点位
-        List<RemoteOpcVO> list = new ArrayList<>();
-        for (RemotePositionVO vo : remotePositionVOList) {
-            String jsonStr = RedisUtils.get(RedisKeyConstants.DCS_PREFIX + vo.getId());
-            log.info("vo.getId(): " + vo.getId());
-            log.info("jsonStr: " + jsonStr);
-            if (StringUtils.isNotBlank(jsonStr)) {
-                List<RemoteOpcVO> resultList = JSON.parseArray(jsonStr, RemoteOpcVO.class);
-                for (RemoteOpcVO remoteOpcVO : resultList) {
-                    for (String p : positionList) {
-                        if (remoteOpcVO.getPositionNum().equals(p)) {
-                            list.add(remoteOpcVO);
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        // 发送到采购系统
-        if (!CollectionUtils.isEmpty(list)) {
-            String url = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.PURCHASE_SYSTEM_URL_YEWEI.name());
-            if (StringUtil.isEmpty(url)) {
-                throw new BusinessException("请配置采购系统液位接收地址");
-            }
-            setDegreeValue(url, list);
-        }
+    public void generateYe() {
+        remoteOpcService.sendToPurchase();
     }
 }

+ 5 - 0
platform-service/src/main/java/com/platform/service/remote/RemoteOpcService.java

@@ -78,4 +78,9 @@ public interface RemoteOpcService extends IBaseService<RemoteOpc, RemoteOpcDTO>
     void addAllToGroup(RemoteOpcDTO remoteMeasureDTO);
 
     void addToGroup(String positionNum);
+
+    /**
+     * 发送到采购系统的点位
+     */
+    void sendToPurchase();
 }

+ 78 - 11
platform-service/src/main/java/com/platform/service/remote/impl/RemoteOpcServiceImpl.java

@@ -1,40 +1,46 @@
 package com.platform.service.remote.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.cache.ConfigCache;
 import com.platform.common.constant.RedisKeyConstants;
 import com.platform.common.enums.DictTypeEnum;
 import com.platform.common.exception.BusinessException;
-import com.platform.common.util.JsonUtils;
-import com.platform.common.util.RedisUtils;
+import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.remote.RemoteOpcDTO;
 import com.platform.dao.entity.remote.RemoteOpc;
 import com.platform.dao.entity.upms.SysDict;
 import com.platform.dao.enums.RemoteOpcTypeEnum;
+import com.platform.dao.enums.SysConfigEnum;
 import com.platform.dao.enums.YesNoEnum;
 import com.platform.dao.mapper.remote.RemoteOpcMapper;
 import com.platform.dao.mapper.upms.SysDictMapper;
 import com.platform.dao.util.CustomExcelImportUtil;
 import com.platform.dao.vo.query.remote.RemoteOpcVO;
+import com.platform.dao.vo.remote.RemotePositionVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.config.websocket.WebSocketServer;
 import com.platform.service.remote.RemoteOpcService;
+import com.platform.service.remote.RemotePositionService;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
+import tk.mybatis.mapper.util.StringUtil;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.time.LocalDate;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -46,11 +52,14 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 @Service("remoteOpcService")
 @EnableAsync
+@Slf4j
 public class RemoteOpcServiceImpl extends BaseServiceImpl<RemoteOpcMapper, RemoteOpc, RemoteOpcDTO>
         implements RemoteOpcService {
 
     private final SysDictMapper sysDictMapper;
 
+    private final RemotePositionService sbPositionService;
+
     /**
      * 检查av状态和点位后缀是否一致
      * 1: avFalg=1,则点位后缀必须是_AV
@@ -71,13 +80,13 @@ public class RemoteOpcServiceImpl extends BaseServiceImpl<RemoteOpcMapper, Remot
         if (count > 0) {
             throw new BusinessException("该点位已经存在,无法新增,请点击查询进行修改,数量:" + count);
         }*/
-        if (model.getType() == RemoteOpcTypeEnum.PUTONG.getValue()) {
+        if (model.getType().equals(RemoteOpcTypeEnum.PUTONG.getValue())) {
             model.setPositionNum(model.getDescription() + "_AV");
             model.setAvFlag(YesNoEnum.YES.getValue());
-        } else if (model.getType() == RemoteOpcTypeEnum.YW.getValue())  {
+        } else if (model.getType().equals(RemoteOpcTypeEnum.YW.getValue())) {
             model.setPositionNum(model.getDescription() + "_AV");
             model.setAvFlag(YesNoEnum.NO.getValue());
-        } else{
+        } else {
             model.setPositionNum(model.getDescription() + "_DV");
             model.setAvFlag(YesNoEnum.YES.getValue());
         }
@@ -116,13 +125,13 @@ public class RemoteOpcServiceImpl extends BaseServiceImpl<RemoteOpcMapper, Remot
                 }
             }
         }*/
-        if (model.getType() == RemoteOpcTypeEnum.PUTONG.getValue()) {
+        if (model.getType().equals( RemoteOpcTypeEnum.PUTONG.getValue())) {
             model.setPositionNum(model.getDescription() + "_AV");
             model.setAvFlag(YesNoEnum.YES.getValue());
-        } else if (model.getType() == RemoteOpcTypeEnum.YW.getValue())  {
+        } else if (model.getType().equals(RemoteOpcTypeEnum.YW.getValue())){
             model.setPositionNum(model.getDescription() + "_AV");
             model.setAvFlag(YesNoEnum.NO.getValue());
-        } else{
+        } else {
             model.setPositionNum(model.getDescription() + "_DV");
             model.setAvFlag(YesNoEnum.YES.getValue());
         }
@@ -140,6 +149,7 @@ public class RemoteOpcServiceImpl extends BaseServiceImpl<RemoteOpcMapper, Remot
 
     /**
      * TODO: 是否需要给固定角色发送:opc生产
+     *
      * @param resultList :
      */
     @Override
@@ -309,6 +319,63 @@ public class RemoteOpcServiceImpl extends BaseServiceImpl<RemoteOpcMapper, Remot
         }
     }
 
+    /**
+     * 发送到采购系统
+     */
+    @Override
+    public void sendToPurchase() {
+        // 找到配置的点位数据,逗号分割,点位编号
+        String positions = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.PURCHASE_DEGREE_NO.name());
+        if (StringUtils.isBlank(positions)) {
+            throw new BusinessException("请配置采集点位");
+        }
+        List<String> positionList = Arrays.asList(positions.split(","));
+        List<RemotePositionVO> remotePositionVOList = sbPositionService.selectVOList(null);
+
+        // 拿到点位
+        List<RemoteOpcVO> list = new ArrayList<>();
+        for (RemotePositionVO vo : remotePositionVOList) {
+            String jsonStr = RedisUtils.get(RedisKeyConstants.DCS_PREFIX + vo.getId());
+            log.info("vo.getId(): " + vo.getId());
+            log.info("jsonStr: " + jsonStr);
+            if (StringUtils.isNotBlank(jsonStr)) {
+                List<RemoteOpcVO> resultList = JSON.parseArray(jsonStr, RemoteOpcVO.class);
+                for (RemoteOpcVO remoteOpcVO : resultList) {
+                    for (String p : positionList) {
+                        if (remoteOpcVO.getPositionNum().equals(p)) {
+                            list.add(remoteOpcVO);
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        // 发送到采购系统
+        if (!CollectionUtils.isEmpty(list)) {
+            String url = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.PURCHASE_SYSTEM_URL_YEWEI.name());
+            if (StringUtil.isEmpty(url)) {
+                throw new BusinessException("请配置采购系统液位接收地址");
+            }
+            // 发送
+            List<Map<String, String>> dataList = new ArrayList<>();
+            LocalDate localDate = LocalDate.now();
+            for (RemoteOpcVO remoteOpcVO : list) {
+                Map<String, String> data = new HashMap<>();
+                data.put("no", remoteOpcVO.getPositionNum());
+                data.put("num", remoteOpcVO.getResult().toString());
+                data.put("date", DateUtils.dateToString(localDate, DateUtils.PATTERN_YMD));
+                dataList.add(data);
+            }
+            String requestJson = JSONObject.toJSONString(dataList);
+            log.info(requestJson);
+            try {
+                HttpUtil.post(url, requestJson);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     @Override
     public void addAllToGroup(RemoteOpcDTO remoteMeasureDTO) {
         remoteMeasureDTO.setCreatedFlag(YesNoEnum.NO.getValue());