diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java index 34ebf87d..9c2e5416 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/dao/StandDataDao.java @@ -27,5 +27,7 @@ public interface StandDataDao extends BaseMapper { List searchStandData(SearchStandContext searchStandContext); + List searchStandDataThree(SearchStandContext searchStandContext); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java index 763e70a3..32df4b99 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java @@ -59,5 +59,7 @@ public class SearchStandContext implements Serializable { @ApiModelProperty(value = "项目编号") private String ItemNumber; + private String standCode; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/ExportEmptyModel.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/ExportEmptyModel.java index 90100c78..4507314d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/ExportEmptyModel.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/ExportEmptyModel.java @@ -36,6 +36,13 @@ public class ExportEmptyModel { private String compareFlag; private String syrzCode; + //国内海外为1 企标为2 政策为3 + private String standName; + private String standEnName; + private String sycx; + private String nylx; + private String zrbm; + private String sycpx; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java index 5cd92b54..89a0e15b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java @@ -3,8 +3,12 @@ package com.adc.da.slrs.sarLawsDetailedList.service.impl; import com.adc.da.att.service.IAttFileEOService; import com.adc.da.mq.CreateUpdateMQService; import com.adc.da.slrs.processModel.utils.ExcelImportUtilByWk; +import com.adc.da.slrs.regulations.dao.StandDataDao; +import com.adc.da.slrs.regulations.entity.SearchStandContext; +import com.adc.da.slrs.regulations.entity.StandData; import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarLawsAttrDetailedListDao; import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarLawsAttrDetailedList; import com.adc.da.slrs.sarLawsAttrDetailedList.service.ISarLawsAttrDetailedListService; @@ -15,6 +19,7 @@ import com.adc.da.slrs.sarLawsDetailedList.service.ISarLawsDetailedListService; import com.adc.da.slrs.sarLawsStandInfo.dao.SarLawsStandInfoDao; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; +import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao; import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; @@ -45,6 +50,7 @@ import org.springframework.web.multipart.MultipartFile; import java.lang.reflect.Array; import java.util.*; +import java.util.stream.Collectors; import static com.adc.da.login.util.UserUtils.getUserName; @@ -83,6 +89,10 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl wrapper2 = new QueryWrapper<>(); - wrapper2.eq("detailed_list_id",id); - List sarLawsAttrDetailedLists=sarLawsAttrDetailedListDao.selectList(wrapper2); - List list1=new ArrayList<>(); - if (sarLawsAttrDetailedLists.size()>0){ - sarLawsAttrDetailedLists.forEach(sarLawsAttrDetailedList -> {list1.add(sarLawsAttrDetailedList.getStandId());}); + wrapper2.eq("detailed_list_id", id); + List sarLawsAttrDetailedLists = sarLawsAttrDetailedListDao.selectList(wrapper2); + List list1 = new ArrayList<>(); + if (sarLawsAttrDetailedLists.size() > 0) { + sarLawsAttrDetailedLists.forEach(sarLawsAttrDetailedList -> { + list1.add(sarLawsAttrDetailedList.getStandId()); + }); } wrapper.eq("detailed_list_id", id); sarLawsAttrDetailedListDao.delete(wrapper); // -- eeee //移除之后 需要判定一下 还有没有其他地方引用 QueryWrapper wrapper1 = new QueryWrapper<>(); - wrapper1.in("stand_id",list1); - List res=sarLawsAttrDetailedListDao.selectList(wrapper); + wrapper1.in("stand_id", list1); + List res = sarLawsAttrDetailedListDao.selectList(wrapper); res.forEach(sarLawsAttrDetailedList -> { list1.remove(sarLawsAttrDetailedList.getStandId()); }); - if (null!=list1 && list1.size()>0){ + if (null != list1 && list1.size() > 0) { sarStandardsInfoDao.updateISRELATEACCESSById("2", list1); } @@ -345,10 +360,10 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl sarStandardsInfos=new ArrayList<>(); + if (null != timeDto) { + List sarStandardsInfos = new ArrayList<>(); timeDto.forEach(timeDto1 -> { - SarStandardsInfo sarStandardsInfo=new SarStandardsInfo(); + SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); sarStandardsInfo.setId(timeDto1.getStandId()); sarStandardsInfo.setIsRelateAccess("1"); sarStandardsInfos.add(sarStandardsInfo); @@ -381,7 +396,7 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl pageRes = new Page<>(page, pageSize); IPage userIPage = sarLawsDetailedListDao.selectPage(pageRes, wrapper); - if ( userIPage.getRecords().size()>0){ + if (userIPage.getRecords().size() > 0) { if ("1".equals(sortKey)) { Map map = iDicTypeEOService.getDicTypeListCode(); List list = userIPage.getRecords(); @@ -675,23 +690,23 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("detailed_list_id",detailedUpDto.getId()); - List sarLawsAttrDetailedLists=sarLawsAttrDetailedListDao.selectList(wrapper); - List list1=new ArrayList<>(); - List list2=new ArrayList<>(); + wrapper.eq("detailed_list_id", detailedUpDto.getId()); + List sarLawsAttrDetailedLists = sarLawsAttrDetailedListDao.selectList(wrapper); + List list1 = new ArrayList<>(); + List list2 = new ArrayList<>(); //避免出现数据丢失 处理一下适用认证信息 - Hashtable hashtable=new Hashtable<>(); - if (sarLawsAttrDetailedLists.size()>0){ - sarLawsAttrDetailedLists.forEach(sarLawsAttrDetailedList -> { - dealWithHashTableData(list1, list2, hashtable, sarLawsAttrDetailedList); - }); + Hashtable hashtable = new Hashtable<>(); + if (sarLawsAttrDetailedLists.size() > 0) { + sarLawsAttrDetailedLists.forEach(sarLawsAttrDetailedList -> { + dealWithHashTableData(list1, list2, hashtable, sarLawsAttrDetailedList); + }); } list1.removeAll(Arrays.asList(detailedUpDto.getInforlist().split(","))); - if (list1.size()>0){ + if (list1.size() > 0) { QueryWrapper wrapper1 = new QueryWrapper<>(); - wrapper1.in("stand_id",list1); - List res=sarLawsAttrDetailedListDao.selectList(wrapper); - if (res.size()>0){ + wrapper1.in("stand_id", list1); + List res = sarLawsAttrDetailedListDao.selectList(wrapper); + if (res.size() > 0) { res.forEach(sarLawsAttrDetailedList -> { dealWithHashTableData(list1, list2, hashtable, sarLawsAttrDetailedList); }); @@ -710,7 +725,7 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl list1, List list2, Hashtable hashtable, SarLawsAttrDetailedList sarLawsAttrDetailedList) { list1.add(sarLawsAttrDetailedList.getStandId()); list2.add(sarLawsAttrDetailedList.getStandId()); - if (null != hashtable.get(sarLawsAttrDetailedList.getStandId()) && !"-".equals( sarLawsAttrDetailedList.getSyrz())) { + if (null != hashtable.get(sarLawsAttrDetailedList.getStandId()) && !"-".equals(sarLawsAttrDetailedList.getSyrz())) { if (sarLawsAttrDetailedList.getSyrz().contains(",")) { List middle = new ArrayList<>(Arrays.asList(sarLawsAttrDetailedList.getSyrz().split(","))); middle.forEach(s -> { @@ -729,15 +744,15 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl importData(MultipartFile file, StringBuilder stringBuilder) { - List res= ExcelImportUtilByWk.readExcelpublic(ExportEmptyModel.class,file,stringBuilder); + List res = ExcelImportUtilByWk.readExcelpublic(ExportEmptyModel.class, file, stringBuilder); //数据字典数据组装 Map dicTypeEO = dicTypeEOService.getDicTypeListCode(); - Map dict=new HashMap<>(); - List> arr = (List>) dicTypeEO.get("SYRZCLASS"); - arr.forEach(stringStringMap -> { - dict.put(stringStringMap.get("label"),stringStringMap.get("value")); - }); - if (null==res){ - stringBuilder.append("请误导入空文件;"); - } + Map dict = new HashMap<>(); + List> arr = (List>) dicTypeEO.get("SYRZCLASS"); + arr.forEach(stringStringMap -> { + dict.put(stringStringMap.get("label"), stringStringMap.get("value")); + }); + if (null == res) { + stringBuilder.append("请误导入空文件;"); + } //先校验是否存在一堆空数据 if (null != res && "".equals(stringBuilder.toString())) { - int i=1; - for (ExportEmptyModel e:res) { - if (null==e.getStandNumber() || e.getStandNumber().isEmpty()){ - stringBuilder.append("第"+i+"行标准编号不能为空;"); + int i = 1; + for (ExportEmptyModel e : res) { + if (null == e.getStandNumber() || e.getStandNumber().isEmpty()) { + stringBuilder.append("第" + i + "行标准编号不能为空;"); } - if (null==e.getSyrz() || e.getSyrz().isEmpty()){ - stringBuilder.append("第"+i+"行适用认证不能为空;"); + if (null == e.getSyrz() || e.getSyrz().isEmpty()) { + stringBuilder.append("第" + i + "行适用认证不能为空;"); } i++; } } //数据校验 先做重复交验+再做是否存在校验 if (null != res && "".equals(stringBuilder.toString())) { - for (int i = 0; i infos=standardsInfoDao.getSarStandardsInfoByNum(infoEOPage ,"0"); - if (null!= infos && infos.size()>0){ - exportEmptyModel.setId(infos.get(0).getId()); - } - if (null==exportEmptyModel.getId()) { - //判断是否在政策里 - SarBussionessStandEOPage page = new SarBussionessStandEOPage(); - page.setPage(1); - page.setPageSize(999); - page.setValidFlag("0"); - page.setUserId(LoginUserUtil.getUserId()); - page.setStandCode(exportEmptyModel.getStandNumber()); - List sarBussionessStands = sarBussionessStandDao.getBussionessStandInfoByNum(page); - if (null != sarBussionessStands && sarBussionessStands.size() > 0) { - exportEmptyModel.setId(sarBussionessStands.get(0).getId()); + if ("".equals(stringBuilder.toString())) { + int i = 1; + for (ExportEmptyModel exportEmptyModel : res) { + SearchStandContext searchStandContext = new SearchStandContext(); + searchStandContext.setStandCode(exportEmptyModel.getStandNumber()); + List standData = standDateDao.searchStandDataThree(searchStandContext); + if (null != standData && standData.size() > 0) { + exportEmptyModel.setId(standData.get(0).getStandId()); } - } - if (null==exportEmptyModel.getId()) { - //判断是否在企标里 List getSarStandardsInfoPage(SarLawsStandInfoPage page); - SarLawsStandInfoPage lawsStandInfoPage = new SarLawsStandInfoPage(); - lawsStandInfoPage.setPage(1); - lawsStandInfoPage.setPageSize(999); - lawsStandInfoPage.setValidFlag("0"); - lawsStandInfoPage.setLawsNumber(exportEmptyModel.getStandNumber()); - lawsStandInfoPage.setUserId(LoginUserUtil.getUserId()); - List sarLawsStandInfos = sarLawsStandInfoDao.getSarStandardsInfoByNum(lawsStandInfoPage); - if (null != sarLawsStandInfos && sarLawsStandInfos.size() > 0) { - exportEmptyModel.setId(sarLawsStandInfos.get(0).getId()); + if (null == exportEmptyModel.getId() || exportEmptyModel.getId().isEmpty()) { + stringBuilder.append("第" + i + "行标准号不存在,请检查标准号是否正确;"); } - } - if (null==exportEmptyModel.getId() || exportEmptyModel.getId().isEmpty()){ - stringBuilder.append("第"+i+"行标准号不存在,请检查标准号是否正确;"); - } - //验证完标准号 再来验证适用认证 写的是否合理 字典编码 SYRZCLASS0 - exportEmptyModel.setSyrz(exportEmptyModel.getSyrz().trim().replaceAll(",",",")); - if (exportEmptyModel.getSyrz().contains(",") || null != dict.get(exportEmptyModel.getSyrz())){ - if (exportEmptyModel.getSyrz().contains(",")){ - StringBuilder syrz=new StringBuilder(); - StringBuilder sy=new StringBuilder(); - List syrzs=new ArrayList<>(Arrays.asList(exportEmptyModel.getSyrz().split(","))); - syrzs.forEach(s -> { - if (null!=dict.get(s.trim())){ - syrz.append(dict.get(s.trim())+","); - }else { - syrz.append("-1"+","); + //验证完标准号 再来验证适用认证 写的是否合理 字典编码 SYRZCLASS0 + exportEmptyModel.setSyrz(exportEmptyModel.getSyrz().trim().replaceAll(",", ",")); + if (exportEmptyModel.getSyrz().contains(",") || null != dict.get(exportEmptyModel.getSyrz())) { + if (exportEmptyModel.getSyrz().contains(",")) { + StringBuilder syrz = new StringBuilder(); + StringBuilder sy = new StringBuilder(); + List syrzs = new ArrayList<>(Arrays.asList(exportEmptyModel.getSyrz().split(","))); + syrzs.forEach(s -> { + if (null != dict.get(s.trim())) { + syrz.append(dict.get(s.trim()) + ","); + } else { + syrz.append("-1" + ","); + } + sy.append(s.trim() + ","); + }); + if (syrz.toString().contains("-1")) { + stringBuilder.append("第" + i + "行适用认证填写错误,请检查;"); + } else { + exportEmptyModel.setSyrzCode(syrz.toString().substring(0, syrz.toString().length() - 1)); + exportEmptyModel.setSyrz(sy.toString().substring(0, sy.toString().length() - 1)); + } + } else { + if (null != dict.get(exportEmptyModel.getSyrz())) { + exportEmptyModel.setSyrzCode(dict.get(exportEmptyModel.getSyrz())); + } else { + stringBuilder.append("第" + i + "行适用认证填写错误,请检查;"); } - sy.append(s.trim()+","); - }); - if (syrz.toString().contains("-1")){ - stringBuilder.append("第"+i+"行适用认证填写错误,请检查;"); - }else { - exportEmptyModel.setSyrzCode(syrz.toString().substring(0,syrz.toString().length()-1)); - exportEmptyModel.setSyrz(sy.toString().substring(0,sy.toString().length()-1)); - } - }else { - if (null!=dict.get(exportEmptyModel.getSyrz())) { - exportEmptyModel.setSyrzCode(dict.get(exportEmptyModel.getSyrz())); - }else { - stringBuilder.append("第"+i+"行适用认证填写错误,请检查;"); } + } else { + stringBuilder.append("第" + i + "行适用认证填写错误,请检查;"); } - }else { - stringBuilder.append("第"+i+"行适用认证填写错误,请检查;"); - } - i++; + i++; } } + //查询数据并赋值 + if (stringBuilder.toString().length() <= 0) { + dealWithData(res); + } return res; - }else { + } else { return null; } } + public List dealWithData(List res) { + List result = new ArrayList<>(); + //判定是不是存在于国内海外标准中 + StringBuilder stringBuilder = new StringBuilder(); + Map map = new HashMap<>(); + res.forEach(exportEmptyModel -> { + if (null != exportEmptyModel.getId() && !exportEmptyModel.getId().isEmpty()) { + stringBuilder.append(exportEmptyModel.getId() + ","); + map.put(exportEmptyModel.getId(), exportEmptyModel); + } + }); + String[] ids = stringBuilder.toString().substring(0, stringBuilder.toString().length() - 1).split(","); + + + SarStandardsInfoEOPage infoEOPage = new SarStandardsInfoEOPage(); + infoEOPage.setUserId(LoginUserUtil.getUserId()); + infoEOPage.setPage(1); + infoEOPage.setPageSize(map.keySet().size() + 1); + infoEOPage.setValidFlag("0"); + infoEOPage.setIdlist(ids); + List infos = null; + try { + infos = sarStandardsInfoService.getSarStandardsInfoPageBak1(infoEOPage); + } catch (Exception e) { + e.printStackTrace(); + } + if (null != infos && infos.size() > 0) { + infos.forEach(sarStandardsInfo -> { + ExportEmptyModel model = map.get(sarStandardsInfo.getId()); + model.setStandName(sarStandardsInfo.getStandName()); + model.setStandEnName(sarStandardsInfo.getStandEnName()); + model.setNylx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("nylx").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("nylx").toString():""); + model.setSycpx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("sycpx").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("sycpx").toString():""); + model.setZrbm(null!=sarStandardsInfo.getAttrInfoCaseMap().get("zrbm").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("zrbm").toString():""); + model.setSycx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("cllx").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("cllx").toString():""); + result.add(model); + }); + } + + //判断是否在政策里 + SarBussionessStandEOPage page = new SarBussionessStandEOPage(); + page.setPage(1); + page.setPageSize(map.keySet().size() + 1); + page.setValidFlag("0"); + page.setUserId(LoginUserUtil.getUserId()); + page.setIdlist(ids); + page.setIsKU("0"); + List sarBussionessStands = null; + try { + sarBussionessStands = sarBussionessStandService.getSarBussionStandPage(page); + } catch (Exception e) { + e.printStackTrace(); + } + if (null != sarBussionessStands && sarBussionessStands.size() > 0) { + sarBussionessStands.forEach(sarStandardsInfo -> { + ExportEmptyModel model = map.get(sarStandardsInfo.getId()); + model.setStandName(sarStandardsInfo.getStandName()); + model.setStandEnName(sarStandardsInfo.getStandEnName()); + model.setNylx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("nylx").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("nylx").toString():""); + model.setSycpx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("sycpx").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("sycpx").toString():""); + model.setZrbm(null!=sarStandardsInfo.getAttrInfoCaseMap().get("zrbm").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("zrbm").toString():""); + model.setSycx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("cllx").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("cllx").toString():""); + result.add(model); + }); + } + + //判断是否在企标里 List getSarStandardsInfoPage(SarLawsStandInfoPage page); + SarLawsStandInfoPage lawsStandInfoPage = new SarLawsStandInfoPage(); + lawsStandInfoPage.setPage(1); + lawsStandInfoPage.setPageSize(map.keySet().size() + 1); + lawsStandInfoPage.setValidFlag("0"); + lawsStandInfoPage.setIdlist(ids); + lawsStandInfoPage.setUserId(LoginUserUtil.getUserId()); + List sarLawsStandInfos = null; + try { + sarLawsStandInfos = sarLawsStandInfoService.getSarStandardsInfoPageBak(lawsStandInfoPage); + } catch (Exception e) { + e.printStackTrace(); + } + if (null != sarLawsStandInfos && sarLawsStandInfos.size() > 0) { + sarLawsStandInfos.forEach(sarStandardsInfo -> { + ExportEmptyModel model = map.get(sarStandardsInfo.getId()); + model.setStandName(sarStandardsInfo.getLawsName()); + model.setStandEnName(sarStandardsInfo.getLawsEnName()); + model.setNylx(null!=sarStandardsInfo.getAttrInfoCaseMap().get("nylxlaws").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("nylxlaws").toString():""); + //没有使用产品线 +// model.setSycpx(null!=sarStandardsInfo.getLawsSycx() ?sarStandardsInfo.getLawsSycx():""); + model.setZrbm(null!=sarStandardsInfo.getAttrInfoCaseMap().get("zrbmlaws").toString() ?sarStandardsInfo.getAttrInfoCaseMap().get("zrbmlaws").toString():""); + model.setSycx(null!=sarStandardsInfo.getLawsSycx() ?sarStandardsInfo.getLawsSycx():""); + result.add(model); + }); + } + + + return result; + } } diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml index d13c738d..0fc78990 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/regulations/RegulationsMapper.xml @@ -2,57 +2,134 @@ - + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml index 7f87fdb3..facab65b 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml @@ -668,13 +668,13 @@ - - - - - - - + + + and SAR_BUSSIONESS_STAND.id in + + #{item} + +