eas_批次更新組織長編碼,長名稱

凉了记忆發表於2024-04-09
   protected void rebuildOrgStructureDisplayName(Context ctx) throws BOSException {
/*  555 */     Connection conn = null;
/*  556 */     Statement stmt = null;
/*  557 */     PreparedStatement pstmt = null;
/*  558 */     ResultSet rs = null;
/*      */ 
/*  560 */     List elemList = new ArrayList();
/*  561 */     HashMap map = new HashMap();
/*      */ 
/*  563 */     String selectSql = new StringBuffer().append("SELECT struc.FID, struc.FParentID, unit.FNumber, unit.FName_L1, unit.FName_L2, unit.FName_L3 ")
                            .append("FROM T_ORG_Structure struc INNER JOIN T_ORG_BaseUnit unit ON struc.FUnitID = unit.FID ")
                            .append("ORDER BY struc.FLongNumber, struc.FID").toString();
/*      */
/*      */
/*      */ 
/*  567 */     String updateSql = "UPDATE T_ORG_Structure SET FLongNumber = ?, FDisplayName_L1 = ?, FDisplayName_L2 = ?, FDisplayName_L3 = ? WHERE FID = ?";
/*      */     try
/*      */     {
/*  570 */       conn = getConnection(ctx);
/*  571 */       stmt = conn.createStatement();
/*  572 */       rs = stmt.executeQuery(selectSql);
/*      */ 
/*  574 */       while (rs.next()) {
/*  575 */         String id = rs.getString(1);
/*  576 */         String parentId = rs.getString(2);
/*  577 */         String number = rs.getString(3);
/*  578 */         String name_l1 = rs.getString(4);
/*  579 */         String name_l2 = rs.getString(5);
/*  580 */         String name_l3 = rs.getString(6);
/*      */ 
/*  582 */         ListElement elem = new ListElement(id, parentId, number, name_l1, name_l2, name_l3);
/*  583 */         elemList.add(elem);
/*      */       }
/*      */     } catch (Exception e) {
/*      */     }
/*      */     finally {
/*  588 */       SQLUtils.cleanup(rs, stmt, conn);
/*      */     }
/*      */     try
/*      */     {
/*  592 */       conn = getConnection(ctx);
/*  593 */       pstmt = conn.prepareStatement(updateSql);
/*      */ 
/*  595 */       for (int i = 0; i < elemList.size(); ++i) {
/*  596 */         ListElement elem = (ListElement)elemList.get(i);
/*  597 */         String id = elem.id;
/*  598 */         String parentId = elem.parentId;
/*  599 */         String number = elem.number;
/*  600 */         String name_l1 = elem.name_l1;
/*  601 */         String name_l2 = elem.name_l2;
/*  602 */         String name_l3 = elem.name_l3;
/*      */ 
/*  604 */         if (parentId != null) {
/*  605 */           DisplayName dis = (DisplayName)map.get(parentId);
/*      */ 
/*  607 */           if (dis == null) {
/*  608 */             StringBuffer errerInfor = new StringBuffer();
/*  609 */             errerInfor.append("---***_rebuildOrgStructureDisplayName***---\n").append("id = ").append(id).append("\n").append("parentId = ").append(parentId).append("\n").append("number = ").append(number).append("\n");
/*      */
/*      */
/*      */ 
/*  613 */             continue;
/*      */           }
/*      */ 
/*  616 */           if ((dis.longNumber == null) || (number == null))
/*  617 */             number = null;
/*      */           else {
/*  619 */             number = dis.longNumber + "!" + number;
/*      */           }
/*  621 */           if ((dis.displayName_l1 == null) || (name_l1 == null))
/*  622 */             name_l1 = null;
/*      */           else {
/*  624 */             name_l1 = dis.displayName_l1 + "_" + name_l1;
/*      */           }
/*  626 */           if ((dis.displayName_l2 == null) || (name_l2 == null))
/*  627 */             name_l2 = null;
/*      */           else {
/*  629 */             name_l2 = dis.displayName_l2 + "_" + name_l2;
/*      */           }
/*  631 */           if ((dis.displayName_l3 == null) || (name_l3 == null))
/*  632 */             name_l3 = null;
/*      */           else {
/*  634 */             name_l3 = dis.displayName_l3 + "_" + name_l3;
/*      */
/*      */
/*      */
/*      */
/*      */
/*      */           }
/*      */ 
/*      */         }
/*      */ 
/*  644 */         map.put(id, new DisplayName(number, name_l1, name_l2, name_l3));
/*  645 */         pstmt.setString(1, number);
/*  646 */         pstmt.setString(2, name_l1);
/*  647 */         pstmt.setString(3, name_l2);
/*  648 */         pstmt.setString(4, name_l3);
/*  649 */         pstmt.setString(5, id);
/*      */ 
/*  651 */         pstmt.addBatch();
/*      */       }
/*  653 */       pstmt.executeBatch();
/*      */     }
/*      */     catch (Exception e) {
/*  656 */       if (e.getCause() instanceof SQLException);
/*      */
/*      */
/*  659 */       throw new BOSException(e);
/*      */     } finally {
/*  661 */       SQLUtils.cleanup(pstmt, conn);
/*      */     }
/*      */   }

/*      */   private class ListElement
/*      */   {
/*  666 */     String id = null;
/*  667 */     String parentId = null;
/*  668 */     String number = null;
/*  669 */     String name_l1 = null;
/*  670 */     String name_l2 = null;
/*  671 */     String name_l3 = null;
/*      */
/*  673 */     String unitId = null;
/*  674 */     boolean isCu = false;
/*      */
/*  676 */     String longNumber = null;
/*      */
/*      */     public ListElement(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5, String paramString6)
/*      */     {
/*  680 */       this.id = paramString1;
/*  681 */       this.parentId = paramString2;
/*  682 */       this.number = paramString3;
/*  683 */       this.name_l1 = name_l1;
/*  684 */       this.name_l2 = paramString5;
/*  685 */       this.name_l3 = paramString6;
/*      */     }
/*      */
/*      */
/*      */     public ListElement(String paramString1, String paramString2, String paramString3, boolean paramBoolean)
/*      */     {
/*  691 */       this.id = paramString1;
/*  692 */       this.parentId = paramString2;
/*  693 */       this.unitId = unitId;
/*  694 */       this.isCu = paramBoolean;
/*      */     }
/*      */
/*      */     public ListElement(String paramString1, String paramString2, String paramString3, String paramString4)
/*      */     {
/*  699 */       this.id = paramString1;
/*  700 */       this.longNumber = paramString2;
/*  701 */       this.number = number;
/*  702 */       this.parentId = paramString4;
/*      */     }
/*      */   }
/*      */
/*      */   private class DisplayName
/*      */   {
/*  708 */     String longNumber = null;
/*  709 */     String displayName_l1 = null;
/*  710 */     String displayName_l2 = null;
/*  711 */     String displayName_l3 = null;
/*      */
/*      */     DisplayName(String paramString1, String paramString2, String paramString3, String paramString4) {
/*  714 */       this.longNumber = paramString1;
/*  715 */       this.displayName_l1 = paramString2;
/*  716 */       this.displayName_l2 = displayName_l2;
/*  717 */       this.displayName_l3 = paramString4;
/*      */     }/*      */   }

        private void updateChildrenByNameUpdated(Context ctx, IObjectValue model, String oldDisplayName, String oldLongNumber)
/*      */     throws BOSException, EASBizException
/*      */   {
/* 1401 */     TreeBaseInfo treeBaseInfo = (TreeBaseInfo)model;
///* 1402 */     String displayName = treeBaseInfo.getDisplayName(locale);
/*      */
/*      */ 
///* 1405 */     if (displayName == null)
///*      */     {
///* 1407 */       return;
///*      */     }
/*      */ 
/* 1410 */     FilterItemInfo item = new FilterItemInfo("longNumber", treeBaseInfo.getLongNumber() + "!" + "%", CompareType.LIKE);
/*      */
/*      */ 
/* 1413 */     FilterInfo filter = new FilterInfo();
/* 1414 */     filter.getFilterItems().add(item);
/* 1415 */     EntityViewInfo view = new EntityViewInfo();
/* 1416 */     view.setFilter(filter);
/*      */ 
/* 1418 */     FilterInfo filterCU = getFilterForDefaultCU(ctx, treeBaseInfo);
/* 1419 */     if (FilterUtility.hasFilterItem(filterCU))
/*      */     {
/* 1421 */       view.getFilter().mergeFilter(filterCU, "AND");
/*      */     }
/* 1423 */     TreeBaseCollection collection = getTreeBaseCollection(ctx, view);
/* 1424 */     TreeBaseInfo temp = null;
/* 1425 */     Iterator iter = collection.iterator();
/* 1426 */     while (iter.hasNext())
/*      */     {
/* 1428 */       temp = (TreeBaseInfo)iter.next();
///* 1429 */       if (oldDisplayName != null)
///*      */       {
///* 1431 */         if (temp.getDisplayName(locale) != null)
///*      */         {
///* 1433 */           if (temp.getDisplayName(locale).indexOf(oldDisplayName) > 1) return;
///*      */ 
///* 1435 */           String temps = StringUtility.castRegular(oldDisplayName);
///* 1436 */           if (!(displayName.startsWith(temps)))
///*      */           {
///* 1438 */             temp.setDisplayName(temp.getDisplayName(locale).replaceFirst(temps + "_", displayName + "_"), locale);
///*      */
///*      */           }
///*      */ 
///*      */         }
///*      */         else
///*      */         {
///* 1445 */           temp.setDisplayName(displayName, locale);
///*      */         }
///*      */ 
///*      */       }
///*      */       else
///*      */       {
///* 1451 */         temp.setDisplayName(displayName, locale);
///*      */       }
///* 1453 */       limitDisplayNameLength(temp);
/* 1454 */       super._update(ctx, new ObjectUuidPK(temp.getId()), temp);
/*      */     }
/*      */   }

相關文章