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 { @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 start(WrkMast wrkMast) { //优先级 LocMast locMast=locMastService.selectOne(new EntityWrapper().eq("loc_no", wrkMast.getSourceLocNo())); int Priority = locMast.getLocAttribute() == null ? 0 : locMast.getLocAttribute(); HashMap 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 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; } }