自动化立体仓库 - WMS系统
1
zhang
昨天 2ee6aabfa6a557939dfae393c4881b8b5b9ea270
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -99,6 +99,9 @@
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private WrkDetlLogService wrkDetlLogService;
    @Resource
    private MatMapper matMapper;
@@ -116,6 +119,14 @@
    @Resource
    private BasCrnpMapper basCrnpMapper;
    @Resource
    private ReviewService reviewService;
    @Resource
    private ReviewDetlService reviewDetlService;
    @Override
    @Transactional
@@ -1260,7 +1271,7 @@
                    // 箱号
                    HashMap<String, Object> zz = new HashMap<>();
                    List<GwmsGenerateInventoryDto.Rolls> rolls = obj.getRolls();
                    for(GwmsGenerateInventoryDto.Rolls roll :rolls) {
                    for (GwmsGenerateInventoryDto.Rolls roll : rolls) {
                        barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("model", roll.getRollNo()));
                        if (barcodeCount2 > 0) {
                            throw new CoolException("卷号已存在工作档(输送线):" + roll.getRollNo());
@@ -1599,8 +1610,8 @@
                matList.setStockType(wrkMast.getStaNo() == 2041 ? "返修出库" : "成品出库");
                matList.setBoxType(wrkDetl.getColor());
                matList.setRollType(wrkDetl.getManu());
                matList.setWideInWidth(wrkDetl.getSku());
                matList.setThickness(wrkDetl.getItemNum());
                matList.setWideInWidth(wrkDetl.getItemNum());
                matList.setThickness(wrkDetl.getSku());
                List<GwmsGenerateInventoryDto.Rolls> rollsList = new ArrayList<>();
                GwmsGenerateInventoryDto.Rolls roll = new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(),
                        wrkDetl.getUnit(), wrkDetl.getMaktx(), wrkDetl.getLength(),
@@ -1682,7 +1693,7 @@
        // 寻找空托盘库位,先找浅库位
        List<LocMast> locMasts;
        locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D")
                .orderAsc(Arrays.asList("row1", "lev1", "bay1")).in("crn_no", crnNoList).in("row1", 3, 4, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23));
                .orderAsc(Arrays.asList("row1", "lev1", "bay1")).in("crn_no", crnNoList).in("row1", 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23));
        if (locMasts.isEmpty()) {
            locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D")
                    .orderAsc(Arrays.asList("row1", "lev1", "bay1")).in("crn_no", crnNoList).in("row1", 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24));
@@ -2385,6 +2396,70 @@
    @Override
    @Transactional
    public R groupOrderConfirmV2(GroupOrderConfirmParam param) {
        // 1. 查询单据是否存在
        String time = DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F);
        Review review = reviewService.selectOne(new EntityWrapper<Review>().eq("order_no", param.getGroupOrderNumber()));
        if (review == null) {
            review = new Review();
            review.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
            review.setOrderNo(param.getGroupOrderNumber());
            review.setOrderTime(time);
            review.setDefNumber("系统同步");
            review.setSettle(1L);
            review.setStatus(1);
            review.setCreateBy(9527L);
            review.setCreateTime(new Date());
            reviewService.insert(review);
            review = reviewService.selectOne(new EntityWrapper<Review>().eq("order_no", param.getGroupOrderNumber()));
        } else {
            // 1.2 存在,更新单据状态
            review.setSettle(1L);
            reviewService.updateById(review);
        }
        reviewService.delete(
                new EntityWrapper<Review>().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
            ReviewDetl detl = reviewDetlService.selectOne(new EntityWrapper<ReviewDetl>().eq("order_no", param.getGroupOrderNumber()).eq("brand", pg.getPackageGroupNo()).eq("model", vn.getVolumeNumber()));
            if (detl == null) {
                List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>().eq("brand", pg.getPackageGroupNo()).eq("model", vn.getVolumeNumber()));
                detl = new ReviewDetl();
                if (wrkDetlLogs != null && !wrkDetlLogs.isEmpty() && wrkDetlLogs.size() >= 1) {
                    detl.setSpecs(wrkDetlLogs.get(0).getSpecs());
                    detl.setBatch(wrkDetlLogs.get(0).getBatch());
                    detl.setAnfme(wrkDetlLogs.get(0).getAnfme());
                    detl.setMatnr(wrkDetlLogs.get(0).getMatnr());
                    detl.setMaktx(wrkDetlLogs.get(0).getMaktx());
                    detl.setUnit(wrkDetlLogs.get(0).getUnit());
                    detl.setDeadTime(wrkDetlLogs.get(0).getModiTime$());
                }
                detl.setOrderId(review.getId());
                detl.setOrderNo(param.getGroupOrderNumber());
                detl.setCreateTime(new Date());
                detl.setBrand(pg.getPackageGroupNo());   // 包装组号
                detl.setModel(vn.getVolumeNumber());     // 卷号
                reviewDetlService.insert(detl);
            }
        }
        return R.ok("组货确认成功");
    }
    @Override
    @Transactional
    public R returnOrder(ReturnOrderConfirmParam param) {
        if (Cools.isEmpty(param.getOrderNumber())) {
            param.setOrderNumber("THCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd));
@@ -2496,7 +2571,12 @@
                throw new RuntimeException("该单据的卷号已存在," + vn.getVolumeNumber());
            }
        }
        List<UnQualifiedOrderConfirmParam.VolumeNumber> volumeNumbers = param.getVolumeNumbers();
        for (UnQualifiedOrderConfirmParam.VolumeNumber v :volumeNumbers){
            if (!Cools.isEmpty(v.getVolumeNumber())&&!Cools.isEmpty(param.getQualified())){
                locDetlMapper.updateQualifiedByBrand(v.getVolumeNumber(), param.getQualified(),param.getRemark());
            }
        }
        return R.ok("组货确认成功");
    }