我想实现超市管理这么个功能:
客户端登陆后,可以增加商品的库存。这里先发送到服务端进行验证,输入的商品编号是否存在,不存在提示商品不存在;存在输入数量,提示入库成功。
我是这么想的:创建一个产品对象(用默认的构造方法),首先输入一个商品编号,给商品赋值,因为用的是默认构造方法,商品的数量为0,然后调用客户端的入库方法,发送到服务端。服务端验证,商品存在。客户端提示输入数量num,用num给商品的数量赋值,再调用客户端的入库方法。入库成功。
客户端跟服务端传输的数据对象是datas对象:里面封装了操作的标志(入库、出库、增、删、改操作),product等几个对象
客户端的代码:
public Datas inStore(Product product){
Datas datas=new Datas();
datas.setFlag(SysConstant.sys_instore);//SysConstant.sys_instore这是一个标志,表示入库操作。
datas.setProduct(product);
try {
oos.writeObject(datas);
oos.flush();
datas=(Datas) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return datas;
}

                                    
   这里有个main()方法:                                 datas=null;                                     System.out.print("输入商品编号:");
String proId=input.next();
Product product=new Product();
product.setProductId(proId);
//第一个调用入库 datas=client.inStore(product);
if(datas.getFlag().equals(SysConstant.sys_succeed)){
System.out.print("入库的数量:");
num=input.nextInt();
product.setProductNum(num);
//第二次调用入库 client.inStore(product);
System.out.println("入库成功!");
}else{
System.out.println("没有此商品,请选择编号3:新增商品!");
}服务端:if(datas.getFlag().equals(SysConstant.sys_instore)){
Product product =datas.getProduct();
boolean b=serverService.isExist(product);
if(b){
String productId=product.getProductId();
int productNum=product.getProductNum();
serverService.inStore(productId, productNum);
datas.setFlag(SysConstant.sys_succeed);
}else{
datas.setFlag(SysConstant.sys_fail);
}
oos.writeObject(datas);
oos.flush();
}
public boolean isExist(Product product){
     boolean b=false;
     for(int i=0;i<productList.size();i++){
     if(productList.get(i).getProductId().equals(product.getProductId())){
     b=true;
     }
     }
     return b;
    
    }
 public void inStore(String productId,int productNum){
     for(int i=0;i<productList.size();i++){
     if(productList.get(i).getProductId().equals(productId)){
     productList.get(i).setProductNum(productList.get(i).getProductNum()+productNum);
     break;
     }
     }
    }

解决方案 »

  1.   

    //客户端:
    //入库操作
    System.out.print("输入商品编号:");
    String proId=input.next();
    Product product1=new Product();
    product1.setProductId(proId);
    Datas datas1=client.inStore(product1);//
    if(datas1.getFlag().equals(SysConstant.sys_succeed)){
    System.out.print("入库的数量:");
    num=input.nextInt();
    Product product11=new Product();
    product11.setProductId(proId);
    product11.setProductNum(num);
    datas1=client.inStore(product11);//
    System.out.println(datas1.getFlag());
    System.out.println("入库成功!");
    }else{
    System.out.println("没有此商品,请选择编号3:新增商品!");
    }
    public Datas inStore(Product product){
    Datas datas=new Datas();
    datas.setFlag(SysConstant.sys_instore);
    datas.setProduct(product);
    try {
    oos.writeObject(datas);
    oos.flush();
    datas=(Datas) ois.readObject();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } return datas;
    }
    //查询全部商品
    Datas datas4=new Datas();
    datas4=client.selectAll();
     List<Product> productList=datas4.getProductList();
    System.out.println("商品编号"+"\t"+"商品名称"+"\t"+"商品价格"+"\t"+"单位"+"\t"+"数量");
    for(int i=0;i<productList.size();i++){
    System.out.println(productList.get(i).getProductId()+"\t"+productList.get(i).getProductName()+"\t"
    +productList.get(i).getProductPrice()+"\t"+productList.get(i).getProductWeight()+"\t"+productList.get(i).getProductNum());
    }
    public Datas selectAll(){
    Datas datas=new Datas();
    datas.setFlag(SysConstant.sys_selectAll);
    try {
    oos.writeObject(datas);
    oos.flush();
    datas=(Datas) ois.readObject();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } return datas;
    }
    服务端:-------------------------------------------------------------------------
    if(datas.getFlag().equals(SysConstant.sys_instore)){
    Product product =datas.getProduct();
    if(serverService.isExist(product)){
    String productId=product.getProductId();
    int productNum=product.getProductNum();
    System.out.println(productId+"------------"+productNum);
    serverService.inStore(productId, productNum);
     //判断是否有此商品
        public boolean isExist(Product product){
         boolean b=false;
         for(int i=0;i<productList.size();i++){
         if(productList.get(i).getProductId().equals(product.getProductId())){
         b=true;
         }
         }
         return b;
        
        }     //商品入库
        public void inStore(String productId,int productNum){
         for(int i=0;i<productList.size();i++){
         if(productList.get(i).getProductId().equals(productId)){
         //System.err.println(productList.get(i).getProductNum()+"------------------");
         // System.err.println(productNum+"---------------------");
        
         productList.get(i).setProductNum(productList.get(i).getProductNum()+productNum);
        
         System.err.println(productList.get(i).getProductNum()+"**************");
         break;
         }
         }
        }
    //System.out.println(serverService.selectById(productId).getProductNum()+"-----------------");
    datas.setFlag(SysConstant.sys_succeed);

    }else{
    datas.setFlag(SysConstant.sys_fail);
    }
    oos.writeObject(datas);
    oos.flush();
    }
    //按编号查询商品
        public Product selectById(String productId){
         Product product=new Product();
         for(int i=0;i<productList.size();i++){
         if(productList.get(i).getProductId().equals(productId))
         product=productList.get(i);
         System.err.println("产品数量为:"+product.getProductNum());
         break;
         }
        
         System.out.println("产品数量为:"+product.getProductNum());
         return product;
        }