|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void pakoutFhqr(Integer workNo, Integer check) { | 
|---|
|  |  |  | public R pakoutFhqr(PdckqrParam param) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取工作档 | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo)); | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode())); | 
|---|
|  |  |  | if (wrkMast == null) { | 
|---|
|  |  |  | throw new CoolException("工作档不存在:" + workNo); | 
|---|
|  |  |  | throw new CoolException("工作档不存在:" + param.getBarcode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (wrkMast.getIoType() != 101 || wrkMast.getWrkSts() != 20) { | 
|---|
|  |  |  | throw new CoolException(wrkMast.getWrkNo() + ",工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (wrkMast.getWrkSts() != 20) { | 
|---|
|  |  |  | throw new CoolException("工作档当前状态异常:" + workNo + ",状态:" + wrkMast.getWrkSts()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
|---|
|  |  |  | List<PdckqrParam.Material> materials = param.getMaterials(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (check == 1) { | 
|---|
|  |  |  | // 复核确认,更新状态为15出库完成更新 | 
|---|
|  |  |  | wrkMast.setWrkSts(14L); | 
|---|
|  |  |  | wrkMastService.updateById(wrkMast); | 
|---|
|  |  |  | boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials); | 
|---|
|  |  |  | if (isFullyCancelled) { | 
|---|
|  |  |  | // 复核确认,更新状态为15出库完成更新 | 
|---|
|  |  |  | wrkMast.setWrkSts(14L); | 
|---|
|  |  |  | wrkMastService.updateById(wrkMast); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new CoolException("出口复核失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok("出口复核成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R pdckqr(PdckqrParam param) { | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo()); | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode())); | 
|---|
|  |  |  | if (wrkMast == null) { | 
|---|
|  |  |  | throw new CoolException("工作档不存在:" + param.getWorkNo()); | 
|---|
|  |  |  | throw new CoolException("工作档不存在:" + param.getBarcode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (wrkMast.getIoType() != 107 || wrkMast.getWrkSts() != 2) { | 
|---|
|  |  |  | throw new CoolException(param.getWorkNo() + "工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配"); | 
|---|
|  |  |  | throw new CoolException(wrkMast.getWrkNo() + ",工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(param.getWorkNo()); | 
|---|
|  |  |  | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
|---|
|  |  |  | List<PdckqrParam.Material> materials = param.getMaterials(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials); | 
|---|
|  |  |  | 
|---|
|  |  |  | for (WrkDetl p1 : list1) { | 
|---|
|  |  |  | boolean cancelled = false; | 
|---|
|  |  |  | for (PdckqrParam.Material p2 : remainingList2) { | 
|---|
|  |  |  | if (p1.getBatch().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 卷号和箱号相同 | 
|---|
|  |  |  | if (p1.getUnit().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 卷号和箱号相同 | 
|---|
|  |  |  | remainingList2.remove(p2); | 
|---|
|  |  |  | cancelled = true; | 
|---|
|  |  |  | break; | 
|---|