diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterprisePubQrcodeServiceImpl.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterprisePubQrcodeServiceImpl.java index 8e6771a9..6b3c59bc 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterprisePubQrcodeServiceImpl.java +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnterprisePubQrcodeServiceImpl.java @@ -42,11 +42,13 @@ import com.zdxt.code.mapper.EnterpriseInformationMapper; import com.zdxt.code.service.ISsztJbxx110497Service; import com.zdxt.code.service.IQrCodeGenerateHistoryService; import com.zdxt.code.domain.QrCodeGenerateHistory; +import com.zdxt.auth.project.system.dict.service.IDictDataService; import com.zdxt.common.config.RuoYiConfig; import com.zdxt.common.util.Constants; import com.zdxt.common.util.DateUtils; import com.zdxt.common.util.StringUtils; import com.zdxt.domain.auth.Dept; +import com.zdxt.domain.auth.DictData; import org.apache.poi.ss.usermodel.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -93,6 +95,9 @@ public class EnterprisePubQrcodeServiceImpl implements IEnterprisePubQrcodeServi @Autowired private IDeptService deptService; + @Autowired + private IDictDataService iDictDataService; + @Autowired private ISsztJbxx110497Service ssztJbxx110497Service; @@ -217,6 +222,19 @@ public class EnterprisePubQrcodeServiceImpl implements IEnterprisePubQrcodeServi String importFileId = UUID.randomUUID().toString().replace("-", ""); String importFileName = file.getOriginalFilename(); + // 预加载区域字典数据:select * from sys_dict_data where dict_type='address_type' + List areaDictList = iDictDataService.selectDictDataByType("address_type"); + // 预加载街道字典数据:select * from sys_dict_data where dict_type in (select dict_value from sys_dict_data where dict_type='address_type') + List areaDictValues = new ArrayList<>(); + for (DictData areaDict : areaDictList) + { + if (StrUtil.isNotBlank(areaDict.getDictValue())) + { + areaDictValues.add(areaDict.getDictValue()); + } + } + List streetDictList = areaDictValues.isEmpty() ? new ArrayList<>() : iDictDataService.getDataByDataTypes(areaDictValues); + for (int i = 0; i < dataList.size(); i++) { EnterprisePubQrcode item = dataList.get(i); @@ -242,40 +260,55 @@ public class EnterprisePubQrcodeServiceImpl implements IEnterprisePubQrcodeServi errorMsg.append("第").append(rowNum).append("行,统一社会信用代码格式不正确(应为18位数字和大写字母组合);"); } - // 验证归属区域 + // 验证归属区域(通过字典表 address_type 匹配) if (StrUtil.isBlank(item.getAreaName())) { errorMsg.append("第").append(rowNum).append("行,归属区域不能为空;"); } else { - Dept areaDept=deptService.selectDeptByDeptName2(item.getAreaName().trim()); - if (areaDept == null) + DictData matchedArea = null; + for (DictData dd : areaDictList) + { + if (item.getAreaName().trim().equals(dd.getDictLabel())) + { + matchedArea = dd; + break; + } + } + if (matchedArea == null) { errorMsg.append("第").append(rowNum).append("行,归属区域\"").append(item.getAreaName()).append("\"在系统中未找到;"); } else { - item.setAreaId(areaDept.getDeptId()); + item.setAreaId(matchedArea.getDictValue()); } } - // 验证归属街道 + // 验证归属街道(通过字典表匹配,dict_type为区域的dict_value) if (StrUtil.isBlank(item.getStreetName())) { errorMsg.append("第").append(rowNum).append("行,归属街道不能为空;"); } else { - List deptList=deptService.selectDeptByDeptName(item.getStreetName().trim()); - if (deptList == null || deptList.isEmpty()) + DictData matchedStreet = null; + for (DictData dd : streetDictList) + { + if (item.getStreetName().trim().equals(dd.getDictLabel())) + { + matchedStreet = dd; + break; + } + } + if (matchedStreet == null) { errorMsg.append("第").append(rowNum).append("行,归属街道\"").append(item.getStreetName()).append("\"在系统中未找到;"); } else { - Dept streetDept = deptList.get(0); - item.setStreetId(streetDept.getDeptId()); + item.setStreetId(matchedStreet.getDictValue()); } } @@ -330,7 +363,7 @@ public class EnterprisePubQrcodeServiceImpl implements IEnterprisePubQrcodeServi item.setUserName(currentUser.getUserName()); item.setUserId(currentUser.getUserId()); item.setCreateBy(currentUser.getUserName()); - item.setDeptName(currentUser.getDeptName()); + item.setDeptName(currentUser.getDept().getDeptName()); item.setDeptId(currentUser.getDeptId()); enterprisePubQrcodeMapper.insertEnterprisePubQrcode(item); insertCount++;