| | |
| | | package com.zy.asrs.task; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.entity.param.ShuttleOutTask; |
| | | import com.zy.asrs.entity.param.ShuttleTask; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.service.impl.LocMastServiceImpl; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.task.handler.WorkMastHandler; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/7/7 |
| | | */ |
| | | //@Component |
| | | @Component |
| | | public class WorkMastScheduler { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class); |
| | | |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private WorkMastHandler workMastHandler; |
| | | |
| | | @Value("${shuttleWcs.url}") |
| | | private String shuttleWcsUrl; |
| | | @Autowired |
| | | private LocMastServiceImpl locMastService; |
| | | |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void execute(){ |
| | | workMastHandler.start(); |
| | | List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); |
| | | if (wrkMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | ReturnT<String> returnT = workMastHandler.start(wrkMast); |
| | | if (!returnT.isSuccess()) { |
| | | wrkMast.setUpdMk("X"); |
| | | wrkMast.setErrorMemo(returnT.getMsg()); |
| | | wrkMast.setErrorTime(new Date()); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // @Scheduled(cron = "0/3 * * * * ? ") //入库任务下发 |
| | | // private void ShuttleInTaskSend(){ |
| | | // List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | // .in("io_type", 101,110,103,104,107) |
| | | // .eq("wrk_sts", 105).eq("crn_no",7)); |
| | | // if (!Cools.isEmpty(wrkMasts1)){ |
| | | // return; |
| | | // } |
| | | // List<WrkMast> wrkMasts = wrkMastService.selectToShuttleTask(); |
| | | // if (wrkMasts.isEmpty()) { |
| | | // return; |
| | | // } |
| | | // try { |
| | | // for (WrkMast wrkMast : wrkMasts) { |
| | | // LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo())); |
| | | // if (locMast == null) { |
| | | // throw new CoolException("下发四向车wcs任务失败"); |
| | | // } |
| | | // String loc = (locMast.getRow1()-16)+"-"+locMast.getBay1()+"-"+locMast.getLev1(); |
| | | // ShuttleTask param = new ShuttleTask(); |
| | | // param.setTaskNo(wrkMast.getWrkNo().toString()); |
| | | // param.setDestLoc(loc); |
| | | // param.setOriginSite("31002"); |
| | | // param.setBarcode(wrkMast.getBarcode()); |
| | | // param.setPriority("11"); |
| | | // String response = new HttpHandler.Builder() |
| | | // .setUri(shuttleWcsUrl) |
| | | // .setPath("/openapi/createInTask") |
| | | // .setJson(JSON.toJSONString(param)) |
| | | // .build() |
| | | // .doPost(); |
| | | // JSONObject jsonObject = JSON.parseObject(response); |
| | | // Integer code = jsonObject.getInteger("code"); |
| | | // if (code.equals(200)) { |
| | | // wrkMast.setWrkSts(105L); |
| | | // if (!wrkMastService.updateById(wrkMast)) { |
| | | // log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo()); |
| | | // } |
| | | // } |
| | | // } |
| | | // }catch (Exception e){ |
| | | // throw new CoolException("下发四向车wcs任务失败"); |
| | | // } |
| | | // |
| | | // } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") //出库库任务下发 |
| | | private void ShuttleOutTaskSend(){ |
| | | List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("io_type", 1,10,53,54,57).eq("crn_no",7)); |
| | | if (!Cools.isEmpty(wrkMasts1)){ |
| | | return; |
| | | } |
| | | List<WrkMast> wrkMasts = wrkMastService.selectToShuttleOutTask(); |
| | | if (wrkMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | try { |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo())); |
| | | if (locMast == null) { |
| | | throw new CoolException("下发四向车wcs任务失败"); |
| | | } |
| | | String loc = (locMast.getRow1()-16)+"-"+locMast.getBay1()+"-"+locMast.getLev1(); |
| | | ShuttleOutTask param = new ShuttleOutTask(); |
| | | param.setTaskNo(wrkMast.getWrkNo().toString()); |
| | | param.setOriginLoc(loc); |
| | | param.setOriginSite("31004"); |
| | | param.setDestSite("31002"); |
| | | param.setPriority("11"); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(shuttleWcsUrl) |
| | | .setPath("/openapi/createOutTask") |
| | | .setJson(JSON.toJSONString(param)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | wrkMast.setWrkSts(105L); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | throw new CoolException("下发四向车wcs任务失败"); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |