| | |
| | | mast.setWrkSts(4L); |
| | | } else if (mast.getIoType() == 101 || mast.getIoType() == 110 || mast.getIoType() == 103 || mast.getIoType() == 104 || mast.getIoType() == 107) { |
| | | //TODO 恢复正常后,这里代码要注释掉 |
| | | if (mast.getIoType() == 103 || mast.getIoType() == 107) { |
| | | List<WrkDetl> wrkDetls103 = wrkDetlService |
| | | .selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", mast.getWrkNo())); |
| | | if (wrkDetls103.isEmpty()) { |
| | | throw new CoolException("拣料出库 ===>> 更新订单完成数量失败; [workNo=" + mast.getWrkNo()); |
| | | } |
| | | for (WrkDetl wrkDetl : wrkDetls103) { |
| | | // 更新订单完成数量 |
| | | OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), |
| | | wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), |
| | | wrkDetl.getStandby2(), wrkDetl.getStandby3(), |
| | | wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); |
| | | if (orderDetlPakout == null) { |
| | | orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), |
| | | if (mast.getWrkSts() != 14) { |
| | | //TODO 恢复正常后,这里代码要注释掉 |
| | | if (mast.getIoType() == 103) { |
| | | List<WrkDetl> wrkDetls103 = wrkDetlService |
| | | .selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", mast.getWrkNo())); |
| | | if (wrkDetls103.isEmpty()) { |
| | | throw new CoolException("拣料出库 ===>> 更新订单完成数量失败; [workNo=" + mast.getWrkNo()); |
| | | } |
| | | for (WrkDetl wrkDetl : wrkDetls103) { |
| | | // 更新订单完成数量 |
| | | OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), |
| | | wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), |
| | | wrkDetl.getStandby2(), wrkDetl.getStandby3(), |
| | | wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); |
| | | } |
| | | if (!Cools.isEmpty(orderDetlPakout)) { |
| | | if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), |
| | | wrkDetl.getMatnr(), |
| | | orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), |
| | | wrkDetl.getStandby2(), wrkDetl.getStandby3(), |
| | | wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), |
| | | wrkDetl.getAnfme())) { |
| | | throw new CoolException("全板出库 ===>> 更新订单完成数量失败; [workNo=" + mast.getWrkNo()); |
| | | if (orderDetlPakout == null) { |
| | | orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), |
| | | wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), |
| | | wrkDetl.getStandby2(), wrkDetl.getStandby3(), |
| | | wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); |
| | | } |
| | | if (!Cools.isEmpty(orderDetlPakout)) { |
| | | if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), |
| | | wrkDetl.getMatnr(), |
| | | orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), |
| | | wrkDetl.getStandby2(), wrkDetl.getStandby3(), |
| | | wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), |
| | | wrkDetl.getAnfme())) { |
| | | throw new CoolException("全板出库 ===>> 更新订单完成数量失败; [workNo=" + mast.getWrkNo()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | mast.setWrkSts(14L); |
| | | } |
| | | mast.setWrkSts(14L); |
| | | } |
| | | if (!wrkMastService.updateById(mast)) { |
| | | throw new CoolException("任务状态修改失败!!"); |
| | |
| | | import com.zy.asrs.entity.param.*; |
| | | import com.zy.asrs.mapper.ReportQueryMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.service.impl.BasStationDetlServiceImpl; |
| | | import com.zy.asrs.service.impl.BasStationServiceImpl; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.web.BaseController; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | private MatService matService; |
| | | @Autowired |
| | | private WaitPakinService waitPakinService; |
| | | @Autowired |
| | | private BasStationServiceImpl basStationService; |
| | | @Autowired |
| | | private BasStationDetlService basStationDetlService; |
| | | |
| | | |
| | | /** |
| | |
| | | if (Cools.isEmpty(param)) { |
| | | return R.parse(BaseRes.PARAM); |
| | | } |
| | | if (Cools.isEmpty(param.getTaskNo())) { |
| | | return R.error("任务号[taskNo]不能为空"); |
| | | } |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",param.getTaskNo())); |
| | | if (wrkMast == null) { |
| | | return R.error("任务不存在"); |
| | | } |
| | | |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(Integer.valueOf(param.getTaskNo())); |
| | | |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("taskNo", param.getTaskNo()); |
| | | map.put("ioType", wrkMast.getIoType()); |
| | | map.put("wrkDetls", wrkDetls); |
| | | |
| | | if (param.getTaskType().equals("crn")) { |
| | | if (Cools.isEmpty(param.getTaskNo())) { |
| | | return R.error("任务号[taskNo]不能为空"); |
| | | } |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",param.getTaskNo())); |
| | | if (wrkMast == null) { |
| | | return R.error("任务不存在"); |
| | | } |
| | | |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(Integer.valueOf(param.getTaskNo())); |
| | | map.put("taskNo", param.getTaskNo()); |
| | | map.put("ioType", wrkMast.getIoType()); |
| | | map.put("wrkDetls", wrkDetls); |
| | | } else { |
| | | BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", param.getAgvSite())); |
| | | if (Objects.isNull(basStation)) { |
| | | return R.error("站点不存在,请联系管理员检查站点信息!!"); |
| | | } |
| | | List<BasStationDetl> basStationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>().eq("dev_no", param.getAgvSite())); |
| | | map.put("taskNo", param.getAgvSite()); |
| | | map.put("ioType", 1); |
| | | map.put("wrkDetls", basStationDetls); |
| | | } |
| | | return R.ok().add(map); |
| | | } |
| | | |
| | |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.api.enums.LocAreaType; |
| | | import com.zy.api.enums.MatLocType; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.enums.LocStsType; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.service.impl.BasAreasServiceImpl; |
| | | import com.zy.asrs.service.impl.BasStationServiceImpl; |
| | | import com.zy.asrs.service.impl.LocCacheServiceImpl; |
| | | import com.zy.asrs.service.impl.MatServiceImpl; |
| | | import com.zy.common.model.LocDto; |
| | | import com.zy.common.model.TaskDto; |
| | | import com.zy.common.web.BaseController; |
| | |
| | | private LocCacheServiceImpl locCacheService; |
| | | @Autowired |
| | | private BasStationServiceImpl basStationService; |
| | | @Autowired |
| | | private MatService matService; |
| | | |
| | | |
| | | @PostMapping("/out/pakout/orderDetlIds/auth") |
| | |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo())); |
| | | locDto.setFrozen(locDetl.getFrozen()); |
| | | locDto.setFrozenLoc(locMast.getFrozen()); |
| | | List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), currentIssue >= available ? 101 : 103); |
| | | locDto.setStaNos(staNos); |
| | | locDto.setBrand(orderDetl.getBrand()); |
| | | |
| | | Mat mat = matService.selectOne(new EntityWrapper<Mat>() |
| | | .eq("matnr", locDetl.getMatnr()) |
| | | .eq("supp_code", locDetl.getSuppCode())); |
| | | if (Objects.isNull(mat)) { |
| | | throw new CoolException("物料基础信息不存在!!"); |
| | | } |
| | | if (!Objects.isNull(mat.getLocType()) && mat.getLocType().equals(Long.parseLong(MatLocType.EO_HOLDING.type))) { |
| | | locDto.setStaNos(Arrays.asList(240)); |
| | | } else { |
| | | List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), currentIssue >= available ? 101 : 103); |
| | | locDto.setStaNos(staNos); |
| | | } |
| | | locDto.setBrand(orderDetl.getBrand()); |
| | | locDto.setStandby1(orderDetl.getStandby1()); |
| | | locDto.setStandby2(orderDetl.getStandby2()); |
| | | locDto.setStandby3(orderDetl.getStandby3()); |
| | |
| | | |
| | | private String taskNo; |
| | | |
| | | private String taskType; |
| | | |
| | | private String agvSite; |
| | | |
| | | } |
| | |
| | | throw new CoolException("容器编码未维护,请维护后再操作!!"); |
| | | } |
| | | |
| | | Integer whsType = 2; |
| | | Integer whsType = 1; |
| | | Short lcoType = 1; |
| | | //用于判断料箱托盘,料箱,笼框 |
| | | if (!container.getType().equals(ContainerType.CONTAINER_TYPE_BOX.type)) { |
| | |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/7/7 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 任务自动下发出库任务 |
| | | * |
| | |
| | | if (wrkMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | // Collections.shuffle(wrkMasts); |
| | | wrkMasts.forEach(wrkMast -> { |
| | | WorkTaskParams params = new WorkTaskParams(); |
| | | if (wrkMast.getIoType().equals(11)) { |
| | | CompleteParam param = new CompleteParam(); |
| | | param.setTaskNo(wrkMast.getWrkNo() + ""); |
| | | param.setSourceLocNo(wrkMast.getSourceLocNo()); |
| | | param.setLocNo(wrkMast.getLocNo()); |
| | | // param.set |
| | | mobileService.taskMove(param, 9527L); |
| | | } else if (wrkMast.getIoType() > 100) { |
| | | params.setType("out") |
| | | .setTaskNo(wrkMast.getWrkNo() + "") |
| | | .setLocNo(wrkMast.getSourceLocNo()) |
| | | .setBarcode(wrkMast.getBarcode()) |
| | | .setStaNo(wrkMast.getStaNo()) |
| | | .setTaskPri(wrkMast.getIoPri().intValue()); |
| | | wcsApiService.pubWrkToWcs(params); |
| | | Map<Integer, List<WrkMast>> listMap = wrkMasts.stream().collect(Collectors.groupingBy(WrkMast::getCrnNo)); |
| | | listMap.keySet().forEach(key -> { |
| | | List<WrkMast> wrkMasts1 = listMap.get(key); |
| | | Collections.shuffle(wrkMasts1); |
| | | Integer crnNos = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", key)); |
| | | if (crnNos < 6) { |
| | | wrkMasts1.forEach(wrkMast -> { |
| | | WorkTaskParams params = new WorkTaskParams(); |
| | | if (wrkMast.getIoType().equals(11)) { |
| | | CompleteParam param = new CompleteParam(); |
| | | param.setTaskNo(wrkMast.getWrkNo() + ""); |
| | | param.setSourceLocNo(wrkMast.getSourceLocNo()); |
| | | param.setLocNo(wrkMast.getLocNo()); |
| | | mobileService.taskMove(param, 9527L); |
| | | } else if (wrkMast.getIoType() > 100) { |
| | | params.setType("out") |
| | | .setTaskNo(wrkMast.getWrkNo() + "") |
| | | .setLocNo(wrkMast.getSourceLocNo()) |
| | | .setBarcode(wrkMast.getBarcode()) |
| | | .setStaNo(wrkMast.getStaNo()) |
| | | .setTaskPri(wrkMast.getIoPri().intValue()); |
| | | wcsApiService.pubWrkToWcs(params); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | |
| | | // /** |
| | | // * 任务自动下发出库任务 |
| | | // * |
| | | // * @author Ryan |
| | | // * @date 2026/1/10 14:42 |
| | | // */ |
| | | // @Scheduled(cron = "0/5 * * * * ? ") |
| | | // private void autoPubTasks() { |
| | | // List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(11L, 1L))); |
| | | // if (wrkMasts.isEmpty()) { |
| | | // return; |
| | | // } |
| | | //// Collections.shuffle(wrkMasts); |
| | | // wrkMasts.forEach(wrkMast -> { |
| | | // WorkTaskParams params = new WorkTaskParams(); |
| | | // if (wrkMast.getIoType().equals(11)) { |
| | | // CompleteParam param = new CompleteParam(); |
| | | // param.setTaskNo(wrkMast.getWrkNo() + ""); |
| | | // param.setSourceLocNo(wrkMast.getSourceLocNo()); |
| | | // param.setLocNo(wrkMast.getLocNo()); |
| | | //// param.set |
| | | // mobileService.taskMove(param, 9527L); |
| | | // } else if (wrkMast.getIoType() > 100) { |
| | | // params.setType("out") |
| | | // .setTaskNo(wrkMast.getWrkNo() + "") |
| | | // .setLocNo(wrkMast.getSourceLocNo()) |
| | | // .setBarcode(wrkMast.getBarcode()) |
| | | // .setStaNo(wrkMast.getStaNo()) |
| | | // .setTaskPri(wrkMast.getIoPri().intValue()); |
| | | // wcsApiService.pubWrkToWcs(params); |
| | | // } |
| | | // }); |
| | | // |
| | | // } |
| | | |
| | | /** |
| | | * AGV任务自动下发出库任务 |
| | | * |
| | |
| | | int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i)); |
| | | if (count < minCount) { |
| | | minCount = count; |
| | | crnNo = 6; |
| | | crnNo = i; |
| | | } |
| | | } |
| | | |