123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475 |
- package cn.com.taiji.zhongxiao.service;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.inject.Inject;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.RowMapper;
- import org.springframework.stereotype.Service;
- import cn.com.taiji.sys.domain.User;
- import cn.com.taiji.util.Pagination;
- import cn.com.taiji.util.StringTool;
- import cn.com.taiji.util.ToolUtil;
- import cn.com.taiji.zhongxiao.domain.SystemQz;
- import cn.com.taiji.zhongxiao.domain.SystemQzRepository;
- import cn.com.taiji.zhongxiao.domain.TbusinessItemDto;
- import cn.com.taiji.zhongxiao.domain.TsystemInfo;
- import cn.com.taiji.zhongxiao.domain.TsystemInfoDto;
- import cn.com.taiji.zhongxiao.domain.TsystemInfoRepository;
- import cn.com.taiji.zhongxiao.dto.NjsystemInfoDto;
- import cn.com.taiji.zhongxiao.dto.SystemQzDto;
- import cn.com.taiji.zhongxiao.dto.TianjinsystemInfoDto;
- import cn.com.taiji.zhongxiao.dto.YjsystemInfoDto;
- import cn.com.taiji.zhongxiao.dto.ZjsystemInfoDto;
- @Service
- public class TsystemInfoService {
- @Value("${database_type}")
- String database_type;
- @Inject
- JdbcTemplate jdbcTemplate;
- @Inject
- TbusinessItemService tbusinessItemService;
- @Inject
- TsystemInfoRepository tsystemInfoRepository;
- @Inject
- SystemQzRepository systemQzRepository;
- public List<Map<String,Object>> deptInfo(String sql,String deptid) {
- List<String> paramList=new ArrayList<String>();
- if(!ToolUtil.isNull(deptid))
- paramList.add(deptid);
- Object[] args = new Object[]{};
- int length = paramList.size();
- if(length>0){
- args=new Object[length];
- for(int i=0;i<length;i++){
- args[i] = paramList.get(i);
- }
-
- }
- List<Map<String,Object>> infoList = jdbcTemplate.queryForList(sql, args);
- return infoList;
-
- }
- public Pagination<TsystemInfoDto> findTsystemInfoList(String deptid,TsystemInfoDto dto,
- Pagination<TsystemInfoDto> pag, Map<String, Object> searchParameters,User userInfo) {
- StringBuffer sql=new StringBuffer("select p.creator,p.isgq,p.iskj,p.systemtype,p.sys_name,p.sys_id,p.sys_detail,p.sys_dept_id,p.sys_dept_name,p.systemstate,p.networktype,p.sys_usedetail,p.bushuaddr,p.create_time,p.sys_num from t_system_info p ");
- List<String> paramList=new ArrayList<String>();
-
- if("".equals(deptid)){
- StringBuffer sql2= new StringBuffer("");
- sql.append(" where p.sys_dept_id is not null and (instr(?,p.sys_dept_id)>0 or iskj='1') and (p.isgq is null or p.isgq='')");
- paramList.add(dto.getSysDeptId());
- // int i=0;
- // for(Dept dept:userInfo.getDepts()) {
- // if(i==0)
- // sql2.append(" and ( p.sys_dept_id = ?");
- // else {
- // sql2.append(" or p.sys_dept_id = ?");
- // }
- // paramList.add(dept.getDeptId());
- // }
- // if(userInfo.getDepts()!=null&&userInfo.getDepts().size()>0) {
- // sql.append(sql2).append(")");
- // }
- }
- else{
- if("oracle".equals(database_type)){
- sql.append(" where p.sys_dept_id in (select dept_id from deptinfo start with dept_id=? connect by prior dept_id=parent_id) ");
- paramList.add(deptid);
- }
- else if("mysql".equals(database_type)){
- // String lastDepts="('"+deptid+"',";
- // List<Map<String,Object>> menuTreeList=new ArrayList<Map<String,Object>>();
- // String sql2="select dept_id from deptinfo where parent_id=?";
- // menuTreeList = deptInfo(sql2,deptid);
- // List<Map<String,Object>> templist=menuTreeList;
- // Map<String,Object> map = new HashMap<String,Object>();
- // while(templist!=null&&templist.size()>0){//
- // sql2="select dept_id from deptinfo where parent_id in ";
- // String deptids="";
- // for(Map info:templist){
- // deptids+="'"+info.get("dept_id")+"'"+",";
- // map.put((String) info.get("dept_id"), info.get("dept_id"));
- // }
- // if(deptids.length()>1){
- // deptids=deptids.substring(0, deptids.length()-1);
- // sql2=sql2+"("+deptids+")";
- // }
- // templist = deptInfo(sql2,"");
- // for(Map info:templist){
- // map.put((String) info.get("dept_id"), info.get("dept_id"));
- // }
- //
- // }
- // for (Map.Entry<String,Object> entry : map.entrySet()) {
- // lastDepts=lastDepts+"'"+entry.getValue()+"'"+",";
- // }
- // if(lastDepts.length()>1){
- // lastDepts=lastDepts.substring(0, lastDepts.length()-1);
- // lastDepts=lastDepts+")";
- // }
- // sql.append(" where p.sys_dept_id in ").append(lastDepts);
- // sql.append(" where (p.sys_dept_id in (select dept_id from deptinfo where instr(concat(pdeptids,','),?)>0 or dept_id=?) or iskj='1' )");
- sql.append(" where (p.sys_dept_id in (select dept_id from deptinfo where position (? in concat(pdeptids,',')) or dept_id=?) or iskj='1' )");
- paramList.add(","+deptid+",");
- paramList.add(deptid);
- }
-
- }
-
- if(!ToolUtil.isNull(dto.getSysName())){
- paramList.add("%"+dto.getSysName()+"%");
- sql.append(" and p.sys_name like ? ");
- }
- if(!ToolUtil.isNull(dto.getIsgq())){
- if("1".equals(dto.getIsgq()))
- sql.append(" and p.isgq = '1' ");
- else {
- sql.append(" and (p.isgq = '0' or p.isgq is null or p.isgq='') ");
- }
- }
- if(!ToolUtil.isNull(dto.getIskj())){
- if("1".equals(dto.getIskj())){
- sql.append(" and p.iskj = '1' ");
- }
- else{
- sql.append(" and (p.iskj = '0' or p.iskj is null or p.iskj='') ");
- }
- }
- if(!ToolUtil.isNull(dto.getSystemstate())){
- paramList.add(dto.getSystemstate());
- sql.append(" and p.systemstate = ? ");
- }
- sql.append(" and (p.isdelete is null or p.isdelete ='')");
- sql.append(" order by p.create_time desc");
- Object[] args = new Object[]{};
- int length = paramList.size();
- if(length>0){
- args=new Object[length];
- for(int i=0;i<length;i++){
- args[i] = paramList.get(i);
- }
-
- }
-
- String filedSort = StringTool.null2Empty(searchParameters.get("field")) ;
- String filedOrder = StringTool.null2Empty(searchParameters.get("order")) ;
-
- if(filedSort!=null && !filedSort.isEmpty()){
-
- if("sysName".equals(filedSort)){
- sql.append(" order by p.sys_name "+filedOrder);
- }else if("sysDeptName".equals(filedSort)){
- sql.append(" order by p.sys_dept_name "+filedOrder);
- }else if("systemstate".equals(filedSort)){
- sql.append(" order by p.systemstate "+filedOrder);
- }
- }
-
-
- System.out.println(sql);
- pag = pag.findPagination(sql.toString(),pag,args,new RowMapper<TsystemInfoDto>(){
- @Override
- public TsystemInfoDto mapRow(ResultSet rs, int rowNum) throws SQLException {
- TsystemInfoDto info = new TsystemInfoDto();
- List<TbusinessItemDto> busitemList = new ArrayList<TbusinessItemDto>();
- info.setSysId(rs.getString("sys_id"));
- info.setSysName(rs.getString("sys_name"));
- info.setSysDetail(rs.getString("sys_detail"));
- info.setSysDeptId(rs.getString("sys_dept_id"));
- info.setSysDeptName(rs.getString("sys_dept_name"));
- info.setSystemstate(rs.getString("systemstate"));
- info.setSystemtype(rs.getString("systemtype"));
- info.setCreator(rs.getString("creator"));
- info.setBushuaddr(rs.getString("bushuaddr"));
- info.setNetworktype(rs.getString("networktype"));
- info.setSysUsedetail(rs.getString("sys_usedetail"));
- info.setIsgq(rs.getString("isgq"));
- info.setIskj(rs.getString("iskj"));
- info.setCreatetime(rs.getString("create_time"));
- info.setSysNum(rs.getString("sys_num"));
- busitemList = tbusinessItemService.findTbusinessItemListBySysId(rs.getString("sys_id")) ;
- info.setBusitemList(busitemList);
- Map map = jdbcTemplate.queryForMap("select count(1) csmls from t_infoclass t where latestversion='1' and exists (select * from t_systeminfo_infoclass p where p.infoclass_id=t.id and systeminfo_id=?)", new Object[] {rs.getString("sys_id")});
-
- info.setCsmls(String.valueOf(map.get("csmls")));
- Map map2 = jdbcTemplate.queryForMap("select count(1) glqzs from t_systeminfo_qz t where exists (select * from t_subpower_responsibility p where p.id=t.qzid ) and systemid=?" +
- "", new Object[] {rs.getString("sys_id")});
-
- info.setGlqzs(String.valueOf(map2.get("glqzs")));
- return info;
- }
- },jdbcTemplate,database_type);
- return pag;
- }
-
- public void saveTsystemInfo(TsystemInfo systeminfo) {
- // TODO Auto-generated method stub
- tsystemInfoRepository.save(systeminfo);
- }
- public TsystemInfo findTsystemInfoBySysId(String sysId) {
- // TODO Auto-generated method stub
- return tsystemInfoRepository.findOne(sysId);
- }
- public List<TsystemInfoDto> findTsystemInfoByitemid(String itemid) {
- StringBuffer sql=new StringBuffer("select p.sys_name,p.sys_id from t_businessitem_systeminfo s,t_system_info p where s.item_id=? and s.systeminfo_id=p.sys_id");
- List<String> paramList=new ArrayList<String>();
- paramList.add(itemid);
- Object[] args = new Object[]{};
- int length = paramList.size();
- if(length>0){
- args=new Object[length];
- for(int i=0;i<length;i++){
- args[i] = paramList.get(i);
- }
-
- }
- List<TsystemInfoDto> infoList = jdbcTemplate.query(sql.toString(),args,new RowMapper<TsystemInfoDto>(){
- @Override
- public TsystemInfoDto mapRow(ResultSet rs, int rowNum) throws SQLException {
- TsystemInfoDto info = new TsystemInfoDto();
- info.setSysName(rs.getString("sys_name"));
- info.setSysId(rs.getString("sys_id"));
- return info;
- }
- });
- return infoList;
-
- }
- public List<?> findAllTsystemInfoList(String deptid,TsystemInfoDto dto,String type) {
- StringBuffer sql=new StringBuffer("select p.SYS_USEDETAIL, p.SYS_ID,p.SYS_NAME,p.SYS_DETAIL,p.SYS_DEPT_NAME,p.SYS_DEPT_ID,p.CREATOR,p.CREATOR_NAME,p.CREATE_TIME,p.UPDATOR,p.UPDATOR_NAME,p.UPDATE_TIME,p.CHECKBM,p.CHECKDATE,p.SYSTEMSTATE,p.BUSINESSFUNC,p.FUNDSOURCE,p.SYSTEMTYPE,p.CURRENTSTAGE,p.JIANSHETYPE,p.CHENGJIANUNIT,p.UNITMAN,p.UNITTEL,p.HETONGDATE,p.HETONGWCDATE,p.WEIBAODATE,p.LIXIANGREASON,p.BUSHUADDR,p.SECRETTYPE,p.SECURITYLEVEL,p.NETWORKTYPE,p.SHIYONGFANWEI,p.ISDUIJIE,p.DUIJIEPROJECT,p.ISVIRTUAL,p.VIRTUALSOFTWARE,p.ISBACKUP,p.BACKUPTYPE,p.BACKUPADDR,p.BACKUPNUM,p.ISRONGZAI,p.LATERPLAN,p.JXJSREASON,p.REMARK,p.JSUNIT,p.JSMAN,p.JSTEL,p.YWUNIT,p.YWMAN,p.YWTEL,p.JCDATE,p.YWHTDATE,p.JSMONEY,p.YEARYWMONEY,p.YEARYWSOURCE,p.YWTYPE,p.ISDEAD,p.USERATE,p.ISAPPLYZH,p.ZHREASON,p.ISSJXUQIU,p.SJREASON,p.USEOBJ,p.YIFUORRATE,p.JSGOAL,p.JINPOLEVEL,p.JINPODETAIL,p.DAOWEIDETAIL from t_system_info p ");
- List<String> paramList=new ArrayList<String>();
-
- if("".equals(deptid)){
- sql.append(" where p.sys_dept_id is not null ");
- }
- else{
- if("oracle".equals(database_type)){
- sql.append(" where p.sys_dept_id in (select dept_id from deptinfo start with dept_id=? connect by prior dept_id=parent_id) ");
- paramList.add(deptid);
- }
- else if("mysql".equals(database_type)){
- String lastDepts="('"+deptid+"',";
- List<Map<String,Object>> menuTreeList=new ArrayList<Map<String,Object>>();
- String sql2="select dept_id from deptinfo where parent_id=?";
- menuTreeList = deptInfo(sql2,deptid);
- List<Map<String,Object>> templist=menuTreeList;
- Map<String,Object> map = new HashMap<String,Object>();
- while(templist!=null&&templist.size()>0){//
- sql2="select dept_id from deptinfo where parent_id in ";
- String deptids="";
- for(Map info:templist){
- deptids+="'"+info.get("dept_id")+"'"+",";
- map.put((String) info.get("dept_id"), info.get("dept_id"));
- }
- if(deptids.length()>1){
- deptids=deptids.substring(0, deptids.length()-1);
- sql2=sql2+"("+deptids+")";
- }
- templist = deptInfo(sql2,"");
- for(Map info:templist){
- map.put((String) info.get("dept_id"), info.get("dept_id"));
- }
-
- }
- for (Map.Entry<String,Object> entry : map.entrySet()) {
- lastDepts=lastDepts+"'"+entry.getValue()+"'"+",";
- }
- if(lastDepts.length()>1){
- lastDepts=lastDepts.substring(0, lastDepts.length()-1);
- lastDepts=lastDepts+")";
- }
- sql.append(" where p.sys_dept_id in ").append(lastDepts);
- }
-
- }
-
- if(!ToolUtil.isNull(dto.getSysName())){
- paramList.add("%"+dto.getSysName()+"%");
- sql.append(" and p.sys_name like ? ");
- }
- if(!ToolUtil.isNull(dto.getSystemstate())){
- paramList.add(dto.getSystemstate());
- sql.append(" and p.systemstate = ? ");
- }
- if(!ToolUtil.isNull(dto.getSysId())){
- paramList.add(dto.getSysId());
- sql.append(" and instr( ?,p.sys_id )>0 ");
- }
-
- RowMapper rowMapper=null;
- if("zj".equals(type)){
- paramList.add("在建");
- sql.append(" and p.systemstate = ? ");
- rowMapper = new RowMapper<ZjsystemInfoDto>(){
- @Override
- public ZjsystemInfoDto mapRow(ResultSet rs, int rowNum) throws SQLException {
- ZjsystemInfoDto zjinfo = new ZjsystemInfoDto();
- zjinfo.setInfo(getInfo(rs));
- return zjinfo;
- }
- };
- }
- else if("yj".equals(type)){
- paramList.add("已建");
- sql.append(" and p.systemstate = ? ");
- rowMapper = new RowMapper<YjsystemInfoDto>(){
- @Override
- public YjsystemInfoDto mapRow(ResultSet rs, int rowNum) throws SQLException {
- YjsystemInfoDto zjinfo = new YjsystemInfoDto();
- zjinfo.setInfo(getInfo(rs));
- return zjinfo;
- }
- };
- }
- else if("nj".equals(type)){
- paramList.add("拟建");
- sql.append(" and p.systemstate = ? ");
- rowMapper = new RowMapper<NjsystemInfoDto>(){
- @Override
- public NjsystemInfoDto mapRow(ResultSet rs, int rowNum) throws SQLException {
- NjsystemInfoDto zjinfo = new NjsystemInfoDto();
- zjinfo.setInfo(getInfo(rs));
- return zjinfo;
- }
- };
- }
- else if("tianjin".equals(type)){
- paramList.add("天津");
- sql.append(" and p.systemstate = ? ");
- rowMapper = new RowMapper<TianjinsystemInfoDto>(){
- @Override
- public TianjinsystemInfoDto mapRow(ResultSet rs, int rowNum) throws SQLException {
- TianjinsystemInfoDto zjinfo = new TianjinsystemInfoDto();
- zjinfo.setInfo(getInfo(rs));
- List<SystemQzDto> systemqzdtoList =new ArrayList<>();
- List<Map<String, Object>> maplist = findTsystemInfoQzListBySysid(zjinfo.getInfo().getSysId());
- for(Map map:maplist) {
- SystemQzDto info =new SystemQzDto();
- info.setDutyinfo(map.get("dutyinfo")+"");
- info.setEnforcementbody_name(map.get("enforcementbody_name")+"");
- info.setSubdutycode(map.get("subdutycode")+"");
- info.setSubdutytype(map.get("subdutytype")+"");
- info.setSubdutyname(map.get("subdutyname")+"");
- systemqzdtoList.add(info);
-
- }
- zjinfo.setSystemqzdtoList(systemqzdtoList);
- return zjinfo;
- }
- };
- }
- Object[] args = new Object[]{};
- int length = paramList.size();
- if(length>0){
- args=new Object[length];
- for(int i=0;i<length;i++){
- args[i] = paramList.get(i);
- }
-
- }
- sql.append("and (p.isdelete is null or p.isdelete ='')");
- List<?> infoList = jdbcTemplate.query(sql.toString(),args,rowMapper);
- return infoList;
- }
- private TsystemInfo getInfo(ResultSet rs) throws SQLException {
- TsystemInfo info = new TsystemInfo();
- info.setSysId(rs.getString("SYS_ID"));
- info.setSysUsedetail(rs.getString("SYS_USEDETAIL"));
- info.setSysName(rs.getString("SYS_NAME"));
- info.setSysDetail(rs.getString("SYS_DETAIL"));
- info.setSysDeptName(rs.getString("SYS_DEPT_NAME"));
- info.setSysDeptId(rs.getString("SYS_DEPT_ID"));
- info.setCreator(rs.getString("CREATOR"));
- info.setCreatorName(rs.getString("CREATOR_NAME"));
- info.setCreatetime(rs.getString("CREATE_TIME"));
- info.setUpdator(rs.getString("UPDATOR"));
- info.setUpdatorName(rs.getString("UPDATOR_NAME"));
- info.setUpdatetime(rs.getString("UPDATE_TIME"));
- info.setCheckbm(rs.getString("CHECKBM"));
- info.setCheckdate(rs.getString("CHECKDATE"));
- info.setSystemstate(rs.getString("SYSTEMSTATE"));
- info.setBusinessfunc(rs.getString("BUSINESSFUNC"));
- info.setFundsource(rs.getString("FUNDSOURCE"));
- info.setSystemtype(rs.getString("SYSTEMTYPE"));
- info.setCurrentstage(rs.getString("CURRENTSTAGE"));
- info.setJianshetype(rs.getString("JIANSHETYPE"));
- info.setChengjianunit(rs.getString("CHENGJIANUNIT"));
- info.setUnitman(rs.getString("UNITMAN"));
- info.setUnittel(rs.getString("UNITTEL"));
- info.setHetongdate(rs.getString("HETONGDATE"));
- info.setHetongwcdate(rs.getString("HETONGWCDATE"));
- info.setWeibaodate(rs.getString("WEIBAODATE"));
- info.setLixiangreason(rs.getString("LIXIANGREASON"));
- info.setBushuaddr(rs.getString("BUSHUADDR"));
- info.setSecrettype(rs.getString("SECRETTYPE"));
- info.setSecuritylevel(rs.getString("SECURITYLEVEL"));
- info.setNetworktype(rs.getString("NETWORKTYPE"));
- info.setShiyongfanwei(rs.getString("SHIYONGFANWEI"));
- info.setIsduijie(rs.getString("ISDUIJIE"));
- info.setDuijieproject(rs.getString("DUIJIEPROJECT"));
- info.setIsvirtual(rs.getString("ISVIRTUAL"));
- info.setVirtualsoftware(rs.getString("VIRTUALSOFTWARE"));
- info.setIsbackup(rs.getString("ISBACKUP"));
- info.setBackuptype(rs.getString("BACKUPTYPE"));
- info.setBackupaddr(rs.getString("BACKUPADDR"));
- info.setBackupnum(rs.getString("BACKUPNUM"));
- info.setIsrongzai(rs.getString("ISRONGZAI"));
- info.setLaterplan(rs.getString("LATERPLAN"));
- info.setJxjsreason(rs.getString("JXJSREASON"));
- info.setRemark(rs.getString("REMARK"));
- info.setJsunit(rs.getString("JSUNIT"));
- info.setJsman(rs.getString("JSMAN"));
- info.setJstel(rs.getString("JSTEL"));
- info.setYwunit(rs.getString("YWUNIT"));
- info.setYwman(rs.getString("YWMAN"));
- info.setYwtel(rs.getString("YWTEL"));
- info.setJcdate(rs.getString("JCDATE"));
- info.setYwhtdate(rs.getString("YWHTDATE"));
- info.setJsmoney(rs.getString("JSMONEY"));
- info.setYearywmoney(rs.getString("YEARYWMONEY"));
- info.setYearywsource(rs.getString("YEARYWSOURCE"));
- info.setYwtype(rs.getString("YWTYPE"));
- info.setIsdead(rs.getString("ISDEAD"));
- info.setUserate(rs.getString("USERATE"));
- info.setIsapplyzh(rs.getString("ISAPPLYZH"));
- info.setZhreason(rs.getString("ZHREASON"));
- info.setIssjxuqiu(rs.getString("ISSJXUQIU"));
- info.setSjreason(rs.getString("SJREASON"));
- info.setUseobj(rs.getString("USEOBJ"));
- info.setYifuorrate(rs.getString("YIFUORRATE"));
- info.setJsgoal(rs.getString("JSGOAL"));
- info.setJinpolevel(rs.getString("JINPOLEVEL"));
- info.setJinpodetail(rs.getString("JINPODETAIL"));
- info.setDaoweidetail(rs.getString("DAOWEIDETAIL"));
- return info;
- }
- public void saveTsystemInfoList(List<TsystemInfo> resultList) {
- tsystemInfoRepository.save(resultList);
- }
- public void saveSystemQz(SystemQz info) {
- systemQzRepository.save(info);
- }
- public List<Map<String, Object>> findTsystemInfoQzListBySysid(String sysid) {
- // TODO Auto-generated method stub
- return jdbcTemplate.queryForList("select t.id,t.systemid,t.qzid,t.fileid,t.filename,z.subdutycode,z.subdutyname,z.subdutytype,k.dutyinfo, k.enforcementbody_name,k.enforcementbody from t_power_responsibility k , t_systeminfo_qz t,t_subpower_responsibility z where t.qzid=z.id and k.id=z.mainid and t.systemid=?", new Object[] {sysid});
- }
- public void deleteSystemQzBySysId(String sysId) {
- // TODO Auto-generated method stub
- systemQzRepository.deleteSystemQzBySysId(sysId);
- }
- }
|