|
@@ -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());
|