| | |
| | | } |
| | | |
| | | /* |
| | | 任务完成 |
| | | */ |
| | | @RequestMapping(value = "/basDevp/visualized/container/moveOut2") |
| | | public R visualiZedContainerMoveOut2(@RequestBody Map<String,Object> map) { |
| | | |
| | | String barcode = map.get("barcode").toString(); |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L)); |
| | | if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){ |
| | | throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行容器离场任务,请重新选择站点。"); |
| | | } |
| | | |
| | | agvWrkMast.setWrkSts(208L); |
| | | agvWrkMastService.updateById(agvWrkMast); |
| | | |
| | | return R.ok("容器离场成功"); |
| | | } |
| | | |
| | | /* |
| | | 拣料/盘点入库 |
| | | */ |
| | | @RequestMapping(value = "/basDevp/visualized/container/pickIn") |
| | |
| | | AgvLocDetl selectLocdetl(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode); |
| | | |
| | | @Update("update agv_loc_detl set loc_no = '${targetLoc}' where loc_no = '${sourceLoc}' and supp_code = '${containerCode}'") |
| | | void updateLocNo(String targetLoc, String sourceLoc, String containerCode); |
| | | void updateLocNo(@Param("targetLoc")String targetLoc, @Param("sourceLoc")String sourceLoc, @Param("containerCode")String containerCode); |
| | | } |
| | |
| | | } |
| | | |
| | | /* |
| | | 定时处理AGV工作档中工作状态为206.出库完成 且 (101.出库 || 110.空板出库) |
| | | */ |
| | | @Scheduled(cron = "0/10 * * * * ? ") |
| | | public void excuteCarryWrk2(){ |
| | | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() |
| | | .eq("wrk_sts", 208) |
| | | .andNew().eq("io_type",110) |
| | | .or().eq("io_type",101)); |
| | | if(!Cools.isEmpty(agvWrkMastList)){ |
| | | agvWrkMastList.stream().forEach(agvWrkMast -> { |
| | | ReturnT<String> returnT = agvWrkMastHandler.completedCarryWrk2(agvWrkMast); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |
| | | /* |
| | | putaway:上架 |
| | | 定时处理AGV工作档中工作状态为201.生成入库任务ID 且(出库类型为 53.拣料再入库 || 1.入库 || 10.空板入库栽 || 57.盘点再入库)的数据 |
| | | */ |
| | |
| | | } |
| | | |
| | | @Transactional |
| | | public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) { |
| | | int wrkNo = agvWrkMast.getWrkNo(); |
| | | String orderNo = getOrderNoByWrkNo(wrkNo); |
| | | //修改工作档状态为207.库存更新完成 |
| | | agvWrkMast.setWrkSts(207L); |
| | | agvWrkMastService.updateById(agvWrkMast); |
| | | //修改源库位状态为O |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); |
| | | if(agvWrkMast.getIoType() == 101){ |
| | | //更新目标库位明细 101.出库 删除源库位库存明细 |
| | | agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); |
| | | } |
| | | |
| | | //生成AGV工作历史档 |
| | | agvWrkMastLogService.save(agvWrkMast); |
| | | //生成AGV工作明细历史档 |
| | | agvWrkDetlLogService.save(wrkNo); |
| | | //删除AGV工作档 |
| | | agvWrkMastService.deleteById(wrkNo); |
| | | //删除AGV工作明细档 |
| | | agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); |
| | | if(!isJSON(orderNo)){ |
| | | //检查订单是否已完成 |
| | | orderService.checkComplete(orderNo); |
| | | }else{ |
| | | List<Map> maps = JSONArray.parseArray(orderNo, Map.class); |
| | | maps.forEach(map -> { |
| | | String o = map.get("orderNo").toString(); |
| | | orderService.checkComplete(o); |
| | | }); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | @Transactional |
| | | @Synchronized |
| | | public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException { |
| | | |