码迷,mamicode.com
首页 > 编程语言 > 详细

Java之------单机版书店管理系统(设计思想和设计模式系列六)销售模块

时间:2016-05-26 01:09:52      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

书店管理系统

书店管理系统可以说是设计模式及设计思想的一个比较经典的例子。

本系列将分为多个部分讲述此输电管理系统。

书店管理系统将分为:用户、图书、进货、销售和库存五个模块,另外还有公共包、工具包和登录包,另外还有一个框架。

对于分层设计,都是表现层可以调用逻辑层,逻辑层调用数据层,数据层调用工具和公共包,方向不可打乱,必须严格按照这种模式。

本篇将做销售模块。


注:本篇需要使用到的框架在本系列二的用户模块:

链接:http://blog.csdn.net/x121850182/article/details/51362269


和进货模块相同的,进货模块分成了数据层、逻辑层、表现层和值对象层,数据层也要多出一个进货明细。

销售模块和进货模块其实是一摸一样的,可以直接对拷,就只要更改里面的名字即可。


数据层:

接口:

OutMainDAO

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.dao.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import cn.hncu.out.vo.OutMainModel;  
  6. import cn.hncu.out.vo.OutMainQueryModel;  
  7.   
  8. public interface OutMainDAO {  
  9.     public boolean create(OutMainModel outMain);  
  10.     public boolean delete(String uuid);  
  11.     public boolean upDate(OutMainModel outMain);  
  12.       
  13.     public OutMainModel getSingle(String uuid);  
  14.     public List<OutMainModel> getAll();  
  15.     public List<OutMainModel> getByCondition(OutMainQueryModel imqm);  
  16. }  
OutDetailDAO

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.dao.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import cn.hncu.out.vo.OutDetailModel;  
  6. import cn.hncu.out.vo.OutDetailQueryModel;  
  7.   
  8. public interface OutDetailDAO {  
  9.     public boolean create(OutDetailModel outDetail);  
  10.     public boolean delete(String uuid);  
  11.     public boolean upDate(OutDetailModel outDetail);  
  12.       
  13.     public OutDetailModel getSingle(String uuid);  
  14.     public List<OutDetailModel> getAll();  
  15.     public List<OutDetailModel> getByCondition(OutDetailQueryModel idqm);  
  16. }  
实现类:

OutMainDAOImpl

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.dao.impl;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import cn.hncu.out.dao.dao.OutMainDAO;  
  7. import cn.hncu.out.vo.OutMainModel;  
  8. import cn.hncu.out.vo.OutMainQueryModel;  
  9. import cn.hncu.utils.FileIo;  
  10.   
  11. public class OutMainDAOImpl implements OutMainDAO {  
  12.     private final String FILE_NAME="OutMain.txt";  
  13.     @Override  
  14.     public boolean create(OutMainModel outMain) {  
  15.         List<OutMainModel> list=FileIo.read(FILE_NAME);  
  16.         for (OutMainModel model:list){  
  17.             if (model.getUuid().equals(outMain.getUuid())){  
  18.                 return false;  
  19.             }  
  20.         }  
  21.         list.add(outMain);  
  22.         FileIo.write(list, FILE_NAME);  
  23.         return true;  
  24.     }  
  25.   
  26.     @Override  
  27.     public boolean delete(String uuid) {  
  28.         List<OutMainModel> list=FileIo.read(FILE_NAME);  
  29.         for (OutMainModel model:list){  
  30.             if (model.getUuid().equals(uuid)){  
  31.                 list.remove(model);  
  32.                 FileIo.write(list, FILE_NAME);  
  33.                 return true;  
  34.             }  
  35.         }  
  36.         return false;  
  37.     }  
  38.   
  39.     @Override  
  40.     public List<OutMainModel> getAll() {  
  41.         List<OutMainModel> list=FileIo.read(FILE_NAME);  
  42.         return list;  
  43.     }  
  44.   
  45.     @Override  
  46.     public List<OutMainModel> getByCondition(OutMainQueryModel omqm) {  
  47.         List<OutMainModel> list=getAll();  
  48.         List<OutMainModel> result=new ArrayList<OutMainModel>();  
  49.         for (OutMainModel outMain:list){  
  50.             if (omqm.getUuid()!=null&&omqm.getUuid().trim().length()>0){  
  51.                 if (!omqm.getUuid().equals(outMain.getUuid())){  
  52.                     continue;  
  53.                 }  
  54.             }  
  55.             if (omqm.getOutUserId()!=null&&omqm.getOutUserId().trim().length()>0){  
  56.                 if (!omqm.getOutUserId().equals(outMain.getOutUserId())){  
  57.                     continue;  
  58.                 }  
  59.             }  
  60.             if (omqm.getOutDate()>0){  
  61.                 if (omqm.getOutDate()>outMain.getOutDate()){  
  62.                     continue;  
  63.                 }  
  64.             }  
  65.             if (omqm.getOutDate2()>0){  
  66.                 if (omqm.getOutDate2()<outMain.getOutDate()){  
  67.                     continue;  
  68.                 }  
  69.             }  
  70.             result.add(outMain);  
  71.         }  
  72.           
  73.         return result;  
  74.     }  
  75.   
  76.     @Override  
  77.     public OutMainModel getSingle(String uuid) {  
  78.         List<OutMainModel> list=FileIo.read(FILE_NAME);  
  79.         for (OutMainModel model:list){  
  80.             if (model.getUuid().equals(uuid)){  
  81.                 return model;  
  82.             }  
  83.         }  
  84.         return null;  
  85.     }  
  86.   
  87.     @Override  
  88.     public boolean upDate(OutMainModel outMain) {  
  89.         List<OutMainModel> list=FileIo.read(FILE_NAME);  
  90.         for (int i=0;i<list.size();i++){  
  91.             OutMainModel model=list.get(i);  
  92.             if (model.getUuid().equals(outMain.getUuid())){  
  93.                 list.set(i, outMain);  
  94.                 return true;  
  95.             }  
  96.         }  
  97.         return false;  
  98.     }  
  99. }  
OutDetailDAOImpl
[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.dao.impl;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import cn.hncu.out.dao.dao.OutDetailDAO;  
  7. import cn.hncu.out.vo.OutDetailModel;  
  8. import cn.hncu.out.vo.OutDetailQueryModel;  
  9. import cn.hncu.out.vo.OutMainModel;  
  10. import cn.hncu.utils.FileIo;  
  11.   
  12. public class OutDetailDAOImpl implements OutDetailDAO {  
  13.     private final String FILE_NAME="OutDetail.txt";  
  14.     @Override  
  15.     public boolean create(OutDetailModel outDetail) {  
  16.         List<OutDetailModel> list=FileIo.read(FILE_NAME);  
  17.         for (OutDetailModel model:list){  
  18.             if (model.getUuid().equals(outDetail.getUuid())){  
  19.                 return false;  
  20.             }  
  21.         }  
  22.         list.add(outDetail);  
  23.         FileIo.write(list, FILE_NAME);  
  24.         return true;  
  25.     }  
  26.   
  27.     @Override  
  28.     public boolean delete(String uuid) {  
  29.         List<OutDetailModel> list=FileIo.read(FILE_NAME);  
  30.         for (OutDetailModel model:list){  
  31.             if (model.getUuid().equals(uuid)){  
  32.                 list.remove(model);  
  33.                 FileIo.write(list, FILE_NAME);  
  34.                 return true;  
  35.             }  
  36.         }  
  37.         return false;  
  38.     }  
  39.   
  40.     @Override  
  41.     public List<OutDetailModel> getAll() {  
  42.         List<OutDetailModel> list=FileIo.read(FILE_NAME);  
  43.         return list;  
  44.     }  
  45.   
  46.     @Override  
  47.     public List<OutDetailModel> getByCondition(OutDetailQueryModel odqm) {  
  48.         List<OutDetailModel> list=getAll();  
  49.         List<OutDetailModel> results=new ArrayList<OutDetailModel>();  
  50.           
  51.         for (OutDetailModel model:list){  
  52.             if (odqm.getUuid()!=null&&odqm.getUuid().trim().length()>0){  
  53.                 if (!model.getUuid().equals(odqm.getUuid())){  
  54.                     continue;  
  55.                 }  
  56.             }  
  57.             if (odqm.getOutUuid()!=null&&odqm.getOutUuid().trim().length()>0){  
  58.                 if (!model.getOutUuid().equals(odqm.getOutUuid())){  
  59.                     continue;  
  60.                 }  
  61.             }  
  62.             if (odqm.getBookUuid()!=null&&odqm.getBookUuid().trim().length()>0){  
  63.                 if (!model.getBookUuid().equals(odqm.getBookUuid())){  
  64.                     continue;  
  65.                 }  
  66.             }  
  67.             if (odqm.getSumNum()>0){  
  68.                 if (model.getSumNum()<odqm.getSumNum()){  
  69.                     continue;  
  70.                 }  
  71.             }  
  72.             if (odqm.getSumNum2()>0){  
  73.                 if (model.getSumNum()>odqm.getSumNum2()){  
  74.                     continue;  
  75.                 }  
  76.             }  
  77.             if (odqm.getSumMoney()>0){  
  78.                 if (model.getSumMoney()<odqm.getSumMoney()){  
  79.                     continue;  
  80.                 }  
  81.             }  
  82.             if (odqm.getSumMoney2()>0){  
  83.                 if (model.getSumMoney()>odqm.getSumMoney2()){  
  84.                     continue;  
  85.                 }  
  86.             }  
  87.             results.add(model);  
  88.         }  
  89.         return results;  
  90.     }  
  91.   
  92.     @Override  
  93.     public OutDetailModel getSingle(String uuid) {  
  94.         List<OutDetailModel> list=FileIo.read(FILE_NAME);  
  95.         for (OutDetailModel model:list){  
  96.             if (model.getUuid().equals(uuid)){  
  97.                 return model;  
  98.             }  
  99.         }  
  100.         return null;  
  101.     }  
  102.   
  103.     @Override  
  104.     public boolean upDate(OutDetailModel outDetail) {  
  105.         List<OutDetailModel> list=FileIo.read(FILE_NAME);  
  106.         for (int i=0;i<list.size();i++){  
  107.             OutDetailModel model=list.get(i);  
  108.             if (model.getUuid().equals(outDetail.getUuid())){  
  109.                 list.set(i, outDetail);  
  110.                 return true;  
  111.             }  
  112.         }  
  113.         return false;  
  114.     }  
  115. }  
工厂类:

OutMainDAOFactory

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.dao.factory;  
  2.   
  3. import cn.hncu.out.dao.dao.OutMainDAO;  
  4. import cn.hncu.out.dao.impl.OutMainDAOImpl;  
  5.   
  6. public class OutMainDAOFactory {  
  7.     public static OutMainDAO getOutMainDAO(){  
  8.         return new OutMainDAOImpl();  
  9.     }  
  10. }  
OutDetailDAOFactory

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.dao.factory;  
  2.   
  3. import cn.hncu.out.dao.dao.OutDetailDAO;  
  4. import cn.hncu.out.dao.impl.OutDetailDAOImpl;  
  5.   
  6. public class OutDetailDAOFactory {  
  7.     public static OutDetailDAO getOutDetailDAO(){  
  8.         return new OutDetailDAOImpl();  
  9.     }  
  10. }  

逻辑层:
接口:

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.business.ebi;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. import cn.hncu.out.vo.OutDetailModel;  
  7. import cn.hncu.out.vo.OutDetailQueryModel;  
  8. import cn.hncu.out.vo.OutMainModel;  
  9. import cn.hncu.out.vo.OutMainQueryModel;  
  10.   
  11. public interface OutMainEbi {  
  12.     public boolean create(OutMainModel outMain,List<OutDetailModel> details);  
  13.     public Map<OutMainModel, List<OutDetailModel>> getAll();  
  14.     public Map<OutMainModel, List<OutDetailModel>> getByCondition(OutMainQueryModel omqm,OutDetailQueryModel idqm);  
  15. }  
实现类:

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.business.ebo;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5. import java.util.TreeMap;  
  6.   
  7. import javax.swing.JOptionPane;  
  8.   
  9. import cn.hncu.book.business.ebi.BookEbi;  
  10. import cn.hncu.book.business.factory.BookEbiFactory;  
  11. import cn.hncu.common.UuidModelConstance;  
  12. import cn.hncu.common.uuid.dao.dao.UuidDAO;  
  13. import cn.hncu.common.uuid.dao.factory.UuidDAOFactory;  
  14. import cn.hncu.out.business.ebi.OutMainEbi;  
  15. import cn.hncu.out.dao.dao.OutDetailDAO;  
  16. import cn.hncu.out.dao.dao.OutMainDAO;  
  17. import cn.hncu.out.dao.factory.OutDetailDAOFactory;  
  18. import cn.hncu.out.dao.factory.OutMainDAOFactory;  
  19. import cn.hncu.out.vo.OutDetailModel;  
  20. import cn.hncu.out.vo.OutDetailQueryModel;  
  21. import cn.hncu.out.vo.OutMainModel;  
  22. import cn.hncu.out.vo.OutMainQueryModel;  
  23. import cn.hncu.stock.business.factory.StockEbiFactory;  
  24. import cn.hncu.stock.dao.dao.StockDAO;  
  25. import cn.hncu.stock.dao.factory.StockDAOFactory;  
  26. import cn.hncu.stock.vo.StockModel;  
  27. import cn.hncu.stock.vo.StockQueryModel;  
  28.   
  29. public class OutMainEbo implements OutMainEbi {  
  30.     OutMainDAO outMainDAO=OutMainDAOFactory.getOutMainDAO();  
  31.     OutDetailDAO outDetailDAO=OutDetailDAOFactory.getOutDetailDAO();  
  32.     UuidDAO uuidDAO=UuidDAOFactory.getUuidDAO();  
  33.     BookEbi bookEbi=BookEbiFactory.getBookEbi();  
  34.   
  35.     @Override  
  36.     public boolean create(OutMainModel outMain, List<OutDetailModel> details) {  
  37.         //※※※库存操作1:在添加销售信息之前要进行防护:检查库存,看是否可能库存不够。  
  38.         //如果不够,本次添加直接失败,不进行数据存储---return false;  
  39.         //注入stock模块的DAO  
  40.         StockDAO stockDAO=StockDAOFactory.getStockDAO();  
  41.         for (OutDetailModel detail:details){  
  42.             StockQueryModel sqm=new StockQueryModel();  
  43.             sqm.setBookUuid(detail.getBookUuid());  
  44.             List<StockModel> list = stockDAO.getByCondition(sqm);  
  45.             if (list==null||list.size()==0){  
  46.                 JOptionPane.showMessageDialog(null"库存中不存在《"+detail.getBookName()+"》,本次销售添加失败!");  
  47.                 return false;  
  48.             }else {  
  49.                 StockModel stock=list.get(0);  
  50.                 if (stock.getSumNum()<detail.getSumNum()){  
  51.                     JOptionPane.showMessageDialog(null"库存中《"+detail.getBookName()+"》数量不足,本次销售添加失败!");  
  52.                     return false;  
  53.                 }  
  54.             }  
  55.         }  
  56.           
  57.         //////////1存储outMain信息///////////  
  58.         //补全outMain中的数据  
  59.         //需要:outUuid,outDate,outUserUuid   已组织:outUserUuid  
  60.         //还缺(需补):outUuid,outDate  
  61.         String outUuid=uuidDAO.getNextUuid(UuidModelConstance.OUT_MAIN);  
  62.         outMain.setUuid(outUuid);  
  63.         outMain.setOutDate(System.currentTimeMillis());  
  64.         outMainDAO.create(outMain);  
  65.   
  66.         //////////2存储outDetail信息///////////  
  67.         for (OutDetailModel outDetail:details){  
  68.             //补全每一个outDetail中的数据  
  69.             //需要:outDetailUuid,outMainUuid,bookUuid,sumNum,sumMoney   已组织:bookUuid,sumNum  
  70.             //还缺(需补):outDetailUuid,outMainUuid,sumMoney  
  71.             outDetail.setUuid(uuidDAO.getNextUuid(UuidModelConstance.OUT_DETAIL));  
  72.             outDetail.setOutUuid(outUuid);  
  73.             double sumMoney=outDetail.getSumNum()*bookEbi.getSingle(outDetail.getBookUuid()).getSalePrice();  
  74.             outDetail.setSumMoney(sumMoney);  
  75.             outDetailDAO.create(outDetail);  
  76.               
  77.             //※※※库存操作2:更新库存---把对应的每种图书的数量  减去  这次销售的数量  
  78.             StockQueryModel sqm=new StockQueryModel();  
  79.             sqm.setBookUuid(outDetail.getBookUuid());  
  80.             List<StockModel> list = StockEbiFactory.getStockEbi().getByCondition(sqm);  
  81.             StockModel stock=list.get(0);  
  82.             stock.setSumNum(stock.getSumNum()-outDetail.getSumNum());  
  83.             stockDAO.upDate(stock);  
  84.         }  
  85.           
  86.         return true;  
  87.     }  
  88.   
  89.     @Override  
  90.     public Map<OutMainModel, List<OutDetailModel>> getAll() {  
  91.         Map<OutMainModel, List<OutDetailModel>> map=new TreeMap<OutMainModel, List<OutDetailModel>>();  
  92.         List<OutMainModel> outMains=outMainDAO.getAll();  
  93.           
  94.         for (OutMainModel outMain:outMains){  
  95.             OutDetailQueryModel odqm=new OutDetailQueryModel();  
  96.             String outUuid=outMain.getUuid();  
  97.             odqm.setOutUuid(outUuid);  
  98.               
  99.             List<OutDetailModel> details=outDetailDAO.getByCondition(odqm);  
  100.             map.put(outMain, details);  
  101.         }  
  102.           
  103.         return map;  
  104.     }  
  105.   
  106.     @Override  
  107.     public Map<OutMainModel, List<OutDetailModel>> getByCondition(  
  108.             OutMainQueryModel omqm, OutDetailQueryModel odqm) {  
  109.         Map<OutMainModel, List<OutDetailModel>> map=new TreeMap<OutMainModel, List<OutDetailModel>>();  
  110.         List<OutMainModel> outMains=OutMainDAOFactory.getOutMainDAO().getByCondition(omqm);  
  111.           
  112.         for (OutMainModel outMain:outMains){  
  113.             odqm.setOutUuid(outMain.getUuid());  
  114.             List<OutDetailModel> details=OutDetailDAOFactory.getOutDetailDAO().getByCondition(odqm);  
  115.             if (details.size()!=0){  
  116.                 map.put(outMain, details);  
  117.             }  
  118.         }  
  119.         return map;  
  120.     }  
  121. }  
工厂类:

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.business.factory;  
  2.   
  3. import cn.hncu.out.business.ebi.OutMainEbi;  
  4. import cn.hncu.out.business.ebo.OutMainEbo;  
  5.   
  6. public class OutMainEbiFactory {  
  7.     public static OutMainEbi getOutMainEbi(){  
  8.         return new OutMainEbo();  
  9.     }  
  10. }  

值对象层:

OutMainModel

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.vo;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. import cn.hncu.utils.DateUtil;  
  6.   
  7. public class OutMainModel implements Serializable,Comparable<OutMainModel>{  
  8.     private String uuid;  
  9.     private long outDate;  
  10.     private String outUserId;  
  11.     private String outUserName;  
  12.       
  13.     public String getOutUserName() {  
  14.         return outUserName;  
  15.     }  
  16.     public void setOutUserName(String outUserName) {  
  17.         this.outUserName = outUserName;  
  18.     }  
  19.     public String getUuid() {  
  20.         return uuid;  
  21.     }  
  22.     public void setUuid(String uuid) {  
  23.         this.uuid = uuid;  
  24.     }  
  25.     public long getOutDate() {  
  26.         return outDate;  
  27.     }  
  28.     public void setOutDate(long outDate) {  
  29.         this.outDate = outDate;  
  30.     }  
  31.     public String getOutUserId() {  
  32.         return outUserId;  
  33.     }  
  34.     public void setOutUserId(String outUserId) {  
  35.         this.outUserId = outUserId;  
  36.     }  
  37.       
  38.     @Override  
  39.     public int hashCode() {  
  40.         final int prime = 31;  
  41.         int result = 1;  
  42.         result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());  
  43.         return result;  
  44.     }  
  45.     @Override  
  46.     public boolean equals(Object obj) {  
  47.         if (this == obj)  
  48.             return true;  
  49.         if (obj == null)  
  50.             return false;  
  51.         if (getClass() != obj.getClass())  
  52.             return false;  
  53.         OutMainModel other = (OutMainModel) obj;  
  54.         if (uuid == null) {  
  55.             if (other.uuid != null)  
  56.                 return false;  
  57.         } else if (!uuid.equals(other.uuid))  
  58.             return false;  
  59.         return true;  
  60.     }  
  61.       
  62.     @Override  
  63.     public String toString() {  
  64.         return uuid + ", " + outUserName+ ", " + DateUtil.longToString(outDate);  
  65.     }  
  66.     @Override  
  67.     public int compareTo(OutMainModel o) {  
  68.         return Integer.parseInt(uuid)-Integer.parseInt(o.getUuid());  
  69.     }  
  70. }  
