自动化立体仓库 - WMS系统
#
zjj
2024-08-31 c31bf5a8902485b750b5814a0d1c54ecc65d2c96
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -20,6 +20,7 @@
import com.zy.common.utils.Synchro;
import com.zy.system.entity.User;
import com.zy.system.service.SaasLogService;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -103,6 +104,7 @@
    private PlaQtyService plaQtyService;
    @Autowired
    private SaasLogService saasLogService;
@@ -664,7 +666,7 @@
            orderService.checkComplete(order.getOrderNo());
            SaasUtils.insertLog(0,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername(),
        null,null,null,null,null);
        null,null,null,null,null,null);
        }
@@ -806,7 +808,7 @@
                }
            }
            SaasUtils.insertLog(1,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername(),
                    null,null,null,null,null);
                    null,null,null,null,null,null);
        }
        return R.ok("下架完成");
@@ -1231,11 +1233,12 @@
        plaService.updateById(pla);
        SaasUtils.insertLog(0,locNo,pla.getBrand(),pla.getWeightAnfme(),user.getUsername(),
                null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop());
                null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop(),null);
    }
    @Override
    @Transactional
    @Synchronized
    public void plaPakout(String brand, String locNo, String batch, Integer packageNo, String orderNo, String plaQtyId, String wrkNo, Double anfme, boolean isReplace) {
        Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo,brand);
@@ -1265,6 +1268,7 @@
        manPakOut.setCount(manPakOut.getCount() + anfme);
        if (manPakOut.getAnfme().equals(manPakOut.getCount())){
            manPakOut.setStatus(1);
            manPakOut.setUpdateTime(new Date());
            manPakOutService.updateById(manPakOut);
        }
@@ -1283,7 +1287,7 @@
        }
        plaService.updateById(pla);
        SaasUtils.insertLog(1,locNo,pla.getBrand(),anfme,null,null,
                pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop());
                pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop(),null);
        //更新订单明细
        Order order = orderService.selectByNo(orderNo);
@@ -1319,7 +1323,7 @@
        plaService.updateById(pla);
        SaasUtils.insertLog(1,pla.getLocNo(),pla.getBrand(),anfme,null,null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop());
        SaasUtils.insertLog(1,pla.getLocNo(),pla.getBrand(),anfme,null,null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop(),null);
    }
@@ -1353,8 +1357,55 @@
        manPakOut.setMaktx(plaNew.getBrand());
        manPakOut.setBatch(plaNew.getBatch());
        manPakOut.setBarcode(plaNew.getPackageNo() + "");
        manPakOut.setUpdateTime(new Date());
        manPakOutService.updateById(manPakOut);
    }
    @Override
    public List<Pla> pdaSelectInfmt(String barcode) {
        EntityWrapper<Pla> plaEntityWrapper = new EntityWrapper<>();
        String[] split = barcode.split(";");
        if (split.length == 4){
            plaEntityWrapper.eq("brand",split[0]);
            plaEntityWrapper.eq("batch",split[1]);
            plaEntityWrapper.eq("package_no",split[2]);
            plaEntityWrapper.eq("line",split[3]);
        }else if (split.length == 1){
            Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", barcode));
            if (Cools.isEmpty(node)){
                throw new CoolException("请检查输入的库位码");
            }
            plaEntityWrapper.eq("loc_no",barcode);
            plaEntityWrapper.notLike("status","全部出库");
        }else {
            throw new CoolException("条码信息有误!");
        }
        List<Pla> plaList = plaService.selectList(plaEntityWrapper);
        if (Cools.isEmpty(plaList)){
            throw new CoolException("未查询到库存物料信息");
        }
        return plaList;
    }
    public boolean checkMaximum(String locNo, int packageNum){
        Node node = nodeService.selectByUuid(locNo);
        Node nodeParent = nodeService.selectById(node.getParentId());
        if(Cools.isEmpty(nodeParent.getMajor())){
            return true;
        }
        //当前库存包数
        int count = plaService.selectCount(new EntityWrapper<Pla>().eq("loc_no", locNo)
                .notIn("status", "全部出库"));
        if(nodeParent.getMajor() < count + packageNum){
            return false;
        }
        return true;
    }
}