/** * 操作单据的时候修改它的引用次数根据操作的方式 * * @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; }