package com.zy.asrs.task.handler;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.entity.param.CarryParam;
|
import com.zy.asrs.service.ApiLogService;
|
import com.zy.asrs.service.LocMastService;
|
import com.zy.asrs.service.WrkMastService;
|
import com.zy.asrs.service.impl.LocMastServiceImpl;
|
import com.zy.asrs.task.AbstractHandler;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.common.utils.HttpHandler;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
|
@Slf4j
|
@Service
|
@Transactional
|
public class OutWorkHandler extends AbstractHandler<String> {
|
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private ApiLogService apiLogService;
|
@Value("${wcs.address.URL}")
|
private String addrs;
|
@Value("${wcs.address.outboundTaskSend}")
|
private String outboundTaskSend;
|
@Autowired
|
private WrkMastService wrkMastService;
|
|
|
public synchronized ReturnT<String> start(WrkMast wrkMast) {
|
//优先级
|
LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
|
int Priority = locMast.getLocAttribute() == null ? 0 : locMast.getLocAttribute();
|
|
HashMap<String, Object> map = new HashMap<>();
|
CarryParam carryParam = new CarryParam();
|
carryParam.setBoxNo(wrkMast.getBarcode());//托盘码
|
carryParam.setTaskNo(wrkMast.getWrkNo()+"");//任务号
|
carryParam.setStereoscopicTaskType(2);//2.出库
|
carryParam.setPriority(10+Priority);//优先级
|
carryParam.setOriginalRowNo(locMast.getRow1());//源库位排
|
carryParam.setOriginalColumnNo(locMast.getBay1());//源库位列
|
carryParam.setOriginalFloorNo(locMast.getLev1());//源库位层
|
carryParam.setStartPoint(wrkMast.getStaNo()+""+locMast.getLev1());//源站
|
carryParam.setTerminalNo(wrkMast.getStaNo()+"");//目标站
|
List<CarryParam> carryParamList=new ArrayList<>();
|
carryParamList.add(carryParam);
|
map.put("TaskList",carryParamList);
|
|
String response ="";
|
Boolean bool =false;
|
try {
|
log.info("wms派发任务给wcs出库={}", map);
|
response = new HttpHandler.Builder()
|
// .setHeaders(headParam)
|
.setUri(addrs)
|
.setPath(outboundTaskSend)
|
.setJson(JSON.toJSONString(map))
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
if(jsonObject.get("Code").equals("1")){
|
wrkMast.setWrkSts(12L);
|
wrkMastService.updateById(wrkMast);
|
bool = true;
|
}
|
} catch (Exception e) {
|
log.error("wcs派发任务给RCS出库失败{},返回值={}", wrkMast, response);
|
} finally {
|
apiLogService.save("wcs派发任务给RCS出库"
|
, addrs + outboundTaskSend
|
, null
|
, "127.0.0.1"
|
, JSON.toJSONString(map)
|
, response
|
, bool
|
);
|
}
|
return SUCCESS;
|
|
}
|
}
|