Пример #1
0
 /**
  * 批量变动
  *
  * @return
  */
 public void operateChanageBatch(
     String changeway,
     String changereason,
     String changeValue,
     String bodyIds,
     String headId,
     String isProportion) {
   if (bodyIds != null && bodyIds.length() > 0) {
     if (bodyIds.startsWith(",")) {
       bodyIds = bodyIds.substring(1);
     }
     String ids[] = bodyIds.split(",");
     this.deleteRecord(ids);
     for (int i = 0; i < ids.length; i++) {
       LcCardtemp body = this.findLcCardtempById(ids[i]);
       String cardId = body.getCardinfoid();
       Cardinfo card = this.findCardinfoByCardId(cardId);
       Individualtree tree = this.getIndividualtreeById(changeway);
       String nodevalue = "";
       if (tree != null) {
         nodevalue = tree.getNodevalue();
       }
       Recordhistory record = new Recordhistory();
       if ("1".equals(nodevalue.trim())) { // 原币原值增加
         if ("true".equals(isProportion)) {
           double d = card.getYbyz() * Double.valueOf(changeValue) / 100.0 + card.getYbyz();
           body.setYbyz(d);
         } else {
           body.setYbyz(card.getYbyz() + Double.parseDouble(changeValue));
         }
         body.setJvalue(body.getYbyz() - card.getLjzj());
         body.setJevalue(body.getYbyz() - card.getLjzj());
         record.setName("ybyz");
         record.setBefore(String.valueOf(card.getYbyz()));
       } else if ("2".equals(nodevalue.trim())) { // 原币原值减少
         if ("true".equals(isProportion)) {
           double d = card.getYbyz() - card.getYbyz() * Double.valueOf(changeValue) / 100.0;
           body.setYbyz(d);
         } else {
           body.setYbyz(card.getYbyz() - Double.parseDouble(changeValue));
         }
         body.setJvalue(body.getYbyz() - card.getLjzj());
         body.setJevalue(body.getYbyz() - card.getLjzj());
         record.setName("ybyz");
         record.setBefore(String.valueOf(card.getYbyz()));
       } else if ("3".equals(nodevalue.trim())) { // 管理部门
         body.setGlbm(changeValue);
         record.setName("glbm");
         record.setBefore(String.valueOf(card.getGlbm()));
       } else if ("4".equals(nodevalue.trim())) { // 使用部门
         body.setUsepartment(changeValue);
         record.setName("usepartment");
         record.setBefore(String.valueOf(card.getUsepartment()));
       } else if ("5".equals(nodevalue.trim())) { // 使用状况
         body.setUsestatus(changeValue);
         record.setName("usestatus");
         record.setBefore(String.valueOf(card.getUsestatus()));
       } else if ("6".equals(nodevalue.trim())) { // 折旧类型
         body.setZjtype(changeValue);
         record.setName("zjtype");
         record.setBefore(String.valueOf(card.getZjtype()));
       } else if ("7".equals(nodevalue.trim())) { // 使用月限
         Long yueTotal = Long.parseLong(changeValue);
         Long nian = yueTotal / 12l;
         Long yue = yueTotal % 12l;
         body.setSynx(nian);
         body.setSyyx(yue);
         record.setName("syyx");
         record.setBefore(String.valueOf(card.getSyyx() + card.getSynx() * 12));
       } else if ("9".equals(nodevalue.trim())) { // 净残值
         double bianhua = Double.parseDouble(changeValue);
         body.setJcz(bianhua);
         body.setJczl(bianhua / card.getYbyz() * 100); // 净残值率
         record.setName("jcz");
         record.setBefore(String.valueOf(card.getJcz()));
       } else if ("10".equals(nodevalue.trim())) { // 累计折旧
         body.setLjzj(Double.parseDouble(changeValue));
         body.setJvalue(card.getYbyz() - Double.parseDouble(changeValue));
         body.setJevalue(card.getYbyz() - Double.parseDouble(changeValue));
         record.setName("ljzj");
         record.setBefore(String.valueOf(card.getLjzj()));
       } else if ("11".equals(nodevalue.trim())) { // 卡片类别,
         body.setTypecode(changeValue);
         body.setChildid(changeValue);
         record.setName("typecode");
         record.setBefore(String.valueOf(card.getTypecode()));
       } else if ("12".equals(nodevalue.trim())) { // 增加方式
         body.setAddtype(changeValue);
         record.setName("addtype");
         record.setBefore(String.valueOf(card.getAddtype()));
       } else if ("13".equals(nodevalue.trim())) { // 折旧承担部门
         body.setZjcdbm(changeValue);
         record.setName("zjcdbm");
         record.setBefore(String.valueOf(card.getZjcdbm()));
       } else if ("14".equals(nodevalue.trim())) { // 使用人
         body.setUsername(changeValue);
         record.setName("username");
         record.setBefore(String.valueOf(card.getUsername()));
       }
       body.setChangeway(nodevalue);
       body.setChangereason(changereason);
       this.update(body);
       record.setPkId(headId.toString());
       record.setChangetype("卡片变动");
       record.setZcType("card");
       record.setChangeinfoid(cardId);
       record.setAfter(changeValue);
       record.setZcId(String.valueOf(body.getId()));
       record.setChangedate(new Date());
       IUser user = UserThreadLocal.get();
       record.setChangeperson(user.getUsername());
       record.setChangepersonId(user.getUserTidChar());
       record.setChangeinfoid(String.valueOf(card.getId()));
       // 流程
       CaShead head = this.findCaSheadById(headId);
       record.setWfCode(head.getWfconfigCode());
       // 设置审批状态为0:未审批
       record.setZhuangTai("0");
       record.setBiaoming("lccardtemp");
       this.saveRecord(record);
     }
   }
 }