OutMainQueryModel

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.vo;  
  2.   
  3. public class OutMainQueryModel extends OutMainModel{  
  4.     private long outDate2;  
  5.   
  6.     public long getOutDate2() {  
  7.         return outDate2;  
  8.     }  
  9.   
  10.     public void setOutDate2(long outDate2) {  
  11.         this.outDate2 = outDate2;  
  12.     }  
  13. }  
OutDetailModel

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.vo;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. public class OutDetailModel implements Serializable{  
  6.     private String uuid;  
  7.     private String outUuid;  
  8.     private String bookUuid;  
  9.     private int sumNum;  
  10.     private double sumMoney;  
  11.     private String bookName;  
  12.       
  13.     public String getBookName() {  
  14.         return bookName;  
  15.     }  
  16.     public void setBookName(String bookName) {  
  17.         this.bookName = bookName;  
  18.     }  
  19.     public String getUuid() {  
  20.         return uuid;  
  21.     }  
  22.     public void setUuid(String uuid) {  
  23.         this.uuid = uuid;  
  24.     }  
  25.     public String getOutUuid() {  
  26.         return outUuid;  
  27.     }  
  28.     public void setOutUuid(String outUuid) {  
  29.         this.outUuid = outUuid;  
  30.     }  
  31.     public String getBookUuid() {  
  32.         return bookUuid;  
  33.     }  
  34.     public void setBookUuid(String bookUuid) {  
  35.         this.bookUuid = bookUuid;  
  36.     }  
  37.     public int getSumNum() {  
  38.         return sumNum;  
  39.     }  
  40.     public void setSumNum(int sumNum) {  
  41.         this.sumNum = sumNum;  
  42.     }  
  43.     public double getSumMoney() {  
  44.         return sumMoney;  
  45.     }  
  46.     public void setSumMoney(double sumMoney) {  
  47.         this.sumMoney = sumMoney;  
  48.     }  
  49.       
  50.     @Override  
  51.     public int hashCode() {  
  52.         final int prime = 31;  
  53.         int result = 1;  
  54.         result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());  
  55.         return result;  
  56.     }  
  57.     @Override  
  58.     public boolean equals(Object obj) {  
  59.         if (this == obj)  
  60.             return true;  
  61.         if (obj == null)  
  62.             return false;  
  63.         if (getClass() != obj.getClass())  
  64.             return false;  
  65.         OutDetailModel other = (OutDetailModel) obj;  
  66.         if (uuid == null) {  
  67.             if (other.uuid != null)  
  68.                 return false;  
  69.         } else if (!uuid.equals(other.uuid))  
  70.             return false;  
  71.         return true;  
  72.     }  
  73.       
  74.     @Override  
  75.     public String toString() {  
  76.         return uuid +", "+bookName + ", " + sumNum  
  77.         + "本, " + sumMoney + "元";  
  78.     }  
  79. }  
