Browse Source

人员组织导入导出服务

luojing 5 years ago
parent
commit
44c41f01d4

+ 85 - 7
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/inputperson/ActionInputAll.java

@@ -114,7 +114,6 @@ class ActionInputAll extends BaseAction {
 	
 		for (int i = configurator.getFirstRow(); i <= configurator.getLastRow(); i++) {
 			Row row = sheet.getRow(i);
-			System.out.println("x111");
 			if (null != row) {
 				String name = configurator.getCellStringValue(row.getCell(configurator.getTypeCodeColumn()));
 				String value = configurator.getCellStringValue(row.getCell(configurator.getTypeNameColumn()));
@@ -139,6 +138,7 @@ class ActionInputAll extends BaseAction {
 			List<UnitItem> unit = this.scanUnitList(configurator, sheet);
 			wholeFlag = this.checkUnit(business, workbook, configurator, unit); 
 			if(wholeFlag){
+				//this.persistUnit(workbook, configurator, unit);
 				this.scanPerson(business, workbook);
 			}
 	}
@@ -148,7 +148,10 @@ class ActionInputAll extends BaseAction {
 		Sheet sheet = workbook.getSheetAt(3);
 		PersonSheetConfigurator configurator = new PersonSheetConfigurator(workbook, sheet);
 		List<PersonItem> person = this.scanPersonList(configurator, sheet);
-		//wholeFlag = this.checkUnit(business, workbook, configurator, unit); 
+		wholeFlag = this.checkPerson(business, workbook, configurator, person); 
+		if(wholeFlag){
+			
+		}
 	}
 
 	private List<UnitItem> scanUnitList(UnitSheetConfigurator configurator, Sheet sheet) throws Exception {
@@ -166,8 +169,8 @@ class ActionInputAll extends BaseAction {
 			Row row = sheet.getRow(i);
 			if (null != row) {
 				String name = configurator.getCellStringValue(row.getCell(configurator.getNameColumn()));
-				if (StringUtils.isNotEmpty(name)) {
-					UnitItem unitItem = new UnitItem();
+				UnitItem unitItem = new UnitItem();
+				//if (StringUtils.isNotEmpty(name)) {
 					unitItem.setRow(i);
 					name = StringUtils.trimToEmpty(name);
 					unitItem.setName(name);
@@ -218,9 +221,10 @@ class ActionInputAll extends BaseAction {
 							unitItem.getAttributes().put(en.getKey(), value);
 						}
 					}
-					unit.add(unitItem);
+					//unit.add(unitItem);
 					logger.debug("scan unit:{}.", unitItem);
-				}
+				//}
+				unit.add(unitItem);
 			}
 		}
 		return unit;
@@ -230,9 +234,18 @@ class ActionInputAll extends BaseAction {
 		if (null == configurator.getNameColumn()) {
 			throw new ExceptionNameColumnEmpty();
 		}
+		if (null == configurator.getUniqueColumn()) {
+			throw new ExceptionUniqueColumnEmpty();
+		}
+		if (null == configurator.getEmployeeColumn()) {
+			throw new ExceptionEmployeeColumnEmpty();
+		}
 		if (null == configurator.getMobileColumn()) {
 			throw new ExceptionMobileColumnEmpty();
 		}
+		if (configurator.getAttributes().isEmpty()) {
+			throw new ExceptionIdNumberColumnEmpty();
+		}
 		List<PersonItem> people = new ArrayList<>();
 		for (int i = configurator.getFirstRow(); i <= configurator.getLastRow(); i++) {
 			Row row = sheet.getRow(i);
@@ -307,7 +320,7 @@ class ActionInputAll extends BaseAction {
 				validate = false;
 				continue;
 			}
-			if (ListTools.isNotEmpty(o.getTypeList())) {
+			if (ListTools.isEmpty(o.getTypeList())) {
 				this.setUnitMemo(workbook, configurator, o, "组织级别编号不能为空.");
 				validate = false;
 				continue;
@@ -338,6 +351,64 @@ class ActionInputAll extends BaseAction {
 		return validate;
 	}
 	
+	private boolean checkPerson(Business business, XSSFWorkbook workbook, PersonSheetConfigurator configurator,
+			List<PersonItem> person) throws Exception {
+		//校验导入的组织
+		EntityManagerContainer emc = business.entityManagerContainer();
+		boolean validate = true;
+		for (PersonItem o : person) {
+			System.out.println("正在校验用户:{}."+ o.getName());
+			if (StringUtils.isEmpty(o.getName())) {
+				this.setPersonMemo(workbook, configurator, o, "人员姓名不能为空.");
+				validate = false;
+				continue;
+			}
+			if (StringUtils.isEmpty(o.getUnique())) {
+				this.setPersonMemo(workbook, configurator, o, "人员编号不能为空.");
+				validate = false;
+				continue;
+			}
+			if (StringUtils.isEmpty(o.getEmployee())) {
+				this.setPersonMemo(workbook, configurator, o, "登录账号不能为空.");
+				validate = false;
+				continue;
+			}
+			if (StringUtils.isEmpty(o.getMobile())) {
+				this.setPersonMemo(workbook, configurator, o, "手机号码不能为空.");
+				validate = false;
+				continue;
+			}
+			if(o.getAttributes().isEmpty()){
+				this.setPersonMemo(workbook, configurator, o, "身份证号不能为空.");
+				validate = false;
+				continue;
+			}
+		}
+		if (validate) {
+			for (PersonItem o : person) {
+				for (PersonItem item : person) {
+					if (o != item) {
+						if (StringUtils.isNotEmpty(o.getUnique()) && StringUtils.equals(o.getUnique(), item.getUnique())) {
+							this.setPersonMemo(workbook, configurator, o, "唯一编码冲突,本次导入中不唯一.");
+							validate = false;
+							continue;
+						}
+					}
+				}
+				
+				Person p = null;
+				p = emc.flag(o.getUnique(), Person.class);
+				if (null != p) {
+					this.setPersonMemo(workbook, configurator, o, "人员编号: " + o.getUnique() + " 与已经存在人员: " + p.getName() + " 冲突.");
+					validate = false;
+					continue;
+				}
+				this.setPersonMemo(workbook, configurator, o, "校验通过.");
+			}
+		}
+		return validate;
+	}
+	
 	private void persistUnit(XSSFWorkbook workbook, UnitSheetConfigurator configurator, List<UnitItem> unit) throws Exception {
 		for (List<UnitItem> list : ListTools.batch(unit, 200)) {
 			for (UnitItem o : list) {
@@ -364,6 +435,13 @@ class ActionInputAll extends BaseAction {
 		Cell cell = CellUtil.getCell(row, configurator.getMemoColumn());
 		cell.setCellValue(memo);
 	}
+	private void setPersonMemo(XSSFWorkbook workbook, PersonSheetConfigurator configurator, PersonItem personItem,
+			String memo) {
+		Sheet sheet = workbook.getSheetAt(configurator.getSheetIndex());
+		Row row = sheet.getRow(personItem.getRow());
+		Cell cell = CellUtil.getCell(row, configurator.getMemoColumn());
+		cell.setCellValue(memo);
+	}
 	
 	private String saveUnit(String path ,Unit unit) throws Exception{
 		ActionResponse resp =  ThisApplication.context().applications()

+ 12 - 0
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/inputperson/ExceptionEmployeeColumnEmpty.java

@@ -0,0 +1,12 @@
+package com.x.organization.assemble.control.jaxrs.inputperson;
+
+import com.x.base.core.project.exception.PromptException;
+
+class ExceptionEmployeeColumnEmpty extends PromptException {
+
+	private static final long serialVersionUID = -2139584911736169462L;
+
+	ExceptionEmployeeColumnEmpty() {
+		super("登录账号列不能为空.");
+	}
+}

+ 12 - 0
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/inputperson/ExceptionIdNumberColumnEmpty.java

@@ -0,0 +1,12 @@
+package com.x.organization.assemble.control.jaxrs.inputperson;
+
+import com.x.base.core.project.exception.PromptException;
+
+class ExceptionIdNumberColumnEmpty extends PromptException {
+
+	private static final long serialVersionUID = -2139584911736169462L;
+
+	ExceptionIdNumberColumnEmpty() {
+		super("身份证号列不能为空.");
+	}
+}

+ 12 - 0
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/inputperson/ExceptionUniqueColumnEmpty.java

@@ -0,0 +1,12 @@
+package com.x.organization.assemble.control.jaxrs.inputperson;
+
+import com.x.base.core.project.exception.PromptException;
+
+class ExceptionUniqueColumnEmpty extends PromptException {
+
+	private static final long serialVersionUID = -2139584911736169462L;
+
+	ExceptionUniqueColumnEmpty() {
+		super("人员编号列不能为空.");
+	}
+}

+ 10 - 5
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/inputperson/PersonSheetConfigurator.java

@@ -29,8 +29,9 @@ public class PersonSheetConfigurator extends GsonPropertyObject {
 	private Integer uniqueColumn;
 	private Integer employeeColumn;
 	private Integer mobileColumn;
-	private Integer mailColumn;
+	private Integer idNumberColumn;
 	private Integer genderTypeColumn;
+	private Integer mailColumn;
 
 	private Map<String, Integer> attributes = new HashMap<>();
 
@@ -69,10 +70,10 @@ public class PersonSheetConfigurator extends GsonPropertyObject {
 		}
 	}
 
-	private static List<String> nameItems = Arrays.asList(new String[] { "姓名", "name" });
-	private static List<String> uniqueItems = Arrays.asList(new String[] { "唯一编码", "编码", "unique" });
-	private static List<String> employeeItems = Arrays.asList(new String[] { "员工号", "员工编号", "employee" });
-	private static List<String> mobileItems = Arrays.asList(new String[] { "手机号", "手机", "联系电话", "phone", "mobile" });
+	private static List<String> nameItems = Arrays.asList(new String[] { "人员姓名 *", "人员姓名", "name" });
+	private static List<String> uniqueItems = Arrays.asList(new String[] { "人员编号 *", "编码", "unique" });
+	private static List<String> employeeItems = Arrays.asList(new String[] { "登录账号 *", "员工编号", "employee" });
+	private static List<String> mobileItems = Arrays.asList(new String[] { "手机号码 *", "手机", "联系电话", "phone", "mobile" });
 	private static List<String> mailItems = Arrays.asList(new String[] { "电子邮件", "邮件", "邮箱", "邮件地址", "mail", "email" });
 	private static List<String> genderTypeItems = Arrays.asList(new String[] { "性别", "gender", "genderType" });
 
@@ -141,6 +142,10 @@ public class PersonSheetConfigurator extends GsonPropertyObject {
 	public Integer getMailColumn() {
 		return mailColumn;
 	}
+	
+	public Integer getIdNumberColumn() {
+		return idNumberColumn;
+	}
 
 	public Integer getSheetIndex() {
 		return sheetIndex;