| | |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.common.web.param.ReplenishmentParam; |
| | | import com.zy.common.web.param.SearchLocParam; |
| | | import lombok.Synchronized; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/10/30 |
| | |
| | | return R.parse(CodeRes.NO_COMB_700); |
| | | } |
| | | |
| | | boolean checkTimeout = false; |
| | | for (WaitPakin waitPakin : waitPakins) { |
| | | Mat mat = matService.selectByMatnr(waitPakin.getMatnr()); |
| | | mat.setWeight(waitPakin.getAnfme()); |
| | | mats.add(mat); |
| | | |
| | | Date appeTime = waitPakin.getAppeTime(); |
| | | Date now = new Date(); |
| | | long diffTime = now.getTime() - appeTime.getTime(); |
| | | if (diffTime >= 1000 * 60 * 60 * 4) { |
| | | checkTimeout = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (checkTimeout) { |
| | | return R.error("托盘组托超时,删除后重新组托"); |
| | | } |
| | | |
| | | int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); |
| | |
| | | } |
| | | |
| | | //获取回库提升机目标站 |
| | | Integer staNo = liftNo * 100 + locMast1.getLev1(); |
| | | Integer staNo = liftNo * 100 + locMast.getLev1(); |
| | | |
| | | // 更新工作档数据状态 |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54 |
| | |
| | | */ |
| | | @PostMapping("/start") |
| | | @ResponseBody |
| | | public R start(@RequestBody ReplenishmentParam param){ |
| | | log.info("start param: " + param.toString()); |
| | | @Transactional |
| | | public synchronized R start(@RequestBody ReplenishmentParam param){ |
| | | log.info("agv start param: " + param.toString()); |
| | | String containerCode = param.getContainerCode(); |
| | | if(Cools.isEmpty(containerCode)){ |
| | | throw new CoolException("料箱码为空"); |
| | |
| | | } |
| | | |
| | | //入库任务 |
| | | if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode))){ |
| | | if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode)) && Cools.isEmpty(agvWrkMast)){ |
| | | //绑定站点 |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode); |
| | | //生成工作档 |
| | |
| | | @PostMapping("/current/containerCode") |
| | | @ResponseBody |
| | | public R move(@RequestBody ReplenishmentParam param){ |
| | | |
| | | log.info("current containerCode: " + param.toString()); |
| | | |
| | | if(Cools.isEmpty(currentContainerMap)){ |
| | | currentContainerMap = new HashMap<>(); |
| | |
| | | @ResponseBody |
| | | public R containerMove(@RequestBody ReplenishmentParam param){ |
| | | |
| | | String devNo = param.getDevNo(); |
| | | if(Cools.isEmpty(currentContainerMap)){ |
| | | currentContainerMap = new HashMap<>(); |
| | | String devNo = Cools.eq("CS-310",param.getDevNo()) ? "310-1" : Cools.eq("CS-311",param.getDevNo()) ? "312-2" : Cools.eq("CS-312",param.getDevNo()) ? "314-1" : Cools.eq("CS-313",param.getDevNo()) ? "316-1" : null; |
| | | |
| | | if(Cools.isEmpty(devNo)){ |
| | | return R.error("站点有误"); |
| | | } |
| | | String containerCode = currentContainerMap.get(devNo); |
| | | |
| | | AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); |
| | | String containerCode = agvBasDevp.getBarcode(); |
| | | |
| | | // String devNo = param.getDevNo(); |
| | | // if(Cools.isEmpty(currentContainerMap)){ |
| | | // currentContainerMap = new HashMap<>(); |
| | | // } |
| | | // String containerCode = currentContainerMap.get(devNo); |
| | | |
| | | AgvBasDevpDto agvBasDevpDto = new AgvBasDevpDto(); |
| | | |
| | |
| | | } |
| | | } |
| | | }; |
| | | if (agvWrkMast.getIoType() == 103){ |
| | | List<AgvLocDetl> suppCodes = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("supp_code", agvWrkMast.getBarcode())); |
| | | if (!Cools.isEmpty(suppCodes)){ |
| | | for (AgvLocDetl agvLocDetl : suppCodes){ |
| | | AgvWrkDetl agvWrkDetl = new AgvWrkDetl(agvLocDetl.getSuppCode(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getSpecs(), agvLocDetl.getAnfme()); |
| | | agvWrkDetlList.add(agvWrkDetl); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | agvBasDevpDto.setAgvWrkDetls(agvWrkDetlList); |
| | | agvBasDevpDto.setAgvWrkMast(agvWrkMast); |