Пример #2
0
  /**
   * /根据所选的卡片合并,ids为合并的卡片id数组,baseCardId为基础卡片,headId为表单id,ybyz,ljzj,jvalue,jevalue
   *
   * <p>拆分后新卡片 拆分前表体 CARDCODE 空 为cardinfo表的cardCode CARDINFOID 空 表体里为cardinfo的id BOXID 表体里为该表体的id
   * 表体里为新卡片表体的id ID YBYZ(原币原值) LJZJ(累计折旧)JVALUE (净值) JEVALUE(净额)CARDINFOID BOXID LRRQ 10056642
   * 57816974.41 15287963.29 42529011.12 42529011.12 10056642 2010/11/21 这个是合并后的卡片 10056641
   * 57269974.41 15108477.09 42161497.32 42161497.32 125362 10056642 下面3个合并前卡片 10056640 400000
   * 113335.09 286664.91 286664.91 125337 10056642 10056639 147000 66151.11 80848.89 80848.89 124335
   * 10056642 2010/3/24
   *
   * @param ids 这个未用到
   * @param baseCardId
   * @param headId
   */
  public boolean mergeBody(String[] ids, String baseCardId, String headId) {

    // 先查出已合并的卡片,然后删除
    List list1 = this.findLcCardtempsBySheadId(headId, "false");
    if (list1 != null && list1.size() > 0) {
      for (int i = 0; i < list1.size(); i++) {
        LcCardtemp temp = new LcCardtemp();
        temp = (LcCardtemp) list1.get(i);
        this.delete(temp);
      }
    }
    // 根据ids在Cardinfo表中查询出要合并的卡片
    List<LcCardtemp> list = this.findLcCardtempsBySheadId(headId);
    boolean tongyileixingkapian = this.compareZcTypeByHeadId(list);
    if (tongyileixingkapian) {
      // 合并后的卡片
      LcCardtemp newLcCardtemp = new LcCardtemp();
      Double ybyz = new Double(0);
      Double jvalue = new Double(0);
      Double jevalue = new Double(0);
      Double ljzj = new Double(0);
      Double jzzb = new Double(0);
      String oldCode = null;
      // 把Cardinfo对象转化为LcCardtemp对象
      for (int i = 0; i < list.size(); i++) {
        LcCardtemp body = list.get(i);
        if (String.valueOf(body.getId()).equals(baseCardId)) {
          try {
            BeanUtils.copyProperties(newLcCardtemp, body);
          } catch (IllegalAccessException e1) {
            e1.printStackTrace();
          } catch (InvocationTargetException e1) {
            e1.printStackTrace();
          }
          newLcCardtemp.setCardcode(null);
          newLcCardtemp.setOldcode(body.getCardcode());
          // 设置录入日期为当前日期
          Date date = new Date();
          SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
          String dateStr = sf.format(date);
          Date formatDate = null;
          try {
            formatDate = sf.parse(dateStr);
          } catch (ParseException e) {
            e.printStackTrace();
          }
          newLcCardtemp.setLrrq(formatDate);
          // 设置卡片的增加方式为合并增加0113
          newLcCardtemp.setAddtype("0113");
        } else {
          // 设置卡片状态为退役
          body.setState("03");
          // 设置卡片的减少方式为0212合并减少
          body.setChangeway("0212");
          if (body.getCardcode() != null) {
            this.update(body);
          }
        }
        // 原币原值,累计折旧,净值,净额,信息合并前卡片进行累加
        ybyz += body.getYbyz();
        ljzj += body.getLjzj();
        jvalue += body.getJvalue();
        jevalue += body.getJevalue();
        jzzb += body.getJzzb();
      }
      newLcCardtemp.setYbyz(ybyz);
      newLcCardtemp.setLjzj(ljzj);
      newLcCardtemp.setJvalue(jvalue);
      newLcCardtemp.setJevalue(jevalue);
      newLcCardtemp.setJzzb(jzzb);
      newLcCardtemp.setState("02");
      String newBodyId = this.saveBody(newLcCardtemp);
      //			LcCardtemp newBody = this.findLcCardtempById(newBodyId);
      newLcCardtemp.setBoxid(newBodyId);
      newLcCardtemp.setCardinfoid(newBodyId);
      this.update(newLcCardtemp);
      //			for(int i = 0;i<list.size();i++){
      //				LcCardtemp body = list.get(i);
      //				body.setBoxid(newBodyId);
      //				this.update(body);
      //			}
    }
    return tongyileixingkapian;
  }