Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java =================================================================== diff -u -r14715 -r14848 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java (.../ImportBasedataManagerImpl.java) (revision 14715) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java (.../ImportBasedataManagerImpl.java) (revision 14848) @@ -71,6 +71,7 @@ import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.excel.service.CommonImportManager; import com.forgon.excel.service.ExcelUtils; +import com.forgon.log.model.Log; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.systemsetting.model.HttpOption; @@ -80,6 +81,7 @@ import com.forgon.tools.excel.ParerUtils; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; +import com.forgon.treenode.service.THTreeNodeManager; /** * @@ -125,6 +127,12 @@ private WareHouseManager wareHouseManager; + private THTreeNodeManager thTreeNodeManager; + + public void setThTreeNodeManager(THTreeNodeManager thTreeNodeManager) { + this.thTreeNodeManager = thTreeNodeManager; + } + public void setOrgUnitManager(OrgUnitManager orgUnitManager) { this.orgUnitManager = orgUnitManager; } @@ -247,6 +255,10 @@ // 导入"器械包价格管理"基础数据 totalCount.set(importToussePriceFromSheet( wb.getSheet("器械包价格管理"), msg, totalCount.intValue())); + + // 导入"部门信息"基础数据 + totalCount.set(importDepartData( + wb.getSheet("部门信息"), msg, totalCount.intValue())); objectDao.flush(); } catch (Exception e) { e.printStackTrace(); @@ -1483,6 +1495,105 @@ } return totalCount; } + /*** + * 导入科室信息 + * @param departSheet + * @param msg + * @param totalCount + * @return + */ + private int importDepartData(HSSFSheet departSheet, + Map msg, int totalCount){ + if (departSheet == null) { + return totalCount; + } + int successCount = 0, failureCount = 0; + StringBuffer sb = new StringBuffer(); + try{ + Map nameToIndexMap = ExcelUtils.autoDetectSheepAndCreateColumnNameToIndexMap(departSheet); + int lastRowNum = departSheet.getLastRowNum(); + int departNameIndex = ExcelUtils.getColumnIndex(nameToIndexMap, "科室名称"); + int codeIndex = ExcelUtils.getColumnIndex(nameToIndexMap, "科室编码"); + + OrgUnit orgUnit = null; + for (int i = 1; i <= lastRowNum; i++) { + HSSFRow row = departSheet.getRow(i); + int currentRowNum = i + 1; + if (row == null || ParerUtils.isBlankRow(row)) { + continue; + } + // 保存上一行数据 + if (orgUnit != null) { + if(orgUnit.getBarcodeDevice() == null || StringUtils.isBlank(orgUnit.getBarcodeDevice().getBarcode())){ + BarcodeDevice barcode = new BarcodeDevice(); + String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); + barcode.setBarcode(barcodeStr); + barcode.setType(BarcodeDevice.BARCODE_TYPE_ORGUNIT); + orgUnit.setBarcodeDevice(barcode); + } + orgUnitManager.saveOrUpdata(orgUnit); + thTreeNodeManager.updateTHTreeNode(orgUnit); + successCount++; + orgUnit = null; + } + String name = ParerUtils.getCellFormatValue(row, departNameIndex); + String coding = ParerUtils.getCellFormatValue(row, codeIndex); + if (StringUtils.isBlank(name)) { + // 有空值,记录信息 + failureCount = appendFailureRowNumAndRecordFailureNum( + failureCount, sb, currentRowNum,departNameIndex,1); + orgUnit = null; + failureCount++; + continue; + } + if (StringUtils.isBlank(coding)) { + // 有空值,记录信息 + failureCount = appendFailureRowNumAndRecordFailureNum( + failureCount, sb, currentRowNum,codeIndex,1); + orgUnit = null; + failureCount++; + continue; + } + + orgUnit = new OrgUnit(); + orgUnit.setName(name); + orgUnit.setOrgUnitCoding(coding); + if( orgUnitManager.getByCode(coding) != null){ + // 科室的编码不能有重复值 + failureCount = appendFailureRowNumAndRecordFailureNum( + failureCount, sb, currentRowNum,codeIndex,1); + orgUnit = null; + failureCount++; + } + } + // 如果是最后一个 + if (orgUnit != null) { + if(orgUnit.getBarcodeDevice() == null || StringUtils.isBlank(orgUnit.getBarcodeDevice().getBarcode())){ + BarcodeDevice barcode = new BarcodeDevice(); + String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); + barcode.setBarcode(barcodeStr); + barcode.setType(BarcodeDevice.BARCODE_TYPE_ORGUNIT); + orgUnit.setBarcodeDevice(barcode); + } + orgUnitManager.saveOrUpdata(orgUnit); + thTreeNodeManager.updateTHTreeNode(orgUnit); + successCount++; + } + // 格式:成功插入数量#插入失败数量#失败行1,失败行2... + msg.put("科室信息管理", + successCount + "#" + failureCount + "#" + sb.toString()); + return totalCount; + }catch(Exception e){ + e.printStackTrace(); + if (sb.length() > 0) { + sb.append("|"); + } + sb.append(e.getMessage()); + msg.put("科室信息管理", + successCount + "#" + failureCount + "#" + sb.toString()); + } + return totalCount; + } /** * 导入或更新 器械包基础定义excel数据 *