| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | @Resource |
| | | private OrderMapper orderMapper; |
| | | |
| | | @Resource |
| | | private OrderDetlMapper orderDetlMapper; |
| | | |
| | | @Resource |
| | | private BasCrnpMapper basCrnpMapper; |
| | |
| | | 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("空托回流请求成功"); |
| | | } |
| | |
| | | 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) { |
| | | 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); |
| | |
| | | |
| | | private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { |
| | | GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto(); |
| | | gwmsGenerateInventoryDto.setWarehouseType(4); |
| | | gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode()); |
| | | gwmsGenerateInventoryDto.setPalletizingNo(wrkMast.getStaNo()); |
| | | gwmsGenerateInventoryDto.setGroupOrderNumber(wrkMast.getMemo()); |
| | | List<GwmsGenerateInventoryDto.MatList> matLists = new ArrayList<>(); |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | boolean flag = true; |
| | |
| | | return crnStn; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public R groupOrderConfirm(GroupOrderConfirmParam param) { |
| | | // 1. 查询单据是否存在 |
| | | Order order = orderMapper.selectOrderByOrderNo(param.getGroupOrderNumber()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | if (order == null) { |
| | | // 1.1 不存在,新建单据 |
| | | order = new Order(); |
| | | order.setOrderNo(param.getGroupOrderNumber()); |
| | | order.setStatus(Integer.valueOf(param.getGroupStatus())); |
| | | order.setOrderTime(sdf.format(new Date())); |
| | | order.setCreateTime(new Date()); |
| | | order.setSettle(1L); |
| | | order.setDocType(25L); |
| | | orderMapper.insert(order); |
| | | } else { |
| | | // 1.2 存在,更新单据状态 |
| | | order.setStatus(Integer.valueOf(param.getGroupStatus())); |
| | | orderMapper.updateById(order); |
| | | } |
| | | orderDetlMapper.delete( |
| | | new EntityWrapper<OrderDetl>().eq("order_no", param.getGroupOrderNumber()) |
| | | ); |
| | | |
| | | // 2. 一一对应遍历 |
| | | List<GroupOrderConfirmParam.PackageGroupNo> pkgList = param.getPackageGroupNos(); |
| | | List<GroupOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); |
| | | |
| | | int size = Math.min(pkgList.size(), volList.size()); // 防止越界 |
| | | for (int i = 0; i < size; i++) { |
| | | GroupOrderConfirmParam.PackageGroupNo pg = pkgList.get(i); |
| | | GroupOrderConfirmParam.VolumeNumber vn = volList.get(i); |
| | | |
| | | // 查询是否已存在该 detl |
| | | OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo( |
| | | param.getGroupOrderNumber(), pg.getPackageGroupNo(), vn.getVolumeNumber() |
| | | ); |
| | | |
| | | if (detl == null) { |
| | | detl = new OrderDetl(); |
| | | detl.setOrderId(order.getId()); |
| | | detl.setOrderNo(param.getGroupOrderNumber()); |
| | | detl.setCreateTime(new Date()); |
| | | detl.setAnfme(1.0); |
| | | detl.setBrand(pg.getPackageGroupNo()); // 包装组号 |
| | | detl.setModel(vn.getVolumeNumber()); // 卷号 |
| | | orderDetlMapper.insert(detl); |
| | | } |
| | | } |
| | | |
| | | return R.ok("组货确认成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /*...........................上饶江铜..............以上.............徐工汉云...........................*/ |
| | | } |