/** 添加 */
  public void onAdd() {
    try {
      // biRedPointsShowAdd.setGoodsId(gmGoodsInfo.getGoodsId());
      if (preSubmitCheck(biRedPointsShowAdd).equals(false)) {
        return;
      }

      biRedPointsShowAdd.setGoodsId(gmGoodsInfoShowAdd.getGoodsId());
      biRedPointsShowAdd.setCrtDate(ToolUtil.getStrLastUpdDate()); // 创建日期YYYY-MM-DD
      biRedPointsShowAdd.setCrtTime(ToolUtil.getStrLastUpdTime()); // 创建时间HH:mm:ss
      biRedPointsShowAdd.setCrtOperId(operManager.getOperInfo().getOperId()); // 创建者ID
      biRedPointsShowAdd.setOrigin(EnuOrigin.ORIGIN_0.getCode()); // 数据来源:0_系统录入;1_系统外导入

      impBpPointsDtl(biRedPointsShowAdd, null, "add"); // 导入BpPointsDtl表
      updBpCusts(biRedPointsShowAdd.getCustNo()); // 更新BpCusts表的累计减少积分数、累计积分数
      impGmGoodsDtl(biRedPointsShowAdd, "add"); // 导入GmGoodsDtl表
      updateGmGoodsInfoStorQty(
          biRedPointsShowAdd.getGoodsId(), biRedPointsShowAdd.getGoodsQty()); // 更新GmGoodsInfo表在库数量
      MessageUtil.addInfo("添加成功!");
      gmGoodsInfoShowAdd = new GmGoodsInfo();
      biRedPointsShowAdd = new BpRedPointsShow();
      onQryForAdd();
    } catch (Exception e) {
      logger.error("添加失败!", e);
      MessageUtil.addError("添加失败!" + e.getMessage());
    }
  }
  private Boolean preSubmitCheck(BpRedPointsShow bpRedPointsShowPara) {
    if (ToolUtil.getStrIgnoreNull(gmGoodsInfoShowAdd.getGoodsId()).length() == 0) {
      MessageUtil.addError("物品号不能为空,请输入物品号!");
      return false;
    }

    List<BpCusts> gmBpCustsTmp = bpCustsService.getBpCustListByID(bpRedPointsShowPara.getCustNo());
    if (gmBpCustsTmp == null || gmBpCustsTmp.size() <= 0) {
      MessageUtil.addError("该客户(" + bpRedPointsShowPara.getCustNo() + ")不存在,请确认您输入的客户号!");
      return false;
    }
    List<GmGoodsInfo> gmGoodsInfoListTmp =
        gmGoodsInfoService.getGmGoodsInfoListByID(gmGoodsInfoShowAdd.getGoodsId());
    if (gmGoodsInfoListTmp == null || gmGoodsInfoListTmp.size() <= 0) {
      MessageUtil.addError("该物品(" + gmGoodsInfoShowAdd.getGoodsId() + ")不存在,请确认您输入的物品号!");
      return false;
    }
    BigDecimal bdCumuPoints = ToolUtil.getBdIgnoreNull(gmBpCustsTmp.get(0).getCumuPoints());
    if (bdCumuPoints.compareTo(ToolUtil.getBdIgnoreNull(bpRedPointsShowPara.getPoints())) < 0) {
      MessageUtil.addError("该客户剩余积分(" + bdCumuPoints + ")不足本次捐赠,请确认您本次捐赠操作是否正确?");
      return false;
    }
    Long storQty = ToolUtil.getLongIgnoreNull(gmGoodsInfoListTmp.get(0).getStorQty());
    if (storQty < bpRedPointsShowPara.getGoodsQty()) {
      MessageUtil.addError("该物品库存量(" + storQty + ")不足本次捐赠,请确认您本次捐赠操作是否正确?");
      return false;
    }
    return true;
  }
 // 自动更新减少积分
 public void blurAction() {
   if (biRedPointsShowAdd.getGoodsQty() == null) {
     return;
   }
   if (biRedPointsShowAdd.getGoodsQty() != null && biRedPointsShowAdd.getGoodsQty() < 0) {
     MessageUtil.addError("兑换数量(" + biRedPointsShowAdd.getGoodsQty() + ")请输入正数!");
     return;
   }
   if (gmGoodsInfoShowAdd.getGoodsId() != null) {
     BigDecimal bigDecimal;
     List<GmGoodsInfo> gmGoodsInfoListTmp =
         gmGoodsInfoService.getGmGoodsInfoListByID(gmGoodsInfoShowAdd.getGoodsId());
     if (gmGoodsInfoListTmp == null || gmGoodsInfoListTmp.size() <= 0) {
       MessageUtil.addError("该物品(" + gmGoodsInfoShowAdd.getGoodsId() + ")不存在,请确认您输入的物品号!");
       return;
     }
     if (gmGoodsInfoListTmp.get(0).getPoints() == null
         || biRedPointsShowAdd.getGoodsQty() == null) {
       bigDecimal = null;
     } else {
       bigDecimal =
           gmGoodsInfoListTmp
               .get(0)
               .getPoints()
               .multiply(new BigDecimal(biRedPointsShowAdd.getGoodsQty()));
     }
     biRedPointsShowAdd.setPoints(bigDecimal);
   }
 }
  /**
   * 导入GmGoodsDtl表
   *
   * @param bpRedPointsShowPara
   * @param action
   */
  private void impGmGoodsDtl(BpRedPointsShow bpRedPointsShowPara, String action) {
    try {
      GmGoodsDtl gmGoodsDtlTmp = new GmGoodsDtl();
      gmGoodsDtlTmp.setTxndate(bpRedPointsShowPara.getTxndate()); // 发生日期:入库/出库日期YYYY-MM-DD
      gmGoodsDtlTmp.setGoodsId(bpRedPointsShowPara.getGoodsId()); // 物品ID
      gmGoodsDtlTmp.setInOutType(EnuInOutType.IN_OUT_TYPE_1.getCode()); // 出入库标志:0_入库;1_出库
      gmGoodsDtlTmp.setQty(-(bpRedPointsShowPara.getGoodsQty())); // 数量:入库为正,出库为负
      gmGoodsDtlTmp.setCrtDate(ToolUtil.getStrLastUpdDate()); // 创建日期YYYY-MM-DD
      gmGoodsDtlTmp.setCrtTime(ToolUtil.getStrLastUpdTime()); // 创建时间HH:mm:ss
      gmGoodsDtlTmp.setCrtOperId(operManager.getOperInfo().getOperId()); // 创建者ID
      gmGoodsDtlTmp.setRecVer(0L); // 记录版本号:初始记录,版本号为0
      if ("imp".equals(action)) { // 导入
        gmGoodsDtlTmp.setOrigin(EnuOrigin.ORIGIN_1.getCode()); // 数据来源:0_系统录入;1_系统外导入
      } else { // 添加
        gmGoodsDtlTmp.setOrigin(EnuOrigin.ORIGIN_0.getCode()); // 数据来源:0_系统录入;1_系统外导入
      }

      gmGoodsDtlTmp.setTxnsn(platformService.obtainSeqNo("POINTS_DTL_SEQNO")); // 交易流水号
      gmGoodsDtlTmp.setBillNo(bpRedPointsShowPara.getBillNo());
      bpPointsDtlService.insertSelective(gmGoodsDtlTmp);
    } catch (Exception e) {
      logger.error("GmGoodsDtl导入失败!", e);
    }
  }