| | |
| | | import com.zy.asrs.entity.param.MobileAdjustParam; |
| | | import com.zy.asrs.entity.result.MobileAdjustResult; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.model.WrkDto; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | private BasDevpService basDevpService; |
| | | @Autowired |
| | | private PackService packService; |
| | | @Autowired |
| | | private WaitPakinService waitPakinService; |
| | | |
| | | // 拣料检索托盘信息 |
| | | @RequestMapping("/piking/auth") |
| | | @ManagerAuth |
| | | public R pikingAuth(String barcode) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); |
| | | if (Cools.isEmpty(wrkMast)) { |
| | | throw new CoolException(barcode + "暂无工作档"); |
| | | } |
| | | if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107){ |
| | | throw new CoolException(barcode + "不为拣料/盘点出库"); |
| | | } |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | return R.ok().add(wrkDetls); |
| | | } |
| | | |
| | | // 组托前查询托盘码是否已经组托 |
| | | @RequestMapping("/barcode/auth") |
| | | @ManagerAuth |
| | | public R pakinAuth(@RequestParam("barcode") String barcode) { |
| | | WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); |
| | | if (!Cools.isEmpty(waitPakin)) { |
| | | return R.error("入库通知档已存在!"); |
| | | } |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("barcode",barcode)); |
| | | if (!Cools.isEmpty(locMast)) { |
| | | return R.error("库存主档中已存在当前条码!"); |
| | | } |
| | | LocDetl locdetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("barcode", barcode)); |
| | | if (!Cools.isEmpty(locdetl)){ |
| | | return R.error("库存明细中已存在当前条码,请检查库存"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | // 拣料转全板 |
| | | @RequestMapping("/piking/to/full") |
| | | @ManagerAuth |
| | | @Transactional |
| | | public R pikingToFull(String barcode) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); |
| | | if(Cools.isEmpty(wrkMast)){ |
| | | throw new CoolException("工作档不能为空"); |
| | | } |
| | | if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107){ |
| | | throw new CoolException(barcode + "不为拣料/盘点出库"); |
| | | } |
| | | |
| | | Date now = new Date(); |
| | | List<LocDetl> locDetls = locDetlService.selectByLocNo(wrkMast.getSourceLocNo()); |
| | | wrkMast.setIoType(101); |
| | | // wrkMast.setSourceStaNo(wrkMast.getStaNo()); |
| | | // wrkMast.setStaNo(200); |
| | | wrkMastService.updateById(wrkMast); |
| | | |
| | | wrkDetlService.deleteByWrkNo(wrkMast.getWrkNo()); |
| | | for(LocDetl locDetl : locDetls){ |
| | | WrkDetl wrkDetl = new WrkDetl(); |
| | | wrkDetl.setWrkNo(wrkMast.getWrkNo()); |
| | | wrkDetl.setModiTime(now); |
| | | wrkDetl.setMatType(locDetl.getMatType()); |
| | | |
| | | wrkDetl.sync(locDetl); |
| | | wrkDetlService.insert(wrkDetl); |
| | | } |
| | | |
| | | LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); |
| | | if (locMast.getLocSts().equals("P")) { |
| | | locMast.setLocSts("R"); |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } |
| | | locMastService.updateById(locMast); |
| | | return R.ok("转换成功"); |
| | | } |
| | | |
| | | // 组托 ---------------------------------------------------------------------------------------------------- |
| | | |
| | |
| | | if (wrkMast != null) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | // 去除已出库确认的明细 |
| | | wrkDetls.removeIf(wrkDetl -> wrkDetl.getInspect() == 1); |
| | | wrkDetls.removeIf(wrkDetl -> wrkDetl.getInspect() != null && wrkDetl.getInspect() != 0); |
| | | return R.ok().add(Cools.add("wrkNo", wrkMast.getWrkNo()).add("ioType", wrkMast.getIoType()).add("list", wrkDetls)); |
| | | } |
| | | return R.ok(); |
| | |
| | | wrkDetl.setOrderNo(orderNo); |
| | | wrkDetl.setIoTime(wrkMast.getIoTime()); |
| | | wrkDetl.setWrkNo(wrkNo); |
| | | wrkDetl.setMatType(locDetl.getMatType()); |
| | | return R.ok().add(wrkDetl); |
| | | } |
| | | } |
| | |
| | | if (Cools.isEmpty(list)) { |
| | | return R.ok(); |
| | | } |
| | | // todo:luxiaotao 拣料出库可修改工作档明细 |
| | | Set<Integer> wrkNos = new HashSet<>(); |
| | | List<WrkDto> dtos = new ArrayList<>(); |
| | | for (WrkDetl wrkDetl : list) { |
| | | wrkNos.add(wrkDetl.getWrkNo()); |
| | | wrkDetlService.updateInspect(wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (wrkNos.contains(wrkDetl.getWrkNo())) { |
| | | for (WrkDto dto : dtos) { |
| | | if (dto.getWrkNo().equals(wrkDetl.getWrkNo())) { |
| | | dto.getWrkDetls().add(wrkDetl); |
| | | break; |
| | | } |
| | | } |
| | | } else { |
| | | wrkNos.add(wrkDetl.getWrkNo()); |
| | | dtos.add(new WrkDto(wrkDetl.getWrkNo(), wrkDetl)); |
| | | } |
| | | } |
| | | |
| | | for (WrkDto dto : dtos) { |
| | | WrkMast wrkMast = wrkMastService.selectById(dto.getWrkNo()); |
| | | if (wrkMast != null) { |
| | | // 101 |
| | | if (wrkMast.getIoType() == 101) { |
| | | for (WrkDetl wrkDetl : dto.getWrkDetls()) { |
| | | wrkDetlService.updateInspect(wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | } |
| | | } |
| | | // 103 |
| | | if (wrkMast.getIoType() == 103) { |
| | | if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) { |
| | | throw new CoolException("拣料出库确认失败"); |
| | | } |
| | | for (WrkDetl wrkDetl : dto.getWrkDetls()) { |
| | | wrkDetl.setInspect(1); |
| | | if (!wrkDetlService.insert(wrkDetl)) { |
| | | throw new CoolException("拣料出库确认失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | for (Integer wrkNo : wrkNos) { |
| | | WrkMast wrkMast = wrkMastService.selectById(wrkNo); |
| | | if (wrkMast.getWrkSts() == 14 && (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N"))) { |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping("/checkDetl/auth2") |
| | | @ManagerAuth |
| | | public R getCheckDetl2(String barcode) { |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); |
| | | if(Cools.isEmpty(wrkMast)){ |
| | | throw new CoolException("此托盘码没有盘点任务"); |
| | | } |
| | | if (wrkMast.getIoType() != 107){ |
| | | throw new CoolException("此托盘码不为盘点出库"); |
| | | } |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | return R.ok().add(wrkDetls); |
| | | } |
| | | |
| | | @RequestMapping("/adjust/auth") |
| | | @ManagerAuth(memo = "盘点") |
| | | public R adjust(@RequestBody MobileAdjustParam combParam){ |
| | |
| | | return R.ok("盘点成功"); |
| | | } |
| | | |
| | | @RequestMapping("/adjustNew/auth") |
| | | @ManagerAuth(memo = "盘点") |
| | | public synchronized R adjustNew(@RequestBody MobileAdjustParam combParam){ |
| | | mobileService.adjustNew(combParam, Boolean.FALSE, getUserId()); |
| | | return R.ok("盘点成功"); |
| | | } |
| | | |
| | | @RequestMapping("/adjustNew/v2/auth") |
| | | @ManagerAuth(memo = "补货") |
| | | public synchronized R adjustNewV2(@RequestBody MobileAdjustParam combParam){ |
| | | mobileService.adjustNew(combParam, Boolean.TRUE, getUserId()); |
| | | return R.ok("补货成功"); |
| | | } |
| | | } |