jx pcn 数据复核
parent
e56bf6f6f1
commit
6b9d258845
@ -1,21 +1,21 @@
|
|||||||
package cn.estsh.i3plus.ext.mes.pcn.api.job.gz;
|
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: wangjie
|
* @Author: wangjie
|
||||||
* @CreateDate: 2021/01/19 15:06 下午
|
* @CreateDate: 2021/01/19 15:06 下午
|
||||||
* @Description:
|
* @Description:
|
||||||
**/
|
**/
|
||||||
public interface IGzThirdPartyDbCollectDataJobService {
|
public interface ISxThirdPartyPlcCollectDataJobService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 第三方数据库数据采集定时任务
|
* 第三方PLC数据采集定时任务
|
||||||
* @param organizeCode 组织代码
|
* @param paramMap 参数
|
||||||
* @param cfgCode 配置代码
|
|
||||||
* @param userInfo 操作人
|
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "第三方数据库数据采集定时任务", notes = "第三方数据库数据采集定时任务")
|
@ApiOperation(value = "第三方PLC数据采集定时任务", notes = "第三方PLC数据采集定时任务")
|
||||||
void doThirdPartyDbCollectData(String organizeCode, String cfgCode, String userInfo);
|
void doThirdPartyPlcCollectData(Map<String, String> paramMap);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,51 +1,48 @@
|
|||||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.gz;
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
|
||||||
|
|
||||||
import cn.estsh.i3plus.ext.mes.pcn.api.job.gz.IGzThirdPartyDbCollectDataJobService;
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.ISxThirdPartyPlcCollectDataJobService;
|
||||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||||
|
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.jboss.logging.Logger;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.quartz.DisallowConcurrentExecution;
|
import org.quartz.DisallowConcurrentExecution;
|
||||||
import org.quartz.Job;
|
import org.quartz.Job;
|
||||||
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionContext;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wangjie
|
* @author wangjie
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @date 2021/2/2 16:44
|
* @date 2021/2/2 16:44
|
||||||
**/
|
**/
|
||||||
|
@Slf4j
|
||||||
@DisallowConcurrentExecution
|
@DisallowConcurrentExecution
|
||||||
@ApiOperation("第三方数据库数据采集定时任务")
|
@ApiOperation("第三方PLC数据采集定时任务")
|
||||||
public class GzThirdPartyDbCollectDataJob implements Job {
|
public class SxThirdPartyPlcCollectDataJob implements Job {
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(GzThirdPartyDbCollectDataJob.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IGzThirdPartyDbCollectDataJobService thirdPartyDbCollectDataJobService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(JobExecutionContext jobExecutionContext) {
|
public void execute(JobExecutionContext jobExecutionContext) {
|
||||||
LOGGER.info("Pcn处理第三方数据库数据采集JOB开始执行...");
|
|
||||||
|
|
||||||
Object param = jobExecutionContext.getJobDetail().getJobDataMap().get(MesPcnExtConstWords.PARAM);
|
Object param = jobExecutionContext.getJobDetail().getJobDataMap().get(MesPcnExtConstWords.PARAM);
|
||||||
if (StringUtils.isEmpty(param)) {
|
|
||||||
LOGGER.error("Pcn处理第三方数据库数据采集JOB,未配置参数");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String[] paramArr = param.toString().split(MesPcnExtConstWords.COMMA);
|
if (StringUtils.isEmpty(param)) return;
|
||||||
if (paramArr.length != 2) {
|
|
||||||
LOGGER.error("Pcn处理第三方数据库数据采集JOB,配置的参数无效");
|
log.info("第三方PLC数据采集 --- JOB START --- PARAM:{}", param.toString());
|
||||||
return;
|
|
||||||
}
|
Map<String, String> paramMap = JSONObject.parseObject(param.toString(), Map.class);
|
||||||
|
if (!paramMap.containsKey(MesPcnExtConstWords.ORGANIZE_CODE) || !paramMap.containsKey(MesPcnExtConstWords.STRATEGY_CLASS)) return;
|
||||||
|
if (!paramMap.containsKey(MesPcnExtConstWords.USER_INFO)) paramMap.put(MesPcnExtConstWords.USER_INFO, MesPcnExtConstWords.JOB);
|
||||||
|
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
thirdPartyDbCollectDataJobService.doThirdPartyDbCollectData(paramArr[0], paramArr[1], MesPcnExtConstWords.JOB);
|
((ISxThirdPartyPlcCollectDataJobService) SpringContextsUtil.getBean(paramMap.get(MesPcnExtConstWords.STRATEGY_CLASS))).doThirdPartyPlcCollectData(paramMap);
|
||||||
|
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
LOGGER.info("Pcn处理第三方数据库数据采集JOB执行完成耗时: " + (endTime - startTime) + "ms");
|
|
||||||
|
log.info("第三方PLC数据采集 --- JOB END --- 耗时: {} ms", endTime - startTime);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,54 @@
|
|||||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job;
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job;
|
||||||
|
|
||||||
public class SxThirdPartyPlcCollectCellTaktService {
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.ISxThirdPartyPlcCollectDataJobService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.SxWorkCellTaktCollectPlcCfg;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.SxWorkCellTaktCollectPlcCfgRepository;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||||
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采集工位节拍实现
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SxThirdPartyPlcCollectCellTaktService implements ISxThirdPartyPlcCollectDataJobService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SxWorkCellTaktCollectPlcCfgRepository workCellTaktCollectPlcCfgRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doThirdPartyPlcCollectData(Map<String, String> paramMap) {
|
||||||
|
|
||||||
|
if (!checkConfigStatus(paramMap)) return;
|
||||||
|
|
||||||
|
List<SxWorkCellTaktCollectPlcCfg> workCellTaktCollectPlcCfgList = getWorkCellTaktCollectPlcCfgList(paramMap.get(MesPcnExtConstWords.ORGANIZE_CODE));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<SxWorkCellTaktCollectPlcCfg> getWorkCellTaktCollectPlcCfgList(String organizeCode) {
|
||||||
|
List<SxWorkCellTaktCollectPlcCfg> workCellTaktCollectPlcCfgList = workCellTaktCollectPlcCfgRepository.findByProperty(
|
||||||
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.STATUS},
|
||||||
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()});
|
||||||
|
workCellTaktCollectPlcCfgList = CollectionUtils.isEmpty(workCellTaktCollectPlcCfgList) ? null :
|
||||||
|
workCellTaktCollectPlcCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPlcCode()))).distinct().collect(Collectors.collectingAndThen(
|
||||||
|
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getWorkCenterCode()).add(o.getWorkCellCode()).toString()))), ArrayList::new));
|
||||||
|
workCellTaktCollectPlcCfgList = CollectionUtils.isEmpty(workCellTaktCollectPlcCfgList) ? null :
|
||||||
|
workCellTaktCollectPlcCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPlcCode()))).distinct().collect(Collectors.collectingAndThen(
|
||||||
|
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SxWorkCellTaktCollectPlcCfg::getPlcCode))), ArrayList::new));
|
||||||
|
return workCellTaktCollectPlcCfgList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Boolean checkConfigStatus(Map<String, String> paramMap) {
|
||||||
|
if (paramMap.containsKey(MesPcnExtConstWords.STATUS) && paramMap.get(MesPcnExtConstWords.STATUS).equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue