package com.zy.asrs.task.handler;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.service.ApiLogService;
|
import com.zy.asrs.service.WrkMastService;
|
import com.zy.asrs.utils.Utils;
|
import com.zy.common.model.StartupDto;
|
import com.zy.common.utils.HttpHandler;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
/**
|
* @author pang.jiabao
|
* @description 下位WCS系统相关定时任务处理
|
* @createDate 2026/3/4 15:23
|
*/
|
@Component
|
@Slf4j
|
public class WcsSchedulerHandler {
|
|
@Value("${wcs.URL}")
|
private String wcsAddress;
|
|
@Value("${wcs.createOutTask}")
|
private String createOutTask;
|
|
@Value("${wcs.createLocMoveTask}")
|
private String createLocMoveTask;
|
|
@Resource
|
private ApiLogService apiLogService;
|
|
@Resource
|
private WrkMastService wrkMastService;
|
|
public void outboundTaskDispatch(WrkMast wrkMast) {
|
StartupDto startupDto = new StartupDto();
|
startupDto.setTaskNo(wrkMast.getWrkNo());
|
startupDto.setTaskPri(wrkMast.getIoPri());
|
|
|
String nameSpaces = "出库任务派发";
|
String path = createOutTask;
|
if (wrkMast.getIoType() == 11 ) {
|
path = createLocMoveTask;
|
nameSpaces = "移库任务派发";
|
startupDto.setSourceLocNo(Utils.locToLocNo(wrkMast.getSourceLocNo()));
|
startupDto.setLocNo(Utils.locToLocNo(wrkMast.getLocNo()));
|
} else {
|
startupDto.setStaNo(Integer.valueOf(wrkMast.getStaNo()));
|
startupDto.setLocNo(Utils.locToLocNo(wrkMast.getSourceLocNo()));
|
}
|
|
String response = "";
|
boolean success = false;
|
String errorMsg = null;
|
String requestJson = JSON.toJSONString(startupDto);
|
String url = wcsAddress + "/" + path;
|
try {
|
|
response = new HttpHandler.Builder()
|
.setUri(wcsAddress)
|
.setPath(path)
|
.setJson(requestJson)
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
if (jsonObject.getString("code") != null && jsonObject.getString("code").equals("200")) {
|
wrkMast.setWrkSts(12L);
|
wrkMast.setCrnStrTime(new Date());
|
wrkMastService.updateById(wrkMast);
|
success = true;
|
} else {
|
errorMsg = response;
|
log.error(nameSpaces + "调用外部接口失败,url:{},request:{},response:{}", url, requestJson, response);
|
}
|
} catch (Exception e) {
|
errorMsg = e.getMessage();
|
log.error(nameSpaces + "调用外部接口异常,url:{},request:{},response:{}", url, requestJson, response, e);
|
} finally {
|
try {
|
apiLogService.save(
|
nameSpaces,
|
url,
|
null,
|
"127.0.0.1",
|
requestJson,
|
response,
|
success,
|
errorMsg
|
);
|
} catch (Exception e) {
|
log.error(nameSpaces + "保存接口日志失败", e);
|
}
|
}
|
}
|
}
|