Commit cfa58c07 authored by lisong's avatar lisong

机场代码合并

parent 4f0fdc95
......@@ -154,6 +154,8 @@ public class ExcelServiceImpl {
@Autowired
IDutyPersonService iDutyPersonService;
@Autowired
DataDictionaryServiceImpl dataDictionaryService;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl;
@Autowired
LinkageUnitServiceImpl linkageUnitServiceImpl;
......@@ -756,81 +758,109 @@ public class ExcelServiceImpl {
List<OrgUsrExcelDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, OrgUsrExcelDto.class, 1);
if (!ObjectUtils.isEmpty(excelDtoList)) {
Set<String> set = new HashSet<>();
Set<String> set1 = new HashSet<>();
excelDtoList.forEach(orgUsrExcelDto -> {
if (orgUsrExcelDto.getParentId() != null) {
String[] certificates = orgUsrExcelDto.getParentId().split("@");
orgUsrExcelDto.setParentName(certificates[0]);
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");
Map<String, Object> map = new HashMap<>();
// 获取对象属性和值
Field[] fields = orgUsrExcelDto.getClass().getDeclaredFields();
for (Field field : fields) {
try{
try {
field.setAccessible(true);
Object value = field.get(orgUsrExcelDto);
String name = field.getName();
// 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
if (!ObjectUtils.isEmpty(explicitConstraint)) {
name = name + "@";
}
map.put(name, value);
} catch (Exception ex){
} catch (Exception ex) {
logger.error("获取{}字段值失败, {}", field.getName(), ex);
}
}
String s = JSONObject.toJSONString(orgUsrExcelDto);
Map map1 = JSONObject.parseObject(s, Map.class);
List<DynamicFormInstanceDto> dynamicFormValue = new ArrayList<>();
List<DynamicFormInstance> dynamicFormInstancelist = new ArrayList<>();
dynamicFormColumn.forEach(DynamicFormInitDto -> {
// 动态标题存在默认值
if ("birthdayTime".equals(DynamicFormInitDto.getKey())) {
DynamicFormInstanceDto formItemDescr = DynamicFormInitDto.getFormItemDescr();
formItemDescr.setFieldValue(null);
DynamicFormInitDto.setFormItemDescr(formItemDescr);
}
dynamicFormValue.add(DynamicFormInitDto.getFormItemDescr());
});
dynamicFormValue.forEach(dynamicFormInstanceDto -> {
String key = dynamicFormInstanceDto.getFieldCode();
Object value = map.get(key);
if (value != null) {
dynamicFormInstanceDto.setFieldValue(value.toString());
} 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)) {
if (map.containsKey(key) && map.get(key) != null) {
String o = map.get(key).toString();
if ("birthdayTime".equals(key) && !ObjectUtils.isEmpty(o)) {
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
String date = ft.format(value);
String date = ft.format(o);
dynamicFormInstanceDto.setFieldValue(date);
} catch (Exception e) {
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();
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);
});
orgUsrExcelDto.setDynamicFormValue(dynamicFormInstancelist);
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())) {
throw new RuntimeException("身份证号码重复!");
} else {
......@@ -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 {
OrgUsrDto orgUsrDto = orgUsrService.saveOrgPersonExcel(orgUsrExcelDto);
if (!ObjectUtils.isEmpty(orgUsrDto)) {
......@@ -848,6 +889,7 @@ public class ExcelServiceImpl {
savePeopleItem(orgUsrExcelDto);
}
} catch (Exception e) {
e.printStackTrace();
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