OutDetailQueryModel

[java] view plain copy
 技术分享技术分享
  1. package cn.hncu.out.vo;  
  2.   
  3. public class OutDetailQueryModel extends OutDetailModel{  
  4.     private int sumNum2;  
  5.     private double sumMoney2;  
  6.     public int getSumNum2() {  
  7.         return sumNum2;  
  8.     }  
  9.     public void setSumNum2(int sumNum2) {  
  10.         this.sumNum2 = sumNum2;  
  11.     }  
  12.     public double getSumMoney2() {  
  13.         return sumMoney2;  
  14.     }  
  15.     public void setSumMoney2(double sumMoney2) {  
  16.         this.sumMoney2 = sumMoney2;  
  17.     }  
  18. }  

表现层:
与进货模块相同的销售记录要保留所以不能有删除操作,也不能有修改操作,只能通过进货与销售来改变其中保存的值

列表:

[java] view plain copy
 技术分享技术分享
  1. /* 
  2.  * ListPanel.java 
  3.  * 
  4.  * Created on __DATE__, __TIME__ 
  5.  */  
  6.   
  7. package cn.hncu.out.ui;  
  8.   
  9. import java.util.List;  
  10. import java.util.Map;  
  11.   
  12. import javax.swing.JFrame;  
  13.   
  14. import cn.hncu.out.business.factory.OutMainEbiFactory;  
  15. import cn.hncu.out.vo.OutDetailModel;  
  16. import cn.hncu.out.vo.OutMainModel;  
  17.   
  18. /** 
  19.  * 
  20.  * @author  __USER__ 
  21.  */  
  22. public class ListPanel extends javax.swing.JPanel {  
  23.     private JFrame mainFrame = null;  
  24.     private Map<OutMainModel, List<OutDetailModel>> map;  
  25.   
  26.     /** Creates new form ListPanel */  
  27.     public ListPanel(JFrame mainFrame) {  
  28.         this.mainFrame = mainFrame;  
  29.         this.setOpaque(false);  
  30.         initComponents();  
  31.         map = OutMainEbiFactory.getOutMainEbi().getAll();  
  32.         myInit();  
  33.     }  
  34.   
  35.     public ListPanel(JFrame mainFrame,  
  36.             Map<OutMainModel, List<OutDetailModel>> map) {  
  37.         this.mainFrame = mainFrame;  
  38.         this.setOpaque(false);  
  39.         this.map = map;  
  40.         initComponents();  
  41.         myInit();  
  42.     }  
  43.   
  44.     private void myInit() {  
  45.         jListOutMain.setListData(map.keySet().toArray());  
  46.     }  
  47.   
  48.     //GEN-BEGIN:initComponents  
  49.     // <editor-fold defaultstate="collapsed" desc="Generated Code">  
  50.     private void initComponents() {  
  51.   
  52.         jLabel1 = new javax.swing.JLabel();  
  53.         btnAdd = new javax.swing.JButton();  
  54.         jScrollPane1 = new javax.swing.JScrollPane();  
  55.         jListOutMain = new javax.swing.JList();  
  56.         jScrollPane2 = new javax.swing.JScrollPane();  
  57.         jListOutDetails = new javax.swing.JList();  
  58.         btnQuery = new javax.swing.JButton();  
  59.   
  60.         setLayout(null);  
  61.   
  62.         jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI"124));  
  63.         jLabel1.setForeground(new java.awt.Color(02550));  
  64.         jLabel1.setText("\u9500\u552e\u5217\u8868");  
  65.         add(jLabel1);  
  66.         jLabel1.setBounds(3603013090);  
  67.   
  68.         btnAdd.setText("\u6dfb\u52a0\u9500\u552e");  
  69.         btnAdd.addActionListener(new java.awt.event.ActionListener() {  
  70.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  71.                 btnAddActionPerformed(evt);  
  72.             }  
  73.         });  
  74.         add(btnAdd);  
  75.         btnAdd.setBounds(1604109350);  
  76.   
  77.         jListOutMain.setModel(new javax.swing.AbstractListModel() {  
  78.             String[] strings = { "" };  
  79.   
  80.             public int getSize() {  
  81.                 return strings.length;  
  82.             }  
  83.   
  84.             public Object getElementAt(int i) {  
  85.                 return strings[i];  
  86.             }  
  87.         });  
  88.         jListOutMain  
  89.                 .addListSelectionListener(new javax.swing.event.ListSelectionListener() {  
  90.                     public void valueChanged(  
  91.                             javax.swing.event.ListSelectionEvent evt) {  
  92.                         jListOutMainValueChanged(evt);  
  93.                     }  
  94.                 });  
  95.         jScrollPane1.setViewportView(jListOutMain);  
  96.   
  97.         add(jScrollPane1);  
  98.         jScrollPane1.setBounds(110140260240);  
  99.   
  100.         jListOutDetails.setModel(new javax.swing.AbstractListModel() {  
  101.             String[] strings = { "" };  
  102.   
  103.             public int getSize() {  
  104.                 return strings.length;  
  105.             }  
  106.   
  107.             public Object getElementAt(int i) {  
  108.                 return strings[i];  
  109.             }  
  110.         });  
  111.         jScrollPane2.setViewportView(jListOutDetails);  
  112.   
  113.         add(jScrollPane2);  
  114.         jScrollPane2.setBounds(460110250360);  
  115.   
  116.         btnQuery.setText("\u9500\u552e\u67e5\u8be2");  
  117.         btnQuery.addActionListener(new java.awt.event.ActionListener() {  
  118.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  119.                 btnQueryActionPerformed(evt);  
  120.             }  
  121.         });  
  122.         add(btnQuery);  
  123.         btnQuery.setBounds(3104109350);  
  124.     }// </editor-fold>  
  125.     //GEN-END:initComponents  
  126.   
  127.     private void btnQueryActionPerformed(java.awt.event.ActionEvent evt) {  
  128.         mainFrame.setContentPane(new QueryPanel(mainFrame));  
  129.         mainFrame.validate();  
  130.     }  
  131.   
  132.     private void jListOutMainValueChanged(  
  133.                 javax.swing.event.ListSelectionEvent evt) {  
  134.             OutMainModel outMain = (OutMainModel) jListOutMain.getSelectedValue();  
  135.             List<OutDetailModel> details = map.get(outMain);  
  136.             jListOutDetails.setListData(details.toArray());  
  137.     }  
  138.   
  139.     private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {  
  140.         mainFrame.setContentPane(new AddPanel(mainFrame));  
  141.         mainFrame.validate();  
  142.     }  
  143.   
  144.     //GEN-BEGIN:variables  
  145.     // Variables declaration - do not modify  
  146.     private javax.swing.JButton btnAdd;  
  147.     private javax.swing.JButton btnQuery;  
  148.     private javax.swing.JLabel jLabel1;  
  149.     private javax.swing.JList jListOutDetails;  
  150.     private javax.swing.JList jListOutMain;  
  151.     private javax.swing.JScrollPane jScrollPane1;  
  152.     private javax.swing.JScrollPane jScrollPane2;  
  153.     // End of variables declaration//GEN-END:variables  
  154.   
  155. }  
添加:

[java] view plain copy
 技术分享技术分享
  1. /* 
  2.  * AddPanel.java 
  3.  * 
  4.  * Created on __DATE__, __TIME__ 
  5.  */  
  6.   
  7. package cn.hncu.out.ui;  
  8.   
  9. import java.util.ArrayList;  
  10. import java.util.List;  
  11.   
  12. import javax.swing.JFrame;  
  13. import javax.swing.JOptionPane;  
  14. import javax.swing.JPanel;  
  15.   
  16. import cn.hncu.book.business.factory.BookEbiFactory;  
  17. import cn.hncu.book.vo.BookModel;  
  18. import cn.hncu.out.business.factory.OutMainEbiFactory;  
  19. import cn.hncu.out.vo.OutDetailModel;  
  20. import cn.hncu.out.vo.OutMainModel;  
  21. import cn.hncu.user.business.factory.UserEbiFactory;  
  22. import cn.hncu.user.vo.UserModel;  
  23.   
  24. /** 
  25.  * 
  26.  * @author  __USER__ 
  27.  */  
  28. public class AddPanel extends JPanel {  
  29.     private JFrame mainFrame = null;  
  30.     private List<OutDetailModel> details = new ArrayList<OutDetailModel>();  
  31.   
  32.     /** Creates new form AddPanel */  
  33.     public AddPanel(JFrame mainFrame) {  
  34.         this.setOpaque(false);  
  35.         this.mainFrame = mainFrame;  
  36.         initComponents();  
  37.         myInit();  
  38.     }  
  39.   
  40.     private void myInit() {  
  41.         List<BookModel> books = BookEbiFactory.getBookEbi().getAll();  
  42.         for (BookModel book : books) {  
  43.             combBook.addItem(book);  
  44.         }  
  45.   
  46.         List<UserModel> users = UserEbiFactory.getUserEbi().getAllOut();  
  47.         for (UserModel user : users) {  
  48.             combUser.addItem(user.getName());  
  49.         }  
  50.     }  
  51.   
  52.     /** This method is called from within the constructor to 
  53.      * initialize the form. 
  54.      * WARNING: Do NOT modify this code. The content of this method is 
  55.      * always regenerated by the Form Editor. 
  56.      */  
  57.     //GEN-BEGIN:initComponents  
  58.     // <editor-fold defaultstate="collapsed" desc="Generated Code">  
  59.     private void initComponents() {  
  60.   
  61.         jLabel1 = new javax.swing.JLabel();  
  62.         jLabel2 = new javax.swing.JLabel();  
  63.         combBook = new javax.swing.JComboBox();  
  64.         jLabel3 = new javax.swing.JLabel();  
  65.         tfdOutAmount = new javax.swing.JTextField();  
  66.         btnAddDetails = new javax.swing.JButton();  
  67.         jLabel4 = new javax.swing.JLabel();  
  68.         combUser = new javax.swing.JComboBox();  
  69.         jLabel5 = new javax.swing.JLabel();  
  70.         jScrollPane1 = new javax.swing.JScrollPane();  
  71.         outDetailList = new javax.swing.JList();  
  72.         btnAdd = new javax.swing.JButton();  
  73.         btnBack = new javax.swing.JButton();  
  74.   
  75.         setLayout(null);  
  76.   
  77.         jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI"124));  
  78.         jLabel1.setForeground(new java.awt.Color(5125551));  
  79.         jLabel1.setText("\u6dfb\u52a0\u8fdb\u8d27");  
  80.         add(jLabel1);  
  81.         jLabel1.setBounds(3601014090);  
  82.   
  83.         jLabel2.setForeground(new java.awt.Color(5125551));  
  84.         jLabel2.setText("\u56fe\u4e66\uff1a");  
  85.         add(jLabel2);  
  86.         jLabel2.setBounds(1501106040);  
  87.   
  88.         combBook.setModel(new javax.swing.DefaultComboBoxModel(  
  89.                 new String[] { "请选择..." }));  
  90.         combBook.addActionListener(new java.awt.event.ActionListener() {  
  91.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  92.                 combBookActionPerformed(evt);  
  93.             }  
  94.         });  
  95.         add(combBook);  
  96.         combBook.setBounds(21012016026);  
  97.   
  98.         jLabel3.setForeground(new java.awt.Color(5125551));  
  99.         jLabel3.setText("\u9500\u552e\u6570\u91cf\uff1a");  
  100.         add(jLabel3);  
  101.         jLabel3.setBounds(1201708040);  
  102.         add(tfdOutAmount);  
  103.         tfdOutAmount.setBounds(21018013026);  
  104.   
  105.         btnAddDetails.setText("\u6dfb\u52a0\u660e\u7ec6");  
  106.         btnAddDetails.addActionListener(new java.awt.event.ActionListener() {  
  107.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  108.                 btnAddDetailsActionPerformed(evt);  
  109.             }  
  110.         });  
  111.         add(btnAddDetails);  
  112.         btnAddDetails.setBounds(5301809330);  
  113.   
  114.         jLabel4.setForeground(new java.awt.Color(5125551));  
  115.         jLabel4.setText("\u9500\u552e\u4eba\uff1a");  
  116.         add(jLabel4);  
  117.         jLabel4.setBounds(4601107040);  
  118.   
  119.         combUser.setModel(new javax.swing.DefaultComboBoxModel(  
  120.                 new String[] { "请选择..." }));  
  121.         add(combUser);  
  122.         combUser.setBounds(53012013026);  
  123.   
  124.         jLabel5.setForeground(new java.awt.Color(5125551));  
  125.         jLabel5.setText("\u660e\u7ec6\u5217\u8868\uff1a");  
  126.         add(jLabel5);  
  127.         jLabel5.setBounds(1202209030);  
  128.   
  129.         outDetailList.setModel(new javax.swing.AbstractListModel() {  
  130.             String[] strings = { "" };  
  131.   
  132.             public int getSize() {  
  133.                 return strings.length;  
  134.             }  
  135.   
  136.             public Object getElementAt(int i) {  
  137.                 return strings[i];  
  138.             }  
  139.         });  
  140.         jScrollPane1.setViewportView(outDetailList);  
  141.   
  142.         add(jScrollPane1);  
  143.         jScrollPane1.setBounds(210230270200);  
  144.   
  145.         btnAdd.setText("\u6dfb\u52a0");  
  146.         btnAdd.addActionListener(new java.awt.event.ActionListener() {  
  147.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  148.                 btnAddActionPerformed(evt);  
  149.             }  
  150.         });  
  151.         add(btnAdd);  
  152.         btnAdd.setBounds(2804707040);  
  153.   
  154.         btnBack.setText("\u8fd4\u56de");  
  155.         btnBack.addActionListener(new java.awt.event.ActionListener() {  
  156.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  157.                 btnBackActionPerformed(evt);  
  158.             }  
  159.         });  
  160.         add(btnBack);  
  161.         btnBack.setBounds(4504707040);  
  162.     }// </editor-fold>  
  163.     //GEN-END:initComponents  
  164.   
  165.     private void combBookActionPerformed(java.awt.event.ActionEvent evt) {  
  166.         tfdOutAmount.setText(null);  
  167.     }  
  168.   
  169.     private void btnAddDetailsActionPerformed(java.awt.event.ActionEvent evt) {  
  170.         //收集参数  
  171.         BookModel book = (BookModel) combBook.getSelectedItem();  
  172.         String bookUuid = book.getUuid();  
  173.   
  174.         int sumNum = 0;  
  175.         try {  
  176.             sumNum = Integer.parseInt(tfdOutAmount.getText());  
  177.             if (sumNum < 0) {  
  178.                 throw new NumberFormatException();  
  179.             }  
  180.         } catch (NumberFormatException e) {  
  181.             JOptionPane.showMessageDialog(null"进货数量信息输入格式不正确");  
  182.         }  
  183.   
  184.         //组织参数  
  185.         OutDetailModel detail = new OutDetailModel();  
  186.         detail.setBookUuid(bookUuid);  
  187.         detail.setSumNum(sumNum);  
  188.         detail.setBookName(book.getName());  
  189.         details.add(detail);  
  190.         echoDetails();  
  191.     }  
  192.   
  193.     private void echoDetails() {  
  194.         String echoStrs[] = new String[details.size()];  
  195.         for (int i = 0; i < details.size(); i++) {  
  196.             OutDetailModel detail = details.get(i);  
  197.             String bookName = BookEbiFactory.getBookEbi().getSingle(  
  198.                     detail.getBookUuid()).getName();  
  199.             echoStrs[i] = "《" + bookName + "》," + detail.getSumNum() + "本";  
  200.         }  
  201.         outDetailList.setListData(echoStrs);  
  202.     }  
  203.   
  204.     private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {  
  205.         mainFrame.setContentPane(new ListPanel(mainFrame));  
  206.         mainFrame.validate();  
  207.     }  
  208.   
  209.     private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {  
  210.         //收集参数  
  211.         String outUserName = combUser.getSelectedItem().toString();  
  212.         String outUserUuid = UserEbiFactory.getUserEbi().getUserByName(  
  213.                 outUserName).getUuid();  
  214.   
  215.         //组织参数  
  216.         OutMainModel outMain = new OutMainModel();  
  217.         outMain.setOutUserId(outUserUuid);  
  218.         outMain.setOutUserName(outUserName);  
  219.   
  220.         //调用逻辑层  
  221.         OutMainEbiFactory.getOutMainEbi().create(outMain, details);  
  222.   
  223.         mainFrame.setContentPane(new ListPanel(mainFrame));  
  224.         mainFrame.validate();  
  225.     }  
  226.   
  227.     //GEN-BEGIN:variables  
  228.     // Variables declaration - do not modify  
  229.     private javax.swing.JButton btnAdd;  
  230.     private javax.swing.JButton btnAddDetails;  
  231.     private javax.swing.JButton btnBack;  
  232.     private javax.swing.JComboBox combBook;  
  233.     private javax.swing.JComboBox combUser;  
  234.     private javax.swing.JLabel jLabel1;  
  235.     private javax.swing.JLabel jLabel2;  
  236.     private javax.swing.JLabel jLabel3;  
  237.     private javax.swing.JLabel jLabel4;  
  238.     private javax.swing.JLabel jLabel5;  
  239.     private javax.swing.JScrollPane jScrollPane1;  
  240.     private javax.swing.JList outDetailList;  
  241.     private javax.swing.JTextField tfdOutAmount;  
  242.     // End of variables declaration//GEN-END:variables  
  243.   
  244. }  
