Commit cfa58c07 authored by lisong's avatar lisong

机场代码合并

parent 4f0fdc95
...@@ -154,6 +154,8 @@ public class ExcelServiceImpl { ...@@ -154,6 +154,8 @@ public class ExcelServiceImpl {
@Autowired @Autowired
IDutyPersonService iDutyPersonService; IDutyPersonService iDutyPersonService;
@Autowired @Autowired
DataDictionaryServiceImpl dataDictionaryService;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl; DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl;
@Autowired @Autowired
LinkageUnitServiceImpl linkageUnitServiceImpl; LinkageUnitServiceImpl linkageUnitServiceImpl;
...@@ -756,81 +758,109 @@ public class ExcelServiceImpl { ...@@ -756,81 +758,109 @@ public class ExcelServiceImpl {
List<OrgUsrExcelDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, OrgUsrExcelDto.class, 1); List<OrgUsrExcelDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, OrgUsrExcelDto.class, 1);
if (!ObjectUtils.isEmpty(excelDtoList)) { if (!ObjectUtils.isEmpty(excelDtoList)) {
Set<String> set = new HashSet<>(); Set<String> set = new HashSet<>();
Set<String> set1 = new HashSet<>();
excelDtoList.forEach(orgUsrExcelDto -> { excelDtoList.forEach(orgUsrExcelDto -> {
if (orgUsrExcelDto.getParentId() != null) { if (orgUsrExcelDto.getParentId() != null) {
String[] certificates = orgUsrExcelDto.getParentId().split("@"); String[] certificates = orgUsrExcelDto.getParentId().split("@");
orgUsrExcelDto.setParentName(certificates[0]); orgUsrExcelDto.setParentName(certificates[0]);
orgUsrExcelDto.setParentId(certificates[1]); orgUsrExcelDto.setParentId(certificates[1]);
} }
if (orgUsrExcelDto.getAmosOrgCode() != null) {
String[] certificates = orgUsrExcelDto.getAmosOrgCode().split("@");
orgUsrExcelDto.setAmosOrgId(certificates[0]);
orgUsrExcelDto.setAmosOrgCode(certificates[1]);
}
// 动态字段填充 // 动态字段填充
List<DynamicFormInitDto> dynamicFormColumn = dynamicFormColumnServiceImpl.getFormlist("246"); List<DynamicFormInitDto> dynamicFormColumn = dynamicFormColumnServiceImpl.getFormlist("246");
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
// 获取对象属性和值 // 获取对象属性和值
Field[] fields = orgUsrExcelDto.getClass().getDeclaredFields(); Field[] fields = orgUsrExcelDto.getClass().getDeclaredFields();
for (Field field : fields) { for (Field field : fields) {
try{ try {
field.setAccessible(true); field.setAccessible(true);
Object value = field.get(orgUsrExcelDto); Object value = field.get(orgUsrExcelDto);
String name = field.getName(); String name = field.getName();
// 解析注解信息 // 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class); ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
if (!ObjectUtils.isEmpty(explicitConstraint)) { if (!ObjectUtils.isEmpty(explicitConstraint)) {
name = name + "@"; name = name + "@";
} }
map.put(name, value); map.put(name, value);
} catch (Exception ex){ } catch (Exception ex) {
logger.error("获取{}字段值失败, {}", field.getName(), ex); logger.error("获取{}字段值失败, {}", field.getName(), ex);
} }
} }
String s = JSONObject.toJSONString(orgUsrExcelDto);
Map map1 = JSONObject.parseObject(s, Map.class);
List<DynamicFormInstanceDto> dynamicFormValue = new ArrayList<>(); List<DynamicFormInstanceDto> dynamicFormValue = new ArrayList<>();
List<DynamicFormInstance> dynamicFormInstancelist = new ArrayList<>(); List<DynamicFormInstance> dynamicFormInstancelist = new ArrayList<>();
dynamicFormColumn.forEach(DynamicFormInitDto -> { dynamicFormColumn.forEach(DynamicFormInitDto -> {
// 动态标题存在默认值
if ("birthdayTime".equals(DynamicFormInitDto.getKey())) { if ("birthdayTime".equals(DynamicFormInitDto.getKey())) {
DynamicFormInstanceDto formItemDescr = DynamicFormInitDto.getFormItemDescr(); DynamicFormInstanceDto formItemDescr = DynamicFormInitDto.getFormItemDescr();
formItemDescr.setFieldValue(null); formItemDescr.setFieldValue(null);
DynamicFormInitDto.setFormItemDescr(formItemDescr); DynamicFormInitDto.setFormItemDescr(formItemDescr);
} }
dynamicFormValue.add(DynamicFormInitDto.getFormItemDescr()); dynamicFormValue.add(DynamicFormInitDto.getFormItemDescr());
}); });
dynamicFormValue.forEach(dynamicFormInstanceDto -> { dynamicFormValue.forEach(dynamicFormInstanceDto -> {
String key = dynamicFormInstanceDto.getFieldCode(); String key = dynamicFormInstanceDto.getFieldCode();
Object value = map.get(key); if (map.containsKey(key) && map.get(key) != null) {
if (value != null) { String o = map.get(key).toString();
dynamicFormInstanceDto.setFieldValue(value.toString()); if ("birthdayTime".equals(key) && !ObjectUtils.isEmpty(o)) {
} else {
Object o = map.get(key + "@");
if (!ObjectUtils.isEmpty(o)) {
if (o.toString().contains("@")) {
String[] certificates = o.toString().split("@");
dynamicFormInstanceDto.setFieldValue(certificates[1]);
dynamicFormInstanceDto.setFieldValueLabel(certificates[0]);
} else {
dynamicFormInstanceDto.setFieldValue(o.toString());
}
}
}
if ("birthdayTime".equals(key) && !ObjectUtils.isEmpty(value)) {
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try { try {
String date = ft.format(value); String date = ft.format(o);
dynamicFormInstanceDto.setFieldValue(date); dynamicFormInstanceDto.setFieldValue(date);
} catch (Exception e) { } catch (Exception e) {
logger.error("日期转换失败"); logger.error("日期转换失败");
}
}
}
if (map1.containsKey(key)) {
String value = map1.get(key).toString();
if (value.contains("@")) {
String[] certificates = value.split("@");
dynamicFormInstanceDto.setFieldValue(certificates[1]);
dynamicFormInstanceDto.setFieldValueLabel(certificates[0]);
} else {
dynamicFormInstanceDto.setFieldValue(value);
} }
} }
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance(); DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance); BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance);
if ("gender".equals(dynamicFormInstance.getFieldCode())) {
dynamicFormInstance.setFieldValueLabel("346".equals(String.valueOf(dynamicFormInstance.getFieldValue())) ? "男" : "女");
}
if ("positionType".equals(dynamicFormInstance.getFieldCode())) {
dynamicFormInstance.setFieldValueLabel(dataDictionaryService.getById(dynamicFormInstance.getFieldValue()).getName());
}
String fieldCode = dynamicFormInstance.getFieldCode();
if (map1.containsKey(fieldCode) && fieldCode.contains("Code")) {
String[] split = map1.get(fieldCode).toString().split("@");
dynamicFormInstance.setFieldValue(split[0]);
}
if ("certificatesTypeCode".equals(fieldCode)) {
String[] split = map1.get(fieldCode).toString().split("@");
dynamicFormInstance.setFieldValue(split[1]);
dynamicFormInstance.setFieldValueLabel(split[0]);
}
if (map1.containsKey(fieldCode.substring(0, fieldCode.length() - 4))) {
dynamicFormInstance.setFieldValueLabel(map1.get(fieldCode.substring(0, fieldCode.length() - 4)).toString());
}
dynamicFormInstancelist.add(dynamicFormInstance); dynamicFormInstancelist.add(dynamicFormInstance);
}); });
orgUsrExcelDto.setDynamicFormValue(dynamicFormInstancelist); orgUsrExcelDto.setDynamicFormValue(dynamicFormInstancelist);
Bean.toPo(getCurrentInfo(), orgUsrExcelDto); Bean.toPo(getCurrentInfo(), orgUsrExcelDto);
// 保存动态表单和人员单位表 // 保存动态表单和人员单位表
if (!ObjectUtils.isEmpty(orgUsrExcelDto.getCertificatesNumber())) { String[] split55 = orgUsrExcelDto.getCertificatesTypeCode().toString().split("@");
if (!ObjectUtils.isEmpty(orgUsrExcelDto.getCertificatesNumber()) && split55[1].equals("120")) {
if (!set.add(orgUsrExcelDto.getCertificatesNumber())) { if (!set.add(orgUsrExcelDto.getCertificatesNumber())) {
throw new RuntimeException("身份证号码重复!"); throw new RuntimeException("身份证号码重复!");
} else { } else {
...@@ -840,6 +870,17 @@ public class ExcelServiceImpl { ...@@ -840,6 +870,17 @@ public class ExcelServiceImpl {
} }
} }
} }
//平台用户唯一效验
if (!ObjectUtils.isEmpty(orgUsrExcelDto.getAmosOrgId())) {
if (!set1.add(orgUsrExcelDto.getAmosOrgId())) {
throw new RuntimeException("关联用户" + orgUsrExcelDto.getAmosOrgCode() + "重复!");
} else {
int num = orgUsrMapper.amosIdExist(orgUsrExcelDto.getAmosOrgId(), null);
if (num > 0) {
throw new RuntimeException("关联用户" + orgUsrExcelDto.getAmosOrgCode() + "重复!");
}
}
}
try { try {
OrgUsrDto orgUsrDto = orgUsrService.saveOrgPersonExcel(orgUsrExcelDto); OrgUsrDto orgUsrDto = orgUsrService.saveOrgPersonExcel(orgUsrExcelDto);
if (!ObjectUtils.isEmpty(orgUsrDto)) { if (!ObjectUtils.isEmpty(orgUsrDto)) {
...@@ -848,6 +889,7 @@ public class ExcelServiceImpl { ...@@ -848,6 +889,7 @@ public class ExcelServiceImpl {
savePeopleItem(orgUsrExcelDto); savePeopleItem(orgUsrExcelDto);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("导入失败!"); throw new RuntimeException("导入失败!");
} }
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment