cp
2024-11-19 70b86bb70e6941127888979dbde37dda3b1db0b6
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -251,36 +251,76 @@
    @Override
    @Transactional
    public R WarehouseIn(String locNo, String barcode,Long hostId) {
    public R WarehouseIn(String locNo, String barcode,Long hostId,Long userId) {
        //判断库位状态
        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locNo).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
        if (Cools.isEmpty(locMast)){
            return R.error("该库位不存在");
        }
        if (!locMast.getLocSts().equals("O")){
            return R.error("该库位状态为:"+locMast.getLocSts()+",禁止入库");
        }
//        if (!locMast.getLocSts().equals("O")){
//            return R.error("该库位状态为:"+locMast.getLocSts()+",禁止入库");
//        }
        //查询组托数据
        List<WaitPakin> list = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getZpallet, barcode).eq(WaitPakin::getHostId, hostId));
        if (Cools.isEmpty(list)){
            return R.error("未找到组托信息");
        }
        Date now = new Date();
        //插入库存数据
        for (WaitPakin waitPakin: list){
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, waitPakin.getMatnr()).eq(Mat::getHostId, hostId));
            LocDetl locDetl = new LocDetl();
            locDetl.sync(mat);
            locDetl.setLocNo(locNo);
            //处理库存信息
            AdjDetl adjDetl = new AdjDetl();
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>()
                    .eq(Mat::getMatnr, waitPakin.getMatnr()).eq(Mat::getHostId, hostId));
            LocDetl locDetl1=locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
                    .eq(LocDetl::getMatnr,waitPakin.getMatnr())
                    .eq(LocDetl::getHostId,hostId)
                    .eq(LocDetl::getLocNo,locNo));
            double i=0.0;
            if(!Cools.isEmpty(locDetl1)){
                i=locDetl1.getAnfme();
                locDetl1.setAnfme(locDetl1.getAnfme()+waitPakin.getAnfme());
                locDetlService.updateById(locDetl1);
                adjDetl.setMatnr(locDetl1.getMatnr());
                adjDetl.setBatch(locDetl1.getBatch());
                adjDetl.setAdjQty(locDetl1.getAnfme());
            }else{
                LocDetl locDetl = new LocDetl();
                locDetl.sync(mat);
                locDetl.setLocNo(locNo);
//            locDetl.setBarcode(waitPakin.getBarcode());
            locDetl.setZpallet(waitPakin.getZpallet());
            locDetl.setAnfme(waitPakin.getAnfme());
            locDetl.setBatch(waitPakin.getBatch());
                locDetl.setZpallet(waitPakin.getZpallet());
                locDetl.setAnfme(waitPakin.getAnfme());
                locDetl.setBatch(waitPakin.getBatch());
//            locDetl.setWeight(waitPakin.getWeight());
            locDetl.setHostId(hostId);
            locDetl.setModiTime(now);
            locDetl.setAppeTime(now);
            locDetlService.save(locDetl);
                locDetl.setHostId(hostId);
                locDetl.setModiTime(now);
                locDetl.setAppeTime(now);
                locDetlService.save(locDetl);
                adjDetl.setMatnr(locDetl.getMatnr());
                adjDetl.setBatch(locDetl.getBatch());
                adjDetl.setAdjQty(locDetl.getAnfme());
            }
            try {
                adjDetl.setLocNo(locNo);
                adjDetl.setOriQty(i);
                adjDetl.setMemo("平庫上架");
                adjDetl.setModiUser(userId);
                adjDetl.setAppeUser(userId);
                adjDetl.setAppeTime(new Date());
                adjDetl.setModiTime(new Date());
                adjDetl.setOrderNo(waitPakin.getOrderNo());
                if (!adjDetlService.save(adjDetl)) {
                    throw new CoolException("保存库存调整记录失败");
                }
            }catch (Exception e){
                e.printStackTrace();
                throw new CoolException("更新库存数据出错" + e.getMessage());
            }
            //是否属于订单数据
            if (!Cools.isEmpty(waitPakin.getOrderNo())){
                Order order = orderService.selectByNo(waitPakin.getOrderNo(), hostId);
@@ -320,7 +360,7 @@
    @Override
    @Transactional
    public R WarehouseOut(CombParam combParam, Long hostId) {
    public R WarehouseOut(CombParam combParam, Long hostId , Long userId) {
        //判断库位状态
        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
        if (Cools.isEmpty(locMast)){
@@ -336,7 +376,7 @@
                    .eq(LocDetl::getHostId, hostId)
                    .eq(LocDetl::getZpallet, combMat.getZpallet())
                    .eq(LocDetl::getMatnr, combMat.getMatnr())
                    .eq(LocDetl::getBatch, combMat.getBatch())
//                    .eq(LocDetl::getBatch, combMat.getBatch())
            );
            if (Cools.isEmpty(locDetl)){
                return R.error("未查询到库存数据");
@@ -357,7 +397,7 @@
                    continue;
                }
                if (orderDetl.getAnfme() < orderDetl.getWorkQty()+combMat.getAnfme()){
                    throw new CoolException("下架数量出错");
                    combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
                }
                // 修改订单明细作业数量
                if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
@@ -371,6 +411,8 @@
                orderService.checkComplete(combParam.getOrderNo(), hostId);
            }
            try {
                double i=0.0;
                double j=locDetl.getAnfme();
                //处理库存信息
                if (combMat.getAnfme().equals(locDetl.getAnfme())){
                    //库存相等删除数据
@@ -383,8 +425,32 @@
                    }
                }else {
                    BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme()));
                    i=subtract.byteValue();
                    locDetl.setAnfme(subtract.doubleValue());
                    locDetlService.updateById(locDetl);
                }
                try {
                    //处理库存信息
                    AdjDetl adjDetl = new AdjDetl();
                    adjDetl.setLocNo(locDetl.getLocNo());
                    adjDetl.setMatnr(locDetl.getMatnr());
                    adjDetl.setBatch(locDetl.getBatch());
                    adjDetl.setOriQty(j);
                    adjDetl.setAdjQty(i);
                    adjDetl.setMemo("平庫下架");
                    adjDetl.setModiUser(userId);
                    adjDetl.setAppeUser(userId);
                    adjDetl.setAppeTime(new Date());
                    adjDetl.setModiTime(new Date());
                    adjDetl.setOrderNo(combParam.getOrderNo());
                    adjDetl.setHostId(hostId);
                    if (!adjDetlService.save(adjDetl)) {
                        throw new CoolException("保存库存调整记录失败");
                    }
                }catch (Exception e){
                    e.printStackTrace();
                    throw new CoolException("更新库存数据出错" + e.getMessage());
                }
            }catch (Exception e){
                throw new CoolException("更新库存数据出错"+e.getMessage());
@@ -461,7 +527,7 @@
                adjDetl.setMatnr(locDetl.getMatnr());
                adjDetl.setBatch(locDetl.getBatch());
                adjDetl.setOriQty(locDetl.getAnfme());
                adjDetl.setMemo("WarehouseOutV1-pick");
                adjDetl.setMemo("并板途中拣料");
                adjDetl.setModiUser(userId);
                adjDetl.setAppeUser(userId);
                adjDetl.setAppeTime(new Date());
@@ -637,7 +703,7 @@
                        adjDetl.setBatch(locDetl.getBatch());
                        adjDetl.setOriQty(originAnfme);
                        adjDetl.setAdjQty(locDetl.getAnfme());
                        adjDetl.setMemo("WarehouseOutV1-pick");
                        adjDetl.setMemo("拣料途中并板");
                        adjDetl.setModiUser(userId);
                        adjDetl.setAppeUser(userId);
                        adjDetl.setAppeTime(new Date());
@@ -785,4 +851,5 @@
        return R.ok();
    }
}