|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { | 
|---|
|  |  |  | public synchronized R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Cools.isEmpty(param)) { | 
|---|
|  |  |  | throw new CoolException("请求参数有误:" + param); | 
|---|
|  |  |  | 
|---|
|  |  |  | HashMap<String, Object> xx = new HashMap<>(); | 
|---|
|  |  |  | List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList(); | 
|---|
|  |  |  | for (GwmsGenerateInventoryDto.MatList obj : matList) { | 
|---|
|  |  |  | int barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("brand", obj.getPackageGroupNo())); | 
|---|
|  |  |  | if (barcodeCount2 > 0) { | 
|---|
|  |  |  | throw new CoolException("包装组号已存在工作档(输送线):" + obj.getPackageGroupNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("brand", obj.getPackageGroupNo())); | 
|---|
|  |  |  | if (zpalletCount2 > 0) { | 
|---|
|  |  |  | throw new CoolException("包装组号已存在:" + obj.getPackageGroupNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 卷号 | 
|---|
|  |  |  | HashMap<String, Object> yy = new HashMap<>(); | 
|---|
|  |  |  | // 箱号 | 
|---|
|  |  |  | HashMap<String, Object> zz = new HashMap<>(); | 
|---|
|  |  |  | List<GwmsGenerateInventoryDto.Rolls> rolls = obj.getRolls(); | 
|---|
|  |  |  | for(GwmsGenerateInventoryDto.Rolls roll :rolls) { | 
|---|
|  |  |  | barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("model", roll.getRollNo())); | 
|---|
|  |  |  | if (barcodeCount2 > 0) { | 
|---|
|  |  |  | throw new CoolException("卷号已存在工作档(输送线):" + roll.getRollNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("model", roll.getRollNo())); | 
|---|
|  |  |  | if (zpalletCount2 > 0) { | 
|---|
|  |  |  | throw new CoolException("卷号已存在库存:" + roll.getRollNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("unit", roll.getBoxNo())); | 
|---|
|  |  |  | if (barcodeCount2 > 0) { | 
|---|
|  |  |  | throw new CoolException("箱号已存在工作档(输送线):" + roll.getBoxNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("unit", roll.getBoxNo())); | 
|---|
|  |  |  | if (zpalletCount2 > 0) { | 
|---|
|  |  |  | throw new CoolException("箱号已存在库存:" + roll.getBoxNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (yy.get(roll.getRollNo()) != null) { | 
|---|
|  |  |  | throw new CoolException("明细中存在2条相同的卷号:" + roll.getRollNo()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | yy.put(roll.getRollNo(), roll.getRollNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (zz.get(roll.getBoxNo()) != null) { | 
|---|
|  |  |  | throw new CoolException("明细中存在2条相同的箱号:" + roll.getBoxNo()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | zz.put(roll.getBoxNo(), roll.getBoxNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (xx.get(obj.getPackageGroupNo()) != null) { | 
|---|
|  |  |  | throw new CoolException("明细中存在2条相同的包装组号:" + obj.getPackageGroupNo()); | 
|---|
|  |  |  | 
|---|
|  |  |  | return "出库结果上报成功"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { | 
|---|
|  |  |  | public void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { | 
|---|
|  |  |  | GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto(); | 
|---|
|  |  |  | gwmsGenerateInventoryDto.setWarehouseType(4); | 
|---|
|  |  |  | gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode()); | 
|---|
|  |  |  | 
|---|
|  |  |  | order.setCreateTime(new Date()); | 
|---|
|  |  |  | order.setSettle(1L); | 
|---|
|  |  |  | order.setDocType(26L); | 
|---|
|  |  |  | order.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderMapper.insert(order); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 1.2 存在,更新单据状态 | 
|---|
|  |  |  | order.setStatus(2); | 
|---|
|  |  |  | if (order.getStatus() == 4) { | 
|---|
|  |  |  | order.setStatus(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderMapper.updateById(order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | detl.setAnfme(1.0); | 
|---|
|  |  |  | detl.setBrand(param.getPackageGroupNo());   // 包装组号 | 
|---|
|  |  |  | detl.setModel(vn.getVolumeNumber());     // 卷号 | 
|---|
|  |  |  | detl.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderDetlMapper.insert(detl); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException("该单据的卷号已存在," + vn.getVolumeNumber()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R unqualifiedOrder(ReturnOrderConfirmParam param) { | 
|---|
|  |  |  | public R unQualifiedOrder(UnQualifiedOrderConfirmParam param) { | 
|---|
|  |  |  | if (Cools.isEmpty(param.getOrderNumber())) { | 
|---|
|  |  |  | param.setOrderNumber("UQCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | order.setCreateTime(new Date()); | 
|---|
|  |  |  | order.setSettle(1L); | 
|---|
|  |  |  | order.setDocType(27L); | 
|---|
|  |  |  | order.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderMapper.insert(order); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 1.2 存在,更新单据状态 | 
|---|
|  |  |  | order.setStatus(2); | 
|---|
|  |  |  | if (order.getStatus() == 4) { | 
|---|
|  |  |  | order.setStatus(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderMapper.updateById(order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 2. 一一对应遍历 | 
|---|
|  |  |  | List<ReturnOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); | 
|---|
|  |  |  | List<UnQualifiedOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < volList.size(); i++) { | 
|---|
|  |  |  | ReturnOrderConfirmParam.VolumeNumber vn = volList.get(i); | 
|---|
|  |  |  | UnQualifiedOrderConfirmParam.VolumeNumber vn = volList.get(i); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 查询是否已存在该 detl | 
|---|
|  |  |  | OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo( | 
|---|
|  |  |  | param.getOrderNumber(), param.getPackageGroupNo(), vn.getVolumeNumber() | 
|---|
|  |  |  | OrderDetl detl = orderDetlMapper.selectByOrderNoAndVolumeNo( | 
|---|
|  |  |  | param.getOrderNumber(), vn.getVolumeNumber() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (detl == null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | detl.setOrderNo(param.getOrderNumber()); | 
|---|
|  |  |  | detl.setCreateTime(new Date()); | 
|---|
|  |  |  | detl.setAnfme(1.0); | 
|---|
|  |  |  | detl.setBrand(param.getPackageGroupNo());   // 包装组号 | 
|---|
|  |  |  | detl.setModel(vn.getVolumeNumber());     // 卷号 | 
|---|
|  |  |  | detl.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderDetlMapper.insert(detl); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException("该单据的卷号已存在," + vn.getVolumeNumber()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|