|  |  |  | 
|---|
|  |  |  | public R kthl(KthlParam param) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取模式为电脑模式,无任务的堆垛机列表:防止分配到堆垛机不可用 | 
|---|
|  |  |  | List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3) | 
|---|
|  |  |  | .eq("wrk_no",0).eq("in_enable","Y").eq("out_enable","Y")); | 
|---|
|  |  |  | List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3) | 
|---|
|  |  |  | .eq("wrk_no", 0).eq("in_enable", "Y").eq("out_enable", "Y")); | 
|---|
|  |  |  | if (basCrnps.isEmpty()) { | 
|---|
|  |  |  | // 都有任务则获取电脑模式的堆垛机列表 | 
|---|
|  |  |  | basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3).eq("in_enable","Y") | 
|---|
|  |  |  | .eq("out_enable","Y")); | 
|---|
|  |  |  | basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("in_enable", "Y") | 
|---|
|  |  |  | .eq("out_enable", "Y")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | WrkMast exist = wrkMastService.selectOne( | 
|---|
|  |  |  | new EntityWrapper<WrkMast>() | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new CoolException("保存工作档失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 返回GWCS目标信息 | 
|---|
|  |  |  | pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode(),"二楼空托回流推送gwcs"); | 
|---|
|  |  |  | pushStaNoToGwcs(param.getPalletizingNo(), wrkMast.getSourceStaNo(), workNo, param.getBarcode(), "二楼空托回流推送gwcs"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok("空托回流请求成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { | 
|---|
|  |  |  | public synchronized R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Cools.isEmpty(param)) { | 
|---|
|  |  |  | throw new CoolException("请求参数有误:" + param); | 
|---|
|  |  |  | 
|---|
|  |  |  | int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); | 
|---|
|  |  |  | if (barcodeCount > 0) { | 
|---|
|  |  |  | throw new CoolException("工作档已存在该托盘码:" + param.getBarcode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(param.getMatList())) { | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | xx.put(obj.getPackageGroupNo(), obj); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LocTypeDto locTypeDto = new LocTypeDto(); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (wrkMast == null) { | 
|---|
|  |  |  | throw new CoolException("不存在该工作号:" + param.getWorkNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (wrkMast.getWrkSts() == 3||wrkMast.getWrkSts() == 4) { | 
|---|
|  |  |  | if (wrkMast.getWrkSts() == 3 || wrkMast.getWrkSts() == 4) { | 
|---|
|  |  |  | throw new CoolException("工作档状态不对:" + param.getWorkNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrkMast.setWrkSts(2L); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R returnOrder(ReturnOrderConfirmParam param) { | 
|---|
|  |  |  | if (Cools.isEmpty(param.getOrderNumber())) { | 
|---|
|  |  |  | param.setOrderNumber("THCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 1. 查询单据是否存在 | 
|---|
|  |  |  | Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber()); | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (order == null) { | 
|---|
|  |  |  | // 1.1 不存在,新建单据 | 
|---|
|  |  |  | order = new Order(); | 
|---|
|  |  |  | order.setOrderNo(param.getOrderNumber()); | 
|---|
|  |  |  | order.setStatus(1); | 
|---|
|  |  |  | order.setOrderTime(sdf.format(new Date())); | 
|---|
|  |  |  | order.setCreateTime(new Date()); | 
|---|
|  |  |  | order.setSettle(1L); | 
|---|
|  |  |  | order.setDocType(26L); | 
|---|
|  |  |  | order.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderMapper.insert(order); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 1.2 存在,更新单据状态 | 
|---|
|  |  |  | if (order.getStatus() == 4) { | 
|---|
|  |  |  | order.setStatus(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderMapper.updateById(order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 2. 一一对应遍历 | 
|---|
|  |  |  | List<ReturnOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < volList.size(); i++) { | 
|---|
|  |  |  | ReturnOrderConfirmParam.VolumeNumber vn = volList.get(i); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 查询是否已存在该 detl | 
|---|
|  |  |  | OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo( | 
|---|
|  |  |  | param.getOrderNumber(), param.getPackageGroupNo(), vn.getVolumeNumber() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (detl == null) { | 
|---|
|  |  |  | detl = new OrderDetl(); | 
|---|
|  |  |  | detl.setOrderId(order.getId()); | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok("组货确认成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R unQualifiedOrder(UnQualifiedOrderConfirmParam param) { | 
|---|
|  |  |  | if (Cools.isEmpty(param.getOrderNumber())) { | 
|---|
|  |  |  | param.setOrderNumber("UQCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 1. 查询单据是否存在 | 
|---|
|  |  |  | Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber()); | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (order == null) { | 
|---|
|  |  |  | // 1.1 不存在,新建单据 | 
|---|
|  |  |  | order = new Order(); | 
|---|
|  |  |  | order.setOrderNo(param.getOrderNumber()); | 
|---|
|  |  |  | order.setStatus(1); | 
|---|
|  |  |  | order.setOrderTime(sdf.format(new Date())); | 
|---|
|  |  |  | order.setCreateTime(new Date()); | 
|---|
|  |  |  | order.setSettle(1L); | 
|---|
|  |  |  | order.setDocType(27L); | 
|---|
|  |  |  | order.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderMapper.insert(order); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 1.2 存在,更新单据状态 | 
|---|
|  |  |  | if (order.getStatus() == 4) { | 
|---|
|  |  |  | order.setStatus(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderMapper.updateById(order); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 2. 一一对应遍历 | 
|---|
|  |  |  | List<UnQualifiedOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < volList.size(); i++) { | 
|---|
|  |  |  | UnQualifiedOrderConfirmParam.VolumeNumber vn = volList.get(i); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 查询是否已存在该 detl | 
|---|
|  |  |  | OrderDetl detl = orderDetlMapper.selectByOrderNoAndVolumeNo( | 
|---|
|  |  |  | param.getOrderNumber(), vn.getVolumeNumber() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (detl == null) { | 
|---|
|  |  |  | detl = new OrderDetl(); | 
|---|
|  |  |  | detl.setOrderId(order.getId()); | 
|---|
|  |  |  | detl.setOrderNo(param.getOrderNumber()); | 
|---|
|  |  |  | detl.setCreateTime(new Date()); | 
|---|
|  |  |  | detl.setAnfme(1.0); | 
|---|
|  |  |  | detl.setModel(vn.getVolumeNumber());     // 卷号 | 
|---|
|  |  |  | detl.setMemo(param.getMemo()); | 
|---|
|  |  |  | orderDetlMapper.insert(detl); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException("该单据的卷号已存在," + vn.getVolumeNumber()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok("组货确认成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*...........................上饶江铜..............以上.............徐工汉云...........................*/ | 
|---|
|  |  |  | } | 
|---|