package com.zy.asrs.timer;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.zy.asrs.entity.BasStation;
|
import com.zy.asrs.entity.dto.TvWrkDetlDto;
|
import com.zy.asrs.entity.dto.WcsStationDto;
|
import com.zy.asrs.service.BasStationService;
|
import com.zy.asrs.utils.StationUtils;
|
import com.zy.common.utils.HttpHandler;
|
import com.zy.common.utils.RedisUtil;
|
import com.zy.system.entity.Config;
|
import com.zy.system.service.ConfigService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.concurrent.TimeUnit;
|
|
@Component
|
public class WmsDataTimer {
|
|
@Autowired
|
private ConfigService configService;
|
@Autowired
|
private BasStationService basStationService;
|
@Autowired
|
private StationUtils stationUtils;
|
@Autowired
|
private RedisUtil redisUtil;
|
|
@Scheduled(cron = "0/3 * * * * ? ")
|
public synchronized void execute() {
|
Config wmsTaskQueryUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsTaskQueryUrl"));
|
if (wmsTaskQueryUrlConfig == null) {
|
return;
|
}
|
|
String wmsTaskQueryUrl = wmsTaskQueryUrlConfig.getValue();
|
|
String response = null;
|
try {
|
HashMap<String, Object> requestParam = new HashMap<>();
|
|
List<BasStation> basStations = basStationService.selectList(new EntityWrapper<BasStation>().eq("out_enable", "Y"));
|
for (BasStation basStation : basStations) {
|
WcsStationDto wcsStationDto = stationUtils.stationMap.get(basStation.getStationId());
|
if (wcsStationDto == null) {
|
continue;
|
}
|
|
if (wcsStationDto.getAuto() != 1
|
|| wcsStationDto.getLoading() != 1
|
|| wcsStationDto.getTaskNo().equals("0")
|
) {
|
continue;
|
}
|
|
requestParam.put("taskNo", wcsStationDto.getTaskNo());
|
response = new HttpHandler.Builder()
|
.setUri(wmsTaskQueryUrl)
|
.setJson(JSON.toJSONString(requestParam))
|
.setTimeout(30, TimeUnit.SECONDS)
|
.build()
|
.doPost();
|
if (response != null) {
|
JSONObject jsonObject = JSON.parseObject(response);
|
JSONObject data = jsonObject.getJSONObject("data");
|
|
List<TvWrkDetlDto> list = new ArrayList<>();
|
for (Object o : data.getJSONArray("wrkDetls")) {
|
JSONObject wrkDetl = (JSONObject) o;
|
TvWrkDetlDto tvWrkDetlDto = new TvWrkDetlDto();
|
list.add(tvWrkDetlDto);
|
|
tvWrkDetlDto.setMatnr(wrkDetl.getString("matnr"));
|
tvWrkDetlDto.setMaktx(wrkDetl.getString("maktx"));
|
tvWrkDetlDto.setSpecs(wrkDetl.getString("specs"));
|
tvWrkDetlDto.setBatch(wrkDetl.getString("batch"));
|
tvWrkDetlDto.setAnfme(wrkDetl.getDouble("anfme"));
|
}
|
|
wcsStationDto.setIoType(data.getInteger("ioType"));
|
wcsStationDto.setWrkDetls(list);
|
stationUtils.stationMap.put(wcsStationDto.getStationId(), wcsStationDto);
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|