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