package com.zy.asrs.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.core.common.R;
|
import com.zy.asrs.domain.param.RingThroughParam;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.entity.param.WcsDataSynchronizationParam;
|
import com.zy.asrs.entity.param.WcsRgvListParam;
|
import com.zy.asrs.entity.param.WcsTaskDistributionParam;
|
import com.zy.asrs.entity.param.WcsTaskListParam;
|
import com.zy.asrs.service.OpenService;
|
import com.zy.asrs.service.WrkMastService;
|
import com.zy.asrs.utils.Utils;
|
import com.zy.core.cache.SlaveConnection;
|
import com.zy.core.enums.SlaveType;
|
import com.zy.core.model.RgvSlave;
|
import com.zy.core.model.protocol.RgvProtocol;
|
import com.zy.core.properties.SlaveProperties;
|
import com.zy.core.thread.RgvThread;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* Created by vincent on 2022/4/9
|
*/
|
@Slf4j
|
@Service
|
public class OpenServiceImpl implements OpenService {
|
|
|
@Autowired
|
private SlaveProperties slaveProperties;
|
@Autowired
|
private WrkMastService wrkMastService;
|
|
@Override
|
@Transactional
|
public R wcsTaskDistribution(WcsTaskDistributionParam param) {
|
Date now = new Date();
|
WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getTaskNo()));
|
if (!Cools.isEmpty(wrkMast1)){
|
return R.error("工作号已存在").add("工作号已存在,taskNo="+param.getTaskNo());
|
}
|
WrkMast wrkMast = new WrkMast();
|
wrkMast.setWrkNo(param.getTaskNo());
|
wrkMast.setSourceStaNo(param.getStartSta$());
|
wrkMast.setStaNo(param.getEndSta$());
|
wrkMast.setWrkSts(1L);
|
wrkMast.setIoType(1);
|
wrkMast.setModiTime(now);
|
wrkMast.setAppeTime(now);
|
wrkMastService.insert(wrkMast);
|
return R.ok();
|
}
|
|
@Override
|
@Transactional
|
public R wcsTaskStatus(Long timestamp) {
|
try{
|
WcsDataSynchronizationParam wcsDataSynchronizationParam = new WcsDataSynchronizationParam();
|
List<WcsTaskListParam> wcsTaskListParamList = new ArrayList<>();
|
List<WcsRgvListParam> wcsRgvListParamList = new ArrayList<>();
|
List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<>());
|
for (WrkMast wrkMast : wrkMastList){
|
WcsTaskListParam wcsTaskListParam = new WcsTaskListParam(wrkMast);
|
wcsTaskListParamList.add(wcsTaskListParam);
|
}
|
for (RgvSlave rgv : slaveProperties.getRgv()) {
|
// 获取RGV信息
|
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
|
if (rgvThread == null) {
|
continue;
|
}
|
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
|
if (rgvProtocol == null) {
|
continue;
|
}
|
WcsRgvListParam wcsRgvListParam = new WcsRgvListParam();
|
wcsRgvListParam.setRgvNo(rgv.getId().toString());
|
wcsRgvListParam.setTaskNo(Cools.isEmpty(rgvProtocol.getTaskNo1()) ? null:rgvProtocol.getTaskNo1().toString());
|
wcsRgvListParam.setStatus(rgvProtocol.statusType.desc);
|
List<String> arrayList = new ArrayList<>();
|
if (rgvProtocol.getAlarm()!=0){
|
arrayList.add(rgvProtocol.getAlarm$());
|
}
|
wcsRgvListParam.setError(arrayList);
|
wcsRgvListParamList.add(wcsRgvListParam);
|
}
|
wcsDataSynchronizationParam.setTaskList(wcsTaskListParamList);
|
wcsDataSynchronizationParam.setRgvList(wcsRgvListParamList);
|
wcsDataSynchronizationParam.setTimestamp(timestamp);
|
return R.ok().add(wcsDataSynchronizationParam);
|
} catch (Exception e){
|
return R.error("异常").add("异常信息:"+e);
|
}
|
}
|
|
}
|