查询:

[java] view plain copy
 技术分享技术分享
  1. /* 
  2.  * QueryPanel.java 
  3.  * 
  4.  * Created on __DATE__, __TIME__ 
  5.  */  
  6.   
  7. package cn.hncu.out.ui;  
  8.   
  9. import java.util.List;  
  10. import java.util.Map;  
  11.   
  12. import javax.swing.JFrame;  
  13. import javax.swing.JOptionPane;  
  14.   
  15. import cn.hncu.book.business.factory.BookEbiFactory;  
  16. import cn.hncu.book.vo.BookModel;  
  17. import cn.hncu.out.business.factory.OutMainEbiFactory;  
  18. import cn.hncu.out.vo.OutDetailModel;  
  19. import cn.hncu.out.vo.OutDetailQueryModel;  
  20. import cn.hncu.out.vo.OutMainModel;  
  21. import cn.hncu.out.vo.OutMainQueryModel;  
  22. import cn.hncu.user.business.factory.UserEbiFactory;  
  23. import cn.hncu.user.vo.UserModel;  
  24. import cn.hncu.utils.DateUtil;  
  25.   
  26. /** 
  27.  * 
  28.  * @author  __USER__ 
  29.  */  
  30. public class QueryPanel extends javax.swing.JPanel {  
  31.     private JFrame mainFrame = null;  
  32.   
  33.     /** Creates new form QueryPanel */  
  34.     public QueryPanel(JFrame mainFrame) {  
  35.         this.mainFrame = mainFrame;  
  36.         this.setOpaque(false);  
  37.         initComponents();  
  38.         myInit();  
  39.     }  
  40.   
  41.     private void myInit() {  
  42.         List<UserModel> userList = UserEbiFactory.getUserEbi().getAllOut();  
  43.         for (UserModel user : userList) {  
  44.             combOutUser.addItem(user);  
  45.         }  
  46.   
  47.         List<BookModel> books = BookEbiFactory.getBookEbi().getAll();  
  48.         for (BookModel book : books) {  
  49.             combBook.addItem(book);  
  50.         }  
  51.     }  
  52.   
  53.     /** This method is called from within the constructor to 
  54.      * initialize the form. 
  55.      * WARNING: Do NOT modify this code. The content of this method is 
  56.      * always regenerated by the Form Editor. 
  57.      */  
  58.     //GEN-BEGIN:initComponents  
  59.     // <editor-fold defaultstate="collapsed" desc="Generated Code">  
  60.     private void initComponents() {  
  61.   
  62.         jLabel1 = new javax.swing.JLabel();  
  63.         jLabel2 = new javax.swing.JLabel();  
  64.         jLabel3 = new javax.swing.JLabel();  
  65.         jLabel4 = new javax.swing.JLabel();  
  66.         jLabel5 = new javax.swing.JLabel();  
  67.         jLabel6 = new javax.swing.JLabel();  
  68.         jLabel7 = new javax.swing.JLabel();  
  69.         jLabel8 = new javax.swing.JLabel();  
  70.         jLabel9 = new javax.swing.JLabel();  
  71.         jLabel11 = new javax.swing.JLabel();  
  72.         jLabel12 = new javax.swing.JLabel();  
  73.         jLabel13 = new javax.swing.JLabel();  
  74.         tfdSumMoney2 = new javax.swing.JTextField();  
  75.         tfdUuid = new javax.swing.JTextField();  
  76.         tfdOutDetailUuid = new javax.swing.JTextField();  
  77.         tfdDate = new javax.swing.JTextField();  
  78.         tfdDate2 = new javax.swing.JTextField();  
  79.         tfdOutNum = new javax.swing.JTextField();  
  80.         tfdOutNum2 = new javax.swing.JTextField();  
  81.         tfdSumMoney = new javax.swing.JTextField();  
  82.         combBook = new javax.swing.JComboBox();  
  83.         combOutUser = new javax.swing.JComboBox();  
  84.         btnQuery = new javax.swing.JButton();  
  85.         btnBack = new javax.swing.JButton();  
  86.   
  87.         setLayout(null);  
  88.   
  89.         jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI"124));  
  90.         jLabel1.setForeground(new java.awt.Color(5125551));  
  91.         jLabel1.setText("\u9500\u552e\u67e5\u8be2");  
  92.         add(jLabel1);  
  93.         jLabel1.setBounds(3101012060);  
  94.   
  95.         jLabel2.setText("\u56fe\u4e66\uff1a");  
  96.         add(jLabel2);  
  97.         jLabel2.setBounds(4602506020);  
  98.   
  99.         jLabel3.setText("\u9500\u552e\u8d77\u59cb\u65f6\u95f4\uff1a");  
  100.         add(jLabel3);  
  101.         jLabel3.setBounds(9017012020);  
  102.   
  103.         jLabel4.setText("\u9500\u552e\u4eba\uff1a");  
  104.         add(jLabel4);  
  105.         jLabel4.setBounds(4501108020);  
  106.   
  107.         jLabel5.setText("\u9500\u552e\u5355\u7f16\u53f7\uff1a");  
  108.         add(jLabel5);  
  109.         jLabel5.setBounds(10011011020);  
  110.   
  111.         jLabel6.setText("\u9500\u552e\u6700\u5927\u91cf\uff1a");  
  112.         add(jLabel6);  
  113.         jLabel6.setBounds(41033010020);  
  114.   
  115.         jLabel7.setText("\u9500\u552e\u6700\u5c0f\u91cf\uff1a");  
  116.         add(jLabel7);  
  117.         jLabel7.setBounds(10033013020);  
  118.   
  119.         jLabel8.setText("\u9500\u552e\u660e\u7ec6\u7f16\u53f7\uff1a");  
  120.         add(jLabel8);  
  121.         jLabel8.setBounds(9025013020);  
  122.   
  123.         jLabel9.setText("\u9500\u552e\u7ed3\u675f\u65f6\u95f4\uff1a");  
  124.         add(jLabel9);  
  125.         jLabel9.setBounds(40017012020);  
  126.   
  127.         jLabel11.setText("\u683c\u5f0f\u5982\uff1a2016-04-01");  
  128.         add(jLabel11);  
  129.         jLabel11.setBounds(11020017020);  
  130.   
  131.         jLabel12.setText("\u9500\u552e\u603b\u4ef7\u6700\u5927\u503c\uff1a");  
  132.         add(jLabel12);  
  133.         jLabel12.setBounds(38040014020);  
  134.   
  135.         jLabel13.setText("\u9500\u552e\u603b\u4ef7\u6700\u5c0f\u503c\uff1a");  
  136.         add(jLabel13);  
  137.         jLabel13.setBounds(7040013020);  
  138.         add(tfdSumMoney2);  
  139.         tfdSumMoney2.setBounds(53040013030);  
  140.         add(tfdUuid);  
  141.         tfdUuid.setBounds(20011013030);  
  142.         add(tfdOutDetailUuid);  
  143.         tfdOutDetailUuid.setBounds(20025013030);  
  144.         add(tfdDate);  
  145.         tfdDate.setBounds(20017013030);  
  146.         add(tfdDate2);  
  147.         tfdDate2.setBounds(53017013030);  
  148.         add(tfdOutNum);  
  149.         tfdOutNum.setBounds(20033013030);  
  150.         add(tfdOutNum2);  
  151.         tfdOutNum2.setBounds(53033013030);  
  152.         add(tfdSumMoney);  
  153.         tfdSumMoney.setBounds(20040013030);  
  154.   
  155.         combBook.setModel(new javax.swing.DefaultComboBoxModel(  
  156.                 new String[] { "查询所有" }));  
  157.         add(combBook);  
  158.         combBook.setBounds(53025013026);  
  159.   
  160.         combOutUser.setModel(new javax.swing.DefaultComboBoxModel(  
  161.                 new String[] { "查询所有" }));  
  162.         add(combOutUser);  
  163.         combOutUser.setBounds(53011013026);  
  164.   
  165.         btnQuery.setFont(new java.awt.Font("Microsoft YaHei UI"118));  
  166.         btnQuery.setText("\u67e5\u8be2");  
  167.         btnQuery.addActionListener(new java.awt.event.ActionListener() {  
  168.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  169.                 btnQueryActionPerformed(evt);  
  170.             }  
  171.         });  
  172.         add(btnQuery);  
  173.         btnQuery.setBounds(2104608040);  
  174.   
  175.         btnBack.setFont(new java.awt.Font("Microsoft YaHei UI"118));  
  176.         btnBack.setText("\u8fd4\u56de");  
  177.         btnBack.addActionListener(new java.awt.event.ActionListener() {  
  178.             public void actionPerformed(java.awt.event.ActionEvent evt) {  
  179.                 btnBackActionPerformed(evt);  
  180.             }  
  181.         });  
  182.         add(btnBack);  
  183.         btnBack.setBounds(4204608040);  
  184.     }// </editor-fold>  
  185.     //GEN-END:initComponents  
  186.   
  187.     private void btnQueryActionPerformed(java.awt.event.ActionEvent evt) {  
  188.         //收集参数  
  189.         String outUuid = tfdUuid.getText();  
  190.         String outUserName = (String) combOutUser.getSelectedItem();  
  191.         String outUserUuid = null;  
  192.         if (combOutUser.getSelectedIndex() > 0) {  
  193.             outUserUuid = UserEbiFactory.getUserEbi().getUserByName(outUserName)  
  194.                     .getUuid();  
  195.         }  
  196.   
  197.         String txtOutDate = tfdDate.getText();  
  198.         long outDate = 0;  
  199.         if (txtOutDate != null && txtOutDate.trim().length() > 0) {  
  200.             txtOutDate += " 00:00:00";  
  201.             outDate = DateUtil.StringToLong(txtOutDate, "进货起始时间输入格式错误!");  
  202.             if (outDate == -1) {  
  203.                 return;  
  204.             }  
  205.         }  
  206.   
  207.         String txtOutDate2 = tfdDate2.getText();  
  208.         long outDate2 = 0;  
  209.         if (txtOutDate2 != null && txtOutDate2.trim().length() > 0) {  
  210.             txtOutDate2 += " 23:59:59";  
  211.             outDate2 = DateUtil.StringToLong(txtOutDate2, "进货结束时间输入格式错误!");  
  212.             if (outDate2 == -1) {  
  213.                 return;  
  214.             }  
  215.         }  
  216.   
  217.         String outDetailUuid = tfdOutDetailUuid.getText();  
  218.   
  219.         String bookUuid = null;  
  220.         if (combBook.getSelectedIndex() > 0) {  
  221.             String bookName = combBook.getSelectedItem().toString();  
  222.             bookUuid = BookEbiFactory.getBookEbi().getSingle(bookName)  
  223.                     .getUuid();  
  224.         }  
  225.   
  226.         int sumNum = 0;  
  227.         if (tfdOutNum.getText() != null  
  228.                 && tfdOutNum.getText().trim().length() > 0) {  
  229.             try {  
  230.                 sumNum = Integer.parseInt(tfdOutNum.getText());  
  231.                 if (sumNum < 0) {  
  232.                     throw new NumberFormatException();  
  233.                 }  
  234.             } catch (NumberFormatException e) {  
  235.                 JOptionPane.showMessageDialog(null"进货最小量格式输入错误!");  
  236.             }  
  237.         }  
  238.   
  239.         int sumNum2 = 0;  
  240.         if (tfdOutNum2.getText() != null  
  241.                 && tfdOutNum2.getText().trim().length() > 0) {  
  242.             try {  
  243.                 sumNum2 = Integer.parseInt(tfdOutNum2.getText());  
  244.                 if (sumNum2 < 0) {  
  245.                     throw new NumberFormatException();  
  246.                 }  
  247.             } catch (NumberFormatException e) {  
  248.                 JOptionPane.showMessageDialog(null"进货最大量格式输入错误!");  
  249.             }  
  250.         }  
  251.   
  252.         double sumMoney = 0;  
  253.         if (tfdSumMoney.getText() != null  
  254.                 && tfdSumMoney.getText().trim().length() > 0) {  
  255.             try {  
  256.                 sumMoney = Integer.parseInt(tfdSumMoney.getText());  
  257.                 if (sumMoney < 0) {  
  258.                     throw new NumberFormatException();  
  259.                 }  
  260.             } catch (NumberFormatException e) {  
  261.                 JOptionPane.showMessageDialog(null"进货最小量格式输入错误!");  
  262.             }  
  263.         }  
  264.   
  265.         double sumMoney2 = 0;  
  266.         if (tfdSumMoney2.getText() != null  
  267.                 && tfdSumMoney2.getText().trim().length() > 0) {  
  268.             try {  
  269.                 sumMoney2 = Integer.parseInt(tfdSumMoney2.getText());  
  270.                 if (sumMoney2 < 0) {  
  271.                     throw new NumberFormatException();  
  272.                 }  
  273.             } catch (NumberFormatException e) {  
  274.                 JOptionPane.showMessageDialog(null"进货最小量格式输入错误!");  
  275.             }  
  276.         }  
  277.   
  278.         //组织参数-------分别组织OutMainQueryModel和OutDetailQueryModel  
  279.         OutMainQueryModel imqm = new OutMainQueryModel();  
  280.         imqm.setOutDate(outDate);  
  281.         imqm.setOutDate2(outDate2);  
  282.         imqm.setOutUserId(outUserUuid);  
  283.         imqm.setOutUserName(outUserName);  
  284.         imqm.setUuid(outUuid);  
  285.   
  286.         OutDetailQueryModel idqm = new OutDetailQueryModel();  
  287.         idqm.setBookUuid(bookUuid);  
  288.         idqm.setUuid(outDetailUuid);  
  289.         idqm.setSumMoney(sumMoney);  
  290.         idqm.setSumMoney2(sumMoney2);  
  291.         idqm.setSumNum(sumNum);  
  292.         idqm.setSumNum2(sumNum2);  
  293.   
  294.         //调用逻辑层  
  295.         Map<OutMainModel, List<OutDetailModel>> map = OutMainEbiFactory  
  296.                 .getOutMainEbi().getByCondition(imqm, idqm);  
  297.   
  298.         //返回到结果页面  
  299.         mainFrame.setContentPane(new ListPanel(mainFrame, map));  
  300.         mainFrame.validate();  
  301.     }  
  302.   
  303.     private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {  
  304.         mainFrame.setContentPane(new ListPanel(mainFrame));  
  305.         mainFrame.validate();  
  306.     }  
  307.   
  308.     //GEN-BEGIN:variables  
  309.     // Variables declaration - do not modify  
  310.     private javax.swing.JButton btnBack;  
  311.     private javax.swing.JButton btnQuery;  
  312.     private javax.swing.JComboBox combBook;  
  313.     private javax.swing.JComboBox combOutUser;  
  314.     private javax.swing.JLabel jLabel1;  
  315.     private javax.swing.JLabel jLabel11;  
  316.     private javax.swing.JLabel jLabel12;  
  317.     private javax.swing.JLabel jLabel13;  
  318.     private javax.swing.JLabel jLabel2;  
  319.     private javax.swing.JLabel jLabel3;  
  320.     private javax.swing.JLabel jLabel4;  
  321.     private javax.swing.JLabel jLabel5;  
  322.     private javax.swing.JLabel jLabel6;  
  323.     private javax.swing.JLabel jLabel7;  
  324.     private javax.swing.JLabel jLabel8;  
  325.     private javax.swing.JLabel jLabel9;  
  326.     private javax.swing.JTextField tfdDate;  
  327.     private javax.swing.JTextField tfdDate2;  
  328.     private javax.swing.JTextField tfdOutDetailUuid;  
  329.     private javax.swing.JTextField tfdOutNum;  
  330.     private javax.swing.JTextField tfdOutNum2;  
  331.     private javax.swing.JTextField tfdSumMoney;  
  332.     private javax.swing.JTextField tfdSumMoney2;  
  333.     private javax.swing.JTextField tfdUuid;  
  334.     // End of variables declaration//GEN-END:variables  
  335.   
  336. }  



Java之------单机版书店管理系统(设计思想和设计模式系列六)销售模块

标签:

原文地址:http://blog.csdn.net/x121850182/article/details/51496635

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!