操作两张表得到第三张表(分表有对应的实体)

 

public List<CpmlFxbPz> findByYearAndMonth(Integer year,Integer month){
Criteria criteria = cpmlFxbPzDao.createCriteria();
criteria.add(Restrictions.eq("year", year));
criteria.add(Restrictions.eq("month", month));
List<CpmlFxbPz> list = cpmlFxbPzDao.findByCriteria(criteria);
return list;
}


public void saveOrUpdate(Tabledata tabledata) throws Exception {
Integer year = tabledata.getYear();
Integer month = tabledata.getMonth();
List<YycbPz> yycbPzList = tabledata.getYycbPzList();//营业成本
List<YysrPz> yysrPzList = tabledata.getYysrPzList();//营业收入
List<CpmlFxbPz> cpmlFxbPzList = tabledata.getCpmlFxbPzList();//毛利分析表,毛利=营业收入-营业成本
if(!cpmlFxbPzList.isEmpty()){
for (CpmlFxbPz cpmlFxbPz : cpmlFxbPzList) {
if(cpmlFxbPz.getIsUpload()==null||!cpmlFxbPz.getIsUpload()){
cpmlFxbPzDao.delete(cpmlFxbPz);
}
}
}
Map<String,Object> map = new HashMap<String,Object>();
for (YycbPz yycbPz : yycbPzList) {                       //选一张表为主,将字段存在map中
String cppz=yycbPz.getCppz();
Double yycb=yycbPz.getValue();
map.put(cppz, yycb);
}

for (YysrPz yysrPz : yysrPzList) {              //再将map对象和list对象进行操作。
String cppz=yysrPz.getCppz();
Double yysr=yysrPz.getValue();
Double cpml=0.0;
Double yycb=0.0;
if(map.get(cppz)!=null){
yycb=(Double) map.get(cppz);
}
cpml=yysr-yycb;
map.put(cppz, cpml);
}
ArrayList<CpmlFxbPz> list = new ArrayList<CpmlFxbPz>();
for (String cppz : map.keySet()) {
Double cpml = (Double) map.get(cppz);
CpmlFxbPz cpmlfxbPz = new CpmlFxbPz();
cpmlfxbPz.setCpml(cpml);
cpmlfxbPz.setCppz(cppz);
cpmlfxbPz.setYear(year);
cpmlfxbPz.setMonth(month);
cpmlfxbPz.setVersion(100);
cpmlfxbPz.setIsUpload(false);
cpmlfxbPz.setCreateDate(new Date());
cpmlfxbPz.setTabledata(tabledata);
cpmlFxbPzDao.saveOrUpdate(cpmlfxbPz);
list.add(cpmlfxbPz);
}
tabledata.setCpmlFxbPzList(list);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值