public void updateMain( TScIcitemEntity tScIcitem, List<TScItemPriceEntity> tScItemPriceList, List<TScItemPhotoEntity> tScItemPhotoList) { // 保存主表信息 this.saveOrUpdate(tScIcitem); // =================================================================================== // 获取参数 Object id0 = tScIcitem.getId(); Object id1 = tScIcitem.getId(); // =================================================================================== // 1.查询出数据库的明细数据-单位价格表 String hql0 = "from TScItemPriceEntity where 1 = 1 AND priceToIcItem.id = ? "; List<TScItemPriceEntity> tScItemPriceOldList = this.findHql(hql0, id0); // 2.筛选更新明细数据-单位价格表 for (TScItemPriceEntity oldE : tScItemPriceOldList) { boolean isUpdate = false; for (TScItemPriceEntity sendE : tScItemPriceList) { if (StringUtils.isNotEmpty(sendE.getUnitID())) { TScMeasureunitToIcItemEntity entity = this.get(TScMeasureunitToIcItemEntity.class, sendE.getUnitID()); // 持久化 entity.setId(sendE.getUnitID()); sendE.setMeasureunitToIcItemEntity(entity); } // 需要更新的明细数据-单位价格表 if (oldE.getId().equals(sendE.getId())) { try { // 计数单位 if (!oldE.getMeasureunitToIcItemEntity().getId().equals(sendE.getUnitID())) { TScCountEntity countEntity = new TScCountEntity(); countEntity.setType(Globals.COUNT_UPDATE_TYPE); countEntity.setOldId(oldE.getMeasureunitToIcItemEntity().getId()); // 原先的单位 countEntity.setNewId(sendE.getUnitID()); // 更改后的单位 tScMeasureunitService.updateMeasureunitCount(countEntity); } // if(sendE.getDefaultCG() == null){ // sendE.setDefaultCG(0); // } // if(sendE.getDefaultXS() == null){ // sendE.setDefaultXS(0); // } // if(sendE.getDefaultCK() ==null){ // sendE.setDefaultCK(0); // } // if(sendE.getDefaultSC() == null){ // sendE.setDefaultSC(0); // } // MyBeanUtils.copyBeanNotNull2Bean(sendE, oldE); MyBeanUtils.copyBean2Bean(oldE, sendE); oldE.setPriceToIcItem(tScIcitem); this.saveOrUpdate(oldE); } catch (Exception e) { e.printStackTrace(); throw new BusinessException(e.getMessage()); } isUpdate = true; break; } } if (!isUpdate) { // 计数单位 TScCountEntity countEntity = new TScCountEntity(); countEntity.setType(Globals.COUNT_DEL_TYPE); countEntity.setOldId(oldE.getMeasureunitToIcItemEntity().getId()); // 原先的单位 tScMeasureunitService.updateMeasureunitCount(countEntity); // 如果数据库存在的明细,前台没有传递过来则是删除-单位价格表 super.delete(oldE); } } // 3.持久化新增的数据-单位价格表 for (TScItemPriceEntity tScItemPrice : tScItemPriceList) { if (oConvertUtils.isEmpty(tScItemPrice.getId())) { // 计数单位 TScCountEntity countEntity = new TScCountEntity(); countEntity.setType(Globals.COUNT_ADD_TYPE); countEntity.setOldId(tScItemPrice.getUnitID()); // 原先的单位 tScMeasureunitService.updateMeasureunitCount(countEntity); if (StringUtils.isNotEmpty(tScItemPrice.getUnitID())) { TScMeasureunitToIcItemEntity entity = this.get(TScMeasureunitToIcItemEntity.class, tScItemPrice.getUnitID()); entity.setId(tScItemPrice.getUnitID()); tScItemPrice.setMeasureunitToIcItemEntity(entity); } // 外键设置 // tScItemPrice.setItemID(tScIcitem.getId()); tScItemPrice.setPriceToIcItem(tScIcitem); this.save(tScItemPrice); } } // =================================================================================== // 1.查询出数据库的明细数据-商品图片表 String hql1 = "from TScItemPhotoEntity where 1 = 1 AND iTEMID = ? "; List<TScItemPhotoEntity> tScItemPhotoOldList = this.findHql(hql1, id1); // 2.筛选更新明细数据-商品图片表 for (TScItemPhotoEntity oldE : tScItemPhotoOldList) { boolean isUpdate = false; for (TScItemPhotoEntity sendE : tScItemPhotoList) { // 需要更新的明细数据-商品图片表 if (oldE.getId().equals(sendE.getId())) { try { MyBeanUtils.copyBeanNotNull2Bean(sendE, oldE); this.saveOrUpdate(oldE); } catch (Exception e) { e.printStackTrace(); throw new BusinessException(e.getMessage()); } isUpdate = true; break; } } if (!isUpdate) { // 如果数据库存在的明细,前台没有传递过来则是删除-商品图片表 super.delete(oldE); } } // 3.持久化新增的数据-商品图片表 for (TScItemPhotoEntity tScItemPhoto : tScItemPhotoList) { if (oConvertUtils.isEmpty(tScItemPhoto.getId())) { // 外键设置 tScItemPhoto.setItemID(tScIcitem.getId()); this.save(tScItemPhoto); } } // 执行更新操作配置的sql增强 this.doUpdateSql(tScIcitem); }
/** * 操作单据的时候修改它的引用次数根据操作的方式 * * @param countEntity * @return */ @Override public boolean updateIcitemCount(TScCountEntity countEntity) { // 判断操作的类型 1是新增,2是编辑,3是删除 try { if (Globals.COUNT_ADD_TYPE.equals(countEntity.getType())) { // oldId是供应商的id,对引用次数进行累加 if (StringUtils.isEmpty(countEntity.getOldId())) { return false; } TScIcitemEntity icitemEntity = this.get(TScIcitemEntity.class, countEntity.getOldId()); if (icitemEntity == null) { return false; } if (icitemEntity.getCount() == null || icitemEntity.getCount() == 0) { icitemEntity.setCount(1); } else { icitemEntity.setCount(icitemEntity.getCount() + 1); } super.saveOrUpdate(icitemEntity); } else if (Globals.COUNT_UPDATE_TYPE.equals(countEntity.getType())) { // 单据引用oldId是旧数据,newId是新数据,对于引用次数进行操作,旧数据-1,修改后的数据+1 if (StringUtils.isEmpty(countEntity.getOldId()) || StringUtils.isEmpty(countEntity.getNewId())) { return false; } TScIcitemEntity icitemOldEntity = this.get(TScIcitemEntity.class, countEntity.getOldId()); TScIcitemEntity icitemNewEntity = this.get(TScIcitemEntity.class, countEntity.getNewId()); if (icitemOldEntity == null || icitemNewEntity == null) { return false; } if (icitemOldEntity.getCount() == null || icitemOldEntity.getCount() == 0) { icitemOldEntity.setCount(0); } else { icitemOldEntity.setCount(icitemOldEntity.getCount() - 1); } if (icitemNewEntity.getCount() == null || icitemNewEntity.getCount() == 0) { icitemNewEntity.setCount(1); } else { icitemNewEntity.setCount(icitemNewEntity.getCount() + 1); } super.saveOrUpdate(icitemOldEntity); super.saveOrUpdate(icitemNewEntity); } else if (Globals.COUNT_DEL_TYPE.equals(countEntity.getType())) { if (StringUtils.isEmpty(countEntity.getOldId())) { return false; } TScIcitemEntity icitemOldEntity = this.get(TScIcitemEntity.class, countEntity.getOldId()); if (icitemOldEntity == null) { return false; } if (icitemOldEntity.getCount() == null || icitemOldEntity.getCount() == 0) { icitemOldEntity.setCount(0); } else { icitemOldEntity.setCount(icitemOldEntity.getCount() - 1); } super.saveOrUpdate(icitemOldEntity); } } catch (Exception e) { e.printStackTrace(); return false; } return true; }