From cf32ad958021e17434c8fe2f53c79dd12a1e5562 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Wed, 8 Sep 2021 21:07:29 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E6=A0=87=E5=87=86=E8=AF=A6=E6=83=85,?= =?UTF-8?q?=E5=AE=9E=E6=96=BD=E6=97=A5=E6=9C=9F=20s.getPutTime()=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SarLawsAttrDetailedListServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java index 9028d493..045b8404 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java @@ -288,7 +288,10 @@ public class SarLawsAttrDetailedListServiceImpl extends ServiceImpl> mapList, List putTime, List xcx, List zcc, StandRegionalTimeDto s) { - putTime.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getPutTime())); + //临时 + if (s.getPutTime()!=null){ + putTime.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getPutTime())); + } xcx.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getXcxssrq())); zcc.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getZccssrq())); mapList.put("实施日期("+s.getCountry()+")",putTime); From 26f28b30b61a96341785e054df46b98df83763c3 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Wed, 8 Sep 2021 22:26:09 +0800 Subject: [PATCH 02/11] =?UTF-8?q?standRegionalTimeDto=20=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E5=92=8C=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java | 4 ++-- .../service/impl/SarLawsAttrDetailedListServiceImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java index 7b50a568..8dc4d5f9 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java @@ -26,10 +26,10 @@ public class StandRegionalTimeDto { @ApiModelProperty(value = "在产车实施日期") @DateTimeFormat(pattern="yyyy-MM-dd") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - private Date zccssrq; + private Date ZCCSSRQ; @ApiModelProperty(value = "新车型实施日期") @DateTimeFormat(pattern="yyyy-MM-dd") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - private Date xcxssrq; + private Date XCXSSRQ; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java index 045b8404..e015ec4d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java @@ -292,8 +292,8 @@ public class SarLawsAttrDetailedListServiceImpl extends ServiceImpl Date: Wed, 8 Sep 2021 22:48:22 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=AD=97=E6=AE=B5=E6=B2=A1=E6=9C=89=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=97=B6,=E8=BF=94=E5=9B=9E=E4=BA=86null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sarBussStandAttrInfo/SarBussStandAttrInfoMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandAttrInfo/SarBussStandAttrInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandAttrInfo/SarBussStandAttrInfoMapper.xml index 1e4eafe9..4ec8d322 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandAttrInfo/SarBussStandAttrInfoMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandAttrInfo/SarBussStandAttrInfoMapper.xml @@ -136,7 +136,7 @@ @@ -161,4 +161,4 @@ FROM SAR_BUSS_STAND_ATTR_INFO WHERE stand_id = #{standId} and valid_flag=0 - \ No newline at end of file + From 721f13febc66a8f9066b7f3d6edf8116b190fb1b Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 9 Sep 2021 10:04:42 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ImportExcelController.java | 9 +- .../service/impl/ImportExcelServiceImpl.java | 226 +++++++++--------- 2 files changed, 118 insertions(+), 117 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java index 39b46fc5..1a36d323 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java @@ -47,11 +47,10 @@ public class ImportExcelController extends BaseController { @PostMapping("/import") public void deleteList(MultipartFile file, MultipartFile file2, HttpServletResponse response, HttpServletRequest request) throws IOException { Map> mapMap=importExcelService.getExcelData(file,file2); - List errorList = importExcelService.storageExclData(mapMap); -// ResponseMessage responseMessage=new ResponseMessage(); -// responseMessage.setMessage(mapMap.toString()); -// responseMessage.isOk(); - + List errorList = importExcelService.storageExclData(mapMap); +// List guonei= mapMap.get("GNBZ"); +// List haiwai = mapMap.get("HWBZ"); +// List qibiao = mapMap.get("QYBZ"); OutputStream os = null; Workbook workbook = null; try { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java index c6635b30..b5db3b55 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java @@ -75,16 +75,19 @@ public class ImportExcelServiceImpl extends ServiceImpl> getExcelData(MultipartFile file, MultipartFile file2) { + List dates=new ArrayList<>(); + for(int i=1669;i<2023;i++){ + dates.add("-"+i); + dates.add("—"+i); + dates.add("- "+i); + dates.add("— "+i); + } + if (file == null || file.getSize() == 0) { log.error("文件上传错误,重新上传"); } @@ -133,7 +136,7 @@ public class ImportExcelServiceImpl extends ServiceImpl { //判断是否是正确的数据 String[] as = items.split(","); - if (!inDate(as[0])) { + if (!inDate(as[0],dates)) { ImportDto importDto = getImportDto(as); error.add(importDto); middle.put(as[0].trim(), "error-"+error.size()); @@ -176,8 +179,7 @@ public class ImportExcelServiceImpl extends ServiceImpl dates = new ArrayList<>(Arrays.asList(DATE.split(","))); + private boolean inDate(String as,List dates) { if (null != as && !"".equals(as)) { for (String s : dates) { if (s.equals(as.trim())) { @@ -296,48 +298,48 @@ public class ImportExcelServiceImpl extends ServiceImpl standSaveWrapper = new QueryWrapper<>(); - standSaveWrapper - .eq("STAND_SORT",sarStandardsInfo.getStandSort()) - .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) - .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); - - SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); - if (one!=null){ - sarStandardsInfo.setId(one.getId()); - - sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); - QueryWrapper standAttrWrapper = new QueryWrapper<>(); - standAttrWrapper.eq("STAND_ID",one.getId()); - - sarStandAttrInfo.setStandId(one.getId()); - sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); - }else { - sarStandardsInfoService.save(sarStandardsInfo); - String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; - String value="\'"+sarStandAttrInfo.getId()+"\'"+","+ "\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; - - - if (sarStandAttrInfo.getDtbjh()!=null){ - value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; - } - - if (sarStandAttrInfo.getSsrq()!=null){ - value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; - } - sarStandAttrInfoDao.insertStandAttr(field,value); - - - - } +// SarStandAttrInfo sarStandAttrInfo = parseImportDtoToStandAttrInfo(item, standID); +// +// sarStandardsInfo.setValidFlag("0"); +// sarStandardsInfo.setStandType("FOREIGN"); +// QueryWrapper standSaveWrapper = new QueryWrapper<>(); +// standSaveWrapper +// .eq("STAND_SORT",sarStandardsInfo.getStandSort()) +// .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) +// .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); +// +// SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); +// if (one!=null){ +// sarStandardsInfo.setId(one.getId()); +// +// sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); +// QueryWrapper standAttrWrapper = new QueryWrapper<>(); +// standAttrWrapper.eq("STAND_ID",one.getId()); +// +// sarStandAttrInfo.setStandId(one.getId()); +// sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); +// }else { +// sarStandardsInfoService.save(sarStandardsInfo); +// String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; +// String value="\'"+sarStandAttrInfo.getId()+"\'"+","+ "\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; +// +// +// if (sarStandAttrInfo.getDtbjh()!=null){ +// value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; +// } +// +// if (sarStandAttrInfo.getSsrq()!=null){ +// value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; +// } +// sarStandAttrInfoDao.insertStandAttr(field,value); +// +// +// +// } }else{ @@ -360,48 +362,48 @@ public class ImportExcelServiceImpl extends ServiceImpl standSaveWrapper = new QueryWrapper<>(); - standSaveWrapper - .eq("STAND_SORT",sarStandardsInfo.getStandSort()) - .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) - .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); - - - SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); - if (one!=null){ - sarStandardsInfo.setId(one.getId()); - sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); - - QueryWrapper standAttrWrapper = new QueryWrapper<>(); - standAttrWrapper.eq("STAND_ID",one.getId()); - sarStandAttrInfo.setStandId(one.getId()); - sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); - }else { - - - sarStandardsInfoService.save(sarStandardsInfo); - - - String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; - String value="\'"+sarStandAttrInfo.getId()+"\'"+","+"\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; - - - if (sarStandAttrInfo.getDtbjh()!=null){ - value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; - } - - if (sarStandAttrInfo.getSsrq()!=null){ - value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; - } - sarStandAttrInfoDao.insertStandAttr(field,value); - - } +// SarStandAttrInfo sarStandAttrInfo = parseImportDtoToStandAttrInfo(item, standID); +// +// sarStandardsInfo.setValidFlag("0"); +// sarStandardsInfo.setStandType("INLAND"); +// +// +// QueryWrapper standSaveWrapper = new QueryWrapper<>(); +// standSaveWrapper +// .eq("STAND_SORT",sarStandardsInfo.getStandSort()) +// .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) +// .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); +// +// +// SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); +// if (one!=null){ +// sarStandardsInfo.setId(one.getId()); +// sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); +// +// QueryWrapper standAttrWrapper = new QueryWrapper<>(); +// standAttrWrapper.eq("STAND_ID",one.getId()); +// sarStandAttrInfo.setStandId(one.getId()); +// sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); +// }else { +// +// +// sarStandardsInfoService.save(sarStandardsInfo); +// +// +// String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; +// String value="\'"+sarStandAttrInfo.getId()+"\'"+","+"\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; +// +// +// if (sarStandAttrInfo.getDtbjh()!=null){ +// value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; +// } +// +// if (sarStandAttrInfo.getSsrq()!=null){ +// value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; +// } +// sarStandAttrInfoDao.insertStandAttr(field,value); +// +// } }else { item.setErrorStr("标准号无法解析"); error.add(item); @@ -423,29 +425,29 @@ public class ImportExcelServiceImpl extends ServiceImpl saveWrapper = new QueryWrapper<>(); - saveWrapper.eq("STAND_CODE", item.getStandId()); - SarBussionessStand one = sarBussionessStandService.getOne(saveWrapper); - if (one != null) { - sarBussionessStand.setId(one.getId()); - sarBussionessStandService.update(sarBussionessStand, saveWrapper); - - QueryWrapper bussAttrWrapper = new QueryWrapper<>(); - bussAttrWrapper.eq("STAND_ID", one.getId()); - sarBussStandAttrInfo.setStandId(one.getId()); - sarBussStandAttrInfoService.update(sarBussStandAttrInfo, bussAttrWrapper); - sarBussStandAttrInfoDao.updateStandInfo(one.getId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); - - } else { - sarBussionessStandService.save(sarBussionessStand); - sarBussStandAttrInfoService.save(sarBussStandAttrInfo); - - sarBussStandAttrInfoDao.updateStandInfo(sarBussStandAttrInfo.getStandId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); - } +// QueryWrapper saveWrapper = new QueryWrapper<>(); +// saveWrapper.eq("STAND_CODE", item.getStandId()); +// SarBussionessStand one = sarBussionessStandService.getOne(saveWrapper); +// if (one != null) { +// sarBussionessStand.setId(one.getId()); +// sarBussionessStandService.update(sarBussionessStand, saveWrapper); +// +// QueryWrapper bussAttrWrapper = new QueryWrapper<>(); +// bussAttrWrapper.eq("STAND_ID", one.getId()); +// sarBussStandAttrInfo.setStandId(one.getId()); +// sarBussStandAttrInfoService.update(sarBussStandAttrInfo, bussAttrWrapper); +// sarBussStandAttrInfoDao.updateStandInfo(one.getId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); +// +// } else { +// sarBussionessStandService.save(sarBussionessStand); +// sarBussStandAttrInfoService.save(sarBussStandAttrInfo); +// +// sarBussStandAttrInfoDao.updateStandInfo(sarBussStandAttrInfo.getStandId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); +// } } catch (Exception e) { From 0cdf343a092719688a8f1cb647f6a99c2ac2e217 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Thu, 9 Sep 2021 10:59:26 +0800 Subject: [PATCH 05/11] =?UTF-8?q?standRegionalTimeDto=20=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=8E=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=97=E6=AE=B5=E5=8C=B9?= =?UTF-8?q?=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/StandRegionalTimeDto.java | 4 ++-- .../service/impl/SarLawsAttrDetailedListServiceImpl.java | 9 ++++----- .../SarLawsAttrDetailedListMapper.xml | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java index 8dc4d5f9..7b50a568 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/StandRegionalTimeDto.java @@ -26,10 +26,10 @@ public class StandRegionalTimeDto { @ApiModelProperty(value = "在产车实施日期") @DateTimeFormat(pattern="yyyy-MM-dd") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - private Date ZCCSSRQ; + private Date zccssrq; @ApiModelProperty(value = "新车型实施日期") @DateTimeFormat(pattern="yyyy-MM-dd") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - private Date XCXSSRQ; + private Date xcxssrq; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java index e015ec4d..37584cbb 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java @@ -289,11 +289,10 @@ public class SarLawsAttrDetailedListServiceImpl extends ServiceImpl> mapList, List putTime, List xcx, List zcc, StandRegionalTimeDto s) { //临时 - if (s.getPutTime()!=null){ - putTime.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getPutTime())); - } - xcx.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getXCXSSRQ())); - zcc.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getZCCSSRQ())); + + putTime.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getPutTime())); + xcx.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getXcxssrq())); + zcc.add(new SimpleDateFormat("yyyy-MM-dd").format(s.getZccssrq())); mapList.put("实施日期("+s.getCountry()+")",putTime); mapList.put("新车型实施日期("+s.getCountry()+")",xcx); mapList.put("在产车实施日期("+s.getCountry()+")",zcc); diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml index 48a89181..925aa272 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml @@ -156,7 +156,7 @@ @@ -150,7 +149,6 @@ #{item} - group by a.ID